all: regenerate everything (adds "NewService" constructor, updates copyright to Google LLC)

happy pi day!

Change-Id: I7ebc0f1186f97a6f4c02c76135e0b02caf262586
Reviewed-on: https://code-review.googlesource.com/c/google-api-go-client/+/39030
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jean de Klerk <deklerk@google.com>
diff --git a/abusiveexperiencereport/v1/abusiveexperiencereport-gen.go b/abusiveexperiencereport/v1/abusiveexperiencereport-gen.go
index 2bc1154..f0a62ab 100644
--- a/abusiveexperiencereport/v1/abusiveexperiencereport-gen.go
+++ b/abusiveexperiencereport/v1/abusiveexperiencereport-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package abusiveexperiencereport provides access to the Abusive Experience Report API.
 //
-// See https://developers.google.com/abusive-experience-report/
+// For product documentation, see: https://developers.google.com/abusive-experience-report/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/abusiveexperiencereport/v1"
 //   ...
-//   abusiveexperiencereportService, err := abusiveexperiencereport.New(oauthHttpClient)
+//   ctx := context.Background()
+//   abusiveexperiencereportService, err := abusiveexperiencereport.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   abusiveexperiencereportService, err := abusiveexperiencereport.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   abusiveexperiencereportService, err := abusiveexperiencereport.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package abusiveexperiencereport // import "google.golang.org/api/abusiveexperiencereport/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	XapiZooScope = "https://www.googleapis.com/auth/xapi.zoo"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/xapi.zoo",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-gen.go b/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-gen.go
index 1002c76..3df8811 100644
--- a/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-gen.go
+++ b/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package acceleratedmobilepageurl provides access to the Accelerated Mobile Pages (AMP) URL API.
 //
-// See https://developers.google.com/amp/cache/
+// For product documentation, see: https://developers.google.com/amp/cache/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/acceleratedmobilepageurl/v1"
 //   ...
-//   acceleratedmobilepageurlService, err := acceleratedmobilepageurl.New(oauthHttpClient)
+//   ctx := context.Background()
+//   acceleratedmobilepageurlService, err := acceleratedmobilepageurl.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   acceleratedmobilepageurlService, err := acceleratedmobilepageurl.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   acceleratedmobilepageurlService, err := acceleratedmobilepageurl.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package acceleratedmobilepageurl // import "google.golang.org/api/acceleratedmobilepageurl/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://acceleratedmobilepageurl.googleapis.com/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/accesscontextmanager/v1/accesscontextmanager-gen.go b/accesscontextmanager/v1/accesscontextmanager-gen.go
index 4a2e0c8..c37d1c5 100644
--- a/accesscontextmanager/v1/accesscontextmanager-gen.go
+++ b/accesscontextmanager/v1/accesscontextmanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package accesscontextmanager provides access to the Access Context Manager API.
 //
-// See https://cloud.google.com/access-context-manager/docs/reference/rest/
+// For product documentation, see: https://cloud.google.com/access-context-manager/docs/reference/rest/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/accesscontextmanager/v1"
 //   ...
-//   accesscontextmanagerService, err := accesscontextmanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   accesscontextmanagerService, err := accesscontextmanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   accesscontextmanagerService, err := accesscontextmanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   accesscontextmanagerService, err := accesscontextmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package accesscontextmanager // import "google.golang.org/api/accesscontextmanager/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/accesscontextmanager/v1beta/accesscontextmanager-gen.go b/accesscontextmanager/v1beta/accesscontextmanager-gen.go
index 4a3d12b..32d263b 100644
--- a/accesscontextmanager/v1beta/accesscontextmanager-gen.go
+++ b/accesscontextmanager/v1beta/accesscontextmanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package accesscontextmanager provides access to the Access Context Manager API.
 //
-// See https://cloud.google.com/access-context-manager/docs/reference/rest/
+// For product documentation, see: https://cloud.google.com/access-context-manager/docs/reference/rest/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/accesscontextmanager/v1beta"
 //   ...
-//   accesscontextmanagerService, err := accesscontextmanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   accesscontextmanagerService, err := accesscontextmanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   accesscontextmanagerService, err := accesscontextmanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   accesscontextmanagerService, err := accesscontextmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package accesscontextmanager // import "google.golang.org/api/accesscontextmanager/v1beta"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/adexchangebuyer/v1.2/adexchangebuyer-gen.go b/adexchangebuyer/v1.2/adexchangebuyer-gen.go
index 9b7fd4b..5cba761 100644
--- a/adexchangebuyer/v1.2/adexchangebuyer-gen.go
+++ b/adexchangebuyer/v1.2/adexchangebuyer-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package adexchangebuyer provides access to the Ad Exchange Buyer API.
 //
-// See https://developers.google.com/ad-exchange/buyer-rest
+// For product documentation, see: https://developers.google.com/ad-exchange/buyer-rest
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/adexchangebuyer/v1.2"
 //   ...
-//   adexchangebuyerService, err := adexchangebuyer.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adexchangebuyerService, err := adexchangebuyer.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adexchangebuyerService, err := adexchangebuyer.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adexchangebuyerService, err := adexchangebuyer.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package adexchangebuyer // import "google.golang.org/api/adexchangebuyer/v1.2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AdexchangeBuyerScope = "https://www.googleapis.com/auth/adexchange.buyer"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/adexchange.buyer",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/adexchangebuyer/v1.3/adexchangebuyer-gen.go b/adexchangebuyer/v1.3/adexchangebuyer-gen.go
index bed5e68..46e9436 100644
--- a/adexchangebuyer/v1.3/adexchangebuyer-gen.go
+++ b/adexchangebuyer/v1.3/adexchangebuyer-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package adexchangebuyer provides access to the Ad Exchange Buyer API.
 //
-// See https://developers.google.com/ad-exchange/buyer-rest
+// For product documentation, see: https://developers.google.com/ad-exchange/buyer-rest
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/adexchangebuyer/v1.3"
 //   ...
-//   adexchangebuyerService, err := adexchangebuyer.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adexchangebuyerService, err := adexchangebuyer.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adexchangebuyerService, err := adexchangebuyer.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adexchangebuyerService, err := adexchangebuyer.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package adexchangebuyer // import "google.golang.org/api/adexchangebuyer/v1.3"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AdexchangeBuyerScope = "https://www.googleapis.com/auth/adexchange.buyer"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/adexchange.buyer",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/adexchangebuyer/v1.4/adexchangebuyer-gen.go b/adexchangebuyer/v1.4/adexchangebuyer-gen.go
index a345521..13003c3 100644
--- a/adexchangebuyer/v1.4/adexchangebuyer-gen.go
+++ b/adexchangebuyer/v1.4/adexchangebuyer-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package adexchangebuyer provides access to the Ad Exchange Buyer API.
 //
-// See https://developers.google.com/ad-exchange/buyer-rest
+// For product documentation, see: https://developers.google.com/ad-exchange/buyer-rest
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/adexchangebuyer/v1.4"
 //   ...
-//   adexchangebuyerService, err := adexchangebuyer.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adexchangebuyerService, err := adexchangebuyer.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adexchangebuyerService, err := adexchangebuyer.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adexchangebuyerService, err := adexchangebuyer.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package adexchangebuyer // import "google.golang.org/api/adexchangebuyer/v1.4"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AdexchangeBuyerScope = "https://www.googleapis.com/auth/adexchange.buyer"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/adexchange.buyer",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go b/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go
index c3eb4fc..b488981 100644
--- a/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go
+++ b/adexchangebuyer2/v2beta1/adexchangebuyer2-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package adexchangebuyer2 provides access to the Ad Exchange Buyer API II.
 //
-// See https://developers.google.com/authorized-buyers/apis/reference/rest/
+// For product documentation, see: https://developers.google.com/authorized-buyers/apis/reference/rest/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/adexchangebuyer2/v2beta1"
 //   ...
-//   adexchangebuyer2Service, err := adexchangebuyer2.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adexchangebuyer2Service, err := adexchangebuyer2.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adexchangebuyer2Service, err := adexchangebuyer2.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adexchangebuyer2Service, err := adexchangebuyer2.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package adexchangebuyer2 // import "google.golang.org/api/adexchangebuyer2/v2beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AdexchangeBuyerScope = "https://www.googleapis.com/auth/adexchange.buyer"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/adexchange.buyer",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/adexperiencereport/v1/adexperiencereport-gen.go b/adexperiencereport/v1/adexperiencereport-gen.go
index 1f17e4d..bbba8b4 100644
--- a/adexperiencereport/v1/adexperiencereport-gen.go
+++ b/adexperiencereport/v1/adexperiencereport-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package adexperiencereport provides access to the Ad Experience Report API.
 //
-// See https://developers.google.com/ad-experience-report/
+// For product documentation, see: https://developers.google.com/ad-experience-report/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/adexperiencereport/v1"
 //   ...
-//   adexperiencereportService, err := adexperiencereport.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adexperiencereportService, err := adexperiencereport.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adexperiencereportService, err := adexperiencereport.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adexperiencereportService, err := adexperiencereport.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package adexperiencereport // import "google.golang.org/api/adexperiencereport/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	XapiZooScope = "https://www.googleapis.com/auth/xapi.zoo"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/xapi.zoo",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/admin/datatransfer/v1/admin-gen.go b/admin/datatransfer/v1/admin-gen.go
index 04e1749..e196c76 100644
--- a/admin/datatransfer/v1/admin-gen.go
+++ b/admin/datatransfer/v1/admin-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package admin provides access to the Admin Data Transfer API.
 //
-// See https://developers.google.com/admin-sdk/data-transfer/
+// For product documentation, see: https://developers.google.com/admin-sdk/data-transfer/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/admin/datatransfer/v1"
 //   ...
-//   adminService, err := admin.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adminService, err := admin.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   adminService, err := admin.NewService(ctx, option.WithScopes(admin.AdminDatatransferReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adminService, err := admin.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adminService, err := admin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package admin // import "google.golang.org/api/admin/datatransfer/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	AdminDatatransferReadonlyScope = "https://www.googleapis.com/auth/admin.datatransfer.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/admin.datatransfer",
+		"https://www.googleapis.com/auth/admin.datatransfer.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/admin/directory/v1/admin-gen.go b/admin/directory/v1/admin-gen.go
index bcbacec..53ed75f 100644
--- a/admin/directory/v1/admin-gen.go
+++ b/admin/directory/v1/admin-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package admin provides access to the Admin Directory API.
 //
-// See https://developers.google.com/admin-sdk/directory/
+// For product documentation, see: https://developers.google.com/admin-sdk/directory/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/admin/directory/v1"
 //   ...
-//   adminService, err := admin.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adminService, err := admin.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   adminService, err := admin.NewService(ctx, option.WithScopes(admin.AdminDirectoryUserschemaReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adminService, err := admin.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adminService, err := admin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package admin // import "google.golang.org/api/admin/directory/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -134,6 +162,58 @@
 	AdminDirectoryUserschemaReadonlyScope = "https://www.googleapis.com/auth/admin.directory.userschema.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/admin.directory.customer",
+		"https://www.googleapis.com/auth/admin.directory.customer.readonly",
+		"https://www.googleapis.com/auth/admin.directory.device.chromeos",
+		"https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly",
+		"https://www.googleapis.com/auth/admin.directory.device.mobile",
+		"https://www.googleapis.com/auth/admin.directory.device.mobile.action",
+		"https://www.googleapis.com/auth/admin.directory.device.mobile.readonly",
+		"https://www.googleapis.com/auth/admin.directory.domain",
+		"https://www.googleapis.com/auth/admin.directory.domain.readonly",
+		"https://www.googleapis.com/auth/admin.directory.group",
+		"https://www.googleapis.com/auth/admin.directory.group.member",
+		"https://www.googleapis.com/auth/admin.directory.group.member.readonly",
+		"https://www.googleapis.com/auth/admin.directory.group.readonly",
+		"https://www.googleapis.com/auth/admin.directory.notifications",
+		"https://www.googleapis.com/auth/admin.directory.orgunit",
+		"https://www.googleapis.com/auth/admin.directory.orgunit.readonly",
+		"https://www.googleapis.com/auth/admin.directory.resource.calendar",
+		"https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly",
+		"https://www.googleapis.com/auth/admin.directory.rolemanagement",
+		"https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly",
+		"https://www.googleapis.com/auth/admin.directory.user",
+		"https://www.googleapis.com/auth/admin.directory.user.alias",
+		"https://www.googleapis.com/auth/admin.directory.user.alias.readonly",
+		"https://www.googleapis.com/auth/admin.directory.user.readonly",
+		"https://www.googleapis.com/auth/admin.directory.user.security",
+		"https://www.googleapis.com/auth/admin.directory.userschema",
+		"https://www.googleapis.com/auth/admin.directory.userschema.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/admin/reports/v1/admin-gen.go b/admin/reports/v1/admin-gen.go
index 8acadba..626848e 100644
--- a/admin/reports/v1/admin-gen.go
+++ b/admin/reports/v1/admin-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package admin provides access to the Admin Reports API.
 //
-// See https://developers.google.com/admin-sdk/reports/
+// For product documentation, see: https://developers.google.com/admin-sdk/reports/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/admin/reports/v1"
 //   ...
-//   adminService, err := admin.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adminService, err := admin.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   adminService, err := admin.NewService(ctx, option.WithScopes(admin.AdminReportsUsageReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adminService, err := admin.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adminService, err := admin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package admin // import "google.golang.org/api/admin/reports/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	AdminReportsUsageReadonlyScope = "https://www.googleapis.com/auth/admin.reports.usage.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/admin.reports.audit.readonly",
+		"https://www.googleapis.com/auth/admin.reports.usage.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/adsense/v1.4/adsense-gen.go b/adsense/v1.4/adsense-gen.go
index ad29c23..dce403e 100644
--- a/adsense/v1.4/adsense-gen.go
+++ b/adsense/v1.4/adsense-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package adsense provides access to the AdSense Management API.
 //
-// See https://developers.google.com/adsense/management/
+// For product documentation, see: https://developers.google.com/adsense/management/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/adsense/v1.4"
 //   ...
-//   adsenseService, err := adsense.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adsenseService, err := adsense.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   adsenseService, err := adsense.NewService(ctx, option.WithScopes(adsense.AdsenseReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adsenseService, err := adsense.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adsenseService, err := adsense.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package adsense // import "google.golang.org/api/adsense/v1.4"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	AdsenseReadonlyScope = "https://www.googleapis.com/auth/adsense.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/adsense",
+		"https://www.googleapis.com/auth/adsense.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/adsensehost/v4.1/adsensehost-gen.go b/adsensehost/v4.1/adsensehost-gen.go
index 4b63333..d0f0f73 100644
--- a/adsensehost/v4.1/adsensehost-gen.go
+++ b/adsensehost/v4.1/adsensehost-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package adsensehost provides access to the AdSense Host API.
 //
-// See https://developers.google.com/adsense/host/
+// For product documentation, see: https://developers.google.com/adsense/host/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/adsensehost/v4.1"
 //   ...
-//   adsensehostService, err := adsensehost.New(oauthHttpClient)
+//   ctx := context.Background()
+//   adsensehostService, err := adsensehost.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   adsensehostService, err := adsensehost.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   adsensehostService, err := adsensehost.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package adsensehost // import "google.golang.org/api/adsensehost/v4.1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AdsensehostScope = "https://www.googleapis.com/auth/adsensehost"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/adsensehost",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/alertcenter/v1beta1/alertcenter-gen.go b/alertcenter/v1beta1/alertcenter-gen.go
index b29f4a1..0bac674 100644
--- a/alertcenter/v1beta1/alertcenter-gen.go
+++ b/alertcenter/v1beta1/alertcenter-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package alertcenter provides access to the G Suite Alert Center API.
 //
-// See https://developers.google.com/admin-sdk/alertcenter/
+// For product documentation, see: https://developers.google.com/admin-sdk/alertcenter/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/alertcenter/v1beta1"
 //   ...
-//   alertcenterService, err := alertcenter.New(oauthHttpClient)
+//   ctx := context.Background()
+//   alertcenterService, err := alertcenter.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   alertcenterService, err := alertcenter.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   alertcenterService, err := alertcenter.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package alertcenter // import "google.golang.org/api/alertcenter/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AppsAlertsScope = "https://www.googleapis.com/auth/apps.alerts"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/apps.alerts",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/analytics/v2.4/analytics-gen.go b/analytics/v2.4/analytics-gen.go
index d5136ed..d944c11 100644
--- a/analytics/v2.4/analytics-gen.go
+++ b/analytics/v2.4/analytics-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package analytics provides access to the Google Analytics API.
 //
-// See https://developers.google.com/analytics/
+// For product documentation, see: https://developers.google.com/analytics/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/analytics/v2.4"
 //   ...
-//   analyticsService, err := analytics.New(oauthHttpClient)
+//   ctx := context.Background()
+//   analyticsService, err := analytics.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   analyticsService, err := analytics.NewService(ctx, option.WithScopes(analytics.AnalyticsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   analyticsService, err := analytics.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   analyticsService, err := analytics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package analytics // import "google.golang.org/api/analytics/v2.4"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	AnalyticsReadonlyScope = "https://www.googleapis.com/auth/analytics.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/analytics",
+		"https://www.googleapis.com/auth/analytics.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/analytics/v3/analytics-gen.go b/analytics/v3/analytics-gen.go
index 19742ec..ed37778 100644
--- a/analytics/v3/analytics-gen.go
+++ b/analytics/v3/analytics-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package analytics provides access to the Google Analytics API.
 //
-// See https://developers.google.com/analytics/
+// For product documentation, see: https://developers.google.com/analytics/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/analytics/v3"
 //   ...
-//   analyticsService, err := analytics.New(oauthHttpClient)
+//   ctx := context.Background()
+//   analyticsService, err := analytics.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   analyticsService, err := analytics.NewService(ctx, option.WithScopes(analytics.AnalyticsUserDeletionScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   analyticsService, err := analytics.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   analyticsService, err := analytics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package analytics // import "google.golang.org/api/analytics/v3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -75,6 +103,38 @@
 	AnalyticsUserDeletionScope = "https://www.googleapis.com/auth/analytics.user.deletion"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/analytics",
+		"https://www.googleapis.com/auth/analytics.edit",
+		"https://www.googleapis.com/auth/analytics.manage.users",
+		"https://www.googleapis.com/auth/analytics.manage.users.readonly",
+		"https://www.googleapis.com/auth/analytics.provision",
+		"https://www.googleapis.com/auth/analytics.readonly",
+		"https://www.googleapis.com/auth/analytics.user.deletion",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/analyticsreporting/v4/analyticsreporting-api.json b/analyticsreporting/v4/analyticsreporting-api.json
index 4b1ab88..903847d 100644
--- a/analyticsreporting/v4/analyticsreporting-api.json
+++ b/analyticsreporting/v4/analyticsreporting-api.json
@@ -18,6 +18,7 @@
   "description": "Accesses Analytics report data.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/analytics/devguides/reporting/core/v4/",
+  "fullyEncodeReservedExpansion": true,
   "icons": {
     "x16": "http://www.google.com/images/icons/product/search-16.gif",
     "x32": "http://www.google.com/images/icons/product/search-32.gif"
@@ -130,7 +131,7 @@
       }
     }
   },
-  "revision": "20180725",
+  "revision": "20190313",
   "rootUrl": "https://analyticsreporting.googleapis.com/",
   "schemas": {
     "Cohort": {
diff --git a/analyticsreporting/v4/analyticsreporting-gen.go b/analyticsreporting/v4/analyticsreporting-gen.go
index 362aeb6..ee9f7a6 100644
--- a/analyticsreporting/v4/analyticsreporting-gen.go
+++ b/analyticsreporting/v4/analyticsreporting-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package analyticsreporting provides access to the Analytics Reporting API.
 //
-// See https://developers.google.com/analytics/devguides/reporting/core/v4/
+// For product documentation, see: https://developers.google.com/analytics/devguides/reporting/core/v4/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/analyticsreporting/v4"
 //   ...
-//   analyticsreportingService, err := analyticsreporting.New(oauthHttpClient)
+//   ctx := context.Background()
+//   analyticsreportingService, err := analyticsreporting.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   analyticsreportingService, err := analyticsreporting.NewService(ctx, option.WithScopes(analyticsreporting.AnalyticsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   analyticsreportingService, err := analyticsreporting.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   analyticsreportingService, err := analyticsreporting.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package analyticsreporting // import "google.golang.org/api/analyticsreporting/v4"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	AnalyticsReadonlyScope = "https://www.googleapis.com/auth/analytics.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/analytics",
+		"https://www.googleapis.com/auth/analytics.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/androiddeviceprovisioning/v1/androiddeviceprovisioning-gen.go b/androiddeviceprovisioning/v1/androiddeviceprovisioning-gen.go
index 58f581a..ea9acce 100644
--- a/androiddeviceprovisioning/v1/androiddeviceprovisioning-gen.go
+++ b/androiddeviceprovisioning/v1/androiddeviceprovisioning-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package androiddeviceprovisioning provides access to the Android Device Provisioning Partner API.
 //
-// See https://developers.google.com/zero-touch/
+// For product documentation, see: https://developers.google.com/zero-touch/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/androiddeviceprovisioning/v1"
 //   ...
-//   androiddeviceprovisioningService, err := androiddeviceprovisioning.New(oauthHttpClient)
+//   ctx := context.Background()
+//   androiddeviceprovisioningService, err := androiddeviceprovisioning.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   androiddeviceprovisioningService, err := androiddeviceprovisioning.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   androiddeviceprovisioningService, err := androiddeviceprovisioning.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package androiddeviceprovisioning // import "google.golang.org/api/androiddeviceprovisioning/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://androiddeviceprovisioning.googleapis.com/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/androidenterprise/v1/androidenterprise-gen.go b/androidenterprise/v1/androidenterprise-gen.go
index c989923..39debce 100644
--- a/androidenterprise/v1/androidenterprise-gen.go
+++ b/androidenterprise/v1/androidenterprise-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package androidenterprise provides access to the Google Play EMM API.
 //
-// See https://developers.google.com/android/work/play/emm-api
+// For product documentation, see: https://developers.google.com/android/work/play/emm-api
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/androidenterprise/v1"
 //   ...
-//   androidenterpriseService, err := androidenterprise.New(oauthHttpClient)
+//   ctx := context.Background()
+//   androidenterpriseService, err := androidenterprise.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   androidenterpriseService, err := androidenterprise.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   androidenterpriseService, err := androidenterprise.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package androidenterprise // import "google.golang.org/api/androidenterprise/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AndroidenterpriseScope = "https://www.googleapis.com/auth/androidenterprise"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/androidenterprise",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/androidmanagement/v1/androidmanagement-gen.go b/androidmanagement/v1/androidmanagement-gen.go
index e1c5ab1..bb80f38 100644
--- a/androidmanagement/v1/androidmanagement-gen.go
+++ b/androidmanagement/v1/androidmanagement-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package androidmanagement provides access to the Android Management API.
 //
-// See https://developers.google.com/android/management
+// For product documentation, see: https://developers.google.com/android/management
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/androidmanagement/v1"
 //   ...
-//   androidmanagementService, err := androidmanagement.New(oauthHttpClient)
+//   ctx := context.Background()
+//   androidmanagementService, err := androidmanagement.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   androidmanagementService, err := androidmanagement.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   androidmanagementService, err := androidmanagement.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package androidmanagement // import "google.golang.org/api/androidmanagement/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AndroidmanagementScope = "https://www.googleapis.com/auth/androidmanagement"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/androidmanagement",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/androidpublisher/v1.1/androidpublisher-gen.go b/androidpublisher/v1.1/androidpublisher-gen.go
index da967e9..aeb7746 100644
--- a/androidpublisher/v1.1/androidpublisher-gen.go
+++ b/androidpublisher/v1.1/androidpublisher-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package androidpublisher provides access to the Google Play Developer API.
 //
-// See https://developers.google.com/android-publisher
+// For product documentation, see: https://developers.google.com/android-publisher
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/androidpublisher/v1.1"
 //   ...
-//   androidpublisherService, err := androidpublisher.New(oauthHttpClient)
+//   ctx := context.Background()
+//   androidpublisherService, err := androidpublisher.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   androidpublisherService, err := androidpublisher.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   androidpublisherService, err := androidpublisher.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package androidpublisher // import "google.golang.org/api/androidpublisher/v1.1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AndroidpublisherScope = "https://www.googleapis.com/auth/androidpublisher"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/androidpublisher",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/androidpublisher/v1/androidpublisher-gen.go b/androidpublisher/v1/androidpublisher-gen.go
index 2723492..8befea5 100644
--- a/androidpublisher/v1/androidpublisher-gen.go
+++ b/androidpublisher/v1/androidpublisher-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package androidpublisher provides access to the Google Play Developer API.
 //
-// See https://developers.google.com/android-publisher
+// For product documentation, see: https://developers.google.com/android-publisher
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/androidpublisher/v1"
 //   ...
-//   androidpublisherService, err := androidpublisher.New(oauthHttpClient)
+//   ctx := context.Background()
+//   androidpublisherService, err := androidpublisher.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   androidpublisherService, err := androidpublisher.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   androidpublisherService, err := androidpublisher.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package androidpublisher // import "google.golang.org/api/androidpublisher/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AndroidpublisherScope = "https://www.googleapis.com/auth/androidpublisher"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/androidpublisher",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/androidpublisher/v2/androidpublisher-gen.go b/androidpublisher/v2/androidpublisher-gen.go
index d60616c..ea2d2ac 100644
--- a/androidpublisher/v2/androidpublisher-gen.go
+++ b/androidpublisher/v2/androidpublisher-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package androidpublisher provides access to the Google Play Developer API.
 //
-// See https://developers.google.com/android-publisher
+// For product documentation, see: https://developers.google.com/android-publisher
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/androidpublisher/v2"
 //   ...
-//   androidpublisherService, err := androidpublisher.New(oauthHttpClient)
+//   ctx := context.Background()
+//   androidpublisherService, err := androidpublisher.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   androidpublisherService, err := androidpublisher.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   androidpublisherService, err := androidpublisher.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package androidpublisher // import "google.golang.org/api/androidpublisher/v2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AndroidpublisherScope = "https://www.googleapis.com/auth/androidpublisher"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/androidpublisher",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/androidpublisher/v3/androidpublisher-gen.go b/androidpublisher/v3/androidpublisher-gen.go
index d31b6e9..6edeec4 100644
--- a/androidpublisher/v3/androidpublisher-gen.go
+++ b/androidpublisher/v3/androidpublisher-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package androidpublisher provides access to the Google Play Developer API.
 //
-// See https://developers.google.com/android-publisher
+// For product documentation, see: https://developers.google.com/android-publisher
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/androidpublisher/v3"
 //   ...
-//   androidpublisherService, err := androidpublisher.New(oauthHttpClient)
+//   ctx := context.Background()
+//   androidpublisherService, err := androidpublisher.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   androidpublisherService, err := androidpublisher.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   androidpublisherService, err := androidpublisher.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package androidpublisher // import "google.golang.org/api/androidpublisher/v3"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AndroidpublisherScope = "https://www.googleapis.com/auth/androidpublisher"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/androidpublisher",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/appengine/v1/appengine-gen.go b/appengine/v1/appengine-gen.go
index 29c094c..17593cf 100644
--- a/appengine/v1/appengine-gen.go
+++ b/appengine/v1/appengine-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package appengine provides access to the App Engine Admin API.
 //
-// See https://cloud.google.com/appengine/docs/admin-api/
+// For product documentation, see: https://cloud.google.com/appengine/docs/admin-api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/appengine/v1"
 //   ...
-//   appengineService, err := appengine.New(oauthHttpClient)
+//   ctx := context.Background()
+//   appengineService, err := appengine.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   appengineService, err := appengine.NewService(ctx, option.WithScopes(appengine.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   appengineService, err := appengine.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   appengineService, err := appengine.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package appengine // import "google.golang.org/api/appengine/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/appengine.admin",
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/appengine/v1alpha/appengine-gen.go b/appengine/v1alpha/appengine-gen.go
index 53b0103..88344e7 100644
--- a/appengine/v1alpha/appengine-gen.go
+++ b/appengine/v1alpha/appengine-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package appengine provides access to the App Engine Admin API.
 //
-// See https://cloud.google.com/appengine/docs/admin-api/
+// For product documentation, see: https://cloud.google.com/appengine/docs/admin-api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/appengine/v1alpha"
 //   ...
-//   appengineService, err := appengine.New(oauthHttpClient)
+//   ctx := context.Background()
+//   appengineService, err := appengine.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   appengineService, err := appengine.NewService(ctx, option.WithScopes(appengine.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   appengineService, err := appengine.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   appengineService, err := appengine.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package appengine // import "google.golang.org/api/appengine/v1alpha"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/appengine.admin",
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/appengine/v1beta/appengine-gen.go b/appengine/v1beta/appengine-gen.go
index 13031eb..3ff8ce9 100644
--- a/appengine/v1beta/appengine-gen.go
+++ b/appengine/v1beta/appengine-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package appengine provides access to the App Engine Admin API.
 //
-// See https://cloud.google.com/appengine/docs/admin-api/
+// For product documentation, see: https://cloud.google.com/appengine/docs/admin-api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/appengine/v1beta"
 //   ...
-//   appengineService, err := appengine.New(oauthHttpClient)
+//   ctx := context.Background()
+//   appengineService, err := appengine.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   appengineService, err := appengine.NewService(ctx, option.WithScopes(appengine.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   appengineService, err := appengine.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   appengineService, err := appengine.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package appengine // import "google.golang.org/api/appengine/v1beta"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/appengine.admin",
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/appsactivity/v1/appsactivity-gen.go b/appsactivity/v1/appsactivity-gen.go
index fc1435c..2a29c8c 100644
--- a/appsactivity/v1/appsactivity-gen.go
+++ b/appsactivity/v1/appsactivity-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package appsactivity provides access to the Drive Activity API.
 //
-// See https://developers.google.com/google-apps/activity/
+// For product documentation, see: https://developers.google.com/google-apps/activity/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/appsactivity/v1"
 //   ...
-//   appsactivityService, err := appsactivity.New(oauthHttpClient)
+//   ctx := context.Background()
+//   appsactivityService, err := appsactivity.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   appsactivityService, err := appsactivity.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   appsactivityService, err := appsactivity.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package appsactivity // import "google.golang.org/api/appsactivity/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	ActivityScope = "https://www.googleapis.com/auth/activity"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/activity",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/appstate/v1/appstate-gen.go b/appstate/v1/appstate-gen.go
index 8497fc4..6c8cb70 100644
--- a/appstate/v1/appstate-gen.go
+++ b/appstate/v1/appstate-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package appstate provides access to the Google App State API.
 //
-// See https://developers.google.com/games/services/web/api/states
+// For product documentation, see: https://developers.google.com/games/services/web/api/states
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/appstate/v1"
 //   ...
-//   appstateService, err := appstate.New(oauthHttpClient)
+//   ctx := context.Background()
+//   appstateService, err := appstate.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   appstateService, err := appstate.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   appstateService, err := appstate.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package appstate // import "google.golang.org/api/appstate/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AppstateScope = "https://www.googleapis.com/auth/appstate"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/appstate",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/bigquery/v2/bigquery-gen.go b/bigquery/v2/bigquery-gen.go
index 03f33f6..a9495c3 100644
--- a/bigquery/v2/bigquery-gen.go
+++ b/bigquery/v2/bigquery-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/bigquery instead.
 //
-// See https://cloud.google.com/bigquery/
+// For product documentation, see: https://cloud.google.com/bigquery/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/bigquery/v2"
 //   ...
-//   bigqueryService, err := bigquery.New(oauthHttpClient)
+//   ctx := context.Background()
+//   bigqueryService, err := bigquery.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   bigqueryService, err := bigquery.NewService(ctx, option.WithScopes(bigquery.DevstorageReadWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   bigqueryService, err := bigquery.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   bigqueryService, err := bigquery.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package bigquery // import "google.golang.org/api/bigquery/v2"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -76,6 +104,38 @@
 	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/bigquery",
+		"https://www.googleapis.com/auth/bigquery.insertdata",
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/devstorage.full_control",
+		"https://www.googleapis.com/auth/devstorage.read_only",
+		"https://www.googleapis.com/auth/devstorage.read_write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/bigquerydatatransfer/v1/bigquerydatatransfer-api.json b/bigquerydatatransfer/v1/bigquerydatatransfer-api.json
index 087540c..32ce111 100644
--- a/bigquerydatatransfer/v1/bigquerydatatransfer-api.json
+++ b/bigquerydatatransfer/v1/bigquerydatatransfer-api.json
@@ -1165,7 +1165,7 @@
       }
     }
   },
-  "revision": "20190304",
+  "revision": "20190309",
   "rootUrl": "https://bigquerydatatransfer.googleapis.com/",
   "schemas": {
     "CheckValidCredsRequest": {
@@ -1579,7 +1579,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go b/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go
index 36e40b7..680ce8c 100644
--- a/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go
+++ b/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package bigquerydatatransfer provides access to the BigQuery Data Transfer API.
 //
-// See https://cloud.google.com/bigquery/
+// For product documentation, see: https://cloud.google.com/bigquery/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/bigquerydatatransfer/v1"
 //   ...
-//   bigquerydatatransferService, err := bigquerydatatransfer.New(oauthHttpClient)
+//   ctx := context.Background()
+//   bigquerydatatransferService, err := bigquerydatatransfer.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   bigquerydatatransferService, err := bigquerydatatransfer.NewService(ctx, option.WithScopes(bigquerydatatransfer.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   bigquerydatatransferService, err := bigquerydatatransfer.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   bigquerydatatransferService, err := bigquerydatatransfer.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package bigquerydatatransfer // import "google.golang.org/api/bigquerydatatransfer/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/bigquery",
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -898,20 +954,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/bigtableadmin/v1/bigtableadmin-gen.go b/bigtableadmin/v1/bigtableadmin-gen.go
index c81cefb..423468d 100644
--- a/bigtableadmin/v1/bigtableadmin-gen.go
+++ b/bigtableadmin/v1/bigtableadmin-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package bigtableadmin provides access to the Cloud Bigtable Admin API.
 //
-// See https://cloud.google.com/bigtable/
+// For product documentation, see: https://cloud.google.com/bigtable/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/bigtableadmin/v1"
 //   ...
-//   bigtableadminService, err := bigtableadmin.New(oauthHttpClient)
+//   ctx := context.Background()
+//   bigtableadminService, err := bigtableadmin.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package bigtableadmin // import "google.golang.org/api/bigtableadmin/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://bigtableadmin.googleapis.com/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/bigtableadmin/v2/bigtableadmin-gen.go b/bigtableadmin/v2/bigtableadmin-gen.go
index 5650fa5..2a3ce46 100644
--- a/bigtableadmin/v2/bigtableadmin-gen.go
+++ b/bigtableadmin/v2/bigtableadmin-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package bigtableadmin provides access to the Cloud Bigtable Admin API.
 //
-// See https://cloud.google.com/bigtable/
+// For product documentation, see: https://cloud.google.com/bigtable/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/bigtableadmin/v2"
 //   ...
-//   bigtableadminService, err := bigtableadmin.New(oauthHttpClient)
+//   ctx := context.Background()
+//   bigtableadminService, err := bigtableadmin.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithScopes(bigtableadmin.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package bigtableadmin // import "google.golang.org/api/bigtableadmin/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -80,6 +108,40 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/bigtable.admin",
+		"https://www.googleapis.com/auth/bigtable.admin.cluster",
+		"https://www.googleapis.com/auth/bigtable.admin.instance",
+		"https://www.googleapis.com/auth/bigtable.admin.table",
+		"https://www.googleapis.com/auth/cloud-bigtable.admin",
+		"https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
+		"https://www.googleapis.com/auth/cloud-bigtable.admin.table",
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/binaryauthorization/v1beta1/binaryauthorization-gen.go b/binaryauthorization/v1beta1/binaryauthorization-gen.go
index 159ce2c..ecc6948 100644
--- a/binaryauthorization/v1beta1/binaryauthorization-gen.go
+++ b/binaryauthorization/v1beta1/binaryauthorization-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package binaryauthorization provides access to the Binary Authorization API.
 //
-// See https://cloud.google.com/binary-authorization/
+// For product documentation, see: https://cloud.google.com/binary-authorization/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/binaryauthorization/v1beta1"
 //   ...
-//   binaryauthorizationService, err := binaryauthorization.New(oauthHttpClient)
+//   ctx := context.Background()
+//   binaryauthorizationService, err := binaryauthorization.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   binaryauthorizationService, err := binaryauthorization.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   binaryauthorizationService, err := binaryauthorization.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package binaryauthorization // import "google.golang.org/api/binaryauthorization/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/blogger/v2/blogger-gen.go b/blogger/v2/blogger-gen.go
index c478c59..c0d8b39 100644
--- a/blogger/v2/blogger-gen.go
+++ b/blogger/v2/blogger-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package blogger provides access to the Blogger API.
 //
-// See https://developers.google.com/blogger/docs/2.0/json/getting_started
+// For product documentation, see: https://developers.google.com/blogger/docs/2.0/json/getting_started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/blogger/v2"
 //   ...
-//   bloggerService, err := blogger.New(oauthHttpClient)
+//   ctx := context.Background()
+//   bloggerService, err := blogger.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   bloggerService, err := blogger.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   bloggerService, err := blogger.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package blogger // import "google.golang.org/api/blogger/v2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	BloggerScope = "https://www.googleapis.com/auth/blogger"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/blogger",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/blogger/v3/blogger-gen.go b/blogger/v3/blogger-gen.go
index 1ffe70d..b230d03 100644
--- a/blogger/v3/blogger-gen.go
+++ b/blogger/v3/blogger-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package blogger provides access to the Blogger API.
 //
-// See https://developers.google.com/blogger/docs/3.0/getting_started
+// For product documentation, see: https://developers.google.com/blogger/docs/3.0/getting_started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/blogger/v3"
 //   ...
-//   bloggerService, err := blogger.New(oauthHttpClient)
+//   ctx := context.Background()
+//   bloggerService, err := blogger.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   bloggerService, err := blogger.NewService(ctx, option.WithScopes(blogger.BloggerReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   bloggerService, err := blogger.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   bloggerService, err := blogger.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package blogger // import "google.golang.org/api/blogger/v3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	BloggerReadonlyScope = "https://www.googleapis.com/auth/blogger.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/blogger",
+		"https://www.googleapis.com/auth/blogger.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/books/v1/books-gen.go b/books/v1/books-gen.go
index 96bbda0..f9d291c 100644
--- a/books/v1/books-gen.go
+++ b/books/v1/books-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package books provides access to the Books API.
 //
-// See https://developers.google.com/books/docs/v1/getting_started
+// For product documentation, see: https://developers.google.com/books/docs/v1/getting_started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/books/v1"
 //   ...
-//   booksService, err := books.New(oauthHttpClient)
+//   ctx := context.Background()
+//   booksService, err := books.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   booksService, err := books.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   booksService, err := books.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package books // import "google.golang.org/api/books/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	BooksScope = "https://www.googleapis.com/auth/books"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/books",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/calendar/v3/calendar-gen.go b/calendar/v3/calendar-gen.go
index 9c01780..2738953 100644
--- a/calendar/v3/calendar-gen.go
+++ b/calendar/v3/calendar-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package calendar provides access to the Calendar API.
 //
-// See https://developers.google.com/google-apps/calendar/firstapp
+// For product documentation, see: https://developers.google.com/google-apps/calendar/firstapp
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/calendar/v3"
 //   ...
-//   calendarService, err := calendar.New(oauthHttpClient)
+//   ctx := context.Background()
+//   calendarService, err := calendar.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   calendarService, err := calendar.NewService(ctx, option.WithScopes(calendar.CalendarSettingsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   calendarService, err := calendar.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   calendarService, err := calendar.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package calendar // import "google.golang.org/api/calendar/v3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -69,6 +97,36 @@
 	CalendarSettingsReadonlyScope = "https://www.googleapis.com/auth/calendar.settings.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/calendar",
+		"https://www.googleapis.com/auth/calendar.events",
+		"https://www.googleapis.com/auth/calendar.events.readonly",
+		"https://www.googleapis.com/auth/calendar.readonly",
+		"https://www.googleapis.com/auth/calendar.settings.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/chat/v1/chat-gen.go b/chat/v1/chat-gen.go
index f4aff89..09da0a0 100644
--- a/chat/v1/chat-gen.go
+++ b/chat/v1/chat-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package chat provides access to the Hangouts Chat API.
 //
-// See https://developers.google.com/hangouts/chat
+// For product documentation, see: https://developers.google.com/hangouts/chat
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/chat/v1"
 //   ...
-//   chatService, err := chat.New(oauthHttpClient)
+//   ctx := context.Background()
+//   chatService, err := chat.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   chatService, err := chat.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   chatService, err := chat.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package chat // import "google.golang.org/api/chat/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://chat.googleapis.com/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/civicinfo/v2/civicinfo-gen.go b/civicinfo/v2/civicinfo-gen.go
index cf16965..b345a89 100644
--- a/civicinfo/v2/civicinfo-gen.go
+++ b/civicinfo/v2/civicinfo-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package civicinfo provides access to the Google Civic Information API.
 //
-// See https://developers.google.com/civic-information
+// For product documentation, see: https://developers.google.com/civic-information
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/civicinfo/v2"
 //   ...
-//   civicinfoService, err := civicinfo.New(oauthHttpClient)
+//   ctx := context.Background()
+//   civicinfoService, err := civicinfo.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   civicinfoService, err := civicinfo.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   civicinfoService, err := civicinfo.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package civicinfo // import "google.golang.org/api/civicinfo/v2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v2"
 const basePath = "https://www.googleapis.com/civicinfo/v2/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/classroom/v1/classroom-gen.go b/classroom/v1/classroom-gen.go
index d239475..97701c9 100644
--- a/classroom/v1/classroom-gen.go
+++ b/classroom/v1/classroom-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package classroom provides access to the Google Classroom API.
 //
-// See https://developers.google.com/classroom/
+// For product documentation, see: https://developers.google.com/classroom/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/classroom/v1"
 //   ...
-//   classroomService, err := classroom.New(oauthHttpClient)
+//   ctx := context.Background()
+//   classroomService, err := classroom.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   classroomService, err := classroom.NewService(ctx, option.WithScopes(classroom.ClassroomStudentSubmissionsStudentsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   classroomService, err := classroom.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   classroomService, err := classroom.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package classroom // import "google.golang.org/api/classroom/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -112,6 +140,49 @@
 	ClassroomStudentSubmissionsStudentsReadonlyScope = "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/classroom.announcements",
+		"https://www.googleapis.com/auth/classroom.announcements.readonly",
+		"https://www.googleapis.com/auth/classroom.courses",
+		"https://www.googleapis.com/auth/classroom.courses.readonly",
+		"https://www.googleapis.com/auth/classroom.coursework.me",
+		"https://www.googleapis.com/auth/classroom.coursework.me.readonly",
+		"https://www.googleapis.com/auth/classroom.coursework.students",
+		"https://www.googleapis.com/auth/classroom.coursework.students.readonly",
+		"https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly",
+		"https://www.googleapis.com/auth/classroom.guardianlinks.students",
+		"https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly",
+		"https://www.googleapis.com/auth/classroom.profile.emails",
+		"https://www.googleapis.com/auth/classroom.profile.photos",
+		"https://www.googleapis.com/auth/classroom.push-notifications",
+		"https://www.googleapis.com/auth/classroom.rosters",
+		"https://www.googleapis.com/auth/classroom.rosters.readonly",
+		"https://www.googleapis.com/auth/classroom.student-submissions.me.readonly",
+		"https://www.googleapis.com/auth/classroom.student-submissions.students.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudasset/v1beta1/cloudasset-api.json b/cloudasset/v1beta1/cloudasset-api.json
index a96bb07..eb695c4 100644
--- a/cloudasset/v1beta1/cloudasset-api.json
+++ b/cloudasset/v1beta1/cloudasset-api.json
@@ -400,7 +400,7 @@
       }
     }
   },
-  "revision": "20190302",
+  "revision": "20190311",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "Asset": {
@@ -694,7 +694,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/cloudasset/v1beta1/cloudasset-gen.go b/cloudasset/v1beta1/cloudasset-gen.go
index 868ca73..b8d0805 100644
--- a/cloudasset/v1beta1/cloudasset-gen.go
+++ b/cloudasset/v1beta1/cloudasset-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudasset provides access to the Cloud Asset API.
 //
-// See https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview
+// For product documentation, see: https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudasset/v1beta1"
 //   ...
-//   cloudassetService, err := cloudasset.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudassetService, err := cloudasset.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudassetService, err := cloudasset.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudassetService, err := cloudasset.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudasset // import "google.golang.org/api/cloudasset/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -899,20 +949,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/cloudbilling/v1/cloudbilling-api.json b/cloudbilling/v1/cloudbilling-api.json
index 5a5769f..2f3d630 100644
--- a/cloudbilling/v1/cloudbilling-api.json
+++ b/cloudbilling/v1/cloudbilling-api.json
@@ -488,7 +488,7 @@
       }
     }
   },
-  "revision": "20190114",
+  "revision": "20190310",
   "rootUrl": "https://cloudbilling.googleapis.com/",
   "schemas": {
     "AggregationInfo": {
@@ -609,7 +609,7 @@
           "description": "Unimplemented. The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently."
         },
         "members": {
-          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
+          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
           "items": {
             "type": "string"
           },
diff --git a/cloudbilling/v1/cloudbilling-gen.go b/cloudbilling/v1/cloudbilling-gen.go
index ed4d2a2..9a865a5 100644
--- a/cloudbilling/v1/cloudbilling-gen.go
+++ b/cloudbilling/v1/cloudbilling-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudbilling provides access to the Cloud Billing API.
 //
-// See https://cloud.google.com/billing/
+// For product documentation, see: https://cloud.google.com/billing/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudbilling/v1"
 //   ...
-//   cloudbillingService, err := cloudbilling.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudbillingService, err := cloudbilling.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudbillingService, err := cloudbilling.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudbillingService, err := cloudbilling.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudbilling // import "google.golang.org/api/cloudbilling/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -437,7 +487,7 @@
 	//    For example, `admins@example.com`.
 	//
 	//
-	// * `domain:{domain}`: A Google Apps domain name that represents all
+	// * `domain:{domain}`: The G Suite domain (primary) that represents all
 	// the
 	//    users of that domain. For example, `google.com` or
 	// `example.com`.
diff --git a/cloudbuild/v1/cloudbuild-api.json b/cloudbuild/v1/cloudbuild-api.json
index 65b8987..4a5857d 100644
--- a/cloudbuild/v1/cloudbuild-api.json
+++ b/cloudbuild/v1/cloudbuild-api.json
@@ -562,7 +562,7 @@
       }
     }
   },
-  "revision": "20190307",
+  "revision": "20190314",
   "rootUrl": "https://cloudbuild.googleapis.com/",
   "schemas": {
     "ArtifactObjects": {
@@ -1324,6 +1324,10 @@
           "description": "Path to the artifact manifest. Only populated when artifacts are uploaded.",
           "type": "string"
         },
+        "artifactTiming": {
+          "$ref": "TimeSpan",
+          "description": "Time to push all non-container artifacts."
+        },
         "buildStepImages": {
           "description": "List of build step digests, in the order corresponding to build step\nindices.",
           "items": {
diff --git a/cloudbuild/v1/cloudbuild-gen.go b/cloudbuild/v1/cloudbuild-gen.go
index d0c4a34..d03fa2a 100644
--- a/cloudbuild/v1/cloudbuild-gen.go
+++ b/cloudbuild/v1/cloudbuild-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudbuild provides access to the Cloud Build API.
 //
-// See https://cloud.google.com/cloud-build/docs/
+// For product documentation, see: https://cloud.google.com/cloud-build/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudbuild/v1"
 //   ...
-//   cloudbuildService, err := cloudbuild.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudbuildService, err := cloudbuild.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudbuildService, err := cloudbuild.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudbuildService, err := cloudbuild.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudbuild // import "google.golang.org/api/cloudbuild/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1386,6 +1436,9 @@
 	// artifacts are uploaded.
 	ArtifactManifest string `json:"artifactManifest,omitempty"`
 
+	// ArtifactTiming: Time to push all non-container artifacts.
+	ArtifactTiming *TimeSpan `json:"artifactTiming,omitempty"`
+
 	// BuildStepImages: List of build step digests, in the order
 	// corresponding to build step
 	// indices.
diff --git a/cloudbuild/v1alpha1/cloudbuild-api.json b/cloudbuild/v1alpha1/cloudbuild-api.json
index bd7b437..abb4f85 100644
--- a/cloudbuild/v1alpha1/cloudbuild-api.json
+++ b/cloudbuild/v1alpha1/cloudbuild-api.json
@@ -244,7 +244,7 @@
       }
     }
   },
-  "revision": "20190307",
+  "revision": "20190314",
   "rootUrl": "https://cloudbuild.googleapis.com/",
   "schemas": {
     "ArtifactObjects": {
@@ -805,6 +805,10 @@
           "description": "Path to the artifact manifest. Only populated when artifacts are uploaded.",
           "type": "string"
         },
+        "artifactTiming": {
+          "$ref": "TimeSpan",
+          "description": "Time to push all non-container artifacts."
+        },
         "buildStepImages": {
           "description": "List of build step digests, in the order corresponding to build step\nindices.",
           "items": {
diff --git a/cloudbuild/v1alpha1/cloudbuild-gen.go b/cloudbuild/v1alpha1/cloudbuild-gen.go
index 422bccd..c21f8f9 100644
--- a/cloudbuild/v1alpha1/cloudbuild-gen.go
+++ b/cloudbuild/v1alpha1/cloudbuild-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudbuild provides access to the Cloud Build API.
 //
-// See https://cloud.google.com/cloud-build/docs/
+// For product documentation, see: https://cloud.google.com/cloud-build/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudbuild/v1alpha1"
 //   ...
-//   cloudbuildService, err := cloudbuild.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudbuildService, err := cloudbuild.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudbuildService, err := cloudbuild.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudbuildService, err := cloudbuild.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudbuild // import "google.golang.org/api/cloudbuild/v1alpha1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1005,6 +1055,9 @@
 	// artifacts are uploaded.
 	ArtifactManifest string `json:"artifactManifest,omitempty"`
 
+	// ArtifactTiming: Time to push all non-container artifacts.
+	ArtifactTiming *TimeSpan `json:"artifactTiming,omitempty"`
+
 	// BuildStepImages: List of build step digests, in the order
 	// corresponding to build step
 	// indices.
diff --git a/clouddebugger/v2/clouddebugger-gen.go b/clouddebugger/v2/clouddebugger-gen.go
index cca03ed..9026d5e 100644
--- a/clouddebugger/v2/clouddebugger-gen.go
+++ b/clouddebugger/v2/clouddebugger-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package clouddebugger provides access to the Stackdriver Debugger API.
 //
-// See https://cloud.google.com/debugger
+// For product documentation, see: https://cloud.google.com/debugger
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/clouddebugger/v2"
 //   ...
-//   clouddebuggerService, err := clouddebugger.New(oauthHttpClient)
+//   ctx := context.Background()
+//   clouddebuggerService, err := clouddebugger.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   clouddebuggerService, err := clouddebugger.NewService(ctx, option.WithScopes(clouddebugger.CloudDebuggerScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   clouddebuggerService, err := clouddebugger.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   clouddebuggerService, err := clouddebugger.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package clouddebugger // import "google.golang.org/api/clouddebugger/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	CloudDebuggerScope = "https://www.googleapis.com/auth/cloud_debugger"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud_debugger",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/clouderrorreporting/v1beta1/clouderrorreporting-gen.go b/clouderrorreporting/v1beta1/clouderrorreporting-gen.go
index 36dba60..789deb9 100644
--- a/clouderrorreporting/v1beta1/clouderrorreporting-gen.go
+++ b/clouderrorreporting/v1beta1/clouderrorreporting-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package clouderrorreporting provides access to the Stackdriver Error Reporting API.
 //
-// See https://cloud.google.com/error-reporting/
+// For product documentation, see: https://cloud.google.com/error-reporting/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/clouderrorreporting/v1beta1"
 //   ...
-//   clouderrorreportingService, err := clouderrorreporting.New(oauthHttpClient)
+//   ctx := context.Background()
+//   clouderrorreportingService, err := clouderrorreporting.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   clouderrorreportingService, err := clouderrorreporting.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   clouderrorreportingService, err := clouderrorreporting.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package clouderrorreporting // import "google.golang.org/api/clouderrorreporting/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudfunctions/v1/cloudfunctions-api.json b/cloudfunctions/v1/cloudfunctions-api.json
index a72427d..bcf3eb4 100644
--- a/cloudfunctions/v1/cloudfunctions-api.json
+++ b/cloudfunctions/v1/cloudfunctions-api.json
@@ -539,7 +539,7 @@
       }
     }
   },
-  "revision": "20190222",
+  "revision": "20190305",
   "rootUrl": "https://cloudfunctions.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -695,7 +695,7 @@
           "type": "string"
         },
         "runtime": {
-          "description": "The runtime in which the function is going to run. If empty, defaults to\nNode.js 6.",
+          "description": "The runtime in which the function is going to run. Example values include:\n`go111`: for Go 1.11\n`nodejs6`: for Node.js 6\n`nodejs8`: for Node.js 8\n`nodejs10`: for Node.js 10\n`python37`: for Python 3.7\n`ruby25`: for Ruby 2.5\n\nIf empty, defaults to `nodejs6`.",
           "type": "string"
         },
         "serviceAccountEmail": {
diff --git a/cloudfunctions/v1/cloudfunctions-gen.go b/cloudfunctions/v1/cloudfunctions-gen.go
index c0a29bb..3adf32a 100644
--- a/cloudfunctions/v1/cloudfunctions-gen.go
+++ b/cloudfunctions/v1/cloudfunctions-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudfunctions provides access to the Cloud Functions API.
 //
-// See https://cloud.google.com/functions
+// For product documentation, see: https://cloud.google.com/functions
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudfunctions/v1"
 //   ...
-//   cloudfunctionsService, err := cloudfunctions.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudfunctionsService, err := cloudfunctions.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudfunctionsService, err := cloudfunctions.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudfunctionsService, err := cloudfunctions.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudfunctions // import "google.golang.org/api/cloudfunctions/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -504,9 +554,16 @@
 	// users.
 	Network string `json:"network,omitempty"`
 
-	// Runtime: The runtime in which the function is going to run. If empty,
-	// defaults to
-	// Node.js 6.
+	// Runtime: The runtime in which the function is going to run. Example
+	// values include:
+	// `go111`: for Go 1.11
+	// `nodejs6`: for Node.js 6
+	// `nodejs8`: for Node.js 8
+	// `nodejs10`: for Node.js 10
+	// `python37`: for Python 3.7
+	// `ruby25`: for Ruby 2.5
+	//
+	// If empty, defaults to `nodejs6`.
 	Runtime string `json:"runtime,omitempty"`
 
 	// ServiceAccountEmail: The email of the function's service account. If
diff --git a/cloudfunctions/v1beta2/cloudfunctions-gen.go b/cloudfunctions/v1beta2/cloudfunctions-gen.go
index eef75cc..eee49a5 100644
--- a/cloudfunctions/v1beta2/cloudfunctions-gen.go
+++ b/cloudfunctions/v1beta2/cloudfunctions-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudfunctions provides access to the Cloud Functions API.
 //
-// See https://cloud.google.com/functions
+// For product documentation, see: https://cloud.google.com/functions
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudfunctions/v1beta2"
 //   ...
-//   cloudfunctionsService, err := cloudfunctions.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudfunctionsService, err := cloudfunctions.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudfunctionsService, err := cloudfunctions.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudfunctionsService, err := cloudfunctions.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudfunctions // import "google.golang.org/api/cloudfunctions/v1beta2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudidentity/v1/cloudidentity-gen.go b/cloudidentity/v1/cloudidentity-gen.go
index 3f5a7ff..ac74f01 100644
--- a/cloudidentity/v1/cloudidentity-gen.go
+++ b/cloudidentity/v1/cloudidentity-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudidentity provides access to the Cloud Identity API.
 //
-// See https://cloud.google.com/identity/
+// For product documentation, see: https://cloud.google.com/identity/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudidentity/v1"
 //   ...
-//   cloudidentityService, err := cloudidentity.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudidentityService, err := cloudidentity.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudidentityService, err := cloudidentity.NewService(ctx, option.WithScopes(cloudidentity.CloudIdentityGroupsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudidentityService, err := cloudidentity.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudidentityService, err := cloudidentity.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudidentity // import "google.golang.org/api/cloudidentity/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	CloudIdentityGroupsReadonlyScope = "https://www.googleapis.com/auth/cloud-identity.groups.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-identity.groups",
+		"https://www.googleapis.com/auth/cloud-identity.groups.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudidentity/v1beta1/cloudidentity-gen.go b/cloudidentity/v1beta1/cloudidentity-gen.go
index 21d3121..079a1a7 100644
--- a/cloudidentity/v1beta1/cloudidentity-gen.go
+++ b/cloudidentity/v1beta1/cloudidentity-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudidentity provides access to the Cloud Identity API.
 //
-// See https://cloud.google.com/identity/
+// For product documentation, see: https://cloud.google.com/identity/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudidentity/v1beta1"
 //   ...
-//   cloudidentityService, err := cloudidentity.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudidentityService, err := cloudidentity.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudidentityService, err := cloudidentity.NewService(ctx, option.WithScopes(cloudidentity.CloudIdentityGroupsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudidentityService, err := cloudidentity.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudidentityService, err := cloudidentity.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudidentity // import "google.golang.org/api/cloudidentity/v1beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	CloudIdentityGroupsReadonlyScope = "https://www.googleapis.com/auth/cloud-identity.groups.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-identity.groups",
+		"https://www.googleapis.com/auth/cloud-identity.groups.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudiot/v1/cloudiot-api.json b/cloudiot/v1/cloudiot-api.json
index 0399858..7c54fd5 100644
--- a/cloudiot/v1/cloudiot-api.json
+++ b/cloudiot/v1/cloudiot-api.json
@@ -1184,7 +1184,7 @@
       }
     }
   },
-  "revision": "20181120",
+  "revision": "20190306",
   "rootUrl": "https://cloudiot.googleapis.com/",
   "schemas": {
     "BindDeviceToGatewayRequest": {
@@ -1217,7 +1217,7 @@
           "description": "Unimplemented. The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently."
         },
         "members": {
-          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
+          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
           "items": {
             "type": "string"
           },
@@ -1806,7 +1806,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/cloudiot/v1/cloudiot-gen.go b/cloudiot/v1/cloudiot-gen.go
index 4ad8198..01942f7 100644
--- a/cloudiot/v1/cloudiot-gen.go
+++ b/cloudiot/v1/cloudiot-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudiot provides access to the Cloud IoT API.
 //
-// See https://cloud.google.com/iot
+// For product documentation, see: https://cloud.google.com/iot
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudiot/v1"
 //   ...
-//   cloudiotService, err := cloudiot.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudiotService, err := cloudiot.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudiotService, err := cloudiot.NewService(ctx, option.WithScopes(cloudiot.CloudiotScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudiotService, err := cloudiot.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudiotService, err := cloudiot.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudiot // import "google.golang.org/api/cloudiot/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	CloudiotScope = "https://www.googleapis.com/auth/cloudiot"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloudiot",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -282,7 +337,7 @@
 	//    For example, `admins@example.com`.
 	//
 	//
-	// * `domain:{domain}`: A Google Apps domain name that represents all
+	// * `domain:{domain}`: The G Suite domain (primary) that represents all
 	// the
 	//    users of that domain. For example, `google.com` or
 	// `example.com`.
@@ -1572,20 +1627,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/cloudkms/v1/cloudkms-gen.go b/cloudkms/v1/cloudkms-gen.go
index 8e58eb4..dab0043 100644
--- a/cloudkms/v1/cloudkms-gen.go
+++ b/cloudkms/v1/cloudkms-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/kms/apiv1 instead.
 //
-// See https://cloud.google.com/kms/
+// For product documentation, see: https://cloud.google.com/kms/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudkms/v1"
 //   ...
-//   cloudkmsService, err := cloudkms.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudkmsService, err := cloudkms.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudkmsService, err := cloudkms.NewService(ctx, option.WithScopes(cloudkms.CloudkmsScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudkmsService, err := cloudkms.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudkmsService, err := cloudkms.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudkms // import "google.golang.org/api/cloudkms/v1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,33 @@
 	CloudkmsScope = "https://www.googleapis.com/auth/cloudkms"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloudkms",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudprivatecatalog/v1beta1/cloudprivatecatalog-gen.go b/cloudprivatecatalog/v1beta1/cloudprivatecatalog-gen.go
index b4f9396..9173df5 100644
--- a/cloudprivatecatalog/v1beta1/cloudprivatecatalog-gen.go
+++ b/cloudprivatecatalog/v1beta1/cloudprivatecatalog-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudprivatecatalog provides access to the Cloud Private Catalog API.
 //
-// See https://sites.google.com/corp/google.com/cloudprivatecatalog
+// For product documentation, see: https://sites.google.com/corp/google.com/cloudprivatecatalog
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudprivatecatalog/v1beta1"
 //   ...
-//   cloudprivatecatalogService, err := cloudprivatecatalog.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudprivatecatalogService, err := cloudprivatecatalog.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudprivatecatalogService, err := cloudprivatecatalog.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudprivatecatalogService, err := cloudprivatecatalog.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudprivatecatalog // import "google.golang.org/api/cloudprivatecatalog/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudprivatecatalogproducer/v1beta1/cloudprivatecatalogproducer-api.json b/cloudprivatecatalogproducer/v1beta1/cloudprivatecatalogproducer-api.json
index de3aa9f..b5ca42d 100644
--- a/cloudprivatecatalogproducer/v1beta1/cloudprivatecatalogproducer-api.json
+++ b/cloudprivatecatalogproducer/v1beta1/cloudprivatecatalogproducer-api.json
@@ -967,7 +967,7 @@
       }
     }
   },
-  "revision": "20190304",
+  "revision": "20190309",
   "rootUrl": "https://cloudprivatecatalogproducer.googleapis.com/",
   "schemas": {
     "GoogleCloudPrivatecatalogproducerV1beta1Association": {
@@ -1416,7 +1416,7 @@
       "type": "object"
     },
     "GoogleRpcStatus": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpcStatus",
       "properties": {
         "code": {
diff --git a/cloudprivatecatalogproducer/v1beta1/cloudprivatecatalogproducer-gen.go b/cloudprivatecatalogproducer/v1beta1/cloudprivatecatalogproducer-gen.go
index f8d22f4..bd7730b 100644
--- a/cloudprivatecatalogproducer/v1beta1/cloudprivatecatalogproducer-gen.go
+++ b/cloudprivatecatalogproducer/v1beta1/cloudprivatecatalogproducer-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudprivatecatalogproducer provides access to the Cloud Private Catalog Producer API.
 //
-// See https://sites.google.com/corp/google.com/cloudprivatecatalog
+// For product documentation, see: https://sites.google.com/corp/google.com/cloudprivatecatalog
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudprivatecatalogproducer/v1beta1"
 //   ...
-//   cloudprivatecatalogproducerService, err := cloudprivatecatalogproducer.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudprivatecatalogproducerService, err := cloudprivatecatalogproducer.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudprivatecatalogproducerService, err := cloudprivatecatalogproducer.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudprivatecatalogproducerService, err := cloudprivatecatalogproducer.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudprivatecatalogproducer // import "google.golang.org/api/cloudprivatecatalogproducer/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1415,20 +1465,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/cloudprofiler/v2/cloudprofiler-gen.go b/cloudprofiler/v2/cloudprofiler-gen.go
index e335fa5..b317241 100644
--- a/cloudprofiler/v2/cloudprofiler-gen.go
+++ b/cloudprofiler/v2/cloudprofiler-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudprofiler provides access to the Stackdriver Profiler API.
 //
-// See https://cloud.google.com/profiler/
+// For product documentation, see: https://cloud.google.com/profiler/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudprofiler/v2"
 //   ...
-//   cloudprofilerService, err := cloudprofiler.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudprofilerService, err := cloudprofiler.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudprofilerService, err := cloudprofiler.NewService(ctx, option.WithScopes(cloudprofiler.MonitoringWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudprofilerService, err := cloudprofiler.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudprofilerService, err := cloudprofiler.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudprofiler // import "google.golang.org/api/cloudprofiler/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -63,6 +91,34 @@
 	MonitoringWriteScope = "https://www.googleapis.com/auth/monitoring.write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/monitoring",
+		"https://www.googleapis.com/auth/monitoring.write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudresourcemanager/v1/cloudresourcemanager-gen.go b/cloudresourcemanager/v1/cloudresourcemanager-gen.go
index 6052721..3a83067 100644
--- a/cloudresourcemanager/v1/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v1/cloudresourcemanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudresourcemanager provides access to the Cloud Resource Manager API.
 //
-// See https://cloud.google.com/resource-manager
+// For product documentation, see: https://cloud.google.com/resource-manager
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudresourcemanager/v1"
 //   ...
-//   cloudresourcemanagerService, err := cloudresourcemanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithScopes(cloudresourcemanager.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudresourcemanager // import "google.golang.org/api/cloudresourcemanager/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go b/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go
index f4ba8e5..bfc06e4 100644
--- a/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v1beta1/cloudresourcemanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudresourcemanager provides access to the Cloud Resource Manager API.
 //
-// See https://cloud.google.com/resource-manager
+// For product documentation, see: https://cloud.google.com/resource-manager
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudresourcemanager/v1beta1"
 //   ...
-//   cloudresourcemanagerService, err := cloudresourcemanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithScopes(cloudresourcemanager.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudresourcemanager // import "google.golang.org/api/cloudresourcemanager/v1beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudresourcemanager/v2/cloudresourcemanager-gen.go b/cloudresourcemanager/v2/cloudresourcemanager-gen.go
index a034572..ea6a68c 100644
--- a/cloudresourcemanager/v2/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v2/cloudresourcemanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudresourcemanager provides access to the Cloud Resource Manager API.
 //
-// See https://cloud.google.com/resource-manager
+// For product documentation, see: https://cloud.google.com/resource-manager
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudresourcemanager/v2"
 //   ...
-//   cloudresourcemanagerService, err := cloudresourcemanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithScopes(cloudresourcemanager.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudresourcemanager // import "google.golang.org/api/cloudresourcemanager/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go b/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go
index 29433a1..cb4db71 100644
--- a/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go
+++ b/cloudresourcemanager/v2beta1/cloudresourcemanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudresourcemanager provides access to the Cloud Resource Manager API.
 //
-// See https://cloud.google.com/resource-manager
+// For product documentation, see: https://cloud.google.com/resource-manager
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudresourcemanager/v2beta1"
 //   ...
-//   cloudresourcemanagerService, err := cloudresourcemanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithScopes(cloudresourcemanager.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudresourcemanager // import "google.golang.org/api/cloudresourcemanager/v2beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudscheduler/v1beta1/cloudscheduler-gen.go b/cloudscheduler/v1beta1/cloudscheduler-gen.go
index 9f6ab03..6697166 100644
--- a/cloudscheduler/v1beta1/cloudscheduler-gen.go
+++ b/cloudscheduler/v1beta1/cloudscheduler-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudscheduler provides access to the Cloud Scheduler API.
 //
-// See https://cloud.google.com/scheduler/
+// For product documentation, see: https://cloud.google.com/scheduler/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudscheduler/v1beta1"
 //   ...
-//   cloudschedulerService, err := cloudscheduler.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudschedulerService, err := cloudscheduler.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudschedulerService, err := cloudscheduler.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudschedulerService, err := cloudscheduler.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudscheduler // import "google.golang.org/api/cloudscheduler/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudsearch/v1/cloudsearch-api.json b/cloudsearch/v1/cloudsearch-api.json
index 328c96e..730d665 100644
--- a/cloudsearch/v1/cloudsearch-api.json
+++ b/cloudsearch/v1/cloudsearch-api.json
@@ -1429,7 +1429,7 @@
       }
     }
   },
-  "revision": "20190227",
+  "revision": "20190305",
   "rootUrl": "https://cloudsearch.googleapis.com/",
   "schemas": {
     "BooleanOperatorOptions": {
@@ -2555,7 +2555,7 @@
           "type": "array"
         },
         "readers": {
-          "description": "List of principals who are allowed to see the item in search results.\nOptional if inheriting permissions from another item or if the item\nis not intended to be visible, such as\nvirtual containers.\nThe maximum number of elements is 1000.",
+          "description": "List of principals who are allowed to see the item in search results.\nOptional if inheriting permissions from another item or if the item\nis not intended to be visible, such as\nvirtual\ncontainers.\nThe maximum number of elements is 1000.",
           "items": {
             "$ref": "Principal"
           },
@@ -3791,7 +3791,7 @@
           "type": "array"
         },
         "operationIds": {
-          "description": "IDs of the Long Running Operations (LROs) currently running for this\nschema. After modifying the schema, wait for opeations to complete\nbefore indexing additional content.",
+          "description": "IDs of the Long Running Operations (LROs) currently running for this\nschema. After modifying the schema, wait for operations to complete\nbefore indexing additional content.",
           "items": {
             "type": "string"
           },
diff --git a/cloudsearch/v1/cloudsearch-gen.go b/cloudsearch/v1/cloudsearch-gen.go
index fa71045..1b8ef30 100644
--- a/cloudsearch/v1/cloudsearch-gen.go
+++ b/cloudsearch/v1/cloudsearch-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudsearch provides access to the Cloud Search API.
 //
-// See https://gsuite.google.com/products/cloud-search/
+// For product documentation, see: https://gsuite.google.com/products/cloud-search/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudsearch/v1"
 //   ...
-//   cloudsearchService, err := cloudsearch.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudsearchService, err := cloudsearch.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudsearchService, err := cloudsearch.NewService(ctx, option.WithScopes(cloudsearch.CloudSearchStatsIndexingScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudsearchService, err := cloudsearch.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudsearchService, err := cloudsearch.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudsearch // import "google.golang.org/api/cloudsearch/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -83,6 +111,40 @@
 	CloudSearchStatsIndexingScope = "https://www.googleapis.com/auth/cloud_search.stats.indexing"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud_search",
+		"https://www.googleapis.com/auth/cloud_search.debug",
+		"https://www.googleapis.com/auth/cloud_search.indexing",
+		"https://www.googleapis.com/auth/cloud_search.query",
+		"https://www.googleapis.com/auth/cloud_search.settings",
+		"https://www.googleapis.com/auth/cloud_search.settings.indexing",
+		"https://www.googleapis.com/auth/cloud_search.settings.query",
+		"https://www.googleapis.com/auth/cloud_search.stats",
+		"https://www.googleapis.com/auth/cloud_search.stats.indexing",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -2686,7 +2748,8 @@
 	// Optional if inheriting permissions from another item or if the
 	// item
 	// is not intended to be visible, such as
-	// virtual containers.
+	// virtual
+	// containers.
 	// The maximum number of elements is 1000.
 	Readers []*Principal `json:"readers,omitempty"`
 
@@ -4963,7 +5026,7 @@
 
 	// OperationIds: IDs of the Long Running Operations (LROs) currently
 	// running for this
-	// schema. After modifying the schema, wait for opeations to
+	// schema. After modifying the schema, wait for operations to
 	// complete
 	// before indexing additional content.
 	OperationIds []string `json:"operationIds,omitempty"`
diff --git a/cloudshell/v1/cloudshell-gen.go b/cloudshell/v1/cloudshell-gen.go
index 0cceba5..52b48fb 100644
--- a/cloudshell/v1/cloudshell-gen.go
+++ b/cloudshell/v1/cloudshell-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudshell provides access to the Cloud Shell API.
 //
-// See https://cloud.google.com/shell/docs/
+// For product documentation, see: https://cloud.google.com/shell/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudshell/v1"
 //   ...
-//   cloudshellService, err := cloudshell.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudshellService, err := cloudshell.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudshellService, err := cloudshell.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudshellService, err := cloudshell.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudshell // import "google.golang.org/api/cloudshell/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudshell/v1alpha1/cloudshell-gen.go b/cloudshell/v1alpha1/cloudshell-gen.go
index 5234e2e..2650199 100644
--- a/cloudshell/v1alpha1/cloudshell-gen.go
+++ b/cloudshell/v1alpha1/cloudshell-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package cloudshell provides access to the Cloud Shell API.
 //
-// See https://cloud.google.com/shell/docs/
+// For product documentation, see: https://cloud.google.com/shell/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudshell/v1alpha1"
 //   ...
-//   cloudshellService, err := cloudshell.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudshellService, err := cloudshell.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudshellService, err := cloudshell.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudshellService, err := cloudshell.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudshell // import "google.golang.org/api/cloudshell/v1alpha1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudtasks/v2beta2/cloudtasks-gen.go b/cloudtasks/v2beta2/cloudtasks-gen.go
index 3e2c9ab..77f1ceb 100644
--- a/cloudtasks/v2beta2/cloudtasks-gen.go
+++ b/cloudtasks/v2beta2/cloudtasks-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/cloudtasks/apiv2beta2 instead.
 //
-// See https://cloud.google.com/tasks/
+// For product documentation, see: https://cloud.google.com/tasks/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudtasks/v2beta2"
 //   ...
-//   cloudtasksService, err := cloudtasks.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudtasksService, err := cloudtasks.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudtasksService, err := cloudtasks.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudtasksService, err := cloudtasks.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudtasks // import "google.golang.org/api/cloudtasks/v2beta2"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudtasks/v2beta3/cloudtasks-gen.go b/cloudtasks/v2beta3/cloudtasks-gen.go
index fc25b37..92f0e6b 100644
--- a/cloudtasks/v2beta3/cloudtasks-gen.go
+++ b/cloudtasks/v2beta3/cloudtasks-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/cloudtasks/apiv2beta2 instead.
 //
-// See https://cloud.google.com/tasks/
+// For product documentation, see: https://cloud.google.com/tasks/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudtasks/v2beta3"
 //   ...
-//   cloudtasksService, err := cloudtasks.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudtasksService, err := cloudtasks.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudtasksService, err := cloudtasks.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudtasksService, err := cloudtasks.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudtasks // import "google.golang.org/api/cloudtasks/v2beta3"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudtrace/v1/cloudtrace-gen.go b/cloudtrace/v1/cloudtrace-gen.go
index 2b76f18..c41ff55 100644
--- a/cloudtrace/v1/cloudtrace-gen.go
+++ b/cloudtrace/v1/cloudtrace-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudtrace provides access to the Stackdriver Trace API.
 //
-// See https://cloud.google.com/trace
+// For product documentation, see: https://cloud.google.com/trace
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudtrace/v1"
 //   ...
-//   cloudtraceService, err := cloudtrace.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudtraceService, err := cloudtrace.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudtraceService, err := cloudtrace.NewService(ctx, option.WithScopes(cloudtrace.TraceReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudtraceService, err := cloudtrace.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudtraceService, err := cloudtrace.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudtrace // import "google.golang.org/api/cloudtrace/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	TraceReadonlyScope = "https://www.googleapis.com/auth/trace.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/trace.append",
+		"https://www.googleapis.com/auth/trace.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/cloudtrace/v2/cloudtrace-gen.go b/cloudtrace/v2/cloudtrace-gen.go
index 9422934..5304908 100644
--- a/cloudtrace/v2/cloudtrace-gen.go
+++ b/cloudtrace/v2/cloudtrace-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package cloudtrace provides access to the Stackdriver Trace API.
 //
-// See https://cloud.google.com/trace
+// For product documentation, see: https://cloud.google.com/trace
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/cloudtrace/v2"
 //   ...
-//   cloudtraceService, err := cloudtrace.New(oauthHttpClient)
+//   ctx := context.Background()
+//   cloudtraceService, err := cloudtrace.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   cloudtraceService, err := cloudtrace.NewService(ctx, option.WithScopes(cloudtrace.TraceAppendScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   cloudtraceService, err := cloudtrace.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   cloudtraceService, err := cloudtrace.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package cloudtrace // import "google.golang.org/api/cloudtrace/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	TraceAppendScope = "https://www.googleapis.com/auth/trace.append"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/trace.append",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/composer/v1/composer-gen.go b/composer/v1/composer-gen.go
index 60ef19c..3dba78f 100644
--- a/composer/v1/composer-gen.go
+++ b/composer/v1/composer-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package composer provides access to the Cloud Composer API.
 //
-// See https://cloud.google.com/composer/
+// For product documentation, see: https://cloud.google.com/composer/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/composer/v1"
 //   ...
-//   composerService, err := composer.New(oauthHttpClient)
+//   ctx := context.Background()
+//   composerService, err := composer.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   composerService, err := composer.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   composerService, err := composer.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package composer // import "google.golang.org/api/composer/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/composer/v1beta1/composer-gen.go b/composer/v1beta1/composer-gen.go
index 79bb053..e5af000 100644
--- a/composer/v1beta1/composer-gen.go
+++ b/composer/v1beta1/composer-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package composer provides access to the Cloud Composer API.
 //
-// See https://cloud.google.com/composer/
+// For product documentation, see: https://cloud.google.com/composer/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/composer/v1beta1"
 //   ...
-//   composerService, err := composer.New(oauthHttpClient)
+//   ctx := context.Background()
+//   composerService, err := composer.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   composerService, err := composer.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   composerService, err := composer.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package composer // import "google.golang.org/api/composer/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/compute/v0.alpha/compute-gen.go b/compute/v0.alpha/compute-gen.go
index babd8cb..13ac546 100644
--- a/compute/v0.alpha/compute-gen.go
+++ b/compute/v0.alpha/compute-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package compute provides access to the Compute Engine API.
 //
-// See https://developers.google.com/compute/docs/reference/latest/
+// For product documentation, see: https://developers.google.com/compute/docs/reference/latest/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/compute/v0.alpha"
 //   ...
-//   computeService, err := compute.New(oauthHttpClient)
+//   ctx := context.Background()
+//   computeService, err := compute.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package compute // import "google.golang.org/api/compute/v0.alpha"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -71,6 +99,37 @@
 	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/compute",
+		"https://www.googleapis.com/auth/compute.readonly",
+		"https://www.googleapis.com/auth/devstorage.full_control",
+		"https://www.googleapis.com/auth/devstorage.read_only",
+		"https://www.googleapis.com/auth/devstorage.read_write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/compute/v0.beta/compute-gen.go b/compute/v0.beta/compute-gen.go
index 3833ea0..3cb919f 100644
--- a/compute/v0.beta/compute-gen.go
+++ b/compute/v0.beta/compute-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package compute provides access to the Compute Engine API.
 //
-// See https://developers.google.com/compute/docs/reference/latest/
+// For product documentation, see: https://developers.google.com/compute/docs/reference/latest/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/compute/v0.beta"
 //   ...
-//   computeService, err := compute.New(oauthHttpClient)
+//   ctx := context.Background()
+//   computeService, err := compute.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package compute // import "google.golang.org/api/compute/v0.beta"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -71,6 +99,37 @@
 	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/compute",
+		"https://www.googleapis.com/auth/compute.readonly",
+		"https://www.googleapis.com/auth/devstorage.full_control",
+		"https://www.googleapis.com/auth/devstorage.read_only",
+		"https://www.googleapis.com/auth/devstorage.read_write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/compute/v1/compute-gen.go b/compute/v1/compute-gen.go
index b6a22f6..1bdc106 100644
--- a/compute/v1/compute-gen.go
+++ b/compute/v1/compute-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package compute provides access to the Compute Engine API.
 //
-// See https://developers.google.com/compute/docs/reference/latest/
+// For product documentation, see: https://developers.google.com/compute/docs/reference/latest/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/compute/v1"
 //   ...
-//   computeService, err := compute.New(oauthHttpClient)
+//   ctx := context.Background()
+//   computeService, err := compute.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package compute // import "google.golang.org/api/compute/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -71,6 +99,37 @@
 	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/compute",
+		"https://www.googleapis.com/auth/compute.readonly",
+		"https://www.googleapis.com/auth/devstorage.full_control",
+		"https://www.googleapis.com/auth/devstorage.read_only",
+		"https://www.googleapis.com/auth/devstorage.read_write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/container/v1/container-gen.go b/container/v1/container-gen.go
index d87be56..14707ca 100644
--- a/container/v1/container-gen.go
+++ b/container/v1/container-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package container provides access to the Kubernetes Engine API.
 //
-// See https://cloud.google.com/container-engine/
+// For product documentation, see: https://cloud.google.com/container-engine/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/container/v1"
 //   ...
-//   containerService, err := container.New(oauthHttpClient)
+//   ctx := context.Background()
+//   containerService, err := container.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   containerService, err := container.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   containerService, err := container.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package container // import "google.golang.org/api/container/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/container/v1beta1/container-gen.go b/container/v1beta1/container-gen.go
index 8fa7a18..9c5a176 100644
--- a/container/v1beta1/container-gen.go
+++ b/container/v1beta1/container-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package container provides access to the Kubernetes Engine API.
 //
-// See https://cloud.google.com/container-engine/
+// For product documentation, see: https://cloud.google.com/container-engine/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/container/v1beta1"
 //   ...
-//   containerService, err := container.New(oauthHttpClient)
+//   ctx := context.Background()
+//   containerService, err := container.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   containerService, err := container.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   containerService, err := container.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package container // import "google.golang.org/api/container/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/containeranalysis/v1alpha1/containeranalysis-api.json b/containeranalysis/v1alpha1/containeranalysis-api.json
index aa690f1..519c218 100644
--- a/containeranalysis/v1alpha1/containeranalysis-api.json
+++ b/containeranalysis/v1alpha1/containeranalysis-api.json
@@ -1204,7 +1204,7 @@
       }
     }
   },
-  "revision": "20190222",
+  "revision": "20190308",
   "rootUrl": "https://containeranalysis.googleapis.com/",
   "schemas": {
     "Artifact": {
@@ -2712,7 +2712,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
@@ -2845,6 +2845,26 @@
           "format": "float",
           "type": "number"
         },
+        "effectiveSeverity": {
+          "description": "The distro assigned severity for this vulnerability when that is\navailable and note provider assigned severity when distro has not yet\nassigned a severity for this vulnerability.",
+          "enum": [
+            "SEVERITY_UNSPECIFIED",
+            "MINIMAL",
+            "LOW",
+            "MEDIUM",
+            "HIGH",
+            "CRITICAL"
+          ],
+          "enumDescriptions": [
+            "Unknown Impact",
+            "Minimal Impact",
+            "Low Impact",
+            "Medium Impact",
+            "High Impact",
+            "Critical Impact"
+          ],
+          "type": "string"
+        },
         "packageIssue": {
           "description": "The set of affected locations and their fixes (if available) within\nthe associated resource.",
           "items": {
diff --git a/containeranalysis/v1alpha1/containeranalysis-gen.go b/containeranalysis/v1alpha1/containeranalysis-gen.go
index ba820d4..51c1b2d 100644
--- a/containeranalysis/v1alpha1/containeranalysis-gen.go
+++ b/containeranalysis/v1alpha1/containeranalysis-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package containeranalysis provides access to the Container Analysis API.
 //
-// See https://cloud.google.com/container-analysis/api/reference/rest/
+// For product documentation, see: https://cloud.google.com/container-analysis/api/reference/rest/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/containeranalysis/v1alpha1"
 //   ...
-//   containeranalysisService, err := containeranalysis.New(oauthHttpClient)
+//   ctx := context.Background()
+//   containeranalysisService, err := containeranalysis.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   containeranalysisService, err := containeranalysis.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   containeranalysisService, err := containeranalysis.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package containeranalysis // import "google.golang.org/api/containeranalysis/v1alpha1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -2971,20 +3021,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
@@ -3296,6 +3346,21 @@
 	// severity.
 	CvssScore float64 `json:"cvssScore,omitempty"`
 
+	// EffectiveSeverity: The distro assigned severity for this
+	// vulnerability when that is
+	// available and note provider assigned severity when distro has not
+	// yet
+	// assigned a severity for this vulnerability.
+	//
+	// Possible values:
+	//   "SEVERITY_UNSPECIFIED" - Unknown Impact
+	//   "MINIMAL" - Minimal Impact
+	//   "LOW" - Low Impact
+	//   "MEDIUM" - Medium Impact
+	//   "HIGH" - High Impact
+	//   "CRITICAL" - Critical Impact
+	EffectiveSeverity string `json:"effectiveSeverity,omitempty"`
+
 	// PackageIssue: The set of affected locations and their fixes (if
 	// available) within
 	// the associated resource.
diff --git a/containeranalysis/v1beta1/containeranalysis-api.json b/containeranalysis/v1beta1/containeranalysis-api.json
index 3b0dab8..c1e526c 100644
--- a/containeranalysis/v1beta1/containeranalysis-api.json
+++ b/containeranalysis/v1beta1/containeranalysis-api.json
@@ -852,7 +852,7 @@
       }
     }
   },
-  "revision": "20190222",
+  "revision": "20190308",
   "rootUrl": "https://containeranalysis.googleapis.com/",
   "schemas": {
     "AliasContext": {
@@ -2477,7 +2477,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/containeranalysis/v1beta1/containeranalysis-gen.go b/containeranalysis/v1beta1/containeranalysis-gen.go
index 01a9d39..9219ead 100644
--- a/containeranalysis/v1beta1/containeranalysis-gen.go
+++ b/containeranalysis/v1beta1/containeranalysis-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package containeranalysis provides access to the Container Analysis API.
 //
-// See https://cloud.google.com/container-analysis/api/reference/rest/
+// For product documentation, see: https://cloud.google.com/container-analysis/api/reference/rest/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/containeranalysis/v1beta1"
 //   ...
-//   containeranalysisService, err := containeranalysis.New(oauthHttpClient)
+//   ctx := context.Background()
+//   containeranalysisService, err := containeranalysis.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   containeranalysisService, err := containeranalysis.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   containeranalysisService, err := containeranalysis.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package containeranalysis // import "google.golang.org/api/containeranalysis/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -3121,20 +3171,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/content/v2.1/content-api.json b/content/v2.1/content-api.json
index e61b344..13f4e88 100644
--- a/content/v2.1/content-api.json
+++ b/content/v2.1/content-api.json
@@ -15,7 +15,7 @@
   "description": "Manages product items, inventory, and Merchant Center accounts for Google Shopping.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/shopping-content",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/tPA0_g3dJ23l78NhK1kP4Y4uPDg\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/JLTtElhO_yZgirWM-iDsLteIwa0\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -357,7 +357,7 @@
           ]
         },
         "get": {
-          "description": "Retrieves the status of a Merchant Center account. Multi-client accounts can only call this method for sub-accounts.",
+          "description": "Retrieves the status of a Merchant Center account. No itemLevelIssues are returned for multi-client accounts.",
           "httpMethod": "GET",
           "id": "content.accountstatuses.get",
           "parameterOrder": [
@@ -2884,7 +2884,7 @@
       }
     }
   },
-  "revision": "20190304",
+  "revision": "20190308",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
@@ -5063,10 +5063,6 @@
           "$ref": "OrderAddress",
           "description": "The billing address."
         },
-        "channelType": {
-          "description": "The channel type of the order: \"purchaseOnGoogle\" or \"googleExpress\".",
-          "type": "string"
-        },
         "customer": {
           "$ref": "OrderCustomer",
           "description": "The details of the customer who placed the order."
@@ -5252,7 +5248,7 @@
           "type": "string"
         },
         "marketingEmailAddress": {
-          "description": "Email address that can be used for marketing purposes. The field may be empty even if explicitMarketingPreference is 'granted'. This happens when retrieving an old order from the customer who deleted his account.",
+          "description": "Email address that can be used for marketing purposes. The field may be empty even if explicitMarketingPreference is 'granted'. This happens when retrieving an old order from the customer who deleted their account.",
           "type": "string"
         }
       },
@@ -5360,10 +5356,6 @@
           "description": "Brand of the item.",
           "type": "string"
         },
-        "channel": {
-          "description": "The item's channel (online or local).",
-          "type": "string"
-        },
         "condition": {
           "description": "Condition or state of the item.",
           "type": "string"
@@ -7829,7 +7821,7 @@
       "type": "object"
     },
     "ProductStatus": {
-      "description": "The status of a product, i.e., information about a product computed asynchronously by the data quality analysis.",
+      "description": "The status of a product, i.e., information about a product computed asynchronously.",
       "id": "ProductStatus",
       "properties": {
         "creationDate": {
@@ -8849,15 +8841,6 @@
           "description": "Brand of the item.",
           "type": "string"
         },
-        "channel": {
-          "annotations": {
-            "required": [
-              "content.orders.createtestorder"
-            ]
-          },
-          "description": "The item's channel.",
-          "type": "string"
-        },
         "condition": {
           "annotations": {
             "required": [
diff --git a/content/v2.1/content-gen.go b/content/v2.1/content-gen.go
index b3391bc..1476417 100644
--- a/content/v2.1/content-gen.go
+++ b/content/v2.1/content-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package content provides access to the Content API for Shopping.
 //
-// See https://developers.google.com/shopping-content
+// For product documentation, see: https://developers.google.com/shopping-content
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/content/v2.1"
 //   ...
-//   contentService, err := content.New(oauthHttpClient)
+//   ctx := context.Background()
+//   contentService, err := content.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   contentService, err := content.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   contentService, err := content.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package content // import "google.golang.org/api/content/v2.1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	ContentScope = "https://www.googleapis.com/auth/content"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/content",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -3849,10 +3899,6 @@
 	// BillingAddress: The billing address.
 	BillingAddress *OrderAddress `json:"billingAddress,omitempty"`
 
-	// ChannelType: The channel type of the order: "purchaseOnGoogle" or
-	// "googleExpress".
-	ChannelType string `json:"channelType,omitempty"`
-
 	// Customer: The details of the customer who placed the order.
 	Customer *OrderCustomer `json:"customer,omitempty"`
 
@@ -4081,7 +4127,7 @@
 	// MarketingEmailAddress: Email address that can be used for marketing
 	// purposes. The field may be empty even if explicitMarketingPreference
 	// is 'granted'. This happens when retrieving an old order from the
-	// customer who deleted his account.
+	// customer who deleted their account.
 	MarketingEmailAddress string `json:"marketingEmailAddress,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -4218,9 +4264,6 @@
 	// Brand: Brand of the item.
 	Brand string `json:"brand,omitempty"`
 
-	// Channel: The item's channel (online or local).
-	Channel string `json:"channel,omitempty"`
-
 	// Condition: Condition or state of the item.
 	Condition string `json:"condition,omitempty"`
 
@@ -7679,7 +7722,7 @@
 }
 
 // ProductStatus: The status of a product, i.e., information about a
-// product computed asynchronously by the data quality analysis.
+// product computed asynchronously.
 type ProductStatus struct {
 	// CreationDate: Date on which the item has been created, in ISO 8601
 	// format.
@@ -9261,9 +9304,6 @@
 	// Brand: Brand of the item.
 	Brand string `json:"brand,omitempty"`
 
-	// Channel: The item's channel.
-	Channel string `json:"channel,omitempty"`
-
 	// Condition: Condition or state of the item.
 	Condition string `json:"condition,omitempty"`
 
@@ -11043,8 +11083,8 @@
 	header_      http.Header
 }
 
-// Get: Retrieves the status of a Merchant Center account. Multi-client
-// accounts can only call this method for sub-accounts.
+// Get: Retrieves the status of a Merchant Center account. No
+// itemLevelIssues are returned for multi-client accounts.
 func (r *AccountstatusesService) Get(merchantId uint64, accountId uint64) *AccountstatusesGetCall {
 	c := &AccountstatusesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.merchantId = merchantId
@@ -11159,7 +11199,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Retrieves the status of a Merchant Center account. Multi-client accounts can only call this method for sub-accounts.",
+	//   "description": "Retrieves the status of a Merchant Center account. No itemLevelIssues are returned for multi-client accounts.",
 	//   "httpMethod": "GET",
 	//   "id": "content.accountstatuses.get",
 	//   "parameterOrder": [
diff --git a/content/v2/content-api.json b/content/v2/content-api.json
index b006864..916c57e 100644
--- a/content/v2/content-api.json
+++ b/content/v2/content-api.json
@@ -15,7 +15,7 @@
   "description": "Manages product items, inventory, and Merchant Center accounts for Google Shopping.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/shopping-content",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/GZmZvuq0wnJO-_buay64M_5ocFI\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/_vzcX2m-YUsApzTF74HdX3hw9hM\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -419,7 +419,7 @@
           ]
         },
         "get": {
-          "description": "Retrieves the status of a Merchant Center account. Multi-client accounts can only call this method for sub-accounts.",
+          "description": "Retrieves the status of a Merchant Center account. No itemLevelIssues are returned for multi-client accounts.",
           "httpMethod": "GET",
           "id": "content.accountstatuses.get",
           "parameterOrder": [
@@ -3482,7 +3482,7 @@
       }
     }
   },
-  "revision": "20190304",
+  "revision": "20190308",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
@@ -3685,7 +3685,7 @@
           "type": "array"
         },
         "dataQualityIssues": {
-          "description": "A list of data quality issues.",
+          "description": "DEPRECATED - never populated.",
           "items": {
             "$ref": "AccountStatusDataQualityIssue"
           },
@@ -3748,78 +3748,61 @@
       "id": "AccountStatusDataQualityIssue",
       "properties": {
         "country": {
-          "description": "Country for which this issue is reported.",
           "type": "string"
         },
         "destination": {
-          "description": "The destination the issue applies to.",
           "type": "string"
         },
         "detail": {
-          "description": "A more detailed description of the issue.",
           "type": "string"
         },
         "displayedValue": {
-          "description": "Actual value displayed on the landing page.",
           "type": "string"
         },
         "exampleItems": {
-          "description": "Example items featuring the issue.",
           "items": {
             "$ref": "AccountStatusExampleItem"
           },
           "type": "array"
         },
         "id": {
-          "description": "Issue identifier.",
           "type": "string"
         },
         "lastChecked": {
-          "description": "Last time the account was checked for this issue.",
           "type": "string"
         },
         "location": {
-          "description": "The attribute name that is relevant for the issue.",
           "type": "string"
         },
         "numItems": {
-          "description": "Number of items in the account found to have the said issue.",
           "format": "uint32",
           "type": "integer"
         },
         "severity": {
-          "description": "Severity of the problem.",
           "type": "string"
         },
         "submittedValue": {
-          "description": "Submitted value that causes the issue.",
           "type": "string"
         }
       },
       "type": "object"
     },
     "AccountStatusExampleItem": {
-      "description": "An example of an item that has poor data quality. An item value on the landing page differs from what is submitted, or conflicts with a policy.",
       "id": "AccountStatusExampleItem",
       "properties": {
         "itemId": {
-          "description": "Unique item ID as specified in the uploaded product data.",
           "type": "string"
         },
         "link": {
-          "description": "Landing page of the item.",
           "type": "string"
         },
         "submittedValue": {
-          "description": "The item value that was submitted.",
           "type": "string"
         },
         "title": {
-          "description": "Title of the item.",
           "type": "string"
         },
         "valueOnLandingPage": {
-          "description": "The actual value on the landing page.",
           "type": "string"
         }
       },
@@ -6053,7 +6036,7 @@
           "type": "boolean"
         },
         "channelType": {
-          "description": "The channel type of the order: \"purchaseOnGoogle\" or \"googleExpress\".",
+          "description": "Deprecated.",
           "type": "string"
         },
         "customer": {
@@ -6105,7 +6088,7 @@
           "type": "string"
         },
         "promotions": {
-          "description": "Deprecated. Ignored if provided for createTestOrder. The details of the merchant provided promotions applied to the order. More details about the program are here.",
+          "description": "The details of the merchant provided promotions applied to the order. More details about the program are here.",
           "items": {
             "$ref": "OrderLegacyPromotion"
           },
@@ -6253,7 +6236,7 @@
           "type": "string"
         },
         "marketingEmailAddress": {
-          "description": "Email address that can be used for marketing purposes. The field may be empty even if explicitMarketingPreference is 'granted'. This happens when retrieving an old order from the customer who deleted his account.",
+          "description": "Email address that can be used for marketing purposes. The field may be empty even if explicitMarketingPreference is 'granted'. This happens when retrieving an old order from the customer who deleted their account.",
           "type": "string"
         }
       },
@@ -9576,7 +9559,7 @@
       "type": "object"
     },
     "ProductStatus": {
-      "description": "The status of a product, i.e., information about a product computed asynchronously by the data quality analysis.",
+      "description": "The status of a product, i.e., information about a product computed asynchronously.",
       "id": "ProductStatus",
       "properties": {
         "creationDate": {
@@ -9584,7 +9567,7 @@
           "type": "string"
         },
         "dataQualityIssues": {
-          "description": "A list of data quality issues associated with the product.",
+          "description": "DEPRECATED - never populated",
           "items": {
             "$ref": "ProductStatusDataQualityIssue"
           },
@@ -9640,39 +9623,30 @@
       "id": "ProductStatusDataQualityIssue",
       "properties": {
         "destination": {
-          "description": "The destination the issue applies to.",
           "type": "string"
         },
         "detail": {
-          "description": "A more detailed error string.",
           "type": "string"
         },
         "fetchStatus": {
-          "description": "The fetch status for landing_page_errors.",
           "type": "string"
         },
         "id": {
-          "description": "The ID of the data quality issue.",
           "type": "string"
         },
         "location": {
-          "description": "The attribute name that is relevant for the issue.",
           "type": "string"
         },
         "severity": {
-          "description": "The severity of the data quality issue.",
           "type": "string"
         },
         "timestamp": {
-          "description": "The time stamp of the data quality issue.",
           "type": "string"
         },
         "valueOnLandingPage": {
-          "description": "The value of that attribute that was found on the landing page",
           "type": "string"
         },
         "valueProvided": {
-          "description": "The value the attribute had at time of evaluation.",
           "type": "string"
         }
       },
@@ -10467,7 +10441,7 @@
           "type": "string"
         },
         "promotions": {
-          "description": "Deprecated. The details of the merchant provided promotions applied to the order. More details about the program are here.",
+          "description": "Deprecated. Ignored if provided.",
           "items": {
             "$ref": "OrderLegacyPromotion"
           },
@@ -10594,12 +10568,7 @@
           "type": "string"
         },
         "channel": {
-          "annotations": {
-            "required": [
-              "content.orders.createtestorder"
-            ]
-          },
-          "description": "The item's channel.",
+          "description": "Deprecated.",
           "type": "string"
         },
         "condition": {
diff --git a/content/v2/content-gen.go b/content/v2/content-gen.go
index 0ed5695..33ed282 100644
--- a/content/v2/content-gen.go
+++ b/content/v2/content-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package content provides access to the Content API for Shopping.
 //
-// See https://developers.google.com/shopping-content
+// For product documentation, see: https://developers.google.com/shopping-content
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/content/v2"
 //   ...
-//   contentService, err := content.New(oauthHttpClient)
+//   ctx := context.Background()
+//   contentService, err := content.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   contentService, err := content.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   contentService, err := content.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package content // import "google.golang.org/api/content/v2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	ContentScope = "https://www.googleapis.com/auth/content"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/content",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -574,7 +624,7 @@
 	// AccountLevelIssues: A list of account level issues.
 	AccountLevelIssues []*AccountStatusAccountLevelIssue `json:"accountLevelIssues,omitempty"`
 
-	// DataQualityIssues: A list of data quality issues.
+	// DataQualityIssues: DEPRECATED - never populated.
 	DataQualityIssues []*AccountStatusDataQualityIssue `json:"dataQualityIssues,omitempty"`
 
 	// Kind: Identifies what kind of resource this is. Value: the fixed
@@ -661,38 +711,26 @@
 }
 
 type AccountStatusDataQualityIssue struct {
-	// Country: Country for which this issue is reported.
 	Country string `json:"country,omitempty"`
 
-	// Destination: The destination the issue applies to.
 	Destination string `json:"destination,omitempty"`
 
-	// Detail: A more detailed description of the issue.
 	Detail string `json:"detail,omitempty"`
 
-	// DisplayedValue: Actual value displayed on the landing page.
 	DisplayedValue string `json:"displayedValue,omitempty"`
 
-	// ExampleItems: Example items featuring the issue.
 	ExampleItems []*AccountStatusExampleItem `json:"exampleItems,omitempty"`
 
-	// Id: Issue identifier.
 	Id string `json:"id,omitempty"`
 
-	// LastChecked: Last time the account was checked for this issue.
 	LastChecked string `json:"lastChecked,omitempty"`
 
-	// Location: The attribute name that is relevant for the issue.
 	Location string `json:"location,omitempty"`
 
-	// NumItems: Number of items in the account found to have the said
-	// issue.
 	NumItems int64 `json:"numItems,omitempty"`
 
-	// Severity: Severity of the problem.
 	Severity string `json:"severity,omitempty"`
 
-	// SubmittedValue: Submitted value that causes the issue.
 	SubmittedValue string `json:"submittedValue,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Country") to
@@ -718,23 +756,15 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// AccountStatusExampleItem: An example of an item that has poor data
-// quality. An item value on the landing page differs from what is
-// submitted, or conflicts with a policy.
 type AccountStatusExampleItem struct {
-	// ItemId: Unique item ID as specified in the uploaded product data.
 	ItemId string `json:"itemId,omitempty"`
 
-	// Link: Landing page of the item.
 	Link string `json:"link,omitempty"`
 
-	// SubmittedValue: The item value that was submitted.
 	SubmittedValue string `json:"submittedValue,omitempty"`
 
-	// Title: Title of the item.
 	Title string `json:"title,omitempty"`
 
-	// ValueOnLandingPage: The actual value on the landing page.
 	ValueOnLandingPage string `json:"valueOnLandingPage,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ItemId") to
@@ -4413,8 +4443,7 @@
 	// Acknowledged: Whether the order was acknowledged.
 	Acknowledged bool `json:"acknowledged,omitempty"`
 
-	// ChannelType: The channel type of the order: "purchaseOnGoogle" or
-	// "googleExpress".
+	// ChannelType: Deprecated.
 	ChannelType string `json:"channelType,omitempty"`
 
 	// Customer: The details of the customer who placed the order.
@@ -4452,9 +4481,8 @@
 	// PlacedDate: The date when the order was placed, in ISO 8601 format.
 	PlacedDate string `json:"placedDate,omitempty"`
 
-	// Promotions: Deprecated. Ignored if provided for createTestOrder. The
-	// details of the merchant provided promotions applied to the order.
-	// More details about the program are here.
+	// Promotions: The details of the merchant provided promotions applied
+	// to the order. More details about the program are here.
 	Promotions []*OrderLegacyPromotion `json:"promotions,omitempty"`
 
 	// Refunds: Refunds for the order.
@@ -4656,7 +4684,7 @@
 	// MarketingEmailAddress: Email address that can be used for marketing
 	// purposes. The field may be empty even if explicitMarketingPreference
 	// is 'granted'. This happens when retrieving an old order from the
-	// customer who deleted his account.
+	// customer who deleted their account.
 	MarketingEmailAddress string `json:"marketingEmailAddress,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g.
@@ -9522,14 +9550,13 @@
 }
 
 // ProductStatus: The status of a product, i.e., information about a
-// product computed asynchronously by the data quality analysis.
+// product computed asynchronously.
 type ProductStatus struct {
 	// CreationDate: Date on which the item has been created, in ISO 8601
 	// format.
 	CreationDate string `json:"creationDate,omitempty"`
 
-	// DataQualityIssues: A list of data quality issues associated with the
-	// product.
+	// DataQualityIssues: DEPRECATED - never populated
 	DataQualityIssues []*ProductStatusDataQualityIssue `json:"dataQualityIssues,omitempty"`
 
 	// DestinationStatuses: The intended destinations for the product.
@@ -9590,32 +9617,22 @@
 }
 
 type ProductStatusDataQualityIssue struct {
-	// Destination: The destination the issue applies to.
 	Destination string `json:"destination,omitempty"`
 
-	// Detail: A more detailed error string.
 	Detail string `json:"detail,omitempty"`
 
-	// FetchStatus: The fetch status for landing_page_errors.
 	FetchStatus string `json:"fetchStatus,omitempty"`
 
-	// Id: The ID of the data quality issue.
 	Id string `json:"id,omitempty"`
 
-	// Location: The attribute name that is relevant for the issue.
 	Location string `json:"location,omitempty"`
 
-	// Severity: The severity of the data quality issue.
 	Severity string `json:"severity,omitempty"`
 
-	// Timestamp: The time stamp of the data quality issue.
 	Timestamp string `json:"timestamp,omitempty"`
 
-	// ValueOnLandingPage: The value of that attribute that was found on the
-	// landing page
 	ValueOnLandingPage string `json:"valueOnLandingPage,omitempty"`
 
-	// ValueProvided: The value the attribute had at time of evaluation.
 	ValueProvided string `json:"valueProvided,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Destination") to
@@ -10930,9 +10947,7 @@
 	// delivery addresses for the delivery.
 	PredefinedDeliveryAddress string `json:"predefinedDeliveryAddress,omitempty"`
 
-	// Promotions: Deprecated. The details of the merchant provided
-	// promotions applied to the order. More details about the program are
-	// here.
+	// Promotions: Deprecated. Ignored if provided.
 	Promotions []*OrderLegacyPromotion `json:"promotions,omitempty"`
 
 	// ShippingCost: The price of shipping for all items. Shipping tax is
@@ -11085,7 +11100,7 @@
 	// Brand: Brand of the item.
 	Brand string `json:"brand,omitempty"`
 
-	// Channel: The item's channel.
+	// Channel: Deprecated.
 	Channel string `json:"channel,omitempty"`
 
 	// Condition: Condition or state of the item.
@@ -13131,8 +13146,8 @@
 	header_      http.Header
 }
 
-// Get: Retrieves the status of a Merchant Center account. Multi-client
-// accounts can only call this method for sub-accounts.
+// Get: Retrieves the status of a Merchant Center account. No
+// itemLevelIssues are returned for multi-client accounts.
 func (r *AccountstatusesService) Get(merchantId uint64, accountId uint64) *AccountstatusesGetCall {
 	c := &AccountstatusesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.merchantId = merchantId
@@ -13247,7 +13262,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Retrieves the status of a Merchant Center account. Multi-client accounts can only call this method for sub-accounts.",
+	//   "description": "Retrieves the status of a Merchant Center account. No itemLevelIssues are returned for multi-client accounts.",
 	//   "httpMethod": "GET",
 	//   "id": "content.accountstatuses.get",
 	//   "parameterOrder": [
diff --git a/customsearch/v1/customsearch-gen.go b/customsearch/v1/customsearch-gen.go
index a9f832f..8199a3d 100644
--- a/customsearch/v1/customsearch-gen.go
+++ b/customsearch/v1/customsearch-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package customsearch provides access to the CustomSearch API.
 //
-// See https://developers.google.com/custom-search/v1/using_rest
+// For product documentation, see: https://developers.google.com/custom-search/v1/using_rest
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/customsearch/v1"
 //   ...
-//   customsearchService, err := customsearch.New(oauthHttpClient)
+//   ctx := context.Background()
+//   customsearchService, err := customsearch.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   customsearchService, err := customsearch.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   customsearchService, err := customsearch.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package customsearch // import "google.golang.org/api/customsearch/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://www.googleapis.com/customsearch/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/dataflow/v1b3/dataflow-gen.go b/dataflow/v1b3/dataflow-gen.go
index 942c58a..3f2405d 100644
--- a/dataflow/v1b3/dataflow-gen.go
+++ b/dataflow/v1b3/dataflow-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package dataflow provides access to the Dataflow API.
 //
-// See https://cloud.google.com/dataflow
+// For product documentation, see: https://cloud.google.com/dataflow
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dataflow/v1b3"
 //   ...
-//   dataflowService, err := dataflow.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dataflowService, err := dataflow.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   dataflowService, err := dataflow.NewService(ctx, option.WithScopes(dataflow.UserinfoEmailScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dataflowService, err := dataflow.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dataflowService, err := dataflow.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dataflow // import "google.golang.org/api/dataflow/v1b3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -65,6 +93,35 @@
 	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/compute",
+		"https://www.googleapis.com/auth/compute.readonly",
+		"https://www.googleapis.com/auth/userinfo.email",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/dataproc/v1/dataproc-gen.go b/dataproc/v1/dataproc-gen.go
index 22015f8..f1cafb0 100644
--- a/dataproc/v1/dataproc-gen.go
+++ b/dataproc/v1/dataproc-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/dataproc/apiv1 instead.
 //
-// See https://cloud.google.com/dataproc/
+// For product documentation, see: https://cloud.google.com/dataproc/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dataproc/v1"
 //   ...
-//   dataprocService, err := dataproc.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dataprocService, err := dataproc.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dataprocService, err := dataproc.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dataprocService, err := dataproc.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dataproc // import "google.golang.org/api/dataproc/v1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/dataproc/v1beta2/dataproc-gen.go b/dataproc/v1beta2/dataproc-gen.go
index f0cde34..1ae2225 100644
--- a/dataproc/v1beta2/dataproc-gen.go
+++ b/dataproc/v1beta2/dataproc-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/dataproc/apiv1 instead.
 //
-// See https://cloud.google.com/dataproc/
+// For product documentation, see: https://cloud.google.com/dataproc/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dataproc/v1beta2"
 //   ...
-//   dataprocService, err := dataproc.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dataprocService, err := dataproc.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dataprocService, err := dataproc.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dataprocService, err := dataproc.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dataproc // import "google.golang.org/api/dataproc/v1beta2"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/datastore/v1/datastore-gen.go b/datastore/v1/datastore-gen.go
index 998d5df..1da605c 100644
--- a/datastore/v1/datastore-gen.go
+++ b/datastore/v1/datastore-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/datastore instead.
 //
-// See https://cloud.google.com/datastore/
+// For product documentation, see: https://cloud.google.com/datastore/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/datastore/v1"
 //   ...
-//   datastoreService, err := datastore.New(oauthHttpClient)
+//   ctx := context.Background()
+//   datastoreService, err := datastore.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   datastoreService, err := datastore.NewService(ctx, option.WithScopes(datastore.DatastoreScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   datastoreService, err := datastore.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   datastoreService, err := datastore.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package datastore // import "google.golang.org/api/datastore/v1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	DatastoreScope = "https://www.googleapis.com/auth/datastore"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/datastore",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/datastore/v1beta1/datastore-gen.go b/datastore/v1beta1/datastore-gen.go
index b2de8eb..d6bd939 100644
--- a/datastore/v1beta1/datastore-gen.go
+++ b/datastore/v1beta1/datastore-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/datastore instead.
 //
-// See https://cloud.google.com/datastore/
+// For product documentation, see: https://cloud.google.com/datastore/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/datastore/v1beta1"
 //   ...
-//   datastoreService, err := datastore.New(oauthHttpClient)
+//   ctx := context.Background()
+//   datastoreService, err := datastore.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   datastoreService, err := datastore.NewService(ctx, option.WithScopes(datastore.DatastoreScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   datastoreService, err := datastore.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   datastoreService, err := datastore.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package datastore // import "google.golang.org/api/datastore/v1beta1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	DatastoreScope = "https://www.googleapis.com/auth/datastore"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/datastore",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/datastore/v1beta3/datastore-gen.go b/datastore/v1beta3/datastore-gen.go
index f16b976..9ce91f9 100644
--- a/datastore/v1beta3/datastore-gen.go
+++ b/datastore/v1beta3/datastore-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/datastore instead.
 //
-// See https://cloud.google.com/datastore/
+// For product documentation, see: https://cloud.google.com/datastore/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/datastore/v1beta3"
 //   ...
-//   datastoreService, err := datastore.New(oauthHttpClient)
+//   ctx := context.Background()
+//   datastoreService, err := datastore.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   datastoreService, err := datastore.NewService(ctx, option.WithScopes(datastore.DatastoreScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   datastoreService, err := datastore.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   datastoreService, err := datastore.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package datastore // import "google.golang.org/api/datastore/v1beta3"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	DatastoreScope = "https://www.googleapis.com/auth/datastore"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/datastore",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/deploymentmanager/v0.alpha/deploymentmanager-gen.go b/deploymentmanager/v0.alpha/deploymentmanager-gen.go
index bd4e54c..efa5384 100644
--- a/deploymentmanager/v0.alpha/deploymentmanager-gen.go
+++ b/deploymentmanager/v0.alpha/deploymentmanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package deploymentmanager provides access to the Google Cloud Deployment Manager Alpha API.
 //
-// See https://cloud.google.com/deployment-manager/
+// For product documentation, see: https://cloud.google.com/deployment-manager/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/deploymentmanager/v0.alpha"
 //   ...
-//   deploymentmanagerService, err := deploymentmanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithScopes(deploymentmanager.NdevCloudmanReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package deploymentmanager // import "google.golang.org/api/deploymentmanager/v0.alpha"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -67,6 +95,35 @@
 	NdevCloudmanReadonlyScope = "https://www.googleapis.com/auth/ndev.cloudman.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/ndev.cloudman",
+		"https://www.googleapis.com/auth/ndev.cloudman.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/deploymentmanager/v2/deploymentmanager-gen.go b/deploymentmanager/v2/deploymentmanager-gen.go
index ca4e4ec..38ad668 100644
--- a/deploymentmanager/v2/deploymentmanager-gen.go
+++ b/deploymentmanager/v2/deploymentmanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package deploymentmanager provides access to the Google Cloud Deployment Manager API.
 //
-// See https://cloud.google.com/deployment-manager/
+// For product documentation, see: https://cloud.google.com/deployment-manager/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/deploymentmanager/v2"
 //   ...
-//   deploymentmanagerService, err := deploymentmanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithScopes(deploymentmanager.NdevCloudmanReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package deploymentmanager // import "google.golang.org/api/deploymentmanager/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -67,6 +95,35 @@
 	NdevCloudmanReadonlyScope = "https://www.googleapis.com/auth/ndev.cloudman.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/ndev.cloudman",
+		"https://www.googleapis.com/auth/ndev.cloudman.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/deploymentmanager/v2beta/deploymentmanager-gen.go b/deploymentmanager/v2beta/deploymentmanager-gen.go
index 44a10c7..751f8f6 100644
--- a/deploymentmanager/v2beta/deploymentmanager-gen.go
+++ b/deploymentmanager/v2beta/deploymentmanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package deploymentmanager provides access to the Google Cloud Deployment Manager API V2Beta Methods.
 //
-// See https://developers.google.com/deployment-manager/
+// For product documentation, see: https://developers.google.com/deployment-manager/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/deploymentmanager/v2beta"
 //   ...
-//   deploymentmanagerService, err := deploymentmanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithScopes(deploymentmanager.NdevCloudmanReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package deploymentmanager // import "google.golang.org/api/deploymentmanager/v2beta"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -67,6 +95,35 @@
 	NdevCloudmanReadonlyScope = "https://www.googleapis.com/auth/ndev.cloudman.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/ndev.cloudman",
+		"https://www.googleapis.com/auth/ndev.cloudman.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/dfareporting/v3.1/dfareporting-gen.go b/dfareporting/v3.1/dfareporting-gen.go
index 04ac107..a627884 100644
--- a/dfareporting/v3.1/dfareporting-gen.go
+++ b/dfareporting/v3.1/dfareporting-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package dfareporting provides access to the DCM/DFA Reporting And Trafficking API.
 //
-// See https://developers.google.com/doubleclick-advertisers/
+// For product documentation, see: https://developers.google.com/doubleclick-advertisers/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dfareporting/v3.1"
 //   ...
-//   dfareportingService, err := dfareporting.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dfareportingService, err := dfareporting.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   dfareportingService, err := dfareporting.NewService(ctx, option.WithScopes(dfareporting.DfatraffickingScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dfareportingService, err := dfareporting.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dfareportingService, err := dfareporting.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dfareporting // import "google.golang.org/api/dfareporting/v3.1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -63,6 +91,34 @@
 	DfatraffickingScope = "https://www.googleapis.com/auth/dfatrafficking"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/ddmconversions",
+		"https://www.googleapis.com/auth/dfareporting",
+		"https://www.googleapis.com/auth/dfatrafficking",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/dfareporting/v3.2/dfareporting-gen.go b/dfareporting/v3.2/dfareporting-gen.go
index 12c1595..51bd1ee 100644
--- a/dfareporting/v3.2/dfareporting-gen.go
+++ b/dfareporting/v3.2/dfareporting-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package dfareporting provides access to the DCM/DFA Reporting And Trafficking API.
 //
-// See https://developers.google.com/doubleclick-advertisers/
+// For product documentation, see: https://developers.google.com/doubleclick-advertisers/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dfareporting/v3.2"
 //   ...
-//   dfareportingService, err := dfareporting.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dfareportingService, err := dfareporting.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   dfareportingService, err := dfareporting.NewService(ctx, option.WithScopes(dfareporting.DfatraffickingScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dfareportingService, err := dfareporting.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dfareportingService, err := dfareporting.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dfareporting // import "google.golang.org/api/dfareporting/v3.2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -63,6 +91,34 @@
 	DfatraffickingScope = "https://www.googleapis.com/auth/dfatrafficking"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/ddmconversions",
+		"https://www.googleapis.com/auth/dfareporting",
+		"https://www.googleapis.com/auth/dfatrafficking",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/dfareporting/v3.3/dfareporting-gen.go b/dfareporting/v3.3/dfareporting-gen.go
index c7aa33f..80e4e34 100644
--- a/dfareporting/v3.3/dfareporting-gen.go
+++ b/dfareporting/v3.3/dfareporting-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package dfareporting provides access to the DCM/DFA Reporting And Trafficking API.
 //
-// See https://developers.google.com/doubleclick-advertisers/
+// For product documentation, see: https://developers.google.com/doubleclick-advertisers/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dfareporting/v3.3"
 //   ...
-//   dfareportingService, err := dfareporting.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dfareportingService, err := dfareporting.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   dfareportingService, err := dfareporting.NewService(ctx, option.WithScopes(dfareporting.DfatraffickingScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dfareportingService, err := dfareporting.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dfareportingService, err := dfareporting.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dfareporting // import "google.golang.org/api/dfareporting/v3.3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -63,6 +91,34 @@
 	DfatraffickingScope = "https://www.googleapis.com/auth/dfatrafficking"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/ddmconversions",
+		"https://www.googleapis.com/auth/dfareporting",
+		"https://www.googleapis.com/auth/dfatrafficking",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/dialogflow/v2/dialogflow-api.json b/dialogflow/v2/dialogflow-api.json
index 528dada..6ae00a9 100644
--- a/dialogflow/v2/dialogflow-api.json
+++ b/dialogflow/v2/dialogflow-api.json
@@ -1303,7 +1303,7 @@
       }
     }
   },
-  "revision": "20190219",
+  "revision": "20190311",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowV2Agent": {
@@ -4049,7 +4049,7 @@
       "type": "object"
     },
     "GoogleRpcStatus": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpcStatus",
       "properties": {
         "code": {
diff --git a/dialogflow/v2/dialogflow-gen.go b/dialogflow/v2/dialogflow-gen.go
index 8dfce99..21ee42d 100644
--- a/dialogflow/v2/dialogflow-gen.go
+++ b/dialogflow/v2/dialogflow-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/dialogflow/apiv2 instead.
 //
-// See https://cloud.google.com/dialogflow-enterprise/
+// For product documentation, see: https://cloud.google.com/dialogflow-enterprise/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dialogflow/v2"
 //   ...
-//   dialogflowService, err := dialogflow.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dialogflowService, err := dialogflow.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   dialogflowService, err := dialogflow.NewService(ctx, option.WithScopes(dialogflow.DialogflowScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dialogflowService, err := dialogflow.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dialogflowService, err := dialogflow.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dialogflow // import "google.golang.org/api/dialogflow/v2"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	DialogflowScope = "https://www.googleapis.com/auth/dialogflow"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/dialogflow",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -5775,20 +5830,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/dialogflow/v2beta1/dialogflow-api.json b/dialogflow/v2beta1/dialogflow-api.json
index 87d4f79..6b2f243 100644
--- a/dialogflow/v2beta1/dialogflow-api.json
+++ b/dialogflow/v2beta1/dialogflow-api.json
@@ -2386,7 +2386,7 @@
       }
     }
   },
-  "revision": "20190219",
+  "revision": "20190311",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowV2BatchUpdateEntityTypesResponse": {
@@ -5376,7 +5376,7 @@
       "type": "object"
     },
     "GoogleRpcStatus": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpcStatus",
       "properties": {
         "code": {
diff --git a/dialogflow/v2beta1/dialogflow-gen.go b/dialogflow/v2beta1/dialogflow-gen.go
index 47e7691..7ba2b82 100644
--- a/dialogflow/v2beta1/dialogflow-gen.go
+++ b/dialogflow/v2beta1/dialogflow-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/dialogflow/apiv2 instead.
 //
-// See https://cloud.google.com/dialogflow-enterprise/
+// For product documentation, see: https://cloud.google.com/dialogflow-enterprise/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dialogflow/v2beta1"
 //   ...
-//   dialogflowService, err := dialogflow.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dialogflowService, err := dialogflow.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   dialogflowService, err := dialogflow.NewService(ctx, option.WithScopes(dialogflow.DialogflowScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dialogflowService, err := dialogflow.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dialogflowService, err := dialogflow.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dialogflow // import "google.golang.org/api/dialogflow/v2beta1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	DialogflowScope = "https://www.googleapis.com/auth/dialogflow"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/dialogflow",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -6428,20 +6483,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/digitalassetlinks/v1/digitalassetlinks-gen.go b/digitalassetlinks/v1/digitalassetlinks-gen.go
index 3b06469..4e7bb4d 100644
--- a/digitalassetlinks/v1/digitalassetlinks-gen.go
+++ b/digitalassetlinks/v1/digitalassetlinks-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package digitalassetlinks provides access to the Digital Asset Links API.
 //
-// See https://developers.google.com/digital-asset-links/
+// For product documentation, see: https://developers.google.com/digital-asset-links/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/digitalassetlinks/v1"
 //   ...
-//   digitalassetlinksService, err := digitalassetlinks.New(oauthHttpClient)
+//   ctx := context.Background()
+//   digitalassetlinksService, err := digitalassetlinks.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   digitalassetlinksService, err := digitalassetlinks.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   digitalassetlinksService, err := digitalassetlinks.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package digitalassetlinks // import "google.golang.org/api/digitalassetlinks/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://digitalassetlinks.googleapis.com/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/discovery/v1/discovery-gen.go b/discovery/v1/discovery-gen.go
index 3cef061..6854331 100644
--- a/discovery/v1/discovery-gen.go
+++ b/discovery/v1/discovery-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package discovery provides access to the API Discovery Service.
 //
-// See https://developers.google.com/discovery/
+// For product documentation, see: https://developers.google.com/discovery/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/discovery/v1"
 //   ...
-//   discoveryService, err := discovery.New(oauthHttpClient)
+//   ctx := context.Background()
+//   discoveryService, err := discovery.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   discoveryService, err := discovery.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   discoveryService, err := discovery.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package discovery // import "google.golang.org/api/discovery/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://www.googleapis.com/discovery/v1/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/dlp/v2/dlp-api.json b/dlp/v2/dlp-api.json
index d0c5052..32f7756 100644
--- a/dlp/v2/dlp-api.json
+++ b/dlp/v2/dlp-api.json
@@ -1519,7 +1519,7 @@
       }
     }
   },
-  "revision": "20190307",
+  "revision": "20190312",
   "rootUrl": "https://dlp.googleapis.com/",
   "schemas": {
     "GooglePrivacyDlpV2Action": {
@@ -5078,7 +5078,7 @@
       "type": "object"
     },
     "GoogleRpcStatus": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpcStatus",
       "properties": {
         "code": {
diff --git a/dlp/v2/dlp-gen.go b/dlp/v2/dlp-gen.go
index 6e0559d..ca14cb0 100644
--- a/dlp/v2/dlp-gen.go
+++ b/dlp/v2/dlp-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/dlp/apiv2 instead.
 //
-// See https://cloud.google.com/dlp/docs/
+// For product documentation, see: https://cloud.google.com/dlp/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dlp/v2"
 //   ...
-//   dlpService, err := dlp.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dlpService, err := dlp.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dlpService, err := dlp.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dlpService, err := dlp.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dlp // import "google.golang.org/api/dlp/v2"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -7425,20 +7475,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/dns/v1/dns-api.json b/dns/v1/dns-api.json
index d0602ad..606257b 100644
--- a/dns/v1/dns-api.json
+++ b/dns/v1/dns-api.json
@@ -23,7 +23,7 @@
   "description": "Configures and serves authoritative DNS records.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/cloud-dns",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/ATSzBKlKlNuMbykFz6TPz-5v-_s\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/MUEA1ZMhfI9iAzfPfacPlOXY3F4\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -702,7 +702,7 @@
       }
     }
   },
-  "revision": "20190213",
+  "revision": "20190312",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Change": {
@@ -968,6 +968,20 @@
             "type": "string"
           },
           "type": "array"
+        },
+        "privateVisibilityConfig": {
+          "$ref": "ManagedZonePrivateVisibilityConfig"
+        },
+        "visibility": {
+          "enum": [
+            "private",
+            "public"
+          ],
+          "enumDescriptions": [
+            "",
+            ""
+          ],
+          "type": "string"
         }
       },
       "type": "object"
@@ -1036,6 +1050,37 @@
       },
       "type": "object"
     },
+    "ManagedZonePrivateVisibilityConfig": {
+      "id": "ManagedZonePrivateVisibilityConfig",
+      "properties": {
+        "kind": {
+          "default": "dns#managedZonePrivateVisibilityConfig",
+          "description": "Identifies what kind of resource this is. Value: the fixed string \"dns#managedZonePrivateVisibilityConfig\".",
+          "type": "string"
+        },
+        "networks": {
+          "items": {
+            "$ref": "ManagedZonePrivateVisibilityConfigNetwork"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "ManagedZonePrivateVisibilityConfigNetwork": {
+      "id": "ManagedZonePrivateVisibilityConfigNetwork",
+      "properties": {
+        "kind": {
+          "default": "dns#managedZonePrivateVisibilityConfigNetwork",
+          "description": "Identifies what kind of resource this is. Value: the fixed string \"dns#managedZonePrivateVisibilityConfigNetwork\".",
+          "type": "string"
+        },
+        "networkUrl": {
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "ManagedZonesListResponse": {
       "id": "ManagedZonesListResponse",
       "properties": {
@@ -1160,6 +1205,14 @@
           "format": "int32",
           "type": "integer"
         },
+        "managedZonesPerNetwork": {
+          "format": "int32",
+          "type": "integer"
+        },
+        "networksPerManagedZone": {
+          "format": "int32",
+          "type": "integer"
+        },
         "resourceRecordsPerRrset": {
           "format": "int32",
           "type": "integer"
diff --git a/dns/v1/dns-gen.go b/dns/v1/dns-gen.go
index cf0467d..5751209 100644
--- a/dns/v1/dns-gen.go
+++ b/dns/v1/dns-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package dns provides access to the Google Cloud DNS API.
 //
-// See https://developers.google.com/cloud-dns
+// For product documentation, see: https://developers.google.com/cloud-dns
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dns/v1"
 //   ...
-//   dnsService, err := dns.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dnsService, err := dns.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   dnsService, err := dns.NewService(ctx, option.WithScopes(dns.NdevClouddnsReadwriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dnsService, err := dns.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dnsService, err := dns.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dns // import "google.golang.org/api/dns/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -65,6 +93,35 @@
 	NdevClouddnsReadwriteScope = "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/ndev.clouddns.readonly",
+		"https://www.googleapis.com/auth/ndev.clouddns.readwrite",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -438,6 +495,13 @@
 
 	NameServers []string `json:"nameServers,omitempty"`
 
+	PrivateVisibilityConfig *ManagedZonePrivateVisibilityConfig `json:"privateVisibilityConfig,omitempty"`
+
+	// Possible values:
+	//   "private"
+	//   "public"
+	Visibility string `json:"visibility,omitempty"`
+
 	// ServerResponse contains the HTTP response code and headers from the
 	// server.
 	googleapi.ServerResponse `json:"-"`
@@ -544,6 +608,66 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+type ManagedZonePrivateVisibilityConfig struct {
+	// Kind: Identifies what kind of resource this is. Value: the fixed
+	// string "dns#managedZonePrivateVisibilityConfig".
+	Kind string `json:"kind,omitempty"`
+
+	Networks []*ManagedZonePrivateVisibilityConfigNetwork `json:"networks,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Kind") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Kind") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *ManagedZonePrivateVisibilityConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod ManagedZonePrivateVisibilityConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+type ManagedZonePrivateVisibilityConfigNetwork struct {
+	// Kind: Identifies what kind of resource this is. Value: the fixed
+	// string "dns#managedZonePrivateVisibilityConfigNetwork".
+	Kind string `json:"kind,omitempty"`
+
+	NetworkUrl string `json:"networkUrl,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Kind") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Kind") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *ManagedZonePrivateVisibilityConfigNetwork) MarshalJSON() ([]byte, error) {
+	type NoMethod ManagedZonePrivateVisibilityConfigNetwork
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 type ManagedZonesListResponse struct {
 	Header *ResponseHeader `json:"header,omitempty"`
 
@@ -733,6 +857,10 @@
 
 	ManagedZones int64 `json:"managedZones,omitempty"`
 
+	ManagedZonesPerNetwork int64 `json:"managedZonesPerNetwork,omitempty"`
+
+	NetworksPerManagedZone int64 `json:"networksPerManagedZone,omitempty"`
+
 	ResourceRecordsPerRrset int64 `json:"resourceRecordsPerRrset,omitempty"`
 
 	RrsetAdditionsPerChange int64 `json:"rrsetAdditionsPerChange,omitempty"`
diff --git a/dns/v1beta2/dns-gen.go b/dns/v1beta2/dns-gen.go
index 93b0154..3e400f2 100644
--- a/dns/v1beta2/dns-gen.go
+++ b/dns/v1beta2/dns-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package dns provides access to the Google Cloud DNS API.
 //
-// See https://developers.google.com/cloud-dns
+// For product documentation, see: https://developers.google.com/cloud-dns
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dns/v1beta2"
 //   ...
-//   dnsService, err := dns.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dnsService, err := dns.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   dnsService, err := dns.NewService(ctx, option.WithScopes(dns.NdevClouddnsReadwriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dnsService, err := dns.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dnsService, err := dns.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dns // import "google.golang.org/api/dns/v1beta2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -65,6 +93,35 @@
 	NdevClouddnsReadwriteScope = "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/ndev.clouddns.readonly",
+		"https://www.googleapis.com/auth/ndev.clouddns.readwrite",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/dns/v2beta1/dns-api.json b/dns/v2beta1/dns-api.json
index ce86a5e..249bcdf 100644
--- a/dns/v2beta1/dns-api.json
+++ b/dns/v2beta1/dns-api.json
@@ -23,7 +23,7 @@
   "description": "Configures and serves authoritative DNS records.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/cloud-dns",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/KQEkH0T9Md8P_ZZRj3t0bhQ1ahU\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/aI3DC0Jiucj0DgH4QXgwPBq4xMc\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -702,7 +702,7 @@
       }
     }
   },
-  "revision": "20190213",
+  "revision": "20190312",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Change": {
@@ -968,6 +968,20 @@
             "type": "string"
           },
           "type": "array"
+        },
+        "privateVisibilityConfig": {
+          "$ref": "ManagedZonePrivateVisibilityConfig"
+        },
+        "visibility": {
+          "enum": [
+            "PRIVATE",
+            "PUBLIC"
+          ],
+          "enumDescriptions": [
+            "",
+            ""
+          ],
+          "type": "string"
         }
       },
       "type": "object"
@@ -1036,6 +1050,37 @@
       },
       "type": "object"
     },
+    "ManagedZonePrivateVisibilityConfig": {
+      "id": "ManagedZonePrivateVisibilityConfig",
+      "properties": {
+        "kind": {
+          "default": "dns#managedZonePrivateVisibilityConfig",
+          "description": "Identifies what kind of resource this is. Value: the fixed string \"dns#managedZonePrivateVisibilityConfig\".",
+          "type": "string"
+        },
+        "networks": {
+          "items": {
+            "$ref": "ManagedZonePrivateVisibilityConfigNetwork"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "ManagedZonePrivateVisibilityConfigNetwork": {
+      "id": "ManagedZonePrivateVisibilityConfigNetwork",
+      "properties": {
+        "kind": {
+          "default": "dns#managedZonePrivateVisibilityConfigNetwork",
+          "description": "Identifies what kind of resource this is. Value: the fixed string \"dns#managedZonePrivateVisibilityConfigNetwork\".",
+          "type": "string"
+        },
+        "networkUrl": {
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "ManagedZonesListResponse": {
       "id": "ManagedZonesListResponse",
       "properties": {
@@ -1160,6 +1205,14 @@
           "format": "int32",
           "type": "integer"
         },
+        "managedZonesPerNetwork": {
+          "format": "int32",
+          "type": "integer"
+        },
+        "networksPerManagedZone": {
+          "format": "int32",
+          "type": "integer"
+        },
         "resourceRecordsPerRrset": {
           "format": "int32",
           "type": "integer"
diff --git a/dns/v2beta1/dns-gen.go b/dns/v2beta1/dns-gen.go
index 886e61d..61944bf 100644
--- a/dns/v2beta1/dns-gen.go
+++ b/dns/v2beta1/dns-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package dns provides access to the Google Cloud DNS API.
 //
-// See https://developers.google.com/cloud-dns
+// For product documentation, see: https://developers.google.com/cloud-dns
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/dns/v2beta1"
 //   ...
-//   dnsService, err := dns.New(oauthHttpClient)
+//   ctx := context.Background()
+//   dnsService, err := dns.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   dnsService, err := dns.NewService(ctx, option.WithScopes(dns.NdevClouddnsReadwriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   dnsService, err := dns.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   dnsService, err := dns.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package dns // import "google.golang.org/api/dns/v2beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -65,6 +93,35 @@
 	NdevClouddnsReadwriteScope = "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/ndev.clouddns.readonly",
+		"https://www.googleapis.com/auth/ndev.clouddns.readwrite",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -438,6 +495,13 @@
 
 	NameServers []string `json:"nameServers,omitempty"`
 
+	PrivateVisibilityConfig *ManagedZonePrivateVisibilityConfig `json:"privateVisibilityConfig,omitempty"`
+
+	// Possible values:
+	//   "PRIVATE"
+	//   "PUBLIC"
+	Visibility string `json:"visibility,omitempty"`
+
 	// ServerResponse contains the HTTP response code and headers from the
 	// server.
 	googleapi.ServerResponse `json:"-"`
@@ -544,6 +608,66 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+type ManagedZonePrivateVisibilityConfig struct {
+	// Kind: Identifies what kind of resource this is. Value: the fixed
+	// string "dns#managedZonePrivateVisibilityConfig".
+	Kind string `json:"kind,omitempty"`
+
+	Networks []*ManagedZonePrivateVisibilityConfigNetwork `json:"networks,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Kind") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Kind") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *ManagedZonePrivateVisibilityConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod ManagedZonePrivateVisibilityConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+type ManagedZonePrivateVisibilityConfigNetwork struct {
+	// Kind: Identifies what kind of resource this is. Value: the fixed
+	// string "dns#managedZonePrivateVisibilityConfigNetwork".
+	Kind string `json:"kind,omitempty"`
+
+	NetworkUrl string `json:"networkUrl,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Kind") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Kind") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *ManagedZonePrivateVisibilityConfigNetwork) MarshalJSON() ([]byte, error) {
+	type NoMethod ManagedZonePrivateVisibilityConfigNetwork
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 type ManagedZonesListResponse struct {
 	Header *ResponseHeader `json:"header,omitempty"`
 
@@ -733,6 +857,10 @@
 
 	ManagedZones int64 `json:"managedZones,omitempty"`
 
+	ManagedZonesPerNetwork int64 `json:"managedZonesPerNetwork,omitempty"`
+
+	NetworksPerManagedZone int64 `json:"networksPerManagedZone,omitempty"`
+
 	ResourceRecordsPerRrset int64 `json:"resourceRecordsPerRrset,omitempty"`
 
 	RrsetAdditionsPerChange int64 `json:"rrsetAdditionsPerChange,omitempty"`
diff --git a/docs/v1/docs-gen.go b/docs/v1/docs-gen.go
index a77692a..c00c337 100644
--- a/docs/v1/docs-gen.go
+++ b/docs/v1/docs-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package docs provides access to the Google Docs API.
 //
-// See https://developers.google.com/docs/
+// For product documentation, see: https://developers.google.com/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/docs/v1"
 //   ...
-//   docsService, err := docs.New(oauthHttpClient)
+//   ctx := context.Background()
+//   docsService, err := docs.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   docsService, err := docs.NewService(ctx, option.WithScopes(docs.DriveReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   docsService, err := docs.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   docsService, err := docs.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package docs // import "google.golang.org/api/docs/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -69,6 +97,36 @@
 	DriveReadonlyScope = "https://www.googleapis.com/auth/drive.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/documents",
+		"https://www.googleapis.com/auth/documents.readonly",
+		"https://www.googleapis.com/auth/drive",
+		"https://www.googleapis.com/auth/drive.file",
+		"https://www.googleapis.com/auth/drive.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/doubleclickbidmanager/v1/doubleclickbidmanager-gen.go b/doubleclickbidmanager/v1/doubleclickbidmanager-gen.go
index f9762b4..62736e2 100644
--- a/doubleclickbidmanager/v1/doubleclickbidmanager-gen.go
+++ b/doubleclickbidmanager/v1/doubleclickbidmanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package doubleclickbidmanager provides access to the DoubleClick Bid Manager API.
 //
-// See https://developers.google.com/bid-manager/
+// For product documentation, see: https://developers.google.com/bid-manager/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/doubleclickbidmanager/v1"
 //   ...
-//   doubleclickbidmanagerService, err := doubleclickbidmanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   doubleclickbidmanagerService, err := doubleclickbidmanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   doubleclickbidmanagerService, err := doubleclickbidmanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   doubleclickbidmanagerService, err := doubleclickbidmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package doubleclickbidmanager // import "google.golang.org/api/doubleclickbidmanager/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	DoubleclickbidmanagerScope = "https://www.googleapis.com/auth/doubleclickbidmanager"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/doubleclickbidmanager",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/doubleclicksearch/v2/doubleclicksearch-gen.go b/doubleclicksearch/v2/doubleclicksearch-gen.go
index 43386b3..ec99718 100644
--- a/doubleclicksearch/v2/doubleclicksearch-gen.go
+++ b/doubleclicksearch/v2/doubleclicksearch-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package doubleclicksearch provides access to the DoubleClick Search API.
 //
-// See https://developers.google.com/doubleclick-search/
+// For product documentation, see: https://developers.google.com/doubleclick-search/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/doubleclicksearch/v2"
 //   ...
-//   doubleclicksearchService, err := doubleclicksearch.New(oauthHttpClient)
+//   ctx := context.Background()
+//   doubleclicksearchService, err := doubleclicksearch.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   doubleclicksearchService, err := doubleclicksearch.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   doubleclicksearchService, err := doubleclicksearch.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package doubleclicksearch // import "google.golang.org/api/doubleclicksearch/v2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	DoubleclicksearchScope = "https://www.googleapis.com/auth/doubleclicksearch"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/doubleclicksearch",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/drive/v2/drive-api.json b/drive/v2/drive-api.json
index 43e4e47..7c90eb8 100644
--- a/drive/v2/drive-api.json
+++ b/drive/v2/drive-api.json
@@ -38,7 +38,7 @@
   "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/drive/",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/ht6QYJxjG-GWKiHV7jWIX4PB5aE\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/XBo3v2wypoRQ0OatiSPR_63Htp4\"",
   "icons": {
     "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png",
     "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png"
@@ -2748,7 +2748,7 @@
     "revisions": {
       "methods": {
         "delete": {
-          "description": "Removes a revision.",
+          "description": "Permanently deletes a file version. You can only delete revisions for files with binary content, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.",
           "httpMethod": "DELETE",
           "id": "drive.revisions.delete",
           "parameterOrder": [
@@ -3080,7 +3080,7 @@
       }
     }
   },
-  "revision": "20181025",
+  "revision": "20190311",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "About": {
diff --git a/drive/v2/drive-gen.go b/drive/v2/drive-gen.go
index eafa750..3c36259 100644
--- a/drive/v2/drive-gen.go
+++ b/drive/v2/drive-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package drive provides access to the Drive API.
 //
-// See https://developers.google.com/drive/
+// For product documentation, see: https://developers.google.com/drive/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/drive/v2"
 //   ...
-//   driveService, err := drive.New(oauthHttpClient)
+//   ctx := context.Background()
+//   driveService, err := drive.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   driveService, err := drive.NewService(ctx, option.WithScopes(drive.DriveScriptsScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   driveService, err := drive.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   driveService, err := drive.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package drive // import "google.golang.org/api/drive/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -81,6 +109,40 @@
 	DriveScriptsScope = "https://www.googleapis.com/auth/drive.scripts"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/drive",
+		"https://www.googleapis.com/auth/drive.appdata",
+		"https://www.googleapis.com/auth/drive.apps.readonly",
+		"https://www.googleapis.com/auth/drive.file",
+		"https://www.googleapis.com/auth/drive.metadata",
+		"https://www.googleapis.com/auth/drive.metadata.readonly",
+		"https://www.googleapis.com/auth/drive.photos.readonly",
+		"https://www.googleapis.com/auth/drive.readonly",
+		"https://www.googleapis.com/auth/drive.scripts",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -13638,7 +13700,10 @@
 	header_    http.Header
 }
 
-// Delete: Removes a revision.
+// Delete: Permanently deletes a file version. You can only delete
+// revisions for files with binary content, like images or videos.
+// Revisions for other files, like Google Docs or Sheets, and the last
+// remaining file version can't be deleted.
 func (r *RevisionsService) Delete(fileId string, revisionId string) *RevisionsDeleteCall {
 	c := &RevisionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.fileId = fileId
@@ -13707,7 +13772,7 @@
 	}
 	return nil
 	// {
-	//   "description": "Removes a revision.",
+	//   "description": "Permanently deletes a file version. You can only delete revisions for files with binary content, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.",
 	//   "httpMethod": "DELETE",
 	//   "id": "drive.revisions.delete",
 	//   "parameterOrder": [
diff --git a/drive/v3/drive-api.json b/drive/v3/drive-api.json
index d75ae30..e59e16a 100644
--- a/drive/v3/drive-api.json
+++ b/drive/v3/drive-api.json
@@ -35,7 +35,7 @@
   "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/drive/",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/DmsVwHXLUfZJqrDE1d-9tgSUvKk\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/AVEoPmuw3qKn1b0N_HIutPHT3IQ\"",
   "icons": {
     "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png",
     "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png"
@@ -1465,7 +1465,7 @@
     "revisions": {
       "methods": {
         "delete": {
-          "description": "Permanently deletes a revision. This method is only applicable to files with binary content in Drive.",
+          "description": "Permanently deletes a file version. You can only delete revisions for files with binary content, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.",
           "httpMethod": "DELETE",
           "id": "drive.revisions.delete",
           "parameterOrder": [
@@ -1770,7 +1770,7 @@
       }
     }
   },
-  "revision": "20181213",
+  "revision": "20190311",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "About": {
diff --git a/drive/v3/drive-gen.go b/drive/v3/drive-gen.go
index dcadcd7..941b6e7 100644
--- a/drive/v3/drive-gen.go
+++ b/drive/v3/drive-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package drive provides access to the Drive API.
 //
-// See https://developers.google.com/drive/
+// For product documentation, see: https://developers.google.com/drive/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/drive/v3"
 //   ...
-//   driveService, err := drive.New(oauthHttpClient)
+//   ctx := context.Background()
+//   driveService, err := drive.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   driveService, err := drive.NewService(ctx, option.WithScopes(drive.DriveScriptsScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   driveService, err := drive.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   driveService, err := drive.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package drive // import "google.golang.org/api/drive/v3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -78,6 +106,39 @@
 	DriveScriptsScope = "https://www.googleapis.com/auth/drive.scripts"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/drive",
+		"https://www.googleapis.com/auth/drive.appdata",
+		"https://www.googleapis.com/auth/drive.file",
+		"https://www.googleapis.com/auth/drive.metadata",
+		"https://www.googleapis.com/auth/drive.metadata.readonly",
+		"https://www.googleapis.com/auth/drive.photos.readonly",
+		"https://www.googleapis.com/auth/drive.readonly",
+		"https://www.googleapis.com/auth/drive.scripts",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -7741,8 +7802,10 @@
 	header_    http.Header
 }
 
-// Delete: Permanently deletes a revision. This method is only
-// applicable to files with binary content in Drive.
+// Delete: Permanently deletes a file version. You can only delete
+// revisions for files with binary content, like images or videos.
+// Revisions for other files, like Google Docs or Sheets, and the last
+// remaining file version can't be deleted.
 func (r *RevisionsService) Delete(fileId string, revisionId string) *RevisionsDeleteCall {
 	c := &RevisionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.fileId = fileId
@@ -7811,7 +7874,7 @@
 	}
 	return nil
 	// {
-	//   "description": "Permanently deletes a revision. This method is only applicable to files with binary content in Drive.",
+	//   "description": "Permanently deletes a file version. You can only delete revisions for files with binary content, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.",
 	//   "httpMethod": "DELETE",
 	//   "id": "drive.revisions.delete",
 	//   "parameterOrder": [
diff --git a/driveactivity/v2/driveactivity-gen.go b/driveactivity/v2/driveactivity-gen.go
index 9c65c54..83e6b61 100644
--- a/driveactivity/v2/driveactivity-gen.go
+++ b/driveactivity/v2/driveactivity-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package driveactivity provides access to the Drive Activity API.
 //
-// See https://developers.google.com/drive/activity/
+// For product documentation, see: https://developers.google.com/drive/activity/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/driveactivity/v2"
 //   ...
-//   driveactivityService, err := driveactivity.New(oauthHttpClient)
+//   ctx := context.Background()
+//   driveactivityService, err := driveactivity.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   driveactivityService, err := driveactivity.NewService(ctx, option.WithScopes(driveactivity.DriveActivityReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   driveactivityService, err := driveactivity.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   driveactivityService, err := driveactivity.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package driveactivity // import "google.golang.org/api/driveactivity/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	DriveActivityReadonlyScope = "https://www.googleapis.com/auth/drive.activity.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/drive.activity",
+		"https://www.googleapis.com/auth/drive.activity.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/file/v1/file-api.json b/file/v1/file-api.json
index 5d152fe..9589243 100644
--- a/file/v1/file-api.json
+++ b/file/v1/file-api.json
@@ -471,7 +471,7 @@
       }
     }
   },
-  "revision": "20190123",
+  "revision": "20190312",
   "rootUrl": "https://file.googleapis.com/",
   "schemas": {
     "CancelOperationRequest": {
@@ -790,7 +790,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/file/v1/file-gen.go b/file/v1/file-gen.go
index ba6ec4d..3afdc07 100644
--- a/file/v1/file-gen.go
+++ b/file/v1/file-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package file provides access to the Cloud Filestore API.
 //
-// See https://cloud.google.com/filestore/
+// For product documentation, see: https://cloud.google.com/filestore/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/file/v1"
 //   ...
-//   fileService, err := file.New(oauthHttpClient)
+//   ctx := context.Background()
+//   fileService, err := file.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   fileService, err := file.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   fileService, err := file.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package file // import "google.golang.org/api/file/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -638,20 +688,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/file/v1beta1/file-api.json b/file/v1beta1/file-api.json
index 8b0fc41..9e2687e 100644
--- a/file/v1beta1/file-api.json
+++ b/file/v1beta1/file-api.json
@@ -471,7 +471,7 @@
       }
     }
   },
-  "revision": "20180925",
+  "revision": "20190312",
   "rootUrl": "https://file.googleapis.com/",
   "schemas": {
     "CancelOperationRequest": {
@@ -790,7 +790,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/file/v1beta1/file-gen.go b/file/v1beta1/file-gen.go
index 46bdecf..ac6ebc6 100644
--- a/file/v1beta1/file-gen.go
+++ b/file/v1beta1/file-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package file provides access to the Cloud Filestore API.
 //
-// See https://cloud.google.com/filestore/
+// For product documentation, see: https://cloud.google.com/filestore/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/file/v1beta1"
 //   ...
-//   fileService, err := file.New(oauthHttpClient)
+//   ctx := context.Background()
+//   fileService, err := file.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   fileService, err := file.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   fileService, err := file.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package file // import "google.golang.org/api/file/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -638,20 +688,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go b/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go
index 7680843..edbf155 100644
--- a/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go
+++ b/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package firebasedynamiclinks provides access to the Firebase Dynamic Links API.
 //
-// See https://firebase.google.com/docs/dynamic-links/
+// For product documentation, see: https://firebase.google.com/docs/dynamic-links/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/firebasedynamiclinks/v1"
 //   ...
-//   firebasedynamiclinksService, err := firebasedynamiclinks.New(oauthHttpClient)
+//   ctx := context.Background()
+//   firebasedynamiclinksService, err := firebasedynamiclinks.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   firebasedynamiclinksService, err := firebasedynamiclinks.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   firebasedynamiclinksService, err := firebasedynamiclinks.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package firebasedynamiclinks // import "google.golang.org/api/firebasedynamiclinks/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	FirebaseScope = "https://www.googleapis.com/auth/firebase"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/firebase",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/firebasehosting/v1beta1/firebasehosting-gen.go b/firebasehosting/v1beta1/firebasehosting-gen.go
index ea2d68e..04abe39 100644
--- a/firebasehosting/v1beta1/firebasehosting-gen.go
+++ b/firebasehosting/v1beta1/firebasehosting-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package firebasehosting provides access to the Firebase Hosting API.
 //
-// See https://firebase.google.com/docs/hosting/
+// For product documentation, see: https://firebase.google.com/docs/hosting/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/firebasehosting/v1beta1"
 //   ...
-//   firebasehostingService, err := firebasehosting.New(oauthHttpClient)
+//   ctx := context.Background()
+//   firebasehostingService, err := firebasehosting.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   firebasehostingService, err := firebasehosting.NewService(ctx, option.WithScopes(firebasehosting.FirebaseReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   firebasehostingService, err := firebasehosting.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   firebasehostingService, err := firebasehosting.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package firebasehosting // import "google.golang.org/api/firebasehosting/v1beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -65,6 +93,35 @@
 	FirebaseReadonlyScope = "https://www.googleapis.com/auth/firebase.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/firebase",
+		"https://www.googleapis.com/auth/firebase.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/firebaserules/v1/firebaserules-gen.go b/firebaserules/v1/firebaserules-gen.go
index ffd0bcb..700acfe 100644
--- a/firebaserules/v1/firebaserules-gen.go
+++ b/firebaserules/v1/firebaserules-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package firebaserules provides access to the Firebase Rules API.
 //
-// See https://firebase.google.com/docs/storage/security
+// For product documentation, see: https://firebase.google.com/docs/storage/security
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/firebaserules/v1"
 //   ...
-//   firebaserulesService, err := firebaserules.New(oauthHttpClient)
+//   ctx := context.Background()
+//   firebaserulesService, err := firebaserules.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   firebaserulesService, err := firebaserules.NewService(ctx, option.WithScopes(firebaserules.FirebaseReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   firebaserulesService, err := firebaserules.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   firebaserulesService, err := firebaserules.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package firebaserules // import "google.golang.org/api/firebaserules/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	FirebaseReadonlyScope = "https://www.googleapis.com/auth/firebase.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/firebase",
+		"https://www.googleapis.com/auth/firebase.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/firestore/v1/firestore-gen.go b/firestore/v1/firestore-gen.go
index 418859d..fb32ead 100644
--- a/firestore/v1/firestore-gen.go
+++ b/firestore/v1/firestore-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/firestore instead.
 //
-// See https://cloud.google.com/firestore
+// For product documentation, see: https://cloud.google.com/firestore
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/firestore/v1"
 //   ...
-//   firestoreService, err := firestore.New(oauthHttpClient)
+//   ctx := context.Background()
+//   firestoreService, err := firestore.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   firestoreService, err := firestore.NewService(ctx, option.WithScopes(firestore.DatastoreScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   firestoreService, err := firestore.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   firestoreService, err := firestore.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package firestore // import "google.golang.org/api/firestore/v1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	DatastoreScope = "https://www.googleapis.com/auth/datastore"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/datastore",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/firestore/v1beta1/firestore-gen.go b/firestore/v1beta1/firestore-gen.go
index 8d00745..b0e39ee 100644
--- a/firestore/v1beta1/firestore-gen.go
+++ b/firestore/v1beta1/firestore-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/firestore instead.
 //
-// See https://cloud.google.com/firestore
+// For product documentation, see: https://cloud.google.com/firestore
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/firestore/v1beta1"
 //   ...
-//   firestoreService, err := firestore.New(oauthHttpClient)
+//   ctx := context.Background()
+//   firestoreService, err := firestore.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   firestoreService, err := firestore.NewService(ctx, option.WithScopes(firestore.DatastoreScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   firestoreService, err := firestore.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   firestoreService, err := firestore.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package firestore // import "google.golang.org/api/firestore/v1beta1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	DatastoreScope = "https://www.googleapis.com/auth/datastore"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/datastore",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/firestore/v1beta2/firestore-gen.go b/firestore/v1beta2/firestore-gen.go
index ffd01df..069978e 100644
--- a/firestore/v1beta2/firestore-gen.go
+++ b/firestore/v1beta2/firestore-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/firestore instead.
 //
-// See https://cloud.google.com/firestore
+// For product documentation, see: https://cloud.google.com/firestore
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/firestore/v1beta2"
 //   ...
-//   firestoreService, err := firestore.New(oauthHttpClient)
+//   ctx := context.Background()
+//   firestoreService, err := firestore.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   firestoreService, err := firestore.NewService(ctx, option.WithScopes(firestore.DatastoreScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   firestoreService, err := firestore.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   firestoreService, err := firestore.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package firestore // import "google.golang.org/api/firestore/v1beta2"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	DatastoreScope = "https://www.googleapis.com/auth/datastore"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/datastore",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/fitness/v1/fitness-gen.go b/fitness/v1/fitness-gen.go
index 1843e29..644c4d5 100644
--- a/fitness/v1/fitness-gen.go
+++ b/fitness/v1/fitness-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package fitness provides access to the Fitness.
 //
-// See https://developers.google.com/fit/rest/
+// For product documentation, see: https://developers.google.com/fit/rest/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/fitness/v1"
 //   ...
-//   fitnessService, err := fitness.New(oauthHttpClient)
+//   ctx := context.Background()
+//   fitnessService, err := fitness.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   fitnessService, err := fitness.NewService(ctx, option.WithScopes(fitness.FitnessReproductiveHealthWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   fitnessService, err := fitness.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   fitnessService, err := fitness.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package fitness // import "google.golang.org/api/fitness/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -107,6 +135,49 @@
 	FitnessReproductiveHealthWriteScope = "https://www.googleapis.com/auth/fitness.reproductive_health.write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/fitness.activity.read",
+		"https://www.googleapis.com/auth/fitness.activity.write",
+		"https://www.googleapis.com/auth/fitness.blood_glucose.read",
+		"https://www.googleapis.com/auth/fitness.blood_glucose.write",
+		"https://www.googleapis.com/auth/fitness.blood_pressure.read",
+		"https://www.googleapis.com/auth/fitness.blood_pressure.write",
+		"https://www.googleapis.com/auth/fitness.body.read",
+		"https://www.googleapis.com/auth/fitness.body.write",
+		"https://www.googleapis.com/auth/fitness.body_temperature.read",
+		"https://www.googleapis.com/auth/fitness.body_temperature.write",
+		"https://www.googleapis.com/auth/fitness.location.read",
+		"https://www.googleapis.com/auth/fitness.location.write",
+		"https://www.googleapis.com/auth/fitness.nutrition.read",
+		"https://www.googleapis.com/auth/fitness.nutrition.write",
+		"https://www.googleapis.com/auth/fitness.oxygen_saturation.read",
+		"https://www.googleapis.com/auth/fitness.oxygen_saturation.write",
+		"https://www.googleapis.com/auth/fitness.reproductive_health.read",
+		"https://www.googleapis.com/auth/fitness.reproductive_health.write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/fusiontables/v1/fusiontables-gen.go b/fusiontables/v1/fusiontables-gen.go
index 25dbcc5..10d2545 100644
--- a/fusiontables/v1/fusiontables-gen.go
+++ b/fusiontables/v1/fusiontables-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package fusiontables provides access to the Fusion Tables API.
 //
-// See https://developers.google.com/fusiontables
+// For product documentation, see: https://developers.google.com/fusiontables
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/fusiontables/v1"
 //   ...
-//   fusiontablesService, err := fusiontables.New(oauthHttpClient)
+//   ctx := context.Background()
+//   fusiontablesService, err := fusiontables.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   fusiontablesService, err := fusiontables.NewService(ctx, option.WithScopes(fusiontables.FusiontablesReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   fusiontablesService, err := fusiontables.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   fusiontablesService, err := fusiontables.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package fusiontables // import "google.golang.org/api/fusiontables/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	FusiontablesReadonlyScope = "https://www.googleapis.com/auth/fusiontables.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/fusiontables",
+		"https://www.googleapis.com/auth/fusiontables.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/fusiontables/v2/fusiontables-gen.go b/fusiontables/v2/fusiontables-gen.go
index d4e27e2..f0fcfb1 100644
--- a/fusiontables/v2/fusiontables-gen.go
+++ b/fusiontables/v2/fusiontables-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package fusiontables provides access to the Fusion Tables API.
 //
-// See https://developers.google.com/fusiontables
+// For product documentation, see: https://developers.google.com/fusiontables
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/fusiontables/v2"
 //   ...
-//   fusiontablesService, err := fusiontables.New(oauthHttpClient)
+//   ctx := context.Background()
+//   fusiontablesService, err := fusiontables.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   fusiontablesService, err := fusiontables.NewService(ctx, option.WithScopes(fusiontables.FusiontablesReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   fusiontablesService, err := fusiontables.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   fusiontablesService, err := fusiontables.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package fusiontables // import "google.golang.org/api/fusiontables/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	FusiontablesReadonlyScope = "https://www.googleapis.com/auth/fusiontables.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/fusiontables",
+		"https://www.googleapis.com/auth/fusiontables.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/games/v1/games-gen.go b/games/v1/games-gen.go
index a877f53..50a4f5e 100644
--- a/games/v1/games-gen.go
+++ b/games/v1/games-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package games provides access to the Google Play Game Services API.
 //
-// See https://developers.google.com/games/services/
+// For product documentation, see: https://developers.google.com/games/services/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/games/v1"
 //   ...
-//   gamesService, err := games.New(oauthHttpClient)
+//   ctx := context.Background()
+//   gamesService, err := games.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   gamesService, err := games.NewService(ctx, option.WithScopes(games.PlusMeScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   gamesService, err := games.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   gamesService, err := games.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package games // import "google.golang.org/api/games/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	PlusMeScope = "https://www.googleapis.com/auth/plus.me"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/drive.appdata",
+		"https://www.googleapis.com/auth/games",
+		"https://www.googleapis.com/auth/plus.me",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/gamesconfiguration/v1configuration/gamesconfiguration-gen.go b/gamesconfiguration/v1configuration/gamesconfiguration-gen.go
index 11a6f10..b94a4cb 100644
--- a/gamesconfiguration/v1configuration/gamesconfiguration-gen.go
+++ b/gamesconfiguration/v1configuration/gamesconfiguration-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package gamesconfiguration provides access to the Google Play Game Services Publishing API.
 //
-// See https://developers.google.com/games/services
+// For product documentation, see: https://developers.google.com/games/services
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/gamesconfiguration/v1configuration"
 //   ...
-//   gamesconfigurationService, err := gamesconfiguration.New(oauthHttpClient)
+//   ctx := context.Background()
+//   gamesconfigurationService, err := gamesconfiguration.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   gamesconfigurationService, err := gamesconfiguration.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   gamesconfigurationService, err := gamesconfiguration.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package gamesconfiguration // import "google.golang.org/api/gamesconfiguration/v1configuration"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AndroidpublisherScope = "https://www.googleapis.com/auth/androidpublisher"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/androidpublisher",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/gamesmanagement/v1management/gamesmanagement-gen.go b/gamesmanagement/v1management/gamesmanagement-gen.go
index dc6cbd1..5618f02 100644
--- a/gamesmanagement/v1management/gamesmanagement-gen.go
+++ b/gamesmanagement/v1management/gamesmanagement-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package gamesmanagement provides access to the Google Play Game Services Management API.
 //
-// See https://developers.google.com/games/services
+// For product documentation, see: https://developers.google.com/games/services
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/gamesmanagement/v1management"
 //   ...
-//   gamesmanagementService, err := gamesmanagement.New(oauthHttpClient)
+//   ctx := context.Background()
+//   gamesmanagementService, err := gamesmanagement.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   gamesmanagementService, err := gamesmanagement.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   gamesmanagementService, err := gamesmanagement.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package gamesmanagement // import "google.golang.org/api/gamesmanagement/v1management"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	GamesScope = "https://www.googleapis.com/auth/games"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/games",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/genomics/v1/genomics-api.json b/genomics/v1/genomics-api.json
index 4c3fe5b..494e503 100644
--- a/genomics/v1/genomics-api.json
+++ b/genomics/v1/genomics-api.json
@@ -2,20 +2,11 @@
   "auth": {
     "oauth2": {
       "scopes": {
-        "https://www.googleapis.com/auth/bigquery": {
-          "description": "View and manage your data in Google BigQuery"
-        },
         "https://www.googleapis.com/auth/cloud-platform": {
           "description": "View and manage your data across Google Cloud Platform services"
         },
-        "https://www.googleapis.com/auth/devstorage.read_write": {
-          "description": "Manage your data in Google Cloud Storage"
-        },
         "https://www.googleapis.com/auth/genomics": {
           "description": "View and manage Genomics data"
-        },
-        "https://www.googleapis.com/auth/genomics.readonly": {
-          "description": "View Genomics data"
         }
       }
     }
@@ -115,666 +106,6 @@
   },
   "protocol": "rest",
   "resources": {
-    "annotations": {
-      "methods": {
-        "batchCreate": {
-          "description": "Creates one or more new annotations atomically. All annotations must\nbelong to the same annotation set. Caller must have WRITE\npermission for this annotation set. For optimal performance, batch\npositionally adjacent annotations together.\n\nIf the request has a systemic issue, such as an attempt to write to\nan inaccessible annotation set, the entire RPC will fail accordingly. For\nlesser data issues, when possible an error will be isolated to the\ncorresponding batch entry in the response; the remaining well formed\nannotations will be created normally.\n\nFor details on the requirements for each individual annotation resource,\nsee\nCreateAnnotation.",
-          "flatPath": "v1/annotations:batchCreate",
-          "httpMethod": "POST",
-          "id": "genomics.annotations.batchCreate",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/annotations:batchCreate",
-          "request": {
-            "$ref": "BatchCreateAnnotationsRequest"
-          },
-          "response": {
-            "$ref": "BatchCreateAnnotationsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "create": {
-          "description": "Creates a new annotation. Caller must have WRITE permission\nfor the associated annotation set.\n\nThe following fields are required:\n\n* annotationSetId\n* referenceName or\n  referenceId\n\n### Transcripts\n\nFor annotations of type TRANSCRIPT, the following fields of\ntranscript must be provided:\n\n* exons.start\n* exons.end\n\nAll other fields may be optionally specified, unless documented as being\nserver-generated (for example, the `id` field). The annotated\nrange must be no longer than 100Mbp (mega base pairs). See the\nAnnotation resource\nfor additional restrictions on each field.",
-          "flatPath": "v1/annotations",
-          "httpMethod": "POST",
-          "id": "genomics.annotations.create",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/annotations",
-          "request": {
-            "$ref": "Annotation"
-          },
-          "response": {
-            "$ref": "Annotation"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "delete": {
-          "description": "Deletes an annotation. Caller must have WRITE permission for\nthe associated annotation set.",
-          "flatPath": "v1/annotations/{annotationId}",
-          "httpMethod": "DELETE",
-          "id": "genomics.annotations.delete",
-          "parameterOrder": [
-            "annotationId"
-          ],
-          "parameters": {
-            "annotationId": {
-              "description": "The ID of the annotation to be deleted.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/annotations/{annotationId}",
-          "response": {
-            "$ref": "Empty"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "get": {
-          "description": "Gets an annotation. Caller must have READ permission\nfor the associated annotation set.",
-          "flatPath": "v1/annotations/{annotationId}",
-          "httpMethod": "GET",
-          "id": "genomics.annotations.get",
-          "parameterOrder": [
-            "annotationId"
-          ],
-          "parameters": {
-            "annotationId": {
-              "description": "The ID of the annotation to be retrieved.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/annotations/{annotationId}",
-          "response": {
-            "$ref": "Annotation"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "search": {
-          "description": "Searches for annotations that match the given criteria. Results are\nordered by genomic coordinate (by reference sequence, then position).\nAnnotations with equivalent genomic coordinates are returned in an\nunspecified order. This order is consistent, such that two queries for the\nsame content (regardless of page size) yield annotations in the same order\nacross their respective streams of paginated responses. Caller must have\nREAD permission for the queried annotation sets.",
-          "flatPath": "v1/annotations/search",
-          "httpMethod": "POST",
-          "id": "genomics.annotations.search",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/annotations/search",
-          "request": {
-            "$ref": "SearchAnnotationsRequest"
-          },
-          "response": {
-            "$ref": "SearchAnnotationsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "update": {
-          "description": "Updates an annotation. Caller must have\nWRITE permission for the associated dataset.",
-          "flatPath": "v1/annotations/{annotationId}",
-          "httpMethod": "PUT",
-          "id": "genomics.annotations.update",
-          "parameterOrder": [
-            "annotationId"
-          ],
-          "parameters": {
-            "annotationId": {
-              "description": "The ID of the annotation to be updated.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            },
-            "updateMask": {
-              "description": "An optional mask specifying which fields to update. Mutable fields are\nname,\nvariant,\ntranscript, and\ninfo. If unspecified, all mutable\nfields will be updated.",
-              "format": "google-fieldmask",
-              "location": "query",
-              "type": "string"
-            }
-          },
-          "path": "v1/annotations/{annotationId}",
-          "request": {
-            "$ref": "Annotation"
-          },
-          "response": {
-            "$ref": "Annotation"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        }
-      }
-    },
-    "annotationsets": {
-      "methods": {
-        "create": {
-          "description": "Creates a new annotation set. Caller must have WRITE permission for the\nassociated dataset.\n\nThe following fields are required:\n\n  * datasetId\n  * referenceSetId\n\nAll other fields may be optionally specified, unless documented as being\nserver-generated (for example, the `id` field).",
-          "flatPath": "v1/annotationsets",
-          "httpMethod": "POST",
-          "id": "genomics.annotationsets.create",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/annotationsets",
-          "request": {
-            "$ref": "AnnotationSet"
-          },
-          "response": {
-            "$ref": "AnnotationSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "delete": {
-          "description": "Deletes an annotation set. Caller must have WRITE permission\nfor the associated annotation set.",
-          "flatPath": "v1/annotationsets/{annotationSetId}",
-          "httpMethod": "DELETE",
-          "id": "genomics.annotationsets.delete",
-          "parameterOrder": [
-            "annotationSetId"
-          ],
-          "parameters": {
-            "annotationSetId": {
-              "description": "The ID of the annotation set to be deleted.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/annotationsets/{annotationSetId}",
-          "response": {
-            "$ref": "Empty"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "get": {
-          "description": "Gets an annotation set. Caller must have READ permission for\nthe associated dataset.",
-          "flatPath": "v1/annotationsets/{annotationSetId}",
-          "httpMethod": "GET",
-          "id": "genomics.annotationsets.get",
-          "parameterOrder": [
-            "annotationSetId"
-          ],
-          "parameters": {
-            "annotationSetId": {
-              "description": "The ID of the annotation set to be retrieved.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/annotationsets/{annotationSetId}",
-          "response": {
-            "$ref": "AnnotationSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "search": {
-          "description": "Searches for annotation sets that match the given criteria. Annotation sets\nare returned in an unspecified order. This order is consistent, such that\ntwo queries for the same content (regardless of page size) yield annotation\nsets in the same order across their respective streams of paginated\nresponses. Caller must have READ permission for the queried datasets.",
-          "flatPath": "v1/annotationsets/search",
-          "httpMethod": "POST",
-          "id": "genomics.annotationsets.search",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/annotationsets/search",
-          "request": {
-            "$ref": "SearchAnnotationSetsRequest"
-          },
-          "response": {
-            "$ref": "SearchAnnotationSetsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "update": {
-          "description": "Updates an annotation set. The update must respect all mutability\nrestrictions and other invariants described on the annotation set resource.\nCaller must have WRITE permission for the associated dataset.",
-          "flatPath": "v1/annotationsets/{annotationSetId}",
-          "httpMethod": "PUT",
-          "id": "genomics.annotationsets.update",
-          "parameterOrder": [
-            "annotationSetId"
-          ],
-          "parameters": {
-            "annotationSetId": {
-              "description": "The ID of the annotation set to be updated.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            },
-            "updateMask": {
-              "description": "An optional mask specifying which fields to update. Mutable fields are\nname,\nsource_uri, and\ninfo. If unspecified, all\nmutable fields will be updated.",
-              "format": "google-fieldmask",
-              "location": "query",
-              "type": "string"
-            }
-          },
-          "path": "v1/annotationsets/{annotationSetId}",
-          "request": {
-            "$ref": "AnnotationSet"
-          },
-          "response": {
-            "$ref": "AnnotationSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        }
-      }
-    },
-    "callsets": {
-      "methods": {
-        "create": {
-          "description": "Creates a new call set.",
-          "flatPath": "v1/callsets",
-          "httpMethod": "POST",
-          "id": "genomics.callsets.create",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/callsets",
-          "request": {
-            "$ref": "CallSet"
-          },
-          "response": {
-            "$ref": "CallSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "delete": {
-          "description": "Deletes a call set.",
-          "flatPath": "v1/callsets/{callSetId}",
-          "httpMethod": "DELETE",
-          "id": "genomics.callsets.delete",
-          "parameterOrder": [
-            "callSetId"
-          ],
-          "parameters": {
-            "callSetId": {
-              "description": "The ID of the call set to be deleted.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/callsets/{callSetId}",
-          "response": {
-            "$ref": "Empty"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "get": {
-          "description": "Gets a call set by ID.",
-          "flatPath": "v1/callsets/{callSetId}",
-          "httpMethod": "GET",
-          "id": "genomics.callsets.get",
-          "parameterOrder": [
-            "callSetId"
-          ],
-          "parameters": {
-            "callSetId": {
-              "description": "The ID of the call set.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/callsets/{callSetId}",
-          "response": {
-            "$ref": "CallSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "patch": {
-          "description": "Updates a call set.\n\nThis method supports patch semantics.",
-          "flatPath": "v1/callsets/{callSetId}",
-          "httpMethod": "PATCH",
-          "id": "genomics.callsets.patch",
-          "parameterOrder": [
-            "callSetId"
-          ],
-          "parameters": {
-            "callSetId": {
-              "description": "The ID of the call set to be updated.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            },
-            "updateMask": {
-              "description": "An optional mask specifying which fields to update. At this time, the only\nmutable field is name. The only\nacceptable value is \"name\". If unspecified, all mutable fields will be\nupdated.",
-              "format": "google-fieldmask",
-              "location": "query",
-              "type": "string"
-            }
-          },
-          "path": "v1/callsets/{callSetId}",
-          "request": {
-            "$ref": "CallSet"
-          },
-          "response": {
-            "$ref": "CallSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "search": {
-          "description": "Gets a list of call sets matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).",
-          "flatPath": "v1/callsets/search",
-          "httpMethod": "POST",
-          "id": "genomics.callsets.search",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/callsets/search",
-          "request": {
-            "$ref": "SearchCallSetsRequest"
-          },
-          "response": {
-            "$ref": "SearchCallSetsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        }
-      }
-    },
-    "datasets": {
-      "methods": {
-        "create": {
-          "description": "Creates a new dataset.",
-          "flatPath": "v1/datasets",
-          "httpMethod": "POST",
-          "id": "genomics.datasets.create",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/datasets",
-          "request": {
-            "$ref": "Dataset"
-          },
-          "response": {
-            "$ref": "Dataset"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "delete": {
-          "description": "Deletes a dataset and all of its contents (all read group sets,\nreference sets, variant sets, call sets, annotation sets, etc.)\nThis is reversible (up to one week after the deletion) via\nthe\ndatasets.undelete\noperation.",
-          "flatPath": "v1/datasets/{datasetId}",
-          "httpMethod": "DELETE",
-          "id": "genomics.datasets.delete",
-          "parameterOrder": [
-            "datasetId"
-          ],
-          "parameters": {
-            "datasetId": {
-              "description": "The ID of the dataset to be deleted.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/datasets/{datasetId}",
-          "response": {
-            "$ref": "Empty"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "get": {
-          "description": "Gets a dataset by ID.",
-          "flatPath": "v1/datasets/{datasetId}",
-          "httpMethod": "GET",
-          "id": "genomics.datasets.get",
-          "parameterOrder": [
-            "datasetId"
-          ],
-          "parameters": {
-            "datasetId": {
-              "description": "The ID of the dataset.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/datasets/{datasetId}",
-          "response": {
-            "$ref": "Dataset"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "getIamPolicy": {
-          "description": "Gets the access control policy for the dataset. This is empty if the\npolicy or resource does not exist.\n\nSee \u003ca href=\"/iam/docs/managing-policies#getting_a_policy\"\u003eGetting a\nPolicy\u003c/a\u003e for more information.",
-          "flatPath": "v1/datasets/{datasetsId}:getIamPolicy",
-          "httpMethod": "POST",
-          "id": "genomics.datasets.getIamPolicy",
-          "parameterOrder": [
-            "resource"
-          ],
-          "parameters": {
-            "resource": {
-              "description": "REQUIRED: The resource for which policy is being specified. Format is\n`datasets/\u003cdataset ID\u003e`.",
-              "location": "path",
-              "pattern": "^datasets/[^/]+$",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/{+resource}:getIamPolicy",
-          "request": {
-            "$ref": "GetIamPolicyRequest"
-          },
-          "response": {
-            "$ref": "Policy"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "list": {
-          "description": "Lists datasets within a project.",
-          "flatPath": "v1/datasets",
-          "httpMethod": "GET",
-          "id": "genomics.datasets.list",
-          "parameterOrder": [],
-          "parameters": {
-            "pageSize": {
-              "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 50. The maximum value is 1024.",
-              "format": "int32",
-              "location": "query",
-              "type": "integer"
-            },
-            "pageToken": {
-              "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-              "location": "query",
-              "type": "string"
-            },
-            "projectId": {
-              "description": "Required. The Google Cloud project ID to list datasets for.",
-              "location": "query",
-              "type": "string"
-            }
-          },
-          "path": "v1/datasets",
-          "response": {
-            "$ref": "ListDatasetsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "patch": {
-          "description": "Updates a dataset.\n\nThis method supports patch semantics.",
-          "flatPath": "v1/datasets/{datasetId}",
-          "httpMethod": "PATCH",
-          "id": "genomics.datasets.patch",
-          "parameterOrder": [
-            "datasetId"
-          ],
-          "parameters": {
-            "datasetId": {
-              "description": "The ID of the dataset to be updated.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            },
-            "updateMask": {
-              "description": "An optional mask specifying which fields to update. At this time, the only\nmutable field is name. The only\nacceptable value is \"name\". If unspecified, all mutable fields will be\nupdated.",
-              "format": "google-fieldmask",
-              "location": "query",
-              "type": "string"
-            }
-          },
-          "path": "v1/datasets/{datasetId}",
-          "request": {
-            "$ref": "Dataset"
-          },
-          "response": {
-            "$ref": "Dataset"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "setIamPolicy": {
-          "description": "Sets the access control policy on the specified dataset. Replaces any\nexisting policy.\n\nSee \u003ca href=\"/iam/docs/managing-policies#setting_a_policy\"\u003eSetting a\nPolicy\u003c/a\u003e for more information.",
-          "flatPath": "v1/datasets/{datasetsId}:setIamPolicy",
-          "httpMethod": "POST",
-          "id": "genomics.datasets.setIamPolicy",
-          "parameterOrder": [
-            "resource"
-          ],
-          "parameters": {
-            "resource": {
-              "description": "REQUIRED: The resource for which policy is being specified. Format is\n`datasets/\u003cdataset ID\u003e`.",
-              "location": "path",
-              "pattern": "^datasets/[^/]+$",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/{+resource}:setIamPolicy",
-          "request": {
-            "$ref": "SetIamPolicyRequest"
-          },
-          "response": {
-            "$ref": "Policy"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "testIamPermissions": {
-          "description": "Returns permissions that a caller has on the specified resource.\nSee \u003ca href=\"/iam/docs/managing-policies#testing_permissions\"\u003eTesting\nPermissions\u003c/a\u003e for more information.",
-          "flatPath": "v1/datasets/{datasetsId}:testIamPermissions",
-          "httpMethod": "POST",
-          "id": "genomics.datasets.testIamPermissions",
-          "parameterOrder": [
-            "resource"
-          ],
-          "parameters": {
-            "resource": {
-              "description": "REQUIRED: The resource for which policy is being specified. Format is\n`datasets/\u003cdataset ID\u003e`.",
-              "location": "path",
-              "pattern": "^datasets/[^/]+$",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/{+resource}:testIamPermissions",
-          "request": {
-            "$ref": "TestIamPermissionsRequest"
-          },
-          "response": {
-            "$ref": "TestIamPermissionsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "undelete": {
-          "description": "Undeletes a dataset by restoring a dataset which was deleted via this API.\n\nThis operation is only possible for a week after the deletion occurred.",
-          "flatPath": "v1/datasets/{datasetId}:undelete",
-          "httpMethod": "POST",
-          "id": "genomics.datasets.undelete",
-          "parameterOrder": [
-            "datasetId"
-          ],
-          "parameters": {
-            "datasetId": {
-              "description": "The ID of the dataset to be undeleted.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/datasets/{datasetId}:undelete",
-          "request": {
-            "$ref": "UndeleteDatasetRequest"
-          },
-          "response": {
-            "$ref": "Dataset"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        }
-      }
-    },
     "operations": {
       "methods": {
         "cancel": {
@@ -875,1056 +206,17 @@
           ]
         }
       }
-    },
-    "readgroupsets": {
-      "methods": {
-        "delete": {
-          "description": "Deletes a read group set.",
-          "flatPath": "v1/readgroupsets/{readGroupSetId}",
-          "httpMethod": "DELETE",
-          "id": "genomics.readgroupsets.delete",
-          "parameterOrder": [
-            "readGroupSetId"
-          ],
-          "parameters": {
-            "readGroupSetId": {
-              "description": "The ID of the read group set to be deleted. The caller must have WRITE\npermissions to the dataset associated with this read group set.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/readgroupsets/{readGroupSetId}",
-          "response": {
-            "$ref": "Empty"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "export": {
-          "description": "Exports a read group set to a BAM file in Google Cloud Storage.\n\nNote that currently there may be some differences between exported BAM\nfiles and the original BAM file at the time of import. See\nImportReadGroupSets\nfor caveats.",
-          "flatPath": "v1/readgroupsets/{readGroupSetId}:export",
-          "httpMethod": "POST",
-          "id": "genomics.readgroupsets.export",
-          "parameterOrder": [
-            "readGroupSetId"
-          ],
-          "parameters": {
-            "readGroupSetId": {
-              "description": "Required. The ID of the read group set to export. The caller must have\nREAD access to this read group set.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/readgroupsets/{readGroupSetId}:export",
-          "request": {
-            "$ref": "ExportReadGroupSetRequest"
-          },
-          "response": {
-            "$ref": "Operation"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/devstorage.read_write",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "get": {
-          "description": "Gets a read group set by ID.",
-          "flatPath": "v1/readgroupsets/{readGroupSetId}",
-          "httpMethod": "GET",
-          "id": "genomics.readgroupsets.get",
-          "parameterOrder": [
-            "readGroupSetId"
-          ],
-          "parameters": {
-            "readGroupSetId": {
-              "description": "The ID of the read group set.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/readgroupsets/{readGroupSetId}",
-          "response": {
-            "$ref": "ReadGroupSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "import": {
-          "description": "Creates read group sets by asynchronously importing the provided\ninformation.\n\nThe caller must have WRITE permissions to the dataset.\n\n## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import\n\n- Tags will be converted to strings - tag types are not preserved\n- Comments (`@CO`) in the input file header will not be preserved\n- Original header order of references (`@SQ`) will not be preserved\n- Any reverse stranded unmapped reads will be reverse complemented, and\ntheir qualities (also the \"BQ\" and \"OQ\" tags, if any) will be reversed\n- Unmapped reads will be stripped of positional information (reference name\nand position)",
-          "flatPath": "v1/readgroupsets:import",
-          "httpMethod": "POST",
-          "id": "genomics.readgroupsets.import",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/readgroupsets:import",
-          "request": {
-            "$ref": "ImportReadGroupSetsRequest"
-          },
-          "response": {
-            "$ref": "Operation"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/devstorage.read_write",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "patch": {
-          "description": "Updates a read group set.\n\nThis method supports patch semantics.",
-          "flatPath": "v1/readgroupsets/{readGroupSetId}",
-          "httpMethod": "PATCH",
-          "id": "genomics.readgroupsets.patch",
-          "parameterOrder": [
-            "readGroupSetId"
-          ],
-          "parameters": {
-            "readGroupSetId": {
-              "description": "The ID of the read group set to be updated. The caller must have WRITE\npermissions to the dataset associated with this read group set.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            },
-            "updateMask": {
-              "description": "An optional mask specifying which fields to update. Supported fields:\n\n* name.\n* referenceSetId.\n\nLeaving `updateMask` unset is equivalent to specifying all mutable\nfields.",
-              "format": "google-fieldmask",
-              "location": "query",
-              "type": "string"
-            }
-          },
-          "path": "v1/readgroupsets/{readGroupSetId}",
-          "request": {
-            "$ref": "ReadGroupSet"
-          },
-          "response": {
-            "$ref": "ReadGroupSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "search": {
-          "description": "Searches for read group sets matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).",
-          "flatPath": "v1/readgroupsets/search",
-          "httpMethod": "POST",
-          "id": "genomics.readgroupsets.search",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/readgroupsets/search",
-          "request": {
-            "$ref": "SearchReadGroupSetsRequest"
-          },
-          "response": {
-            "$ref": "SearchReadGroupSetsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        }
-      },
-      "resources": {
-        "coveragebuckets": {
-          "methods": {
-            "list": {
-              "description": "Lists fixed width coverage buckets for a read group set, each of which\ncorrespond to a range of a reference sequence. Each bucket summarizes\ncoverage information across its corresponding genomic range.\n\nCoverage is defined as the number of reads which are aligned to a given\nbase in the reference sequence. Coverage buckets are available at several\nprecomputed bucket widths, enabling retrieval of various coverage 'zoom\nlevels'. The caller must have READ permissions for the target read group\nset.",
-              "flatPath": "v1/readgroupsets/{readGroupSetId}/coveragebuckets",
-              "httpMethod": "GET",
-              "id": "genomics.readgroupsets.coveragebuckets.list",
-              "parameterOrder": [
-                "readGroupSetId"
-              ],
-              "parameters": {
-                "end": {
-                  "description": "The end position of the range on the reference, 0-based exclusive. If\nspecified, `referenceName` must also be specified. If unset or 0, defaults\nto the length of the reference.",
-                  "format": "int64",
-                  "location": "query",
-                  "type": "string"
-                },
-                "pageSize": {
-                  "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024. The maximum value is 2048.",
-                  "format": "int32",
-                  "location": "query",
-                  "type": "integer"
-                },
-                "pageToken": {
-                  "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-                  "location": "query",
-                  "type": "string"
-                },
-                "readGroupSetId": {
-                  "description": "Required. The ID of the read group set over which coverage is requested.",
-                  "location": "path",
-                  "required": true,
-                  "type": "string"
-                },
-                "referenceName": {
-                  "description": "The name of the reference to query, within the reference set associated\nwith this query. Optional.",
-                  "location": "query",
-                  "type": "string"
-                },
-                "start": {
-                  "description": "The start position of the range on the reference, 0-based inclusive. If\nspecified, `referenceName` must also be specified. Defaults to 0.",
-                  "format": "int64",
-                  "location": "query",
-                  "type": "string"
-                },
-                "targetBucketWidth": {
-                  "description": "The desired width of each reported coverage bucket in base pairs. This\nwill be rounded down to the nearest precomputed bucket width; the value\nof which is returned as `bucketWidth` in the response. Defaults\nto infinity (each bucket spans an entire reference sequence) or the length\nof the target range, if specified. The smallest precomputed\n`bucketWidth` is currently 2048 base pairs; this is subject to\nchange.",
-                  "format": "int64",
-                  "location": "query",
-                  "type": "string"
-                }
-              },
-              "path": "v1/readgroupsets/{readGroupSetId}/coveragebuckets",
-              "response": {
-                "$ref": "ListCoverageBucketsResponse"
-              },
-              "scopes": [
-                "https://www.googleapis.com/auth/cloud-platform",
-                "https://www.googleapis.com/auth/genomics",
-                "https://www.googleapis.com/auth/genomics.readonly"
-              ]
-            }
-          }
-        }
-      }
-    },
-    "reads": {
-      "methods": {
-        "search": {
-          "description": "Gets a list of reads for one or more read group sets.\n\nReads search operates over a genomic coordinate space of reference sequence\n\u0026 position defined over the reference sequences to which the requested\nread group sets are aligned.\n\nIf a target positional range is specified, search returns all reads whose\nalignment to the reference genome overlap the range. A query which\nspecifies only read group set IDs yields all reads in those read group\nsets, including unmapped reads.\n\nAll reads returned (including reads on subsequent pages) are ordered by\ngenomic coordinate (by reference sequence, then position). Reads with\nequivalent genomic coordinates are returned in an unspecified order. This\norder is consistent, such that two queries for the same content (regardless\nof page size) yield reads in the same order across their respective streams\nof paginated responses.\n\nImplements\n[GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).",
-          "flatPath": "v1/reads/search",
-          "httpMethod": "POST",
-          "id": "genomics.reads.search",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/reads/search",
-          "request": {
-            "$ref": "SearchReadsRequest"
-          },
-          "response": {
-            "$ref": "SearchReadsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        }
-      }
-    },
-    "references": {
-      "methods": {
-        "get": {
-          "description": "Gets a reference.\n\nImplements\n[GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).",
-          "flatPath": "v1/references/{referenceId}",
-          "httpMethod": "GET",
-          "id": "genomics.references.get",
-          "parameterOrder": [
-            "referenceId"
-          ],
-          "parameters": {
-            "referenceId": {
-              "description": "The ID of the reference.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/references/{referenceId}",
-          "response": {
-            "$ref": "Reference"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "search": {
-          "description": "Searches for references which match the given criteria.\n\nImplements\n[GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).",
-          "flatPath": "v1/references/search",
-          "httpMethod": "POST",
-          "id": "genomics.references.search",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/references/search",
-          "request": {
-            "$ref": "SearchReferencesRequest"
-          },
-          "response": {
-            "$ref": "SearchReferencesResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        }
-      },
-      "resources": {
-        "bases": {
-          "methods": {
-            "list": {
-              "description": "Lists the bases in a reference, optionally restricted to a range.\n\nImplements\n[GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).",
-              "flatPath": "v1/references/{referenceId}/bases",
-              "httpMethod": "GET",
-              "id": "genomics.references.bases.list",
-              "parameterOrder": [
-                "referenceId"
-              ],
-              "parameters": {
-                "end": {
-                  "description": "The end position (0-based, exclusive) of this query. Defaults to the length\nof this reference.",
-                  "format": "int64",
-                  "location": "query",
-                  "type": "string"
-                },
-                "pageSize": {
-                  "description": "The maximum number of bases to return in a single page. If unspecified,\ndefaults to 200Kbp (kilo base pairs). The maximum value is 10Mbp (mega base\npairs).",
-                  "format": "int32",
-                  "location": "query",
-                  "type": "integer"
-                },
-                "pageToken": {
-                  "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-                  "location": "query",
-                  "type": "string"
-                },
-                "referenceId": {
-                  "description": "The ID of the reference.",
-                  "location": "path",
-                  "required": true,
-                  "type": "string"
-                },
-                "start": {
-                  "description": "The start position (0-based) of this query. Defaults to 0.",
-                  "format": "int64",
-                  "location": "query",
-                  "type": "string"
-                }
-              },
-              "path": "v1/references/{referenceId}/bases",
-              "response": {
-                "$ref": "ListBasesResponse"
-              },
-              "scopes": [
-                "https://www.googleapis.com/auth/cloud-platform",
-                "https://www.googleapis.com/auth/genomics",
-                "https://www.googleapis.com/auth/genomics.readonly"
-              ]
-            }
-          }
-        }
-      }
-    },
-    "referencesets": {
-      "methods": {
-        "get": {
-          "description": "Gets a reference set.\n\nImplements\n[GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).",
-          "flatPath": "v1/referencesets/{referenceSetId}",
-          "httpMethod": "GET",
-          "id": "genomics.referencesets.get",
-          "parameterOrder": [
-            "referenceSetId"
-          ],
-          "parameters": {
-            "referenceSetId": {
-              "description": "The ID of the reference set.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/referencesets/{referenceSetId}",
-          "response": {
-            "$ref": "ReferenceSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "search": {
-          "description": "Searches for reference sets which match the given criteria.\n\nImplements\n[GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)",
-          "flatPath": "v1/referencesets/search",
-          "httpMethod": "POST",
-          "id": "genomics.referencesets.search",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/referencesets/search",
-          "request": {
-            "$ref": "SearchReferenceSetsRequest"
-          },
-          "response": {
-            "$ref": "SearchReferenceSetsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        }
-      }
-    },
-    "variants": {
-      "methods": {
-        "create": {
-          "description": "Creates a new variant.",
-          "flatPath": "v1/variants",
-          "httpMethod": "POST",
-          "id": "genomics.variants.create",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/variants",
-          "request": {
-            "$ref": "Variant"
-          },
-          "response": {
-            "$ref": "Variant"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "delete": {
-          "description": "Deletes a variant.",
-          "flatPath": "v1/variants/{variantId}",
-          "httpMethod": "DELETE",
-          "id": "genomics.variants.delete",
-          "parameterOrder": [
-            "variantId"
-          ],
-          "parameters": {
-            "variantId": {
-              "description": "The ID of the variant to be deleted.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/variants/{variantId}",
-          "response": {
-            "$ref": "Empty"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "get": {
-          "description": "Gets a variant by ID.",
-          "flatPath": "v1/variants/{variantId}",
-          "httpMethod": "GET",
-          "id": "genomics.variants.get",
-          "parameterOrder": [
-            "variantId"
-          ],
-          "parameters": {
-            "variantId": {
-              "description": "The ID of the variant.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/variants/{variantId}",
-          "response": {
-            "$ref": "Variant"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "import": {
-          "description": "Creates variant data by asynchronously importing the provided information.\n\nThe variants for import will be merged with any existing variant that\nmatches its reference sequence, start, end, reference bases, and\nalternative bases. If no such variant exists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant, and Variant info fields are merged\nas specified in\ninfoMergeConfig.\nAs a special case, for single-sample VCF files, QUAL and FILTER fields will\nbe moved to the call level; these are sometimes interpreted in a\ncall-specific context.\nImported VCF headers are appended to the metadata already in a variant set.",
-          "flatPath": "v1/variants:import",
-          "httpMethod": "POST",
-          "id": "genomics.variants.import",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/variants:import",
-          "request": {
-            "$ref": "ImportVariantsRequest"
-          },
-          "response": {
-            "$ref": "Operation"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/devstorage.read_write",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "merge": {
-          "description": "Merges the given variants with existing variants.\n\nEach variant will be\nmerged with an existing variant that matches its reference sequence,\nstart, end, reference bases, and alternative bases. If no such variant\nexists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant. Variant info fields are merged as\nspecified in the\ninfoMergeConfig\nfield of the MergeVariantsRequest.\n\nPlease exercise caution when using this method!  It is easy to introduce\nmistakes in existing variants and difficult to back out of them.  For\nexample,\nsuppose you were trying to merge a new variant with an existing one and\nboth\nvariants contain calls that belong to callsets with the same callset ID.\n\n    // Existing variant - irrelevant fields trimmed for clarity\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    0,\n                    1\n                ],\n            }\n        ]\n    }\n\n    // New variant with conflicting call information\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThe resulting merged variant would overwrite the existing calls with those\nfrom the new variant:\n\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThis may be the desired outcome, but it is up to the user to determine if\nif that is indeed the case.",
-          "flatPath": "v1/variants:merge",
-          "httpMethod": "POST",
-          "id": "genomics.variants.merge",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/variants:merge",
-          "request": {
-            "$ref": "MergeVariantsRequest"
-          },
-          "response": {
-            "$ref": "Empty"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "patch": {
-          "description": "Updates a variant.\n\nThis method supports patch semantics. Returns the modified variant without\nits calls.",
-          "flatPath": "v1/variants/{variantId}",
-          "httpMethod": "PATCH",
-          "id": "genomics.variants.patch",
-          "parameterOrder": [
-            "variantId"
-          ],
-          "parameters": {
-            "updateMask": {
-              "description": "An optional mask specifying which fields to update. At this time, mutable\nfields are names and\ninfo. Acceptable values are \"names\" and\n\"info\". If unspecified, all mutable fields will be updated.",
-              "format": "google-fieldmask",
-              "location": "query",
-              "type": "string"
-            },
-            "variantId": {
-              "description": "The ID of the variant to be updated.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/variants/{variantId}",
-          "request": {
-            "$ref": "Variant"
-          },
-          "response": {
-            "$ref": "Variant"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "search": {
-          "description": "Gets a list of variants matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).",
-          "flatPath": "v1/variants/search",
-          "httpMethod": "POST",
-          "id": "genomics.variants.search",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/variants/search",
-          "request": {
-            "$ref": "SearchVariantsRequest"
-          },
-          "response": {
-            "$ref": "SearchVariantsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        }
-      }
-    },
-    "variantsets": {
-      "methods": {
-        "create": {
-          "description": "Creates a new variant set.\n\nThe provided variant set must have a valid `datasetId` set - all other\nfields are optional. Note that the `id` field will be ignored, as this is\nassigned by the server.",
-          "flatPath": "v1/variantsets",
-          "httpMethod": "POST",
-          "id": "genomics.variantsets.create",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/variantsets",
-          "request": {
-            "$ref": "VariantSet"
-          },
-          "response": {
-            "$ref": "VariantSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "delete": {
-          "description": "Deletes a variant set including all variants, call sets, and calls within.\nThis is not reversible.",
-          "flatPath": "v1/variantsets/{variantSetId}",
-          "httpMethod": "DELETE",
-          "id": "genomics.variantsets.delete",
-          "parameterOrder": [
-            "variantSetId"
-          ],
-          "parameters": {
-            "variantSetId": {
-              "description": "The ID of the variant set to be deleted.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/variantsets/{variantSetId}",
-          "response": {
-            "$ref": "Empty"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "export": {
-          "description": "Exports variant set data to an external destination.",
-          "flatPath": "v1/variantsets/{variantSetId}:export",
-          "httpMethod": "POST",
-          "id": "genomics.variantsets.export",
-          "parameterOrder": [
-            "variantSetId"
-          ],
-          "parameters": {
-            "variantSetId": {
-              "description": "Required. The ID of the variant set that contains variant data which\nshould be exported. The caller must have READ access to this variant set.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/variantsets/{variantSetId}:export",
-          "request": {
-            "$ref": "ExportVariantSetRequest"
-          },
-          "response": {
-            "$ref": "Operation"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/bigquery",
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "get": {
-          "description": "Gets a variant set by ID.",
-          "flatPath": "v1/variantsets/{variantSetId}",
-          "httpMethod": "GET",
-          "id": "genomics.variantsets.get",
-          "parameterOrder": [
-            "variantSetId"
-          ],
-          "parameters": {
-            "variantSetId": {
-              "description": "Required. The ID of the variant set.",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/variantsets/{variantSetId}",
-          "response": {
-            "$ref": "VariantSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        },
-        "patch": {
-          "description": "Updates a variant set using patch semantics.",
-          "flatPath": "v1/variantsets/{variantSetId}",
-          "httpMethod": "PATCH",
-          "id": "genomics.variantsets.patch",
-          "parameterOrder": [
-            "variantSetId"
-          ],
-          "parameters": {
-            "updateMask": {
-              "description": "An optional mask specifying which fields to update. Supported fields:\n\n* metadata.\n* name.\n* description.\n\nLeaving `updateMask` unset is equivalent to specifying all mutable\nfields.",
-              "format": "google-fieldmask",
-              "location": "query",
-              "type": "string"
-            },
-            "variantSetId": {
-              "description": "The ID of the variant to be updated (must already exist).",
-              "location": "path",
-              "required": true,
-              "type": "string"
-            }
-          },
-          "path": "v1/variantsets/{variantSetId}",
-          "request": {
-            "$ref": "VariantSet"
-          },
-          "response": {
-            "$ref": "VariantSet"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics"
-          ]
-        },
-        "search": {
-          "description": "Returns a list of all variant sets matching search criteria.\n\nImplements\n[GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).",
-          "flatPath": "v1/variantsets/search",
-          "httpMethod": "POST",
-          "id": "genomics.variantsets.search",
-          "parameterOrder": [],
-          "parameters": {},
-          "path": "v1/variantsets/search",
-          "request": {
-            "$ref": "SearchVariantSetsRequest"
-          },
-          "response": {
-            "$ref": "SearchVariantSetsResponse"
-          },
-          "scopes": [
-            "https://www.googleapis.com/auth/cloud-platform",
-            "https://www.googleapis.com/auth/genomics",
-            "https://www.googleapis.com/auth/genomics.readonly"
-          ]
-        }
-      }
     }
   },
-  "revision": "20190309",
+  "revision": "20190312",
   "rootUrl": "https://genomics.googleapis.com/",
   "schemas": {
-    "Annotation": {
-      "description": "An annotation describes a region of reference genome. The value of an\nannotation may be one of several canonical types, supplemented by arbitrary\ninfo tags. An annotation is not inherently associated with a specific\nsample or individual (though a client could choose to use annotations in\nthis way). Example canonical annotation types are `GENE` and\n`VARIANT`.",
-      "id": "Annotation",
-      "properties": {
-        "annotationSetId": {
-          "description": "The annotation set to which this annotation belongs.",
-          "type": "string"
-        },
-        "end": {
-          "description": "The end position of the range on the reference, 0-based exclusive.",
-          "format": "int64",
-          "type": "string"
-        },
-        "id": {
-          "description": "The server-generated annotation ID, unique across all annotations.",
-          "type": "string"
-        },
-        "info": {
-          "additionalProperties": {
-            "items": {
-              "type": "any"
-            },
-            "type": "array"
-          },
-          "description": "A map of additional read alignment information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).",
-          "type": "object"
-        },
-        "name": {
-          "description": "The display name of this annotation.",
-          "type": "string"
-        },
-        "referenceId": {
-          "description": "The ID of the Google Genomics reference associated with this range.",
-          "type": "string"
-        },
-        "referenceName": {
-          "description": "The display name corresponding to the reference specified by\n`referenceId`, for example `chr1`, `1`, or `chrX`.",
-          "type": "string"
-        },
-        "reverseStrand": {
-          "description": "Whether this range refers to the reverse strand, as opposed to the forward\nstrand. Note that regardless of this field, the start/end position of the\nrange always refer to the forward strand.",
-          "type": "boolean"
-        },
-        "start": {
-          "description": "The start position of the range on the reference, 0-based inclusive.",
-          "format": "int64",
-          "type": "string"
-        },
-        "transcript": {
-          "$ref": "Transcript",
-          "description": "A transcript value represents the assertion that a particular region of\nthe reference genome may be transcribed as RNA. An alternative splicing\npattern would be represented as a separate transcript object. This field\nis only set for annotations of type `TRANSCRIPT`."
-        },
-        "type": {
-          "description": "The data type for this annotation. Must match the containing annotation\nset's type.",
-          "enum": [
-            "ANNOTATION_TYPE_UNSPECIFIED",
-            "GENERIC",
-            "VARIANT",
-            "GENE",
-            "TRANSCRIPT"
-          ],
-          "enumDescriptions": [
-            "",
-            "A `GENERIC` annotation type should be used when no other annotation\ntype will suffice. This represents an untyped annotation of the reference\ngenome.",
-            "A `VARIANT` annotation type.",
-            "A `GENE` annotation type represents the existence of a gene at the\nassociated reference coordinates. The start coordinate is typically the\ngene's transcription start site and the end is typically the end of the\ngene's last exon.",
-            "A `TRANSCRIPT` annotation type represents the assertion that a\nparticular region of the reference genome may be transcribed as RNA."
-          ],
-          "type": "string"
-        },
-        "variant": {
-          "$ref": "VariantAnnotation",
-          "description": "A variant annotation, which describes the effect of a variant on the\ngenome, the coding sequence, and/or higher level consequences at the\norganism level e.g. pathogenicity. This field is only set for annotations\nof type `VARIANT`."
-        }
-      },
-      "type": "object"
-    },
-    "AnnotationSet": {
-      "description": "An annotation set is a logical grouping of annotations that share consistent\ntype information and provenance. Examples of annotation sets include 'all\ngenes from refseq', and 'all variant annotations from ClinVar'.",
-      "id": "AnnotationSet",
-      "properties": {
-        "datasetId": {
-          "description": "The dataset to which this annotation set belongs.",
-          "type": "string"
-        },
-        "id": {
-          "description": "The server-generated annotation set ID, unique across all annotation sets.",
-          "type": "string"
-        },
-        "info": {
-          "additionalProperties": {
-            "items": {
-              "type": "any"
-            },
-            "type": "array"
-          },
-          "description": "A map of additional read alignment information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).",
-          "type": "object"
-        },
-        "name": {
-          "description": "The display name for this annotation set.",
-          "type": "string"
-        },
-        "referenceSetId": {
-          "description": "The ID of the reference set that defines the coordinate space for this\nset's annotations.",
-          "type": "string"
-        },
-        "sourceUri": {
-          "description": "The source URI describing the file from which this annotation set was\ngenerated, if any.",
-          "type": "string"
-        },
-        "type": {
-          "description": "The type of annotations contained within this set.",
-          "enum": [
-            "ANNOTATION_TYPE_UNSPECIFIED",
-            "GENERIC",
-            "VARIANT",
-            "GENE",
-            "TRANSCRIPT"
-          ],
-          "enumDescriptions": [
-            "",
-            "A `GENERIC` annotation type should be used when no other annotation\ntype will suffice. This represents an untyped annotation of the reference\ngenome.",
-            "A `VARIANT` annotation type.",
-            "A `GENE` annotation type represents the existence of a gene at the\nassociated reference coordinates. The start coordinate is typically the\ngene's transcription start site and the end is typically the end of the\ngene's last exon.",
-            "A `TRANSCRIPT` annotation type represents the assertion that a\nparticular region of the reference genome may be transcribed as RNA."
-          ],
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "BatchCreateAnnotationsRequest": {
-      "id": "BatchCreateAnnotationsRequest",
-      "properties": {
-        "annotations": {
-          "description": "The annotations to be created. At most 4096 can be specified in a single\nrequest.",
-          "items": {
-            "$ref": "Annotation"
-          },
-          "type": "array"
-        },
-        "requestId": {
-          "description": "A unique request ID which enables the server to detect duplicated requests.\nIf provided, duplicated requests will result in the same response; if not\nprovided, duplicated requests may result in duplicated data. For a given\nannotation set, callers should not reuse `request_id`s when writing\ndifferent batches of annotations - behavior in this case is undefined.\nA common approach is to use a UUID. For batch jobs where worker crashes are\na possibility, consider using some unique variant of a worker or run ID.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "BatchCreateAnnotationsResponse": {
-      "id": "BatchCreateAnnotationsResponse",
-      "properties": {
-        "entries": {
-          "description": "The resulting per-annotation entries, ordered consistently with the\noriginal request.",
-          "items": {
-            "$ref": "Entry"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "Binding": {
-      "description": "Associates `members` with a `role`.",
-      "id": "Binding",
-      "properties": {
-        "condition": {
-          "$ref": "Expr",
-          "description": "Unimplemented. The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently."
-        },
-        "members": {
-          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "role": {
-          "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "CallSet": {
-      "description": "A call set is a collection of variant calls, typically for one sample. It\nbelongs to a variant set.",
-      "id": "CallSet",
-      "properties": {
-        "created": {
-          "description": "The date this call set was created in milliseconds from the epoch.",
-          "format": "int64",
-          "type": "string"
-        },
-        "id": {
-          "description": "The server-generated call set ID, unique across all call sets.",
-          "type": "string"
-        },
-        "info": {
-          "additionalProperties": {
-            "items": {
-              "type": "any"
-            },
-            "type": "array"
-          },
-          "description": "A map of additional call set information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).",
-          "type": "object"
-        },
-        "name": {
-          "description": "The call set name.",
-          "type": "string"
-        },
-        "sampleId": {
-          "description": "The sample ID this call set corresponds to.",
-          "type": "string"
-        },
-        "variantSetIds": {
-          "description": "The IDs of the variant sets this call set belongs to. This field must\nhave exactly length one, as a call set belongs to a single variant set.\nThis field is repeated for compatibility with the\n[GA4GH 0.5.1\nAPI](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
     "CancelOperationRequest": {
       "description": "The request message for Operations.CancelOperation.",
       "id": "CancelOperationRequest",
       "properties": {},
       "type": "object"
     },
-    "CigarUnit": {
-      "description": "A single CIGAR operation.",
-      "id": "CigarUnit",
-      "properties": {
-        "operation": {
-          "enum": [
-            "OPERATION_UNSPECIFIED",
-            "ALIGNMENT_MATCH",
-            "INSERT",
-            "DELETE",
-            "SKIP",
-            "CLIP_SOFT",
-            "CLIP_HARD",
-            "PAD",
-            "SEQUENCE_MATCH",
-            "SEQUENCE_MISMATCH"
-          ],
-          "enumDescriptions": [
-            "",
-            "An alignment match indicates that a sequence can be aligned to the\nreference without evidence of an INDEL. Unlike the\n`SEQUENCE_MATCH` and `SEQUENCE_MISMATCH` operators,\nthe `ALIGNMENT_MATCH` operator does not indicate whether the\nreference and read sequences are an exact match. This operator is\nequivalent to SAM's `M`.",
-            "The insert operator indicates that the read contains evidence of bases\nbeing inserted into the reference. This operator is equivalent to SAM's\n`I`.",
-            "The delete operator indicates that the read contains evidence of bases\nbeing deleted from the reference. This operator is equivalent to SAM's\n`D`.",
-            "The skip operator indicates that this read skips a long segment of the\nreference, but the bases have not been deleted. This operator is commonly\nused when working with RNA-seq data, where reads may skip long segments\nof the reference between exons. This operator is equivalent to SAM's\n`N`.",
-            "The soft clip operator indicates that bases at the start/end of a read\nhave not been considered during alignment. This may occur if the majority\nof a read maps, except for low quality bases at the start/end of a read.\nThis operator is equivalent to SAM's `S`. Bases that are soft\nclipped will still be stored in the read.",
-            "The hard clip operator indicates that bases at the start/end of a read\nhave been omitted from this alignment. This may occur if this linear\nalignment is part of a chimeric alignment, or if the read has been\ntrimmed (for example, during error correction or to trim poly-A tails for\nRNA-seq). This operator is equivalent to SAM's `H`.",
-            "The pad operator indicates that there is padding in an alignment. This\noperator is equivalent to SAM's `P`.",
-            "This operator indicates that this portion of the aligned sequence exactly\nmatches the reference. This operator is equivalent to SAM's `=`.",
-            "This operator indicates that this portion of the aligned sequence is an\nalignment match to the reference, but a sequence mismatch. This can\nindicate a SNP or a read error. This operator is equivalent to SAM's\n`X`."
-          ],
-          "type": "string"
-        },
-        "operationLength": {
-          "description": "The number of genomic bases that the operation runs for. Required.",
-          "format": "int64",
-          "type": "string"
-        },
-        "referenceSequence": {
-          "description": "`referenceSequence` is only used at mismatches\n(`SEQUENCE_MISMATCH`) and deletions (`DELETE`).\nFilling this field replaces SAM's MD tag. If the relevant information is\nnot available, this field is unset.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "ClinicalCondition": {
-      "id": "ClinicalCondition",
-      "properties": {
-        "conceptId": {
-          "description": "The MedGen concept id associated with this gene.\nSearch for these IDs at http://www.ncbi.nlm.nih.gov/medgen/",
-          "type": "string"
-        },
-        "externalIds": {
-          "description": "The set of external IDs for this condition.",
-          "items": {
-            "$ref": "ExternalId"
-          },
-          "type": "array"
-        },
-        "names": {
-          "description": "A set of names for the condition.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "omimId": {
-          "description": "The OMIM id for this condition.\nSearch for these IDs at http://omim.org/",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "CodingSequence": {
-      "id": "CodingSequence",
-      "properties": {
-        "end": {
-          "description": "The end of the coding sequence on this annotation's reference sequence,\n0-based exclusive. Note that this position is relative to the reference\nstart, and *not* the containing annotation start.",
-          "format": "int64",
-          "type": "string"
-        },
-        "start": {
-          "description": "The start of the coding sequence on this annotation's reference sequence,\n0-based inclusive. Note that this position is relative to the reference\nstart, and *not* the containing annotation start.",
-          "format": "int64",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "ComputeEngine": {
       "description": "Describes a Compute Engine resource that is being managed by a running\npipeline.",
       "id": "ComputeEngine",
@@ -2008,46 +300,6 @@
       },
       "type": "object"
     },
-    "CoverageBucket": {
-      "description": "A bucket over which read coverage has been precomputed. A bucket corresponds\nto a specific range of the reference sequence.",
-      "id": "CoverageBucket",
-      "properties": {
-        "meanCoverage": {
-          "description": "The average number of reads which are aligned to each individual\nreference base in this bucket.",
-          "format": "float",
-          "type": "number"
-        },
-        "range": {
-          "$ref": "Range",
-          "description": "The genomic coordinate range spanned by this bucket."
-        }
-      },
-      "type": "object"
-    },
-    "Dataset": {
-      "description": "A Dataset is a collection of genomic data.",
-      "id": "Dataset",
-      "properties": {
-        "createTime": {
-          "description": "The time this dataset was created, in seconds from the epoch.",
-          "format": "google-datetime",
-          "type": "string"
-        },
-        "id": {
-          "description": "The server-generated dataset ID, unique across all datasets.",
-          "type": "string"
-        },
-        "name": {
-          "description": "The dataset name.",
-          "type": "string"
-        },
-        "projectId": {
-          "description": "The Google Cloud project ID that this dataset belongs to.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "DelayedEvent": {
       "description": "An event generated whenever a resource limitation or transient error\ndelays execution of a pipeline that was otherwise ready to run.",
       "id": "DelayedEvent",
@@ -2072,20 +324,6 @@
       "properties": {},
       "type": "object"
     },
-    "Entry": {
-      "id": "Entry",
-      "properties": {
-        "annotation": {
-          "$ref": "Annotation",
-          "description": "The created annotation, if creation was successful."
-        },
-        "status": {
-          "$ref": "Status",
-          "description": "The creation status."
-        }
-      },
-      "type": "object"
-    },
     "Event": {
       "description": "Carries information about events that occur during pipeline execution.",
       "id": "Event",
@@ -2110,146 +348,6 @@
       },
       "type": "object"
     },
-    "Exon": {
-      "id": "Exon",
-      "properties": {
-        "end": {
-          "description": "The end position of the exon on this annotation's reference sequence,\n0-based exclusive. Note that this is relative to the reference start, and\n*not* the containing annotation start.",
-          "format": "int64",
-          "type": "string"
-        },
-        "frame": {
-          "description": "The frame of this exon. Contains a value of 0, 1, or 2, which indicates\nthe offset of the first coding base of the exon within the reading frame\nof the coding DNA sequence, if any. This field is dependent on the\nstrandedness of this annotation (see\nAnnotation.reverse_strand).\nFor forward stranded annotations, this offset is relative to the\nexon.start. For reverse\nstrand annotations, this offset is relative to the\nexon.end `- 1`.\n\nUnset if this exon does not intersect the coding sequence. Upon creation\nof a transcript, the frame must be populated for all or none of the\ncoding exons.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "start": {
-          "description": "The start position of the exon on this annotation's reference sequence,\n0-based inclusive. Note that this is relative to the reference start, and\n**not** the containing annotation start.",
-          "format": "int64",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "Experiment": {
-      "id": "Experiment",
-      "properties": {
-        "instrumentModel": {
-          "description": "The instrument model used as part of this experiment. This maps to\nsequencing technology in the SAM spec.",
-          "type": "string"
-        },
-        "libraryId": {
-          "description": "A client-supplied library identifier; a library is a collection of DNA\nfragments which have been prepared for sequencing from a sample. This\nfield is important for quality control as error or bias can be introduced\nduring sample preparation.",
-          "type": "string"
-        },
-        "platformUnit": {
-          "description": "The platform unit used as part of this experiment, for example\nflowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the\n@RG PU field in the SAM spec.",
-          "type": "string"
-        },
-        "sequencingCenter": {
-          "description": "The sequencing center used as part of this experiment.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "ExportReadGroupSetRequest": {
-      "description": "The read group set export request.",
-      "id": "ExportReadGroupSetRequest",
-      "properties": {
-        "exportUri": {
-          "description": "Required. A Google Cloud Storage URI for the exported BAM file.\nThe currently authenticated user must have write access to the new file.\nAn error will be returned if the URI already contains data.",
-          "type": "string"
-        },
-        "projectId": {
-          "description": "Required. The Google Cloud project ID that owns this\nexport. The caller must have WRITE access to this project.",
-          "type": "string"
-        },
-        "referenceNames": {
-          "description": "The reference names to export. If this is not specified, all reference\nsequences, including unmapped reads, are exported.\nUse `*` to export only unmapped reads.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "ExportVariantSetRequest": {
-      "description": "The variant data export request.",
-      "id": "ExportVariantSetRequest",
-      "properties": {
-        "bigqueryDataset": {
-          "description": "Required. The BigQuery dataset to export data to. This dataset must already\nexist. Note that this is distinct from the Genomics concept of \"dataset\".",
-          "type": "string"
-        },
-        "bigqueryTable": {
-          "description": "Required. The BigQuery table to export data to.\nIf the table doesn't exist, it will be created. If it already exists, it\nwill be overwritten.",
-          "type": "string"
-        },
-        "callSetIds": {
-          "description": "If provided, only variant call information from the specified call sets\nwill be exported. By default all variant calls are exported.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "format": {
-          "description": "The format for the exported data.",
-          "enum": [
-            "FORMAT_UNSPECIFIED",
-            "FORMAT_BIGQUERY"
-          ],
-          "enumDescriptions": [
-            "",
-            "Export the data to Google BigQuery."
-          ],
-          "type": "string"
-        },
-        "projectId": {
-          "description": "Required. The Google Cloud project ID that owns the destination\nBigQuery dataset. The caller must have WRITE access to this project.  This\nproject will also own the resulting export job.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "Expr": {
-      "description": "Represents an expression text. Example:\n\n    title: \"User account presence\"\n    description: \"Determines whether the request has a user account\"\n    expression: \"size(request.user) \u003e 0\"",
-      "id": "Expr",
-      "properties": {
-        "description": {
-          "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.",
-          "type": "string"
-        },
-        "expression": {
-          "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.",
-          "type": "string"
-        },
-        "location": {
-          "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.",
-          "type": "string"
-        },
-        "title": {
-          "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "ExternalId": {
-      "id": "ExternalId",
-      "properties": {
-        "id": {
-          "description": "The id used by the source of this data.",
-          "type": "string"
-        },
-        "sourceName": {
-          "description": "The name of the source of this data.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "FailedEvent": {
       "description": "An event generated when the execution of a pipeline has failed. Note\nthat other events can continue to occur after this event.",
       "id": "FailedEvent",
@@ -2303,48 +401,6 @@
       },
       "type": "object"
     },
-    "GetIamPolicyRequest": {
-      "description": "Request message for `GetIamPolicy` method.",
-      "id": "GetIamPolicyRequest",
-      "properties": {},
-      "type": "object"
-    },
-    "ImportReadGroupSetsRequest": {
-      "description": "The read group set import request.",
-      "id": "ImportReadGroupSetsRequest",
-      "properties": {
-        "datasetId": {
-          "description": "Required. The ID of the dataset these read group sets will belong to. The\ncaller must have WRITE permissions to this dataset.",
-          "type": "string"
-        },
-        "partitionStrategy": {
-          "description": "The partition strategy describes how read groups are partitioned into read\ngroup sets.",
-          "enum": [
-            "PARTITION_STRATEGY_UNSPECIFIED",
-            "PER_FILE_PER_SAMPLE",
-            "MERGE_ALL"
-          ],
-          "enumDescriptions": [
-            "",
-            "In most cases, this strategy yields one read group set per file. This is\nthe default behavior.\n\nAllocate one read group set per file per sample. For BAM files, read\ngroups are considered to share a sample if they have identical sample\nnames. Furthermore, all reads for each file which do not belong to a read\ngroup, if any, will be grouped into a single read group set per-file.",
-            "Includes all read groups in all imported files into a single read group\nset. Requires that the headers for all imported files are equivalent. All\nreads which do not belong to a read group, if any, will be grouped into a\nseparate read group set."
-          ],
-          "type": "string"
-        },
-        "referenceSetId": {
-          "description": "The reference set to which the imported read group sets are aligned to, if\nany. The reference names of this reference set must be a superset of those\nfound in the imported file headers. If no reference set id is provided, a\nbest effort is made to associate with a matching reference set.",
-          "type": "string"
-        },
-        "sourceUris": {
-          "description": "A list of URIs pointing at [BAM\nfiles](https://samtools.github.io/hts-specs/SAMv1.pdf)\nin Google Cloud Storage.\nThose URIs can include wildcards (*), but do not add or remove\nmatching files before import has completed.\n\nNote that Google Cloud Storage object listing is only eventually\nconsistent: files added may be not be immediately visible to\neveryone. Thus, if using a wildcard it is preferable not to start\nthe import immediately after the files are created.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
     "ImportReadGroupSetsResponse": {
       "description": "The read group set import response.",
       "id": "ImportReadGroupSetsResponse",
@@ -2359,54 +415,6 @@
       },
       "type": "object"
     },
-    "ImportVariantsRequest": {
-      "description": "The variant data import request.",
-      "id": "ImportVariantsRequest",
-      "properties": {
-        "format": {
-          "description": "The format of the variant data being imported. If unspecified, defaults to\nto `VCF`.",
-          "enum": [
-            "FORMAT_UNSPECIFIED",
-            "FORMAT_VCF",
-            "FORMAT_COMPLETE_GENOMICS"
-          ],
-          "enumDescriptions": [
-            "",
-            "VCF (Variant Call Format). The VCF files may be gzip compressed. gVCF is\nalso supported. Disclaimer: gzip VCF imports are currently much slower\nthan equivalent uncompressed VCF imports. For this reason, uncompressed\nVCF is currently recommended for imports with more than 1GB combined\nuncompressed size, or for time sensitive imports.",
-            "Complete Genomics masterVarBeta format. The masterVarBeta files may\nbe bzip2 compressed."
-          ],
-          "type": "string"
-        },
-        "infoMergeConfig": {
-          "additionalProperties": {
-            "enum": [
-              "INFO_MERGE_OPERATION_UNSPECIFIED",
-              "IGNORE_NEW",
-              "MOVE_TO_CALLS"
-            ],
-            "type": "string"
-          },
-          "description": "A mapping between info field keys and the InfoMergeOperations to\nbe performed on them. This is plumbed down to the MergeVariantRequests\ngenerated by the resulting import job.",
-          "type": "object"
-        },
-        "normalizeReferenceNames": {
-          "description": "Convert reference names to the canonical representation.\nhg19 haploytypes (those reference names containing \"_hap\")\nare not modified in any way.\nAll other reference names are modified according to the following rules:\nThe reference name is capitalized.\nThe \"chr\" prefix is dropped for all autosomes and sex chromsomes.\nFor example \"chr17\" becomes \"17\" and \"chrX\" becomes \"X\".\nAll mitochondrial chromosomes (\"chrM\", \"chrMT\", etc) become \"MT\".",
-          "type": "boolean"
-        },
-        "sourceUris": {
-          "description": "A list of URIs referencing variant files in Google Cloud Storage. URIs can\ninclude wildcards [as described\nhere](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames).\nNote that recursive wildcards ('**') are not supported.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "variantSetId": {
-          "description": "Required. The variant set to which variant data should be imported.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "ImportVariantsResponse": {
       "description": "The variant data import response.",
       "id": "ImportVariantsResponse",
@@ -2421,88 +429,6 @@
       },
       "type": "object"
     },
-    "LinearAlignment": {
-      "description": "A linear alignment can be represented by one CIGAR string. Describes the\nmapped position and local alignment of the read to the reference.",
-      "id": "LinearAlignment",
-      "properties": {
-        "cigar": {
-          "description": "Represents the local alignment of this sequence (alignment matches, indels,\netc) against the reference.",
-          "items": {
-            "$ref": "CigarUnit"
-          },
-          "type": "array"
-        },
-        "mappingQuality": {
-          "description": "The mapping quality of this alignment. Represents how likely\nthe read maps to this position as opposed to other locations.\n\nSpecifically, this is -10 log10 Pr(mapping position is wrong), rounded to\nthe nearest integer.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "position": {
-          "$ref": "Position",
-          "description": "The position of this alignment."
-        }
-      },
-      "type": "object"
-    },
-    "ListBasesResponse": {
-      "id": "ListBasesResponse",
-      "properties": {
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        },
-        "offset": {
-          "description": "The offset position (0-based) of the given `sequence` from the\nstart of this `Reference`. This value will differ for each page\nin a paginated request.",
-          "format": "int64",
-          "type": "string"
-        },
-        "sequence": {
-          "description": "A substring of the bases that make up this reference.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "ListCoverageBucketsResponse": {
-      "id": "ListCoverageBucketsResponse",
-      "properties": {
-        "bucketWidth": {
-          "description": "The length of each coverage bucket in base pairs. Note that buckets at the\nend of a reference sequence may be shorter. This value is omitted if the\nbucket width is infinity (the default behaviour, with no range or\n`targetBucketWidth`).",
-          "format": "int64",
-          "type": "string"
-        },
-        "coverageBuckets": {
-          "description": "The coverage buckets. The list of buckets is sparse; a bucket with 0\noverlapping reads is not returned. A bucket never crosses more than one\nreference sequence. Each bucket has width `bucketWidth`, unless\nits end is the end of the reference sequence.",
-          "items": {
-            "$ref": "CoverageBucket"
-          },
-          "type": "array"
-        },
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "ListDatasetsResponse": {
-      "description": "The dataset list response.",
-      "id": "ListDatasetsResponse",
-      "properties": {
-        "datasets": {
-          "description": "The list of matching Datasets.",
-          "items": {
-            "$ref": "Dataset"
-          },
-          "type": "array"
-        },
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "ListOperationsResponse": {
       "description": "The response message for Operations.ListOperations.",
       "id": "ListOperationsResponse",
@@ -2521,35 +447,6 @@
       },
       "type": "object"
     },
-    "MergeVariantsRequest": {
-      "id": "MergeVariantsRequest",
-      "properties": {
-        "infoMergeConfig": {
-          "additionalProperties": {
-            "enum": [
-              "INFO_MERGE_OPERATION_UNSPECIFIED",
-              "IGNORE_NEW",
-              "MOVE_TO_CALLS"
-            ],
-            "type": "string"
-          },
-          "description": "A mapping between info field keys and the InfoMergeOperations to\nbe performed on them.",
-          "type": "object"
-        },
-        "variantSetId": {
-          "description": "The destination variant set.",
-          "type": "string"
-        },
-        "variants": {
-          "description": "The variants to be merged with existing variants.",
-          "items": {
-            "$ref": "Variant"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
     "Operation": {
       "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
       "id": "Operation",
@@ -2666,76 +563,6 @@
       },
       "type": "object"
     },
-    "Policy": {
-      "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**JSON Example**\n\n    {\n      \"bindings\": [\n        {\n          \"role\": \"roles/owner\",\n          \"members\": [\n            \"user:mike@example.com\",\n            \"group:admins@example.com\",\n            \"domain:google.com\",\n            \"serviceAccount:my-other-app@appspot.gserviceaccount.com\"\n          ]\n        },\n        {\n          \"role\": \"roles/viewer\",\n          \"members\": [\"user:sean@example.com\"]\n        }\n      ]\n    }\n\n**YAML Example**\n\n    bindings:\n    - members:\n      - user:mike@example.com\n      - group:admins@example.com\n      - domain:google.com\n      - serviceAccount:my-other-app@appspot.gserviceaccount.com\n      role: roles/owner\n    - members:\n      - user:sean@example.com\n      role: roles/viewer\n\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam/docs).",
-      "id": "Policy",
-      "properties": {
-        "bindings": {
-          "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.",
-          "items": {
-            "$ref": "Binding"
-          },
-          "type": "array"
-        },
-        "etag": {
-          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.",
-          "format": "byte",
-          "type": "string"
-        },
-        "version": {
-          "description": "Deprecated.",
-          "format": "int32",
-          "type": "integer"
-        }
-      },
-      "type": "object"
-    },
-    "Position": {
-      "description": "An abstraction for referring to a genomic position, in relation to some\nalready known reference. For now, represents a genomic position as a\nreference name, a base number on that reference (0-based), and a\ndetermination of forward or reverse strand.",
-      "id": "Position",
-      "properties": {
-        "position": {
-          "description": "The 0-based offset from the start of the forward strand for that reference.",
-          "format": "int64",
-          "type": "string"
-        },
-        "referenceName": {
-          "description": "The name of the reference in whatever reference set is being used.",
-          "type": "string"
-        },
-        "reverseStrand": {
-          "description": "Whether this position is on the reverse strand, as opposed to the forward\nstrand.",
-          "type": "boolean"
-        }
-      },
-      "type": "object"
-    },
-    "Program": {
-      "id": "Program",
-      "properties": {
-        "commandLine": {
-          "description": "The command line used to run this program.",
-          "type": "string"
-        },
-        "id": {
-          "description": "The user specified locally unique ID of the program. Used along with\n`prevProgramId` to define an ordering between programs.",
-          "type": "string"
-        },
-        "name": {
-          "description": "The display name of the program. This is typically the colloquial name of\nthe tool used, for example 'bwa' or 'picard'.",
-          "type": "string"
-        },
-        "prevProgramId": {
-          "description": "The ID of the program run before this one.",
-          "type": "string"
-        },
-        "version": {
-          "description": "The version of the program run.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "PullStartedEvent": {
       "description": "An event generated when the worker starts pulling an image.",
       "id": "PullStartedEvent",
@@ -2758,318 +585,6 @@
       },
       "type": "object"
     },
-    "Range": {
-      "description": "A 0-based half-open genomic coordinate range for search requests.",
-      "id": "Range",
-      "properties": {
-        "end": {
-          "description": "The end position of the range on the reference, 0-based exclusive.",
-          "format": "int64",
-          "type": "string"
-        },
-        "referenceName": {
-          "description": "The reference sequence name, for example `chr1`,\n`1`, or `chrX`.",
-          "type": "string"
-        },
-        "start": {
-          "description": "The start position of the range on the reference, 0-based inclusive.",
-          "format": "int64",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "Read": {
-      "description": "A read alignment describes a linear alignment of a string of DNA to a\nreference sequence, in addition to metadata\nabout the fragment (the molecule of DNA sequenced) and the read (the bases\nwhich were read by the sequencer). A read is equivalent to a line in a SAM\nfile. A read belongs to exactly one read group and exactly one\nread group set.\n\n### Reverse-stranded reads\n\nMapped reads (reads having a non-null `alignment`) can be aligned to either\nthe forward or the reverse strand of their associated reference. Strandedness\nof a mapped read is encoded by `alignment.position.reverseStrand`.\n\nIf we consider the reference to be a forward-stranded coordinate space of\n`[0, reference.length)` with `0` as the left-most position and\n`reference.length` as the right-most position, reads are always aligned left\nto right. That is, `alignment.position.position` always refers to the\nleft-most reference coordinate and `alignment.cigar` describes the alignment\nof this read to the reference from left to right. All per-base fields such as\n`alignedSequence` and `alignedQuality` share this same left-to-right\norientation; this is true of reads which are aligned to either strand. For\nreverse-stranded reads, this means that `alignedSequence` is the reverse\ncomplement of the bases that were originally reported by the sequencing\nmachine.\n\n### Generating a reference-aligned sequence string\n\nWhen interacting with mapped reads, it's often useful to produce a string\nrepresenting the local alignment of the read to reference. The following\npseudocode demonstrates one way of doing this:\n\n    out = \"\"\n    offset = 0\n    for c in read.alignment.cigar {\n      switch c.operation {\n      case \"ALIGNMENT_MATCH\", \"SEQUENCE_MATCH\", \"SEQUENCE_MISMATCH\":\n        out += read.alignedSequence[offset:offset+c.operationLength]\n        offset += c.operationLength\n        break\n      case \"CLIP_SOFT\", \"INSERT\":\n        offset += c.operationLength\n        break\n      case \"PAD\":\n        out += repeat(\"*\", c.operationLength)\n        break\n      case \"DELETE\":\n        out += repeat(\"-\", c.operationLength)\n        break\n      case \"SKIP\":\n        out += repeat(\" \", c.operationLength)\n        break\n      case \"CLIP_HARD\":\n        break\n      }\n    }\n    return out\n\n### Converting to SAM's CIGAR string\n\nThe following pseudocode generates a SAM CIGAR string from the\n`cigar` field. Note that this is a lossy conversion\n(`cigar.referenceSequence` is lost).\n\n    cigarMap = {\n      \"ALIGNMENT_MATCH\": \"M\",\n      \"INSERT\": \"I\",\n      \"DELETE\": \"D\",\n      \"SKIP\": \"N\",\n      \"CLIP_SOFT\": \"S\",\n      \"CLIP_HARD\": \"H\",\n      \"PAD\": \"P\",\n      \"SEQUENCE_MATCH\": \"=\",\n      \"SEQUENCE_MISMATCH\": \"X\",\n    }\n    cigarStr = \"\"\n    for c in read.alignment.cigar {\n      cigarStr += c.operationLength + cigarMap[c.operation]\n    }\n    return cigarStr",
-      "id": "Read",
-      "properties": {
-        "alignedQuality": {
-          "description": "The quality of the read sequence contained in this alignment record\n(equivalent to QUAL in SAM).\n`alignedSequence` and `alignedQuality` may be shorter than the full read\nsequence and quality. This will occur if the alignment is part of a\nchimeric alignment, or if the read was trimmed. When this occurs, the CIGAR\nfor this read will begin/end with a hard clip operator that will indicate\nthe length of the excised sequence.",
-          "items": {
-            "format": "int32",
-            "type": "integer"
-          },
-          "type": "array"
-        },
-        "alignedSequence": {
-          "description": "The bases of the read sequence contained in this alignment record,\n**without CIGAR operations applied** (equivalent to SEQ in SAM).\n`alignedSequence` and `alignedQuality` may be\nshorter than the full read sequence and quality. This will occur if the\nalignment is part of a chimeric alignment, or if the read was trimmed. When\nthis occurs, the CIGAR for this read will begin/end with a hard clip\noperator that will indicate the length of the excised sequence.",
-          "type": "string"
-        },
-        "alignment": {
-          "$ref": "LinearAlignment",
-          "description": "The linear alignment for this alignment record. This field is null for\nunmapped reads."
-        },
-        "duplicateFragment": {
-          "description": "The fragment is a PCR or optical duplicate (SAM flag 0x400).",
-          "type": "boolean"
-        },
-        "failedVendorQualityChecks": {
-          "description": "Whether this read did not pass filters, such as platform or vendor quality\ncontrols (SAM flag 0x200).",
-          "type": "boolean"
-        },
-        "fragmentLength": {
-          "description": "The observed length of the fragment, equivalent to TLEN in SAM.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "fragmentName": {
-          "description": "The fragment name. Equivalent to QNAME (query template name) in SAM.",
-          "type": "string"
-        },
-        "id": {
-          "description": "The server-generated read ID, unique across all reads. This is different\nfrom the `fragmentName`.",
-          "type": "string"
-        },
-        "info": {
-          "additionalProperties": {
-            "items": {
-              "type": "any"
-            },
-            "type": "array"
-          },
-          "description": "A map of additional read alignment information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).",
-          "type": "object"
-        },
-        "nextMatePosition": {
-          "$ref": "Position",
-          "description": "The mapping of the primary alignment of the\n`(readNumber+1)%numberReads` read in the fragment. It replaces\nmate position and mate strand in SAM."
-        },
-        "numberReads": {
-          "description": "The number of reads in the fragment (extension to SAM flag 0x1).",
-          "format": "int32",
-          "type": "integer"
-        },
-        "properPlacement": {
-          "description": "The orientation and the distance between reads from the fragment are\nconsistent with the sequencing protocol (SAM flag 0x2).",
-          "type": "boolean"
-        },
-        "readGroupId": {
-          "description": "The ID of the read group this read belongs to. A read belongs to exactly\none read group. This is a server-generated ID which is distinct from SAM's\nRG tag (for that value, see\nReadGroup.name).",
-          "type": "string"
-        },
-        "readGroupSetId": {
-          "description": "The ID of the read group set this read belongs to. A read belongs to\nexactly one read group set.",
-          "type": "string"
-        },
-        "readNumber": {
-          "description": "The read number in sequencing. 0-based and less than numberReads. This\nfield replaces SAM flag 0x40 and 0x80.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "secondaryAlignment": {
-          "description": "Whether this alignment is secondary. Equivalent to SAM flag 0x100.\nA secondary alignment represents an alternative to the primary alignment\nfor this read. Aligners may return secondary alignments if a read can map\nambiguously to multiple coordinates in the genome. By convention, each read\nhas one and only one alignment where both `secondaryAlignment`\nand `supplementaryAlignment` are false.",
-          "type": "boolean"
-        },
-        "supplementaryAlignment": {
-          "description": "Whether this alignment is supplementary. Equivalent to SAM flag 0x800.\nSupplementary alignments are used in the representation of a chimeric\nalignment. In a chimeric alignment, a read is split into multiple\nlinear alignments that map to different reference contigs. The first\nlinear alignment in the read will be designated as the representative\nalignment; the remaining linear alignments will be designated as\nsupplementary alignments. These alignments may have different mapping\nquality scores. In each linear alignment in a chimeric alignment, the read\nwill be hard clipped. The `alignedSequence` and\n`alignedQuality` fields in the alignment record will only\nrepresent the bases for its respective linear alignment.",
-          "type": "boolean"
-        }
-      },
-      "type": "object"
-    },
-    "ReadGroup": {
-      "description": "A read group is all the data that's processed the same way by the sequencer.",
-      "id": "ReadGroup",
-      "properties": {
-        "datasetId": {
-          "description": "The dataset to which this read group belongs.",
-          "type": "string"
-        },
-        "description": {
-          "description": "A free-form text description of this read group.",
-          "type": "string"
-        },
-        "experiment": {
-          "$ref": "Experiment",
-          "description": "The experiment used to generate this read group."
-        },
-        "id": {
-          "description": "The server-generated read group ID, unique for all read groups.\nNote: This is different than the @RG ID field in the SAM spec. For that\nvalue, see name.",
-          "type": "string"
-        },
-        "info": {
-          "additionalProperties": {
-            "items": {
-              "type": "any"
-            },
-            "type": "array"
-          },
-          "description": "A map of additional read group information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).",
-          "type": "object"
-        },
-        "name": {
-          "description": "The read group name. This corresponds to the @RG ID field in the SAM spec.",
-          "type": "string"
-        },
-        "predictedInsertSize": {
-          "description": "The predicted insert size of this read group. The insert size is the length\nthe sequenced DNA fragment from end-to-end, not including the adapters.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "programs": {
-          "description": "The programs used to generate this read group. Programs are always\nidentical for all read groups within a read group set. For this reason,\nonly the first read group in a returned set will have this field\npopulated.",
-          "items": {
-            "$ref": "Program"
-          },
-          "type": "array"
-        },
-        "referenceSetId": {
-          "description": "The reference set the reads in this read group are aligned to.",
-          "type": "string"
-        },
-        "sampleId": {
-          "description": "A client-supplied sample identifier for the reads in this read group.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "ReadGroupSet": {
-      "description": "A read group set is a logical collection of read groups, which are\ncollections of reads produced by a sequencer. A read group set typically\nmodels reads corresponding to one sample, sequenced one way, and aligned one\nway.\n\n* A read group set belongs to one dataset.\n* A read group belongs to one read group set.\n* A read belongs to one read group.",
-      "id": "ReadGroupSet",
-      "properties": {
-        "datasetId": {
-          "description": "The dataset to which this read group set belongs.",
-          "type": "string"
-        },
-        "filename": {
-          "description": "The filename of the original source file for this read group set, if any.",
-          "type": "string"
-        },
-        "id": {
-          "description": "The server-generated read group set ID, unique for all read group sets.",
-          "type": "string"
-        },
-        "info": {
-          "additionalProperties": {
-            "items": {
-              "type": "any"
-            },
-            "type": "array"
-          },
-          "description": "A map of additional read group set information.",
-          "type": "object"
-        },
-        "name": {
-          "description": "The read group set name. By default this will be initialized to the sample\nname of the sequenced data contained in this set.",
-          "type": "string"
-        },
-        "readGroups": {
-          "description": "The read groups in this set. There are typically 1-10 read groups in a read\ngroup set.",
-          "items": {
-            "$ref": "ReadGroup"
-          },
-          "type": "array"
-        },
-        "referenceSetId": {
-          "description": "The reference set to which the reads in this read group set are aligned.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "Reference": {
-      "description": "A reference is a canonical assembled DNA sequence, intended to act as a\nreference coordinate space for other genomic annotations. A single reference\nmight represent the human chromosome 1 or mitochandrial DNA, for instance. A\nreference belongs to one or more reference sets.",
-      "id": "Reference",
-      "properties": {
-        "id": {
-          "description": "The server-generated reference ID, unique across all references.",
-          "type": "string"
-        },
-        "length": {
-          "description": "The length of this reference's sequence.",
-          "format": "int64",
-          "type": "string"
-        },
-        "md5checksum": {
-          "description": "MD5 of the upper-case sequence excluding all whitespace characters (this\nis equivalent to SQ:M5 in SAM). This value is represented in lower case\nhexadecimal format.",
-          "type": "string"
-        },
-        "name": {
-          "description": "The name of this reference, for example `22`.",
-          "type": "string"
-        },
-        "ncbiTaxonId": {
-          "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "sourceAccessions": {
-          "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally\nwith a version number, for example `GCF_000001405.26`.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "sourceUri": {
-          "description": "The URI from which the sequence was obtained. Typically specifies a FASTA\nformat file.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "ReferenceBound": {
-      "description": "ReferenceBound records an upper bound for the starting coordinate of\nvariants in a particular reference.",
-      "id": "ReferenceBound",
-      "properties": {
-        "referenceName": {
-          "description": "The name of the reference associated with this reference bound.",
-          "type": "string"
-        },
-        "upperBound": {
-          "description": "An upper bound (inclusive) on the starting coordinate of any\nvariant in the reference sequence.",
-          "format": "int64",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "ReferenceSet": {
-      "description": "A reference set is a set of references which typically comprise a reference\nassembly for a species, such as `GRCh38` which is representative\nof the human genome. A reference set defines a common coordinate space for\ncomparing reference-aligned experimental data. A reference set contains 1 or\nmore references.",
-      "id": "ReferenceSet",
-      "properties": {
-        "assemblyId": {
-          "description": "Public id of this reference set, such as `GRCh37`.",
-          "type": "string"
-        },
-        "description": {
-          "description": "Free text description of this reference set.",
-          "type": "string"
-        },
-        "id": {
-          "description": "The server-generated reference set ID, unique across all reference sets.",
-          "type": "string"
-        },
-        "md5checksum": {
-          "description": "Order-independent MD5 checksum which identifies this reference set. The\nchecksum is computed by sorting all lower case hexidecimal string\n`reference.md5checksum` (for all reference in this set) in\nascending lexicographic order, concatenating, and taking the MD5 of that\nvalue. The resulting value is represented in lower case hexadecimal format.",
-          "type": "string"
-        },
-        "ncbiTaxonId": {
-          "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human)\nindicating the species which this reference set is intended to model. Note\nthat contained references may specify a different `ncbiTaxonId`, as\nassemblies may contain reference sequences which do not belong to the\nmodeled species, for example EBV in a human reference genome.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "referenceIds": {
-          "description": "The IDs of the reference objects that are part of this set.\n`Reference.md5checksum` must be unique within this set.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "sourceAccessions": {
-          "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally\nwith a version number, for example `NC_000001.11`.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "sourceUri": {
-          "description": "The URI from which the references were obtained.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "RunPipelineResponse": {
       "description": "The response to the RunPipeline method, returned in the operation's result\nfield on success.",
       "id": "RunPipelineResponse",
@@ -3087,506 +602,6 @@
       },
       "type": "object"
     },
-    "SearchAnnotationSetsRequest": {
-      "id": "SearchAnnotationSetsRequest",
-      "properties": {
-        "datasetIds": {
-          "description": "Required. The dataset IDs to search within. Caller must have `READ` access\nto these datasets.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "name": {
-          "description": "Only return annotations sets for which a substring of the name matches this\nstring (case insensitive).",
-          "type": "string"
-        },
-        "pageSize": {
-          "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 128. The maximum value is 1024.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-          "type": "string"
-        },
-        "referenceSetId": {
-          "description": "If specified, only annotation sets associated with the given reference set\nare returned.",
-          "type": "string"
-        },
-        "types": {
-          "description": "If specified, only annotation sets that have any of these types are\nreturned.",
-          "enumDescriptions": [
-            "",
-            "A `GENERIC` annotation type should be used when no other annotation\ntype will suffice. This represents an untyped annotation of the reference\ngenome.",
-            "A `VARIANT` annotation type.",
-            "A `GENE` annotation type represents the existence of a gene at the\nassociated reference coordinates. The start coordinate is typically the\ngene's transcription start site and the end is typically the end of the\ngene's last exon.",
-            "A `TRANSCRIPT` annotation type represents the assertion that a\nparticular region of the reference genome may be transcribed as RNA."
-          ],
-          "items": {
-            "enum": [
-              "ANNOTATION_TYPE_UNSPECIFIED",
-              "GENERIC",
-              "VARIANT",
-              "GENE",
-              "TRANSCRIPT"
-            ],
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "SearchAnnotationSetsResponse": {
-      "id": "SearchAnnotationSetsResponse",
-      "properties": {
-        "annotationSets": {
-          "description": "The matching annotation sets.",
-          "items": {
-            "$ref": "AnnotationSet"
-          },
-          "type": "array"
-        },
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchAnnotationsRequest": {
-      "id": "SearchAnnotationsRequest",
-      "properties": {
-        "annotationSetIds": {
-          "description": "Required. The annotation sets to search within. The caller must have\n`READ` access to these annotation sets.\nAll queried annotation sets must have the same type.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "end": {
-          "description": "The end position of the range on the reference, 0-based exclusive. If\nreferenceId or\nreferenceName\nmust be specified, Defaults to the length of the reference.",
-          "format": "int64",
-          "type": "string"
-        },
-        "pageSize": {
-          "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 256. The maximum value is 2048.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-          "type": "string"
-        },
-        "referenceId": {
-          "description": "The ID of the reference to query.",
-          "type": "string"
-        },
-        "referenceName": {
-          "description": "The name of the reference to query, within the reference set associated\nwith this query.",
-          "type": "string"
-        },
-        "start": {
-          "description": "The start position of the range on the reference, 0-based inclusive. If\nspecified,\nreferenceId or\nreferenceName\nmust be specified. Defaults to 0.",
-          "format": "int64",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchAnnotationsResponse": {
-      "id": "SearchAnnotationsResponse",
-      "properties": {
-        "annotations": {
-          "description": "The matching annotations.",
-          "items": {
-            "$ref": "Annotation"
-          },
-          "type": "array"
-        },
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchCallSetsRequest": {
-      "description": "The call set search request.",
-      "id": "SearchCallSetsRequest",
-      "properties": {
-        "name": {
-          "description": "Only return call sets for which a substring of the name matches this\nstring.",
-          "type": "string"
-        },
-        "pageSize": {
-          "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-          "type": "string"
-        },
-        "variantSetIds": {
-          "description": "Restrict the query to call sets within the given variant sets. At least one\nID must be provided.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "SearchCallSetsResponse": {
-      "description": "The call set search response.",
-      "id": "SearchCallSetsResponse",
-      "properties": {
-        "callSets": {
-          "description": "The list of matching call sets.",
-          "items": {
-            "$ref": "CallSet"
-          },
-          "type": "array"
-        },
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchReadGroupSetsRequest": {
-      "description": "The read group set search request.",
-      "id": "SearchReadGroupSetsRequest",
-      "properties": {
-        "datasetIds": {
-          "description": "Restricts this query to read group sets within the given datasets. At least\none ID must be provided.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "name": {
-          "description": "Only return read group sets for which a substring of the name matches this\nstring.",
-          "type": "string"
-        },
-        "pageSize": {
-          "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 256. The maximum value is 1024.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchReadGroupSetsResponse": {
-      "description": "The read group set search response.",
-      "id": "SearchReadGroupSetsResponse",
-      "properties": {
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        },
-        "readGroupSets": {
-          "description": "The list of matching read group sets.",
-          "items": {
-            "$ref": "ReadGroupSet"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "SearchReadsRequest": {
-      "description": "The read search request.",
-      "id": "SearchReadsRequest",
-      "properties": {
-        "end": {
-          "description": "The end position of the range on the reference, 0-based exclusive. If\nspecified, `referenceName` must also be specified.",
-          "format": "int64",
-          "type": "string"
-        },
-        "pageSize": {
-          "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 256. The maximum value is 2048.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-          "type": "string"
-        },
-        "readGroupIds": {
-          "description": "The IDs of the read groups within which to search for reads. All specified\nread groups must belong to the same read group sets. Must specify one of\n`readGroupSetIds` or `readGroupIds`.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "readGroupSetIds": {
-          "description": "The IDs of the read groups sets within which to search for reads. All\nspecified read group sets must be aligned against a common set of reference\nsequences; this defines the genomic coordinates for the query. Must specify\none of `readGroupSetIds` or `readGroupIds`.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "referenceName": {
-          "description": "The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to\n`*`, only unmapped reads are returned. If unspecified, all reads (mapped\nand unmapped) are returned.",
-          "type": "string"
-        },
-        "start": {
-          "description": "The start position of the range on the reference, 0-based inclusive. If\nspecified, `referenceName` must also be specified.",
-          "format": "int64",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchReadsResponse": {
-      "description": "The read search response.",
-      "id": "SearchReadsResponse",
-      "properties": {
-        "alignments": {
-          "description": "The list of matching alignments sorted by mapped genomic coordinate,\nif any, ascending in position within the same reference. Unmapped reads,\nwhich have no position, are returned contiguously and are sorted in\nascending lexicographic order by fragment name.",
-          "items": {
-            "$ref": "Read"
-          },
-          "type": "array"
-        },
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchReferenceSetsRequest": {
-      "id": "SearchReferenceSetsRequest",
-      "properties": {
-        "accessions": {
-          "description": "If present, return reference sets for which a prefix of any of\nsourceAccessions\nmatch any of these strings. Accession numbers typically have a main number\nand a version, for example `NC_000001.11`.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "assemblyId": {
-          "description": "If present, return reference sets for which a substring of their\n`assemblyId` matches this string (case insensitive).",
-          "type": "string"
-        },
-        "md5checksums": {
-          "description": "If present, return reference sets for which the\nmd5checksum matches exactly.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "pageSize": {
-          "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024. The maximum value is 4096.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchReferenceSetsResponse": {
-      "id": "SearchReferenceSetsResponse",
-      "properties": {
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        },
-        "referenceSets": {
-          "description": "The matching references sets.",
-          "items": {
-            "$ref": "ReferenceSet"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "SearchReferencesRequest": {
-      "id": "SearchReferencesRequest",
-      "properties": {
-        "accessions": {
-          "description": "If present, return references for which a prefix of any of\nsourceAccessions match\nany of these strings. Accession numbers typically have a main number and a\nversion, for example `GCF_000001405.26`.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "md5checksums": {
-          "description": "If present, return references for which the\nmd5checksum matches exactly.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "pageSize": {
-          "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024. The maximum value is 4096.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-          "type": "string"
-        },
-        "referenceSetId": {
-          "description": "If present, return only references which belong to this reference set.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchReferencesResponse": {
-      "id": "SearchReferencesResponse",
-      "properties": {
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        },
-        "references": {
-          "description": "The matching references.",
-          "items": {
-            "$ref": "Reference"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "SearchVariantSetsRequest": {
-      "description": "The search variant sets request.",
-      "id": "SearchVariantSetsRequest",
-      "properties": {
-        "datasetIds": {
-          "description": "Exactly one dataset ID must be provided here. Only variant sets which\nbelong to this dataset will be returned.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "pageSize": {
-          "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "SearchVariantSetsResponse": {
-      "description": "The search variant sets response.",
-      "id": "SearchVariantSetsResponse",
-      "properties": {
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        },
-        "variantSets": {
-          "description": "The variant sets belonging to the requested dataset.",
-          "items": {
-            "$ref": "VariantSet"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "SearchVariantsRequest": {
-      "description": "The variant search request.",
-      "id": "SearchVariantsRequest",
-      "properties": {
-        "callSetIds": {
-          "description": "Only return variant calls which belong to call sets with these ids.\nLeaving this blank returns all variant calls. If a variant has no\ncalls belonging to any of these call sets, it won't be returned at all.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "end": {
-          "description": "The end of the window, 0-based exclusive. If unspecified or 0, defaults to\nthe length of the reference.",
-          "format": "int64",
-          "type": "string"
-        },
-        "maxCalls": {
-          "description": "The maximum number of calls to return in a single page. Note that this\nlimit may be exceeded in the event that a matching variant contains more\ncalls than the requested maximum. If unspecified, defaults to 5000. The\nmaximum value is 10000.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageSize": {
-          "description": "The maximum number of variants to return in a single page. If unspecified,\ndefaults to 5000. The maximum value is 10000.",
-          "format": "int32",
-          "type": "integer"
-        },
-        "pageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-          "type": "string"
-        },
-        "referenceName": {
-          "description": "Required. Only return variants in this reference sequence.",
-          "type": "string"
-        },
-        "start": {
-          "description": "The beginning of the window (0-based, inclusive) for which\noverlapping variants should be returned. If unspecified, defaults to 0.",
-          "format": "int64",
-          "type": "string"
-        },
-        "variantName": {
-          "description": "Only return variants which have exactly this name.",
-          "type": "string"
-        },
-        "variantSetIds": {
-          "description": "At most one variant set ID must be provided. Only variants from this\nvariant set will be returned. If omitted, a call set id must be included in\nthe request.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "SearchVariantsResponse": {
-      "description": "The variant search response.",
-      "id": "SearchVariantsResponse",
-      "properties": {
-        "nextPageToken": {
-          "description": "The continuation token, which is used to page through large result sets.\nProvide this value in a subsequent request to return the next page of\nresults. This field will be empty if there aren't any additional results.",
-          "type": "string"
-        },
-        "variants": {
-          "description": "The list of matching Variants.",
-          "items": {
-            "$ref": "Variant"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "SetIamPolicyRequest": {
-      "description": "Request message for `SetIamPolicy` method.",
-      "id": "SetIamPolicyRequest",
-      "properties": {
-        "policy": {
-          "$ref": "Policy",
-          "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them."
-        }
-      },
-      "type": "object"
-    },
     "Status": {
       "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
@@ -3614,61 +629,6 @@
       },
       "type": "object"
     },
-    "TestIamPermissionsRequest": {
-      "description": "Request message for `TestIamPermissions` method.",
-      "id": "TestIamPermissionsRequest",
-      "properties": {
-        "permissions": {
-          "description": "REQUIRED: The set of permissions to check for the 'resource'.\nPermissions with wildcards (such as '*' or 'storage.*') are not allowed.\nAllowed permissions are\u0026#58;\n\n* `genomics.datasets.create`\n* `genomics.datasets.delete`\n* `genomics.datasets.get`\n* `genomics.datasets.list`\n* `genomics.datasets.update`\n* `genomics.datasets.getIamPolicy`\n* `genomics.datasets.setIamPolicy`",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "TestIamPermissionsResponse": {
-      "description": "Response message for `TestIamPermissions` method.",
-      "id": "TestIamPermissionsResponse",
-      "properties": {
-        "permissions": {
-          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        }
-      },
-      "type": "object"
-    },
-    "Transcript": {
-      "description": "A transcript represents the assertion that a particular region of the\nreference genome may be transcribed as RNA.",
-      "id": "Transcript",
-      "properties": {
-        "codingSequence": {
-          "$ref": "CodingSequence",
-          "description": "The range of the coding sequence for this transcript, if any. To determine\nthe exact ranges of coding sequence, intersect this range with those of the\nexons, if any. If there are any\nexons, the\ncodingSequence must start\nand end within them.\n\nNote that in some cases, the reference genome will not exactly match the\nobserved mRNA transcript e.g. due to variance in the source genome from\nreference. In these cases,\nexon.frame will not necessarily\nmatch the expected reference reading frame and coding exon reference bases\ncannot necessarily be concatenated to produce the original transcript mRNA."
-        },
-        "exons": {
-          "description": "The \u003ca href=\"http://en.wikipedia.org/wiki/Exon\"\u003eexons\u003c/a\u003e that compose\nthis transcript. This field should be unset for genomes where transcript\nsplicing does not occur, for example prokaryotes.\n\nIntrons are regions of the transcript that are not included in the\nspliced RNA product. Though not explicitly modeled here, intron ranges can\nbe deduced; all regions of this transcript that are not exons are introns.\n\nExonic sequences do not necessarily code for a translational product\n(amino acids). Only the regions of exons bounded by the\ncodingSequence correspond\nto coding DNA sequence.\n\nExons are ordered by start position and may not overlap.",
-          "items": {
-            "$ref": "Exon"
-          },
-          "type": "array"
-        },
-        "geneId": {
-          "description": "The annotation ID of the gene from which this transcript is transcribed.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "UndeleteDatasetRequest": {
-      "id": "UndeleteDatasetRequest",
-      "properties": {},
-      "type": "object"
-    },
     "UnexpectedExitStatusEvent": {
       "description": "An event generated when the execution of a container results in a\nnon-zero exit status that was not otherwise ignored. Execution will\ncontinue, but only actions that are flagged as `ALWAYS_RUN` will be\nexecuted. Other actions will be skipped.",
       "id": "UnexpectedExitStatusEvent",
@@ -3686,344 +646,6 @@
       },
       "type": "object"
     },
-    "Variant": {
-      "description": "A variant represents a change in DNA sequence relative to a reference\nsequence. For example, a variant could represent a SNP or an insertion.\nVariants belong to a variant set.\n\nEach of the calls on a variant represent a determination of genotype with\nrespect to that variant. For example, a call might assign probability of 0.32\nto the occurrence of a SNP named rs1234 in a sample named NA12345. A call\nbelongs to a call set, which contains related calls typically from one\nsample.",
-      "id": "Variant",
-      "properties": {
-        "alternateBases": {
-          "description": "The bases that appear instead of the reference bases.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "calls": {
-          "description": "The variant calls for this particular variant. Each one represents the\ndetermination of genotype with respect to this variant.",
-          "items": {
-            "$ref": "VariantCall"
-          },
-          "type": "array"
-        },
-        "created": {
-          "description": "The date this variant was created, in milliseconds from the epoch.",
-          "format": "int64",
-          "type": "string"
-        },
-        "end": {
-          "description": "The end position (0-based) of this variant. This corresponds to the first\nbase after the last base in the reference allele. So, the length of\nthe reference allele is (end - start). This is useful for variants\nthat don't explicitly give alternate bases, for example large deletions.",
-          "format": "int64",
-          "type": "string"
-        },
-        "filter": {
-          "description": "A list of filters (normally quality filters) this variant has failed.\n`PASS` indicates this variant has passed all filters.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "id": {
-          "description": "The server-generated variant ID, unique across all variants.",
-          "type": "string"
-        },
-        "info": {
-          "additionalProperties": {
-            "items": {
-              "type": "any"
-            },
-            "type": "array"
-          },
-          "description": "A map of additional variant information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).",
-          "type": "object"
-        },
-        "names": {
-          "description": "Names for the variant, for example a RefSNP ID.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "quality": {
-          "description": "A measure of how likely this variant is to be real.\nA higher value is better.",
-          "format": "double",
-          "type": "number"
-        },
-        "referenceBases": {
-          "description": "The reference bases for this variant. They start at the given\nposition.",
-          "type": "string"
-        },
-        "referenceName": {
-          "description": "The reference on which this variant occurs.\n(such as `chr20` or `X`)",
-          "type": "string"
-        },
-        "start": {
-          "description": "The position at which this variant occurs (0-based).\nThis corresponds to the first base of the string of reference bases.",
-          "format": "int64",
-          "type": "string"
-        },
-        "variantSetId": {
-          "description": "The ID of the variant set this variant belongs to.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "VariantAnnotation": {
-      "id": "VariantAnnotation",
-      "properties": {
-        "alternateBases": {
-          "description": "The alternate allele for this variant. If multiple alternate alleles\nexist at this location, create a separate variant for each one, as they\nmay represent distinct conditions.",
-          "type": "string"
-        },
-        "clinicalSignificance": {
-          "description": "Describes the clinical significance of a variant.\nIt is adapted from the ClinVar controlled vocabulary for clinical\nsignificance described at:\nhttp://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/",
-          "enum": [
-            "CLINICAL_SIGNIFICANCE_UNSPECIFIED",
-            "CLINICAL_SIGNIFICANCE_OTHER",
-            "UNCERTAIN",
-            "BENIGN",
-            "LIKELY_BENIGN",
-            "LIKELY_PATHOGENIC",
-            "PATHOGENIC",
-            "DRUG_RESPONSE",
-            "HISTOCOMPATIBILITY",
-            "CONFERS_SENSITIVITY",
-            "RISK_FACTOR",
-            "ASSOCIATION",
-            "PROTECTIVE",
-            "MULTIPLE_REPORTED"
-          ],
-          "enumDescriptions": [
-            "",
-            "`OTHER` should be used when no other clinical significance\nvalue will suffice.",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "`MULTIPLE_REPORTED` should be used when multiple clinical\nsignficances are reported for a variant. The original clinical\nsignificance values may be provided in the `info` field."
-          ],
-          "type": "string"
-        },
-        "conditions": {
-          "description": "The set of conditions associated with this variant.\nA condition describes the way a variant influences human health.",
-          "items": {
-            "$ref": "ClinicalCondition"
-          },
-          "type": "array"
-        },
-        "effect": {
-          "description": "Effect of the variant on the coding sequence.",
-          "enum": [
-            "EFFECT_UNSPECIFIED",
-            "EFFECT_OTHER",
-            "FRAMESHIFT",
-            "FRAME_PRESERVING_INDEL",
-            "SYNONYMOUS_SNP",
-            "NONSYNONYMOUS_SNP",
-            "STOP_GAIN",
-            "STOP_LOSS",
-            "SPLICE_SITE_DISRUPTION"
-          ],
-          "enumDescriptions": [
-            "",
-            "`EFFECT_OTHER` should be used when no other Effect\nwill suffice.",
-            "`FRAMESHIFT` indicates a mutation in which the insertion or\ndeletion of nucleotides resulted in a frameshift change.",
-            "`FRAME_PRESERVING_INDEL` indicates a mutation in which a\nmultiple of three nucleotides has been inserted or deleted, resulting\nin no change to the reading frame of the coding sequence.",
-            "`SYNONYMOUS_SNP` indicates a single nucleotide polymorphism\nmutation that results in no amino acid change.",
-            "`NONSYNONYMOUS_SNP` indicates a single nucleotide\npolymorphism mutation that results in an amino acid change.",
-            "`STOP_GAIN` indicates a mutation that leads to the creation\nof a stop codon at the variant site. Frameshift mutations creating\ndownstream stop codons do not count as `STOP_GAIN`.",
-            "`STOP_LOSS` indicates a mutation that eliminates a\nstop codon at the variant site.",
-            "`SPLICE_SITE_DISRUPTION` indicates that this variant is\nfound in a splice site for the associated transcript, and alters the\nnormal splicing pattern."
-          ],
-          "type": "string"
-        },
-        "geneId": {
-          "description": "Google annotation ID of the gene affected by this variant. This should\nbe provided when the variant is created.",
-          "type": "string"
-        },
-        "transcriptIds": {
-          "description": "Google annotation IDs of the transcripts affected by this variant. These\nshould be provided when the variant is created.",
-          "items": {
-            "type": "string"
-          },
-          "type": "array"
-        },
-        "type": {
-          "description": "Type has been adapted from ClinVar's list of variant types.",
-          "enum": [
-            "TYPE_UNSPECIFIED",
-            "TYPE_OTHER",
-            "INSERTION",
-            "DELETION",
-            "SUBSTITUTION",
-            "SNP",
-            "STRUCTURAL",
-            "CNV"
-          ],
-          "enumDescriptions": [
-            "",
-            "`TYPE_OTHER` should be used when no other Type will suffice.\nFurther explanation of the variant type may be included in the\ninfo field.",
-            "`INSERTION` indicates an insertion.",
-            "`DELETION` indicates a deletion.",
-            "`SUBSTITUTION` indicates a block substitution of\ntwo or more nucleotides.",
-            "`SNP` indicates a single nucleotide polymorphism.",
-            "`STRUCTURAL` indicates a large structural variant,\nincluding chromosomal fusions, inversions, etc.",
-            "`CNV` indicates a variation in copy number."
-          ],
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "VariantCall": {
-      "description": "A call represents the determination of genotype with respect to a particular\nvariant. It may include associated information such as quality and phasing.\nFor example, a call might assign a probability of 0.32 to the occurrence of\na SNP named rs1234 in a call set with the name NA12345.",
-      "id": "VariantCall",
-      "properties": {
-        "callSetId": {
-          "description": "The ID of the call set this variant call belongs to.",
-          "type": "string"
-        },
-        "callSetName": {
-          "description": "The name of the call set this variant call belongs to.",
-          "type": "string"
-        },
-        "genotype": {
-          "description": "The genotype of this variant call. Each value represents either the value\nof the `referenceBases` field or a 1-based index into\n`alternateBases`. If a variant had a `referenceBases`\nvalue of `T` and an `alternateBases`\nvalue of `[\"A\", \"C\"]`, and the `genotype` was\n`[2, 1]`, that would mean the call\nrepresented the heterozygous value `CA` for this variant.\nIf the `genotype` was instead `[0, 1]`, the\nrepresented value would be `TA`. Ordering of the\ngenotype values is important if the `phaseset` is present.\nIf a genotype is not called (that is, a `.` is present in the\nGT string) -1 is returned.",
-          "items": {
-            "format": "int32",
-            "type": "integer"
-          },
-          "type": "array"
-        },
-        "genotypeLikelihood": {
-          "description": "The genotype likelihoods for this variant call. Each array entry\nrepresents how likely a specific genotype is for this call. The value\nordering is defined by the GL tag in the VCF spec.\nIf Phred-scaled genotype likelihood scores (PL) are available and\nlog10(P) genotype likelihood scores (GL) are not, PL scores are converted\nto GL scores.  If both are available, PL scores are stored in `info`.",
-          "items": {
-            "format": "double",
-            "type": "number"
-          },
-          "type": "array"
-        },
-        "info": {
-          "additionalProperties": {
-            "items": {
-              "type": "any"
-            },
-            "type": "array"
-          },
-          "description": "A map of additional variant call information. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).",
-          "type": "object"
-        },
-        "phaseset": {
-          "description": "If this field is present, this variant call's genotype ordering implies\nthe phase of the bases and is consistent with any other variant calls in\nthe same reference sequence which have the same phaseset value.\nWhen importing data from VCF, if the genotype data was phased but no\nphase set was specified this field will be set to `*`.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "VariantSet": {
-      "description": "A variant set is a collection of call sets and variants. It contains summary\nstatistics of those contents. A variant set belongs to a dataset.",
-      "id": "VariantSet",
-      "properties": {
-        "datasetId": {
-          "description": "The dataset to which this variant set belongs.",
-          "type": "string"
-        },
-        "description": {
-          "description": "A textual description of this variant set.",
-          "type": "string"
-        },
-        "id": {
-          "description": "The server-generated variant set ID, unique across all variant sets.",
-          "type": "string"
-        },
-        "metadata": {
-          "description": "The metadata associated with this variant set.",
-          "items": {
-            "$ref": "VariantSetMetadata"
-          },
-          "type": "array"
-        },
-        "name": {
-          "description": "User-specified, mutable name.",
-          "type": "string"
-        },
-        "referenceBounds": {
-          "description": "A list of all references used by the variants in a variant set\nwith associated coordinate upper bounds for each one.",
-          "items": {
-            "$ref": "ReferenceBound"
-          },
-          "type": "array"
-        },
-        "referenceSetId": {
-          "description": "The reference set to which the variant set is mapped. The reference set\ndescribes the alignment provenance of the variant set, while the\n`referenceBounds` describe the shape of the actual variant data. The\nreference set's reference names are a superset of those found in the\n`referenceBounds`.\n\nFor example, given a variant set that is mapped to the GRCh38 reference set\nand contains a single variant on reference 'X', `referenceBounds` would\ncontain only an entry for 'X', while the associated reference set\nenumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
-    "VariantSetMetadata": {
-      "description": "Metadata describes a single piece of variant call metadata.\nThese data include a top level key and either a single value string (value)\nor a list of key-value pairs (info.)\nValue and info are mutually exclusive.",
-      "id": "VariantSetMetadata",
-      "properties": {
-        "description": {
-          "description": "A textual description of this metadata.",
-          "type": "string"
-        },
-        "id": {
-          "description": "User-provided ID field, not enforced by this API.\nTwo or more pieces of structured metadata with identical\nid and key fields are considered equivalent.",
-          "type": "string"
-        },
-        "info": {
-          "additionalProperties": {
-            "items": {
-              "type": "any"
-            },
-            "type": "array"
-          },
-          "description": "Remaining structured metadata key-value pairs. This must be of the form\nmap\u003cstring, string[]\u003e (string key mapping to a list of string values).",
-          "type": "object"
-        },
-        "key": {
-          "description": "The top-level key.",
-          "type": "string"
-        },
-        "number": {
-          "description": "The number of values that can be included in a field described by this\nmetadata.",
-          "type": "string"
-        },
-        "type": {
-          "description": "The type of data. Possible types include: Integer, Float,\nFlag, Character, and String.",
-          "enum": [
-            "TYPE_UNSPECIFIED",
-            "INTEGER",
-            "FLOAT",
-            "FLAG",
-            "CHARACTER",
-            "STRING"
-          ],
-          "enumDescriptions": [
-            "",
-            "",
-            "",
-            "",
-            "",
-            ""
-          ],
-          "type": "string"
-        },
-        "value": {
-          "description": "The value field for simple metadata",
-          "type": "string"
-        }
-      },
-      "type": "object"
-    },
     "WorkerAssignedEvent": {
       "description": "An event generated after a worker VM has been assigned to run the\npipeline.",
       "id": "WorkerAssignedEvent",
diff --git a/genomics/v1/genomics-gen.go b/genomics/v1/genomics-gen.go
index 827272c..94d26ad 100644
--- a/genomics/v1/genomics-gen.go
+++ b/genomics/v1/genomics-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package genomics provides access to the Genomics API.
 //
-// See https://cloud.google.com/genomics
+// For product documentation, see: https://cloud.google.com/genomics
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/genomics/v1"
 //   ...
-//   genomicsService, err := genomics.New(oauthHttpClient)
+//   ctx := context.Background()
+//   genomicsService, err := genomics.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   genomicsService, err := genomics.NewService(ctx, option.WithScopes(genomics.GenomicsScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   genomicsService, err := genomics.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   genomicsService, err := genomics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package genomics // import "google.golang.org/api/genomics/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -52,38 +80,46 @@
 
 // OAuth2 scopes used by this API.
 const (
-	// View and manage your data in Google BigQuery
-	BigqueryScope = "https://www.googleapis.com/auth/bigquery"
-
 	// View and manage your data across Google Cloud Platform services
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 
-	// Manage your data in Google Cloud Storage
-	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
-
 	// View and manage Genomics data
 	GenomicsScope = "https://www.googleapis.com/auth/genomics"
-
-	// View Genomics data
-	GenomicsReadonlyScope = "https://www.googleapis.com/auth/genomics.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/genomics",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
 	}
 	s := &Service{client: client, BasePath: basePath}
-	s.Annotations = NewAnnotationsService(s)
-	s.Annotationsets = NewAnnotationsetsService(s)
-	s.Callsets = NewCallsetsService(s)
-	s.Datasets = NewDatasetsService(s)
 	s.Operations = NewOperationsService(s)
-	s.Readgroupsets = NewReadgroupsetsService(s)
-	s.Reads = NewReadsService(s)
-	s.References = NewReferencesService(s)
-	s.Referencesets = NewReferencesetsService(s)
-	s.Variants = NewVariantsService(s)
-	s.Variantsets = NewVariantsetsService(s)
 	return s, nil
 }
 
@@ -92,27 +128,7 @@
 	BasePath  string // API endpoint base URL
 	UserAgent string // optional additional User-Agent fragment
 
-	Annotations *AnnotationsService
-
-	Annotationsets *AnnotationsetsService
-
-	Callsets *CallsetsService
-
-	Datasets *DatasetsService
-
 	Operations *OperationsService
-
-	Readgroupsets *ReadgroupsetsService
-
-	Reads *ReadsService
-
-	References *ReferencesService
-
-	Referencesets *ReferencesetsService
-
-	Variants *VariantsService
-
-	Variantsets *VariantsetsService
 }
 
 func (s *Service) userAgent() string {
@@ -122,42 +138,6 @@
 	return googleapi.UserAgent + " " + s.UserAgent
 }
 
-func NewAnnotationsService(s *Service) *AnnotationsService {
-	rs := &AnnotationsService{s: s}
-	return rs
-}
-
-type AnnotationsService struct {
-	s *Service
-}
-
-func NewAnnotationsetsService(s *Service) *AnnotationsetsService {
-	rs := &AnnotationsetsService{s: s}
-	return rs
-}
-
-type AnnotationsetsService struct {
-	s *Service
-}
-
-func NewCallsetsService(s *Service) *CallsetsService {
-	rs := &CallsetsService{s: s}
-	return rs
-}
-
-type CallsetsService struct {
-	s *Service
-}
-
-func NewDatasetsService(s *Service) *DatasetsService {
-	rs := &DatasetsService{s: s}
-	return rs
-}
-
-type DatasetsService struct {
-	s *Service
-}
-
 func NewOperationsService(s *Service) *OperationsService {
 	rs := &OperationsService{s: s}
 	return rs
@@ -167,679 +147,11 @@
 	s *Service
 }
 
-func NewReadgroupsetsService(s *Service) *ReadgroupsetsService {
-	rs := &ReadgroupsetsService{s: s}
-	rs.Coveragebuckets = NewReadgroupsetsCoveragebucketsService(s)
-	return rs
-}
-
-type ReadgroupsetsService struct {
-	s *Service
-
-	Coveragebuckets *ReadgroupsetsCoveragebucketsService
-}
-
-func NewReadgroupsetsCoveragebucketsService(s *Service) *ReadgroupsetsCoveragebucketsService {
-	rs := &ReadgroupsetsCoveragebucketsService{s: s}
-	return rs
-}
-
-type ReadgroupsetsCoveragebucketsService struct {
-	s *Service
-}
-
-func NewReadsService(s *Service) *ReadsService {
-	rs := &ReadsService{s: s}
-	return rs
-}
-
-type ReadsService struct {
-	s *Service
-}
-
-func NewReferencesService(s *Service) *ReferencesService {
-	rs := &ReferencesService{s: s}
-	rs.Bases = NewReferencesBasesService(s)
-	return rs
-}
-
-type ReferencesService struct {
-	s *Service
-
-	Bases *ReferencesBasesService
-}
-
-func NewReferencesBasesService(s *Service) *ReferencesBasesService {
-	rs := &ReferencesBasesService{s: s}
-	return rs
-}
-
-type ReferencesBasesService struct {
-	s *Service
-}
-
-func NewReferencesetsService(s *Service) *ReferencesetsService {
-	rs := &ReferencesetsService{s: s}
-	return rs
-}
-
-type ReferencesetsService struct {
-	s *Service
-}
-
-func NewVariantsService(s *Service) *VariantsService {
-	rs := &VariantsService{s: s}
-	return rs
-}
-
-type VariantsService struct {
-	s *Service
-}
-
-func NewVariantsetsService(s *Service) *VariantsetsService {
-	rs := &VariantsetsService{s: s}
-	return rs
-}
-
-type VariantsetsService struct {
-	s *Service
-}
-
-// Annotation: An annotation describes a region of reference genome. The
-// value of an
-// annotation may be one of several canonical types, supplemented by
-// arbitrary
-// info tags. An annotation is not inherently associated with a
-// specific
-// sample or individual (though a client could choose to use annotations
-// in
-// this way). Example canonical annotation types are `GENE`
-// and
-// `VARIANT`.
-type Annotation struct {
-	// AnnotationSetId: The annotation set to which this annotation belongs.
-	AnnotationSetId string `json:"annotationSetId,omitempty"`
-
-	// End: The end position of the range on the reference, 0-based
-	// exclusive.
-	End int64 `json:"end,omitempty,string"`
-
-	// Id: The server-generated annotation ID, unique across all
-	// annotations.
-	Id string `json:"id,omitempty"`
-
-	// Info: A map of additional read alignment information. This must be of
-	// the form
-	// map<string, string[]> (string key mapping to a list of string
-	// values).
-	Info map[string][]interface{} `json:"info,omitempty"`
-
-	// Name: The display name of this annotation.
-	Name string `json:"name,omitempty"`
-
-	// ReferenceId: The ID of the Google Genomics reference associated with
-	// this range.
-	ReferenceId string `json:"referenceId,omitempty"`
-
-	// ReferenceName: The display name corresponding to the reference
-	// specified by
-	// `referenceId`, for example `chr1`, `1`, or `chrX`.
-	ReferenceName string `json:"referenceName,omitempty"`
-
-	// ReverseStrand: Whether this range refers to the reverse strand, as
-	// opposed to the forward
-	// strand. Note that regardless of this field, the start/end position of
-	// the
-	// range always refer to the forward strand.
-	ReverseStrand bool `json:"reverseStrand,omitempty"`
-
-	// Start: The start position of the range on the reference, 0-based
-	// inclusive.
-	Start int64 `json:"start,omitempty,string"`
-
-	// Transcript: A transcript value represents the assertion that a
-	// particular region of
-	// the reference genome may be transcribed as RNA. An alternative
-	// splicing
-	// pattern would be represented as a separate transcript object. This
-	// field
-	// is only set for annotations of type `TRANSCRIPT`.
-	Transcript *Transcript `json:"transcript,omitempty"`
-
-	// Type: The data type for this annotation. Must match the containing
-	// annotation
-	// set's type.
-	//
-	// Possible values:
-	//   "ANNOTATION_TYPE_UNSPECIFIED"
-	//   "GENERIC" - A `GENERIC` annotation type should be used when no
-	// other annotation
-	// type will suffice. This represents an untyped annotation of the
-	// reference
-	// genome.
-	//   "VARIANT" - A `VARIANT` annotation type.
-	//   "GENE" - A `GENE` annotation type represents the existence of a
-	// gene at the
-	// associated reference coordinates. The start coordinate is typically
-	// the
-	// gene's transcription start site and the end is typically the end of
-	// the
-	// gene's last exon.
-	//   "TRANSCRIPT" - A `TRANSCRIPT` annotation type represents the
-	// assertion that a
-	// particular region of the reference genome may be transcribed as RNA.
-	Type string `json:"type,omitempty"`
-
-	// Variant: A variant annotation, which describes the effect of a
-	// variant on the
-	// genome, the coding sequence, and/or higher level consequences at
-	// the
-	// organism level e.g. pathogenicity. This field is only set for
-	// annotations
-	// of type `VARIANT`.
-	Variant *VariantAnnotation `json:"variant,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "AnnotationSetId") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "AnnotationSetId") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Annotation) MarshalJSON() ([]byte, error) {
-	type NoMethod Annotation
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// AnnotationSet: An annotation set is a logical grouping of annotations
-// that share consistent
-// type information and provenance. Examples of annotation sets include
-// 'all
-// genes from refseq', and 'all variant annotations from ClinVar'.
-type AnnotationSet struct {
-	// DatasetId: The dataset to which this annotation set belongs.
-	DatasetId string `json:"datasetId,omitempty"`
-
-	// Id: The server-generated annotation set ID, unique across all
-	// annotation sets.
-	Id string `json:"id,omitempty"`
-
-	// Info: A map of additional read alignment information. This must be of
-	// the form
-	// map<string, string[]> (string key mapping to a list of string
-	// values).
-	Info map[string][]interface{} `json:"info,omitempty"`
-
-	// Name: The display name for this annotation set.
-	Name string `json:"name,omitempty"`
-
-	// ReferenceSetId: The ID of the reference set that defines the
-	// coordinate space for this
-	// set's annotations.
-	ReferenceSetId string `json:"referenceSetId,omitempty"`
-
-	// SourceUri: The source URI describing the file from which this
-	// annotation set was
-	// generated, if any.
-	SourceUri string `json:"sourceUri,omitempty"`
-
-	// Type: The type of annotations contained within this set.
-	//
-	// Possible values:
-	//   "ANNOTATION_TYPE_UNSPECIFIED"
-	//   "GENERIC" - A `GENERIC` annotation type should be used when no
-	// other annotation
-	// type will suffice. This represents an untyped annotation of the
-	// reference
-	// genome.
-	//   "VARIANT" - A `VARIANT` annotation type.
-	//   "GENE" - A `GENE` annotation type represents the existence of a
-	// gene at the
-	// associated reference coordinates. The start coordinate is typically
-	// the
-	// gene's transcription start site and the end is typically the end of
-	// the
-	// gene's last exon.
-	//   "TRANSCRIPT" - A `TRANSCRIPT` annotation type represents the
-	// assertion that a
-	// particular region of the reference genome may be transcribed as RNA.
-	Type string `json:"type,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "DatasetId") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "DatasetId") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *AnnotationSet) MarshalJSON() ([]byte, error) {
-	type NoMethod AnnotationSet
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type BatchCreateAnnotationsRequest struct {
-	// Annotations: The annotations to be created. At most 4096 can be
-	// specified in a single
-	// request.
-	Annotations []*Annotation `json:"annotations,omitempty"`
-
-	// RequestId: A unique request ID which enables the server to detect
-	// duplicated requests.
-	// If provided, duplicated requests will result in the same response; if
-	// not
-	// provided, duplicated requests may result in duplicated data. For a
-	// given
-	// annotation set, callers should not reuse `request_id`s when
-	// writing
-	// different batches of annotations - behavior in this case is
-	// undefined.
-	// A common approach is to use a UUID. For batch jobs where worker
-	// crashes are
-	// a possibility, consider using some unique variant of a worker or run
-	// ID.
-	RequestId string `json:"requestId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Annotations") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Annotations") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *BatchCreateAnnotationsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod BatchCreateAnnotationsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type BatchCreateAnnotationsResponse struct {
-	// Entries: The resulting per-annotation entries, ordered consistently
-	// with the
-	// original request.
-	Entries []*Entry `json:"entries,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Entries") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Entries") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *BatchCreateAnnotationsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod BatchCreateAnnotationsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// Binding: Associates `members` with a `role`.
-type Binding struct {
-	// Condition: Unimplemented. The condition that is associated with this
-	// binding.
-	// NOTE: an unsatisfied condition will not allow user access via
-	// current
-	// binding. Different bindings, including their conditions, are
-	// examined
-	// independently.
-	Condition *Expr `json:"condition,omitempty"`
-
-	// Members: Specifies the identities requesting access for a Cloud
-	// Platform resource.
-	// `members` can have the following values:
-	//
-	// * `allUsers`: A special identifier that represents anyone who is
-	//    on the internet; with or without a Google account.
-	//
-	// * `allAuthenticatedUsers`: A special identifier that represents
-	// anyone
-	//    who is authenticated with a Google account or a service
-	// account.
-	//
-	// * `user:{emailid}`: An email address that represents a specific
-	// Google
-	//    account. For example, `alice@gmail.com` .
-	//
-	//
-	// * `serviceAccount:{emailid}`: An email address that represents a
-	// service
-	//    account. For example,
-	// `my-other-app@appspot.gserviceaccount.com`.
-	//
-	// * `group:{emailid}`: An email address that represents a Google
-	// group.
-	//    For example, `admins@example.com`.
-	//
-	//
-	// * `domain:{domain}`: The G Suite domain (primary) that represents all
-	// the
-	//    users of that domain. For example, `google.com` or
-	// `example.com`.
-	//
-	//
-	Members []string `json:"members,omitempty"`
-
-	// Role: Role that is assigned to `members`.
-	// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-	Role string `json:"role,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Condition") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Condition") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Binding) MarshalJSON() ([]byte, error) {
-	type NoMethod Binding
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// CallSet: A call set is a collection of variant calls, typically for
-// one sample. It
-// belongs to a variant set.
-type CallSet struct {
-	// Created: The date this call set was created in milliseconds from the
-	// epoch.
-	Created int64 `json:"created,omitempty,string"`
-
-	// Id: The server-generated call set ID, unique across all call sets.
-	Id string `json:"id,omitempty"`
-
-	// Info: A map of additional call set information. This must be of the
-	// form
-	// map<string, string[]> (string key mapping to a list of string
-	// values).
-	Info map[string][]interface{} `json:"info,omitempty"`
-
-	// Name: The call set name.
-	Name string `json:"name,omitempty"`
-
-	// SampleId: The sample ID this call set corresponds to.
-	SampleId string `json:"sampleId,omitempty"`
-
-	// VariantSetIds: The IDs of the variant sets this call set belongs to.
-	// This field must
-	// have exactly length one, as a call set belongs to a single variant
-	// set.
-	// This field is repeated for compatibility with the
-	// [GA4GH
-	// 0.5.1
-	// API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resou
-	// rces/avro/variants.avdl#L76).
-	VariantSetIds []string `json:"variantSetIds,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Created") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Created") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *CallSet) MarshalJSON() ([]byte, error) {
-	type NoMethod CallSet
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // CancelOperationRequest: The request message for
 // Operations.CancelOperation.
 type CancelOperationRequest struct {
 }
 
-// CigarUnit: A single CIGAR operation.
-type CigarUnit struct {
-	// Possible values:
-	//   "OPERATION_UNSPECIFIED"
-	//   "ALIGNMENT_MATCH" - An alignment match indicates that a sequence
-	// can be aligned to the
-	// reference without evidence of an INDEL. Unlike the
-	// `SEQUENCE_MATCH` and `SEQUENCE_MISMATCH` operators,
-	// the `ALIGNMENT_MATCH` operator does not indicate whether
-	// the
-	// reference and read sequences are an exact match. This operator
-	// is
-	// equivalent to SAM's `M`.
-	//   "INSERT" - The insert operator indicates that the read contains
-	// evidence of bases
-	// being inserted into the reference. This operator is equivalent to
-	// SAM's
-	// `I`.
-	//   "DELETE" - The delete operator indicates that the read contains
-	// evidence of bases
-	// being deleted from the reference. This operator is equivalent to
-	// SAM's
-	// `D`.
-	//   "SKIP" - The skip operator indicates that this read skips a long
-	// segment of the
-	// reference, but the bases have not been deleted. This operator is
-	// commonly
-	// used when working with RNA-seq data, where reads may skip long
-	// segments
-	// of the reference between exons. This operator is equivalent to
-	// SAM's
-	// `N`.
-	//   "CLIP_SOFT" - The soft clip operator indicates that bases at the
-	// start/end of a read
-	// have not been considered during alignment. This may occur if the
-	// majority
-	// of a read maps, except for low quality bases at the start/end of a
-	// read.
-	// This operator is equivalent to SAM's `S`. Bases that are soft
-	// clipped will still be stored in the read.
-	//   "CLIP_HARD" - The hard clip operator indicates that bases at the
-	// start/end of a read
-	// have been omitted from this alignment. This may occur if this
-	// linear
-	// alignment is part of a chimeric alignment, or if the read has
-	// been
-	// trimmed (for example, during error correction or to trim poly-A tails
-	// for
-	// RNA-seq). This operator is equivalent to SAM's `H`.
-	//   "PAD" - The pad operator indicates that there is padding in an
-	// alignment. This
-	// operator is equivalent to SAM's `P`.
-	//   "SEQUENCE_MATCH" - This operator indicates that this portion of the
-	// aligned sequence exactly
-	// matches the reference. This operator is equivalent to SAM's `=`.
-	//   "SEQUENCE_MISMATCH" - This operator indicates that this portion of
-	// the aligned sequence is an
-	// alignment match to the reference, but a sequence mismatch. This
-	// can
-	// indicate a SNP or a read error. This operator is equivalent to
-	// SAM's
-	// `X`.
-	Operation string `json:"operation,omitempty"`
-
-	// OperationLength: The number of genomic bases that the operation runs
-	// for. Required.
-	OperationLength int64 `json:"operationLength,omitempty,string"`
-
-	// ReferenceSequence: `referenceSequence` is only used at
-	// mismatches
-	// (`SEQUENCE_MISMATCH`) and deletions (`DELETE`).
-	// Filling this field replaces SAM's MD tag. If the relevant information
-	// is
-	// not available, this field is unset.
-	ReferenceSequence string `json:"referenceSequence,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Operation") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Operation") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *CigarUnit) MarshalJSON() ([]byte, error) {
-	type NoMethod CigarUnit
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type ClinicalCondition struct {
-	// ConceptId: The MedGen concept id associated with this gene.
-	// Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-	ConceptId string `json:"conceptId,omitempty"`
-
-	// ExternalIds: The set of external IDs for this condition.
-	ExternalIds []*ExternalId `json:"externalIds,omitempty"`
-
-	// Names: A set of names for the condition.
-	Names []string `json:"names,omitempty"`
-
-	// OmimId: The OMIM id for this condition.
-	// Search for these IDs at http://omim.org/
-	OmimId string `json:"omimId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "ConceptId") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "ConceptId") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ClinicalCondition) MarshalJSON() ([]byte, error) {
-	type NoMethod ClinicalCondition
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type CodingSequence struct {
-	// End: The end of the coding sequence on this annotation's reference
-	// sequence,
-	// 0-based exclusive. Note that this position is relative to the
-	// reference
-	// start, and *not* the containing annotation start.
-	End int64 `json:"end,omitempty,string"`
-
-	// Start: The start of the coding sequence on this annotation's
-	// reference sequence,
-	// 0-based inclusive. Note that this position is relative to the
-	// reference
-	// start, and *not* the containing annotation start.
-	Start int64 `json:"start,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "End") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "End") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *CodingSequence) MarshalJSON() ([]byte, error) {
-	type NoMethod CodingSequence
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // ComputeEngine: Describes a Compute Engine resource that is being
 // managed by a running
 // pipeline.
@@ -1003,97 +315,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// CoverageBucket: A bucket over which read coverage has been
-// precomputed. A bucket corresponds
-// to a specific range of the reference sequence.
-type CoverageBucket struct {
-	// MeanCoverage: The average number of reads which are aligned to each
-	// individual
-	// reference base in this bucket.
-	MeanCoverage float64 `json:"meanCoverage,omitempty"`
-
-	// Range: The genomic coordinate range spanned by this bucket.
-	Range *Range `json:"range,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "MeanCoverage") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "MeanCoverage") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *CoverageBucket) MarshalJSON() ([]byte, error) {
-	type NoMethod CoverageBucket
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-func (s *CoverageBucket) UnmarshalJSON(data []byte) error {
-	type NoMethod CoverageBucket
-	var s1 struct {
-		MeanCoverage gensupport.JSONFloat64 `json:"meanCoverage"`
-		*NoMethod
-	}
-	s1.NoMethod = (*NoMethod)(s)
-	if err := json.Unmarshal(data, &s1); err != nil {
-		return err
-	}
-	s.MeanCoverage = float64(s1.MeanCoverage)
-	return nil
-}
-
-// Dataset: A Dataset is a collection of genomic data.
-type Dataset struct {
-	// CreateTime: The time this dataset was created, in seconds from the
-	// epoch.
-	CreateTime string `json:"createTime,omitempty"`
-
-	// Id: The server-generated dataset ID, unique across all datasets.
-	Id string `json:"id,omitempty"`
-
-	// Name: The dataset name.
-	Name string `json:"name,omitempty"`
-
-	// ProjectId: The Google Cloud project ID that this dataset belongs to.
-	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. "CreateTime") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "CreateTime") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Dataset) MarshalJSON() ([]byte, error) {
-	type NoMethod Dataset
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // DelayedEvent: An event generated whenever a resource limitation or
 // transient error
 // delays execution of a pipeline that was otherwise ready to run.
@@ -1155,36 +376,6 @@
 	googleapi.ServerResponse `json:"-"`
 }
 
-type Entry struct {
-	// Annotation: The created annotation, if creation was successful.
-	Annotation *Annotation `json:"annotation,omitempty"`
-
-	// Status: The creation status.
-	Status *Status `json:"status,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Annotation") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Annotation") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Entry) MarshalJSON() ([]byte, error) {
-	type NoMethod Entry
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // Event: Carries information about events that occur during pipeline
 // execution.
 type Event struct {
@@ -1224,299 +415,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-type Exon struct {
-	// End: The end position of the exon on this annotation's reference
-	// sequence,
-	// 0-based exclusive. Note that this is relative to the reference start,
-	// and
-	// *not* the containing annotation start.
-	End int64 `json:"end,omitempty,string"`
-
-	// Frame: The frame of this exon. Contains a value of 0, 1, or 2, which
-	// indicates
-	// the offset of the first coding base of the exon within the reading
-	// frame
-	// of the coding DNA sequence, if any. This field is dependent on
-	// the
-	// strandedness of this annotation (see
-	// Annotation.reverse_strand).
-	// For forward stranded annotations, this offset is relative to
-	// the
-	// exon.start. For reverse
-	// strand annotations, this offset is relative to the
-	// exon.end `- 1`.
-	//
-	// Unset if this exon does not intersect the coding sequence. Upon
-	// creation
-	// of a transcript, the frame must be populated for all or none of
-	// the
-	// coding exons.
-	Frame int64 `json:"frame,omitempty"`
-
-	// Start: The start position of the exon on this annotation's reference
-	// sequence,
-	// 0-based inclusive. Note that this is relative to the reference start,
-	// and
-	// **not** the containing annotation start.
-	Start int64 `json:"start,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "End") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "End") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Exon) MarshalJSON() ([]byte, error) {
-	type NoMethod Exon
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type Experiment struct {
-	// InstrumentModel: The instrument model used as part of this
-	// experiment. This maps to
-	// sequencing technology in the SAM spec.
-	InstrumentModel string `json:"instrumentModel,omitempty"`
-
-	// LibraryId: A client-supplied library identifier; a library is a
-	// collection of DNA
-	// fragments which have been prepared for sequencing from a sample.
-	// This
-	// field is important for quality control as error or bias can be
-	// introduced
-	// during sample preparation.
-	LibraryId string `json:"libraryId,omitempty"`
-
-	// PlatformUnit: The platform unit used as part of this experiment, for
-	// example
-	// flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to
-	// the
-	// @RG PU field in the SAM spec.
-	PlatformUnit string `json:"platformUnit,omitempty"`
-
-	// SequencingCenter: The sequencing center used as part of this
-	// experiment.
-	SequencingCenter string `json:"sequencingCenter,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "InstrumentModel") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "InstrumentModel") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Experiment) MarshalJSON() ([]byte, error) {
-	type NoMethod Experiment
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// ExportReadGroupSetRequest: The read group set export request.
-type ExportReadGroupSetRequest struct {
-	// ExportUri: Required. A Google Cloud Storage URI for the exported BAM
-	// file.
-	// The currently authenticated user must have write access to the new
-	// file.
-	// An error will be returned if the URI already contains data.
-	ExportUri string `json:"exportUri,omitempty"`
-
-	// ProjectId: Required. The Google Cloud project ID that owns
-	// this
-	// export. The caller must have WRITE access to this project.
-	ProjectId string `json:"projectId,omitempty"`
-
-	// ReferenceNames: The reference names to export. If this is not
-	// specified, all reference
-	// sequences, including unmapped reads, are exported.
-	// Use `*` to export only unmapped reads.
-	ReferenceNames []string `json:"referenceNames,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "ExportUri") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "ExportUri") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ExportReadGroupSetRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod ExportReadGroupSetRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// ExportVariantSetRequest: The variant data export request.
-type ExportVariantSetRequest struct {
-	// BigqueryDataset: Required. The BigQuery dataset to export data to.
-	// This dataset must already
-	// exist. Note that this is distinct from the Genomics concept of
-	// "dataset".
-	BigqueryDataset string `json:"bigqueryDataset,omitempty"`
-
-	// BigqueryTable: Required. The BigQuery table to export data to.
-	// If the table doesn't exist, it will be created. If it already exists,
-	// it
-	// will be overwritten.
-	BigqueryTable string `json:"bigqueryTable,omitempty"`
-
-	// CallSetIds: If provided, only variant call information from the
-	// specified call sets
-	// will be exported. By default all variant calls are exported.
-	CallSetIds []string `json:"callSetIds,omitempty"`
-
-	// Format: The format for the exported data.
-	//
-	// Possible values:
-	//   "FORMAT_UNSPECIFIED"
-	//   "FORMAT_BIGQUERY" - Export the data to Google BigQuery.
-	Format string `json:"format,omitempty"`
-
-	// ProjectId: Required. The Google Cloud project ID that owns the
-	// destination
-	// BigQuery dataset. The caller must have WRITE access to this project.
-	// This
-	// project will also own the resulting export job.
-	ProjectId string `json:"projectId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "BigqueryDataset") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "BigqueryDataset") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ExportVariantSetRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod ExportVariantSetRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// Expr: Represents an expression text. Example:
-//
-//     title: "User account presence"
-//     description: "Determines whether the request has a user account"
-//     expression: "size(request.user) > 0"
-type Expr struct {
-	// Description: An optional description of the expression. This is a
-	// longer text which
-	// describes the expression, e.g. when hovered over it in a UI.
-	Description string `json:"description,omitempty"`
-
-	// Expression: Textual representation of an expression in
-	// Common Expression Language syntax.
-	//
-	// The application context of the containing message determines
-	// which
-	// well-known feature set of CEL is supported.
-	Expression string `json:"expression,omitempty"`
-
-	// Location: An optional string indicating the location of the
-	// expression for error
-	// reporting, e.g. a file name and a position in the file.
-	Location string `json:"location,omitempty"`
-
-	// Title: An optional title for the expression, i.e. a short string
-	// describing
-	// its purpose. This can be used e.g. in UIs which allow to enter
-	// the
-	// expression.
-	Title string `json:"title,omitempty"`
-
-	// 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:"-"`
-
-	// NullFields is a list of field names (e.g. "Description") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Expr) MarshalJSON() ([]byte, error) {
-	type NoMethod Expr
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type ExternalId struct {
-	// Id: The id used by the source of this data.
-	Id string `json:"id,omitempty"`
-
-	// SourceName: The name of the source of this data.
-	SourceName string `json:"sourceName,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Id") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Id") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ExternalId) MarshalJSON() ([]byte, error) {
-	type NoMethod ExternalId
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // FailedEvent: An event generated when the execution of a pipeline has
 // failed. Note
 // that other events can continue to occur after this event.
@@ -1706,91 +604,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GetIamPolicyRequest: Request message for `GetIamPolicy` method.
-type GetIamPolicyRequest struct {
-}
-
-// ImportReadGroupSetsRequest: The read group set import request.
-type ImportReadGroupSetsRequest struct {
-	// DatasetId: Required. The ID of the dataset these read group sets will
-	// belong to. The
-	// caller must have WRITE permissions to this dataset.
-	DatasetId string `json:"datasetId,omitempty"`
-
-	// PartitionStrategy: The partition strategy describes how read groups
-	// are partitioned into read
-	// group sets.
-	//
-	// Possible values:
-	//   "PARTITION_STRATEGY_UNSPECIFIED"
-	//   "PER_FILE_PER_SAMPLE" - In most cases, this strategy yields one
-	// read group set per file. This is
-	// the default behavior.
-	//
-	// Allocate one read group set per file per sample. For BAM files,
-	// read
-	// groups are considered to share a sample if they have identical
-	// sample
-	// names. Furthermore, all reads for each file which do not belong to a
-	// read
-	// group, if any, will be grouped into a single read group set per-file.
-	//   "MERGE_ALL" - Includes all read groups in all imported files into a
-	// single read group
-	// set. Requires that the headers for all imported files are equivalent.
-	// All
-	// reads which do not belong to a read group, if any, will be grouped
-	// into a
-	// separate read group set.
-	PartitionStrategy string `json:"partitionStrategy,omitempty"`
-
-	// ReferenceSetId: The reference set to which the imported read group
-	// sets are aligned to, if
-	// any. The reference names of this reference set must be a superset of
-	// those
-	// found in the imported file headers. If no reference set id is
-	// provided, a
-	// best effort is made to associate with a matching reference set.
-	ReferenceSetId string `json:"referenceSetId,omitempty"`
-
-	// SourceUris: A list of URIs pointing at
-	// [BAM
-	// files](https://samtools.github.io/hts-specs/SAMv1.pdf)
-	// in Google Cloud Storage.
-	// Those URIs can include wildcards (*), but do not add or
-	// remove
-	// matching files before import has completed.
-	//
-	// Note that Google Cloud Storage object listing is only
-	// eventually
-	// consistent: files added may be not be immediately visible
-	// to
-	// everyone. Thus, if using a wildcard it is preferable not to start
-	// the import immediately after the files are created.
-	SourceUris []string `json:"sourceUris,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "DatasetId") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "DatasetId") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ImportReadGroupSetsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod ImportReadGroupSetsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // ImportReadGroupSetsResponse: The read group set import response.
 type ImportReadGroupSetsResponse struct {
 	// ReadGroupSetIds: IDs of the read group sets that were created.
@@ -1820,83 +633,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// ImportVariantsRequest: The variant data import request.
-type ImportVariantsRequest struct {
-	// Format: The format of the variant data being imported. If
-	// unspecified, defaults to
-	// to `VCF`.
-	//
-	// Possible values:
-	//   "FORMAT_UNSPECIFIED"
-	//   "FORMAT_VCF" - VCF (Variant Call Format). The VCF files may be gzip
-	// compressed. gVCF is
-	// also supported. Disclaimer: gzip VCF imports are currently much
-	// slower
-	// than equivalent uncompressed VCF imports. For this reason,
-	// uncompressed
-	// VCF is currently recommended for imports with more than 1GB
-	// combined
-	// uncompressed size, or for time sensitive imports.
-	//   "FORMAT_COMPLETE_GENOMICS" - Complete Genomics masterVarBeta
-	// format. The masterVarBeta files may
-	// be bzip2 compressed.
-	Format string `json:"format,omitempty"`
-
-	// InfoMergeConfig: A mapping between info field keys and the
-	// InfoMergeOperations to
-	// be performed on them. This is plumbed down to the
-	// MergeVariantRequests
-	// generated by the resulting import job.
-	InfoMergeConfig map[string]string `json:"infoMergeConfig,omitempty"`
-
-	// NormalizeReferenceNames: Convert reference names to the canonical
-	// representation.
-	// hg19 haploytypes (those reference names containing "_hap")
-	// are not modified in any way.
-	// All other reference names are modified according to the following
-	// rules:
-	// The reference name is capitalized.
-	// The "chr" prefix is dropped for all autosomes and sex chromsomes.
-	// For example "chr17" becomes "17" and "chrX" becomes "X".
-	// All mitochondrial chromosomes ("chrM", "chrMT", etc) become "MT".
-	NormalizeReferenceNames bool `json:"normalizeReferenceNames,omitempty"`
-
-	// SourceUris: A list of URIs referencing variant files in Google Cloud
-	// Storage. URIs can
-	// include wildcards [as
-	// described
-	// here](https://cloud.google.com/storage/docs/gsutil/addlhelp/
-	// WildcardNames).
-	// Note that recursive wildcards ('**') are not supported.
-	SourceUris []string `json:"sourceUris,omitempty"`
-
-	// VariantSetId: Required. The variant set to which variant data should
-	// be imported.
-	VariantSetId string `json:"variantSetId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Format") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Format") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ImportVariantsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod ImportVariantsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // ImportVariantsResponse: The variant data import response.
 type ImportVariantsResponse struct {
 	// CallSetIds: IDs of the call sets created during the import.
@@ -1925,189 +661,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// LinearAlignment: A linear alignment can be represented by one CIGAR
-// string. Describes the
-// mapped position and local alignment of the read to the reference.
-type LinearAlignment struct {
-	// Cigar: Represents the local alignment of this sequence (alignment
-	// matches, indels,
-	// etc) against the reference.
-	Cigar []*CigarUnit `json:"cigar,omitempty"`
-
-	// MappingQuality: The mapping quality of this alignment. Represents how
-	// likely
-	// the read maps to this position as opposed to other
-	// locations.
-	//
-	// Specifically, this is -10 log10 Pr(mapping position is wrong),
-	// rounded to
-	// the nearest integer.
-	MappingQuality int64 `json:"mappingQuality,omitempty"`
-
-	// Position: The position of this alignment.
-	Position *Position `json:"position,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Cigar") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Cigar") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *LinearAlignment) MarshalJSON() ([]byte, error) {
-	type NoMethod LinearAlignment
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type ListBasesResponse struct {
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	NextPageToken string `json:"nextPageToken,omitempty"`
-
-	// Offset: The offset position (0-based) of the given `sequence` from
-	// the
-	// start of this `Reference`. This value will differ for each page
-	// in a paginated request.
-	Offset int64 `json:"offset,omitempty,string"`
-
-	// Sequence: A substring of the bases that make up this reference.
-	Sequence string `json:"sequence,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:"-"`
-
-	// NullFields is a list of field names (e.g. "NextPageToken") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ListBasesResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod ListBasesResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type ListCoverageBucketsResponse struct {
-	// BucketWidth: The length of each coverage bucket in base pairs. Note
-	// that buckets at the
-	// end of a reference sequence may be shorter. This value is omitted if
-	// the
-	// bucket width is infinity (the default behaviour, with no range
-	// or
-	// `targetBucketWidth`).
-	BucketWidth int64 `json:"bucketWidth,omitempty,string"`
-
-	// CoverageBuckets: The coverage buckets. The list of buckets is sparse;
-	// a bucket with 0
-	// overlapping reads is not returned. A bucket never crosses more than
-	// one
-	// reference sequence. Each bucket has width `bucketWidth`, unless
-	// its end is the end of the reference sequence.
-	CoverageBuckets []*CoverageBucket `json:"coverageBuckets,omitempty"`
-
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	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. "BucketWidth") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "BucketWidth") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ListCoverageBucketsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod ListCoverageBucketsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// ListDatasetsResponse: The dataset list response.
-type ListDatasetsResponse struct {
-	// Datasets: The list of matching Datasets.
-	Datasets []*Dataset `json:"datasets,omitempty"`
-
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	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. "Datasets") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Datasets") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ListDatasetsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod ListDatasetsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // ListOperationsResponse: The response message for
 // Operations.ListOperations.
 type ListOperationsResponse struct {
@@ -2145,42 +698,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-type MergeVariantsRequest struct {
-	// InfoMergeConfig: A mapping between info field keys and the
-	// InfoMergeOperations to
-	// be performed on them.
-	InfoMergeConfig map[string]string `json:"infoMergeConfig,omitempty"`
-
-	// VariantSetId: The destination variant set.
-	VariantSetId string `json:"variantSetId,omitempty"`
-
-	// Variants: The variants to be merged with existing variants.
-	Variants []*Variant `json:"variants,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "InfoMergeConfig") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "InfoMergeConfig") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *MergeVariantsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod MergeVariantsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // Operation: This resource represents a long-running operation that is
 // the result of a
 // network API call.
@@ -2339,198 +856,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Policy: Defines an Identity and Access Management (IAM) policy. It is
-// used to
-// specify access control policies for Cloud Platform resources.
-//
-//
-// A `Policy` consists of a list of `bindings`. A `binding` binds a list
-// of
-// `members` to a `role`, where the members can be user accounts, Google
-// groups,
-// Google domains, and service accounts. A `role` is a named list of
-// permissions
-// defined by IAM.
-//
-// **JSON Example**
-//
-//     {
-//       "bindings": [
-//         {
-//           "role": "roles/owner",
-//           "members": [
-//             "user:mike@example.com",
-//             "group:admins@example.com",
-//             "domain:google.com",
-//
-// "serviceAccount:my-other-app@appspot.gserviceaccount.com"
-//           ]
-//         },
-//         {
-//           "role": "roles/viewer",
-//           "members": ["user:sean@example.com"]
-//         }
-//       ]
-//     }
-//
-// **YAML Example**
-//
-//     bindings:
-//     - members:
-//       - user:mike@example.com
-//       - group:admins@example.com
-//       - domain:google.com
-//       - serviceAccount:my-other-app@appspot.gserviceaccount.com
-//       role: roles/owner
-//     - members:
-//       - user:sean@example.com
-//       role: roles/viewer
-//
-//
-// For a description of IAM and its features, see the
-// [IAM developer's guide](https://cloud.google.com/iam/docs).
-type Policy struct {
-	// Bindings: Associates a list of `members` to a `role`.
-	// `bindings` with no members will result in an error.
-	Bindings []*Binding `json:"bindings,omitempty"`
-
-	// Etag: `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: An `etag` is returned in the response to `getIamPolicy`,
-	// and
-	// systems are expected to put that etag in the request to
-	// `setIamPolicy` to
-	// ensure that their change will be applied to the same version of the
-	// policy.
-	//
-	// If no `etag` is provided in the call to `setIamPolicy`, then the
-	// existing
-	// policy is overwritten blindly.
-	Etag string `json:"etag,omitempty"`
-
-	// Version: Deprecated.
-	Version int64 `json:"version,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Bindings") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Bindings") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Policy) MarshalJSON() ([]byte, error) {
-	type NoMethod Policy
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// Position: An abstraction for referring to a genomic position, in
-// relation to some
-// already known reference. For now, represents a genomic position as
-// a
-// reference name, a base number on that reference (0-based), and
-// a
-// determination of forward or reverse strand.
-type Position struct {
-	// Position: The 0-based offset from the start of the forward strand for
-	// that reference.
-	Position int64 `json:"position,omitempty,string"`
-
-	// ReferenceName: The name of the reference in whatever reference set is
-	// being used.
-	ReferenceName string `json:"referenceName,omitempty"`
-
-	// ReverseStrand: Whether this position is on the reverse strand, as
-	// opposed to the forward
-	// strand.
-	ReverseStrand bool `json:"reverseStrand,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Position") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Position") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Position) MarshalJSON() ([]byte, error) {
-	type NoMethod Position
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type Program struct {
-	// CommandLine: The command line used to run this program.
-	CommandLine string `json:"commandLine,omitempty"`
-
-	// Id: The user specified locally unique ID of the program. Used along
-	// with
-	// `prevProgramId` to define an ordering between programs.
-	Id string `json:"id,omitempty"`
-
-	// Name: The display name of the program. This is typically the
-	// colloquial name of
-	// the tool used, for example 'bwa' or 'picard'.
-	Name string `json:"name,omitempty"`
-
-	// PrevProgramId: The ID of the program run before this one.
-	PrevProgramId string `json:"prevProgramId,omitempty"`
-
-	// Version: The version of the program run.
-	Version string `json:"version,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "CommandLine") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "CommandLine") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Program) MarshalJSON() ([]byte, error) {
-	type NoMethod Program
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // PullStartedEvent: An event generated when the worker starts pulling
 // an image.
 type PullStartedEvent struct {
@@ -2589,619 +914,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Range: A 0-based half-open genomic coordinate range for search
-// requests.
-type Range struct {
-	// End: The end position of the range on the reference, 0-based
-	// exclusive.
-	End int64 `json:"end,omitempty,string"`
-
-	// ReferenceName: The reference sequence name, for example `chr1`,
-	// `1`, or `chrX`.
-	ReferenceName string `json:"referenceName,omitempty"`
-
-	// Start: The start position of the range on the reference, 0-based
-	// inclusive.
-	Start int64 `json:"start,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "End") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "End") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Range) MarshalJSON() ([]byte, error) {
-	type NoMethod Range
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// Read: A read alignment describes a linear alignment of a string of
-// DNA to a
-// reference sequence, in addition to metadata
-// about the fragment (the molecule of DNA sequenced) and the read (the
-// bases
-// which were read by the sequencer). A read is equivalent to a line in
-// a SAM
-// file. A read belongs to exactly one read group and exactly one
-// read group set.
-//
-// ### Reverse-stranded reads
-//
-// Mapped reads (reads having a non-null `alignment`) can be aligned to
-// either
-// the forward or the reverse strand of their associated reference.
-// Strandedness
-// of a mapped read is encoded by
-// `alignment.position.reverseStrand`.
-//
-// If we consider the reference to be a forward-stranded coordinate
-// space of
-// `[0, reference.length)` with `0` as the left-most position
-// and
-// `reference.length` as the right-most position, reads are always
-// aligned left
-// to right. That is, `alignment.position.position` always refers to
-// the
-// left-most reference coordinate and `alignment.cigar` describes the
-// alignment
-// of this read to the reference from left to right. All per-base fields
-// such as
-// `alignedSequence` and `alignedQuality` share this same
-// left-to-right
-// orientation; this is true of reads which are aligned to either
-// strand. For
-// reverse-stranded reads, this means that `alignedSequence` is the
-// reverse
-// complement of the bases that were originally reported by the
-// sequencing
-// machine.
-//
-// ### Generating a reference-aligned sequence string
-//
-// When interacting with mapped reads, it's often useful to produce a
-// string
-// representing the local alignment of the read to reference. The
-// following
-// pseudocode demonstrates one way of doing this:
-//
-//     out = ""
-//     offset = 0
-//     for c in read.alignment.cigar {
-//       switch c.operation {
-//       case "ALIGNMENT_MATCH", "SEQUENCE_MATCH", "SEQUENCE_MISMATCH":
-//         out += read.alignedSequence[offset:offset+c.operationLength]
-//         offset += c.operationLength
-//         break
-//       case "CLIP_SOFT", "INSERT":
-//         offset += c.operationLength
-//         break
-//       case "PAD":
-//         out += repeat("*", c.operationLength)
-//         break
-//       case "DELETE":
-//         out += repeat("-", c.operationLength)
-//         break
-//       case "SKIP":
-//         out += repeat(" ", c.operationLength)
-//         break
-//       case "CLIP_HARD":
-//         break
-//       }
-//     }
-//     return out
-//
-// ### Converting to SAM's CIGAR string
-//
-// The following pseudocode generates a SAM CIGAR string from
-// the
-// `cigar` field. Note that this is a lossy
-// conversion
-// (`cigar.referenceSequence` is lost).
-//
-//     cigarMap = {
-//       "ALIGNMENT_MATCH": "M",
-//       "INSERT": "I",
-//       "DELETE": "D",
-//       "SKIP": "N",
-//       "CLIP_SOFT": "S",
-//       "CLIP_HARD": "H",
-//       "PAD": "P",
-//       "SEQUENCE_MATCH": "=",
-//       "SEQUENCE_MISMATCH": "X",
-//     }
-//     cigarStr = ""
-//     for c in read.alignment.cigar {
-//       cigarStr += c.operationLength + cigarMap[c.operation]
-//     }
-//     return cigarStr
-type Read struct {
-	// AlignedQuality: The quality of the read sequence contained in this
-	// alignment record
-	// (equivalent to QUAL in SAM).
-	// `alignedSequence` and `alignedQuality` may be shorter than the full
-	// read
-	// sequence and quality. This will occur if the alignment is part of
-	// a
-	// chimeric alignment, or if the read was trimmed. When this occurs, the
-	// CIGAR
-	// for this read will begin/end with a hard clip operator that will
-	// indicate
-	// the length of the excised sequence.
-	AlignedQuality []int64 `json:"alignedQuality,omitempty"`
-
-	// AlignedSequence: The bases of the read sequence contained in this
-	// alignment record,
-	// **without CIGAR operations applied** (equivalent to SEQ in
-	// SAM).
-	// `alignedSequence` and `alignedQuality` may be
-	// shorter than the full read sequence and quality. This will occur if
-	// the
-	// alignment is part of a chimeric alignment, or if the read was
-	// trimmed. When
-	// this occurs, the CIGAR for this read will begin/end with a hard
-	// clip
-	// operator that will indicate the length of the excised sequence.
-	AlignedSequence string `json:"alignedSequence,omitempty"`
-
-	// Alignment: The linear alignment for this alignment record. This field
-	// is null for
-	// unmapped reads.
-	Alignment *LinearAlignment `json:"alignment,omitempty"`
-
-	// DuplicateFragment: The fragment is a PCR or optical duplicate (SAM
-	// flag 0x400).
-	DuplicateFragment bool `json:"duplicateFragment,omitempty"`
-
-	// FailedVendorQualityChecks: Whether this read did not pass filters,
-	// such as platform or vendor quality
-	// controls (SAM flag 0x200).
-	FailedVendorQualityChecks bool `json:"failedVendorQualityChecks,omitempty"`
-
-	// FragmentLength: The observed length of the fragment, equivalent to
-	// TLEN in SAM.
-	FragmentLength int64 `json:"fragmentLength,omitempty"`
-
-	// FragmentName: The fragment name. Equivalent to QNAME (query template
-	// name) in SAM.
-	FragmentName string `json:"fragmentName,omitempty"`
-
-	// Id: The server-generated read ID, unique across all reads. This is
-	// different
-	// from the `fragmentName`.
-	Id string `json:"id,omitempty"`
-
-	// Info: A map of additional read alignment information. This must be of
-	// the form
-	// map<string, string[]> (string key mapping to a list of string
-	// values).
-	Info map[string][]interface{} `json:"info,omitempty"`
-
-	// NextMatePosition: The mapping of the primary alignment of
-	// the
-	// `(readNumber+1)%numberReads` read in the fragment. It replaces
-	// mate position and mate strand in SAM.
-	NextMatePosition *Position `json:"nextMatePosition,omitempty"`
-
-	// NumberReads: The number of reads in the fragment (extension to SAM
-	// flag 0x1).
-	NumberReads int64 `json:"numberReads,omitempty"`
-
-	// ProperPlacement: The orientation and the distance between reads from
-	// the fragment are
-	// consistent with the sequencing protocol (SAM flag 0x2).
-	ProperPlacement bool `json:"properPlacement,omitempty"`
-
-	// ReadGroupId: The ID of the read group this read belongs to. A read
-	// belongs to exactly
-	// one read group. This is a server-generated ID which is distinct from
-	// SAM's
-	// RG tag (for that value, see
-	// ReadGroup.name).
-	ReadGroupId string `json:"readGroupId,omitempty"`
-
-	// ReadGroupSetId: The ID of the read group set this read belongs to. A
-	// read belongs to
-	// exactly one read group set.
-	ReadGroupSetId string `json:"readGroupSetId,omitempty"`
-
-	// ReadNumber: The read number in sequencing. 0-based and less than
-	// numberReads. This
-	// field replaces SAM flag 0x40 and 0x80.
-	ReadNumber int64 `json:"readNumber,omitempty"`
-
-	// SecondaryAlignment: Whether this alignment is secondary. Equivalent
-	// to SAM flag 0x100.
-	// A secondary alignment represents an alternative to the primary
-	// alignment
-	// for this read. Aligners may return secondary alignments if a read can
-	// map
-	// ambiguously to multiple coordinates in the genome. By convention,
-	// each read
-	// has one and only one alignment where both `secondaryAlignment`
-	// and `supplementaryAlignment` are false.
-	SecondaryAlignment bool `json:"secondaryAlignment,omitempty"`
-
-	// SupplementaryAlignment: Whether this alignment is supplementary.
-	// Equivalent to SAM flag 0x800.
-	// Supplementary alignments are used in the representation of a
-	// chimeric
-	// alignment. In a chimeric alignment, a read is split into
-	// multiple
-	// linear alignments that map to different reference contigs. The
-	// first
-	// linear alignment in the read will be designated as the
-	// representative
-	// alignment; the remaining linear alignments will be designated
-	// as
-	// supplementary alignments. These alignments may have different
-	// mapping
-	// quality scores. In each linear alignment in a chimeric alignment, the
-	// read
-	// will be hard clipped. The `alignedSequence` and
-	// `alignedQuality` fields in the alignment record will only
-	// represent the bases for its respective linear alignment.
-	SupplementaryAlignment bool `json:"supplementaryAlignment,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AlignedQuality") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "AlignedQuality") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Read) MarshalJSON() ([]byte, error) {
-	type NoMethod Read
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// ReadGroup: A read group is all the data that's processed the same way
-// by the sequencer.
-type ReadGroup struct {
-	// DatasetId: The dataset to which this read group belongs.
-	DatasetId string `json:"datasetId,omitempty"`
-
-	// Description: A free-form text description of this read group.
-	Description string `json:"description,omitempty"`
-
-	// Experiment: The experiment used to generate this read group.
-	Experiment *Experiment `json:"experiment,omitempty"`
-
-	// Id: The server-generated read group ID, unique for all read
-	// groups.
-	// Note: This is different than the @RG ID field in the SAM spec. For
-	// that
-	// value, see name.
-	Id string `json:"id,omitempty"`
-
-	// Info: A map of additional read group information. This must be of the
-	// form
-	// map<string, string[]> (string key mapping to a list of string
-	// values).
-	Info map[string][]interface{} `json:"info,omitempty"`
-
-	// Name: The read group name. This corresponds to the @RG ID field in
-	// the SAM spec.
-	Name string `json:"name,omitempty"`
-
-	// PredictedInsertSize: The predicted insert size of this read group.
-	// The insert size is the length
-	// the sequenced DNA fragment from end-to-end, not including the
-	// adapters.
-	PredictedInsertSize int64 `json:"predictedInsertSize,omitempty"`
-
-	// Programs: The programs used to generate this read group. Programs are
-	// always
-	// identical for all read groups within a read group set. For this
-	// reason,
-	// only the first read group in a returned set will have this
-	// field
-	// populated.
-	Programs []*Program `json:"programs,omitempty"`
-
-	// ReferenceSetId: The reference set the reads in this read group are
-	// aligned to.
-	ReferenceSetId string `json:"referenceSetId,omitempty"`
-
-	// SampleId: A client-supplied sample identifier for the reads in this
-	// read group.
-	SampleId string `json:"sampleId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "DatasetId") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "DatasetId") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ReadGroup) MarshalJSON() ([]byte, error) {
-	type NoMethod ReadGroup
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// ReadGroupSet: A read group set is a logical collection of read
-// groups, which are
-// collections of reads produced by a sequencer. A read group set
-// typically
-// models reads corresponding to one sample, sequenced one way, and
-// aligned one
-// way.
-//
-// * A read group set belongs to one dataset.
-// * A read group belongs to one read group set.
-// * A read belongs to one read group.
-type ReadGroupSet struct {
-	// DatasetId: The dataset to which this read group set belongs.
-	DatasetId string `json:"datasetId,omitempty"`
-
-	// Filename: The filename of the original source file for this read
-	// group set, if any.
-	Filename string `json:"filename,omitempty"`
-
-	// Id: The server-generated read group set ID, unique for all read group
-	// sets.
-	Id string `json:"id,omitempty"`
-
-	// Info: A map of additional read group set information.
-	Info map[string][]interface{} `json:"info,omitempty"`
-
-	// Name: The read group set name. By default this will be initialized to
-	// the sample
-	// name of the sequenced data contained in this set.
-	Name string `json:"name,omitempty"`
-
-	// ReadGroups: The read groups in this set. There are typically 1-10
-	// read groups in a read
-	// group set.
-	ReadGroups []*ReadGroup `json:"readGroups,omitempty"`
-
-	// ReferenceSetId: The reference set to which the reads in this read
-	// group set are aligned.
-	ReferenceSetId string `json:"referenceSetId,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "DatasetId") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "DatasetId") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ReadGroupSet) MarshalJSON() ([]byte, error) {
-	type NoMethod ReadGroupSet
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// Reference: A reference is a canonical assembled DNA sequence,
-// intended to act as a
-// reference coordinate space for other genomic annotations. A single
-// reference
-// might represent the human chromosome 1 or mitochandrial DNA, for
-// instance. A
-// reference belongs to one or more reference sets.
-type Reference struct {
-	// Id: The server-generated reference ID, unique across all references.
-	Id string `json:"id,omitempty"`
-
-	// Length: The length of this reference's sequence.
-	Length int64 `json:"length,omitempty,string"`
-
-	// Md5checksum: MD5 of the upper-case sequence excluding all whitespace
-	// characters (this
-	// is equivalent to SQ:M5 in SAM). This value is represented in lower
-	// case
-	// hexadecimal format.
-	Md5checksum string `json:"md5checksum,omitempty"`
-
-	// Name: The name of this reference, for example `22`.
-	Name string `json:"name,omitempty"`
-
-	// NcbiTaxonId: ID from http://www.ncbi.nlm.nih.gov/taxonomy. For
-	// example, 9606 for human.
-	NcbiTaxonId int64 `json:"ncbiTaxonId,omitempty"`
-
-	// SourceAccessions: All known corresponding accession IDs in INSDC
-	// (GenBank/ENA/DDBJ) ideally
-	// with a version number, for example `GCF_000001405.26`.
-	SourceAccessions []string `json:"sourceAccessions,omitempty"`
-
-	// SourceUri: The URI from which the sequence was obtained. Typically
-	// specifies a FASTA
-	// format file.
-	SourceUri string `json:"sourceUri,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Id") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Id") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Reference) MarshalJSON() ([]byte, error) {
-	type NoMethod Reference
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// ReferenceBound: ReferenceBound records an upper bound for the
-// starting coordinate of
-// variants in a particular reference.
-type ReferenceBound struct {
-	// ReferenceName: The name of the reference associated with this
-	// reference bound.
-	ReferenceName string `json:"referenceName,omitempty"`
-
-	// UpperBound: An upper bound (inclusive) on the starting coordinate of
-	// any
-	// variant in the reference sequence.
-	UpperBound int64 `json:"upperBound,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "ReferenceName") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "ReferenceName") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ReferenceBound) MarshalJSON() ([]byte, error) {
-	type NoMethod ReferenceBound
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// ReferenceSet: A reference set is a set of references which typically
-// comprise a reference
-// assembly for a species, such as `GRCh38` which is representative
-// of the human genome. A reference set defines a common coordinate
-// space for
-// comparing reference-aligned experimental data. A reference set
-// contains 1 or
-// more references.
-type ReferenceSet struct {
-	// AssemblyId: Public id of this reference set, such as `GRCh37`.
-	AssemblyId string `json:"assemblyId,omitempty"`
-
-	// Description: Free text description of this reference set.
-	Description string `json:"description,omitempty"`
-
-	// Id: The server-generated reference set ID, unique across all
-	// reference sets.
-	Id string `json:"id,omitempty"`
-
-	// Md5checksum: Order-independent MD5 checksum which identifies this
-	// reference set. The
-	// checksum is computed by sorting all lower case hexidecimal
-	// string
-	// `reference.md5checksum` (for all reference in this set) in
-	// ascending lexicographic order, concatenating, and taking the MD5 of
-	// that
-	// value. The resulting value is represented in lower case hexadecimal
-	// format.
-	Md5checksum string `json:"md5checksum,omitempty"`
-
-	// NcbiTaxonId: ID from http://www.ncbi.nlm.nih.gov/taxonomy (for
-	// example, 9606 for human)
-	// indicating the species which this reference set is intended to model.
-	// Note
-	// that contained references may specify a different `ncbiTaxonId`,
-	// as
-	// assemblies may contain reference sequences which do not belong to
-	// the
-	// modeled species, for example EBV in a human reference genome.
-	NcbiTaxonId int64 `json:"ncbiTaxonId,omitempty"`
-
-	// ReferenceIds: The IDs of the reference objects that are part of this
-	// set.
-	// `Reference.md5checksum` must be unique within this set.
-	ReferenceIds []string `json:"referenceIds,omitempty"`
-
-	// SourceAccessions: All known corresponding accession IDs in INSDC
-	// (GenBank/ENA/DDBJ) ideally
-	// with a version number, for example `NC_000001.11`.
-	SourceAccessions []string `json:"sourceAccessions,omitempty"`
-
-	// SourceUri: The URI from which the references were obtained.
-	SourceUri string `json:"sourceUri,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "AssemblyId") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "AssemblyId") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *ReferenceSet) MarshalJSON() ([]byte, error) {
-	type NoMethod ReferenceSet
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // RunPipelineResponse: The response to the RunPipeline method, returned
 // in the operation's result
 // field on success.
@@ -3240,934 +952,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-type SearchAnnotationSetsRequest struct {
-	// DatasetIds: Required. The dataset IDs to search within. Caller must
-	// have `READ` access
-	// to these datasets.
-	DatasetIds []string `json:"datasetIds,omitempty"`
-
-	// Name: Only return annotations sets for which a substring of the name
-	// matches this
-	// string (case insensitive).
-	Name string `json:"name,omitempty"`
-
-	// PageSize: The maximum number of results to return in a single page.
-	// If unspecified,
-	// defaults to 128. The maximum value is 1024.
-	PageSize int64 `json:"pageSize,omitempty"`
-
-	// PageToken: The continuation token, which is used to page through
-	// large result sets.
-	// To get the next page of results, set this parameter to the value
-	// of
-	// `nextPageToken` from the previous response.
-	PageToken string `json:"pageToken,omitempty"`
-
-	// ReferenceSetId: If specified, only annotation sets associated with
-	// the given reference set
-	// are returned.
-	ReferenceSetId string `json:"referenceSetId,omitempty"`
-
-	// Types: If specified, only annotation sets that have any of these
-	// types are
-	// returned.
-	//
-	// Possible values:
-	//   "ANNOTATION_TYPE_UNSPECIFIED"
-	//   "GENERIC" - A `GENERIC` annotation type should be used when no
-	// other annotation
-	// type will suffice. This represents an untyped annotation of the
-	// reference
-	// genome.
-	//   "VARIANT" - A `VARIANT` annotation type.
-	//   "GENE" - A `GENE` annotation type represents the existence of a
-	// gene at the
-	// associated reference coordinates. The start coordinate is typically
-	// the
-	// gene's transcription start site and the end is typically the end of
-	// the
-	// gene's last exon.
-	//   "TRANSCRIPT" - A `TRANSCRIPT` annotation type represents the
-	// assertion that a
-	// particular region of the reference genome may be transcribed as RNA.
-	Types []string `json:"types,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "DatasetIds") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "DatasetIds") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchAnnotationSetsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchAnnotationSetsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type SearchAnnotationSetsResponse struct {
-	// AnnotationSets: The matching annotation sets.
-	AnnotationSets []*AnnotationSet `json:"annotationSets,omitempty"`
-
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	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. "AnnotationSets") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "AnnotationSets") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchAnnotationSetsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchAnnotationSetsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type SearchAnnotationsRequest struct {
-	// AnnotationSetIds: Required. The annotation sets to search within. The
-	// caller must have
-	// `READ` access to these annotation sets.
-	// All queried annotation sets must have the same type.
-	AnnotationSetIds []string `json:"annotationSetIds,omitempty"`
-
-	// End: The end position of the range on the reference, 0-based
-	// exclusive. If
-	// referenceId or
-	// referenceName
-	// must be specified, Defaults to the length of the reference.
-	End int64 `json:"end,omitempty,string"`
-
-	// PageSize: The maximum number of results to return in a single page.
-	// If unspecified,
-	// defaults to 256. The maximum value is 2048.
-	PageSize int64 `json:"pageSize,omitempty"`
-
-	// PageToken: The continuation token, which is used to page through
-	// large result sets.
-	// To get the next page of results, set this parameter to the value
-	// of
-	// `nextPageToken` from the previous response.
-	PageToken string `json:"pageToken,omitempty"`
-
-	// ReferenceId: The ID of the reference to query.
-	ReferenceId string `json:"referenceId,omitempty"`
-
-	// ReferenceName: The name of the reference to query, within the
-	// reference set associated
-	// with this query.
-	ReferenceName string `json:"referenceName,omitempty"`
-
-	// Start: The start position of the range on the reference, 0-based
-	// inclusive. If
-	// specified,
-	// referenceId or
-	// referenceName
-	// must be specified. Defaults to 0.
-	Start int64 `json:"start,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "AnnotationSetIds") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "AnnotationSetIds") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchAnnotationsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchAnnotationsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type SearchAnnotationsResponse struct {
-	// Annotations: The matching annotations.
-	Annotations []*Annotation `json:"annotations,omitempty"`
-
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	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. "Annotations") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Annotations") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchAnnotationsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchAnnotationsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchCallSetsRequest: The call set search request.
-type SearchCallSetsRequest struct {
-	// Name: Only return call sets for which a substring of the name matches
-	// this
-	// string.
-	Name string `json:"name,omitempty"`
-
-	// PageSize: The maximum number of results to return in a single page.
-	// If unspecified,
-	// defaults to 1024.
-	PageSize int64 `json:"pageSize,omitempty"`
-
-	// PageToken: The continuation token, which is used to page through
-	// large result sets.
-	// To get the next page of results, set this parameter to the value
-	// of
-	// `nextPageToken` from the previous response.
-	PageToken string `json:"pageToken,omitempty"`
-
-	// VariantSetIds: Restrict the query to call sets within the given
-	// variant sets. At least one
-	// ID must be provided.
-	VariantSetIds []string `json:"variantSetIds,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Name") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Name") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchCallSetsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchCallSetsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchCallSetsResponse: The call set search response.
-type SearchCallSetsResponse struct {
-	// CallSets: The list of matching call sets.
-	CallSets []*CallSet `json:"callSets,omitempty"`
-
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	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. "CallSets") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "CallSets") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchCallSetsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchCallSetsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchReadGroupSetsRequest: The read group set search request.
-type SearchReadGroupSetsRequest struct {
-	// DatasetIds: Restricts this query to read group sets within the given
-	// datasets. At least
-	// one ID must be provided.
-	DatasetIds []string `json:"datasetIds,omitempty"`
-
-	// Name: Only return read group sets for which a substring of the name
-	// matches this
-	// string.
-	Name string `json:"name,omitempty"`
-
-	// PageSize: The maximum number of results to return in a single page.
-	// If unspecified,
-	// defaults to 256. The maximum value is 1024.
-	PageSize int64 `json:"pageSize,omitempty"`
-
-	// PageToken: The continuation token, which is used to page through
-	// large result sets.
-	// To get the next page of results, set this parameter to the value
-	// of
-	// `nextPageToken` from the previous response.
-	PageToken string `json:"pageToken,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "DatasetIds") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "DatasetIds") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchReadGroupSetsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchReadGroupSetsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchReadGroupSetsResponse: The read group set search response.
-type SearchReadGroupSetsResponse struct {
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	NextPageToken string `json:"nextPageToken,omitempty"`
-
-	// ReadGroupSets: The list of matching read group sets.
-	ReadGroupSets []*ReadGroupSet `json:"readGroupSets,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:"-"`
-
-	// NullFields is a list of field names (e.g. "NextPageToken") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchReadGroupSetsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchReadGroupSetsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchReadsRequest: The read search request.
-type SearchReadsRequest struct {
-	// End: The end position of the range on the reference, 0-based
-	// exclusive. If
-	// specified, `referenceName` must also be specified.
-	End int64 `json:"end,omitempty,string"`
-
-	// PageSize: The maximum number of results to return in a single page.
-	// If unspecified,
-	// defaults to 256. The maximum value is 2048.
-	PageSize int64 `json:"pageSize,omitempty"`
-
-	// PageToken: The continuation token, which is used to page through
-	// large result sets.
-	// To get the next page of results, set this parameter to the value
-	// of
-	// `nextPageToken` from the previous response.
-	PageToken string `json:"pageToken,omitempty"`
-
-	// ReadGroupIds: The IDs of the read groups within which to search for
-	// reads. All specified
-	// read groups must belong to the same read group sets. Must specify one
-	// of
-	// `readGroupSetIds` or `readGroupIds`.
-	ReadGroupIds []string `json:"readGroupIds,omitempty"`
-
-	// ReadGroupSetIds: The IDs of the read groups sets within which to
-	// search for reads. All
-	// specified read group sets must be aligned against a common set of
-	// reference
-	// sequences; this defines the genomic coordinates for the query. Must
-	// specify
-	// one of `readGroupSetIds` or `readGroupIds`.
-	ReadGroupSetIds []string `json:"readGroupSetIds,omitempty"`
-
-	// ReferenceName: The reference sequence name, for example `chr1`, `1`,
-	// or `chrX`. If set to
-	// `*`, only unmapped reads are returned. If unspecified, all reads
-	// (mapped
-	// and unmapped) are returned.
-	ReferenceName string `json:"referenceName,omitempty"`
-
-	// Start: The start position of the range on the reference, 0-based
-	// inclusive. If
-	// specified, `referenceName` must also be specified.
-	Start int64 `json:"start,omitempty,string"`
-
-	// ForceSendFields is a list of field names (e.g. "End") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "End") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchReadsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchReadsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchReadsResponse: The read search response.
-type SearchReadsResponse struct {
-	// Alignments: The list of matching alignments sorted by mapped genomic
-	// coordinate,
-	// if any, ascending in position within the same reference. Unmapped
-	// reads,
-	// which have no position, are returned contiguously and are sorted
-	// in
-	// ascending lexicographic order by fragment name.
-	Alignments []*Read `json:"alignments,omitempty"`
-
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	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. "Alignments") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Alignments") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchReadsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchReadsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type SearchReferenceSetsRequest struct {
-	// Accessions: If present, return reference sets for which a prefix of
-	// any of
-	// sourceAccessions
-	// match any of these strings. Accession numbers typically have a main
-	// number
-	// and a version, for example `NC_000001.11`.
-	Accessions []string `json:"accessions,omitempty"`
-
-	// AssemblyId: If present, return reference sets for which a substring
-	// of their
-	// `assemblyId` matches this string (case insensitive).
-	AssemblyId string `json:"assemblyId,omitempty"`
-
-	// Md5checksums: If present, return reference sets for which
-	// the
-	// md5checksum matches exactly.
-	Md5checksums []string `json:"md5checksums,omitempty"`
-
-	// PageSize: The maximum number of results to return in a single page.
-	// If unspecified,
-	// defaults to 1024. The maximum value is 4096.
-	PageSize int64 `json:"pageSize,omitempty"`
-
-	// PageToken: The continuation token, which is used to page through
-	// large result sets.
-	// To get the next page of results, set this parameter to the value
-	// of
-	// `nextPageToken` from the previous response.
-	PageToken string `json:"pageToken,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Accessions") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Accessions") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchReferenceSetsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchReferenceSetsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type SearchReferenceSetsResponse struct {
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	NextPageToken string `json:"nextPageToken,omitempty"`
-
-	// ReferenceSets: The matching references sets.
-	ReferenceSets []*ReferenceSet `json:"referenceSets,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:"-"`
-
-	// NullFields is a list of field names (e.g. "NextPageToken") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchReferenceSetsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchReferenceSetsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type SearchReferencesRequest struct {
-	// Accessions: If present, return references for which a prefix of any
-	// of
-	// sourceAccessions match
-	// any of these strings. Accession numbers typically have a main number
-	// and a
-	// version, for example `GCF_000001405.26`.
-	Accessions []string `json:"accessions,omitempty"`
-
-	// Md5checksums: If present, return references for which the
-	// md5checksum matches exactly.
-	Md5checksums []string `json:"md5checksums,omitempty"`
-
-	// PageSize: The maximum number of results to return in a single page.
-	// If unspecified,
-	// defaults to 1024. The maximum value is 4096.
-	PageSize int64 `json:"pageSize,omitempty"`
-
-	// PageToken: The continuation token, which is used to page through
-	// large result sets.
-	// To get the next page of results, set this parameter to the value
-	// of
-	// `nextPageToken` from the previous response.
-	PageToken string `json:"pageToken,omitempty"`
-
-	// ReferenceSetId: If present, return only references which belong to
-	// this reference set.
-	ReferenceSetId string `json:"referenceSetId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Accessions") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Accessions") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchReferencesRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchReferencesRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type SearchReferencesResponse struct {
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	NextPageToken string `json:"nextPageToken,omitempty"`
-
-	// References: The matching references.
-	References []*Reference `json:"references,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:"-"`
-
-	// NullFields is a list of field names (e.g. "NextPageToken") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchReferencesResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchReferencesResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchVariantSetsRequest: The search variant sets request.
-type SearchVariantSetsRequest struct {
-	// DatasetIds: Exactly one dataset ID must be provided here. Only
-	// variant sets which
-	// belong to this dataset will be returned.
-	DatasetIds []string `json:"datasetIds,omitempty"`
-
-	// PageSize: The maximum number of results to return in a single page.
-	// If unspecified,
-	// defaults to 1024.
-	PageSize int64 `json:"pageSize,omitempty"`
-
-	// PageToken: The continuation token, which is used to page through
-	// large result sets.
-	// To get the next page of results, set this parameter to the value
-	// of
-	// `nextPageToken` from the previous response.
-	PageToken string `json:"pageToken,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "DatasetIds") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "DatasetIds") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchVariantSetsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchVariantSetsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchVariantSetsResponse: The search variant sets response.
-type SearchVariantSetsResponse struct {
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	NextPageToken string `json:"nextPageToken,omitempty"`
-
-	// VariantSets: The variant sets belonging to the requested dataset.
-	VariantSets []*VariantSet `json:"variantSets,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:"-"`
-
-	// NullFields is a list of field names (e.g. "NextPageToken") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchVariantSetsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchVariantSetsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchVariantsRequest: The variant search request.
-type SearchVariantsRequest struct {
-	// CallSetIds: Only return variant calls which belong to call sets with
-	// these ids.
-	// Leaving this blank returns all variant calls. If a variant has
-	// no
-	// calls belonging to any of these call sets, it won't be returned at
-	// all.
-	CallSetIds []string `json:"callSetIds,omitempty"`
-
-	// End: The end of the window, 0-based exclusive. If unspecified or 0,
-	// defaults to
-	// the length of the reference.
-	End int64 `json:"end,omitempty,string"`
-
-	// MaxCalls: The maximum number of calls to return in a single page.
-	// Note that this
-	// limit may be exceeded in the event that a matching variant contains
-	// more
-	// calls than the requested maximum. If unspecified, defaults to 5000.
-	// The
-	// maximum value is 10000.
-	MaxCalls int64 `json:"maxCalls,omitempty"`
-
-	// PageSize: The maximum number of variants to return in a single page.
-	// If unspecified,
-	// defaults to 5000. The maximum value is 10000.
-	PageSize int64 `json:"pageSize,omitempty"`
-
-	// PageToken: The continuation token, which is used to page through
-	// large result sets.
-	// To get the next page of results, set this parameter to the value
-	// of
-	// `nextPageToken` from the previous response.
-	PageToken string `json:"pageToken,omitempty"`
-
-	// ReferenceName: Required. Only return variants in this reference
-	// sequence.
-	ReferenceName string `json:"referenceName,omitempty"`
-
-	// Start: The beginning of the window (0-based, inclusive) for
-	// which
-	// overlapping variants should be returned. If unspecified, defaults to
-	// 0.
-	Start int64 `json:"start,omitempty,string"`
-
-	// VariantName: Only return variants which have exactly this name.
-	VariantName string `json:"variantName,omitempty"`
-
-	// VariantSetIds: At most one variant set ID must be provided. Only
-	// variants from this
-	// variant set will be returned. If omitted, a call set id must be
-	// included in
-	// the request.
-	VariantSetIds []string `json:"variantSetIds,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "CallSetIds") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "CallSetIds") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchVariantsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchVariantsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SearchVariantsResponse: The variant search response.
-type SearchVariantsResponse struct {
-	// NextPageToken: The continuation token, which is used to page through
-	// large result sets.
-	// Provide this value in a subsequent request to return the next page
-	// of
-	// results. This field will be empty if there aren't any additional
-	// results.
-	NextPageToken string `json:"nextPageToken,omitempty"`
-
-	// Variants: The list of matching Variants.
-	Variants []*Variant `json:"variants,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:"-"`
-
-	// NullFields is a list of field names (e.g. "NextPageToken") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SearchVariantsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod SearchVariantsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// SetIamPolicyRequest: Request message for `SetIamPolicy` method.
-type SetIamPolicyRequest struct {
-	// Policy: REQUIRED: The complete policy to be applied to the
-	// `resource`. The size of
-	// the policy is limited to a few 10s of KB. An empty policy is a
-	// valid policy but certain Cloud Platform services (such as
-	// Projects)
-	// might reject them.
-	Policy *Policy `json:"policy,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Policy") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Policy") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *SetIamPolicyRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod SetIamPolicyRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // Status: The `Status` type defines a logical error model that is
 // suitable for
 // different programming environments, including REST APIs and RPC APIs.
@@ -4287,161 +1071,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// TestIamPermissionsRequest: Request message for `TestIamPermissions`
-// method.
-type TestIamPermissionsRequest struct {
-	// Permissions: REQUIRED: The set of permissions to check for the
-	// 'resource'.
-	// Permissions with wildcards (such as '*' or 'storage.*') are not
-	// allowed.
-	// Allowed permissions are&#58;
-	//
-	// * `genomics.datasets.create`
-	// * `genomics.datasets.delete`
-	// * `genomics.datasets.get`
-	// * `genomics.datasets.list`
-	// * `genomics.datasets.update`
-	// * `genomics.datasets.getIamPolicy`
-	// * `genomics.datasets.setIamPolicy`
-	Permissions []string `json:"permissions,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "Permissions") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Permissions") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *TestIamPermissionsRequest) MarshalJSON() ([]byte, error) {
-	type NoMethod TestIamPermissionsRequest
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// TestIamPermissionsResponse: Response message for `TestIamPermissions`
-// method.
-type TestIamPermissionsResponse struct {
-	// Permissions: A subset of `TestPermissionsRequest.permissions` that
-	// the caller is
-	// allowed.
-	Permissions []string `json:"permissions,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "Permissions") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "Permissions") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod TestIamPermissionsResponse
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// Transcript: A transcript represents the assertion that a particular
-// region of the
-// reference genome may be transcribed as RNA.
-type Transcript struct {
-	// CodingSequence: The range of the coding sequence for this transcript,
-	// if any. To determine
-	// the exact ranges of coding sequence, intersect this range with those
-	// of the
-	// exons, if any. If there are any
-	// exons, the
-	// codingSequence must start
-	// and end within them.
-	//
-	// Note that in some cases, the reference genome will not exactly match
-	// the
-	// observed mRNA transcript e.g. due to variance in the source genome
-	// from
-	// reference. In these cases,
-	// exon.frame will not necessarily
-	// match the expected reference reading frame and coding exon reference
-	// bases
-	// cannot necessarily be concatenated to produce the original transcript
-	// mRNA.
-	CodingSequence *CodingSequence `json:"codingSequence,omitempty"`
-
-	// Exons: The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that
-	// compose
-	// this transcript. This field should be unset for genomes where
-	// transcript
-	// splicing does not occur, for example prokaryotes.
-	//
-	// Introns are regions of the transcript that are not included in
-	// the
-	// spliced RNA product. Though not explicitly modeled here, intron
-	// ranges can
-	// be deduced; all regions of this transcript that are not exons are
-	// introns.
-	//
-	// Exonic sequences do not necessarily code for a translational
-	// product
-	// (amino acids). Only the regions of exons bounded by
-	// the
-	// codingSequence correspond
-	// to coding DNA sequence.
-	//
-	// Exons are ordered by start position and may not overlap.
-	Exons []*Exon `json:"exons,omitempty"`
-
-	// GeneId: The annotation ID of the gene from which this transcript is
-	// transcribed.
-	GeneId string `json:"geneId,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "CodingSequence") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "CodingSequence") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Transcript) MarshalJSON() ([]byte, error) {
-	type NoMethod Transcript
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-type UndeleteDatasetRequest struct {
-}
-
 // UnexpectedExitStatusEvent: An event generated when the execution of a
 // container results in a
 // non-zero exit status that was not otherwise ignored. Execution
@@ -4479,475 +1108,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// Variant: A variant represents a change in DNA sequence relative to a
-// reference
-// sequence. For example, a variant could represent a SNP or an
-// insertion.
-// Variants belong to a variant set.
-//
-// Each of the calls on a variant represent a determination of genotype
-// with
-// respect to that variant. For example, a call might assign probability
-// of 0.32
-// to the occurrence of a SNP named rs1234 in a sample named NA12345. A
-// call
-// belongs to a call set, which contains related calls typically from
-// one
-// sample.
-type Variant struct {
-	// AlternateBases: The bases that appear instead of the reference bases.
-	AlternateBases []string `json:"alternateBases,omitempty"`
-
-	// Calls: The variant calls for this particular variant. Each one
-	// represents the
-	// determination of genotype with respect to this variant.
-	Calls []*VariantCall `json:"calls,omitempty"`
-
-	// Created: The date this variant was created, in milliseconds from the
-	// epoch.
-	Created int64 `json:"created,omitempty,string"`
-
-	// End: The end position (0-based) of this variant. This corresponds to
-	// the first
-	// base after the last base in the reference allele. So, the length
-	// of
-	// the reference allele is (end - start). This is useful for
-	// variants
-	// that don't explicitly give alternate bases, for example large
-	// deletions.
-	End int64 `json:"end,omitempty,string"`
-
-	// Filter: A list of filters (normally quality filters) this variant has
-	// failed.
-	// `PASS` indicates this variant has passed all filters.
-	Filter []string `json:"filter,omitempty"`
-
-	// Id: The server-generated variant ID, unique across all variants.
-	Id string `json:"id,omitempty"`
-
-	// Info: A map of additional variant information. This must be of the
-	// form
-	// map<string, string[]> (string key mapping to a list of string
-	// values).
-	Info map[string][]interface{} `json:"info,omitempty"`
-
-	// Names: Names for the variant, for example a RefSNP ID.
-	Names []string `json:"names,omitempty"`
-
-	// Quality: A measure of how likely this variant is to be real.
-	// A higher value is better.
-	Quality float64 `json:"quality,omitempty"`
-
-	// ReferenceBases: The reference bases for this variant. They start at
-	// the given
-	// position.
-	ReferenceBases string `json:"referenceBases,omitempty"`
-
-	// ReferenceName: The reference on which this variant occurs.
-	// (such as `chr20` or `X`)
-	ReferenceName string `json:"referenceName,omitempty"`
-
-	// Start: The position at which this variant occurs (0-based).
-	// This corresponds to the first base of the string of reference bases.
-	Start int64 `json:"start,omitempty,string"`
-
-	// VariantSetId: The ID of the variant set this variant belongs to.
-	VariantSetId string `json:"variantSetId,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "AlternateBases") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "AlternateBases") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *Variant) MarshalJSON() ([]byte, error) {
-	type NoMethod Variant
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-func (s *Variant) UnmarshalJSON(data []byte) error {
-	type NoMethod Variant
-	var s1 struct {
-		Quality gensupport.JSONFloat64 `json:"quality"`
-		*NoMethod
-	}
-	s1.NoMethod = (*NoMethod)(s)
-	if err := json.Unmarshal(data, &s1); err != nil {
-		return err
-	}
-	s.Quality = float64(s1.Quality)
-	return nil
-}
-
-type VariantAnnotation struct {
-	// AlternateBases: The alternate allele for this variant. If multiple
-	// alternate alleles
-	// exist at this location, create a separate variant for each one, as
-	// they
-	// may represent distinct conditions.
-	AlternateBases string `json:"alternateBases,omitempty"`
-
-	// ClinicalSignificance: Describes the clinical significance of a
-	// variant.
-	// It is adapted from the ClinVar controlled vocabulary for
-	// clinical
-	// significance described
-	// at:
-	// http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-	//
-	// Possible values:
-	//   "CLINICAL_SIGNIFICANCE_UNSPECIFIED"
-	//   "CLINICAL_SIGNIFICANCE_OTHER" - `OTHER` should be used when no
-	// other clinical significance
-	// value will suffice.
-	//   "UNCERTAIN"
-	//   "BENIGN"
-	//   "LIKELY_BENIGN"
-	//   "LIKELY_PATHOGENIC"
-	//   "PATHOGENIC"
-	//   "DRUG_RESPONSE"
-	//   "HISTOCOMPATIBILITY"
-	//   "CONFERS_SENSITIVITY"
-	//   "RISK_FACTOR"
-	//   "ASSOCIATION"
-	//   "PROTECTIVE"
-	//   "MULTIPLE_REPORTED" - `MULTIPLE_REPORTED` should be used when
-	// multiple clinical
-	// signficances are reported for a variant. The original
-	// clinical
-	// significance values may be provided in the `info` field.
-	ClinicalSignificance string `json:"clinicalSignificance,omitempty"`
-
-	// Conditions: The set of conditions associated with this variant.
-	// A condition describes the way a variant influences human health.
-	Conditions []*ClinicalCondition `json:"conditions,omitempty"`
-
-	// Effect: Effect of the variant on the coding sequence.
-	//
-	// Possible values:
-	//   "EFFECT_UNSPECIFIED"
-	//   "EFFECT_OTHER" - `EFFECT_OTHER` should be used when no other
-	// Effect
-	// will suffice.
-	//   "FRAMESHIFT" - `FRAMESHIFT` indicates a mutation in which the
-	// insertion or
-	// deletion of nucleotides resulted in a frameshift change.
-	//   "FRAME_PRESERVING_INDEL" - `FRAME_PRESERVING_INDEL` indicates a
-	// mutation in which a
-	// multiple of three nucleotides has been inserted or deleted,
-	// resulting
-	// in no change to the reading frame of the coding sequence.
-	//   "SYNONYMOUS_SNP" - `SYNONYMOUS_SNP` indicates a single nucleotide
-	// polymorphism
-	// mutation that results in no amino acid change.
-	//   "NONSYNONYMOUS_SNP" - `NONSYNONYMOUS_SNP` indicates a single
-	// nucleotide
-	// polymorphism mutation that results in an amino acid change.
-	//   "STOP_GAIN" - `STOP_GAIN` indicates a mutation that leads to the
-	// creation
-	// of a stop codon at the variant site. Frameshift mutations
-	// creating
-	// downstream stop codons do not count as `STOP_GAIN`.
-	//   "STOP_LOSS" - `STOP_LOSS` indicates a mutation that eliminates
-	// a
-	// stop codon at the variant site.
-	//   "SPLICE_SITE_DISRUPTION" - `SPLICE_SITE_DISRUPTION` indicates that
-	// this variant is
-	// found in a splice site for the associated transcript, and alters
-	// the
-	// normal splicing pattern.
-	Effect string `json:"effect,omitempty"`
-
-	// GeneId: Google annotation ID of the gene affected by this variant.
-	// This should
-	// be provided when the variant is created.
-	GeneId string `json:"geneId,omitempty"`
-
-	// TranscriptIds: Google annotation IDs of the transcripts affected by
-	// this variant. These
-	// should be provided when the variant is created.
-	TranscriptIds []string `json:"transcriptIds,omitempty"`
-
-	// Type: Type has been adapted from ClinVar's list of variant types.
-	//
-	// Possible values:
-	//   "TYPE_UNSPECIFIED"
-	//   "TYPE_OTHER" - `TYPE_OTHER` should be used when no other Type will
-	// suffice.
-	// Further explanation of the variant type may be included in the
-	// info field.
-	//   "INSERTION" - `INSERTION` indicates an insertion.
-	//   "DELETION" - `DELETION` indicates a deletion.
-	//   "SUBSTITUTION" - `SUBSTITUTION` indicates a block substitution
-	// of
-	// two or more nucleotides.
-	//   "SNP" - `SNP` indicates a single nucleotide polymorphism.
-	//   "STRUCTURAL" - `STRUCTURAL` indicates a large structural
-	// variant,
-	// including chromosomal fusions, inversions, etc.
-	//   "CNV" - `CNV` indicates a variation in copy number.
-	Type string `json:"type,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "AlternateBases") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "AlternateBases") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
-	// server as null. It is an error if a field in this list has a
-	// non-empty value. This may be used to include null fields in Patch
-	// requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *VariantAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod VariantAnnotation
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// VariantCall: A call represents the determination of genotype with
-// respect to a particular
-// variant. It may include associated information such as quality and
-// phasing.
-// For example, a call might assign a probability of 0.32 to the
-// occurrence of
-// a SNP named rs1234 in a call set with the name NA12345.
-type VariantCall struct {
-	// CallSetId: The ID of the call set this variant call belongs to.
-	CallSetId string `json:"callSetId,omitempty"`
-
-	// CallSetName: The name of the call set this variant call belongs to.
-	CallSetName string `json:"callSetName,omitempty"`
-
-	// Genotype: The genotype of this variant call. Each value represents
-	// either the value
-	// of the `referenceBases` field or a 1-based index
-	// into
-	// `alternateBases`. If a variant had a `referenceBases`
-	// value of `T` and an `alternateBases`
-	// value of `["A", "C"]`, and the `genotype` was
-	// `[2, 1]`, that would mean the call
-	// represented the heterozygous value `CA` for this variant.
-	// If the `genotype` was instead `[0, 1]`, the
-	// represented value would be `TA`. Ordering of the
-	// genotype values is important if the `phaseset` is present.
-	// If a genotype is not called (that is, a `.` is present in the
-	// GT string) -1 is returned.
-	Genotype []int64 `json:"genotype,omitempty"`
-
-	// GenotypeLikelihood: The genotype likelihoods for this variant call.
-	// Each array entry
-	// represents how likely a specific genotype is for this call. The
-	// value
-	// ordering is defined by the GL tag in the VCF spec.
-	// If Phred-scaled genotype likelihood scores (PL) are available
-	// and
-	// log10(P) genotype likelihood scores (GL) are not, PL scores are
-	// converted
-	// to GL scores.  If both are available, PL scores are stored in `info`.
-	GenotypeLikelihood []float64 `json:"genotypeLikelihood,omitempty"`
-
-	// Info: A map of additional variant call information. This must be of
-	// the form
-	// map<string, string[]> (string key mapping to a list of string
-	// values).
-	Info map[string][]interface{} `json:"info,omitempty"`
-
-	// Phaseset: If this field is present, this variant call's genotype
-	// ordering implies
-	// the phase of the bases and is consistent with any other variant calls
-	// in
-	// the same reference sequence which have the same phaseset value.
-	// When importing data from VCF, if the genotype data was phased but
-	// no
-	// phase set was specified this field will be set to `*`.
-	Phaseset string `json:"phaseset,omitempty"`
-
-	// ForceSendFields is a list of field names (e.g. "CallSetId") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "CallSetId") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *VariantCall) MarshalJSON() ([]byte, error) {
-	type NoMethod VariantCall
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// VariantSet: A variant set is a collection of call sets and variants.
-// It contains summary
-// statistics of those contents. A variant set belongs to a dataset.
-type VariantSet struct {
-	// DatasetId: The dataset to which this variant set belongs.
-	DatasetId string `json:"datasetId,omitempty"`
-
-	// Description: A textual description of this variant set.
-	Description string `json:"description,omitempty"`
-
-	// Id: The server-generated variant set ID, unique across all variant
-	// sets.
-	Id string `json:"id,omitempty"`
-
-	// Metadata: The metadata associated with this variant set.
-	Metadata []*VariantSetMetadata `json:"metadata,omitempty"`
-
-	// Name: User-specified, mutable name.
-	Name string `json:"name,omitempty"`
-
-	// ReferenceBounds: A list of all references used by the variants in a
-	// variant set
-	// with associated coordinate upper bounds for each one.
-	ReferenceBounds []*ReferenceBound `json:"referenceBounds,omitempty"`
-
-	// ReferenceSetId: The reference set to which the variant set is mapped.
-	// The reference set
-	// describes the alignment provenance of the variant set, while
-	// the
-	// `referenceBounds` describe the shape of the actual variant data.
-	// The
-	// reference set's reference names are a superset of those found in
-	// the
-	// `referenceBounds`.
-	//
-	// For example, given a variant set that is mapped to the GRCh38
-	// reference set
-	// and contains a single variant on reference 'X', `referenceBounds`
-	// would
-	// contain only an entry for 'X', while the associated reference
-	// set
-	// enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-	ReferenceSetId string `json:"referenceSetId,omitempty"`
-
-	// ServerResponse contains the HTTP response code and headers from the
-	// server.
-	googleapi.ServerResponse `json:"-"`
-
-	// ForceSendFields is a list of field names (e.g. "DatasetId") to
-	// unconditionally include in API requests. By default, fields with
-	// empty values are omitted from API requests. However, any non-pointer,
-	// non-interface field appearing in ForceSendFields will be sent to the
-	// server regardless of whether the field is empty or not. This may be
-	// used to include empty fields in Patch requests.
-	ForceSendFields []string `json:"-"`
-
-	// NullFields is a list of field names (e.g. "DatasetId") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *VariantSet) MarshalJSON() ([]byte, error) {
-	type NoMethod VariantSet
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
-// VariantSetMetadata: Metadata describes a single piece of variant call
-// metadata.
-// These data include a top level key and either a single value string
-// (value)
-// or a list of key-value pairs (info.)
-// Value and info are mutually exclusive.
-type VariantSetMetadata struct {
-	// Description: A textual description of this metadata.
-	Description string `json:"description,omitempty"`
-
-	// Id: User-provided ID field, not enforced by this API.
-	// Two or more pieces of structured metadata with identical
-	// id and key fields are considered equivalent.
-	Id string `json:"id,omitempty"`
-
-	// Info: Remaining structured metadata key-value pairs. This must be of
-	// the form
-	// map<string, string[]> (string key mapping to a list of string
-	// values).
-	Info map[string][]interface{} `json:"info,omitempty"`
-
-	// Key: The top-level key.
-	Key string `json:"key,omitempty"`
-
-	// Number: The number of values that can be included in a field
-	// described by this
-	// metadata.
-	Number string `json:"number,omitempty"`
-
-	// Type: The type of data. Possible types include: Integer, Float,
-	// Flag, Character, and String.
-	//
-	// Possible values:
-	//   "TYPE_UNSPECIFIED"
-	//   "INTEGER"
-	//   "FLOAT"
-	//   "FLAG"
-	//   "CHARACTER"
-	//   "STRING"
-	Type string `json:"type,omitempty"`
-
-	// Value: The value field for simple metadata
-	Value string `json:"value,omitempty"`
-
-	// 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:"-"`
-
-	// NullFields is a list of field names (e.g. "Description") to include
-	// in API requests with the JSON null value. By default, fields with
-	// empty values are omitted from API requests. However, any field with
-	// an empty value appearing in NullFields will be sent to the server as
-	// null. It is an error if a field in this list has a non-empty value.
-	// This may be used to include null fields in Patch requests.
-	NullFields []string `json:"-"`
-}
-
-func (s *VariantSetMetadata) MarshalJSON() ([]byte, error) {
-	type NoMethod VariantSetMetadata
-	raw := NoMethod(*s)
-	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
-}
-
 // WorkerAssignedEvent: An event generated after a worker VM has been
 // assigned to run the
 // pipeline.
@@ -5014,3668 +1174,6 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// method id "genomics.annotations.batchCreate":
-
-type AnnotationsBatchCreateCall struct {
-	s                             *Service
-	batchcreateannotationsrequest *BatchCreateAnnotationsRequest
-	urlParams_                    gensupport.URLParams
-	ctx_                          context.Context
-	header_                       http.Header
-}
-
-// BatchCreate: Creates one or more new annotations atomically. All
-// annotations must
-// belong to the same annotation set. Caller must have WRITE
-// permission for this annotation set. For optimal performance,
-// batch
-// positionally adjacent annotations together.
-//
-// If the request has a systemic issue, such as an attempt to write
-// to
-// an inaccessible annotation set, the entire RPC will fail accordingly.
-// For
-// lesser data issues, when possible an error will be isolated to
-// the
-// corresponding batch entry in the response; the remaining well
-// formed
-// annotations will be created normally.
-//
-// For details on the requirements for each individual annotation
-// resource,
-// see
-// CreateAnnotation.
-func (r *AnnotationsService) BatchCreate(batchcreateannotationsrequest *BatchCreateAnnotationsRequest) *AnnotationsBatchCreateCall {
-	c := &AnnotationsBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.batchcreateannotationsrequest = batchcreateannotationsrequest
-	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 *AnnotationsBatchCreateCall) Fields(s ...googleapi.Field) *AnnotationsBatchCreateCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsBatchCreateCall) Context(ctx context.Context) *AnnotationsBatchCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsBatchCreateCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsBatchCreateCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchcreateannotationsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotations:batchCreate")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotations.batchCreate" call.
-// Exactly one of *BatchCreateAnnotationsResponse or error will be
-// non-nil. Any non-2xx status code is an error. Response headers are in
-// either *BatchCreateAnnotationsResponse.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 *AnnotationsBatchCreateCall) Do(opts ...googleapi.CallOption) (*BatchCreateAnnotationsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &BatchCreateAnnotationsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates one or more new annotations atomically. All annotations must\nbelong to the same annotation set. Caller must have WRITE\npermission for this annotation set. For optimal performance, batch\npositionally adjacent annotations together.\n\nIf the request has a systemic issue, such as an attempt to write to\nan inaccessible annotation set, the entire RPC will fail accordingly. For\nlesser data issues, when possible an error will be isolated to the\ncorresponding batch entry in the response; the remaining well formed\nannotations will be created normally.\n\nFor details on the requirements for each individual annotation resource,\nsee\nCreateAnnotation.",
-	//   "flatPath": "v1/annotations:batchCreate",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.annotations.batchCreate",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/annotations:batchCreate",
-	//   "request": {
-	//     "$ref": "BatchCreateAnnotationsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "BatchCreateAnnotationsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.annotations.create":
-
-type AnnotationsCreateCall struct {
-	s          *Service
-	annotation *Annotation
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Create: Creates a new annotation. Caller must have WRITE
-// permission
-// for the associated annotation set.
-//
-// The following fields are required:
-//
-// * annotationSetId
-// * referenceName or
-//   referenceId
-//
-// ### Transcripts
-//
-// For annotations of type TRANSCRIPT, the following fields
-// of
-// transcript must be provided:
-//
-// * exons.start
-// * exons.end
-//
-// All other fields may be optionally specified, unless documented as
-// being
-// server-generated (for example, the `id` field). The annotated
-// range must be no longer than 100Mbp (mega base pairs). See
-// the
-// Annotation resource
-// for additional restrictions on each field.
-func (r *AnnotationsService) Create(annotation *Annotation) *AnnotationsCreateCall {
-	c := &AnnotationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.annotation = annotation
-	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 *AnnotationsCreateCall) Fields(s ...googleapi.Field) *AnnotationsCreateCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsCreateCall) Context(ctx context.Context) *AnnotationsCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsCreateCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsCreateCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.annotation)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotations")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotations.create" call.
-// Exactly one of *Annotation or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *Annotation.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 *AnnotationsCreateCall) Do(opts ...googleapi.CallOption) (*Annotation, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Annotation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates a new annotation. Caller must have WRITE permission\nfor the associated annotation set.\n\nThe following fields are required:\n\n* annotationSetId\n* referenceName or\n  referenceId\n\n### Transcripts\n\nFor annotations of type TRANSCRIPT, the following fields of\ntranscript must be provided:\n\n* exons.start\n* exons.end\n\nAll other fields may be optionally specified, unless documented as being\nserver-generated (for example, the `id` field). The annotated\nrange must be no longer than 100Mbp (mega base pairs). See the\nAnnotation resource\nfor additional restrictions on each field.",
-	//   "flatPath": "v1/annotations",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.annotations.create",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/annotations",
-	//   "request": {
-	//     "$ref": "Annotation"
-	//   },
-	//   "response": {
-	//     "$ref": "Annotation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.annotations.delete":
-
-type AnnotationsDeleteCall struct {
-	s            *Service
-	annotationId string
-	urlParams_   gensupport.URLParams
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Delete: Deletes an annotation. Caller must have WRITE permission
-// for
-// the associated annotation set.
-func (r *AnnotationsService) Delete(annotationId string) *AnnotationsDeleteCall {
-	c := &AnnotationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.annotationId = annotationId
-	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 *AnnotationsDeleteCall) Fields(s ...googleapi.Field) *AnnotationsDeleteCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsDeleteCall) Context(ctx context.Context) *AnnotationsDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsDeleteCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsDeleteCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotations/{annotationId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("DELETE", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"annotationId": c.annotationId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotations.delete" call.
-// Exactly one of *Empty or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Empty.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 *AnnotationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Empty{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Deletes an annotation. Caller must have WRITE permission for\nthe associated annotation set.",
-	//   "flatPath": "v1/annotations/{annotationId}",
-	//   "httpMethod": "DELETE",
-	//   "id": "genomics.annotations.delete",
-	//   "parameterOrder": [
-	//     "annotationId"
-	//   ],
-	//   "parameters": {
-	//     "annotationId": {
-	//       "description": "The ID of the annotation to be deleted.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/annotations/{annotationId}",
-	//   "response": {
-	//     "$ref": "Empty"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.annotations.get":
-
-type AnnotationsGetCall struct {
-	s            *Service
-	annotationId string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Get: Gets an annotation. Caller must have READ permission
-// for the associated annotation set.
-func (r *AnnotationsService) Get(annotationId string) *AnnotationsGetCall {
-	c := &AnnotationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.annotationId = annotationId
-	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 *AnnotationsGetCall) Fields(s ...googleapi.Field) *AnnotationsGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *AnnotationsGetCall) IfNoneMatch(entityTag string) *AnnotationsGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsGetCall) Context(ctx context.Context) *AnnotationsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotations/{annotationId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"annotationId": c.annotationId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotations.get" call.
-// Exactly one of *Annotation or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *Annotation.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 *AnnotationsGetCall) Do(opts ...googleapi.CallOption) (*Annotation, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Annotation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets an annotation. Caller must have READ permission\nfor the associated annotation set.",
-	//   "flatPath": "v1/annotations/{annotationId}",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.annotations.get",
-	//   "parameterOrder": [
-	//     "annotationId"
-	//   ],
-	//   "parameters": {
-	//     "annotationId": {
-	//       "description": "The ID of the annotation to be retrieved.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/annotations/{annotationId}",
-	//   "response": {
-	//     "$ref": "Annotation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.annotations.search":
-
-type AnnotationsSearchCall struct {
-	s                        *Service
-	searchannotationsrequest *SearchAnnotationsRequest
-	urlParams_               gensupport.URLParams
-	ctx_                     context.Context
-	header_                  http.Header
-}
-
-// Search: Searches for annotations that match the given criteria.
-// Results are
-// ordered by genomic coordinate (by reference sequence, then
-// position).
-// Annotations with equivalent genomic coordinates are returned in
-// an
-// unspecified order. This order is consistent, such that two queries
-// for the
-// same content (regardless of page size) yield annotations in the same
-// order
-// across their respective streams of paginated responses. Caller must
-// have
-// READ permission for the queried annotation sets.
-func (r *AnnotationsService) Search(searchannotationsrequest *SearchAnnotationsRequest) *AnnotationsSearchCall {
-	c := &AnnotationsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.searchannotationsrequest = searchannotationsrequest
-	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 *AnnotationsSearchCall) Fields(s ...googleapi.Field) *AnnotationsSearchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsSearchCall) Context(ctx context.Context) *AnnotationsSearchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsSearchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsSearchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchannotationsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotations/search")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotations.search" call.
-// Exactly one of *SearchAnnotationsResponse or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *SearchAnnotationsResponse.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 *AnnotationsSearchCall) Do(opts ...googleapi.CallOption) (*SearchAnnotationsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &SearchAnnotationsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Searches for annotations that match the given criteria. Results are\nordered by genomic coordinate (by reference sequence, then position).\nAnnotations with equivalent genomic coordinates are returned in an\nunspecified order. This order is consistent, such that two queries for the\nsame content (regardless of page size) yield annotations in the same order\nacross their respective streams of paginated responses. Caller must have\nREAD permission for the queried annotation sets.",
-	//   "flatPath": "v1/annotations/search",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.annotations.search",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/annotations/search",
-	//   "request": {
-	//     "$ref": "SearchAnnotationsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "SearchAnnotationsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *AnnotationsSearchCall) Pages(ctx context.Context, f func(*SearchAnnotationsResponse) error) error {
-	c.ctx_ = ctx
-	defer func(pt string) { c.searchannotationsrequest.PageToken = pt }(c.searchannotationsrequest.PageToken) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.searchannotationsrequest.PageToken = x.NextPageToken
-	}
-}
-
-// method id "genomics.annotations.update":
-
-type AnnotationsUpdateCall struct {
-	s            *Service
-	annotationId string
-	annotation   *Annotation
-	urlParams_   gensupport.URLParams
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Update: Updates an annotation. Caller must have
-// WRITE permission for the associated dataset.
-func (r *AnnotationsService) Update(annotationId string, annotation *Annotation) *AnnotationsUpdateCall {
-	c := &AnnotationsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.annotationId = annotationId
-	c.annotation = annotation
-	return c
-}
-
-// UpdateMask sets the optional parameter "updateMask": An optional mask
-// specifying which fields to update. Mutable fields
-// are
-// name,
-// variant,
-// transcript, and
-// info. If unspecified, all mutable
-// fields will be updated.
-func (c *AnnotationsUpdateCall) UpdateMask(updateMask string) *AnnotationsUpdateCall {
-	c.urlParams_.Set("updateMask", updateMask)
-	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 *AnnotationsUpdateCall) Fields(s ...googleapi.Field) *AnnotationsUpdateCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsUpdateCall) Context(ctx context.Context) *AnnotationsUpdateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsUpdateCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsUpdateCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.annotation)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotations/{annotationId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("PUT", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"annotationId": c.annotationId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotations.update" call.
-// Exactly one of *Annotation or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *Annotation.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 *AnnotationsUpdateCall) Do(opts ...googleapi.CallOption) (*Annotation, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Annotation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Updates an annotation. Caller must have\nWRITE permission for the associated dataset.",
-	//   "flatPath": "v1/annotations/{annotationId}",
-	//   "httpMethod": "PUT",
-	//   "id": "genomics.annotations.update",
-	//   "parameterOrder": [
-	//     "annotationId"
-	//   ],
-	//   "parameters": {
-	//     "annotationId": {
-	//       "description": "The ID of the annotation to be updated.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "updateMask": {
-	//       "description": "An optional mask specifying which fields to update. Mutable fields are\nname,\nvariant,\ntranscript, and\ninfo. If unspecified, all mutable\nfields will be updated.",
-	//       "format": "google-fieldmask",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/annotations/{annotationId}",
-	//   "request": {
-	//     "$ref": "Annotation"
-	//   },
-	//   "response": {
-	//     "$ref": "Annotation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.annotationsets.create":
-
-type AnnotationsetsCreateCall struct {
-	s             *Service
-	annotationset *AnnotationSet
-	urlParams_    gensupport.URLParams
-	ctx_          context.Context
-	header_       http.Header
-}
-
-// Create: Creates a new annotation set. Caller must have WRITE
-// permission for the
-// associated dataset.
-//
-// The following fields are required:
-//
-//   * datasetId
-//   * referenceSetId
-//
-// All other fields may be optionally specified, unless documented as
-// being
-// server-generated (for example, the `id` field).
-func (r *AnnotationsetsService) Create(annotationset *AnnotationSet) *AnnotationsetsCreateCall {
-	c := &AnnotationsetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.annotationset = annotationset
-	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 *AnnotationsetsCreateCall) Fields(s ...googleapi.Field) *AnnotationsetsCreateCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsetsCreateCall) Context(ctx context.Context) *AnnotationsetsCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsetsCreateCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsetsCreateCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.annotationset)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotationsets")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotationsets.create" call.
-// Exactly one of *AnnotationSet or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *AnnotationSet.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 *AnnotationsetsCreateCall) Do(opts ...googleapi.CallOption) (*AnnotationSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &AnnotationSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates a new annotation set. Caller must have WRITE permission for the\nassociated dataset.\n\nThe following fields are required:\n\n  * datasetId\n  * referenceSetId\n\nAll other fields may be optionally specified, unless documented as being\nserver-generated (for example, the `id` field).",
-	//   "flatPath": "v1/annotationsets",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.annotationsets.create",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/annotationsets",
-	//   "request": {
-	//     "$ref": "AnnotationSet"
-	//   },
-	//   "response": {
-	//     "$ref": "AnnotationSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.annotationsets.delete":
-
-type AnnotationsetsDeleteCall struct {
-	s               *Service
-	annotationSetId string
-	urlParams_      gensupport.URLParams
-	ctx_            context.Context
-	header_         http.Header
-}
-
-// Delete: Deletes an annotation set. Caller must have WRITE
-// permission
-// for the associated annotation set.
-func (r *AnnotationsetsService) Delete(annotationSetId string) *AnnotationsetsDeleteCall {
-	c := &AnnotationsetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.annotationSetId = annotationSetId
-	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 *AnnotationsetsDeleteCall) Fields(s ...googleapi.Field) *AnnotationsetsDeleteCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsetsDeleteCall) Context(ctx context.Context) *AnnotationsetsDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsetsDeleteCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsetsDeleteCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotationsets/{annotationSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("DELETE", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"annotationSetId": c.annotationSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotationsets.delete" call.
-// Exactly one of *Empty or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Empty.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 *AnnotationsetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Empty{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Deletes an annotation set. Caller must have WRITE permission\nfor the associated annotation set.",
-	//   "flatPath": "v1/annotationsets/{annotationSetId}",
-	//   "httpMethod": "DELETE",
-	//   "id": "genomics.annotationsets.delete",
-	//   "parameterOrder": [
-	//     "annotationSetId"
-	//   ],
-	//   "parameters": {
-	//     "annotationSetId": {
-	//       "description": "The ID of the annotation set to be deleted.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/annotationsets/{annotationSetId}",
-	//   "response": {
-	//     "$ref": "Empty"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.annotationsets.get":
-
-type AnnotationsetsGetCall struct {
-	s               *Service
-	annotationSetId string
-	urlParams_      gensupport.URLParams
-	ifNoneMatch_    string
-	ctx_            context.Context
-	header_         http.Header
-}
-
-// Get: Gets an annotation set. Caller must have READ permission for
-// the associated dataset.
-func (r *AnnotationsetsService) Get(annotationSetId string) *AnnotationsetsGetCall {
-	c := &AnnotationsetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.annotationSetId = annotationSetId
-	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 *AnnotationsetsGetCall) Fields(s ...googleapi.Field) *AnnotationsetsGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *AnnotationsetsGetCall) IfNoneMatch(entityTag string) *AnnotationsetsGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsetsGetCall) Context(ctx context.Context) *AnnotationsetsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsetsGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsetsGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotationsets/{annotationSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"annotationSetId": c.annotationSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotationsets.get" call.
-// Exactly one of *AnnotationSet or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *AnnotationSet.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 *AnnotationsetsGetCall) Do(opts ...googleapi.CallOption) (*AnnotationSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &AnnotationSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets an annotation set. Caller must have READ permission for\nthe associated dataset.",
-	//   "flatPath": "v1/annotationsets/{annotationSetId}",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.annotationsets.get",
-	//   "parameterOrder": [
-	//     "annotationSetId"
-	//   ],
-	//   "parameters": {
-	//     "annotationSetId": {
-	//       "description": "The ID of the annotation set to be retrieved.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/annotationsets/{annotationSetId}",
-	//   "response": {
-	//     "$ref": "AnnotationSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.annotationsets.search":
-
-type AnnotationsetsSearchCall struct {
-	s                           *Service
-	searchannotationsetsrequest *SearchAnnotationSetsRequest
-	urlParams_                  gensupport.URLParams
-	ctx_                        context.Context
-	header_                     http.Header
-}
-
-// Search: Searches for annotation sets that match the given criteria.
-// Annotation sets
-// are returned in an unspecified order. This order is consistent, such
-// that
-// two queries for the same content (regardless of page size) yield
-// annotation
-// sets in the same order across their respective streams of
-// paginated
-// responses. Caller must have READ permission for the queried datasets.
-func (r *AnnotationsetsService) Search(searchannotationsetsrequest *SearchAnnotationSetsRequest) *AnnotationsetsSearchCall {
-	c := &AnnotationsetsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.searchannotationsetsrequest = searchannotationsetsrequest
-	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 *AnnotationsetsSearchCall) Fields(s ...googleapi.Field) *AnnotationsetsSearchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsetsSearchCall) Context(ctx context.Context) *AnnotationsetsSearchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsetsSearchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsetsSearchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchannotationsetsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotationsets/search")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotationsets.search" call.
-// Exactly one of *SearchAnnotationSetsResponse or error will be
-// non-nil. Any non-2xx status code is an error. Response headers are in
-// either *SearchAnnotationSetsResponse.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 *AnnotationsetsSearchCall) Do(opts ...googleapi.CallOption) (*SearchAnnotationSetsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &SearchAnnotationSetsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Searches for annotation sets that match the given criteria. Annotation sets\nare returned in an unspecified order. This order is consistent, such that\ntwo queries for the same content (regardless of page size) yield annotation\nsets in the same order across their respective streams of paginated\nresponses. Caller must have READ permission for the queried datasets.",
-	//   "flatPath": "v1/annotationsets/search",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.annotationsets.search",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/annotationsets/search",
-	//   "request": {
-	//     "$ref": "SearchAnnotationSetsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "SearchAnnotationSetsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *AnnotationsetsSearchCall) Pages(ctx context.Context, f func(*SearchAnnotationSetsResponse) error) error {
-	c.ctx_ = ctx
-	defer func(pt string) { c.searchannotationsetsrequest.PageToken = pt }(c.searchannotationsetsrequest.PageToken) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.searchannotationsetsrequest.PageToken = x.NextPageToken
-	}
-}
-
-// method id "genomics.annotationsets.update":
-
-type AnnotationsetsUpdateCall struct {
-	s               *Service
-	annotationSetId string
-	annotationset   *AnnotationSet
-	urlParams_      gensupport.URLParams
-	ctx_            context.Context
-	header_         http.Header
-}
-
-// Update: Updates an annotation set. The update must respect all
-// mutability
-// restrictions and other invariants described on the annotation set
-// resource.
-// Caller must have WRITE permission for the associated dataset.
-func (r *AnnotationsetsService) Update(annotationSetId string, annotationset *AnnotationSet) *AnnotationsetsUpdateCall {
-	c := &AnnotationsetsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.annotationSetId = annotationSetId
-	c.annotationset = annotationset
-	return c
-}
-
-// UpdateMask sets the optional parameter "updateMask": An optional mask
-// specifying which fields to update. Mutable fields
-// are
-// name,
-// source_uri, and
-// info. If unspecified, all
-// mutable fields will be updated.
-func (c *AnnotationsetsUpdateCall) UpdateMask(updateMask string) *AnnotationsetsUpdateCall {
-	c.urlParams_.Set("updateMask", updateMask)
-	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 *AnnotationsetsUpdateCall) Fields(s ...googleapi.Field) *AnnotationsetsUpdateCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *AnnotationsetsUpdateCall) Context(ctx context.Context) *AnnotationsetsUpdateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *AnnotationsetsUpdateCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *AnnotationsetsUpdateCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.annotationset)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/annotationsets/{annotationSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("PUT", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"annotationSetId": c.annotationSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.annotationsets.update" call.
-// Exactly one of *AnnotationSet or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *AnnotationSet.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 *AnnotationsetsUpdateCall) Do(opts ...googleapi.CallOption) (*AnnotationSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &AnnotationSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Updates an annotation set. The update must respect all mutability\nrestrictions and other invariants described on the annotation set resource.\nCaller must have WRITE permission for the associated dataset.",
-	//   "flatPath": "v1/annotationsets/{annotationSetId}",
-	//   "httpMethod": "PUT",
-	//   "id": "genomics.annotationsets.update",
-	//   "parameterOrder": [
-	//     "annotationSetId"
-	//   ],
-	//   "parameters": {
-	//     "annotationSetId": {
-	//       "description": "The ID of the annotation set to be updated.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "updateMask": {
-	//       "description": "An optional mask specifying which fields to update. Mutable fields are\nname,\nsource_uri, and\ninfo. If unspecified, all\nmutable fields will be updated.",
-	//       "format": "google-fieldmask",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/annotationsets/{annotationSetId}",
-	//   "request": {
-	//     "$ref": "AnnotationSet"
-	//   },
-	//   "response": {
-	//     "$ref": "AnnotationSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.callsets.create":
-
-type CallsetsCreateCall struct {
-	s          *Service
-	callset    *CallSet
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Create: Creates a new call set.
-func (r *CallsetsService) Create(callset *CallSet) *CallsetsCreateCall {
-	c := &CallsetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.callset = callset
-	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 *CallsetsCreateCall) Fields(s ...googleapi.Field) *CallsetsCreateCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *CallsetsCreateCall) Context(ctx context.Context) *CallsetsCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *CallsetsCreateCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *CallsetsCreateCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.callset)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/callsets")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.callsets.create" call.
-// Exactly one of *CallSet or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *CallSet.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 *CallsetsCreateCall) Do(opts ...googleapi.CallOption) (*CallSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &CallSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates a new call set.",
-	//   "flatPath": "v1/callsets",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.callsets.create",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/callsets",
-	//   "request": {
-	//     "$ref": "CallSet"
-	//   },
-	//   "response": {
-	//     "$ref": "CallSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.callsets.delete":
-
-type CallsetsDeleteCall struct {
-	s          *Service
-	callSetId  string
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Delete: Deletes a call set.
-func (r *CallsetsService) Delete(callSetId string) *CallsetsDeleteCall {
-	c := &CallsetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.callSetId = callSetId
-	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 *CallsetsDeleteCall) Fields(s ...googleapi.Field) *CallsetsDeleteCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *CallsetsDeleteCall) Context(ctx context.Context) *CallsetsDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *CallsetsDeleteCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *CallsetsDeleteCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/callsets/{callSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("DELETE", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"callSetId": c.callSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.callsets.delete" call.
-// Exactly one of *Empty or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Empty.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 *CallsetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Empty{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Deletes a call set.",
-	//   "flatPath": "v1/callsets/{callSetId}",
-	//   "httpMethod": "DELETE",
-	//   "id": "genomics.callsets.delete",
-	//   "parameterOrder": [
-	//     "callSetId"
-	//   ],
-	//   "parameters": {
-	//     "callSetId": {
-	//       "description": "The ID of the call set to be deleted.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/callsets/{callSetId}",
-	//   "response": {
-	//     "$ref": "Empty"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.callsets.get":
-
-type CallsetsGetCall struct {
-	s            *Service
-	callSetId    string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Get: Gets a call set by ID.
-func (r *CallsetsService) Get(callSetId string) *CallsetsGetCall {
-	c := &CallsetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.callSetId = callSetId
-	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 *CallsetsGetCall) Fields(s ...googleapi.Field) *CallsetsGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *CallsetsGetCall) IfNoneMatch(entityTag string) *CallsetsGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *CallsetsGetCall) Context(ctx context.Context) *CallsetsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *CallsetsGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *CallsetsGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/callsets/{callSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"callSetId": c.callSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.callsets.get" call.
-// Exactly one of *CallSet or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *CallSet.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 *CallsetsGetCall) Do(opts ...googleapi.CallOption) (*CallSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &CallSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a call set by ID.",
-	//   "flatPath": "v1/callsets/{callSetId}",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.callsets.get",
-	//   "parameterOrder": [
-	//     "callSetId"
-	//   ],
-	//   "parameters": {
-	//     "callSetId": {
-	//       "description": "The ID of the call set.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/callsets/{callSetId}",
-	//   "response": {
-	//     "$ref": "CallSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.callsets.patch":
-
-type CallsetsPatchCall struct {
-	s          *Service
-	callSetId  string
-	callset    *CallSet
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Patch: Updates a call set.
-//
-// This method supports patch semantics.
-func (r *CallsetsService) Patch(callSetId string, callset *CallSet) *CallsetsPatchCall {
-	c := &CallsetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.callSetId = callSetId
-	c.callset = callset
-	return c
-}
-
-// UpdateMask sets the optional parameter "updateMask": An optional mask
-// specifying which fields to update. At this time, the only
-// mutable field is name. The only
-// acceptable value is "name". If unspecified, all mutable fields will
-// be
-// updated.
-func (c *CallsetsPatchCall) UpdateMask(updateMask string) *CallsetsPatchCall {
-	c.urlParams_.Set("updateMask", updateMask)
-	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 *CallsetsPatchCall) Fields(s ...googleapi.Field) *CallsetsPatchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *CallsetsPatchCall) Context(ctx context.Context) *CallsetsPatchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *CallsetsPatchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *CallsetsPatchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.callset)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/callsets/{callSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("PATCH", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"callSetId": c.callSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.callsets.patch" call.
-// Exactly one of *CallSet or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *CallSet.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 *CallsetsPatchCall) Do(opts ...googleapi.CallOption) (*CallSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &CallSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Updates a call set.\n\nThis method supports patch semantics.",
-	//   "flatPath": "v1/callsets/{callSetId}",
-	//   "httpMethod": "PATCH",
-	//   "id": "genomics.callsets.patch",
-	//   "parameterOrder": [
-	//     "callSetId"
-	//   ],
-	//   "parameters": {
-	//     "callSetId": {
-	//       "description": "The ID of the call set to be updated.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "updateMask": {
-	//       "description": "An optional mask specifying which fields to update. At this time, the only\nmutable field is name. The only\nacceptable value is \"name\". If unspecified, all mutable fields will be\nupdated.",
-	//       "format": "google-fieldmask",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/callsets/{callSetId}",
-	//   "request": {
-	//     "$ref": "CallSet"
-	//   },
-	//   "response": {
-	//     "$ref": "CallSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.callsets.search":
-
-type CallsetsSearchCall struct {
-	s                     *Service
-	searchcallsetsrequest *SearchCallSetsRequest
-	urlParams_            gensupport.URLParams
-	ctx_                  context.Context
-	header_               http.Header
-}
-
-// Search: Gets a list of call sets matching the
-// criteria.
-//
-// Implements
-// [GlobalAllianceApi.searchCallSets](https://githu
-// b.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods
-// .avdl#L178).
-func (r *CallsetsService) Search(searchcallsetsrequest *SearchCallSetsRequest) *CallsetsSearchCall {
-	c := &CallsetsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.searchcallsetsrequest = searchcallsetsrequest
-	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 *CallsetsSearchCall) Fields(s ...googleapi.Field) *CallsetsSearchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *CallsetsSearchCall) Context(ctx context.Context) *CallsetsSearchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *CallsetsSearchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *CallsetsSearchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchcallsetsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/callsets/search")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.callsets.search" call.
-// Exactly one of *SearchCallSetsResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *SearchCallSetsResponse.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 *CallsetsSearchCall) Do(opts ...googleapi.CallOption) (*SearchCallSetsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &SearchCallSetsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a list of call sets matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).",
-	//   "flatPath": "v1/callsets/search",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.callsets.search",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/callsets/search",
-	//   "request": {
-	//     "$ref": "SearchCallSetsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "SearchCallSetsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *CallsetsSearchCall) Pages(ctx context.Context, f func(*SearchCallSetsResponse) error) error {
-	c.ctx_ = ctx
-	defer func(pt string) { c.searchcallsetsrequest.PageToken = pt }(c.searchcallsetsrequest.PageToken) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.searchcallsetsrequest.PageToken = x.NextPageToken
-	}
-}
-
-// method id "genomics.datasets.create":
-
-type DatasetsCreateCall struct {
-	s          *Service
-	dataset    *Dataset
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Create: Creates a new dataset.
-func (r *DatasetsService) Create(dataset *Dataset) *DatasetsCreateCall {
-	c := &DatasetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.dataset = dataset
-	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 *DatasetsCreateCall) Fields(s ...googleapi.Field) *DatasetsCreateCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *DatasetsCreateCall) Context(ctx context.Context) *DatasetsCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *DatasetsCreateCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *DatasetsCreateCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dataset)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/datasets")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.datasets.create" call.
-// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Dataset.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 *DatasetsCreateCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Dataset{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates a new dataset.",
-	//   "flatPath": "v1/datasets",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.datasets.create",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/datasets",
-	//   "request": {
-	//     "$ref": "Dataset"
-	//   },
-	//   "response": {
-	//     "$ref": "Dataset"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.datasets.delete":
-
-type DatasetsDeleteCall struct {
-	s          *Service
-	datasetId  string
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Delete: Deletes a dataset and all of its contents (all read group
-// sets,
-// reference sets, variant sets, call sets, annotation sets, etc.)
-// This is reversible (up to one week after the deletion)
-// via
-// the
-// datasets.undelete
-// operation.
-func (r *DatasetsService) Delete(datasetId string) *DatasetsDeleteCall {
-	c := &DatasetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.datasetId = datasetId
-	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 *DatasetsDeleteCall) Fields(s ...googleapi.Field) *DatasetsDeleteCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *DatasetsDeleteCall) Context(ctx context.Context) *DatasetsDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *DatasetsDeleteCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *DatasetsDeleteCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/datasets/{datasetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("DELETE", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"datasetId": c.datasetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.datasets.delete" call.
-// Exactly one of *Empty or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Empty.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 *DatasetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Empty{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Deletes a dataset and all of its contents (all read group sets,\nreference sets, variant sets, call sets, annotation sets, etc.)\nThis is reversible (up to one week after the deletion) via\nthe\ndatasets.undelete\noperation.",
-	//   "flatPath": "v1/datasets/{datasetId}",
-	//   "httpMethod": "DELETE",
-	//   "id": "genomics.datasets.delete",
-	//   "parameterOrder": [
-	//     "datasetId"
-	//   ],
-	//   "parameters": {
-	//     "datasetId": {
-	//       "description": "The ID of the dataset to be deleted.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/datasets/{datasetId}",
-	//   "response": {
-	//     "$ref": "Empty"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.datasets.get":
-
-type DatasetsGetCall struct {
-	s            *Service
-	datasetId    string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Get: Gets a dataset by ID.
-func (r *DatasetsService) Get(datasetId string) *DatasetsGetCall {
-	c := &DatasetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.datasetId = datasetId
-	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 *DatasetsGetCall) Fields(s ...googleapi.Field) *DatasetsGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *DatasetsGetCall) IfNoneMatch(entityTag string) *DatasetsGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *DatasetsGetCall) Context(ctx context.Context) *DatasetsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *DatasetsGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *DatasetsGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/datasets/{datasetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"datasetId": c.datasetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.datasets.get" call.
-// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Dataset.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 *DatasetsGetCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Dataset{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a dataset by ID.",
-	//   "flatPath": "v1/datasets/{datasetId}",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.datasets.get",
-	//   "parameterOrder": [
-	//     "datasetId"
-	//   ],
-	//   "parameters": {
-	//     "datasetId": {
-	//       "description": "The ID of the dataset.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/datasets/{datasetId}",
-	//   "response": {
-	//     "$ref": "Dataset"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.datasets.getIamPolicy":
-
-type DatasetsGetIamPolicyCall struct {
-	s                   *Service
-	resource            string
-	getiampolicyrequest *GetIamPolicyRequest
-	urlParams_          gensupport.URLParams
-	ctx_                context.Context
-	header_             http.Header
-}
-
-// GetIamPolicy: Gets the access control policy for the dataset. This is
-// empty if the
-// policy or resource does not exist.
-//
-// See <a href="/iam/docs/managing-policies#getting_a_policy">Getting
-// a
-// Policy</a> for more information.
-func (r *DatasetsService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *DatasetsGetIamPolicyCall {
-	c := &DatasetsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.resource = resource
-	c.getiampolicyrequest = getiampolicyrequest
-	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 *DatasetsGetIamPolicyCall) Fields(s ...googleapi.Field) *DatasetsGetIamPolicyCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *DatasetsGetIamPolicyCall) Context(ctx context.Context) *DatasetsGetIamPolicyCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *DatasetsGetIamPolicyCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *DatasetsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"resource": c.resource,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.datasets.getIamPolicy" call.
-// Exactly one of *Policy or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Policy.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 *DatasetsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Policy{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets the access control policy for the dataset. This is empty if the\npolicy or resource does not exist.\n\nSee \u003ca href=\"/iam/docs/managing-policies#getting_a_policy\"\u003eGetting a\nPolicy\u003c/a\u003e for more information.",
-	//   "flatPath": "v1/datasets/{datasetsId}:getIamPolicy",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.datasets.getIamPolicy",
-	//   "parameterOrder": [
-	//     "resource"
-	//   ],
-	//   "parameters": {
-	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being specified. Format is\n`datasets/\u003cdataset ID\u003e`.",
-	//       "location": "path",
-	//       "pattern": "^datasets/[^/]+$",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/{+resource}:getIamPolicy",
-	//   "request": {
-	//     "$ref": "GetIamPolicyRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "Policy"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.datasets.list":
-
-type DatasetsListCall struct {
-	s            *Service
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// List: Lists datasets within a project.
-func (r *DatasetsService) List() *DatasetsListCall {
-	c := &DatasetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	return c
-}
-
-// PageSize sets the optional parameter "pageSize": The maximum number
-// of results to return in a single page. If unspecified,
-// defaults to 50. The maximum value is 1024.
-func (c *DatasetsListCall) PageSize(pageSize int64) *DatasetsListCall {
-	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
-	return c
-}
-
-// PageToken sets the optional parameter "pageToken": The continuation
-// token, which is used to page through large result sets.
-// To get the next page of results, set this parameter to the value
-// of
-// `nextPageToken` from the previous response.
-func (c *DatasetsListCall) PageToken(pageToken string) *DatasetsListCall {
-	c.urlParams_.Set("pageToken", pageToken)
-	return c
-}
-
-// ProjectId sets the optional parameter "projectId": Required. The
-// Google Cloud project ID to list datasets for.
-func (c *DatasetsListCall) ProjectId(projectId string) *DatasetsListCall {
-	c.urlParams_.Set("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 *DatasetsListCall) Fields(s ...googleapi.Field) *DatasetsListCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *DatasetsListCall) IfNoneMatch(entityTag string) *DatasetsListCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *DatasetsListCall) Context(ctx context.Context) *DatasetsListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *DatasetsListCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *DatasetsListCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/datasets")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.datasets.list" call.
-// Exactly one of *ListDatasetsResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *ListDatasetsResponse.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 *DatasetsListCall) Do(opts ...googleapi.CallOption) (*ListDatasetsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &ListDatasetsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists datasets within a project.",
-	//   "flatPath": "v1/datasets",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.datasets.list",
-	//   "parameterOrder": [],
-	//   "parameters": {
-	//     "pageSize": {
-	//       "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 50. The maximum value is 1024.",
-	//       "format": "int32",
-	//       "location": "query",
-	//       "type": "integer"
-	//     },
-	//     "pageToken": {
-	//       "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "projectId": {
-	//       "description": "Required. The Google Cloud project ID to list datasets for.",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/datasets",
-	//   "response": {
-	//     "$ref": "ListDatasetsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *DatasetsListCall) Pages(ctx context.Context, f func(*ListDatasetsResponse) error) error {
-	c.ctx_ = ctx
-	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.PageToken(x.NextPageToken)
-	}
-}
-
-// method id "genomics.datasets.patch":
-
-type DatasetsPatchCall struct {
-	s          *Service
-	datasetId  string
-	dataset    *Dataset
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Patch: Updates a dataset.
-//
-// This method supports patch semantics.
-func (r *DatasetsService) Patch(datasetId string, dataset *Dataset) *DatasetsPatchCall {
-	c := &DatasetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.datasetId = datasetId
-	c.dataset = dataset
-	return c
-}
-
-// UpdateMask sets the optional parameter "updateMask": An optional mask
-// specifying which fields to update. At this time, the only
-// mutable field is name. The only
-// acceptable value is "name". If unspecified, all mutable fields will
-// be
-// updated.
-func (c *DatasetsPatchCall) UpdateMask(updateMask string) *DatasetsPatchCall {
-	c.urlParams_.Set("updateMask", updateMask)
-	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 *DatasetsPatchCall) Fields(s ...googleapi.Field) *DatasetsPatchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *DatasetsPatchCall) Context(ctx context.Context) *DatasetsPatchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *DatasetsPatchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *DatasetsPatchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dataset)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/datasets/{datasetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("PATCH", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"datasetId": c.datasetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.datasets.patch" call.
-// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Dataset.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 *DatasetsPatchCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Dataset{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Updates a dataset.\n\nThis method supports patch semantics.",
-	//   "flatPath": "v1/datasets/{datasetId}",
-	//   "httpMethod": "PATCH",
-	//   "id": "genomics.datasets.patch",
-	//   "parameterOrder": [
-	//     "datasetId"
-	//   ],
-	//   "parameters": {
-	//     "datasetId": {
-	//       "description": "The ID of the dataset to be updated.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "updateMask": {
-	//       "description": "An optional mask specifying which fields to update. At this time, the only\nmutable field is name. The only\nacceptable value is \"name\". If unspecified, all mutable fields will be\nupdated.",
-	//       "format": "google-fieldmask",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/datasets/{datasetId}",
-	//   "request": {
-	//     "$ref": "Dataset"
-	//   },
-	//   "response": {
-	//     "$ref": "Dataset"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.datasets.setIamPolicy":
-
-type DatasetsSetIamPolicyCall struct {
-	s                   *Service
-	resource            string
-	setiampolicyrequest *SetIamPolicyRequest
-	urlParams_          gensupport.URLParams
-	ctx_                context.Context
-	header_             http.Header
-}
-
-// SetIamPolicy: Sets the access control policy on the specified
-// dataset. Replaces any
-// existing policy.
-//
-// See <a href="/iam/docs/managing-policies#setting_a_policy">Setting
-// a
-// Policy</a> for more information.
-func (r *DatasetsService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *DatasetsSetIamPolicyCall {
-	c := &DatasetsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.resource = resource
-	c.setiampolicyrequest = setiampolicyrequest
-	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 *DatasetsSetIamPolicyCall) Fields(s ...googleapi.Field) *DatasetsSetIamPolicyCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *DatasetsSetIamPolicyCall) Context(ctx context.Context) *DatasetsSetIamPolicyCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *DatasetsSetIamPolicyCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *DatasetsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"resource": c.resource,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.datasets.setIamPolicy" call.
-// Exactly one of *Policy or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Policy.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 *DatasetsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Policy{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Sets the access control policy on the specified dataset. Replaces any\nexisting policy.\n\nSee \u003ca href=\"/iam/docs/managing-policies#setting_a_policy\"\u003eSetting a\nPolicy\u003c/a\u003e for more information.",
-	//   "flatPath": "v1/datasets/{datasetsId}:setIamPolicy",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.datasets.setIamPolicy",
-	//   "parameterOrder": [
-	//     "resource"
-	//   ],
-	//   "parameters": {
-	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being specified. Format is\n`datasets/\u003cdataset ID\u003e`.",
-	//       "location": "path",
-	//       "pattern": "^datasets/[^/]+$",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/{+resource}:setIamPolicy",
-	//   "request": {
-	//     "$ref": "SetIamPolicyRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "Policy"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.datasets.testIamPermissions":
-
-type DatasetsTestIamPermissionsCall struct {
-	s                         *Service
-	resource                  string
-	testiampermissionsrequest *TestIamPermissionsRequest
-	urlParams_                gensupport.URLParams
-	ctx_                      context.Context
-	header_                   http.Header
-}
-
-// TestIamPermissions: Returns permissions that a caller has on the
-// specified resource.
-// See <a
-// href="/iam/docs/managing-policies#testing_permissions">Testing
-// Permiss
-// ions</a> for more information.
-func (r *DatasetsService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *DatasetsTestIamPermissionsCall {
-	c := &DatasetsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.resource = resource
-	c.testiampermissionsrequest = testiampermissionsrequest
-	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 *DatasetsTestIamPermissionsCall) Fields(s ...googleapi.Field) *DatasetsTestIamPermissionsCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *DatasetsTestIamPermissionsCall) Context(ctx context.Context) *DatasetsTestIamPermissionsCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *DatasetsTestIamPermissionsCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *DatasetsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"resource": c.resource,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.datasets.testIamPermissions" call.
-// Exactly one of *TestIamPermissionsResponse or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *TestIamPermissionsResponse.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 *DatasetsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &TestIamPermissionsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Returns permissions that a caller has on the specified resource.\nSee \u003ca href=\"/iam/docs/managing-policies#testing_permissions\"\u003eTesting\nPermissions\u003c/a\u003e for more information.",
-	//   "flatPath": "v1/datasets/{datasetsId}:testIamPermissions",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.datasets.testIamPermissions",
-	//   "parameterOrder": [
-	//     "resource"
-	//   ],
-	//   "parameters": {
-	//     "resource": {
-	//       "description": "REQUIRED: The resource for which policy is being specified. Format is\n`datasets/\u003cdataset ID\u003e`.",
-	//       "location": "path",
-	//       "pattern": "^datasets/[^/]+$",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/{+resource}:testIamPermissions",
-	//   "request": {
-	//     "$ref": "TestIamPermissionsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "TestIamPermissionsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.datasets.undelete":
-
-type DatasetsUndeleteCall struct {
-	s                      *Service
-	datasetId              string
-	undeletedatasetrequest *UndeleteDatasetRequest
-	urlParams_             gensupport.URLParams
-	ctx_                   context.Context
-	header_                http.Header
-}
-
-// Undelete: Undeletes a dataset by restoring a dataset which was
-// deleted via this API.
-//
-// This operation is only possible for a week after the deletion
-// occurred.
-func (r *DatasetsService) Undelete(datasetId string, undeletedatasetrequest *UndeleteDatasetRequest) *DatasetsUndeleteCall {
-	c := &DatasetsUndeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.datasetId = datasetId
-	c.undeletedatasetrequest = undeletedatasetrequest
-	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 *DatasetsUndeleteCall) Fields(s ...googleapi.Field) *DatasetsUndeleteCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *DatasetsUndeleteCall) Context(ctx context.Context) *DatasetsUndeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *DatasetsUndeleteCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *DatasetsUndeleteCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.undeletedatasetrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/datasets/{datasetId}:undelete")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"datasetId": c.datasetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.datasets.undelete" call.
-// Exactly one of *Dataset or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Dataset.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 *DatasetsUndeleteCall) Do(opts ...googleapi.CallOption) (*Dataset, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Dataset{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Undeletes a dataset by restoring a dataset which was deleted via this API.\n\nThis operation is only possible for a week after the deletion occurred.",
-	//   "flatPath": "v1/datasets/{datasetId}:undelete",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.datasets.undelete",
-	//   "parameterOrder": [
-	//     "datasetId"
-	//   ],
-	//   "parameters": {
-	//     "datasetId": {
-	//       "description": "The ID of the dataset to be undeleted.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/datasets/{datasetId}:undelete",
-	//   "request": {
-	//     "$ref": "UndeleteDatasetRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "Dataset"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
 // method id "genomics.operations.cancel":
 
 type OperationsCancelCall struct {
@@ -9220,4110 +1718,3 @@
 		c.PageToken(x.NextPageToken)
 	}
 }
-
-// method id "genomics.readgroupsets.delete":
-
-type ReadgroupsetsDeleteCall struct {
-	s              *Service
-	readGroupSetId string
-	urlParams_     gensupport.URLParams
-	ctx_           context.Context
-	header_        http.Header
-}
-
-// Delete: Deletes a read group set.
-func (r *ReadgroupsetsService) Delete(readGroupSetId string) *ReadgroupsetsDeleteCall {
-	c := &ReadgroupsetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.readGroupSetId = readGroupSetId
-	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 *ReadgroupsetsDeleteCall) Fields(s ...googleapi.Field) *ReadgroupsetsDeleteCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReadgroupsetsDeleteCall) Context(ctx context.Context) *ReadgroupsetsDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReadgroupsetsDeleteCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReadgroupsetsDeleteCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/readgroupsets/{readGroupSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("DELETE", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"readGroupSetId": c.readGroupSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.readgroupsets.delete" call.
-// Exactly one of *Empty or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Empty.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 *ReadgroupsetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Empty{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Deletes a read group set.",
-	//   "flatPath": "v1/readgroupsets/{readGroupSetId}",
-	//   "httpMethod": "DELETE",
-	//   "id": "genomics.readgroupsets.delete",
-	//   "parameterOrder": [
-	//     "readGroupSetId"
-	//   ],
-	//   "parameters": {
-	//     "readGroupSetId": {
-	//       "description": "The ID of the read group set to be deleted. The caller must have WRITE\npermissions to the dataset associated with this read group set.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/readgroupsets/{readGroupSetId}",
-	//   "response": {
-	//     "$ref": "Empty"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.readgroupsets.export":
-
-type ReadgroupsetsExportCall struct {
-	s                         *Service
-	readGroupSetId            string
-	exportreadgroupsetrequest *ExportReadGroupSetRequest
-	urlParams_                gensupport.URLParams
-	ctx_                      context.Context
-	header_                   http.Header
-}
-
-// Export: Exports a read group set to a BAM file in Google Cloud
-// Storage.
-//
-// Note that currently there may be some differences between exported
-// BAM
-// files and the original BAM file at the time of import.
-// See
-// ImportReadGroupSets
-// for caveats.
-func (r *ReadgroupsetsService) Export(readGroupSetId string, exportreadgroupsetrequest *ExportReadGroupSetRequest) *ReadgroupsetsExportCall {
-	c := &ReadgroupsetsExportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.readGroupSetId = readGroupSetId
-	c.exportreadgroupsetrequest = exportreadgroupsetrequest
-	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 *ReadgroupsetsExportCall) Fields(s ...googleapi.Field) *ReadgroupsetsExportCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReadgroupsetsExportCall) Context(ctx context.Context) *ReadgroupsetsExportCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReadgroupsetsExportCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReadgroupsetsExportCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.exportreadgroupsetrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/readgroupsets/{readGroupSetId}:export")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"readGroupSetId": c.readGroupSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.readgroupsets.export" 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 *ReadgroupsetsExportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Operation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Exports a read group set to a BAM file in Google Cloud Storage.\n\nNote that currently there may be some differences between exported BAM\nfiles and the original BAM file at the time of import. See\nImportReadGroupSets\nfor caveats.",
-	//   "flatPath": "v1/readgroupsets/{readGroupSetId}:export",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.readgroupsets.export",
-	//   "parameterOrder": [
-	//     "readGroupSetId"
-	//   ],
-	//   "parameters": {
-	//     "readGroupSetId": {
-	//       "description": "Required. The ID of the read group set to export. The caller must have\nREAD access to this read group set.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/readgroupsets/{readGroupSetId}:export",
-	//   "request": {
-	//     "$ref": "ExportReadGroupSetRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "Operation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/devstorage.read_write",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.readgroupsets.get":
-
-type ReadgroupsetsGetCall struct {
-	s              *Service
-	readGroupSetId string
-	urlParams_     gensupport.URLParams
-	ifNoneMatch_   string
-	ctx_           context.Context
-	header_        http.Header
-}
-
-// Get: Gets a read group set by ID.
-func (r *ReadgroupsetsService) Get(readGroupSetId string) *ReadgroupsetsGetCall {
-	c := &ReadgroupsetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.readGroupSetId = readGroupSetId
-	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 *ReadgroupsetsGetCall) Fields(s ...googleapi.Field) *ReadgroupsetsGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *ReadgroupsetsGetCall) IfNoneMatch(entityTag string) *ReadgroupsetsGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReadgroupsetsGetCall) Context(ctx context.Context) *ReadgroupsetsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReadgroupsetsGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReadgroupsetsGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/readgroupsets/{readGroupSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"readGroupSetId": c.readGroupSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.readgroupsets.get" call.
-// Exactly one of *ReadGroupSet or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *ReadGroupSet.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 *ReadgroupsetsGetCall) Do(opts ...googleapi.CallOption) (*ReadGroupSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &ReadGroupSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a read group set by ID.",
-	//   "flatPath": "v1/readgroupsets/{readGroupSetId}",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.readgroupsets.get",
-	//   "parameterOrder": [
-	//     "readGroupSetId"
-	//   ],
-	//   "parameters": {
-	//     "readGroupSetId": {
-	//       "description": "The ID of the read group set.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/readgroupsets/{readGroupSetId}",
-	//   "response": {
-	//     "$ref": "ReadGroupSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.readgroupsets.import":
-
-type ReadgroupsetsImportCall struct {
-	s                          *Service
-	importreadgroupsetsrequest *ImportReadGroupSetsRequest
-	urlParams_                 gensupport.URLParams
-	ctx_                       context.Context
-	header_                    http.Header
-}
-
-// Import: Creates read group sets by asynchronously importing the
-// provided
-// information.
-//
-// The caller must have WRITE permissions to the dataset.
-//
-// ## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf)
-// import
-//
-// - Tags will be converted to strings - tag types are not preserved
-// - Comments (`@CO`) in the input file header will not be preserved
-// - Original header order of references (`@SQ`) will not be preserved
-// - Any reverse stranded unmapped reads will be reverse complemented,
-// and
-// their qualities (also the "BQ" and "OQ" tags, if any) will be
-// reversed
-// - Unmapped reads will be stripped of positional information
-// (reference name
-// and position)
-func (r *ReadgroupsetsService) Import(importreadgroupsetsrequest *ImportReadGroupSetsRequest) *ReadgroupsetsImportCall {
-	c := &ReadgroupsetsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.importreadgroupsetsrequest = importreadgroupsetsrequest
-	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 *ReadgroupsetsImportCall) Fields(s ...googleapi.Field) *ReadgroupsetsImportCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReadgroupsetsImportCall) Context(ctx context.Context) *ReadgroupsetsImportCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReadgroupsetsImportCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReadgroupsetsImportCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.importreadgroupsetsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/readgroupsets:import")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.readgroupsets.import" 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 *ReadgroupsetsImportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Operation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates read group sets by asynchronously importing the provided\ninformation.\n\nThe caller must have WRITE permissions to the dataset.\n\n## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import\n\n- Tags will be converted to strings - tag types are not preserved\n- Comments (`@CO`) in the input file header will not be preserved\n- Original header order of references (`@SQ`) will not be preserved\n- Any reverse stranded unmapped reads will be reverse complemented, and\ntheir qualities (also the \"BQ\" and \"OQ\" tags, if any) will be reversed\n- Unmapped reads will be stripped of positional information (reference name\nand position)",
-	//   "flatPath": "v1/readgroupsets:import",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.readgroupsets.import",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/readgroupsets:import",
-	//   "request": {
-	//     "$ref": "ImportReadGroupSetsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "Operation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/devstorage.read_write",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.readgroupsets.patch":
-
-type ReadgroupsetsPatchCall struct {
-	s              *Service
-	readGroupSetId string
-	readgroupset   *ReadGroupSet
-	urlParams_     gensupport.URLParams
-	ctx_           context.Context
-	header_        http.Header
-}
-
-// Patch: Updates a read group set.
-//
-// This method supports patch semantics.
-func (r *ReadgroupsetsService) Patch(readGroupSetId string, readgroupset *ReadGroupSet) *ReadgroupsetsPatchCall {
-	c := &ReadgroupsetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.readGroupSetId = readGroupSetId
-	c.readgroupset = readgroupset
-	return c
-}
-
-// UpdateMask sets the optional parameter "updateMask": An optional mask
-// specifying which fields to update. Supported fields:
-//
-// * name.
-// * referenceSetId.
-//
-// Leaving `updateMask` unset is equivalent to specifying all
-// mutable
-// fields.
-func (c *ReadgroupsetsPatchCall) UpdateMask(updateMask string) *ReadgroupsetsPatchCall {
-	c.urlParams_.Set("updateMask", updateMask)
-	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 *ReadgroupsetsPatchCall) Fields(s ...googleapi.Field) *ReadgroupsetsPatchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReadgroupsetsPatchCall) Context(ctx context.Context) *ReadgroupsetsPatchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReadgroupsetsPatchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReadgroupsetsPatchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.readgroupset)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/readgroupsets/{readGroupSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("PATCH", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"readGroupSetId": c.readGroupSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.readgroupsets.patch" call.
-// Exactly one of *ReadGroupSet or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *ReadGroupSet.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 *ReadgroupsetsPatchCall) Do(opts ...googleapi.CallOption) (*ReadGroupSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &ReadGroupSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Updates a read group set.\n\nThis method supports patch semantics.",
-	//   "flatPath": "v1/readgroupsets/{readGroupSetId}",
-	//   "httpMethod": "PATCH",
-	//   "id": "genomics.readgroupsets.patch",
-	//   "parameterOrder": [
-	//     "readGroupSetId"
-	//   ],
-	//   "parameters": {
-	//     "readGroupSetId": {
-	//       "description": "The ID of the read group set to be updated. The caller must have WRITE\npermissions to the dataset associated with this read group set.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "updateMask": {
-	//       "description": "An optional mask specifying which fields to update. Supported fields:\n\n* name.\n* referenceSetId.\n\nLeaving `updateMask` unset is equivalent to specifying all mutable\nfields.",
-	//       "format": "google-fieldmask",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/readgroupsets/{readGroupSetId}",
-	//   "request": {
-	//     "$ref": "ReadGroupSet"
-	//   },
-	//   "response": {
-	//     "$ref": "ReadGroupSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.readgroupsets.search":
-
-type ReadgroupsetsSearchCall struct {
-	s                          *Service
-	searchreadgroupsetsrequest *SearchReadGroupSetsRequest
-	urlParams_                 gensupport.URLParams
-	ctx_                       context.Context
-	header_                    http.Header
-}
-
-// Search: Searches for read group sets matching the
-// criteria.
-//
-// Implements
-// [GlobalAllianceApi.searchReadGroupSets](https://
-// github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmetho
-// ds.avdl#L135).
-func (r *ReadgroupsetsService) Search(searchreadgroupsetsrequest *SearchReadGroupSetsRequest) *ReadgroupsetsSearchCall {
-	c := &ReadgroupsetsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.searchreadgroupsetsrequest = searchreadgroupsetsrequest
-	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 *ReadgroupsetsSearchCall) Fields(s ...googleapi.Field) *ReadgroupsetsSearchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReadgroupsetsSearchCall) Context(ctx context.Context) *ReadgroupsetsSearchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReadgroupsetsSearchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReadgroupsetsSearchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchreadgroupsetsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/readgroupsets/search")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.readgroupsets.search" call.
-// Exactly one of *SearchReadGroupSetsResponse or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *SearchReadGroupSetsResponse.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 *ReadgroupsetsSearchCall) Do(opts ...googleapi.CallOption) (*SearchReadGroupSetsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &SearchReadGroupSetsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Searches for read group sets matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).",
-	//   "flatPath": "v1/readgroupsets/search",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.readgroupsets.search",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/readgroupsets/search",
-	//   "request": {
-	//     "$ref": "SearchReadGroupSetsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "SearchReadGroupSetsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *ReadgroupsetsSearchCall) Pages(ctx context.Context, f func(*SearchReadGroupSetsResponse) error) error {
-	c.ctx_ = ctx
-	defer func(pt string) { c.searchreadgroupsetsrequest.PageToken = pt }(c.searchreadgroupsetsrequest.PageToken) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.searchreadgroupsetsrequest.PageToken = x.NextPageToken
-	}
-}
-
-// method id "genomics.readgroupsets.coveragebuckets.list":
-
-type ReadgroupsetsCoveragebucketsListCall struct {
-	s              *Service
-	readGroupSetId string
-	urlParams_     gensupport.URLParams
-	ifNoneMatch_   string
-	ctx_           context.Context
-	header_        http.Header
-}
-
-// List: Lists fixed width coverage buckets for a read group set, each
-// of which
-// correspond to a range of a reference sequence. Each bucket
-// summarizes
-// coverage information across its corresponding genomic
-// range.
-//
-// Coverage is defined as the number of reads which are aligned to a
-// given
-// base in the reference sequence. Coverage buckets are available at
-// several
-// precomputed bucket widths, enabling retrieval of various coverage
-// 'zoom
-// levels'. The caller must have READ permissions for the target read
-// group
-// set.
-func (r *ReadgroupsetsCoveragebucketsService) List(readGroupSetId string) *ReadgroupsetsCoveragebucketsListCall {
-	c := &ReadgroupsetsCoveragebucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.readGroupSetId = readGroupSetId
-	return c
-}
-
-// End sets the optional parameter "end": The end position of the range
-// on the reference, 0-based exclusive. If
-// specified, `referenceName` must also be specified. If unset or 0,
-// defaults
-// to the length of the reference.
-func (c *ReadgroupsetsCoveragebucketsListCall) End(end int64) *ReadgroupsetsCoveragebucketsListCall {
-	c.urlParams_.Set("end", fmt.Sprint(end))
-	return c
-}
-
-// PageSize sets the optional parameter "pageSize": The maximum number
-// of results to return in a single page. If unspecified,
-// defaults to 1024. The maximum value is 2048.
-func (c *ReadgroupsetsCoveragebucketsListCall) PageSize(pageSize int64) *ReadgroupsetsCoveragebucketsListCall {
-	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
-	return c
-}
-
-// PageToken sets the optional parameter "pageToken": The continuation
-// token, which is used to page through large result sets.
-// To get the next page of results, set this parameter to the value
-// of
-// `nextPageToken` from the previous response.
-func (c *ReadgroupsetsCoveragebucketsListCall) PageToken(pageToken string) *ReadgroupsetsCoveragebucketsListCall {
-	c.urlParams_.Set("pageToken", pageToken)
-	return c
-}
-
-// ReferenceName sets the optional parameter "referenceName": The name
-// of the reference to query, within the reference set associated
-// with this query.
-func (c *ReadgroupsetsCoveragebucketsListCall) ReferenceName(referenceName string) *ReadgroupsetsCoveragebucketsListCall {
-	c.urlParams_.Set("referenceName", referenceName)
-	return c
-}
-
-// Start sets the optional parameter "start": The start position of the
-// range on the reference, 0-based inclusive. If
-// specified, `referenceName` must also be specified. Defaults to 0.
-func (c *ReadgroupsetsCoveragebucketsListCall) Start(start int64) *ReadgroupsetsCoveragebucketsListCall {
-	c.urlParams_.Set("start", fmt.Sprint(start))
-	return c
-}
-
-// TargetBucketWidth sets the optional parameter "targetBucketWidth":
-// The desired width of each reported coverage bucket in base pairs.
-// This
-// will be rounded down to the nearest precomputed bucket width; the
-// value
-// of which is returned as `bucketWidth` in the response. Defaults
-// to infinity (each bucket spans an entire reference sequence) or the
-// length
-// of the target range, if specified. The smallest
-// precomputed
-// `bucketWidth` is currently 2048 base pairs; this is subject
-// to
-// change.
-func (c *ReadgroupsetsCoveragebucketsListCall) TargetBucketWidth(targetBucketWidth int64) *ReadgroupsetsCoveragebucketsListCall {
-	c.urlParams_.Set("targetBucketWidth", fmt.Sprint(targetBucketWidth))
-	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 *ReadgroupsetsCoveragebucketsListCall) Fields(s ...googleapi.Field) *ReadgroupsetsCoveragebucketsListCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *ReadgroupsetsCoveragebucketsListCall) IfNoneMatch(entityTag string) *ReadgroupsetsCoveragebucketsListCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReadgroupsetsCoveragebucketsListCall) Context(ctx context.Context) *ReadgroupsetsCoveragebucketsListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReadgroupsetsCoveragebucketsListCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReadgroupsetsCoveragebucketsListCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/readgroupsets/{readGroupSetId}/coveragebuckets")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"readGroupSetId": c.readGroupSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.readgroupsets.coveragebuckets.list" call.
-// Exactly one of *ListCoverageBucketsResponse or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *ListCoverageBucketsResponse.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 *ReadgroupsetsCoveragebucketsListCall) Do(opts ...googleapi.CallOption) (*ListCoverageBucketsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &ListCoverageBucketsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists fixed width coverage buckets for a read group set, each of which\ncorrespond to a range of a reference sequence. Each bucket summarizes\ncoverage information across its corresponding genomic range.\n\nCoverage is defined as the number of reads which are aligned to a given\nbase in the reference sequence. Coverage buckets are available at several\nprecomputed bucket widths, enabling retrieval of various coverage 'zoom\nlevels'. The caller must have READ permissions for the target read group\nset.",
-	//   "flatPath": "v1/readgroupsets/{readGroupSetId}/coveragebuckets",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.readgroupsets.coveragebuckets.list",
-	//   "parameterOrder": [
-	//     "readGroupSetId"
-	//   ],
-	//   "parameters": {
-	//     "end": {
-	//       "description": "The end position of the range on the reference, 0-based exclusive. If\nspecified, `referenceName` must also be specified. If unset or 0, defaults\nto the length of the reference.",
-	//       "format": "int64",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "pageSize": {
-	//       "description": "The maximum number of results to return in a single page. If unspecified,\ndefaults to 1024. The maximum value is 2048.",
-	//       "format": "int32",
-	//       "location": "query",
-	//       "type": "integer"
-	//     },
-	//     "pageToken": {
-	//       "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "readGroupSetId": {
-	//       "description": "Required. The ID of the read group set over which coverage is requested.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "referenceName": {
-	//       "description": "The name of the reference to query, within the reference set associated\nwith this query. Optional.",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "start": {
-	//       "description": "The start position of the range on the reference, 0-based inclusive. If\nspecified, `referenceName` must also be specified. Defaults to 0.",
-	//       "format": "int64",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "targetBucketWidth": {
-	//       "description": "The desired width of each reported coverage bucket in base pairs. This\nwill be rounded down to the nearest precomputed bucket width; the value\nof which is returned as `bucketWidth` in the response. Defaults\nto infinity (each bucket spans an entire reference sequence) or the length\nof the target range, if specified. The smallest precomputed\n`bucketWidth` is currently 2048 base pairs; this is subject to\nchange.",
-	//       "format": "int64",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/readgroupsets/{readGroupSetId}/coveragebuckets",
-	//   "response": {
-	//     "$ref": "ListCoverageBucketsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *ReadgroupsetsCoveragebucketsListCall) Pages(ctx context.Context, f func(*ListCoverageBucketsResponse) error) error {
-	c.ctx_ = ctx
-	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.PageToken(x.NextPageToken)
-	}
-}
-
-// method id "genomics.reads.search":
-
-type ReadsSearchCall struct {
-	s                  *Service
-	searchreadsrequest *SearchReadsRequest
-	urlParams_         gensupport.URLParams
-	ctx_               context.Context
-	header_            http.Header
-}
-
-// Search: Gets a list of reads for one or more read group sets.
-//
-// Reads search operates over a genomic coordinate space of reference
-// sequence
-// & position defined over the reference sequences to which the
-// requested
-// read group sets are aligned.
-//
-// If a target positional range is specified, search returns all reads
-// whose
-// alignment to the reference genome overlap the range. A query
-// which
-// specifies only read group set IDs yields all reads in those read
-// group
-// sets, including unmapped reads.
-//
-// All reads returned (including reads on subsequent pages) are ordered
-// by
-// genomic coordinate (by reference sequence, then position). Reads
-// with
-// equivalent genomic coordinates are returned in an unspecified order.
-// This
-// order is consistent, such that two queries for the same content
-// (regardless
-// of page size) yield reads in the same order across their respective
-// streams
-// of paginated
-// responses.
-//
-// Implements
-// [GlobalAllianceApi.searchReads](https://github.
-// com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl
-// #L85).
-func (r *ReadsService) Search(searchreadsrequest *SearchReadsRequest) *ReadsSearchCall {
-	c := &ReadsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.searchreadsrequest = searchreadsrequest
-	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 *ReadsSearchCall) Fields(s ...googleapi.Field) *ReadsSearchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReadsSearchCall) Context(ctx context.Context) *ReadsSearchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReadsSearchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReadsSearchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchreadsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/reads/search")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.reads.search" call.
-// Exactly one of *SearchReadsResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *SearchReadsResponse.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 *ReadsSearchCall) Do(opts ...googleapi.CallOption) (*SearchReadsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &SearchReadsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a list of reads for one or more read group sets.\n\nReads search operates over a genomic coordinate space of reference sequence\n\u0026 position defined over the reference sequences to which the requested\nread group sets are aligned.\n\nIf a target positional range is specified, search returns all reads whose\nalignment to the reference genome overlap the range. A query which\nspecifies only read group set IDs yields all reads in those read group\nsets, including unmapped reads.\n\nAll reads returned (including reads on subsequent pages) are ordered by\ngenomic coordinate (by reference sequence, then position). Reads with\nequivalent genomic coordinates are returned in an unspecified order. This\norder is consistent, such that two queries for the same content (regardless\nof page size) yield reads in the same order across their respective streams\nof paginated responses.\n\nImplements\n[GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).",
-	//   "flatPath": "v1/reads/search",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.reads.search",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/reads/search",
-	//   "request": {
-	//     "$ref": "SearchReadsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "SearchReadsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *ReadsSearchCall) Pages(ctx context.Context, f func(*SearchReadsResponse) error) error {
-	c.ctx_ = ctx
-	defer func(pt string) { c.searchreadsrequest.PageToken = pt }(c.searchreadsrequest.PageToken) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.searchreadsrequest.PageToken = x.NextPageToken
-	}
-}
-
-// method id "genomics.references.get":
-
-type ReferencesGetCall struct {
-	s            *Service
-	referenceId  string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Get: Gets a
-// reference.
-//
-// Implements
-// [GlobalAllianceApi.getReference](https://github
-// .com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethod
-// s.avdl#L158).
-func (r *ReferencesService) Get(referenceId string) *ReferencesGetCall {
-	c := &ReferencesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.referenceId = referenceId
-	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 *ReferencesGetCall) Fields(s ...googleapi.Field) *ReferencesGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *ReferencesGetCall) IfNoneMatch(entityTag string) *ReferencesGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReferencesGetCall) Context(ctx context.Context) *ReferencesGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReferencesGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReferencesGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/references/{referenceId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"referenceId": c.referenceId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.references.get" call.
-// Exactly one of *Reference or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *Reference.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 *ReferencesGetCall) Do(opts ...googleapi.CallOption) (*Reference, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Reference{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a reference.\n\nImplements\n[GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).",
-	//   "flatPath": "v1/references/{referenceId}",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.references.get",
-	//   "parameterOrder": [
-	//     "referenceId"
-	//   ],
-	//   "parameters": {
-	//     "referenceId": {
-	//       "description": "The ID of the reference.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/references/{referenceId}",
-	//   "response": {
-	//     "$ref": "Reference"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.references.search":
-
-type ReferencesSearchCall struct {
-	s                       *Service
-	searchreferencesrequest *SearchReferencesRequest
-	urlParams_              gensupport.URLParams
-	ctx_                    context.Context
-	header_                 http.Header
-}
-
-// Search: Searches for references which match the given
-// criteria.
-//
-// Implements
-// [GlobalAllianceApi.searchReferences](https://git
-// hub.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemet
-// hods.avdl#L146).
-func (r *ReferencesService) Search(searchreferencesrequest *SearchReferencesRequest) *ReferencesSearchCall {
-	c := &ReferencesSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.searchreferencesrequest = searchreferencesrequest
-	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 *ReferencesSearchCall) Fields(s ...googleapi.Field) *ReferencesSearchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReferencesSearchCall) Context(ctx context.Context) *ReferencesSearchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReferencesSearchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReferencesSearchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchreferencesrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/references/search")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.references.search" call.
-// Exactly one of *SearchReferencesResponse or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *SearchReferencesResponse.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 *ReferencesSearchCall) Do(opts ...googleapi.CallOption) (*SearchReferencesResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &SearchReferencesResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Searches for references which match the given criteria.\n\nImplements\n[GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).",
-	//   "flatPath": "v1/references/search",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.references.search",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/references/search",
-	//   "request": {
-	//     "$ref": "SearchReferencesRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "SearchReferencesResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *ReferencesSearchCall) Pages(ctx context.Context, f func(*SearchReferencesResponse) error) error {
-	c.ctx_ = ctx
-	defer func(pt string) { c.searchreferencesrequest.PageToken = pt }(c.searchreferencesrequest.PageToken) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.searchreferencesrequest.PageToken = x.NextPageToken
-	}
-}
-
-// method id "genomics.references.bases.list":
-
-type ReferencesBasesListCall struct {
-	s            *Service
-	referenceId  string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// List: Lists the bases in a reference, optionally restricted to a
-// range.
-//
-// Implements
-// [GlobalAllianceApi.getReferenceBases](https://githu
-// b.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemetho
-// ds.avdl#L221).
-func (r *ReferencesBasesService) List(referenceId string) *ReferencesBasesListCall {
-	c := &ReferencesBasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.referenceId = referenceId
-	return c
-}
-
-// End sets the optional parameter "end": The end position (0-based,
-// exclusive) of this query. Defaults to the length
-// of this reference.
-func (c *ReferencesBasesListCall) End(end int64) *ReferencesBasesListCall {
-	c.urlParams_.Set("end", fmt.Sprint(end))
-	return c
-}
-
-// PageSize sets the optional parameter "pageSize": The maximum number
-// of bases to return in a single page. If unspecified,
-// defaults to 200Kbp (kilo base pairs). The maximum value is 10Mbp
-// (mega base
-// pairs).
-func (c *ReferencesBasesListCall) PageSize(pageSize int64) *ReferencesBasesListCall {
-	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
-	return c
-}
-
-// PageToken sets the optional parameter "pageToken": The continuation
-// token, which is used to page through large result sets.
-// To get the next page of results, set this parameter to the value
-// of
-// `nextPageToken` from the previous response.
-func (c *ReferencesBasesListCall) PageToken(pageToken string) *ReferencesBasesListCall {
-	c.urlParams_.Set("pageToken", pageToken)
-	return c
-}
-
-// Start sets the optional parameter "start": The start position
-// (0-based) of this query. Defaults to 0.
-func (c *ReferencesBasesListCall) Start(start int64) *ReferencesBasesListCall {
-	c.urlParams_.Set("start", fmt.Sprint(start))
-	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 *ReferencesBasesListCall) Fields(s ...googleapi.Field) *ReferencesBasesListCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *ReferencesBasesListCall) IfNoneMatch(entityTag string) *ReferencesBasesListCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReferencesBasesListCall) Context(ctx context.Context) *ReferencesBasesListCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReferencesBasesListCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReferencesBasesListCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/references/{referenceId}/bases")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"referenceId": c.referenceId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.references.bases.list" call.
-// Exactly one of *ListBasesResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *ListBasesResponse.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 *ReferencesBasesListCall) Do(opts ...googleapi.CallOption) (*ListBasesResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &ListBasesResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Lists the bases in a reference, optionally restricted to a range.\n\nImplements\n[GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).",
-	//   "flatPath": "v1/references/{referenceId}/bases",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.references.bases.list",
-	//   "parameterOrder": [
-	//     "referenceId"
-	//   ],
-	//   "parameters": {
-	//     "end": {
-	//       "description": "The end position (0-based, exclusive) of this query. Defaults to the length\nof this reference.",
-	//       "format": "int64",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "pageSize": {
-	//       "description": "The maximum number of bases to return in a single page. If unspecified,\ndefaults to 200Kbp (kilo base pairs). The maximum value is 10Mbp (mega base\npairs).",
-	//       "format": "int32",
-	//       "location": "query",
-	//       "type": "integer"
-	//     },
-	//     "pageToken": {
-	//       "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "referenceId": {
-	//       "description": "The ID of the reference.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     },
-	//     "start": {
-	//       "description": "The start position (0-based) of this query. Defaults to 0.",
-	//       "format": "int64",
-	//       "location": "query",
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/references/{referenceId}/bases",
-	//   "response": {
-	//     "$ref": "ListBasesResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *ReferencesBasesListCall) Pages(ctx context.Context, f func(*ListBasesResponse) error) error {
-	c.ctx_ = ctx
-	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.PageToken(x.NextPageToken)
-	}
-}
-
-// method id "genomics.referencesets.get":
-
-type ReferencesetsGetCall struct {
-	s              *Service
-	referenceSetId string
-	urlParams_     gensupport.URLParams
-	ifNoneMatch_   string
-	ctx_           context.Context
-	header_        http.Header
-}
-
-// Get: Gets a reference
-// set.
-//
-// Implements
-// [GlobalAllianceApi.getReferenceSet](https://github.co
-// m/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.a
-// vdl#L83).
-func (r *ReferencesetsService) Get(referenceSetId string) *ReferencesetsGetCall {
-	c := &ReferencesetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.referenceSetId = referenceSetId
-	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 *ReferencesetsGetCall) Fields(s ...googleapi.Field) *ReferencesetsGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *ReferencesetsGetCall) IfNoneMatch(entityTag string) *ReferencesetsGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReferencesetsGetCall) Context(ctx context.Context) *ReferencesetsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReferencesetsGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReferencesetsGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/referencesets/{referenceSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"referenceSetId": c.referenceSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.referencesets.get" call.
-// Exactly one of *ReferenceSet or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *ReferenceSet.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 *ReferencesetsGetCall) Do(opts ...googleapi.CallOption) (*ReferenceSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &ReferenceSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a reference set.\n\nImplements\n[GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).",
-	//   "flatPath": "v1/referencesets/{referenceSetId}",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.referencesets.get",
-	//   "parameterOrder": [
-	//     "referenceSetId"
-	//   ],
-	//   "parameters": {
-	//     "referenceSetId": {
-	//       "description": "The ID of the reference set.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/referencesets/{referenceSetId}",
-	//   "response": {
-	//     "$ref": "ReferenceSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.referencesets.search":
-
-type ReferencesetsSearchCall struct {
-	s                          *Service
-	searchreferencesetsrequest *SearchReferenceSetsRequest
-	urlParams_                 gensupport.URLParams
-	ctx_                       context.Context
-	header_                    http.Header
-}
-
-// Search: Searches for reference sets which match the given
-// criteria.
-//
-// Implements
-// [GlobalAllianceApi.searchReferenceSets](https://
-// github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/reference
-// methods.avdl#L71)
-func (r *ReferencesetsService) Search(searchreferencesetsrequest *SearchReferenceSetsRequest) *ReferencesetsSearchCall {
-	c := &ReferencesetsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.searchreferencesetsrequest = searchreferencesetsrequest
-	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 *ReferencesetsSearchCall) Fields(s ...googleapi.Field) *ReferencesetsSearchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *ReferencesetsSearchCall) Context(ctx context.Context) *ReferencesetsSearchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *ReferencesetsSearchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *ReferencesetsSearchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchreferencesetsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/referencesets/search")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.referencesets.search" call.
-// Exactly one of *SearchReferenceSetsResponse or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *SearchReferenceSetsResponse.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 *ReferencesetsSearchCall) Do(opts ...googleapi.CallOption) (*SearchReferenceSetsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &SearchReferenceSetsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Searches for reference sets which match the given criteria.\n\nImplements\n[GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)",
-	//   "flatPath": "v1/referencesets/search",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.referencesets.search",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/referencesets/search",
-	//   "request": {
-	//     "$ref": "SearchReferenceSetsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "SearchReferenceSetsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *ReferencesetsSearchCall) Pages(ctx context.Context, f func(*SearchReferenceSetsResponse) error) error {
-	c.ctx_ = ctx
-	defer func(pt string) { c.searchreferencesetsrequest.PageToken = pt }(c.searchreferencesetsrequest.PageToken) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.searchreferencesetsrequest.PageToken = x.NextPageToken
-	}
-}
-
-// method id "genomics.variants.create":
-
-type VariantsCreateCall struct {
-	s          *Service
-	variant    *Variant
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Create: Creates a new variant.
-func (r *VariantsService) Create(variant *Variant) *VariantsCreateCall {
-	c := &VariantsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.variant = variant
-	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 *VariantsCreateCall) Fields(s ...googleapi.Field) *VariantsCreateCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsCreateCall) Context(ctx context.Context) *VariantsCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsCreateCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsCreateCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.variant)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variants")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variants.create" call.
-// Exactly one of *Variant or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Variant.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 *VariantsCreateCall) Do(opts ...googleapi.CallOption) (*Variant, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Variant{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates a new variant.",
-	//   "flatPath": "v1/variants",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.variants.create",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/variants",
-	//   "request": {
-	//     "$ref": "Variant"
-	//   },
-	//   "response": {
-	//     "$ref": "Variant"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variants.delete":
-
-type VariantsDeleteCall struct {
-	s          *Service
-	variantId  string
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Delete: Deletes a variant.
-func (r *VariantsService) Delete(variantId string) *VariantsDeleteCall {
-	c := &VariantsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.variantId = variantId
-	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 *VariantsDeleteCall) Fields(s ...googleapi.Field) *VariantsDeleteCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsDeleteCall) Context(ctx context.Context) *VariantsDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsDeleteCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsDeleteCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variants/{variantId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("DELETE", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"variantId": c.variantId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variants.delete" call.
-// Exactly one of *Empty or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Empty.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 *VariantsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Empty{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Deletes a variant.",
-	//   "flatPath": "v1/variants/{variantId}",
-	//   "httpMethod": "DELETE",
-	//   "id": "genomics.variants.delete",
-	//   "parameterOrder": [
-	//     "variantId"
-	//   ],
-	//   "parameters": {
-	//     "variantId": {
-	//       "description": "The ID of the variant to be deleted.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/variants/{variantId}",
-	//   "response": {
-	//     "$ref": "Empty"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variants.get":
-
-type VariantsGetCall struct {
-	s            *Service
-	variantId    string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Get: Gets a variant by ID.
-func (r *VariantsService) Get(variantId string) *VariantsGetCall {
-	c := &VariantsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.variantId = variantId
-	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 *VariantsGetCall) Fields(s ...googleapi.Field) *VariantsGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *VariantsGetCall) IfNoneMatch(entityTag string) *VariantsGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsGetCall) Context(ctx context.Context) *VariantsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variants/{variantId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"variantId": c.variantId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variants.get" call.
-// Exactly one of *Variant or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Variant.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 *VariantsGetCall) Do(opts ...googleapi.CallOption) (*Variant, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Variant{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a variant by ID.",
-	//   "flatPath": "v1/variants/{variantId}",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.variants.get",
-	//   "parameterOrder": [
-	//     "variantId"
-	//   ],
-	//   "parameters": {
-	//     "variantId": {
-	//       "description": "The ID of the variant.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/variants/{variantId}",
-	//   "response": {
-	//     "$ref": "Variant"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variants.import":
-
-type VariantsImportCall struct {
-	s                     *Service
-	importvariantsrequest *ImportVariantsRequest
-	urlParams_            gensupport.URLParams
-	ctx_                  context.Context
-	header_               http.Header
-}
-
-// Import: Creates variant data by asynchronously importing the provided
-// information.
-//
-// The variants for import will be merged with any existing variant
-// that
-// matches its reference sequence, start, end, reference bases,
-// and
-// alternative bases. If no such variant exists, a new one will be
-// created.
-//
-// When variants are merged, the call information from the new
-// variant
-// is added to the existing variant, and Variant info fields are
-// merged
-// as specified in
-// infoMergeConfig.
-// As a special case, for single-sample VCF files, QUAL and FILTER
-// fields will
-// be moved to the call level; these are sometimes interpreted in
-// a
-// call-specific context.
-// Imported VCF headers are appended to the metadata already in a
-// variant set.
-func (r *VariantsService) Import(importvariantsrequest *ImportVariantsRequest) *VariantsImportCall {
-	c := &VariantsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.importvariantsrequest = importvariantsrequest
-	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 *VariantsImportCall) Fields(s ...googleapi.Field) *VariantsImportCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsImportCall) Context(ctx context.Context) *VariantsImportCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsImportCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsImportCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.importvariantsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variants:import")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variants.import" 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 *VariantsImportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Operation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates variant data by asynchronously importing the provided information.\n\nThe variants for import will be merged with any existing variant that\nmatches its reference sequence, start, end, reference bases, and\nalternative bases. If no such variant exists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant, and Variant info fields are merged\nas specified in\ninfoMergeConfig.\nAs a special case, for single-sample VCF files, QUAL and FILTER fields will\nbe moved to the call level; these are sometimes interpreted in a\ncall-specific context.\nImported VCF headers are appended to the metadata already in a variant set.",
-	//   "flatPath": "v1/variants:import",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.variants.import",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/variants:import",
-	//   "request": {
-	//     "$ref": "ImportVariantsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "Operation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/devstorage.read_write",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variants.merge":
-
-type VariantsMergeCall struct {
-	s                    *Service
-	mergevariantsrequest *MergeVariantsRequest
-	urlParams_           gensupport.URLParams
-	ctx_                 context.Context
-	header_              http.Header
-}
-
-// Merge: Merges the given variants with existing variants.
-//
-// Each variant will be
-// merged with an existing variant that matches its reference
-// sequence,
-// start, end, reference bases, and alternative bases. If no such
-// variant
-// exists, a new one will be created.
-//
-// When variants are merged, the call information from the new
-// variant
-// is added to the existing variant. Variant info fields are merged
-// as
-// specified in the
-// infoMergeConfig
-// field of the MergeVariantsRequest.
-//
-// Please exercise caution when using this method!  It is easy to
-// introduce
-// mistakes in existing variants and difficult to back out of them.
-// For
-// example,
-// suppose you were trying to merge a new variant with an existing one
-// and
-// both
-// variants contain calls that belong to callsets with the same callset
-// ID.
-//
-//     // Existing variant - irrelevant fields trimmed for clarity
-//     {
-//         "variantSetId": "10473108253681171589",
-//         "referenceName": "1",
-//         "start": "10582",
-//         "referenceBases": "G",
-//         "alternateBases": [
-//             "A"
-//         ],
-//         "calls": [
-//             {
-//                 "callSetId": "10473108253681171589-0",
-//                 "callSetName": "CALLSET0",
-//                 "genotype": [
-//                     0,
-//                     1
-//                 ],
-//             }
-//         ]
-//     }
-//
-//     // New variant with conflicting call information
-//     {
-//         "variantSetId": "10473108253681171589",
-//         "referenceName": "1",
-//         "start": "10582",
-//         "referenceBases": "G",
-//         "alternateBases": [
-//             "A"
-//         ],
-//         "calls": [
-//             {
-//                 "callSetId": "10473108253681171589-0",
-//                 "callSetName": "CALLSET0",
-//                 "genotype": [
-//                     1,
-//                     1
-//                 ],
-//             }
-//         ]
-//     }
-//
-// The resulting merged variant would overwrite the existing calls with
-// those
-// from the new variant:
-//
-//     {
-//         "variantSetId": "10473108253681171589",
-//         "referenceName": "1",
-//         "start": "10582",
-//         "referenceBases": "G",
-//         "alternateBases": [
-//             "A"
-//         ],
-//         "calls": [
-//             {
-//                 "callSetId": "10473108253681171589-0",
-//                 "callSetName": "CALLSET0",
-//                 "genotype": [
-//                     1,
-//                     1
-//                 ],
-//             }
-//         ]
-//     }
-//
-// This may be the desired outcome, but it is up to the user to
-// determine if
-// if that is indeed the case.
-func (r *VariantsService) Merge(mergevariantsrequest *MergeVariantsRequest) *VariantsMergeCall {
-	c := &VariantsMergeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.mergevariantsrequest = mergevariantsrequest
-	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 *VariantsMergeCall) Fields(s ...googleapi.Field) *VariantsMergeCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsMergeCall) Context(ctx context.Context) *VariantsMergeCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsMergeCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsMergeCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.mergevariantsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variants:merge")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variants.merge" call.
-// Exactly one of *Empty or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Empty.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 *VariantsMergeCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Empty{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Merges the given variants with existing variants.\n\nEach variant will be\nmerged with an existing variant that matches its reference sequence,\nstart, end, reference bases, and alternative bases. If no such variant\nexists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant\nis added to the existing variant. Variant info fields are merged as\nspecified in the\ninfoMergeConfig\nfield of the MergeVariantsRequest.\n\nPlease exercise caution when using this method!  It is easy to introduce\nmistakes in existing variants and difficult to back out of them.  For\nexample,\nsuppose you were trying to merge a new variant with an existing one and\nboth\nvariants contain calls that belong to callsets with the same callset ID.\n\n    // Existing variant - irrelevant fields trimmed for clarity\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    0,\n                    1\n                ],\n            }\n        ]\n    }\n\n    // New variant with conflicting call information\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThe resulting merged variant would overwrite the existing calls with those\nfrom the new variant:\n\n    {\n        \"variantSetId\": \"10473108253681171589\",\n        \"referenceName\": \"1\",\n        \"start\": \"10582\",\n        \"referenceBases\": \"G\",\n        \"alternateBases\": [\n            \"A\"\n        ],\n        \"calls\": [\n            {\n                \"callSetId\": \"10473108253681171589-0\",\n                \"callSetName\": \"CALLSET0\",\n                \"genotype\": [\n                    1,\n                    1\n                ],\n            }\n        ]\n    }\n\nThis may be the desired outcome, but it is up to the user to determine if\nif that is indeed the case.",
-	//   "flatPath": "v1/variants:merge",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.variants.merge",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/variants:merge",
-	//   "request": {
-	//     "$ref": "MergeVariantsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "Empty"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variants.patch":
-
-type VariantsPatchCall struct {
-	s          *Service
-	variantId  string
-	variant    *Variant
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Patch: Updates a variant.
-//
-// This method supports patch semantics. Returns the modified variant
-// without
-// its calls.
-func (r *VariantsService) Patch(variantId string, variant *Variant) *VariantsPatchCall {
-	c := &VariantsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.variantId = variantId
-	c.variant = variant
-	return c
-}
-
-// UpdateMask sets the optional parameter "updateMask": An optional mask
-// specifying which fields to update. At this time, mutable
-// fields are names and
-// info. Acceptable values are "names" and
-// "info". If unspecified, all mutable fields will be updated.
-func (c *VariantsPatchCall) UpdateMask(updateMask string) *VariantsPatchCall {
-	c.urlParams_.Set("updateMask", updateMask)
-	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 *VariantsPatchCall) Fields(s ...googleapi.Field) *VariantsPatchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsPatchCall) Context(ctx context.Context) *VariantsPatchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsPatchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsPatchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.variant)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variants/{variantId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("PATCH", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"variantId": c.variantId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variants.patch" call.
-// Exactly one of *Variant or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Variant.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 *VariantsPatchCall) Do(opts ...googleapi.CallOption) (*Variant, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Variant{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Updates a variant.\n\nThis method supports patch semantics. Returns the modified variant without\nits calls.",
-	//   "flatPath": "v1/variants/{variantId}",
-	//   "httpMethod": "PATCH",
-	//   "id": "genomics.variants.patch",
-	//   "parameterOrder": [
-	//     "variantId"
-	//   ],
-	//   "parameters": {
-	//     "updateMask": {
-	//       "description": "An optional mask specifying which fields to update. At this time, mutable\nfields are names and\ninfo. Acceptable values are \"names\" and\n\"info\". If unspecified, all mutable fields will be updated.",
-	//       "format": "google-fieldmask",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "variantId": {
-	//       "description": "The ID of the variant to be updated.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/variants/{variantId}",
-	//   "request": {
-	//     "$ref": "Variant"
-	//   },
-	//   "response": {
-	//     "$ref": "Variant"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variants.search":
-
-type VariantsSearchCall struct {
-	s                     *Service
-	searchvariantsrequest *SearchVariantsRequest
-	urlParams_            gensupport.URLParams
-	ctx_                  context.Context
-	header_               http.Header
-}
-
-// Search: Gets a list of variants matching the
-// criteria.
-//
-// Implements
-// [GlobalAllianceApi.searchVariants](https://githu
-// b.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods
-// .avdl#L126).
-func (r *VariantsService) Search(searchvariantsrequest *SearchVariantsRequest) *VariantsSearchCall {
-	c := &VariantsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.searchvariantsrequest = searchvariantsrequest
-	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 *VariantsSearchCall) Fields(s ...googleapi.Field) *VariantsSearchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsSearchCall) Context(ctx context.Context) *VariantsSearchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsSearchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsSearchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchvariantsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variants/search")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variants.search" call.
-// Exactly one of *SearchVariantsResponse or error will be non-nil. Any
-// non-2xx status code is an error. Response headers are in either
-// *SearchVariantsResponse.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 *VariantsSearchCall) Do(opts ...googleapi.CallOption) (*SearchVariantsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &SearchVariantsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a list of variants matching the criteria.\n\nImplements\n[GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).",
-	//   "flatPath": "v1/variants/search",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.variants.search",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/variants/search",
-	//   "request": {
-	//     "$ref": "SearchVariantsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "SearchVariantsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *VariantsSearchCall) Pages(ctx context.Context, f func(*SearchVariantsResponse) error) error {
-	c.ctx_ = ctx
-	defer func(pt string) { c.searchvariantsrequest.PageToken = pt }(c.searchvariantsrequest.PageToken) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.searchvariantsrequest.PageToken = x.NextPageToken
-	}
-}
-
-// method id "genomics.variantsets.create":
-
-type VariantsetsCreateCall struct {
-	s          *Service
-	variantset *VariantSet
-	urlParams_ gensupport.URLParams
-	ctx_       context.Context
-	header_    http.Header
-}
-
-// Create: Creates a new variant set.
-//
-// The provided variant set must have a valid `datasetId` set - all
-// other
-// fields are optional. Note that the `id` field will be ignored, as
-// this is
-// assigned by the server.
-func (r *VariantsetsService) Create(variantset *VariantSet) *VariantsetsCreateCall {
-	c := &VariantsetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.variantset = variantset
-	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 *VariantsetsCreateCall) Fields(s ...googleapi.Field) *VariantsetsCreateCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsetsCreateCall) Context(ctx context.Context) *VariantsetsCreateCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsetsCreateCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsetsCreateCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.variantset)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variantsets")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variantsets.create" call.
-// Exactly one of *VariantSet or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *VariantSet.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 *VariantsetsCreateCall) Do(opts ...googleapi.CallOption) (*VariantSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &VariantSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Creates a new variant set.\n\nThe provided variant set must have a valid `datasetId` set - all other\nfields are optional. Note that the `id` field will be ignored, as this is\nassigned by the server.",
-	//   "flatPath": "v1/variantsets",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.variantsets.create",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/variantsets",
-	//   "request": {
-	//     "$ref": "VariantSet"
-	//   },
-	//   "response": {
-	//     "$ref": "VariantSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variantsets.delete":
-
-type VariantsetsDeleteCall struct {
-	s            *Service
-	variantSetId string
-	urlParams_   gensupport.URLParams
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Delete: Deletes a variant set including all variants, call sets, and
-// calls within.
-// This is not reversible.
-func (r *VariantsetsService) Delete(variantSetId string) *VariantsetsDeleteCall {
-	c := &VariantsetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.variantSetId = variantSetId
-	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 *VariantsetsDeleteCall) Fields(s ...googleapi.Field) *VariantsetsDeleteCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsetsDeleteCall) Context(ctx context.Context) *VariantsetsDeleteCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsetsDeleteCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsetsDeleteCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variantsets/{variantSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("DELETE", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"variantSetId": c.variantSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variantsets.delete" call.
-// Exactly one of *Empty or error will be non-nil. Any non-2xx status
-// code is an error. Response headers are in either
-// *Empty.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 *VariantsetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Empty{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Deletes a variant set including all variants, call sets, and calls within.\nThis is not reversible.",
-	//   "flatPath": "v1/variantsets/{variantSetId}",
-	//   "httpMethod": "DELETE",
-	//   "id": "genomics.variantsets.delete",
-	//   "parameterOrder": [
-	//     "variantSetId"
-	//   ],
-	//   "parameters": {
-	//     "variantSetId": {
-	//       "description": "The ID of the variant set to be deleted.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/variantsets/{variantSetId}",
-	//   "response": {
-	//     "$ref": "Empty"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variantsets.export":
-
-type VariantsetsExportCall struct {
-	s                       *Service
-	variantSetId            string
-	exportvariantsetrequest *ExportVariantSetRequest
-	urlParams_              gensupport.URLParams
-	ctx_                    context.Context
-	header_                 http.Header
-}
-
-// Export: Exports variant set data to an external destination.
-func (r *VariantsetsService) Export(variantSetId string, exportvariantsetrequest *ExportVariantSetRequest) *VariantsetsExportCall {
-	c := &VariantsetsExportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.variantSetId = variantSetId
-	c.exportvariantsetrequest = exportvariantsetrequest
-	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 *VariantsetsExportCall) Fields(s ...googleapi.Field) *VariantsetsExportCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsetsExportCall) Context(ctx context.Context) *VariantsetsExportCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsetsExportCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsetsExportCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.exportvariantsetrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variantsets/{variantSetId}:export")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"variantSetId": c.variantSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variantsets.export" 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 *VariantsetsExportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &Operation{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Exports variant set data to an external destination.",
-	//   "flatPath": "v1/variantsets/{variantSetId}:export",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.variantsets.export",
-	//   "parameterOrder": [
-	//     "variantSetId"
-	//   ],
-	//   "parameters": {
-	//     "variantSetId": {
-	//       "description": "Required. The ID of the variant set that contains variant data which\nshould be exported. The caller must have READ access to this variant set.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/variantsets/{variantSetId}:export",
-	//   "request": {
-	//     "$ref": "ExportVariantSetRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "Operation"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/bigquery",
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variantsets.get":
-
-type VariantsetsGetCall struct {
-	s            *Service
-	variantSetId string
-	urlParams_   gensupport.URLParams
-	ifNoneMatch_ string
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Get: Gets a variant set by ID.
-func (r *VariantsetsService) Get(variantSetId string) *VariantsetsGetCall {
-	c := &VariantsetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.variantSetId = variantSetId
-	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 *VariantsetsGetCall) Fields(s ...googleapi.Field) *VariantsetsGetCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// IfNoneMatch sets the optional parameter which makes the operation
-// fail if the object's ETag matches the given value. This is useful for
-// getting updates only after the object has changed since the last
-// request. Use googleapi.IsNotModified to check whether the response
-// error from Do is the result of In-None-Match.
-func (c *VariantsetsGetCall) IfNoneMatch(entityTag string) *VariantsetsGetCall {
-	c.ifNoneMatch_ = entityTag
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsetsGetCall) Context(ctx context.Context) *VariantsetsGetCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsetsGetCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsetsGetCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	if c.ifNoneMatch_ != "" {
-		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
-	}
-	var body io.Reader = nil
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variantsets/{variantSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("GET", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"variantSetId": c.variantSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variantsets.get" call.
-// Exactly one of *VariantSet or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *VariantSet.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 *VariantsetsGetCall) Do(opts ...googleapi.CallOption) (*VariantSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &VariantSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Gets a variant set by ID.",
-	//   "flatPath": "v1/variantsets/{variantSetId}",
-	//   "httpMethod": "GET",
-	//   "id": "genomics.variantsets.get",
-	//   "parameterOrder": [
-	//     "variantSetId"
-	//   ],
-	//   "parameters": {
-	//     "variantSetId": {
-	//       "description": "Required. The ID of the variant set.",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/variantsets/{variantSetId}",
-	//   "response": {
-	//     "$ref": "VariantSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variantsets.patch":
-
-type VariantsetsPatchCall struct {
-	s            *Service
-	variantSetId string
-	variantset   *VariantSet
-	urlParams_   gensupport.URLParams
-	ctx_         context.Context
-	header_      http.Header
-}
-
-// Patch: Updates a variant set using patch semantics.
-func (r *VariantsetsService) Patch(variantSetId string, variantset *VariantSet) *VariantsetsPatchCall {
-	c := &VariantsetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.variantSetId = variantSetId
-	c.variantset = variantset
-	return c
-}
-
-// UpdateMask sets the optional parameter "updateMask": An optional mask
-// specifying which fields to update. Supported fields:
-//
-// * metadata.
-// * name.
-// * description.
-//
-// Leaving `updateMask` unset is equivalent to specifying all
-// mutable
-// fields.
-func (c *VariantsetsPatchCall) UpdateMask(updateMask string) *VariantsetsPatchCall {
-	c.urlParams_.Set("updateMask", updateMask)
-	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 *VariantsetsPatchCall) Fields(s ...googleapi.Field) *VariantsetsPatchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsetsPatchCall) Context(ctx context.Context) *VariantsetsPatchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsetsPatchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsetsPatchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.variantset)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variantsets/{variantSetId}")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("PATCH", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	googleapi.Expand(req.URL, map[string]string{
-		"variantSetId": c.variantSetId,
-	})
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variantsets.patch" call.
-// Exactly one of *VariantSet or error will be non-nil. Any non-2xx
-// status code is an error. Response headers are in either
-// *VariantSet.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 *VariantsetsPatchCall) Do(opts ...googleapi.CallOption) (*VariantSet, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &VariantSet{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Updates a variant set using patch semantics.",
-	//   "flatPath": "v1/variantsets/{variantSetId}",
-	//   "httpMethod": "PATCH",
-	//   "id": "genomics.variantsets.patch",
-	//   "parameterOrder": [
-	//     "variantSetId"
-	//   ],
-	//   "parameters": {
-	//     "updateMask": {
-	//       "description": "An optional mask specifying which fields to update. Supported fields:\n\n* metadata.\n* name.\n* description.\n\nLeaving `updateMask` unset is equivalent to specifying all mutable\nfields.",
-	//       "format": "google-fieldmask",
-	//       "location": "query",
-	//       "type": "string"
-	//     },
-	//     "variantSetId": {
-	//       "description": "The ID of the variant to be updated (must already exist).",
-	//       "location": "path",
-	//       "required": true,
-	//       "type": "string"
-	//     }
-	//   },
-	//   "path": "v1/variantsets/{variantSetId}",
-	//   "request": {
-	//     "$ref": "VariantSet"
-	//   },
-	//   "response": {
-	//     "$ref": "VariantSet"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics"
-	//   ]
-	// }
-
-}
-
-// method id "genomics.variantsets.search":
-
-type VariantsetsSearchCall struct {
-	s                        *Service
-	searchvariantsetsrequest *SearchVariantSetsRequest
-	urlParams_               gensupport.URLParams
-	ctx_                     context.Context
-	header_                  http.Header
-}
-
-// Search: Returns a list of all variant sets matching search
-// criteria.
-//
-// Implements
-// [GlobalAllianceApi.searchVariantSets](https://gi
-// thub.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmeth
-// ods.avdl#L49).
-func (r *VariantsetsService) Search(searchvariantsetsrequest *SearchVariantSetsRequest) *VariantsetsSearchCall {
-	c := &VariantsetsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
-	c.searchvariantsetsrequest = searchvariantsetsrequest
-	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 *VariantsetsSearchCall) Fields(s ...googleapi.Field) *VariantsetsSearchCall {
-	c.urlParams_.Set("fields", googleapi.CombineFields(s))
-	return c
-}
-
-// Context sets the context to be used in this call's Do method. Any
-// pending HTTP request will be aborted if the provided context is
-// canceled.
-func (c *VariantsetsSearchCall) Context(ctx context.Context) *VariantsetsSearchCall {
-	c.ctx_ = ctx
-	return c
-}
-
-// Header returns an http.Header that can be modified by the caller to
-// add HTTP headers to the request.
-func (c *VariantsetsSearchCall) Header() http.Header {
-	if c.header_ == nil {
-		c.header_ = make(http.Header)
-	}
-	return c.header_
-}
-
-func (c *VariantsetsSearchCall) doRequest(alt string) (*http.Response, error) {
-	reqHeaders := make(http.Header)
-	for k, v := range c.header_ {
-		reqHeaders[k] = v
-	}
-	reqHeaders.Set("User-Agent", c.s.userAgent())
-	var body io.Reader = nil
-	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchvariantsetsrequest)
-	if err != nil {
-		return nil, err
-	}
-	reqHeaders.Set("Content-Type", "application/json")
-	c.urlParams_.Set("alt", alt)
-	c.urlParams_.Set("prettyPrint", "false")
-	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/variantsets/search")
-	urls += "?" + c.urlParams_.Encode()
-	req, err := http.NewRequest("POST", urls, body)
-	if err != nil {
-		return nil, err
-	}
-	req.Header = reqHeaders
-	return gensupport.SendRequest(c.ctx_, c.s.client, req)
-}
-
-// Do executes the "genomics.variantsets.search" call.
-// Exactly one of *SearchVariantSetsResponse or error will be non-nil.
-// Any non-2xx status code is an error. Response headers are in either
-// *SearchVariantSetsResponse.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 *VariantsetsSearchCall) Do(opts ...googleapi.CallOption) (*SearchVariantSetsResponse, error) {
-	gensupport.SetOptions(c.urlParams_, opts...)
-	res, err := c.doRequest("json")
-	if res != nil && res.StatusCode == http.StatusNotModified {
-		if res.Body != nil {
-			res.Body.Close()
-		}
-		return nil, &googleapi.Error{
-			Code:   res.StatusCode,
-			Header: res.Header,
-		}
-	}
-	if err != nil {
-		return nil, err
-	}
-	defer googleapi.CloseBody(res)
-	if err := googleapi.CheckResponse(res); err != nil {
-		return nil, err
-	}
-	ret := &SearchVariantSetsResponse{
-		ServerResponse: googleapi.ServerResponse{
-			Header:         res.Header,
-			HTTPStatusCode: res.StatusCode,
-		},
-	}
-	target := &ret
-	if err := gensupport.DecodeResponse(target, res); err != nil {
-		return nil, err
-	}
-	return ret, nil
-	// {
-	//   "description": "Returns a list of all variant sets matching search criteria.\n\nImplements\n[GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).",
-	//   "flatPath": "v1/variantsets/search",
-	//   "httpMethod": "POST",
-	//   "id": "genomics.variantsets.search",
-	//   "parameterOrder": [],
-	//   "parameters": {},
-	//   "path": "v1/variantsets/search",
-	//   "request": {
-	//     "$ref": "SearchVariantSetsRequest"
-	//   },
-	//   "response": {
-	//     "$ref": "SearchVariantSetsResponse"
-	//   },
-	//   "scopes": [
-	//     "https://www.googleapis.com/auth/cloud-platform",
-	//     "https://www.googleapis.com/auth/genomics",
-	//     "https://www.googleapis.com/auth/genomics.readonly"
-	//   ]
-	// }
-
-}
-
-// Pages invokes f for each page of results.
-// A non-nil error returned from f will halt the iteration.
-// The provided context supersedes any context provided to the Context method.
-func (c *VariantsetsSearchCall) Pages(ctx context.Context, f func(*SearchVariantSetsResponse) error) error {
-	c.ctx_ = ctx
-	defer func(pt string) { c.searchvariantsetsrequest.PageToken = pt }(c.searchvariantsetsrequest.PageToken) // reset paging to original point
-	for {
-		x, err := c.Do()
-		if err != nil {
-			return err
-		}
-		if err := f(x); err != nil {
-			return err
-		}
-		if x.NextPageToken == "" {
-			return nil
-		}
-		c.searchvariantsetsrequest.PageToken = x.NextPageToken
-	}
-}
diff --git a/genomics/v1alpha2/genomics-gen.go b/genomics/v1alpha2/genomics-gen.go
index d444f3d..3eb8ed8 100644
--- a/genomics/v1alpha2/genomics-gen.go
+++ b/genomics/v1alpha2/genomics-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package genomics provides access to the Genomics API.
 //
-// See https://cloud.google.com/genomics
+// For product documentation, see: https://cloud.google.com/genomics
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/genomics/v1alpha2"
 //   ...
-//   genomicsService, err := genomics.New(oauthHttpClient)
+//   ctx := context.Background()
+//   genomicsService, err := genomics.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   genomicsService, err := genomics.NewService(ctx, option.WithScopes(genomics.GenomicsScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   genomicsService, err := genomics.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   genomicsService, err := genomics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package genomics // import "google.golang.org/api/genomics/v1alpha2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	GenomicsScope = "https://www.googleapis.com/auth/genomics"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/compute",
+		"https://www.googleapis.com/auth/genomics",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/genomics/v2alpha1/genomics-gen.go b/genomics/v2alpha1/genomics-gen.go
index d8b2730..1acea27 100644
--- a/genomics/v2alpha1/genomics-gen.go
+++ b/genomics/v2alpha1/genomics-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package genomics provides access to the Genomics API.
 //
-// See https://cloud.google.com/genomics
+// For product documentation, see: https://cloud.google.com/genomics
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/genomics/v2alpha1"
 //   ...
-//   genomicsService, err := genomics.New(oauthHttpClient)
+//   ctx := context.Background()
+//   genomicsService, err := genomics.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   genomicsService, err := genomics.NewService(ctx, option.WithScopes(genomics.GenomicsScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   genomicsService, err := genomics.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   genomicsService, err := genomics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package genomics // import "google.golang.org/api/genomics/v2alpha1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	GenomicsScope = "https://www.googleapis.com/auth/genomics"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/genomics",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/gmail/v1/gmail-gen.go b/gmail/v1/gmail-gen.go
index 1e0df26..3d506c3 100644
--- a/gmail/v1/gmail-gen.go
+++ b/gmail/v1/gmail-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package gmail provides access to the Gmail API.
 //
-// See https://developers.google.com/gmail/api/
+// For product documentation, see: https://developers.google.com/gmail/api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/gmail/v1"
 //   ...
-//   gmailService, err := gmail.New(oauthHttpClient)
+//   ctx := context.Background()
+//   gmailService, err := gmail.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   gmailService, err := gmail.NewService(ctx, option.WithScopes(gmail.GmailSettingsSharingScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   gmailService, err := gmail.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   gmailService, err := gmail.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package gmail // import "google.golang.org/api/gmail/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -85,6 +113,41 @@
 	GmailSettingsSharingScope = "https://www.googleapis.com/auth/gmail.settings.sharing"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://mail.google.com/",
+		"https://www.googleapis.com/auth/gmail.compose",
+		"https://www.googleapis.com/auth/gmail.insert",
+		"https://www.googleapis.com/auth/gmail.labels",
+		"https://www.googleapis.com/auth/gmail.metadata",
+		"https://www.googleapis.com/auth/gmail.modify",
+		"https://www.googleapis.com/auth/gmail.readonly",
+		"https://www.googleapis.com/auth/gmail.send",
+		"https://www.googleapis.com/auth/gmail.settings.basic",
+		"https://www.googleapis.com/auth/gmail.settings.sharing",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/groupsmigration/v1/groupsmigration-gen.go b/groupsmigration/v1/groupsmigration-gen.go
index 96d633f..53e3a87 100644
--- a/groupsmigration/v1/groupsmigration-gen.go
+++ b/groupsmigration/v1/groupsmigration-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package groupsmigration provides access to the Groups Migration API.
 //
-// See https://developers.google.com/google-apps/groups-migration/
+// For product documentation, see: https://developers.google.com/google-apps/groups-migration/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/groupsmigration/v1"
 //   ...
-//   groupsmigrationService, err := groupsmigration.New(oauthHttpClient)
+//   ctx := context.Background()
+//   groupsmigrationService, err := groupsmigration.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   groupsmigrationService, err := groupsmigration.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   groupsmigrationService, err := groupsmigration.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package groupsmigration // import "google.golang.org/api/groupsmigration/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AppsGroupsMigrationScope = "https://www.googleapis.com/auth/apps.groups.migration"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/apps.groups.migration",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/groupssettings/v1/groupssettings-gen.go b/groupssettings/v1/groupssettings-gen.go
index 8cc0a5c..a4c07d9 100644
--- a/groupssettings/v1/groupssettings-gen.go
+++ b/groupssettings/v1/groupssettings-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package groupssettings provides access to the Groups Settings API.
 //
-// See https://developers.google.com/google-apps/groups-settings/get_started
+// For product documentation, see: https://developers.google.com/google-apps/groups-settings/get_started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/groupssettings/v1"
 //   ...
-//   groupssettingsService, err := groupssettings.New(oauthHttpClient)
+//   ctx := context.Background()
+//   groupssettingsService, err := groupssettings.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   groupssettingsService, err := groupssettings.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   groupssettingsService, err := groupssettings.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package groupssettings // import "google.golang.org/api/groupssettings/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AppsGroupsSettingsScope = "https://www.googleapis.com/auth/apps.groups.settings"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/apps.groups.settings",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/healthcare/v1alpha/healthcare-gen.go b/healthcare/v1alpha/healthcare-gen.go
index ec4a6ca..b87fe34 100644
--- a/healthcare/v1alpha/healthcare-gen.go
+++ b/healthcare/v1alpha/healthcare-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package healthcare provides access to the Cloud Healthcare API.
 //
-// See https://cloud.google.com/healthcare
+// For product documentation, see: https://cloud.google.com/healthcare
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/healthcare/v1alpha"
 //   ...
-//   healthcareService, err := healthcare.New(oauthHttpClient)
+//   ctx := context.Background()
+//   healthcareService, err := healthcare.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   healthcareService, err := healthcare.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   healthcareService, err := healthcare.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package healthcare // import "google.golang.org/api/healthcare/v1alpha"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/healthcare/v1alpha2/healthcare-gen.go b/healthcare/v1alpha2/healthcare-gen.go
index 3d8c63a..7df7cca 100644
--- a/healthcare/v1alpha2/healthcare-gen.go
+++ b/healthcare/v1alpha2/healthcare-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package healthcare provides access to the Cloud Healthcare API.
 //
-// See https://cloud.google.com/healthcare
+// For product documentation, see: https://cloud.google.com/healthcare
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/healthcare/v1alpha2"
 //   ...
-//   healthcareService, err := healthcare.New(oauthHttpClient)
+//   ctx := context.Background()
+//   healthcareService, err := healthcare.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   healthcareService, err := healthcare.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   healthcareService, err := healthcare.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package healthcare // import "google.golang.org/api/healthcare/v1alpha2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/iam/v1/iam-api.json b/iam/v1/iam-api.json
index 5daf180..b7280ce 100644
--- a/iam/v1/iam-api.json
+++ b/iam/v1/iam-api.json
@@ -709,7 +709,7 @@
               ]
             },
             "getIamPolicy": {
-              "description": "Returns the Cloud IAM access control policy for a\nServiceAccount.\n\nNote: Service accounts are both\n[resources and identities](/iam/docs/service-accounts#service_account_permissions).\nThis method treats the service account as a resource. It returns the Cloud\nIAM policy that reflects what members have access to the service account.\n\nThis method does not return what resources the service account has access\nto. To see if a service account has access to a resource, call the\n`getIamPolicy` method on the target resource. For example, to view grants\nfor a project, call the\n[projects.getIamPolicy](/resource-manager/reference/rest/v1/projects/getIamPolicy)\nmethod.",
+              "description": "Returns the Cloud IAM access control policy for a\nServiceAccount.\n\nNote: Service accounts are both\n[resources and\nidentities](/iam/docs/service-accounts#service_account_permissions). This\nmethod treats the service account as a resource. It returns the Cloud IAM\npolicy that reflects what members have access to the service account.\n\nThis method does not return what resources the service account has access\nto. To see if a service account has access to a resource, call the\n`getIamPolicy` method on the target resource. For example, to view grants\nfor a project, call the\n[projects.getIamPolicy](/resource-manager/reference/rest/v1/projects/getIamPolicy)\nmethod.",
               "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:getIamPolicy",
               "httpMethod": "POST",
               "id": "iam.projects.serviceAccounts.getIamPolicy",
@@ -769,8 +769,36 @@
                 "https://www.googleapis.com/auth/cloud-platform"
               ]
             },
+            "patch": {
+              "description": "Patches a ServiceAccount.\n\nCurrently, only the following fields are updatable:\n`display_name` and `description`.\n\nOnly fields specified in the request are guaranteed to be returned in\nthe response. Other fields in the response may be empty.\n\nNote: The field mask is required.",
+              "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}",
+              "httpMethod": "PATCH",
+              "id": "iam.projects.serviceAccounts.patch",
+              "parameterOrder": [
+                "name"
+              ],
+              "parameters": {
+                "name": {
+                  "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\n\nRequests using `-` as a wildcard for the `PROJECT_ID` will infer the\nproject from the `account` and the `ACCOUNT` value can be the `email`\naddress or the `unique_id` of the service account.\n\nIn responses the resource name will always be in the format\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.",
+                  "location": "path",
+                  "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+name}",
+              "request": {
+                "$ref": "PatchServiceAccountRequest"
+              },
+              "response": {
+                "$ref": "ServiceAccount"
+              },
+              "scopes": [
+                "https://www.googleapis.com/auth/cloud-platform"
+              ]
+            },
             "setIamPolicy": {
-              "description": "Sets the Cloud IAM access control policy for a\nServiceAccount.\n\nNote: Service accounts are both\n[resources and identities](/iam/docs/service-accounts#service_account_permissions).\nThis method treats the service account as a resource. Use it to grant\nmembers access to the service account, such as when they need to\nimpersonate it.\n\nThis method does not grant the service account access to other resources,\nsuch as projects. To grant a service account access to resources, include\nthe service account in the Cloud IAM policy for the desired resource, then\ncall the appropriate `setIamPolicy` method on the target resource. For\nexample, to grant a service account access to a project, call the\n[projects.setIamPolicy](/resource-manager/reference/rest/v1/projects/setIamPolicy)\nmethod.",
+              "description": "Sets the Cloud IAM access control policy for a\nServiceAccount.\n\nNote: Service accounts are both\n[resources and\nidentities](/iam/docs/service-accounts#service_account_permissions). This\nmethod treats the service account as a resource. Use it to grant members\naccess to the service account, such as when they need to impersonate it.\n\nThis method does not grant the service account access to other resources,\nsuch as projects. To grant a service account access to resources, include\nthe service account in the Cloud IAM policy for the desired resource, then\ncall the appropriate `setIamPolicy` method on the target resource. For\nexample, to grant a service account access to a project, call the\n[projects.setIamPolicy](/resource-manager/reference/rest/v1/projects/setIamPolicy)\nmethod.",
               "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:setIamPolicy",
               "httpMethod": "POST",
               "id": "iam.projects.serviceAccounts.setIamPolicy",
@@ -1165,7 +1193,7 @@
       }
     }
   },
-  "revision": "20190301",
+  "revision": "20190308",
   "rootUrl": "https://iam.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -1559,6 +1587,20 @@
       },
       "type": "object"
     },
+    "PatchServiceAccountRequest": {
+      "description": "The patch service account request.",
+      "id": "PatchServiceAccountRequest",
+      "properties": {
+        "serviceAccount": {
+          "$ref": "ServiceAccount"
+        },
+        "updateMask": {
+          "format": "google-fieldmask",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "Permission": {
       "description": "A permission which can be included by a role.",
       "id": "Permission",
@@ -1832,6 +1874,10 @@
       "description": "A service account in the Identity and Access Management API.\n\nTo create a service account, specify the `project_id` and the `account_id`\nfor the account.  The `account_id` is unique within the project, and is used\nto generate the service account email address and a stable\n`unique_id`.\n\nIf the account already exists, the account's resource name is returned\nin the format of projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}. The caller\ncan use the name in other methods to access the account.\n\nAll other methods can identify the service account using the format\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\nUsing `-` as a wildcard for the `PROJECT_ID` will infer the project from\nthe account. The `ACCOUNT` value can be the `email` address or the\n`unique_id` of the service account.",
       "id": "ServiceAccount",
       "properties": {
+        "description": {
+          "description": "Optional. A user-specified opaque description of the service account.\nMust be less than or equal to 256 UTF-8 bytes.",
+          "type": "string"
+        },
         "disabled": {
           "description": "@OutputOnly A bool indicate if the service account is disabled.\nThe field is currently in alpha phase.",
           "type": "boolean"
diff --git a/iam/v1/iam-gen.go b/iam/v1/iam-gen.go
index bb85f96..2652285 100644
--- a/iam/v1/iam-gen.go
+++ b/iam/v1/iam-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package iam provides access to the Identity and Access Management (IAM) API.
 //
-// See https://cloud.google.com/iam/
+// For product documentation, see: https://cloud.google.com/iam/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/iam/v1"
 //   ...
-//   iamService, err := iam.New(oauthHttpClient)
+//   ctx := context.Background()
+//   iamService, err := iam.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   iamService, err := iam.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   iamService, err := iam.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package iam // import "google.golang.org/api/iam/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1086,6 +1136,36 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// PatchServiceAccountRequest: The patch service account request.
+type PatchServiceAccountRequest struct {
+	ServiceAccount *ServiceAccount `json:"serviceAccount,omitempty"`
+
+	UpdateMask string `json:"updateMask,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "ServiceAccount") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "ServiceAccount") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *PatchServiceAccountRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod PatchServiceAccountRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // Permission: A permission which can be included by a role.
 type Permission struct {
 	// ApiDisabled: The service API associated with the permission is not
@@ -1635,6 +1715,11 @@
 // the
 // `unique_id` of the service account.
 type ServiceAccount struct {
+	// Description: Optional. A user-specified opaque description of the
+	// service account.
+	// Must be less than or equal to 256 UTF-8 bytes.
+	Description string `json:"description,omitempty"`
+
 	// Disabled: @OutputOnly A bool indicate if the service account is
 	// disabled.
 	// The field is currently in alpha phase.
@@ -1687,7 +1772,7 @@
 	// server.
 	googleapi.ServerResponse `json:"-"`
 
-	// ForceSendFields is a list of field names (e.g. "Disabled") to
+	// 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
@@ -1695,10 +1780,10 @@
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "Disabled") to include in
-	// API requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
+	// NullFields is a list of field names (e.g. "Description") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
 	// null. It is an error if a field in this list has a non-empty value.
 	// This may be used to include null fields in Patch requests.
 	NullFields []string `json:"-"`
@@ -5163,12 +5248,13 @@
 // ServiceAccount.
 //
 // Note: Service accounts are both
-// [resources and
-// identities](/iam/docs/service-accounts#service_account_permissions).
-// T
-// his method treats the service account as a resource. It returns the
-// Cloud
-// IAM policy that reflects what members have access to the service
+// [resources
+// and
+// identities](/iam/docs/service-accounts#service_account_permissions
+// ). This
+// method treats the service account as a resource. It returns the Cloud
+// IAM
+// policy that reflects what members have access to the service
 // account.
 //
 // This method does not return what resources the service account has
@@ -5273,7 +5359,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Returns the Cloud IAM access control policy for a\nServiceAccount.\n\nNote: Service accounts are both\n[resources and identities](/iam/docs/service-accounts#service_account_permissions).\nThis method treats the service account as a resource. It returns the Cloud\nIAM policy that reflects what members have access to the service account.\n\nThis method does not return what resources the service account has access\nto. To see if a service account has access to a resource, call the\n`getIamPolicy` method on the target resource. For example, to view grants\nfor a project, call the\n[projects.getIamPolicy](/resource-manager/reference/rest/v1/projects/getIamPolicy)\nmethod.",
+	//   "description": "Returns the Cloud IAM access control policy for a\nServiceAccount.\n\nNote: Service accounts are both\n[resources and\nidentities](/iam/docs/service-accounts#service_account_permissions). This\nmethod treats the service account as a resource. It returns the Cloud IAM\npolicy that reflects what members have access to the service account.\n\nThis method does not return what resources the service account has access\nto. To see if a service account has access to a resource, call the\n`getIamPolicy` method on the target resource. For example, to view grants\nfor a project, call the\n[projects.getIamPolicy](/resource-manager/reference/rest/v1/projects/getIamPolicy)\nmethod.",
 	//   "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:getIamPolicy",
 	//   "httpMethod": "POST",
 	//   "id": "iam.projects.serviceAccounts.getIamPolicy",
@@ -5495,6 +5581,154 @@
 	}
 }
 
+// method id "iam.projects.serviceAccounts.patch":
+
+type ProjectsServiceAccountsPatchCall struct {
+	s                          *Service
+	name                       string
+	patchserviceaccountrequest *PatchServiceAccountRequest
+	urlParams_                 gensupport.URLParams
+	ctx_                       context.Context
+	header_                    http.Header
+}
+
+// Patch: Patches a ServiceAccount.
+//
+// Currently, only the following fields are updatable:
+// `display_name` and `description`.
+//
+// Only fields specified in the request are guaranteed to be returned
+// in
+// the response. Other fields in the response may be empty.
+//
+// Note: The field mask is required.
+func (r *ProjectsServiceAccountsService) Patch(name string, patchserviceaccountrequest *PatchServiceAccountRequest) *ProjectsServiceAccountsPatchCall {
+	c := &ProjectsServiceAccountsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.name = name
+	c.patchserviceaccountrequest = patchserviceaccountrequest
+	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 *ProjectsServiceAccountsPatchCall) Fields(s ...googleapi.Field) *ProjectsServiceAccountsPatchCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ProjectsServiceAccountsPatchCall) Context(ctx context.Context) *ProjectsServiceAccountsPatchCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ProjectsServiceAccountsPatchCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ProjectsServiceAccountsPatchCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	body, err := googleapi.WithoutDataWrapper.JSONReader(c.patchserviceaccountrequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("PATCH", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	req.Header = reqHeaders
+	googleapi.Expand(req.URL, map[string]string{
+		"name": c.name,
+	})
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "iam.projects.serviceAccounts.patch" call.
+// Exactly one of *ServiceAccount or error will be non-nil. Any non-2xx
+// status code is an error. Response headers are in either
+// *ServiceAccount.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 *ProjectsServiceAccountsPatchCall) Do(opts ...googleapi.CallOption) (*ServiceAccount, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &ServiceAccount{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Patches a ServiceAccount.\n\nCurrently, only the following fields are updatable:\n`display_name` and `description`.\n\nOnly fields specified in the request are guaranteed to be returned in\nthe response. Other fields in the response may be empty.\n\nNote: The field mask is required.",
+	//   "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}",
+	//   "httpMethod": "PATCH",
+	//   "id": "iam.projects.serviceAccounts.patch",
+	//   "parameterOrder": [
+	//     "name"
+	//   ],
+	//   "parameters": {
+	//     "name": {
+	//       "description": "The resource name of the service account in the following format:\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.\n\nRequests using `-` as a wildcard for the `PROJECT_ID` will infer the\nproject from the `account` and the `ACCOUNT` value can be the `email`\naddress or the `unique_id` of the service account.\n\nIn responses the resource name will always be in the format\n`projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.",
+	//       "location": "path",
+	//       "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$",
+	//       "required": true,
+	//       "type": "string"
+	//     }
+	//   },
+	//   "path": "v1/{+name}",
+	//   "request": {
+	//     "$ref": "PatchServiceAccountRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "ServiceAccount"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
+
 // method id "iam.projects.serviceAccounts.setIamPolicy":
 
 type ProjectsServiceAccountsSetIamPolicyCall struct {
@@ -5511,14 +5745,14 @@
 // ServiceAccount.
 //
 // Note: Service accounts are both
-// [resources and
-// identities](/iam/docs/service-accounts#service_account_permissions).
-// T
-// his method treats the service account as a resource. Use it to
-// grant
-// members access to the service account, such as when they need
-// to
-// impersonate it.
+// [resources
+// and
+// identities](/iam/docs/service-accounts#service_account_permissions
+// ). This
+// method treats the service account as a resource. Use it to grant
+// members
+// access to the service account, such as when they need to impersonate
+// it.
 //
 // This method does not grant the service account access to other
 // resources,
@@ -5630,7 +5864,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Sets the Cloud IAM access control policy for a\nServiceAccount.\n\nNote: Service accounts are both\n[resources and identities](/iam/docs/service-accounts#service_account_permissions).\nThis method treats the service account as a resource. Use it to grant\nmembers access to the service account, such as when they need to\nimpersonate it.\n\nThis method does not grant the service account access to other resources,\nsuch as projects. To grant a service account access to resources, include\nthe service account in the Cloud IAM policy for the desired resource, then\ncall the appropriate `setIamPolicy` method on the target resource. For\nexample, to grant a service account access to a project, call the\n[projects.setIamPolicy](/resource-manager/reference/rest/v1/projects/setIamPolicy)\nmethod.",
+	//   "description": "Sets the Cloud IAM access control policy for a\nServiceAccount.\n\nNote: Service accounts are both\n[resources and\nidentities](/iam/docs/service-accounts#service_account_permissions). This\nmethod treats the service account as a resource. Use it to grant members\naccess to the service account, such as when they need to impersonate it.\n\nThis method does not grant the service account access to other resources,\nsuch as projects. To grant a service account access to resources, include\nthe service account in the Cloud IAM policy for the desired resource, then\ncall the appropriate `setIamPolicy` method on the target resource. For\nexample, to grant a service account access to a project, call the\n[projects.setIamPolicy](/resource-manager/reference/rest/v1/projects/setIamPolicy)\nmethod.",
 	//   "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:setIamPolicy",
 	//   "httpMethod": "POST",
 	//   "id": "iam.projects.serviceAccounts.setIamPolicy",
diff --git a/iamcredentials/v1/iamcredentials-gen.go b/iamcredentials/v1/iamcredentials-gen.go
index 098e583..3c3e0c8 100644
--- a/iamcredentials/v1/iamcredentials-gen.go
+++ b/iamcredentials/v1/iamcredentials-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package iamcredentials provides access to the IAM Service Account Credentials API.
 //
-// See https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials
+// For product documentation, see: https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/iamcredentials/v1"
 //   ...
-//   iamcredentialsService, err := iamcredentials.New(oauthHttpClient)
+//   ctx := context.Background()
+//   iamcredentialsService, err := iamcredentials.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   iamcredentialsService, err := iamcredentials.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   iamcredentialsService, err := iamcredentials.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package iamcredentials // import "google.golang.org/api/iamcredentials/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/iap/v1/iap-api.json b/iap/v1/iap-api.json
index 818273e..c36ad72 100644
--- a/iap/v1/iap-api.json
+++ b/iap/v1/iap-api.json
@@ -193,7 +193,7 @@
       }
     }
   },
-  "revision": "20190109",
+  "revision": "20190306",
   "rootUrl": "https://iap.googleapis.com/",
   "schemas": {
     "Binding": {
@@ -205,7 +205,7 @@
           "description": "Unimplemented. The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently."
         },
         "members": {
-          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
+          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
           "items": {
             "type": "string"
           },
diff --git a/iap/v1/iap-gen.go b/iap/v1/iap-gen.go
index 1b6079c..46d89b9 100644
--- a/iap/v1/iap-gen.go
+++ b/iap/v1/iap-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package iap provides access to the Cloud Identity-Aware Proxy API.
 //
-// See https://cloud.google.com/iap
+// For product documentation, see: https://cloud.google.com/iap
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/iap/v1"
 //   ...
-//   iapService, err := iap.New(oauthHttpClient)
+//   ctx := context.Background()
+//   iapService, err := iap.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   iapService, err := iap.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   iapService, err := iap.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package iap // import "google.golang.org/api/iap/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -127,7 +177,7 @@
 	//    For example, `admins@example.com`.
 	//
 	//
-	// * `domain:{domain}`: A Google Apps domain name that represents all
+	// * `domain:{domain}`: The G Suite domain (primary) that represents all
 	// the
 	//    users of that domain. For example, `google.com` or
 	// `example.com`.
diff --git a/iap/v1beta1/iap-api.json b/iap/v1beta1/iap-api.json
index 162b457..fff6e8b 100644
--- a/iap/v1beta1/iap-api.json
+++ b/iap/v1beta1/iap-api.json
@@ -193,7 +193,7 @@
       }
     }
   },
-  "revision": "20190109",
+  "revision": "20190306",
   "rootUrl": "https://iap.googleapis.com/",
   "schemas": {
     "Binding": {
@@ -205,7 +205,7 @@
           "description": "Unimplemented. The condition that is associated with this binding.\nNOTE: an unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently."
         },
         "members": {
-          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
+          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@gmail.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
           "items": {
             "type": "string"
           },
diff --git a/iap/v1beta1/iap-gen.go b/iap/v1beta1/iap-gen.go
index 490067c..31560e6 100644
--- a/iap/v1beta1/iap-gen.go
+++ b/iap/v1beta1/iap-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package iap provides access to the Cloud Identity-Aware Proxy API.
 //
-// See https://cloud.google.com/iap
+// For product documentation, see: https://cloud.google.com/iap
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/iap/v1beta1"
 //   ...
-//   iapService, err := iap.New(oauthHttpClient)
+//   ctx := context.Background()
+//   iapService, err := iap.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   iapService, err := iap.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   iapService, err := iap.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package iap // import "google.golang.org/api/iap/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -127,7 +177,7 @@
 	//    For example, `admins@example.com`.
 	//
 	//
-	// * `domain:{domain}`: A Google Apps domain name that represents all
+	// * `domain:{domain}`: The G Suite domain (primary) that represents all
 	// the
 	//    users of that domain. For example, `google.com` or
 	// `example.com`.
diff --git a/identitytoolkit/v3/identitytoolkit-gen.go b/identitytoolkit/v3/identitytoolkit-gen.go
index 3b7a487..c81f64c 100644
--- a/identitytoolkit/v3/identitytoolkit-gen.go
+++ b/identitytoolkit/v3/identitytoolkit-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package identitytoolkit provides access to the Google Identity Toolkit API.
 //
-// See https://developers.google.com/identity-toolkit/v3/
+// For product documentation, see: https://developers.google.com/identity-toolkit/v3/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/identitytoolkit/v3"
 //   ...
-//   identitytoolkitService, err := identitytoolkit.New(oauthHttpClient)
+//   ctx := context.Background()
+//   identitytoolkitService, err := identitytoolkit.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   identitytoolkitService, err := identitytoolkit.NewService(ctx, option.WithScopes(identitytoolkit.FirebaseScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   identitytoolkitService, err := identitytoolkit.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   identitytoolkitService, err := identitytoolkit.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package identitytoolkit // import "google.golang.org/api/identitytoolkit/v3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	FirebaseScope = "https://www.googleapis.com/auth/firebase"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/firebase",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/indexing/v3/indexing-gen.go b/indexing/v3/indexing-gen.go
index a348a1b..9314526 100644
--- a/indexing/v3/indexing-gen.go
+++ b/indexing/v3/indexing-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package indexing provides access to the Indexing API.
 //
-// See https://developers.google.com/search/apis/indexing-api/
+// For product documentation, see: https://developers.google.com/search/apis/indexing-api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/indexing/v3"
 //   ...
-//   indexingService, err := indexing.New(oauthHttpClient)
+//   ctx := context.Background()
+//   indexingService, err := indexing.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   indexingService, err := indexing.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   indexingService, err := indexing.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package indexing // import "google.golang.org/api/indexing/v3"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	IndexingScope = "https://www.googleapis.com/auth/indexing"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/indexing",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/jobs/v2/jobs-gen.go b/jobs/v2/jobs-gen.go
index 343ad14..04887f0 100644
--- a/jobs/v2/jobs-gen.go
+++ b/jobs/v2/jobs-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package jobs provides access to the Cloud Talent Solution API.
 //
-// See https://cloud.google.com/talent-solution/job-search/docs/
+// For product documentation, see: https://cloud.google.com/talent-solution/job-search/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/jobs/v2"
 //   ...
-//   jobsService, err := jobs.New(oauthHttpClient)
+//   ctx := context.Background()
+//   jobsService, err := jobs.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   jobsService, err := jobs.NewService(ctx, option.WithScopes(jobs.JobsScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   jobsService, err := jobs.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   jobsService, err := jobs.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package jobs // import "google.golang.org/api/jobs/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	JobsScope = "https://www.googleapis.com/auth/jobs"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/jobs",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/jobs/v3/jobs-gen.go b/jobs/v3/jobs-gen.go
index 2ce7c57..58de575 100644
--- a/jobs/v3/jobs-gen.go
+++ b/jobs/v3/jobs-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package jobs provides access to the Cloud Talent Solution API.
 //
-// See https://cloud.google.com/talent-solution/job-search/docs/
+// For product documentation, see: https://cloud.google.com/talent-solution/job-search/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/jobs/v3"
 //   ...
-//   jobsService, err := jobs.New(oauthHttpClient)
+//   ctx := context.Background()
+//   jobsService, err := jobs.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   jobsService, err := jobs.NewService(ctx, option.WithScopes(jobs.JobsScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   jobsService, err := jobs.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   jobsService, err := jobs.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package jobs // import "google.golang.org/api/jobs/v3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	JobsScope = "https://www.googleapis.com/auth/jobs"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/jobs",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/jobs/v3p1beta1/jobs-gen.go b/jobs/v3p1beta1/jobs-gen.go
index 532952d..bad6133 100644
--- a/jobs/v3p1beta1/jobs-gen.go
+++ b/jobs/v3p1beta1/jobs-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package jobs provides access to the Cloud Talent Solution API.
 //
-// See https://cloud.google.com/talent-solution/job-search/docs/
+// For product documentation, see: https://cloud.google.com/talent-solution/job-search/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/jobs/v3p1beta1"
 //   ...
-//   jobsService, err := jobs.New(oauthHttpClient)
+//   ctx := context.Background()
+//   jobsService, err := jobs.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   jobsService, err := jobs.NewService(ctx, option.WithScopes(jobs.JobsScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   jobsService, err := jobs.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   jobsService, err := jobs.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package jobs // import "google.golang.org/api/jobs/v3p1beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	JobsScope = "https://www.googleapis.com/auth/jobs"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/jobs",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/kgsearch/v1/kgsearch-gen.go b/kgsearch/v1/kgsearch-gen.go
index f49030a..ed0c7dc 100644
--- a/kgsearch/v1/kgsearch-gen.go
+++ b/kgsearch/v1/kgsearch-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package kgsearch provides access to the Knowledge Graph Search API.
 //
-// See https://developers.google.com/knowledge-graph/
+// For product documentation, see: https://developers.google.com/knowledge-graph/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/kgsearch/v1"
 //   ...
-//   kgsearchService, err := kgsearch.New(oauthHttpClient)
+//   ctx := context.Background()
+//   kgsearchService, err := kgsearch.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   kgsearchService, err := kgsearch.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   kgsearchService, err := kgsearch.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package kgsearch // import "google.golang.org/api/kgsearch/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://kgsearch.googleapis.com/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/language/v1/language-api.json b/language/v1/language-api.json
index c25fafe..3e0abca 100644
--- a/language/v1/language-api.json
+++ b/language/v1/language-api.json
@@ -226,7 +226,7 @@
       }
     }
   },
-  "revision": "20181022",
+  "revision": "20190308",
   "rootUrl": "https://language.googleapis.com/",
   "schemas": {
     "AnalyzeEntitiesRequest": {
@@ -1168,7 +1168,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/language/v1/language-gen.go b/language/v1/language-gen.go
index 4b5379f..05ba26a 100644
--- a/language/v1/language-gen.go
+++ b/language/v1/language-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/language/apiv1 instead.
 //
-// See https://cloud.google.com/natural-language/
+// For product documentation, see: https://cloud.google.com/natural-language/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/language/v1"
 //   ...
-//   languageService, err := language.New(oauthHttpClient)
+//   ctx := context.Background()
+//   languageService, err := language.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   languageService, err := language.NewService(ctx, option.WithScopes(language.CloudPlatformScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   languageService, err := language.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   languageService, err := language.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package language // import "google.golang.org/api/language/v1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,33 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-language",
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1350,20 +1405,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/language/v1beta1/language-api.json b/language/v1beta1/language-api.json
index 00f685e..b65a0cd 100644
--- a/language/v1beta1/language-api.json
+++ b/language/v1beta1/language-api.json
@@ -188,7 +188,7 @@
       }
     }
   },
-  "revision": "20181022",
+  "revision": "20190308",
   "rootUrl": "https://language.googleapis.com/",
   "schemas": {
     "AnalyzeEntitiesRequest": {
@@ -1026,7 +1026,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/language/v1beta1/language-gen.go b/language/v1beta1/language-gen.go
index 57b42ea..5750d5b 100644
--- a/language/v1beta1/language-gen.go
+++ b/language/v1beta1/language-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/language/apiv1 instead.
 //
-// See https://cloud.google.com/natural-language/
+// For product documentation, see: https://cloud.google.com/natural-language/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/language/v1beta1"
 //   ...
-//   languageService, err := language.New(oauthHttpClient)
+//   ctx := context.Background()
+//   languageService, err := language.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   languageService, err := language.NewService(ctx, option.WithScopes(language.CloudPlatformScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   languageService, err := language.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   languageService, err := language.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package language // import "google.golang.org/api/language/v1beta1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,33 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-language",
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1126,20 +1181,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/language/v1beta2/language-api.json b/language/v1beta2/language-api.json
index cb02d69..7e73b33 100644
--- a/language/v1beta2/language-api.json
+++ b/language/v1beta2/language-api.json
@@ -226,7 +226,7 @@
       }
     }
   },
-  "revision": "20181022",
+  "revision": "20190308",
   "rootUrl": "https://language.googleapis.com/",
   "schemas": {
     "AnalyzeEntitiesRequest": {
@@ -1168,7 +1168,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/language/v1beta2/language-gen.go b/language/v1beta2/language-gen.go
index 6acc533..b5a7d72 100644
--- a/language/v1beta2/language-gen.go
+++ b/language/v1beta2/language-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/language/apiv1 instead.
 //
-// See https://cloud.google.com/natural-language/
+// For product documentation, see: https://cloud.google.com/natural-language/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/language/v1beta2"
 //   ...
-//   languageService, err := language.New(oauthHttpClient)
+//   ctx := context.Background()
+//   languageService, err := language.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   languageService, err := language.NewService(ctx, option.WithScopes(language.CloudPlatformScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   languageService, err := language.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   languageService, err := language.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package language // import "google.golang.org/api/language/v1beta2"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,33 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-language",
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1350,20 +1405,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/libraryagent/v1/libraryagent-gen.go b/libraryagent/v1/libraryagent-gen.go
index e8b0990..4a37626 100644
--- a/libraryagent/v1/libraryagent-gen.go
+++ b/libraryagent/v1/libraryagent-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package libraryagent provides access to the Library Agent API.
 //
-// See https://cloud.google.com/docs/quota
+// For product documentation, see: https://cloud.google.com/docs/quota
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/libraryagent/v1"
 //   ...
-//   libraryagentService, err := libraryagent.New(oauthHttpClient)
+//   ctx := context.Background()
+//   libraryagentService, err := libraryagent.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   libraryagentService, err := libraryagent.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   libraryagentService, err := libraryagent.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package libraryagent // import "google.golang.org/api/libraryagent/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/licensing/v1/licensing-gen.go b/licensing/v1/licensing-gen.go
index 98268fa..93369b0 100644
--- a/licensing/v1/licensing-gen.go
+++ b/licensing/v1/licensing-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package licensing provides access to the Enterprise License Manager API.
 //
-// See https://developers.google.com/google-apps/licensing/
+// For product documentation, see: https://developers.google.com/google-apps/licensing/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/licensing/v1"
 //   ...
-//   licensingService, err := licensing.New(oauthHttpClient)
+//   ctx := context.Background()
+//   licensingService, err := licensing.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   licensingService, err := licensing.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   licensingService, err := licensing.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package licensing // import "google.golang.org/api/licensing/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AppsLicensingScope = "https://www.googleapis.com/auth/apps.licensing"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/apps.licensing",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/logging/v2/logging-api.json b/logging/v2/logging-api.json
index 67b3193..0b5b623 100644
--- a/logging/v2/logging-api.json
+++ b/logging/v2/logging-api.json
@@ -2535,7 +2535,7 @@
       }
     }
   },
-  "revision": "20190223",
+  "revision": "20190311",
   "rootUrl": "https://logging.googleapis.com/",
   "schemas": {
     "BucketOptions": {
@@ -2666,7 +2666,7 @@
           "type": "integer"
         },
         "userAgent": {
-          "description": "The user agent sent by the client. Example: \"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)\".",
+          "description": "The user agent sent by the client. Example: \"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET\nCLR 1.0.3705)\".",
           "type": "string"
         }
       },
diff --git a/logging/v2/logging-gen.go b/logging/v2/logging-gen.go
index 17206f0..64bc457 100644
--- a/logging/v2/logging-gen.go
+++ b/logging/v2/logging-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/logging instead.
 //
-// See https://cloud.google.com/logging/docs/
+// For product documentation, see: https://cloud.google.com/logging/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/logging/v2"
 //   ...
-//   loggingService, err := logging.New(oauthHttpClient)
+//   ctx := context.Background()
+//   loggingService, err := logging.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   loggingService, err := logging.NewService(ctx, option.WithScopes(logging.LoggingWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   loggingService, err := logging.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   loggingService, err := logging.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package logging // import "google.golang.org/api/logging/v2"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -70,6 +98,36 @@
 	LoggingWriteScope = "https://www.googleapis.com/auth/logging.write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/logging.admin",
+		"https://www.googleapis.com/auth/logging.read",
+		"https://www.googleapis.com/auth/logging.write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -573,7 +631,8 @@
 	Status int64 `json:"status,omitempty"`
 
 	// UserAgent: The user agent sent by the client. Example: "Mozilla/4.0
-	// (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)".
+	// (compatible; MSIE 6.0; Windows 98; Q312461; .NET
+	// CLR 1.0.3705)".
 	UserAgent string `json:"userAgent,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "CacheFillBytes") to
diff --git a/logging/v2beta1/logging-gen.go b/logging/v2beta1/logging-gen.go
index 497acaf..29e5380 100644
--- a/logging/v2beta1/logging-gen.go
+++ b/logging/v2beta1/logging-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/logging instead.
 //
-// See https://cloud.google.com/logging/docs/
+// For product documentation, see: https://cloud.google.com/logging/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/logging/v2beta1"
 //   ...
-//   loggingService, err := logging.New(oauthHttpClient)
+//   ctx := context.Background()
+//   loggingService, err := logging.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   loggingService, err := logging.NewService(ctx, option.WithScopes(logging.LoggingWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   loggingService, err := logging.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   loggingService, err := logging.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package logging // import "google.golang.org/api/logging/v2beta1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -70,6 +98,36 @@
 	LoggingWriteScope = "https://www.googleapis.com/auth/logging.write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/logging.admin",
+		"https://www.googleapis.com/auth/logging.read",
+		"https://www.googleapis.com/auth/logging.write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/manufacturers/v1/manufacturers-gen.go b/manufacturers/v1/manufacturers-gen.go
index 52c0f18..b848894 100644
--- a/manufacturers/v1/manufacturers-gen.go
+++ b/manufacturers/v1/manufacturers-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package manufacturers provides access to the Manufacturer Center API.
 //
-// See https://developers.google.com/manufacturers/
+// For product documentation, see: https://developers.google.com/manufacturers/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/manufacturers/v1"
 //   ...
-//   manufacturersService, err := manufacturers.New(oauthHttpClient)
+//   ctx := context.Background()
+//   manufacturersService, err := manufacturers.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   manufacturersService, err := manufacturers.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   manufacturersService, err := manufacturers.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package manufacturers // import "google.golang.org/api/manufacturers/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	ManufacturercenterScope = "https://www.googleapis.com/auth/manufacturercenter"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/manufacturercenter",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/mirror/v1/mirror-gen.go b/mirror/v1/mirror-gen.go
index d779526..3e4a73b 100644
--- a/mirror/v1/mirror-gen.go
+++ b/mirror/v1/mirror-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package mirror provides access to the Google Mirror API.
 //
-// See https://developers.google.com/glass
+// For product documentation, see: https://developers.google.com/glass
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/mirror/v1"
 //   ...
-//   mirrorService, err := mirror.New(oauthHttpClient)
+//   ctx := context.Background()
+//   mirrorService, err := mirror.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   mirrorService, err := mirror.NewService(ctx, option.WithScopes(mirror.GlassTimelineScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   mirrorService, err := mirror.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   mirrorService, err := mirror.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package mirror // import "google.golang.org/api/mirror/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	GlassTimelineScope = "https://www.googleapis.com/auth/glass.timeline"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/glass.location",
+		"https://www.googleapis.com/auth/glass.timeline",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/ml/v1/ml-gen.go b/ml/v1/ml-gen.go
index e8e727c..42bfe1c 100644
--- a/ml/v1/ml-gen.go
+++ b/ml/v1/ml-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package ml provides access to the Cloud Machine Learning Engine.
 //
-// See https://cloud.google.com/ml/
+// For product documentation, see: https://cloud.google.com/ml/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/ml/v1"
 //   ...
-//   mlService, err := ml.New(oauthHttpClient)
+//   ctx := context.Background()
+//   mlService, err := ml.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   mlService, err := ml.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   mlService, err := ml.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package ml // import "google.golang.org/api/ml/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/monitoring/v3/monitoring-api.json b/monitoring/v3/monitoring-api.json
index 1d066fa..f76fbc9 100644
--- a/monitoring/v3/monitoring-api.json
+++ b/monitoring/v3/monitoring-api.json
@@ -1457,7 +1457,7 @@
       }
     }
   },
-  "revision": "20190304",
+  "revision": "20190312",
   "rootUrl": "https://monitoring.googleapis.com/",
   "schemas": {
     "Aggregation": {
@@ -1951,7 +1951,7 @@
       "id": "Exemplar",
       "properties": {
         "attachments": {
-          "description": "Contextual information about the example value. Examples are:Trace ID: type.googleapis.com/google.devtools.cloudtrace.v1.TraceLiteral string: type.googleapis.com/google.protobuf.StringValueLabels dropped during aggregation:  type.googleapis.com/google.monitoring.v3.DroppedLabelsThere may be only a single attachment of any given message type in a single exemplar, and this is enforced by the system.",
+          "description": "Contextual information about the example value. Examples are:Trace: type.googleapis.com/google.monitoring.v3.SpanContextLiteral string: type.googleapis.com/google.protobuf.StringValueLabels dropped during aggregation:  type.googleapis.com/google.monitoring.v3.DroppedLabelsThere may be only a single attachment of any given message type in a single exemplar, and this is enforced by the system.",
           "items": {
             "additionalProperties": {
               "description": "Properties of the object. Contains field @type with type URL.",
diff --git a/monitoring/v3/monitoring-gen.go b/monitoring/v3/monitoring-gen.go
index 3c9f0b9..1986d43 100644
--- a/monitoring/v3/monitoring-gen.go
+++ b/monitoring/v3/monitoring-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/monitoring/apiv3 instead.
 //
-// See https://cloud.google.com/monitoring/api/
+// For product documentation, see: https://cloud.google.com/monitoring/api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/monitoring/v3"
 //   ...
-//   monitoringService, err := monitoring.New(oauthHttpClient)
+//   ctx := context.Background()
+//   monitoringService, err := monitoring.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   monitoringService, err := monitoring.NewService(ctx, option.WithScopes(monitoring.MonitoringWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   monitoringService, err := monitoring.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   monitoringService, err := monitoring.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package monitoring // import "google.golang.org/api/monitoring/v3"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -69,6 +97,35 @@
 	MonitoringWriteScope = "https://www.googleapis.com/auth/monitoring.write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/monitoring",
+		"https://www.googleapis.com/auth/monitoring.read",
+		"https://www.googleapis.com/auth/monitoring.write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1237,10 +1294,10 @@
 // origin, etc.
 type Exemplar struct {
 	// Attachments: Contextual information about the example value. Examples
-	// are:Trace ID:
-	// type.googleapis.com/google.devtools.cloudtrace.v1.TraceLiteral
-	// string: type.googleapis.com/google.protobuf.StringValueLabels dropped
-	// during aggregation:
+	// are:Trace:
+	// type.googleapis.com/google.monitoring.v3.SpanContextLiteral string:
+	// type.googleapis.com/google.protobuf.StringValueLabels dropped during
+	// aggregation:
 	// type.googleapis.com/google.monitoring.v3.DroppedLabelsThere may be
 	// only a single attachment of any given message type in a single
 	// exemplar, and this is enforced by the system.
diff --git a/oauth2/v1/oauth2-api.json b/oauth2/v1/oauth2-api.json
index ade8291..464bc4b 100644
--- a/oauth2/v1/oauth2-api.json
+++ b/oauth2/v1/oauth2-api.json
@@ -12,7 +12,7 @@
           "description": "View your email address"
         },
         "https://www.googleapis.com/auth/userinfo.profile": {
-          "description": "View your basic profile info"
+          "description": "See your personal info, including any personal info you've made publically available"
         }
       }
     }
@@ -23,7 +23,7 @@
   "description": "Obtains end-user authorization grants for use with other Google APIs.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/accounts/docs/OAuth2",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/u_GPJA79BYUTOL4IK5pNEgXCpYQ\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/izr_0N7-y4dagYg2GSFs18rZ6Tw\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
diff --git a/oauth2/v1/oauth2-gen.go b/oauth2/v1/oauth2-gen.go
index f2186cf..da0c90c 100644
--- a/oauth2/v1/oauth2-gen.go
+++ b/oauth2/v1/oauth2-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package oauth2 provides access to the Google OAuth2 API.
 //
-// See https://developers.google.com/accounts/docs/OAuth2
+// For product documentation, see: https://developers.google.com/accounts/docs/OAuth2
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/oauth2/v1"
 //   ...
-//   oauth2Service, err := oauth2.New(oauthHttpClient)
+//   ctx := context.Background()
+//   oauth2Service, err := oauth2.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   oauth2Service, err := oauth2.NewService(ctx, option.WithScopes(oauth2.UserinfoProfileScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   oauth2Service, err := oauth2.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   oauth2Service, err := oauth2.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package oauth2 // import "google.golang.org/api/oauth2/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,10 +89,40 @@
 	// View your email address
 	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
 
-	// View your basic profile info
+	// See your personal info, including any personal info you've made
+	// publically available
 	UserinfoProfileScope = "https://www.googleapis.com/auth/userinfo.profile"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/plus.login",
+		"https://www.googleapis.com/auth/plus.me",
+		"https://www.googleapis.com/auth/userinfo.email",
+		"https://www.googleapis.com/auth/userinfo.profile",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/oauth2/v2/oauth2-api.json b/oauth2/v2/oauth2-api.json
index 1a39b1b..6bbee8a 100644
--- a/oauth2/v2/oauth2-api.json
+++ b/oauth2/v2/oauth2-api.json
@@ -12,7 +12,7 @@
           "description": "View your email address"
         },
         "https://www.googleapis.com/auth/userinfo.profile": {
-          "description": "View your basic profile info"
+          "description": "See your personal info, including any personal info you've made publically available"
         }
       }
     }
@@ -23,7 +23,7 @@
   "description": "Obtains end-user authorization grants for use with other Google APIs.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/accounts/docs/OAuth2",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/U5EXQKGUG9hiq9AyhuNHr4nL5-E\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/6QczsO--rzxmz6GMdr2EY6-AXwc\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
diff --git a/oauth2/v2/oauth2-gen.go b/oauth2/v2/oauth2-gen.go
index 2f8148a..14659f3 100644
--- a/oauth2/v2/oauth2-gen.go
+++ b/oauth2/v2/oauth2-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package oauth2 provides access to the Google OAuth2 API.
 //
-// See https://developers.google.com/accounts/docs/OAuth2
+// For product documentation, see: https://developers.google.com/accounts/docs/OAuth2
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/oauth2/v2"
 //   ...
-//   oauth2Service, err := oauth2.New(oauthHttpClient)
+//   ctx := context.Background()
+//   oauth2Service, err := oauth2.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   oauth2Service, err := oauth2.NewService(ctx, option.WithScopes(oauth2.UserinfoProfileScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   oauth2Service, err := oauth2.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   oauth2Service, err := oauth2.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package oauth2 // import "google.golang.org/api/oauth2/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,10 +89,40 @@
 	// View your email address
 	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
 
-	// View your basic profile info
+	// See your personal info, including any personal info you've made
+	// publically available
 	UserinfoProfileScope = "https://www.googleapis.com/auth/userinfo.profile"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/plus.login",
+		"https://www.googleapis.com/auth/plus.me",
+		"https://www.googleapis.com/auth/userinfo.email",
+		"https://www.googleapis.com/auth/userinfo.profile",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/oslogin/v1/oslogin-gen.go b/oslogin/v1/oslogin-gen.go
index 1852c79..3a804ee 100644
--- a/oslogin/v1/oslogin-gen.go
+++ b/oslogin/v1/oslogin-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/oslogin/apiv1 instead.
 //
-// See https://cloud.google.com/compute/docs/oslogin/
+// For product documentation, see: https://cloud.google.com/compute/docs/oslogin/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/oslogin/v1"
 //   ...
-//   osloginService, err := oslogin.New(oauthHttpClient)
+//   ctx := context.Background()
+//   osloginService, err := oslogin.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   osloginService, err := oslogin.NewService(ctx, option.WithScopes(oslogin.ComputeScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   osloginService, err := oslogin.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   osloginService, err := oslogin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package oslogin // import "google.golang.org/api/oslogin/v1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	ComputeScope = "https://www.googleapis.com/auth/compute"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/compute",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/oslogin/v1alpha/oslogin-gen.go b/oslogin/v1alpha/oslogin-gen.go
index 7a41481..2765fbc 100644
--- a/oslogin/v1alpha/oslogin-gen.go
+++ b/oslogin/v1alpha/oslogin-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/oslogin/apiv1 instead.
 //
-// See https://cloud.google.com/compute/docs/oslogin/
+// For product documentation, see: https://cloud.google.com/compute/docs/oslogin/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/oslogin/v1alpha"
 //   ...
-//   osloginService, err := oslogin.New(oauthHttpClient)
+//   ctx := context.Background()
+//   osloginService, err := oslogin.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   osloginService, err := oslogin.NewService(ctx, option.WithScopes(oslogin.ComputeReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   osloginService, err := oslogin.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   osloginService, err := oslogin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package oslogin // import "google.golang.org/api/oslogin/v1alpha"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -67,6 +95,35 @@
 	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/compute",
+		"https://www.googleapis.com/auth/compute.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/oslogin/v1beta/oslogin-gen.go b/oslogin/v1beta/oslogin-gen.go
index a8b26f8..a5b4fb3 100644
--- a/oslogin/v1beta/oslogin-gen.go
+++ b/oslogin/v1beta/oslogin-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/oslogin/apiv1 instead.
 //
-// See https://cloud.google.com/compute/docs/oslogin/
+// For product documentation, see: https://cloud.google.com/compute/docs/oslogin/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/oslogin/v1beta"
 //   ...
-//   osloginService, err := oslogin.New(oauthHttpClient)
+//   ctx := context.Background()
+//   osloginService, err := oslogin.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   osloginService, err := oslogin.NewService(ctx, option.WithScopes(oslogin.ComputeReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   osloginService, err := oslogin.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   osloginService, err := oslogin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package oslogin // import "google.golang.org/api/oslogin/v1beta"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -67,6 +95,35 @@
 	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/compute",
+		"https://www.googleapis.com/auth/compute.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/pagespeedonline/v1/pagespeedonline-gen.go b/pagespeedonline/v1/pagespeedonline-gen.go
index 4f6a84b..0b6bf93 100644
--- a/pagespeedonline/v1/pagespeedonline-gen.go
+++ b/pagespeedonline/v1/pagespeedonline-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package pagespeedonline provides access to the PageSpeed Insights API.
 //
-// See https://developers.google.com/speed/docs/insights/v1/getting_started
+// For product documentation, see: https://developers.google.com/speed/docs/insights/v1/getting_started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/pagespeedonline/v1"
 //   ...
-//   pagespeedonlineService, err := pagespeedonline.New(oauthHttpClient)
+//   ctx := context.Background()
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package pagespeedonline // import "google.golang.org/api/pagespeedonline/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://www.googleapis.com/pagespeedonline/v1/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/pagespeedonline/v2/pagespeedonline-gen.go b/pagespeedonline/v2/pagespeedonline-gen.go
index 1c9312b..856ca44 100644
--- a/pagespeedonline/v2/pagespeedonline-gen.go
+++ b/pagespeedonline/v2/pagespeedonline-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package pagespeedonline provides access to the PageSpeed Insights API.
 //
-// See https://developers.google.com/speed/docs/insights/v2/getting-started
+// For product documentation, see: https://developers.google.com/speed/docs/insights/v2/getting-started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/pagespeedonline/v2"
 //   ...
-//   pagespeedonlineService, err := pagespeedonline.New(oauthHttpClient)
+//   ctx := context.Background()
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package pagespeedonline // import "google.golang.org/api/pagespeedonline/v2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v2"
 const basePath = "https://www.googleapis.com/pagespeedonline/v2/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/pagespeedonline/v4/pagespeedonline-gen.go b/pagespeedonline/v4/pagespeedonline-gen.go
index 8a234a5..18afff8 100644
--- a/pagespeedonline/v4/pagespeedonline-gen.go
+++ b/pagespeedonline/v4/pagespeedonline-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package pagespeedonline provides access to the PageSpeed Insights API.
 //
-// See https://developers.google.com/speed/docs/insights/v4/getting-started
+// For product documentation, see: https://developers.google.com/speed/docs/insights/v4/getting-started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/pagespeedonline/v4"
 //   ...
-//   pagespeedonlineService, err := pagespeedonline.New(oauthHttpClient)
+//   ctx := context.Background()
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package pagespeedonline // import "google.golang.org/api/pagespeedonline/v4"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v4"
 const basePath = "https://www.googleapis.com/pagespeedonline/v4/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/pagespeedonline/v5/pagespeedonline-gen.go b/pagespeedonline/v5/pagespeedonline-gen.go
index b74f424..5a2bb30 100644
--- a/pagespeedonline/v5/pagespeedonline-gen.go
+++ b/pagespeedonline/v5/pagespeedonline-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package pagespeedonline provides access to the PageSpeed Insights API.
 //
-// See https://developers.google.com/speed/docs/insights/v5/get-started
+// For product documentation, see: https://developers.google.com/speed/docs/insights/v5/get-started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/pagespeedonline/v5"
 //   ...
-//   pagespeedonlineService, err := pagespeedonline.New(oauthHttpClient)
+//   ctx := context.Background()
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   pagespeedonlineService, err := pagespeedonline.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package pagespeedonline // import "google.golang.org/api/pagespeedonline/v5"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v5"
 const basePath = "https://www.googleapis.com/pagespeedonline/v5/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/people/v1/people-api.json b/people/v1/people-api.json
index d86d8ae..44ee85b 100644
--- a/people/v1/people-api.json
+++ b/people/v1/people-api.json
@@ -304,7 +304,7 @@
         "members": {
           "methods": {
             "modify": {
-              "description": "Modify the members of a contact group owned by the authenticated user.",
+              "description": "Modify the members of a contact group owned by the authenticated user.\n\u003cbr\u003e\nThe only system contact groups that can have members added are\n`contactGroups/myContacts` and `contactGroups/starred`. Other system\ncontact groups are deprecated and can only have contacts removed.",
               "flatPath": "v1/contactGroups/{contactGroupsId}/members:modify",
               "httpMethod": "POST",
               "id": "people.contactGroups.members.modify",
@@ -585,7 +585,7 @@
       }
     }
   },
-  "revision": "20190309",
+  "revision": "20190313",
   "rootUrl": "https://people.googleapis.com/",
   "schemas": {
     "Address": {
diff --git a/people/v1/people-gen.go b/people/v1/people-gen.go
index 8e2deaf..dcfc18c 100644
--- a/people/v1/people-gen.go
+++ b/people/v1/people-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package people provides access to the People API.
 //
-// See https://developers.google.com/people/
+// For product documentation, see: https://developers.google.com/people/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/people/v1"
 //   ...
-//   peopleService, err := people.New(oauthHttpClient)
+//   ctx := context.Background()
+//   peopleService, err := people.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   peopleService, err := people.NewService(ctx, option.WithScopes(people.UserinfoProfileScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   peopleService, err := people.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   peopleService, err := people.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package people // import "google.golang.org/api/people/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -80,6 +108,40 @@
 	UserinfoProfileScope = "https://www.googleapis.com/auth/userinfo.profile"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/contacts",
+		"https://www.googleapis.com/auth/contacts.readonly",
+		"https://www.googleapis.com/auth/plus.login",
+		"https://www.googleapis.com/auth/user.addresses.read",
+		"https://www.googleapis.com/auth/user.birthday.read",
+		"https://www.googleapis.com/auth/user.emails.read",
+		"https://www.googleapis.com/auth/user.phonenumbers.read",
+		"https://www.googleapis.com/auth/userinfo.email",
+		"https://www.googleapis.com/auth/userinfo.profile",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -3471,6 +3533,12 @@
 
 // Modify: Modify the members of a contact group owned by the
 // authenticated user.
+// <br>
+// The only system contact groups that can have members added
+// are
+// `contactGroups/myContacts` and `contactGroups/starred`. Other
+// system
+// contact groups are deprecated and can only have contacts removed.
 func (r *ContactGroupsMembersService) Modify(resourceName string, modifycontactgroupmembersrequest *ModifyContactGroupMembersRequest) *ContactGroupsMembersModifyCall {
 	c := &ContactGroupsMembersModifyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 	c.resourceName = resourceName
@@ -3569,7 +3637,7 @@
 	}
 	return ret, nil
 	// {
-	//   "description": "Modify the members of a contact group owned by the authenticated user.",
+	//   "description": "Modify the members of a contact group owned by the authenticated user.\n\u003cbr\u003e\nThe only system contact groups that can have members added are\n`contactGroups/myContacts` and `contactGroups/starred`. Other system\ncontact groups are deprecated and can only have contacts removed.",
 	//   "flatPath": "v1/contactGroups/{contactGroupsId}/members:modify",
 	//   "httpMethod": "POST",
 	//   "id": "people.contactGroups.members.modify",
diff --git a/playcustomapp/v1/playcustomapp-gen.go b/playcustomapp/v1/playcustomapp-gen.go
index b1576c5..0423a33 100644
--- a/playcustomapp/v1/playcustomapp-gen.go
+++ b/playcustomapp/v1/playcustomapp-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package playcustomapp provides access to the Google Play Custom App Publishing API.
 //
-// See https://developers.google.com/android/work/play/custom-app-api
+// For product documentation, see: https://developers.google.com/android/work/play/custom-app-api
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/playcustomapp/v1"
 //   ...
-//   playcustomappService, err := playcustomapp.New(oauthHttpClient)
+//   ctx := context.Background()
+//   playcustomappService, err := playcustomapp.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   playcustomappService, err := playcustomapp.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   playcustomappService, err := playcustomapp.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package playcustomapp // import "google.golang.org/api/playcustomapp/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	AndroidpublisherScope = "https://www.googleapis.com/auth/androidpublisher"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/androidpublisher",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/plus/v1/plus-api.json b/plus/v1/plus-api.json
index 35b29ff..da9e087 100644
--- a/plus/v1/plus-api.json
+++ b/plus/v1/plus-api.json
@@ -12,7 +12,7 @@
           "description": "View your email address"
         },
         "https://www.googleapis.com/auth/userinfo.profile": {
-          "description": "View your basic profile info"
+          "description": "See your personal info, including any personal info you've made publically available"
         }
       }
     }
@@ -23,7 +23,7 @@
   "description": "Builds on top of the Google+ platform.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/+/api/",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/dXLXIXiM47RTEAlRJc0PgvezH-Q\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/Yw4tbvtUc3nv84_EmeypAOy1Npo\"",
   "icons": {
     "x16": "http://www.google.com/images/icons/product/gplus-16.png",
     "x32": "http://www.google.com/images/icons/product/gplus-32.png"
@@ -491,7 +491,7 @@
       }
     }
   },
-  "revision": "20190227",
+  "revision": "20190313",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Acl": {
diff --git a/plus/v1/plus-gen.go b/plus/v1/plus-gen.go
index 33383f7..1fb9360 100644
--- a/plus/v1/plus-gen.go
+++ b/plus/v1/plus-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package plus provides access to the Google+ API.
 //
-// See https://developers.google.com/+/api/
+// For product documentation, see: https://developers.google.com/+/api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/plus/v1"
 //   ...
-//   plusService, err := plus.New(oauthHttpClient)
+//   ctx := context.Background()
+//   plusService, err := plus.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   plusService, err := plus.NewService(ctx, option.WithScopes(plus.UserinfoProfileScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   plusService, err := plus.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   plusService, err := plus.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package plus // import "google.golang.org/api/plus/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,10 +89,40 @@
 	// View your email address
 	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
 
-	// View your basic profile info
+	// See your personal info, including any personal info you've made
+	// publically available
 	UserinfoProfileScope = "https://www.googleapis.com/auth/userinfo.profile"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/plus.login",
+		"https://www.googleapis.com/auth/plus.me",
+		"https://www.googleapis.com/auth/userinfo.email",
+		"https://www.googleapis.com/auth/userinfo.profile",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/plusdomains/v1/plusdomains-api.json b/plusdomains/v1/plusdomains-api.json
index 4df4e75..b902220 100644
--- a/plusdomains/v1/plusdomains-api.json
+++ b/plusdomains/v1/plusdomains-api.json
@@ -30,7 +30,7 @@
           "description": "View your email address"
         },
         "https://www.googleapis.com/auth/userinfo.profile": {
-          "description": "View your basic profile info"
+          "description": "See your personal info, including any personal info you've made publically available"
         }
       }
     }
@@ -41,7 +41,7 @@
   "description": "Builds on top of the Google+ platform for Google Apps Domains.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/+/domains/",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/GXNaI2yu_gDF4YlRqtF4BhBQJtA\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/i92XADu-jYkxWsaEBWE352t2jKE\"",
   "icons": {
     "x16": "http://www.google.com/images/icons/product/gplus-16.png",
     "x32": "http://www.google.com/images/icons/product/gplus-32.png"
@@ -852,7 +852,7 @@
       }
     }
   },
-  "revision": "20190227",
+  "revision": "20190313",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Acl": {
diff --git a/plusdomains/v1/plusdomains-gen.go b/plusdomains/v1/plusdomains-gen.go
index eb65107..5ebdf7d 100644
--- a/plusdomains/v1/plusdomains-gen.go
+++ b/plusdomains/v1/plusdomains-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package plusdomains provides access to the Google+ Domains API.
 //
-// See https://developers.google.com/+/domains/
+// For product documentation, see: https://developers.google.com/+/domains/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/plusdomains/v1"
 //   ...
-//   plusdomainsService, err := plusdomains.New(oauthHttpClient)
+//   ctx := context.Background()
+//   plusdomainsService, err := plusdomains.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   plusdomainsService, err := plusdomains.NewService(ctx, option.WithScopes(plusdomains.UserinfoProfileScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   plusdomainsService, err := plusdomains.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   plusdomainsService, err := plusdomains.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package plusdomains // import "google.golang.org/api/plusdomains/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -81,10 +109,46 @@
 	// View your email address
 	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
 
-	// View your basic profile info
+	// See your personal info, including any personal info you've made
+	// publically available
 	UserinfoProfileScope = "https://www.googleapis.com/auth/userinfo.profile"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/plus.circles.read",
+		"https://www.googleapis.com/auth/plus.circles.write",
+		"https://www.googleapis.com/auth/plus.login",
+		"https://www.googleapis.com/auth/plus.me",
+		"https://www.googleapis.com/auth/plus.media.upload",
+		"https://www.googleapis.com/auth/plus.profiles.read",
+		"https://www.googleapis.com/auth/plus.stream.read",
+		"https://www.googleapis.com/auth/plus.stream.write",
+		"https://www.googleapis.com/auth/userinfo.email",
+		"https://www.googleapis.com/auth/userinfo.profile",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/poly/v1/poly-api.json b/poly/v1/poly-api.json
index 569fb1e..1759a5d 100644
--- a/poly/v1/poly-api.json
+++ b/poly/v1/poly-api.json
@@ -290,7 +290,7 @@
       }
     }
   },
-  "revision": "20180808",
+  "revision": "20190309",
   "rootUrl": "https://poly.googleapis.com/",
   "schemas": {
     "Asset": {
@@ -435,11 +435,11 @@
       "id": "File",
       "properties": {
         "contentType": {
-          "description": "The MIME content-type, such as `image/png`.\nFor more information, see\n[MIME types](//developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types).",
+          "description": "The MIME content-type, such as `image/png`.\nFor more information, see\n[MIME\ntypes](//developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types).",
           "type": "string"
         },
         "relativePath": {
-          "description": "The path of the resource file relative to the root file.\nFor root or thumbnail files, this is just the filename.",
+          "description": "The path of the resource file relative to the\nroot file. For root or thumbnail files,\nthis is just the filename.",
           "type": "string"
         },
         "url": {
@@ -470,7 +470,7 @@
         },
         "root": {
           "$ref": "File",
-          "description": "The root of the file hierarchy. This will always be populated.\nFor some format_types - such as `TILT`, which are self-contained -\nthis is all of the data.\n\nOther types - such as `OBJ` - often reference other data elements.\nThese are contained in the resources field."
+          "description": "The root of the file hierarchy. This will always be populated.\nFor some format_types - such as `TILT`, which are\nself-contained - this is all of the data.\n\nOther types - such as `OBJ` - often reference other data elements.\nThese are contained in the resources field."
         }
       },
       "type": "object"
diff --git a/poly/v1/poly-gen.go b/poly/v1/poly-gen.go
index c4e1d8e..79ef288 100644
--- a/poly/v1/poly-gen.go
+++ b/poly/v1/poly-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package poly provides access to the Poly API.
 //
-// See https://developers.google.com/poly/
+// For product documentation, see: https://developers.google.com/poly/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/poly/v1"
 //   ...
-//   polyService, err := poly.New(oauthHttpClient)
+//   ctx := context.Background()
+//   polyService, err := poly.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   polyService, err := poly.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   polyService, err := poly.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package poly // import "google.golang.org/api/poly/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://poly.googleapis.com/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -324,15 +369,16 @@
 // resource, or thumbnail file.
 type File struct {
 	// ContentType: The MIME content-type, such as `image/png`.
-	// For more information, see
+	// For more information,
+	// see
 	// [MIME
-	// types](//developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME
-	// _types).
+	// types](//developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of
+	// _HTTP/MIME_types).
 	ContentType string `json:"contentType,omitempty"`
 
-	// RelativePath: The path of the resource file relative to the root
-	// file.
-	// For root or thumbnail files, this is just the filename.
+	// RelativePath: The path of the resource file relative to the
+	// root file. For root or thumbnail files,
+	// this is just the filename.
 	RelativePath string `json:"relativePath,omitempty"`
 
 	// Url: The URL where the file data can be retrieved.
@@ -389,9 +435,8 @@
 
 	// Root: The root of the file hierarchy. This will always be
 	// populated.
-	// For some format_types - such as `TILT`, which are self-contained
-	// -
-	// this is all of the data.
+	// For some format_types - such as `TILT`, which are
+	// self-contained - this is all of the data.
 	//
 	// Other types - such as `OBJ` - often reference other data
 	// elements.
diff --git a/proximitybeacon/v1beta1/proximitybeacon-gen.go b/proximitybeacon/v1beta1/proximitybeacon-gen.go
index 0e39237..e5f0c8b 100644
--- a/proximitybeacon/v1beta1/proximitybeacon-gen.go
+++ b/proximitybeacon/v1beta1/proximitybeacon-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package proximitybeacon provides access to the Proximity Beacon API.
 //
-// See https://developers.google.com/beacons/proximity/
+// For product documentation, see: https://developers.google.com/beacons/proximity/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/proximitybeacon/v1beta1"
 //   ...
-//   proximitybeaconService, err := proximitybeacon.New(oauthHttpClient)
+//   ctx := context.Background()
+//   proximitybeaconService, err := proximitybeacon.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   proximitybeaconService, err := proximitybeacon.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   proximitybeaconService, err := proximitybeacon.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package proximitybeacon // import "google.golang.org/api/proximitybeacon/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	UserlocationBeaconRegistryScope = "https://www.googleapis.com/auth/userlocation.beacon.registry"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/userlocation.beacon.registry",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/pubsub/v1/pubsub-gen.go b/pubsub/v1/pubsub-gen.go
index f66dd24..6cefc06 100644
--- a/pubsub/v1/pubsub-gen.go
+++ b/pubsub/v1/pubsub-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/pubsub instead.
 //
-// See https://cloud.google.com/pubsub/docs
+// For product documentation, see: https://cloud.google.com/pubsub/docs
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/pubsub/v1"
 //   ...
-//   pubsubService, err := pubsub.New(oauthHttpClient)
+//   ctx := context.Background()
+//   pubsubService, err := pubsub.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   pubsubService, err := pubsub.NewService(ctx, option.WithScopes(pubsub.PubsubScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   pubsubService, err := pubsub.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   pubsubService, err := pubsub.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package pubsub // import "google.golang.org/api/pubsub/v1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	PubsubScope = "https://www.googleapis.com/auth/pubsub"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/pubsub",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/pubsub/v1beta1a/pubsub-gen.go b/pubsub/v1beta1a/pubsub-gen.go
index 1c3a72e..20b65ee 100644
--- a/pubsub/v1beta1a/pubsub-gen.go
+++ b/pubsub/v1beta1a/pubsub-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/pubsub instead.
 //
-// See https://cloud.google.com/pubsub/docs
+// For product documentation, see: https://cloud.google.com/pubsub/docs
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/pubsub/v1beta1a"
 //   ...
-//   pubsubService, err := pubsub.New(oauthHttpClient)
+//   ctx := context.Background()
+//   pubsubService, err := pubsub.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   pubsubService, err := pubsub.NewService(ctx, option.WithScopes(pubsub.PubsubScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   pubsubService, err := pubsub.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   pubsubService, err := pubsub.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package pubsub // import "google.golang.org/api/pubsub/v1beta1a"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	PubsubScope = "https://www.googleapis.com/auth/pubsub"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/pubsub",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/pubsub/v1beta2/pubsub-gen.go b/pubsub/v1beta2/pubsub-gen.go
index ba1ce99..28cb892 100644
--- a/pubsub/v1beta2/pubsub-gen.go
+++ b/pubsub/v1beta2/pubsub-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/pubsub instead.
 //
-// See https://cloud.google.com/pubsub/docs
+// For product documentation, see: https://cloud.google.com/pubsub/docs
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/pubsub/v1beta2"
 //   ...
-//   pubsubService, err := pubsub.New(oauthHttpClient)
+//   ctx := context.Background()
+//   pubsubService, err := pubsub.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   pubsubService, err := pubsub.NewService(ctx, option.WithScopes(pubsub.PubsubScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   pubsubService, err := pubsub.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   pubsubService, err := pubsub.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package pubsub // import "google.golang.org/api/pubsub/v1beta2"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	PubsubScope = "https://www.googleapis.com/auth/pubsub"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/pubsub",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/redis/v1/redis-gen.go b/redis/v1/redis-gen.go
index 7072b8f..c8a3f85 100644
--- a/redis/v1/redis-gen.go
+++ b/redis/v1/redis-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/redis/apiv1 instead.
 //
-// See https://cloud.google.com/memorystore/docs/redis/
+// For product documentation, see: https://cloud.google.com/memorystore/docs/redis/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/redis/v1"
 //   ...
-//   redisService, err := redis.New(oauthHttpClient)
+//   ctx := context.Background()
+//   redisService, err := redis.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   redisService, err := redis.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   redisService, err := redis.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package redis // import "google.golang.org/api/redis/v1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/redis/v1beta1/redis-gen.go b/redis/v1beta1/redis-gen.go
index 8114d05..3d9738b 100644
--- a/redis/v1beta1/redis-gen.go
+++ b/redis/v1beta1/redis-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/redis/apiv1 instead.
 //
-// See https://cloud.google.com/memorystore/docs/redis/
+// For product documentation, see: https://cloud.google.com/memorystore/docs/redis/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/redis/v1beta1"
 //   ...
-//   redisService, err := redis.New(oauthHttpClient)
+//   ctx := context.Background()
+//   redisService, err := redis.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   redisService, err := redis.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   redisService, err := redis.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package redis // import "google.golang.org/api/redis/v1beta1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/remotebuildexecution/v1/remotebuildexecution-api.json b/remotebuildexecution/v1/remotebuildexecution-api.json
index f443493..67a6273 100644
--- a/remotebuildexecution/v1/remotebuildexecution-api.json
+++ b/remotebuildexecution/v1/remotebuildexecution-api.json
@@ -337,7 +337,7 @@
       }
     }
   },
-  "revision": "20190226",
+  "revision": "20190312",
   "rootUrl": "https://remotebuildexecution.googleapis.com/",
   "schemas": {
     "BuildBazelRemoteExecutionV2Action": {
@@ -1670,6 +1670,10 @@
             "$ref": "GoogleDevtoolsRemoteworkersV1test2Blob"
           },
           "type": "array"
+        },
+        "workingDirectory": {
+          "description": "Directory from which a command is executed. It is a relative directory\nwith respect to the bot's working directory (i.e., \"./\"). If it is\nnon-empty, then it must exist under \"./\". Otherwise, \"./\" will be used.",
+          "type": "string"
         }
       },
       "type": "object"
@@ -1882,7 +1886,7 @@
       "type": "object"
     },
     "GoogleRpcStatus": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpcStatus",
       "properties": {
         "code": {
diff --git a/remotebuildexecution/v1/remotebuildexecution-gen.go b/remotebuildexecution/v1/remotebuildexecution-gen.go
index c9af600..4b17dac 100644
--- a/remotebuildexecution/v1/remotebuildexecution-gen.go
+++ b/remotebuildexecution/v1/remotebuildexecution-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package remotebuildexecution provides access to the Remote Build Execution API.
 //
-// See https://cloud.google.com/remote-build-execution/docs/
+// For product documentation, see: https://cloud.google.com/remote-build-execution/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/remotebuildexecution/v1"
 //   ...
-//   remotebuildexecutionService, err := remotebuildexecution.New(oauthHttpClient)
+//   ctx := context.Background()
+//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package remotebuildexecution // import "google.golang.org/api/remotebuildexecution/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -3499,6 +3549,14 @@
 	// remote CAS server.
 	InlineBlobs []*GoogleDevtoolsRemoteworkersV1test2Blob `json:"inlineBlobs,omitempty"`
 
+	// WorkingDirectory: Directory from which a command is executed. It is a
+	// relative directory
+	// with respect to the bot's working directory (i.e., "./"). If it
+	// is
+	// non-empty, then it must exist under "./". Otherwise, "./" will be
+	// used.
+	WorkingDirectory string `json:"workingDirectory,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Arguments") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -3977,20 +4035,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/remotebuildexecution/v1alpha/remotebuildexecution-api.json b/remotebuildexecution/v1alpha/remotebuildexecution-api.json
index 10da122..3e0ce50 100644
--- a/remotebuildexecution/v1alpha/remotebuildexecution-api.json
+++ b/remotebuildexecution/v1alpha/remotebuildexecution-api.json
@@ -382,7 +382,7 @@
       }
     }
   },
-  "revision": "20190226",
+  "revision": "20190312",
   "rootUrl": "https://admin-remotebuildexecution.googleapis.com/",
   "schemas": {
     "BuildBazelRemoteExecutionV2Action": {
@@ -1704,6 +1704,10 @@
             "$ref": "GoogleDevtoolsRemoteworkersV1test2Blob"
           },
           "type": "array"
+        },
+        "workingDirectory": {
+          "description": "Directory from which a command is executed. It is a relative directory\nwith respect to the bot's working directory (i.e., \"./\"). If it is\nnon-empty, then it must exist under \"./\". Otherwise, \"./\" will be used.",
+          "type": "string"
         }
       },
       "type": "object"
@@ -1886,7 +1890,7 @@
       "type": "object"
     },
     "GoogleRpcStatus": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpcStatus",
       "properties": {
         "code": {
diff --git a/remotebuildexecution/v1alpha/remotebuildexecution-gen.go b/remotebuildexecution/v1alpha/remotebuildexecution-gen.go
index 7b3dbb1..6f2c3b2 100644
--- a/remotebuildexecution/v1alpha/remotebuildexecution-gen.go
+++ b/remotebuildexecution/v1alpha/remotebuildexecution-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package remotebuildexecution provides access to the Remote Build Execution API.
 //
-// See https://cloud.google.com/remote-build-execution/docs/
+// For product documentation, see: https://cloud.google.com/remote-build-execution/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/remotebuildexecution/v1alpha"
 //   ...
-//   remotebuildexecutionService, err := remotebuildexecution.New(oauthHttpClient)
+//   ctx := context.Background()
+//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package remotebuildexecution // import "google.golang.org/api/remotebuildexecution/v1alpha"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -3471,6 +3521,14 @@
 	// remote CAS server.
 	InlineBlobs []*GoogleDevtoolsRemoteworkersV1test2Blob `json:"inlineBlobs,omitempty"`
 
+	// WorkingDirectory: Directory from which a command is executed. It is a
+	// relative directory
+	// with respect to the bot's working directory (i.e., "./"). If it
+	// is
+	// non-empty, then it must exist under "./". Otherwise, "./" will be
+	// used.
+	WorkingDirectory string `json:"workingDirectory,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Arguments") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -3889,20 +3947,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/remotebuildexecution/v2/remotebuildexecution-api.json b/remotebuildexecution/v2/remotebuildexecution-api.json
index 966dd04..2f2043d 100644
--- a/remotebuildexecution/v2/remotebuildexecution-api.json
+++ b/remotebuildexecution/v2/remotebuildexecution-api.json
@@ -430,7 +430,7 @@
       }
     }
   },
-  "revision": "20190226",
+  "revision": "20190312",
   "rootUrl": "https://remotebuildexecution.googleapis.com/",
   "schemas": {
     "BuildBazelRemoteExecutionV2Action": {
@@ -2133,6 +2133,10 @@
             "$ref": "GoogleDevtoolsRemoteworkersV1test2Blob"
           },
           "type": "array"
+        },
+        "workingDirectory": {
+          "description": "Directory from which a command is executed. It is a relative directory\nwith respect to the bot's working directory (i.e., \"./\"). If it is\nnon-empty, then it must exist under \"./\". Otherwise, \"./\" will be used.",
+          "type": "string"
         }
       },
       "type": "object"
@@ -2315,7 +2319,7 @@
       "type": "object"
     },
     "GoogleRpcStatus": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpcStatus",
       "properties": {
         "code": {
diff --git a/remotebuildexecution/v2/remotebuildexecution-gen.go b/remotebuildexecution/v2/remotebuildexecution-gen.go
index d540877..f7f8487 100644
--- a/remotebuildexecution/v2/remotebuildexecution-gen.go
+++ b/remotebuildexecution/v2/remotebuildexecution-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package remotebuildexecution provides access to the Remote Build Execution API.
 //
-// See https://cloud.google.com/remote-build-execution/docs/
+// For product documentation, see: https://cloud.google.com/remote-build-execution/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/remotebuildexecution/v2"
 //   ...
-//   remotebuildexecutionService, err := remotebuildexecution.New(oauthHttpClient)
+//   ctx := context.Background()
+//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package remotebuildexecution // import "google.golang.org/api/remotebuildexecution/v2"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -4240,6 +4290,14 @@
 	// remote CAS server.
 	InlineBlobs []*GoogleDevtoolsRemoteworkersV1test2Blob `json:"inlineBlobs,omitempty"`
 
+	// WorkingDirectory: Directory from which a command is executed. It is a
+	// relative directory
+	// with respect to the bot's working directory (i.e., "./"). If it
+	// is
+	// non-empty, then it must exist under "./". Otherwise, "./" will be
+	// used.
+	WorkingDirectory string `json:"workingDirectory,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "Arguments") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
@@ -4658,20 +4716,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/replicapool/v1beta1/replicapool-gen.go b/replicapool/v1beta1/replicapool-gen.go
index fe659db..8e9ce95 100644
--- a/replicapool/v1beta1/replicapool-gen.go
+++ b/replicapool/v1beta1/replicapool-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package replicapool provides access to the Replica Pool API.
 //
-// See https://developers.google.com/compute/docs/replica-pool/
+// For product documentation, see: https://developers.google.com/compute/docs/replica-pool/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/replicapool/v1beta1"
 //   ...
-//   replicapoolService, err := replicapool.New(oauthHttpClient)
+//   ctx := context.Background()
+//   replicapoolService, err := replicapool.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   replicapoolService, err := replicapool.NewService(ctx, option.WithScopes(replicapool.ReplicapoolReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   replicapoolService, err := replicapool.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   replicapoolService, err := replicapool.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package replicapool // import "google.golang.org/api/replicapool/v1beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -73,6 +101,37 @@
 	ReplicapoolReadonlyScope = "https://www.googleapis.com/auth/replicapool.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/ndev.cloudman",
+		"https://www.googleapis.com/auth/ndev.cloudman.readonly",
+		"https://www.googleapis.com/auth/replicapool",
+		"https://www.googleapis.com/auth/replicapool.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/reseller/v1/reseller-gen.go b/reseller/v1/reseller-gen.go
index 6952d40..2286437 100644
--- a/reseller/v1/reseller-gen.go
+++ b/reseller/v1/reseller-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package reseller provides access to the Enterprise Apps Reseller API.
 //
-// See https://developers.google.com/google-apps/reseller/
+// For product documentation, see: https://developers.google.com/google-apps/reseller/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/reseller/v1"
 //   ...
-//   resellerService, err := reseller.New(oauthHttpClient)
+//   ctx := context.Background()
+//   resellerService, err := reseller.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   resellerService, err := reseller.NewService(ctx, option.WithScopes(reseller.AppsOrderReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   resellerService, err := reseller.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   resellerService, err := reseller.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package reseller // import "google.golang.org/api/reseller/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	AppsOrderReadonlyScope = "https://www.googleapis.com/auth/apps.order.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/apps.order",
+		"https://www.googleapis.com/auth/apps.order.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/runtimeconfig/v1/runtimeconfig-api.json b/runtimeconfig/v1/runtimeconfig-api.json
index 875b4fc..dcee6a6 100644
--- a/runtimeconfig/v1/runtimeconfig-api.json
+++ b/runtimeconfig/v1/runtimeconfig-api.json
@@ -209,7 +209,7 @@
       }
     }
   },
-  "revision": "20180604",
+  "revision": "20190311",
   "rootUrl": "https://runtimeconfig.googleapis.com/",
   "schemas": {
     "CancelOperationRequest": {
@@ -278,7 +278,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/runtimeconfig/v1/runtimeconfig-gen.go b/runtimeconfig/v1/runtimeconfig-gen.go
index 0c8ae89..1146af7 100644
--- a/runtimeconfig/v1/runtimeconfig-gen.go
+++ b/runtimeconfig/v1/runtimeconfig-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package runtimeconfig provides access to the Cloud Runtime Configuration API.
 //
-// See https://cloud.google.com/deployment-manager/runtime-configurator/
+// For product documentation, see: https://cloud.google.com/deployment-manager/runtime-configurator/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/runtimeconfig/v1"
 //   ...
-//   runtimeconfigService, err := runtimeconfig.New(oauthHttpClient)
+//   ctx := context.Background()
+//   runtimeconfigService, err := runtimeconfig.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   runtimeconfigService, err := runtimeconfig.NewService(ctx, option.WithScopes(runtimeconfig.CloudruntimeconfigScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   runtimeconfigService, err := runtimeconfig.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   runtimeconfigService, err := runtimeconfig.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package runtimeconfig // import "google.golang.org/api/runtimeconfig/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	CloudruntimeconfigScope = "https://www.googleapis.com/auth/cloudruntimeconfig"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloudruntimeconfig",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -224,20 +279,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/runtimeconfig/v1beta1/runtimeconfig-gen.go b/runtimeconfig/v1beta1/runtimeconfig-gen.go
index 5b6a634..a1f209d 100644
--- a/runtimeconfig/v1beta1/runtimeconfig-gen.go
+++ b/runtimeconfig/v1beta1/runtimeconfig-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package runtimeconfig provides access to the Cloud Runtime Configuration API.
 //
-// See https://cloud.google.com/deployment-manager/runtime-configurator/
+// For product documentation, see: https://cloud.google.com/deployment-manager/runtime-configurator/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/runtimeconfig/v1beta1"
 //   ...
-//   runtimeconfigService, err := runtimeconfig.New(oauthHttpClient)
+//   ctx := context.Background()
+//   runtimeconfigService, err := runtimeconfig.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   runtimeconfigService, err := runtimeconfig.NewService(ctx, option.WithScopes(runtimeconfig.CloudruntimeconfigScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   runtimeconfigService, err := runtimeconfig.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   runtimeconfigService, err := runtimeconfig.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package runtimeconfig // import "google.golang.org/api/runtimeconfig/v1beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	CloudruntimeconfigScope = "https://www.googleapis.com/auth/cloudruntimeconfig"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloudruntimeconfig",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/safebrowsing/v4/safebrowsing-gen.go b/safebrowsing/v4/safebrowsing-gen.go
index ef3b011..cc2b72f 100644
--- a/safebrowsing/v4/safebrowsing-gen.go
+++ b/safebrowsing/v4/safebrowsing-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package safebrowsing provides access to the Safe Browsing API.
 //
-// See https://developers.google.com/safe-browsing/
+// For product documentation, see: https://developers.google.com/safe-browsing/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/safebrowsing/v4"
 //   ...
-//   safebrowsingService, err := safebrowsing.New(oauthHttpClient)
+//   ctx := context.Background()
+//   safebrowsingService, err := safebrowsing.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   safebrowsingService, err := safebrowsing.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   safebrowsingService, err := safebrowsing.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package safebrowsing // import "google.golang.org/api/safebrowsing/v4"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v4"
 const basePath = "https://safebrowsing.googleapis.com/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/script/v1/script-gen.go b/script/v1/script-gen.go
index 4dccb3a..28a5135 100644
--- a/script/v1/script-gen.go
+++ b/script/v1/script-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package script provides access to the Apps Script API.
 //
-// See https://developers.google.com/apps-script/api/
+// For product documentation, see: https://developers.google.com/apps-script/api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/script/v1"
 //   ...
-//   scriptService, err := script.New(oauthHttpClient)
+//   ctx := context.Background()
+//   scriptService, err := script.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   scriptService, err := script.NewService(ctx, option.WithScopes(script.UserinfoEmailScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   scriptService, err := script.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   scriptService, err := script.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package script // import "google.golang.org/api/script/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -108,6 +136,49 @@
 	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://mail.google.com/",
+		"https://www.google.com/calendar/feeds",
+		"https://www.google.com/m8/feeds",
+		"https://www.googleapis.com/auth/admin.directory.group",
+		"https://www.googleapis.com/auth/admin.directory.user",
+		"https://www.googleapis.com/auth/documents",
+		"https://www.googleapis.com/auth/drive",
+		"https://www.googleapis.com/auth/forms",
+		"https://www.googleapis.com/auth/forms.currentonly",
+		"https://www.googleapis.com/auth/groups",
+		"https://www.googleapis.com/auth/script.deployments",
+		"https://www.googleapis.com/auth/script.deployments.readonly",
+		"https://www.googleapis.com/auth/script.metrics",
+		"https://www.googleapis.com/auth/script.processes",
+		"https://www.googleapis.com/auth/script.projects",
+		"https://www.googleapis.com/auth/script.projects.readonly",
+		"https://www.googleapis.com/auth/spreadsheets",
+		"https://www.googleapis.com/auth/userinfo.email",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/searchconsole/v1/searchconsole-gen.go b/searchconsole/v1/searchconsole-gen.go
index 44b370e..3c460c4 100644
--- a/searchconsole/v1/searchconsole-gen.go
+++ b/searchconsole/v1/searchconsole-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package searchconsole provides access to the Google Search Console URL Testing Tools API.
 //
-// See https://developers.google.com/webmaster-tools/search-console-api/
+// For product documentation, see: https://developers.google.com/webmaster-tools/search-console-api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/searchconsole/v1"
 //   ...
-//   searchconsoleService, err := searchconsole.New(oauthHttpClient)
+//   ctx := context.Background()
+//   searchconsoleService, err := searchconsole.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   searchconsoleService, err := searchconsole.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   searchconsoleService, err := searchconsole.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package searchconsole // import "google.golang.org/api/searchconsole/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://searchconsole.googleapis.com/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/servicebroker/v1/servicebroker-gen.go b/servicebroker/v1/servicebroker-gen.go
index 31c6976..2460733 100644
--- a/servicebroker/v1/servicebroker-gen.go
+++ b/servicebroker/v1/servicebroker-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package servicebroker provides access to the Service Broker API.
 //
-// See https://cloud.google.com/kubernetes-engine/docs/concepts/add-on/service-broker
+// For product documentation, see: https://cloud.google.com/kubernetes-engine/docs/concepts/add-on/service-broker
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/servicebroker/v1"
 //   ...
-//   servicebrokerService, err := servicebroker.New(oauthHttpClient)
+//   ctx := context.Background()
+//   servicebrokerService, err := servicebroker.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   servicebrokerService, err := servicebroker.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   servicebrokerService, err := servicebroker.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package servicebroker // import "google.golang.org/api/servicebroker/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/servicebroker/v1alpha1/servicebroker-gen.go b/servicebroker/v1alpha1/servicebroker-gen.go
index 509362c..2801e28 100644
--- a/servicebroker/v1alpha1/servicebroker-gen.go
+++ b/servicebroker/v1alpha1/servicebroker-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package servicebroker provides access to the Service Broker API.
 //
-// See https://cloud.google.com/kubernetes-engine/docs/concepts/add-on/service-broker
+// For product documentation, see: https://cloud.google.com/kubernetes-engine/docs/concepts/add-on/service-broker
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/servicebroker/v1alpha1"
 //   ...
-//   servicebrokerService, err := servicebroker.New(oauthHttpClient)
+//   ctx := context.Background()
+//   servicebrokerService, err := servicebroker.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   servicebrokerService, err := servicebroker.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   servicebrokerService, err := servicebroker.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package servicebroker // import "google.golang.org/api/servicebroker/v1alpha1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/servicebroker/v1beta1/servicebroker-gen.go b/servicebroker/v1beta1/servicebroker-gen.go
index 223b65b..8ae3230 100644
--- a/servicebroker/v1beta1/servicebroker-gen.go
+++ b/servicebroker/v1beta1/servicebroker-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package servicebroker provides access to the Service Broker API.
 //
-// See https://cloud.google.com/kubernetes-engine/docs/concepts/add-on/service-broker
+// For product documentation, see: https://cloud.google.com/kubernetes-engine/docs/concepts/add-on/service-broker
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/servicebroker/v1beta1"
 //   ...
-//   servicebrokerService, err := servicebroker.New(oauthHttpClient)
+//   ctx := context.Background()
+//   servicebrokerService, err := servicebroker.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   servicebrokerService, err := servicebroker.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   servicebrokerService, err := servicebroker.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package servicebroker // import "google.golang.org/api/servicebroker/v1beta1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/serviceconsumermanagement/v1/serviceconsumermanagement-gen.go b/serviceconsumermanagement/v1/serviceconsumermanagement-gen.go
index 8803d77..3ac4a84 100644
--- a/serviceconsumermanagement/v1/serviceconsumermanagement-gen.go
+++ b/serviceconsumermanagement/v1/serviceconsumermanagement-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package serviceconsumermanagement provides access to the Service Consumer Management API.
 //
-// See https://cloud.google.com/service-consumer-management/docs/overview
+// For product documentation, see: https://cloud.google.com/service-consumer-management/docs/overview
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/serviceconsumermanagement/v1"
 //   ...
-//   serviceconsumermanagementService, err := serviceconsumermanagement.New(oauthHttpClient)
+//   ctx := context.Background()
+//   serviceconsumermanagementService, err := serviceconsumermanagement.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   serviceconsumermanagementService, err := serviceconsumermanagement.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   serviceconsumermanagementService, err := serviceconsumermanagement.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package serviceconsumermanagement // import "google.golang.org/api/serviceconsumermanagement/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/servicecontrol/v1/servicecontrol-api.json b/servicecontrol/v1/servicecontrol-api.json
index 5db5ee4..dc0921f 100644
--- a/servicecontrol/v1/servicecontrol-api.json
+++ b/servicecontrol/v1/servicecontrol-api.json
@@ -196,7 +196,7 @@
       }
     }
   },
-  "revision": "20190217",
+  "revision": "20190309",
   "rootUrl": "https://servicecontrol.googleapis.com/",
   "schemas": {
     "AllocateInfo": {
@@ -1561,7 +1561,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/servicecontrol/v1/servicecontrol-gen.go b/servicecontrol/v1/servicecontrol-gen.go
index f80d997..967653d 100644
--- a/servicecontrol/v1/servicecontrol-gen.go
+++ b/servicecontrol/v1/servicecontrol-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package servicecontrol provides access to the Service Control API.
 //
-// See https://cloud.google.com/service-control/
+// For product documentation, see: https://cloud.google.com/service-control/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/servicecontrol/v1"
 //   ...
-//   servicecontrolService, err := servicecontrol.New(oauthHttpClient)
+//   ctx := context.Background()
+//   servicecontrolService, err := servicecontrol.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   servicecontrolService, err := servicecontrol.NewService(ctx, option.WithScopes(servicecontrol.ServicecontrolScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   servicecontrolService, err := servicecontrol.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   servicecontrolService, err := servicecontrol.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package servicecontrol // import "google.golang.org/api/servicecontrol/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	ServicecontrolScope = "https://www.googleapis.com/auth/servicecontrol"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/servicecontrol",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -2694,20 +2749,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/servicemanagement/v1/servicemanagement-api.json b/servicemanagement/v1/servicemanagement-api.json
index 91c32e5..ed1cd19 100644
--- a/servicemanagement/v1/servicemanagement-api.json
+++ b/servicemanagement/v1/servicemanagement-api.json
@@ -876,7 +876,7 @@
       }
     }
   },
-  "revision": "20190227",
+  "revision": "20190308",
   "rootUrl": "https://servicemanagement.googleapis.com/",
   "schemas": {
     "Advice": {
@@ -991,7 +991,7 @@
       "type": "object"
     },
     "AuthProvider": {
-      "description": "Configuration for an anthentication provider, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).",
+      "description": "Configuration for an anthentication provider, including support for\n[JSON Web Token\n(JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).",
       "id": "AuthProvider",
       "properties": {
         "audiences": {
@@ -1011,14 +1011,14 @@
           "type": "string"
         },
         "jwksUri": {
-          "description": "URL of the provider's public key set to validate signature of the JWT. See\n[OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).\nOptional if the key set document:\n - can be retrieved from\n   [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html\n   of the issuer.\n - can be inferred from the email domain of the issuer (e.g. a Google service account).\n\nExample: https://www.googleapis.com/oauth2/v1/certs",
+          "description": "URL of the provider's public key set to validate signature of the JWT. See\n[OpenID\nDiscovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).\nOptional if the key set document:\n - can be retrieved from\n   [OpenID\n   Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of\n   the issuer.\n - can be inferred from the email domain of the issuer (e.g. a Google\n service account).\n\nExample: https://www.googleapis.com/oauth2/v1/certs",
           "type": "string"
         }
       },
       "type": "object"
     },
     "AuthRequirement": {
-      "description": "User-defined authentication requirements, including support for\n[JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).",
+      "description": "User-defined authentication requirements, including support for\n[JSON Web Token\n(JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).",
       "id": "AuthRequirement",
       "properties": {
         "audiences": {
@@ -1139,8 +1139,8 @@
           ],
           "enumDescriptions": [
             "",
-            "Use the backend address as-is, with no modification to the path. If the\nURL pattern contains variables, the variable names and values will be\nappended to the query string. If a query string parameter and a URL\npattern variable have the same name, this may result in duplicate keys in\nthe query string.\n\n# Examples\n\nGiven the following operation config:\n\n    Method path:        /api/company/{cid}/user/{uid}\n    Backend address:    https://example.cloudfunctions.net/getUser\n\nRequests to the following request paths will call the backend at the\ntranslated path:\n\n    Request path: /api/company/widgetworks/user/johndoe\n    Translated:   https://example.cloudfunctions.net/getUser?cid=widgetworks\u0026uid=johndoe\n\n    Request path: /api/company/widgetworks/user/johndoe?timezone=EST\n    Translated:   https://example.cloudfunctions.net/getUser?timezone=EST\u0026cid=widgetworks\u0026uid=johndoe",
-            "The request path will be appended to the backend address.\n\n# Examples\n\nGiven the following operation config:\n\n    Method path:        /api/company/{cid}/user/{uid}\n    Backend address:    https://example.appspot.com\n\nRequests to the following request paths will call the backend at the\ntranslated path:\n\n    Request path: /api/company/widgetworks/user/johndoe\n    Translated:   https://example.appspot.com/api/company/widgetworks/user/johndoe\n\n    Request path: /api/company/widgetworks/user/johndoe?timezone=EST\n    Translated:   https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST"
+            "Use the backend address as-is, with no modification to the path. If the\nURL pattern contains variables, the variable names and values will be\nappended to the query string. If a query string parameter and a URL\npattern variable have the same name, this may result in duplicate keys in\nthe query string.\n\n# Examples\n\nGiven the following operation config:\n\n    Method path:        /api/company/{cid}/user/{uid}\n    Backend address:    https://example.cloudfunctions.net/getUser\n\nRequests to the following request paths will call the backend at the\ntranslated path:\n\n    Request path: /api/company/widgetworks/user/johndoe\n    Translated:\n    https://example.cloudfunctions.net/getUser?cid=widgetworks\u0026uid=johndoe\n\n    Request path: /api/company/widgetworks/user/johndoe?timezone=EST\n    Translated:\n    https://example.cloudfunctions.net/getUser?timezone=EST\u0026cid=widgetworks\u0026uid=johndoe",
+            "The request path will be appended to the backend address.\n\n# Examples\n\nGiven the following operation config:\n\n    Method path:        /api/company/{cid}/user/{uid}\n    Backend address:    https://example.appspot.com\n\nRequests to the following request paths will call the backend at the\ntranslated path:\n\n    Request path: /api/company/widgetworks/user/johndoe\n    Translated:\n    https://example.appspot.com/api/company/widgetworks/user/johndoe\n\n    Request path: /api/company/widgetworks/user/johndoe?timezone=EST\n    Translated:\n    https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST"
           ],
           "type": "string"
         },
@@ -1247,7 +1247,7 @@
           "type": "string"
         },
         "element": {
-          "description": "Object hierarchy path to the change, with levels separated by a '.'\ncharacter. For repeated fields, an applicable unique identifier field is\nused for the index (usually selector, name, or id). For maps, the term\n'key' is used. If the field has no unique identifier, the numeric index\nis used.\nExamples:\n- visibility.rules[selector==\"google.LibraryService.CreateBook\"].restriction\n- quota.metric_rules[selector==\"google\"].metric_costs[key==\"reads\"].value\n- logging.producer_destinations[0]",
+          "description": "Object hierarchy path to the change, with levels separated by a '.'\ncharacter. For repeated fields, an applicable unique identifier field is\nused for the index (usually selector, name, or id). For maps, the term\n'key' is used. If the field has no unique identifier, the numeric index\nis used.\n## Examples:\n\nvisibility.rules[selector==\"google.LibraryService.CreateBook\"].restriction\n- quota.metric_rules[selector==\"google\"].metric_costs[key==\"reads\"].value\n- logging.producer_destinations[0]",
           "type": "string"
         },
         "newValue": {
@@ -1523,7 +1523,7 @@
       "id": "DocumentationRule",
       "properties": {
         "deprecationDescription": {
-          "description": "Deprecation description of the selected element(s). It can be provided if an\nelement is marked as `deprecated`.",
+          "description": "Deprecation description of the selected element(s). It can be provided if\nan element is marked as `deprecated`.",
           "type": "string"
         },
         "description": {
@@ -1575,7 +1575,7 @@
           "type": "string"
         },
         "target": {
-          "description": "The specification of an Internet routable address of API frontend that will\nhandle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).\nIt should be either a valid IPv4 address or a fully-qualified domain name.\nFor example, \"8.8.8.8\" or \"myservice.appspot.com\".",
+          "description": "The specification of an Internet routable address of API frontend that will\nhandle requests to this [API\nEndpoint](https://cloud.google.com/apis/design/glossary). It should be\neither a valid IPv4 address or a fully-qualified domain name. For example,\n\"8.8.8.8\" or \"myservice.appspot.com\".",
           "type": "string"
         }
       },
@@ -2455,7 +2455,7 @@
       "id": "Page",
       "properties": {
         "content": {
-          "description": "The Markdown content of the page. You can use \u003ccode\u003e\u0026#40;== include {path} ==\u0026#41;\u003c/code\u003e\nto include content from a Markdown file.",
+          "description": "The Markdown content of the page. You can use \u003ccode\u003e\u0026#40;== include {path}\n==\u0026#41;\u003c/code\u003e to include content from a Markdown file.",
           "type": "string"
         },
         "name": {
@@ -2821,7 +2821,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/servicemanagement/v1/servicemanagement-gen.go b/servicemanagement/v1/servicemanagement-gen.go
index 2dc1fd6..6850954 100644
--- a/servicemanagement/v1/servicemanagement-gen.go
+++ b/servicemanagement/v1/servicemanagement-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package servicemanagement provides access to the Service Management API.
 //
-// See https://cloud.google.com/service-management/
+// For product documentation, see: https://cloud.google.com/service-management/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/servicemanagement/v1"
 //   ...
-//   servicemanagementService, err := servicemanagement.New(oauthHttpClient)
+//   ctx := context.Background()
+//   servicemanagementService, err := servicemanagement.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   servicemanagementService, err := servicemanagement.NewService(ctx, option.WithScopes(servicemanagement.ServiceManagementReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   servicemanagementService, err := servicemanagement.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   servicemanagementService, err := servicemanagement.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package servicemanagement // import "google.golang.org/api/servicemanagement/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -65,6 +93,35 @@
 	ServiceManagementReadonlyScope = "https://www.googleapis.com/auth/service.management.readonly"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/service.management",
+		"https://www.googleapis.com/auth/service.management.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -432,9 +489,10 @@
 
 // AuthProvider: Configuration for an anthentication provider, including
 // support for
-// [JSON Web Token
-// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32)
-// .
+// [JSON Web
+// Token
+// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-tok
+// en-32).
 type AuthProvider struct {
 	// Audiences: The list of
 	// JWT
@@ -481,18 +539,21 @@
 	Issuer string `json:"issuer,omitempty"`
 
 	// JwksUri: URL of the provider's public key set to validate signature
-	// of the JWT. See
+	// of the JWT.
+	// See
 	// [OpenID
-	// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#
-	// ProviderMetadata).
+	// Discovery](https://openid.net/specs/openid-connect-discove
+	// ry-1_0.html#ProviderMetadata).
 	// Optional if the key set document:
 	//  - can be retrieved from
 	//    [OpenID
-	// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
 	//
-	//    of the issuer.
-	//  - can be inferred from the email domain of the issuer (e.g. a Google
-	// service account).
+	// Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
+	// of
+	//    the issuer.
+	//  - can be inferred from the email domain of the issuer (e.g. a
+	// Google
+	//  service account).
 	//
 	// Example: https://www.googleapis.com/oauth2/v1/certs
 	JwksUri string `json:"jwksUri,omitempty"`
@@ -522,9 +583,10 @@
 
 // AuthRequirement: User-defined authentication requirements, including
 // support for
-// [JSON Web Token
-// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32)
-// .
+// [JSON Web
+// Token
+// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-tok
+// en-32).
 type AuthRequirement struct {
 	// Audiences: NOTE: This will be deprecated soon, once
 	// AuthProvider.audiences is
@@ -810,10 +872,12 @@
 	//
 	//     Request path: /api/company/widgetworks/user/johndoe
 	//     Translated:
+	//
 	// https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe
 	//
 	//     Request path: /api/company/widgetworks/user/johndoe?timezone=EST
 	//     Translated:
+	//
 	// https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe
 	//   "APPEND_PATH_TO_ADDRESS" - The request path will be appended to the
 	// backend address.
@@ -831,10 +895,12 @@
 	//
 	//     Request path: /api/company/widgetworks/user/johndoe
 	//     Translated:
+	//
 	// https://example.appspot.com/api/company/widgetworks/user/johndoe
 	//
 	//     Request path: /api/company/widgetworks/user/johndoe?timezone=EST
 	//     Translated:
+	//
 	// https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST
 	PathTranslation string `json:"pathTranslation,omitempty"`
 
@@ -1132,10 +1198,11 @@
 	// 'key' is used. If the field has no unique identifier, the numeric
 	// index
 	// is used.
+	// ##
 	// Examples:
-	// -
-	// visibility.rules[selector=="google.LibraryService.CreateBook"].restric
-	// tion
+	//
+	// visibility.rules[selector=="google.LibraryService.CreateBoo
+	// k"].restriction
 	// -
 	// quota.metric_rules[selector=="google"].metric_costs[key=="reads"].valu
 	// e
@@ -1795,8 +1862,8 @@
 // individual API elements.
 type DocumentationRule struct {
 	// DeprecationDescription: Deprecation description of the selected
-	// element(s). It can be provided if an
-	// element is marked as `deprecated`.
+	// element(s). It can be provided if
+	// an element is marked as `deprecated`.
 	DeprecationDescription string `json:"deprecationDescription,omitempty"`
 
 	// Description: Description of the selected API(s).
@@ -1931,11 +1998,13 @@
 
 	// Target: The specification of an Internet routable address of API
 	// frontend that will
-	// handle requests to this [API
-	// Endpoint](https://cloud.google.com/apis/design/glossary).
-	// It should be either a valid IPv4 address or a fully-qualified domain
-	// name.
-	// For example, "8.8.8.8" or "myservice.appspot.com".
+	// handle requests to this
+	// [API
+	// Endpoint](https://cloud.google.com/apis/design/glossary). It should
+	// be
+	// either a valid IPv4 address or a fully-qualified domain name. For
+	// example,
+	// "8.8.8.8" or "myservice.appspot.com".
 	Target string `json:"target,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Aliases") to
@@ -4116,8 +4185,8 @@
 // nested documentation set structure.
 type Page struct {
 	// Content: The Markdown content of the page. You can use <code>&#40;==
-	// include {path} ==&#41;</code>
-	// to include content from a Markdown file.
+	// include {path}
+	// ==&#41;</code> to include content from a Markdown file.
 	Content string `json:"content,omitempty"`
 
 	// Name: The name of the page. It will be used as an identity of the
@@ -4841,20 +4910,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/servicenetworking/v1beta/servicenetworking-gen.go b/servicenetworking/v1beta/servicenetworking-gen.go
index 138e6c2..0db0ae1 100644
--- a/servicenetworking/v1beta/servicenetworking-gen.go
+++ b/servicenetworking/v1beta/servicenetworking-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package servicenetworking provides access to the Service Networking API.
 //
-// See https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started
+// For product documentation, see: https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/servicenetworking/v1beta"
 //   ...
-//   servicenetworkingService, err := servicenetworking.New(oauthHttpClient)
+//   ctx := context.Background()
+//   servicenetworkingService, err := servicenetworking.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   servicenetworkingService, err := servicenetworking.NewService(ctx, option.WithScopes(servicenetworking.ServiceManagementScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   servicenetworkingService, err := servicenetworking.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   servicenetworkingService, err := servicenetworking.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package servicenetworking // import "google.golang.org/api/servicenetworking/v1beta"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	ServiceManagementScope = "https://www.googleapis.com/auth/service.management"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/service.management",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/serviceusage/v1/serviceusage-gen.go b/serviceusage/v1/serviceusage-gen.go
index 8ff6c04..4893e87 100644
--- a/serviceusage/v1/serviceusage-gen.go
+++ b/serviceusage/v1/serviceusage-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package serviceusage provides access to the Service Usage API.
 //
-// See https://cloud.google.com/service-usage/
+// For product documentation, see: https://cloud.google.com/service-usage/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/serviceusage/v1"
 //   ...
-//   serviceusageService, err := serviceusage.New(oauthHttpClient)
+//   ctx := context.Background()
+//   serviceusageService, err := serviceusage.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   serviceusageService, err := serviceusage.NewService(ctx, option.WithScopes(serviceusage.ServiceManagementScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   serviceusageService, err := serviceusage.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   serviceusageService, err := serviceusage.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package serviceusage // import "google.golang.org/api/serviceusage/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	ServiceManagementScope = "https://www.googleapis.com/auth/service.management"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/service.management",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/serviceusage/v1beta1/serviceusage-gen.go b/serviceusage/v1beta1/serviceusage-gen.go
index 53642dc..12da38d 100644
--- a/serviceusage/v1beta1/serviceusage-gen.go
+++ b/serviceusage/v1beta1/serviceusage-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package serviceusage provides access to the Service Usage API.
 //
-// See https://cloud.google.com/service-usage/
+// For product documentation, see: https://cloud.google.com/service-usage/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/serviceusage/v1beta1"
 //   ...
-//   serviceusageService, err := serviceusage.New(oauthHttpClient)
+//   ctx := context.Background()
+//   serviceusageService, err := serviceusage.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   serviceusageService, err := serviceusage.NewService(ctx, option.WithScopes(serviceusage.ServiceManagementScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   serviceusageService, err := serviceusage.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   serviceusageService, err := serviceusage.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package serviceusage // import "google.golang.org/api/serviceusage/v1beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -62,6 +90,34 @@
 	ServiceManagementScope = "https://www.googleapis.com/auth/service.management"
 )
 
+// NewService creates a new APIService.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/service.management",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new APIService. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*APIService, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/sheets/v4/sheets-gen.go b/sheets/v4/sheets-gen.go
index 61532e9..9a27a86 100644
--- a/sheets/v4/sheets-gen.go
+++ b/sheets/v4/sheets-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package sheets provides access to the Google Sheets API.
 //
-// See https://developers.google.com/sheets/
+// For product documentation, see: https://developers.google.com/sheets/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/sheets/v4"
 //   ...
-//   sheetsService, err := sheets.New(oauthHttpClient)
+//   ctx := context.Background()
+//   sheetsService, err := sheets.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   sheetsService, err := sheets.NewService(ctx, option.WithScopes(sheets.SpreadsheetsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   sheetsService, err := sheets.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   sheetsService, err := sheets.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package sheets // import "google.golang.org/api/sheets/v4"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -69,6 +97,36 @@
 	SpreadsheetsReadonlyScope = "https://www.googleapis.com/auth/spreadsheets.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/drive",
+		"https://www.googleapis.com/auth/drive.file",
+		"https://www.googleapis.com/auth/drive.readonly",
+		"https://www.googleapis.com/auth/spreadsheets",
+		"https://www.googleapis.com/auth/spreadsheets.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/siteverification/v1/siteverification-gen.go b/siteverification/v1/siteverification-gen.go
index a40ca73..d3be06a 100644
--- a/siteverification/v1/siteverification-gen.go
+++ b/siteverification/v1/siteverification-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package siteverification provides access to the Google Site Verification API.
 //
-// See https://developers.google.com/site-verification/
+// For product documentation, see: https://developers.google.com/site-verification/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/siteverification/v1"
 //   ...
-//   siteverificationService, err := siteverification.New(oauthHttpClient)
+//   ctx := context.Background()
+//   siteverificationService, err := siteverification.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   siteverificationService, err := siteverification.NewService(ctx, option.WithScopes(siteverification.SiteverificationVerifyOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   siteverificationService, err := siteverification.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   siteverificationService, err := siteverification.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package siteverification // import "google.golang.org/api/siteverification/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	SiteverificationVerifyOnlyScope = "https://www.googleapis.com/auth/siteverification.verify_only"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/siteverification",
+		"https://www.googleapis.com/auth/siteverification.verify_only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/slides/v1/slides-gen.go b/slides/v1/slides-gen.go
index 96c72a5..fe09fbc 100644
--- a/slides/v1/slides-gen.go
+++ b/slides/v1/slides-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package slides provides access to the Google Slides API.
 //
-// See https://developers.google.com/slides/
+// For product documentation, see: https://developers.google.com/slides/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/slides/v1"
 //   ...
-//   slidesService, err := slides.New(oauthHttpClient)
+//   ctx := context.Background()
+//   slidesService, err := slides.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   slidesService, err := slides.NewService(ctx, option.WithScopes(slides.SpreadsheetsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   slidesService, err := slides.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   slidesService, err := slides.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package slides // import "google.golang.org/api/slides/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -75,6 +103,38 @@
 	SpreadsheetsReadonlyScope = "https://www.googleapis.com/auth/spreadsheets.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/drive",
+		"https://www.googleapis.com/auth/drive.file",
+		"https://www.googleapis.com/auth/drive.readonly",
+		"https://www.googleapis.com/auth/presentations",
+		"https://www.googleapis.com/auth/presentations.readonly",
+		"https://www.googleapis.com/auth/spreadsheets",
+		"https://www.googleapis.com/auth/spreadsheets.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/sourcerepo/v1/sourcerepo-gen.go b/sourcerepo/v1/sourcerepo-gen.go
index 2961ae1..f6cb25e 100644
--- a/sourcerepo/v1/sourcerepo-gen.go
+++ b/sourcerepo/v1/sourcerepo-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package sourcerepo provides access to the Cloud Source Repositories API.
 //
-// See https://cloud.google.com/source-repositories/docs/apis
+// For product documentation, see: https://cloud.google.com/source-repositories/docs/apis
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/sourcerepo/v1"
 //   ...
-//   sourcerepoService, err := sourcerepo.New(oauthHttpClient)
+//   ctx := context.Background()
+//   sourcerepoService, err := sourcerepo.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   sourcerepoService, err := sourcerepo.NewService(ctx, option.WithScopes(sourcerepo.SourceReadWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   sourcerepoService, err := sourcerepo.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   sourcerepoService, err := sourcerepo.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package sourcerepo // import "google.golang.org/api/sourcerepo/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -65,6 +93,35 @@
 	SourceReadWriteScope = "https://www.googleapis.com/auth/source.read_write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/source.full_control",
+		"https://www.googleapis.com/auth/source.read_only",
+		"https://www.googleapis.com/auth/source.read_write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/spanner/v1/spanner-gen.go b/spanner/v1/spanner-gen.go
index 5817d0c..f799397 100644
--- a/spanner/v1/spanner-gen.go
+++ b/spanner/v1/spanner-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/spanner instead.
 //
-// See https://cloud.google.com/spanner/
+// For product documentation, see: https://cloud.google.com/spanner/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/spanner/v1"
 //   ...
-//   spannerService, err := spanner.New(oauthHttpClient)
+//   ctx := context.Background()
+//   spannerService, err := spanner.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   spannerService, err := spanner.NewService(ctx, option.WithScopes(spanner.SpannerDataScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   spannerService, err := spanner.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   spannerService, err := spanner.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package spanner // import "google.golang.org/api/spanner/v1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -64,6 +92,34 @@
 	SpannerDataScope = "https://www.googleapis.com/auth/spanner.data"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/spanner.admin",
+		"https://www.googleapis.com/auth/spanner.data",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/speech/v1/speech-gen.go b/speech/v1/speech-gen.go
index c15a834..37912c4 100644
--- a/speech/v1/speech-gen.go
+++ b/speech/v1/speech-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/speech/apiv1 instead.
 //
-// See https://cloud.google.com/speech-to-text/docs/quickstart-protocol
+// For product documentation, see: https://cloud.google.com/speech-to-text/docs/quickstart-protocol
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/speech/v1"
 //   ...
-//   speechService, err := speech.New(oauthHttpClient)
+//   ctx := context.Background()
+//   speechService, err := speech.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   speechService, err := speech.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   speechService, err := speech.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package speech // import "google.golang.org/api/speech/v1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/speech/v1p1beta1/speech-gen.go b/speech/v1p1beta1/speech-gen.go
index a614761..410f838 100644
--- a/speech/v1p1beta1/speech-gen.go
+++ b/speech/v1p1beta1/speech-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/speech/apiv1 instead.
 //
-// See https://cloud.google.com/speech-to-text/docs/quickstart-protocol
+// For product documentation, see: https://cloud.google.com/speech-to-text/docs/quickstart-protocol
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/speech/v1p1beta1"
 //   ...
-//   speechService, err := speech.New(oauthHttpClient)
+//   ctx := context.Background()
+//   speechService, err := speech.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   speechService, err := speech.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   speechService, err := speech.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package speech // import "google.golang.org/api/speech/v1p1beta1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/sqladmin/v1beta4/sqladmin-gen.go b/sqladmin/v1beta4/sqladmin-gen.go
index 1ebf559..e8aec1a 100644
--- a/sqladmin/v1beta4/sqladmin-gen.go
+++ b/sqladmin/v1beta4/sqladmin-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package sqladmin provides access to the Cloud SQL Admin API.
 //
-// See https://cloud.google.com/sql/docs/reference/latest
+// For product documentation, see: https://cloud.google.com/sql/docs/reference/latest
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/sqladmin/v1beta4"
 //   ...
-//   sqladminService, err := sqladmin.New(oauthHttpClient)
+//   ctx := context.Background()
+//   sqladminService, err := sqladmin.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   sqladminService, err := sqladmin.NewService(ctx, option.WithScopes(sqladmin.SqlserviceAdminScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   sqladminService, err := sqladmin.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   sqladminService, err := sqladmin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package sqladmin // import "google.golang.org/api/sqladmin/v1beta4"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	SqlserviceAdminScope = "https://www.googleapis.com/auth/sqlservice.admin"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/sqlservice.admin",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/storage/v1/storage-gen.go b/storage/v1/storage-gen.go
index c6275a0..6b0f227 100644
--- a/storage/v1/storage-gen.go
+++ b/storage/v1/storage-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/storage instead.
 //
-// See https://developers.google.com/storage/docs/json_api/
+// For product documentation, see: https://developers.google.com/storage/docs/json_api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/storage/v1"
 //   ...
-//   storageService, err := storage.New(oauthHttpClient)
+//   ctx := context.Background()
+//   storageService, err := storage.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   storageService, err := storage.NewService(ctx, option.WithScopes(storage.DevstorageReadWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   storageService, err := storage.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   storageService, err := storage.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package storage // import "google.golang.org/api/storage/v1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -70,6 +98,36 @@
 	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+		"https://www.googleapis.com/auth/devstorage.full_control",
+		"https://www.googleapis.com/auth/devstorage.read_only",
+		"https://www.googleapis.com/auth/devstorage.read_write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/storage/v1beta1/storage-gen.go b/storage/v1beta1/storage-gen.go
index 4af74e3..4fbd3b4 100644
--- a/storage/v1beta1/storage-gen.go
+++ b/storage/v1beta1/storage-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/storage instead.
 //
-// See https://developers.google.com/storage/docs/json_api/
+// For product documentation, see: https://developers.google.com/storage/docs/json_api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/storage/v1beta1"
 //   ...
-//   storageService, err := storage.New(oauthHttpClient)
+//   ctx := context.Background()
+//   storageService, err := storage.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   storageService, err := storage.NewService(ctx, option.WithScopes(storage.DevstorageReadWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   storageService, err := storage.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   storageService, err := storage.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package storage // import "google.golang.org/api/storage/v1beta1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -64,6 +92,34 @@
 	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/devstorage.full_control",
+		"https://www.googleapis.com/auth/devstorage.read_only",
+		"https://www.googleapis.com/auth/devstorage.read_write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/storage/v1beta2/storage-gen.go b/storage/v1beta2/storage-gen.go
index 93d37fd..8bd4950 100644
--- a/storage/v1beta2/storage-gen.go
+++ b/storage/v1beta2/storage-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/storage instead.
 //
-// See https://developers.google.com/storage/docs/json_api/
+// For product documentation, see: https://developers.google.com/storage/docs/json_api/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/storage/v1beta2"
 //   ...
-//   storageService, err := storage.New(oauthHttpClient)
+//   ctx := context.Background()
+//   storageService, err := storage.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   storageService, err := storage.NewService(ctx, option.WithScopes(storage.DevstorageReadWriteScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   storageService, err := storage.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   storageService, err := storage.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package storage // import "google.golang.org/api/storage/v1beta2"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -64,6 +92,34 @@
 	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/devstorage.full_control",
+		"https://www.googleapis.com/auth/devstorage.read_only",
+		"https://www.googleapis.com/auth/devstorage.read_write",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/storagetransfer/v1/storagetransfer-gen.go b/storagetransfer/v1/storagetransfer-gen.go
index 28634a0..9707fce 100644
--- a/storagetransfer/v1/storagetransfer-gen.go
+++ b/storagetransfer/v1/storagetransfer-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package storagetransfer provides access to the Storage Transfer API.
 //
-// See https://cloud.google.com/storage-transfer/docs
+// For product documentation, see: https://cloud.google.com/storage-transfer/docs
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/storagetransfer/v1"
 //   ...
-//   storagetransferService, err := storagetransfer.New(oauthHttpClient)
+//   ctx := context.Background()
+//   storagetransferService, err := storagetransfer.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   storagetransferService, err := storagetransfer.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   storagetransferService, err := storagetransfer.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package storagetransfer // import "google.golang.org/api/storagetransfer/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/streetviewpublish/v1/streetviewpublish-gen.go b/streetviewpublish/v1/streetviewpublish-gen.go
index 07b1bda..dd6820a 100644
--- a/streetviewpublish/v1/streetviewpublish-gen.go
+++ b/streetviewpublish/v1/streetviewpublish-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package streetviewpublish provides access to the Street View Publish API.
 //
-// See https://developers.google.com/streetview/publish/
+// For product documentation, see: https://developers.google.com/streetview/publish/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/streetviewpublish/v1"
 //   ...
-//   streetviewpublishService, err := streetviewpublish.New(oauthHttpClient)
+//   ctx := context.Background()
+//   streetviewpublishService, err := streetviewpublish.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   streetviewpublishService, err := streetviewpublish.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   streetviewpublishService, err := streetviewpublish.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package streetviewpublish // import "google.golang.org/api/streetviewpublish/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	StreetviewpublishScope = "https://www.googleapis.com/auth/streetviewpublish"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/streetviewpublish",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/surveys/v2/surveys-gen.go b/surveys/v2/surveys-gen.go
index c7a9669..c4574cb 100644
--- a/surveys/v2/surveys-gen.go
+++ b/surveys/v2/surveys-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,11 +6,37 @@
 
 // Package surveys provides access to the Surveys API.
 //
+// Creating a client
+//
 // Usage example:
 //
 //   import "google.golang.org/api/surveys/v2"
 //   ...
-//   surveysService, err := surveys.New(oauthHttpClient)
+//   ctx := context.Background()
+//   surveysService, err := surveys.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   surveysService, err := surveys.NewService(ctx, option.WithScopes(surveys.UserinfoEmailScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   surveysService, err := surveys.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   surveysService, err := surveys.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package surveys // import "google.golang.org/api/surveys/v2"
 
 import (
@@ -27,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -60,6 +88,34 @@
 	UserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/surveys",
+		"https://www.googleapis.com/auth/surveys.readonly",
+		"https://www.googleapis.com/auth/userinfo.email",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/tagmanager/v1/tagmanager-gen.go b/tagmanager/v1/tagmanager-gen.go
index bd103f8..4455c5d 100644
--- a/tagmanager/v1/tagmanager-gen.go
+++ b/tagmanager/v1/tagmanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package tagmanager provides access to the Tag Manager API.
 //
-// See https://developers.google.com/tag-manager/api/v1/
+// For product documentation, see: https://developers.google.com/tag-manager/api/v1/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/tagmanager/v1"
 //   ...
-//   tagmanagerService, err := tagmanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   tagmanagerService, err := tagmanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   tagmanagerService, err := tagmanager.NewService(ctx, option.WithScopes(tagmanager.TagmanagerReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   tagmanagerService, err := tagmanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   tagmanagerService, err := tagmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package tagmanager // import "google.golang.org/api/tagmanager/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -76,6 +104,38 @@
 	TagmanagerReadonlyScope = "https://www.googleapis.com/auth/tagmanager.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/tagmanager.delete.containers",
+		"https://www.googleapis.com/auth/tagmanager.edit.containers",
+		"https://www.googleapis.com/auth/tagmanager.edit.containerversions",
+		"https://www.googleapis.com/auth/tagmanager.manage.accounts",
+		"https://www.googleapis.com/auth/tagmanager.manage.users",
+		"https://www.googleapis.com/auth/tagmanager.publish",
+		"https://www.googleapis.com/auth/tagmanager.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/tagmanager/v2/tagmanager-gen.go b/tagmanager/v2/tagmanager-gen.go
index c5c8422..97a2fa7 100644
--- a/tagmanager/v2/tagmanager-gen.go
+++ b/tagmanager/v2/tagmanager-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package tagmanager provides access to the Tag Manager API.
 //
-// See https://developers.google.com/tag-manager/api/v2/
+// For product documentation, see: https://developers.google.com/tag-manager/api/v2/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/tagmanager/v2"
 //   ...
-//   tagmanagerService, err := tagmanager.New(oauthHttpClient)
+//   ctx := context.Background()
+//   tagmanagerService, err := tagmanager.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   tagmanagerService, err := tagmanager.NewService(ctx, option.WithScopes(tagmanager.TagmanagerReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   tagmanagerService, err := tagmanager.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   tagmanagerService, err := tagmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package tagmanager // import "google.golang.org/api/tagmanager/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -76,6 +104,38 @@
 	TagmanagerReadonlyScope = "https://www.googleapis.com/auth/tagmanager.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/tagmanager.delete.containers",
+		"https://www.googleapis.com/auth/tagmanager.edit.containers",
+		"https://www.googleapis.com/auth/tagmanager.edit.containerversions",
+		"https://www.googleapis.com/auth/tagmanager.manage.accounts",
+		"https://www.googleapis.com/auth/tagmanager.manage.users",
+		"https://www.googleapis.com/auth/tagmanager.publish",
+		"https://www.googleapis.com/auth/tagmanager.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/tasks/v1/tasks-gen.go b/tasks/v1/tasks-gen.go
index 880c12d..986664b 100644
--- a/tasks/v1/tasks-gen.go
+++ b/tasks/v1/tasks-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package tasks provides access to the Tasks API.
 //
-// See https://developers.google.com/google-apps/tasks/firstapp
+// For product documentation, see: https://developers.google.com/google-apps/tasks/firstapp
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/tasks/v1"
 //   ...
-//   tasksService, err := tasks.New(oauthHttpClient)
+//   ctx := context.Background()
+//   tasksService, err := tasks.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   tasksService, err := tasks.NewService(ctx, option.WithScopes(tasks.TasksReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   tasksService, err := tasks.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   tasksService, err := tasks.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package tasks // import "google.golang.org/api/tasks/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	TasksReadonlyScope = "https://www.googleapis.com/auth/tasks.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/tasks",
+		"https://www.googleapis.com/auth/tasks.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/testing/v1/testing-gen.go b/testing/v1/testing-gen.go
index e9640bf..dc3145b 100644
--- a/testing/v1/testing-gen.go
+++ b/testing/v1/testing-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package testing provides access to the Cloud Testing API.
 //
-// See https://developers.google.com/cloud-test-lab/
+// For product documentation, see: https://developers.google.com/cloud-test-lab/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/testing/v1"
 //   ...
-//   testingService, err := testing.New(oauthHttpClient)
+//   ctx := context.Background()
+//   testingService, err := testing.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   testingService, err := testing.NewService(ctx, option.WithScopes(testing.CloudPlatformReadOnlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   testingService, err := testing.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   testingService, err := testing.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package testing // import "google.golang.org/api/testing/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-platform.read-only",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/texttospeech/v1/texttospeech-gen.go b/texttospeech/v1/texttospeech-gen.go
index e0cea6e..ec8950c 100644
--- a/texttospeech/v1/texttospeech-gen.go
+++ b/texttospeech/v1/texttospeech-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/texttospeech/apiv1 instead.
 //
-// See https://cloud.google.com/text-to-speech/
+// For product documentation, see: https://cloud.google.com/text-to-speech/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/texttospeech/v1"
 //   ...
-//   texttospeechService, err := texttospeech.New(oauthHttpClient)
+//   ctx := context.Background()
+//   texttospeechService, err := texttospeech.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   texttospeechService, err := texttospeech.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   texttospeechService, err := texttospeech.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package texttospeech // import "google.golang.org/api/texttospeech/v1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/texttospeech/v1beta1/texttospeech-gen.go b/texttospeech/v1beta1/texttospeech-gen.go
index 2230e7d..c815b6d 100644
--- a/texttospeech/v1beta1/texttospeech-gen.go
+++ b/texttospeech/v1beta1/texttospeech-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/texttospeech/apiv1 instead.
 //
-// See https://cloud.google.com/text-to-speech/
+// For product documentation, see: https://cloud.google.com/text-to-speech/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/texttospeech/v1beta1"
 //   ...
-//   texttospeechService, err := texttospeech.New(oauthHttpClient)
+//   ctx := context.Background()
+//   texttospeechService, err := texttospeech.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   texttospeechService, err := texttospeech.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   texttospeechService, err := texttospeech.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package texttospeech // import "google.golang.org/api/texttospeech/v1beta1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/toolresults/v1beta3/toolresults-api.json b/toolresults/v1beta3/toolresults-api.json
index d88acd5..8ad34c5 100644
--- a/toolresults/v1beta3/toolresults-api.json
+++ b/toolresults/v1beta3/toolresults-api.json
@@ -15,7 +15,7 @@
   "description": "Reads and publishes results from Firebase Test Lab.",
   "discoveryVersion": "v1",
   "documentationLink": "https://firebase.google.com/docs/test-lab/",
-  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/4klElBDrVMG1VukQ-i6HEIPiaCI\"",
+  "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/hiiQTwXIKYr17bqdTbUMrpnRLsQ\"",
   "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
     "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
@@ -1161,7 +1161,7 @@
       }
     }
   },
-  "revision": "20190207",
+  "revision": "20190313",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "AndroidAppInfo": {
@@ -2405,7 +2405,8 @@
             "startActivityNotFound",
             "unspecifiedType",
             "unusedRoboDirective",
-            "usedRoboDirective"
+            "usedRoboDirective",
+            "usedRoboIgnoreDirective"
           ],
           "enumDescriptions": [
             "",
@@ -2429,6 +2430,7 @@
             "",
             "",
             "",
+            "",
             ""
           ],
           "type": "string"
diff --git a/toolresults/v1beta3/toolresults-gen.go b/toolresults/v1beta3/toolresults-gen.go
index 36a5f0c..b9da3d2 100644
--- a/toolresults/v1beta3/toolresults-gen.go
+++ b/toolresults/v1beta3/toolresults-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package toolresults provides access to the Cloud Tool Results API.
 //
-// See https://firebase.google.com/docs/test-lab/
+// For product documentation, see: https://firebase.google.com/docs/test-lab/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/toolresults/v1beta3"
 //   ...
-//   toolresultsService, err := toolresults.New(oauthHttpClient)
+//   ctx := context.Background()
+//   toolresultsService, err := toolresults.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   toolresultsService, err := toolresults.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   toolresultsService, err := toolresults.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package toolresults // import "google.golang.org/api/toolresults/v1beta3"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -2686,6 +2736,7 @@
 	//   "unspecifiedType"
 	//   "unusedRoboDirective"
 	//   "usedRoboDirective"
+	//   "usedRoboIgnoreDirective"
 	Type string `json:"type,omitempty"`
 
 	// Warning: Warning message with additional details of the issue. Should
diff --git a/tpu/v1/tpu-api.json b/tpu/v1/tpu-api.json
index 0edb480..9eb0c4b 100644
--- a/tpu/v1/tpu-api.json
+++ b/tpu/v1/tpu-api.json
@@ -658,7 +658,7 @@
       }
     }
   },
-  "revision": "20190228",
+  "revision": "20190312",
   "rootUrl": "https://tpu.googleapis.com/",
   "schemas": {
     "AcceleratorType": {
@@ -1055,7 +1055,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/tpu/v1/tpu-gen.go b/tpu/v1/tpu-gen.go
index 400ca7f..6d09f54 100644
--- a/tpu/v1/tpu-gen.go
+++ b/tpu/v1/tpu-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package tpu provides access to the Cloud TPU API.
 //
-// See https://cloud.google.com/tpu/
+// For product documentation, see: https://cloud.google.com/tpu/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/tpu/v1"
 //   ...
-//   tpuService, err := tpu.New(oauthHttpClient)
+//   ctx := context.Background()
+//   tpuService, err := tpu.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   tpuService, err := tpu.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   tpuService, err := tpu.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package tpu // import "google.golang.org/api/tpu/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -820,20 +870,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/tpu/v1alpha1/tpu-api.json b/tpu/v1alpha1/tpu-api.json
index 99d83ad..9cc87e7 100644
--- a/tpu/v1alpha1/tpu-api.json
+++ b/tpu/v1alpha1/tpu-api.json
@@ -658,7 +658,7 @@
       }
     }
   },
-  "revision": "20190228",
+  "revision": "20190312",
   "rootUrl": "https://tpu.googleapis.com/",
   "schemas": {
     "AcceleratorType": {
@@ -1055,7 +1055,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/tpu/v1alpha1/tpu-gen.go b/tpu/v1alpha1/tpu-gen.go
index e52a340..207bab0 100644
--- a/tpu/v1alpha1/tpu-gen.go
+++ b/tpu/v1alpha1/tpu-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package tpu provides access to the Cloud TPU API.
 //
-// See https://cloud.google.com/tpu/
+// For product documentation, see: https://cloud.google.com/tpu/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/tpu/v1alpha1"
 //   ...
-//   tpuService, err := tpu.New(oauthHttpClient)
+//   ctx := context.Background()
+//   tpuService, err := tpu.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   tpuService, err := tpu.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   tpuService, err := tpu.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package tpu // import "google.golang.org/api/tpu/v1alpha1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -820,20 +870,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/translate/v2/translate-gen.go b/translate/v2/translate-gen.go
index 6f826a2..4c54451 100644
--- a/translate/v2/translate-gen.go
+++ b/translate/v2/translate-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/translate instead.
 //
-// See https://code.google.com/apis/language/translate/v2/getting_started.html
+// For product documentation, see: https://code.google.com/apis/language/translate/v2/getting_started.html
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/translate/v2"
 //   ...
-//   translateService, err := translate.New(oauthHttpClient)
+//   ctx := context.Background()
+//   translateService, err := translate.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   translateService, err := translate.NewService(ctx, option.WithScopes(translate.CloudTranslationScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   translateService, err := translate.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   translateService, err := translate.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package translate // import "google.golang.org/api/translate/v2"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	CloudTranslationScope = "https://www.googleapis.com/auth/cloud-translation"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-translation",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/urlshortener/v1/urlshortener-gen.go b/urlshortener/v1/urlshortener-gen.go
index 4f24398..61bb127 100644
--- a/urlshortener/v1/urlshortener-gen.go
+++ b/urlshortener/v1/urlshortener-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package urlshortener provides access to the URL Shortener API.
 //
-// See https://developers.google.com/url-shortener/v1/getting_started
+// For product documentation, see: https://developers.google.com/url-shortener/v1/getting_started
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/urlshortener/v1"
 //   ...
-//   urlshortenerService, err := urlshortener.New(oauthHttpClient)
+//   ctx := context.Background()
+//   urlshortenerService, err := urlshortener.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   urlshortenerService, err := urlshortener.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   urlshortenerService, err := urlshortener.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package urlshortener // import "google.golang.org/api/urlshortener/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	UrlshortenerScope = "https://www.googleapis.com/auth/urlshortener"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/urlshortener",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/vault/v1/vault-api.json b/vault/v1/vault-api.json
index 7ea595a..4a644fa 100644
--- a/vault/v1/vault-api.json
+++ b/vault/v1/vault-api.json
@@ -1024,7 +1024,7 @@
       }
     }
   },
-  "revision": "20181128",
+  "revision": "20190312",
   "rootUrl": "https://vault.googleapis.com/",
   "schemas": {
     "AccountInfo": {
@@ -1661,6 +1661,10 @@
             "PST as export format"
           ],
           "type": "string"
+        },
+        "showConfidentialModeContent": {
+          "description": "Set to true to export confidential mode content.",
+          "type": "boolean"
         }
       },
       "type": "object"
diff --git a/vault/v1/vault-gen.go b/vault/v1/vault-gen.go
index e959879..b36d00c 100644
--- a/vault/v1/vault-gen.go
+++ b/vault/v1/vault-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package vault provides access to the G Suite Vault API.
 //
-// See https://developers.google.com/vault
+// For product documentation, see: https://developers.google.com/vault
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/vault/v1"
 //   ...
-//   vaultService, err := vault.New(oauthHttpClient)
+//   ctx := context.Background()
+//   vaultService, err := vault.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   vaultService, err := vault.NewService(ctx, option.WithScopes(vault.EdiscoveryReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   vaultService, err := vault.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   vaultService, err := vault.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package vault // import "google.golang.org/api/vault/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	EdiscoveryReadonlyScope = "https://www.googleapis.com/auth/ediscovery.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/ediscovery",
+		"https://www.googleapis.com/auth/ediscovery.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1284,6 +1339,10 @@
 	//   "PST" - PST as export format
 	ExportFormat string `json:"exportFormat,omitempty"`
 
+	// ShowConfidentialModeContent: Set to true to export confidential mode
+	// content.
+	ShowConfidentialModeContent bool `json:"showConfidentialModeContent,omitempty"`
+
 	// ForceSendFields is a list of field names (e.g. "ExportFormat") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
diff --git a/videointelligence/v1/videointelligence-api.json b/videointelligence/v1/videointelligence-api.json
index 998c5b2..0641e5f 100644
--- a/videointelligence/v1/videointelligence-api.json
+++ b/videointelligence/v1/videointelligence-api.json
@@ -246,7 +246,7 @@
       }
     }
   },
-  "revision": "20190220",
+  "revision": "20190308",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -442,6 +442,11 @@
       "description": "Config for LABEL_DETECTION.",
       "id": "GoogleCloudVideointelligenceV1_LabelDetectionConfig",
       "properties": {
+        "frameConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nframe-level detection. If not set, it is set to 0.4 by default. The valid\nrange for this threshold is [0.1, 0.9]. Any value set outside of this\nrange will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
+        },
         "labelDetectionMode": {
           "description": "What labels should be detected with LABEL_DETECTION, in addition to\nvideo-level labels or segment-level labels.\nIf unspecified, defaults to `SHOT_MODE`.",
           "enum": [
@@ -465,6 +470,11 @@
         "stationaryCamera": {
           "description": "Whether the video has been shot from a stationary (i.e. non-moving) camera.\nWhen set to true, might improve detection accuracy for moving objects.\nShould be used with `SHOT_AND_FRAME_MODE` enabled.",
           "type": "boolean"
+        },
+        "videoConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nvideo-level and shot-level detections. If not set, it is set to 0.3 by\ndefault. The valid range for this threshold is [0.1, 0.9]. Any value set\noutside of this range will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
         }
       },
       "type": "object"
@@ -2485,37 +2495,37 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_AnnotateVideoProgress": {
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress": {
       "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
-      "id": "GoogleCloudVideointelligenceV2beta1_AnnotateVideoProgress",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress",
       "properties": {
         "annotationProgress": {
           "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_AnnotateVideoResponse": {
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse": {
       "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
-      "id": "GoogleCloudVideointelligenceV2beta1_AnnotateVideoResponse",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse",
       "properties": {
         "annotationResults": {
           "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_Entity": {
+    "GoogleCloudVideointelligenceV1p3beta1_Entity": {
       "description": "Detected entity from video analysis.",
-      "id": "GoogleCloudVideointelligenceV2beta1_Entity",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_Entity",
       "properties": {
         "description": {
           "description": "Textual description, e.g. `Fixed-gear bicycle`.",
@@ -2532,23 +2542,23 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation": {
       "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
       "properties": {
         "frames": {
           "description": "All video frames where explicit content was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame": {
       "description": "Video frame level annotation results for explicit content.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame",
       "properties": {
         "pornographyLikelihood": {
           "description": "Likelihood of the pornography content..",
@@ -2578,41 +2588,41 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation": {
       "description": "Label annotation.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation",
       "properties": {
         "categoryEntities": {
           "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_Entity"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity"
           },
           "type": "array"
         },
         "entity": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_Entity",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
           "description": "Detected entity."
         },
         "frames": {
           "description": "All video frames where a label was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame"
           },
           "type": "array"
         },
         "segments": {
           "description": "All video segments where a label was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelFrame": {
       "description": "Video frame level annotation results for label detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame",
       "properties": {
         "confidence": {
           "description": "Confidence that the label is accurate. Range: [0, 1].",
@@ -2627,9 +2637,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelSegment": {
       "description": "Video segment level annotation results for label detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment",
       "properties": {
         "confidence": {
           "description": "Confidence that the label is accurate. Range: [0, 1].",
@@ -2637,15 +2647,15 @@
           "type": "number"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Video segment where a label was detected."
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox": {
       "description": "Normalized bounding box.\nThe normalized vertex coordinates are relative to the original image.\nRange: [0, 1].",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
       "properties": {
         "bottom": {
           "description": "Bottom Y coordinate.",
@@ -2670,23 +2680,23 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly": {
       "description": "Normalized bounding polygon for text (that might not be aligned with axis).\nContains list of the corner points in clockwise order starting from\ntop-left corner. For example, for a rectangular bounding box:\nWhen the text is horizontal it might look like:\n        0----1\n        |    |\n        3----2\n\nWhen it's clockwise rotated 180 degrees around the top-left corner it\nbecomes:\n        2----3\n        |    |\n        1----0\n\nand the vertex order will still be (0, 1, 2, 3). Note that values can be less\nthan 0, or greater than 1 due to trignometric calculations for location of\nthe box.",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
       "properties": {
         "vertices": {
           "description": "Normalized vertices of the bounding polygon.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedVertex"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedVertex": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex": {
       "description": "A vertex represents a 2D point in the image.\nNOTE: the normalized vertex coordinates are relative to the original image\nand range from 0 to 1.",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedVertex",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex",
       "properties": {
         "x": {
           "description": "X coordinate.",
@@ -2701,9 +2711,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation": {
       "description": "Annotations corresponding to one tracked object.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation",
       "properties": {
         "confidence": {
           "description": "Object category's labeling confidence of this track.",
@@ -2711,18 +2721,18 @@
           "type": "number"
         },
         "entity": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_Entity",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
           "description": "Entity to specify the object category that this track is labeled as."
         },
         "frames": {
           "description": "Information corresponding to all frames where this object track appears.\nNon-streaming batch mode: it may be one or multiple ObjectTrackingFrame\nmessages in frames.\nStreaming mode: it can only be one ObjectTrackingFrame message in frames.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame"
           },
           "type": "array"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Non-streaming batch mode ONLY.\nEach object track corresponds to one video segment where it appears."
         },
         "trackId": {
@@ -2733,12 +2743,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame": {
       "description": "Video frame level annotations for object detection and tracking. This field\nstores per frame location, time offset, and confidence.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame",
       "properties": {
         "normalizedBoundingBox": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
           "description": "The normalized bounding box location of this object track for the frame."
         },
         "timeOffset": {
@@ -2749,9 +2759,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative": {
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative": {
       "description": "Alternative hypotheses (a.k.a. n-best list).",
-      "id": "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
           "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
@@ -2765,21 +2775,21 @@
         "words": {
           "description": "A list of word-specific information for each recognized word.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_WordInfo"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_WordInfo"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_SpeechTranscription": {
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription": {
       "description": "A speech recognition result corresponding to a portion of the audio.",
-      "id": "GoogleCloudVideointelligenceV2beta1_SpeechTranscription",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription",
       "properties": {
         "alternatives": {
           "description": "May contain one or more recognition hypotheses (up to the maximum specified\nin `max_alternatives`).  These alternatives are ordered in terms of\naccuracy, with the top (first) alternative being the most probable, as\nranked by the recognizer.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative"
           },
           "type": "array"
         },
@@ -2790,12 +2800,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_StreamingAnnotateVideoResponse": {
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse": {
       "description": "`StreamingAnnotateVideoResponse` is the only message returned to the client\nby `StreamingAnnotateVideo`. A series of zero or more\n`StreamingAnnotateVideoResponse` messages are streamed back to the client.",
-      "id": "GoogleCloudVideointelligenceV2beta1_StreamingAnnotateVideoResponse",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse",
       "properties": {
         "annotationResults": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
           "description": "Streaming annotation results."
         },
         "annotationResultsUri": {
@@ -2809,46 +2819,46 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults": {
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults": {
       "description": "Streaming annotation results corresponding to a portion of the video\nthat is currently being processed.",
-      "id": "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
       "properties": {
         "explicitAnnotation": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
           "description": "Explicit content annotation results."
         },
         "labelAnnotations": {
           "description": "Label annotation results.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "objectAnnotations": {
           "description": "Object tracking results.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
           },
           "type": "array"
         },
         "shotAnnotations": {
           "description": "Shot annotation results. Each shot is represented as a video segment.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation": {
       "description": "Annotations related to one detected OCR text snippet. This will contain the\ncorresponding text, confidence value, and frame level information for each\ndetection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation",
       "properties": {
         "segments": {
           "description": "All video segments where OCR detected text appears.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextSegment"
           },
           "type": "array"
         },
@@ -2859,12 +2869,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextFrame": {
       "description": "Video frame level annotation results for text annotation (OCR).\nContains information regarding timestamp and bounding box locations for the\nframes containing detected OCR text snippets.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextFrame",
       "properties": {
         "rotatedBoundingBox": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
           "description": "Bounding polygon of the detected text for this frame."
         },
         "timeOffset": {
@@ -2875,9 +2885,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextSegment": {
       "description": "Video segment level annotation results for text detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextSegment",
       "properties": {
         "confidence": {
           "description": "Confidence for the track of detected text. It is calculated as the highest\nover all frames where OCR detected text appears.",
@@ -2887,20 +2897,20 @@
         "frames": {
           "description": "Information related to the frames where OCR detected text appears.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextFrame"
           },
           "type": "array"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Video segment where a text snippet was detected."
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress": {
       "description": "Annotation progress for a single video.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress",
       "properties": {
         "inputUri": {
           "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
@@ -2924,22 +2934,22 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults": {
       "description": "Annotation results for a single video.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults",
       "properties": {
         "error": {
           "$ref": "GoogleRpc_Status",
           "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail."
         },
         "explicitAnnotation": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
           "description": "Explicit content annotation."
         },
         "frameLabelAnnotations": {
           "description": "Label annotations on frame level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
@@ -2950,51 +2960,51 @@
         "objectAnnotations": {
           "description": "Annotations for list of objects detected and tracked in video.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
           },
           "type": "array"
         },
         "segmentLabelAnnotations": {
           "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "shotAnnotations": {
           "description": "Shot annotations. Each shot is represented as a video segment.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
           },
           "type": "array"
         },
         "shotLabelAnnotations": {
           "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "speechTranscriptions": {
           "description": "Speech transcription.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_SpeechTranscription"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription"
           },
           "type": "array"
         },
         "textAnnotations": {
           "description": "OCR text detection and tracking.\nAnnotations for list of detected text snippets. Each will have list of\nframe information associated with it.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoSegment": {
       "description": "Video segment.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
       "properties": {
         "endTimeOffset": {
           "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).",
@@ -3009,9 +3019,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_WordInfo": {
+    "GoogleCloudVideointelligenceV1p3beta1_WordInfo": {
       "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.",
-      "id": "GoogleCloudVideointelligenceV2beta1_WordInfo",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_WordInfo",
       "properties": {
         "confidence": {
           "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
@@ -3106,7 +3116,7 @@
       "type": "object"
     },
     "GoogleRpc_Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpc_Status",
       "properties": {
         "code": {
diff --git a/videointelligence/v1/videointelligence-gen.go b/videointelligence/v1/videointelligence-gen.go
index e759434..2fc3226 100644
--- a/videointelligence/v1/videointelligence-gen.go
+++ b/videointelligence/v1/videointelligence-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/videointelligence/apiv1 instead.
 //
-// See https://cloud.google.com/video-intelligence/docs/
+// For product documentation, see: https://cloud.google.com/video-intelligence/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/videointelligence/v1"
 //   ...
-//   videointelligenceService, err := videointelligence.New(oauthHttpClient)
+//   ctx := context.Background()
+//   videointelligenceService, err := videointelligence.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package videointelligence // import "google.golang.org/api/videointelligence/v1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -448,6 +498,18 @@
 // GoogleCloudVideointelligenceV1LabelDetectionConfig: Config for
 // LABEL_DETECTION.
 type GoogleCloudVideointelligenceV1LabelDetectionConfig struct {
+	// FrameConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// frame-level detection. If not set, it is set to 0.4 by default. The
+	// valid
+	// range for this threshold is [0.1, 0.9]. Any value set outside of
+	// this
+	// range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	FrameConfidenceThreshold float64 `json:"frameConfidenceThreshold,omitempty"`
+
 	// LabelDetectionMode: What labels should be detected with
 	// LABEL_DETECTION, in addition to
 	// video-level labels or segment-level labels.
@@ -474,18 +536,31 @@
 	// Should be used with `SHOT_AND_FRAME_MODE` enabled.
 	StationaryCamera bool `json:"stationaryCamera,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "LabelDetectionMode")
-	// 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.
+	// VideoConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// video-level and shot-level detections. If not set, it is set to 0.3
+	// by
+	// default. The valid range for this threshold is [0.1, 0.9]. Any value
+	// set
+	// outside of this range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	VideoConfidenceThreshold float64 `json:"videoConfidenceThreshold,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "FrameConfidenceThreshold") to unconditionally include in API
+	// requests. By default, fields with empty values are omitted from API
+	// requests. However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "LabelDetectionMode") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
+	// NullFields is a list of field names (e.g. "FrameConfidenceThreshold")
+	// to include in API requests with the JSON null value. By default,
+	// fields with empty values are omitted from API requests. However, any
+	// field with an empty value appearing in NullFields will be sent to the
 	// server as null. It is an error if a field in this list has a
 	// non-empty value. This may be used to include null fields in Patch
 	// requests.
@@ -498,6 +573,22 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+func (s *GoogleCloudVideointelligenceV1LabelDetectionConfig) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1LabelDetectionConfig
+	var s1 struct {
+		FrameConfidenceThreshold gensupport.JSONFloat64 `json:"frameConfidenceThreshold"`
+		VideoConfidenceThreshold gensupport.JSONFloat64 `json:"videoConfidenceThreshold"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.FrameConfidenceThreshold = float64(s1.FrameConfidenceThreshold)
+	s.VideoConfidenceThreshold = float64(s1.VideoConfidenceThreshold)
+	return nil
+}
+
 // GoogleCloudVideointelligenceV1LabelFrame: Video frame level
 // annotation results for label detection.
 type GoogleCloudVideointelligenceV1LabelFrame struct {
@@ -4729,14 +4820,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress: Video
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress: Video
 // annotation progress. Included in the `metadata`
 // field of the `Operation` returned by the `GetOperation`
 // call of the `google::longrunning::Operations` service.
-type GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress struct {
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress struct {
 	// AnnotationProgress: Progress metadata for all videos specified in
 	// `AnnotateVideoRequest`.
-	AnnotationProgress []*GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
+	AnnotationProgress []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
 	// to unconditionally include in API requests. By default, fields with
@@ -4756,20 +4847,20 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse: Video
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse: Video
 // annotation response. Included in the `response`
 // field of the `Operation` returned by the `GetOperation`
 // call of the `google::longrunning::Operations` service.
-type GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse struct {
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse struct {
 	// AnnotationResults: Annotation results for all videos specified in
 	// `AnnotateVideoRequest`.
-	AnnotationResults []*GoogleCloudVideointelligenceV2beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
+	AnnotationResults []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
 	// to unconditionally include in API requests. By default, fields with
@@ -4789,15 +4880,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1Entity: Detected entity from video
-// analysis.
-type GoogleCloudVideointelligenceV2beta1Entity struct {
+// GoogleCloudVideointelligenceV1p3beta1Entity: Detected entity from
+// video analysis.
+type GoogleCloudVideointelligenceV1p3beta1Entity struct {
 	// Description: Textual description, e.g. `Fixed-gear bicycle`.
 	Description string `json:"description,omitempty"`
 
@@ -4827,21 +4918,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1Entity) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1Entity
+func (s *GoogleCloudVideointelligenceV1p3beta1Entity) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1Entity
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation:
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation:
 // Explicit content annotation (based on per-frame visual signals
 // only).
 // If no explicit content has been detected in a frame, no annotations
 // are
 // present for that frame.
-type GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation struct {
 	// Frames: All video frames where explicit content was detected.
-	Frames []*GoogleCloudVideointelligenceV2beta1ExplicitContentFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame `json:"frames,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Frames") to
 	// unconditionally include in API requests. By default, fields with
@@ -4860,15 +4951,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1ExplicitContentFrame: Video frame
-// level annotation results for explicit content.
-type GoogleCloudVideointelligenceV2beta1ExplicitContentFrame struct {
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame: Video
+// frame level annotation results for explicit content.
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame struct {
 	// PornographyLikelihood: Likelihood of the pornography content..
 	//
 	// Possible values:
@@ -4904,30 +4995,31 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ExplicitContentFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelAnnotation: Label annotation.
-type GoogleCloudVideointelligenceV2beta1LabelAnnotation struct {
+// GoogleCloudVideointelligenceV1p3beta1LabelAnnotation: Label
+// annotation.
+type GoogleCloudVideointelligenceV1p3beta1LabelAnnotation struct {
 	// CategoryEntities: Common categories for the detected entity.
 	// E.g. when the label is `Terrier` the category is likely `dog`. And in
 	// some
 	// cases there might be more than one categories e.g. `Terrier` could
 	// also be
 	// a `pet`.
-	CategoryEntities []*GoogleCloudVideointelligenceV2beta1Entity `json:"categoryEntities,omitempty"`
+	CategoryEntities []*GoogleCloudVideointelligenceV1p3beta1Entity `json:"categoryEntities,omitempty"`
 
 	// Entity: Detected entity.
-	Entity *GoogleCloudVideointelligenceV2beta1Entity `json:"entity,omitempty"`
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
 
 	// Frames: All video frames where a label was detected.
-	Frames []*GoogleCloudVideointelligenceV2beta1LabelFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1LabelFrame `json:"frames,omitempty"`
 
 	// Segments: All video segments where a label was detected.
-	Segments []*GoogleCloudVideointelligenceV2beta1LabelSegment `json:"segments,omitempty"`
+	Segments []*GoogleCloudVideointelligenceV1p3beta1LabelSegment `json:"segments,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "CategoryEntities") to
 	// unconditionally include in API requests. By default, fields with
@@ -4947,15 +5039,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelFrame: Video frame level
+// GoogleCloudVideointelligenceV1p3beta1LabelFrame: Video frame level
 // annotation results for label detection.
-type GoogleCloudVideointelligenceV2beta1LabelFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1LabelFrame struct {
 	// Confidence: Confidence that the label is accurate. Range: [0, 1].
 	Confidence float64 `json:"confidence,omitempty"`
 
@@ -4981,14 +5073,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelFrame) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5001,14 +5093,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelSegment: Video segment level
-// annotation results for label detection.
-type GoogleCloudVideointelligenceV2beta1LabelSegment struct {
+// GoogleCloudVideointelligenceV1p3beta1LabelSegment: Video segment
+// level annotation results for label detection.
+type GoogleCloudVideointelligenceV1p3beta1LabelSegment struct {
 	// Confidence: Confidence that the label is accurate. Range: [0, 1].
 	Confidence float64 `json:"confidence,omitempty"`
 
 	// Segment: Video segment where a label was detected.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5027,14 +5119,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelSegment) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5047,12 +5139,12 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox: Normalized
-// bounding box.
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox:
+// Normalized bounding box.
 // The normalized vertex coordinates are relative to the original
 // image.
 // Range: [0, 1].
-type GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox struct {
 	// Bottom: Bottom Y coordinate.
 	Bottom float64 `json:"bottom,omitempty"`
 
@@ -5082,14 +5174,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
 	var s1 struct {
 		Bottom gensupport.JSONFloat64 `json:"bottom"`
 		Left   gensupport.JSONFloat64 `json:"left"`
@@ -5108,8 +5200,8 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly: Normalized
-// bounding polygon for text (that might not be aligned with
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly:
+// Normalized bounding polygon for text (that might not be aligned with
 // axis).
 // Contains list of the corner points in clockwise order starting
 // from
@@ -5131,9 +5223,9 @@
 // than 0, or greater than 1 due to trignometric calculations for
 // location of
 // the box.
-type GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly struct {
 	// Vertices: Normalized vertices of the bounding polygon.
-	Vertices []*GoogleCloudVideointelligenceV2beta1NormalizedVertex `json:"vertices,omitempty"`
+	Vertices []*GoogleCloudVideointelligenceV1p3beta1NormalizedVertex `json:"vertices,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Vertices") to
 	// unconditionally include in API requests. By default, fields with
@@ -5152,18 +5244,18 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedVertex: A vertex
+// GoogleCloudVideointelligenceV1p3beta1NormalizedVertex: A vertex
 // represents a 2D point in the image.
 // NOTE: the normalized vertex coordinates are relative to the original
 // image
 // and range from 0 to 1.
-type GoogleCloudVideointelligenceV2beta1NormalizedVertex struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedVertex struct {
 	// X: X coordinate.
 	X float64 `json:"x,omitempty"`
 
@@ -5187,14 +5279,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedVertex
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedVertex
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
 	var s1 struct {
 		X gensupport.JSONFloat64 `json:"x"`
 		Y gensupport.JSONFloat64 `json:"y"`
@@ -5209,15 +5301,15 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation:
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation:
 // Annotations corresponding to one tracked object.
-type GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation struct {
 	// Confidence: Object category's labeling confidence of this track.
 	Confidence float64 `json:"confidence,omitempty"`
 
 	// Entity: Entity to specify the object category that this track is
 	// labeled as.
-	Entity *GoogleCloudVideointelligenceV2beta1Entity `json:"entity,omitempty"`
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
 
 	// Frames: Information corresponding to all frames where this object
 	// track appears.
@@ -5226,11 +5318,11 @@
 	// messages in frames.
 	// Streaming mode: it can only be one ObjectTrackingFrame message in
 	// frames.
-	Frames []*GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame `json:"frames,omitempty"`
 
 	// Segment: Non-streaming batch mode ONLY.
 	// Each object track corresponds to one video segment where it appears.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// TrackId: Streaming mode ONLY.
 	// In streaming mode, we do not know the end time of a tracked
@@ -5261,14 +5353,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5281,14 +5373,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame: Video frame
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame: Video frame
 // level annotations for object detection and tracking. This
 // field
 // stores per frame location, time offset, and confidence.
-type GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame struct {
 	// NormalizedBoundingBox: The normalized bounding box location of this
 	// object track for the frame.
-	NormalizedBoundingBox *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
+	NormalizedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
 
 	// TimeOffset: The timestamp of the frame in microseconds.
 	TimeOffset string `json:"timeOffset,omitempty"`
@@ -5312,15 +5404,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative:
+// GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
-type GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative struct {
+type GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative struct {
 	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
 	// number
 	// indicates an estimated greater likelihood that the recognized words
@@ -5340,7 +5432,7 @@
 	Transcript string `json:"transcript,omitempty"`
 
 	// Words: A list of word-specific information for each recognized word.
-	Words []*GoogleCloudVideointelligenceV2beta1WordInfo `json:"words,omitempty"`
+	Words []*GoogleCloudVideointelligenceV1p3beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5359,14 +5451,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5379,9 +5471,9 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1SpeechTranscription: A speech
+// GoogleCloudVideointelligenceV1p3beta1SpeechTranscription: A speech
 // recognition result corresponding to a portion of the audio.
-type GoogleCloudVideointelligenceV2beta1SpeechTranscription struct {
+type GoogleCloudVideointelligenceV1p3beta1SpeechTranscription struct {
 	// Alternatives: May contain one or more recognition hypotheses (up to
 	// the maximum specified
 	// in `max_alternatives`).  These alternatives are ordered in terms
@@ -5389,7 +5481,7 @@
 	// accuracy, with the top (first) alternative being the most probable,
 	// as
 	// ranked by the recognizer.
-	Alternatives []*GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
+	Alternatives []*GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
 
 	// LanguageCode: Output only.
 	// The
@@ -5417,22 +5509,22 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechTranscription
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechTranscription
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse:
+// GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse:
 // `StreamingAnnotateVideoResponse` is the only message returned to the
 // client
 // by `StreamingAnnotateVideo`. A series of zero or
 // more
 // `StreamingAnnotateVideoResponse` messages are streamed back to the
 // client.
-type GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse struct {
+type GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse struct {
 	// AnnotationResults: Streaming annotation results.
-	AnnotationResults *GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults `json:"annotationResults,omitempty"`
+	AnnotationResults *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults `json:"annotationResults,omitempty"`
 
 	// AnnotationResultsUri: GCS URI that stores annotation results of one
 	// streaming session.
@@ -5465,29 +5557,29 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults:
+// GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults:
 // Streaming annotation results corresponding to a portion of the
 // video
 // that is currently being processed.
-type GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults struct {
+type GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults struct {
 	// ExplicitAnnotation: Explicit content annotation results.
-	ExplicitAnnotation *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
 
 	// LabelAnnotations: Label annotation results.
-	LabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
+	LabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
 
 	// ObjectAnnotations: Object tracking results.
-	ObjectAnnotations []*GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
 	// ShotAnnotations: Shot annotation results. Each shot is represented as
 	// a video segment.
-	ShotAnnotations []*GoogleCloudVideointelligenceV2beta1VideoSegment `json:"shotAnnotations,omitempty"`
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ExplicitAnnotation")
 	// to unconditionally include in API requests. By default, fields with
@@ -5507,21 +5599,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextAnnotation: Annotations
+// GoogleCloudVideointelligenceV1p3beta1TextAnnotation: Annotations
 // related to one detected OCR text snippet. This will contain
 // the
 // corresponding text, confidence value, and frame level information for
 // each
 // detection.
-type GoogleCloudVideointelligenceV2beta1TextAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1TextAnnotation struct {
 	// Segments: All video segments where OCR detected text appears.
-	Segments []*GoogleCloudVideointelligenceV2beta1TextSegment `json:"segments,omitempty"`
+	Segments []*GoogleCloudVideointelligenceV1p3beta1TextSegment `json:"segments,omitempty"`
 
 	// Text: The detected text.
 	Text string `json:"text,omitempty"`
@@ -5543,21 +5635,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextFrame: Video frame level
+// GoogleCloudVideointelligenceV1p3beta1TextFrame: Video frame level
 // annotation results for text annotation (OCR).
 // Contains information regarding timestamp and bounding box locations
 // for the
 // frames containing detected OCR text snippets.
-type GoogleCloudVideointelligenceV2beta1TextFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1TextFrame struct {
 	// RotatedBoundingBox: Bounding polygon of the detected text for this
 	// frame.
-	RotatedBoundingBox *GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
+	RotatedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
 
 	// TimeOffset: Timestamp of this frame.
 	TimeOffset string `json:"timeOffset,omitempty"`
@@ -5580,15 +5672,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1TextFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextSegment: Video segment level
+// GoogleCloudVideointelligenceV1p3beta1TextSegment: Video segment level
 // annotation results for text detection.
-type GoogleCloudVideointelligenceV2beta1TextSegment struct {
+type GoogleCloudVideointelligenceV1p3beta1TextSegment struct {
 	// Confidence: Confidence for the track of detected text. It is
 	// calculated as the highest
 	// over all frames where OCR detected text appears.
@@ -5596,10 +5688,10 @@
 
 	// Frames: Information related to the frames where OCR detected text
 	// appears.
-	Frames []*GoogleCloudVideointelligenceV2beta1TextFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1TextFrame `json:"frames,omitempty"`
 
 	// Segment: Video segment where a text snippet was detected.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5618,14 +5710,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextSegment) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5638,9 +5730,9 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress:
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress:
 // Annotation progress for a single video.
-type GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress struct {
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress struct {
 	// InputUri: Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
 	InputUri string `json:"inputUri,omitempty"`
@@ -5673,26 +5765,26 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoAnnotationResults: Annotation
-// results for a single video.
-type GoogleCloudVideointelligenceV2beta1VideoAnnotationResults struct {
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults:
+// Annotation results for a single video.
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults struct {
 	// Error: If set, indicates an error. Note that for a single
 	// `AnnotateVideoRequest`
 	// some videos may succeed and some may fail.
 	Error *GoogleRpcStatus `json:"error,omitempty"`
 
 	// ExplicitAnnotation: Explicit content annotation.
-	ExplicitAnnotation *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
 
 	// FrameLabelAnnotations: Label annotations on frame level.
 	// There is exactly one element for each unique label.
-	FrameLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
+	FrameLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
 
 	// InputUri: Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
@@ -5700,29 +5792,29 @@
 
 	// ObjectAnnotations: Annotations for list of objects detected and
 	// tracked in video.
-	ObjectAnnotations []*GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
 	// SegmentLabelAnnotations: Label annotations on video level or user
 	// specified segment level.
 	// There is exactly one element for each unique label.
-	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
+	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
 	// ShotAnnotations: Shot annotations. Each shot is represented as a
 	// video segment.
-	ShotAnnotations []*GoogleCloudVideointelligenceV2beta1VideoSegment `json:"shotAnnotations,omitempty"`
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
 	// ShotLabelAnnotations: Label annotations on shot level.
 	// There is exactly one element for each unique label.
-	ShotLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
+	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
 	// SpeechTranscriptions: Speech transcription.
-	SpeechTranscriptions []*GoogleCloudVideointelligenceV2beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
+	SpeechTranscriptions []*GoogleCloudVideointelligenceV1p3beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
 
 	// TextAnnotations: OCR text detection and tracking.
 	// Annotations for list of detected text snippets. Each will have list
 	// of
 	// frame information associated with it.
-	TextAnnotations []*GoogleCloudVideointelligenceV2beta1TextAnnotation `json:"textAnnotations,omitempty"`
+	TextAnnotations []*GoogleCloudVideointelligenceV1p3beta1TextAnnotation `json:"textAnnotations,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Error") to
 	// unconditionally include in API requests. By default, fields with
@@ -5741,14 +5833,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoAnnotationResults
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoSegment: Video segment.
-type GoogleCloudVideointelligenceV2beta1VideoSegment struct {
+// GoogleCloudVideointelligenceV1p3beta1VideoSegment: Video segment.
+type GoogleCloudVideointelligenceV1p3beta1VideoSegment struct {
 	// EndTimeOffset: Time-offset, relative to the beginning of the
 	// video,
 	// corresponding to the end of the segment (inclusive).
@@ -5776,18 +5868,18 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1WordInfo: Word-specific
+// GoogleCloudVideointelligenceV1p3beta1WordInfo: Word-specific
 // information for recognized words. Word information is only
 // included in the response when certain request parameters are set,
 // such
 // as `enable_word_time_offsets`.
-type GoogleCloudVideointelligenceV2beta1WordInfo struct {
+type GoogleCloudVideointelligenceV1p3beta1WordInfo struct {
 	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
 	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
@@ -5847,14 +5939,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1WordInfo) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1WordInfo
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1WordInfo) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1WordInfo
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -6003,20 +6095,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/videointelligence/v1beta2/videointelligence-api.json b/videointelligence/v1beta2/videointelligence-api.json
index e499c8b..5574df9 100644
--- a/videointelligence/v1beta2/videointelligence-api.json
+++ b/videointelligence/v1beta2/videointelligence-api.json
@@ -127,7 +127,7 @@
       }
     }
   },
-  "revision": "20190220",
+  "revision": "20190308",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -827,6 +827,11 @@
       "description": "Config for LABEL_DETECTION.",
       "id": "GoogleCloudVideointelligenceV1beta2_LabelDetectionConfig",
       "properties": {
+        "frameConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nframe-level detection. If not set, it is set to 0.4 by default. The valid\nrange for this threshold is [0.1, 0.9]. Any value set outside of this\nrange will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
+        },
         "labelDetectionMode": {
           "description": "What labels should be detected with LABEL_DETECTION, in addition to\nvideo-level labels or segment-level labels.\nIf unspecified, defaults to `SHOT_MODE`.",
           "enum": [
@@ -850,6 +855,11 @@
         "stationaryCamera": {
           "description": "Whether the video has been shot from a stationary (i.e. non-moving) camera.\nWhen set to true, might improve detection accuracy for moving objects.\nShould be used with `SHOT_AND_FRAME_MODE` enabled.",
           "type": "boolean"
+        },
+        "videoConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nvideo-level and shot-level detections. If not set, it is set to 0.3 by\ndefault. The valid range for this threshold is [0.1, 0.9]. Any value set\noutside of this range will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
         }
       },
       "type": "object"
@@ -2366,37 +2376,37 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_AnnotateVideoProgress": {
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress": {
       "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
-      "id": "GoogleCloudVideointelligenceV2beta1_AnnotateVideoProgress",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress",
       "properties": {
         "annotationProgress": {
           "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_AnnotateVideoResponse": {
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse": {
       "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
-      "id": "GoogleCloudVideointelligenceV2beta1_AnnotateVideoResponse",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse",
       "properties": {
         "annotationResults": {
           "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_Entity": {
+    "GoogleCloudVideointelligenceV1p3beta1_Entity": {
       "description": "Detected entity from video analysis.",
-      "id": "GoogleCloudVideointelligenceV2beta1_Entity",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_Entity",
       "properties": {
         "description": {
           "description": "Textual description, e.g. `Fixed-gear bicycle`.",
@@ -2413,23 +2423,23 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation": {
       "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
       "properties": {
         "frames": {
           "description": "All video frames where explicit content was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame": {
       "description": "Video frame level annotation results for explicit content.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame",
       "properties": {
         "pornographyLikelihood": {
           "description": "Likelihood of the pornography content..",
@@ -2459,41 +2469,41 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation": {
       "description": "Label annotation.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation",
       "properties": {
         "categoryEntities": {
           "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_Entity"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity"
           },
           "type": "array"
         },
         "entity": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_Entity",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
           "description": "Detected entity."
         },
         "frames": {
           "description": "All video frames where a label was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame"
           },
           "type": "array"
         },
         "segments": {
           "description": "All video segments where a label was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelFrame": {
       "description": "Video frame level annotation results for label detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame",
       "properties": {
         "confidence": {
           "description": "Confidence that the label is accurate. Range: [0, 1].",
@@ -2508,9 +2518,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelSegment": {
       "description": "Video segment level annotation results for label detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment",
       "properties": {
         "confidence": {
           "description": "Confidence that the label is accurate. Range: [0, 1].",
@@ -2518,15 +2528,15 @@
           "type": "number"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Video segment where a label was detected."
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox": {
       "description": "Normalized bounding box.\nThe normalized vertex coordinates are relative to the original image.\nRange: [0, 1].",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
       "properties": {
         "bottom": {
           "description": "Bottom Y coordinate.",
@@ -2551,23 +2561,23 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly": {
       "description": "Normalized bounding polygon for text (that might not be aligned with axis).\nContains list of the corner points in clockwise order starting from\ntop-left corner. For example, for a rectangular bounding box:\nWhen the text is horizontal it might look like:\n        0----1\n        |    |\n        3----2\n\nWhen it's clockwise rotated 180 degrees around the top-left corner it\nbecomes:\n        2----3\n        |    |\n        1----0\n\nand the vertex order will still be (0, 1, 2, 3). Note that values can be less\nthan 0, or greater than 1 due to trignometric calculations for location of\nthe box.",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
       "properties": {
         "vertices": {
           "description": "Normalized vertices of the bounding polygon.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedVertex"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedVertex": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex": {
       "description": "A vertex represents a 2D point in the image.\nNOTE: the normalized vertex coordinates are relative to the original image\nand range from 0 to 1.",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedVertex",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex",
       "properties": {
         "x": {
           "description": "X coordinate.",
@@ -2582,9 +2592,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation": {
       "description": "Annotations corresponding to one tracked object.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation",
       "properties": {
         "confidence": {
           "description": "Object category's labeling confidence of this track.",
@@ -2592,18 +2602,18 @@
           "type": "number"
         },
         "entity": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_Entity",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
           "description": "Entity to specify the object category that this track is labeled as."
         },
         "frames": {
           "description": "Information corresponding to all frames where this object track appears.\nNon-streaming batch mode: it may be one or multiple ObjectTrackingFrame\nmessages in frames.\nStreaming mode: it can only be one ObjectTrackingFrame message in frames.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame"
           },
           "type": "array"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Non-streaming batch mode ONLY.\nEach object track corresponds to one video segment where it appears."
         },
         "trackId": {
@@ -2614,12 +2624,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame": {
       "description": "Video frame level annotations for object detection and tracking. This field\nstores per frame location, time offset, and confidence.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame",
       "properties": {
         "normalizedBoundingBox": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
           "description": "The normalized bounding box location of this object track for the frame."
         },
         "timeOffset": {
@@ -2630,9 +2640,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative": {
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative": {
       "description": "Alternative hypotheses (a.k.a. n-best list).",
-      "id": "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
           "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
@@ -2646,21 +2656,21 @@
         "words": {
           "description": "A list of word-specific information for each recognized word.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_WordInfo"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_WordInfo"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_SpeechTranscription": {
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription": {
       "description": "A speech recognition result corresponding to a portion of the audio.",
-      "id": "GoogleCloudVideointelligenceV2beta1_SpeechTranscription",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription",
       "properties": {
         "alternatives": {
           "description": "May contain one or more recognition hypotheses (up to the maximum specified\nin `max_alternatives`).  These alternatives are ordered in terms of\naccuracy, with the top (first) alternative being the most probable, as\nranked by the recognizer.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative"
           },
           "type": "array"
         },
@@ -2671,12 +2681,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_StreamingAnnotateVideoResponse": {
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse": {
       "description": "`StreamingAnnotateVideoResponse` is the only message returned to the client\nby `StreamingAnnotateVideo`. A series of zero or more\n`StreamingAnnotateVideoResponse` messages are streamed back to the client.",
-      "id": "GoogleCloudVideointelligenceV2beta1_StreamingAnnotateVideoResponse",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse",
       "properties": {
         "annotationResults": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
           "description": "Streaming annotation results."
         },
         "annotationResultsUri": {
@@ -2690,46 +2700,46 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults": {
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults": {
       "description": "Streaming annotation results corresponding to a portion of the video\nthat is currently being processed.",
-      "id": "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
       "properties": {
         "explicitAnnotation": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
           "description": "Explicit content annotation results."
         },
         "labelAnnotations": {
           "description": "Label annotation results.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "objectAnnotations": {
           "description": "Object tracking results.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
           },
           "type": "array"
         },
         "shotAnnotations": {
           "description": "Shot annotation results. Each shot is represented as a video segment.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation": {
       "description": "Annotations related to one detected OCR text snippet. This will contain the\ncorresponding text, confidence value, and frame level information for each\ndetection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation",
       "properties": {
         "segments": {
           "description": "All video segments where OCR detected text appears.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextSegment"
           },
           "type": "array"
         },
@@ -2740,12 +2750,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextFrame": {
       "description": "Video frame level annotation results for text annotation (OCR).\nContains information regarding timestamp and bounding box locations for the\nframes containing detected OCR text snippets.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextFrame",
       "properties": {
         "rotatedBoundingBox": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
           "description": "Bounding polygon of the detected text for this frame."
         },
         "timeOffset": {
@@ -2756,9 +2766,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextSegment": {
       "description": "Video segment level annotation results for text detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextSegment",
       "properties": {
         "confidence": {
           "description": "Confidence for the track of detected text. It is calculated as the highest\nover all frames where OCR detected text appears.",
@@ -2768,20 +2778,20 @@
         "frames": {
           "description": "Information related to the frames where OCR detected text appears.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextFrame"
           },
           "type": "array"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Video segment where a text snippet was detected."
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress": {
       "description": "Annotation progress for a single video.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress",
       "properties": {
         "inputUri": {
           "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
@@ -2805,22 +2815,22 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults": {
       "description": "Annotation results for a single video.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults",
       "properties": {
         "error": {
           "$ref": "GoogleRpc_Status",
           "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail."
         },
         "explicitAnnotation": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
           "description": "Explicit content annotation."
         },
         "frameLabelAnnotations": {
           "description": "Label annotations on frame level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
@@ -2831,51 +2841,51 @@
         "objectAnnotations": {
           "description": "Annotations for list of objects detected and tracked in video.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
           },
           "type": "array"
         },
         "segmentLabelAnnotations": {
           "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "shotAnnotations": {
           "description": "Shot annotations. Each shot is represented as a video segment.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
           },
           "type": "array"
         },
         "shotLabelAnnotations": {
           "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "speechTranscriptions": {
           "description": "Speech transcription.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_SpeechTranscription"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription"
           },
           "type": "array"
         },
         "textAnnotations": {
           "description": "OCR text detection and tracking.\nAnnotations for list of detected text snippets. Each will have list of\nframe information associated with it.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoSegment": {
       "description": "Video segment.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
       "properties": {
         "endTimeOffset": {
           "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).",
@@ -2890,9 +2900,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_WordInfo": {
+    "GoogleCloudVideointelligenceV1p3beta1_WordInfo": {
       "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.",
-      "id": "GoogleCloudVideointelligenceV2beta1_WordInfo",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_WordInfo",
       "properties": {
         "confidence": {
           "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
@@ -2957,7 +2967,7 @@
       "type": "object"
     },
     "GoogleRpc_Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpc_Status",
       "properties": {
         "code": {
diff --git a/videointelligence/v1beta2/videointelligence-gen.go b/videointelligence/v1beta2/videointelligence-gen.go
index 8ebdea2..0d3a249 100644
--- a/videointelligence/v1beta2/videointelligence-gen.go
+++ b/videointelligence/v1beta2/videointelligence-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/videointelligence/apiv1 instead.
 //
-// See https://cloud.google.com/video-intelligence/docs/
+// For product documentation, see: https://cloud.google.com/video-intelligence/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/videointelligence/v1beta2"
 //   ...
-//   videointelligenceService, err := videointelligence.New(oauthHttpClient)
+//   ctx := context.Background()
+//   videointelligenceService, err := videointelligence.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package videointelligence // import "google.golang.org/api/videointelligence/v1beta2"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -1482,6 +1532,18 @@
 // GoogleCloudVideointelligenceV1beta2LabelDetectionConfig: Config for
 // LABEL_DETECTION.
 type GoogleCloudVideointelligenceV1beta2LabelDetectionConfig struct {
+	// FrameConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// frame-level detection. If not set, it is set to 0.4 by default. The
+	// valid
+	// range for this threshold is [0.1, 0.9]. Any value set outside of
+	// this
+	// range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	FrameConfidenceThreshold float64 `json:"frameConfidenceThreshold,omitempty"`
+
 	// LabelDetectionMode: What labels should be detected with
 	// LABEL_DETECTION, in addition to
 	// video-level labels or segment-level labels.
@@ -1508,18 +1570,31 @@
 	// Should be used with `SHOT_AND_FRAME_MODE` enabled.
 	StationaryCamera bool `json:"stationaryCamera,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "LabelDetectionMode")
-	// 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.
+	// VideoConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// video-level and shot-level detections. If not set, it is set to 0.3
+	// by
+	// default. The valid range for this threshold is [0.1, 0.9]. Any value
+	// set
+	// outside of this range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	VideoConfidenceThreshold float64 `json:"videoConfidenceThreshold,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "FrameConfidenceThreshold") to unconditionally include in API
+	// requests. By default, fields with empty values are omitted from API
+	// requests. However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "LabelDetectionMode") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
+	// NullFields is a list of field names (e.g. "FrameConfidenceThreshold")
+	// to include in API requests with the JSON null value. By default,
+	// fields with empty values are omitted from API requests. However, any
+	// field with an empty value appearing in NullFields will be sent to the
 	// server as null. It is an error if a field in this list has a
 	// non-empty value. This may be used to include null fields in Patch
 	// requests.
@@ -1532,6 +1607,22 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+func (s *GoogleCloudVideointelligenceV1beta2LabelDetectionConfig) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1beta2LabelDetectionConfig
+	var s1 struct {
+		FrameConfidenceThreshold gensupport.JSONFloat64 `json:"frameConfidenceThreshold"`
+		VideoConfidenceThreshold gensupport.JSONFloat64 `json:"videoConfidenceThreshold"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.FrameConfidenceThreshold = float64(s1.FrameConfidenceThreshold)
+	s.VideoConfidenceThreshold = float64(s1.VideoConfidenceThreshold)
+	return nil
+}
+
 // GoogleCloudVideointelligenceV1beta2LabelFrame: Video frame level
 // annotation results for label detection.
 type GoogleCloudVideointelligenceV1beta2LabelFrame struct {
@@ -4717,14 +4808,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress: Video
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress: Video
 // annotation progress. Included in the `metadata`
 // field of the `Operation` returned by the `GetOperation`
 // call of the `google::longrunning::Operations` service.
-type GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress struct {
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress struct {
 	// AnnotationProgress: Progress metadata for all videos specified in
 	// `AnnotateVideoRequest`.
-	AnnotationProgress []*GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
+	AnnotationProgress []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
 	// to unconditionally include in API requests. By default, fields with
@@ -4744,20 +4835,20 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse: Video
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse: Video
 // annotation response. Included in the `response`
 // field of the `Operation` returned by the `GetOperation`
 // call of the `google::longrunning::Operations` service.
-type GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse struct {
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse struct {
 	// AnnotationResults: Annotation results for all videos specified in
 	// `AnnotateVideoRequest`.
-	AnnotationResults []*GoogleCloudVideointelligenceV2beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
+	AnnotationResults []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
 	// to unconditionally include in API requests. By default, fields with
@@ -4777,15 +4868,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1Entity: Detected entity from video
-// analysis.
-type GoogleCloudVideointelligenceV2beta1Entity struct {
+// GoogleCloudVideointelligenceV1p3beta1Entity: Detected entity from
+// video analysis.
+type GoogleCloudVideointelligenceV1p3beta1Entity struct {
 	// Description: Textual description, e.g. `Fixed-gear bicycle`.
 	Description string `json:"description,omitempty"`
 
@@ -4815,21 +4906,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1Entity) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1Entity
+func (s *GoogleCloudVideointelligenceV1p3beta1Entity) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1Entity
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation:
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation:
 // Explicit content annotation (based on per-frame visual signals
 // only).
 // If no explicit content has been detected in a frame, no annotations
 // are
 // present for that frame.
-type GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation struct {
 	// Frames: All video frames where explicit content was detected.
-	Frames []*GoogleCloudVideointelligenceV2beta1ExplicitContentFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame `json:"frames,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Frames") to
 	// unconditionally include in API requests. By default, fields with
@@ -4848,15 +4939,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1ExplicitContentFrame: Video frame
-// level annotation results for explicit content.
-type GoogleCloudVideointelligenceV2beta1ExplicitContentFrame struct {
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame: Video
+// frame level annotation results for explicit content.
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame struct {
 	// PornographyLikelihood: Likelihood of the pornography content..
 	//
 	// Possible values:
@@ -4892,30 +4983,31 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ExplicitContentFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelAnnotation: Label annotation.
-type GoogleCloudVideointelligenceV2beta1LabelAnnotation struct {
+// GoogleCloudVideointelligenceV1p3beta1LabelAnnotation: Label
+// annotation.
+type GoogleCloudVideointelligenceV1p3beta1LabelAnnotation struct {
 	// CategoryEntities: Common categories for the detected entity.
 	// E.g. when the label is `Terrier` the category is likely `dog`. And in
 	// some
 	// cases there might be more than one categories e.g. `Terrier` could
 	// also be
 	// a `pet`.
-	CategoryEntities []*GoogleCloudVideointelligenceV2beta1Entity `json:"categoryEntities,omitempty"`
+	CategoryEntities []*GoogleCloudVideointelligenceV1p3beta1Entity `json:"categoryEntities,omitempty"`
 
 	// Entity: Detected entity.
-	Entity *GoogleCloudVideointelligenceV2beta1Entity `json:"entity,omitempty"`
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
 
 	// Frames: All video frames where a label was detected.
-	Frames []*GoogleCloudVideointelligenceV2beta1LabelFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1LabelFrame `json:"frames,omitempty"`
 
 	// Segments: All video segments where a label was detected.
-	Segments []*GoogleCloudVideointelligenceV2beta1LabelSegment `json:"segments,omitempty"`
+	Segments []*GoogleCloudVideointelligenceV1p3beta1LabelSegment `json:"segments,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "CategoryEntities") to
 	// unconditionally include in API requests. By default, fields with
@@ -4935,15 +5027,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelFrame: Video frame level
+// GoogleCloudVideointelligenceV1p3beta1LabelFrame: Video frame level
 // annotation results for label detection.
-type GoogleCloudVideointelligenceV2beta1LabelFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1LabelFrame struct {
 	// Confidence: Confidence that the label is accurate. Range: [0, 1].
 	Confidence float64 `json:"confidence,omitempty"`
 
@@ -4969,14 +5061,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelFrame) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -4989,14 +5081,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelSegment: Video segment level
-// annotation results for label detection.
-type GoogleCloudVideointelligenceV2beta1LabelSegment struct {
+// GoogleCloudVideointelligenceV1p3beta1LabelSegment: Video segment
+// level annotation results for label detection.
+type GoogleCloudVideointelligenceV1p3beta1LabelSegment struct {
 	// Confidence: Confidence that the label is accurate. Range: [0, 1].
 	Confidence float64 `json:"confidence,omitempty"`
 
 	// Segment: Video segment where a label was detected.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5015,14 +5107,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelSegment) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5035,12 +5127,12 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox: Normalized
-// bounding box.
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox:
+// Normalized bounding box.
 // The normalized vertex coordinates are relative to the original
 // image.
 // Range: [0, 1].
-type GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox struct {
 	// Bottom: Bottom Y coordinate.
 	Bottom float64 `json:"bottom,omitempty"`
 
@@ -5070,14 +5162,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
 	var s1 struct {
 		Bottom gensupport.JSONFloat64 `json:"bottom"`
 		Left   gensupport.JSONFloat64 `json:"left"`
@@ -5096,8 +5188,8 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly: Normalized
-// bounding polygon for text (that might not be aligned with
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly:
+// Normalized bounding polygon for text (that might not be aligned with
 // axis).
 // Contains list of the corner points in clockwise order starting
 // from
@@ -5119,9 +5211,9 @@
 // than 0, or greater than 1 due to trignometric calculations for
 // location of
 // the box.
-type GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly struct {
 	// Vertices: Normalized vertices of the bounding polygon.
-	Vertices []*GoogleCloudVideointelligenceV2beta1NormalizedVertex `json:"vertices,omitempty"`
+	Vertices []*GoogleCloudVideointelligenceV1p3beta1NormalizedVertex `json:"vertices,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Vertices") to
 	// unconditionally include in API requests. By default, fields with
@@ -5140,18 +5232,18 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedVertex: A vertex
+// GoogleCloudVideointelligenceV1p3beta1NormalizedVertex: A vertex
 // represents a 2D point in the image.
 // NOTE: the normalized vertex coordinates are relative to the original
 // image
 // and range from 0 to 1.
-type GoogleCloudVideointelligenceV2beta1NormalizedVertex struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedVertex struct {
 	// X: X coordinate.
 	X float64 `json:"x,omitempty"`
 
@@ -5175,14 +5267,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedVertex
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedVertex
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
 	var s1 struct {
 		X gensupport.JSONFloat64 `json:"x"`
 		Y gensupport.JSONFloat64 `json:"y"`
@@ -5197,15 +5289,15 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation:
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation:
 // Annotations corresponding to one tracked object.
-type GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation struct {
 	// Confidence: Object category's labeling confidence of this track.
 	Confidence float64 `json:"confidence,omitempty"`
 
 	// Entity: Entity to specify the object category that this track is
 	// labeled as.
-	Entity *GoogleCloudVideointelligenceV2beta1Entity `json:"entity,omitempty"`
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
 
 	// Frames: Information corresponding to all frames where this object
 	// track appears.
@@ -5214,11 +5306,11 @@
 	// messages in frames.
 	// Streaming mode: it can only be one ObjectTrackingFrame message in
 	// frames.
-	Frames []*GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame `json:"frames,omitempty"`
 
 	// Segment: Non-streaming batch mode ONLY.
 	// Each object track corresponds to one video segment where it appears.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// TrackId: Streaming mode ONLY.
 	// In streaming mode, we do not know the end time of a tracked
@@ -5249,14 +5341,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5269,14 +5361,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame: Video frame
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame: Video frame
 // level annotations for object detection and tracking. This
 // field
 // stores per frame location, time offset, and confidence.
-type GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame struct {
 	// NormalizedBoundingBox: The normalized bounding box location of this
 	// object track for the frame.
-	NormalizedBoundingBox *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
+	NormalizedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
 
 	// TimeOffset: The timestamp of the frame in microseconds.
 	TimeOffset string `json:"timeOffset,omitempty"`
@@ -5300,15 +5392,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative:
+// GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
-type GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative struct {
+type GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative struct {
 	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
 	// number
 	// indicates an estimated greater likelihood that the recognized words
@@ -5328,7 +5420,7 @@
 	Transcript string `json:"transcript,omitempty"`
 
 	// Words: A list of word-specific information for each recognized word.
-	Words []*GoogleCloudVideointelligenceV2beta1WordInfo `json:"words,omitempty"`
+	Words []*GoogleCloudVideointelligenceV1p3beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5347,14 +5439,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5367,9 +5459,9 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1SpeechTranscription: A speech
+// GoogleCloudVideointelligenceV1p3beta1SpeechTranscription: A speech
 // recognition result corresponding to a portion of the audio.
-type GoogleCloudVideointelligenceV2beta1SpeechTranscription struct {
+type GoogleCloudVideointelligenceV1p3beta1SpeechTranscription struct {
 	// Alternatives: May contain one or more recognition hypotheses (up to
 	// the maximum specified
 	// in `max_alternatives`).  These alternatives are ordered in terms
@@ -5377,7 +5469,7 @@
 	// accuracy, with the top (first) alternative being the most probable,
 	// as
 	// ranked by the recognizer.
-	Alternatives []*GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
+	Alternatives []*GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
 
 	// LanguageCode: Output only.
 	// The
@@ -5405,22 +5497,22 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechTranscription
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechTranscription
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse:
+// GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse:
 // `StreamingAnnotateVideoResponse` is the only message returned to the
 // client
 // by `StreamingAnnotateVideo`. A series of zero or
 // more
 // `StreamingAnnotateVideoResponse` messages are streamed back to the
 // client.
-type GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse struct {
+type GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse struct {
 	// AnnotationResults: Streaming annotation results.
-	AnnotationResults *GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults `json:"annotationResults,omitempty"`
+	AnnotationResults *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults `json:"annotationResults,omitempty"`
 
 	// AnnotationResultsUri: GCS URI that stores annotation results of one
 	// streaming session.
@@ -5453,29 +5545,29 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults:
+// GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults:
 // Streaming annotation results corresponding to a portion of the
 // video
 // that is currently being processed.
-type GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults struct {
+type GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults struct {
 	// ExplicitAnnotation: Explicit content annotation results.
-	ExplicitAnnotation *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
 
 	// LabelAnnotations: Label annotation results.
-	LabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
+	LabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
 
 	// ObjectAnnotations: Object tracking results.
-	ObjectAnnotations []*GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
 	// ShotAnnotations: Shot annotation results. Each shot is represented as
 	// a video segment.
-	ShotAnnotations []*GoogleCloudVideointelligenceV2beta1VideoSegment `json:"shotAnnotations,omitempty"`
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ExplicitAnnotation")
 	// to unconditionally include in API requests. By default, fields with
@@ -5495,21 +5587,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextAnnotation: Annotations
+// GoogleCloudVideointelligenceV1p3beta1TextAnnotation: Annotations
 // related to one detected OCR text snippet. This will contain
 // the
 // corresponding text, confidence value, and frame level information for
 // each
 // detection.
-type GoogleCloudVideointelligenceV2beta1TextAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1TextAnnotation struct {
 	// Segments: All video segments where OCR detected text appears.
-	Segments []*GoogleCloudVideointelligenceV2beta1TextSegment `json:"segments,omitempty"`
+	Segments []*GoogleCloudVideointelligenceV1p3beta1TextSegment `json:"segments,omitempty"`
 
 	// Text: The detected text.
 	Text string `json:"text,omitempty"`
@@ -5531,21 +5623,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextFrame: Video frame level
+// GoogleCloudVideointelligenceV1p3beta1TextFrame: Video frame level
 // annotation results for text annotation (OCR).
 // Contains information regarding timestamp and bounding box locations
 // for the
 // frames containing detected OCR text snippets.
-type GoogleCloudVideointelligenceV2beta1TextFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1TextFrame struct {
 	// RotatedBoundingBox: Bounding polygon of the detected text for this
 	// frame.
-	RotatedBoundingBox *GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
+	RotatedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
 
 	// TimeOffset: Timestamp of this frame.
 	TimeOffset string `json:"timeOffset,omitempty"`
@@ -5568,15 +5660,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1TextFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextSegment: Video segment level
+// GoogleCloudVideointelligenceV1p3beta1TextSegment: Video segment level
 // annotation results for text detection.
-type GoogleCloudVideointelligenceV2beta1TextSegment struct {
+type GoogleCloudVideointelligenceV1p3beta1TextSegment struct {
 	// Confidence: Confidence for the track of detected text. It is
 	// calculated as the highest
 	// over all frames where OCR detected text appears.
@@ -5584,10 +5676,10 @@
 
 	// Frames: Information related to the frames where OCR detected text
 	// appears.
-	Frames []*GoogleCloudVideointelligenceV2beta1TextFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1TextFrame `json:"frames,omitempty"`
 
 	// Segment: Video segment where a text snippet was detected.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5606,14 +5698,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextSegment) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5626,9 +5718,9 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress:
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress:
 // Annotation progress for a single video.
-type GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress struct {
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress struct {
 	// InputUri: Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
 	InputUri string `json:"inputUri,omitempty"`
@@ -5661,26 +5753,26 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoAnnotationResults: Annotation
-// results for a single video.
-type GoogleCloudVideointelligenceV2beta1VideoAnnotationResults struct {
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults:
+// Annotation results for a single video.
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults struct {
 	// Error: If set, indicates an error. Note that for a single
 	// `AnnotateVideoRequest`
 	// some videos may succeed and some may fail.
 	Error *GoogleRpcStatus `json:"error,omitempty"`
 
 	// ExplicitAnnotation: Explicit content annotation.
-	ExplicitAnnotation *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
 
 	// FrameLabelAnnotations: Label annotations on frame level.
 	// There is exactly one element for each unique label.
-	FrameLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
+	FrameLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
 
 	// InputUri: Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
@@ -5688,29 +5780,29 @@
 
 	// ObjectAnnotations: Annotations for list of objects detected and
 	// tracked in video.
-	ObjectAnnotations []*GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
 	// SegmentLabelAnnotations: Label annotations on video level or user
 	// specified segment level.
 	// There is exactly one element for each unique label.
-	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
+	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
 	// ShotAnnotations: Shot annotations. Each shot is represented as a
 	// video segment.
-	ShotAnnotations []*GoogleCloudVideointelligenceV2beta1VideoSegment `json:"shotAnnotations,omitempty"`
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
 	// ShotLabelAnnotations: Label annotations on shot level.
 	// There is exactly one element for each unique label.
-	ShotLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
+	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
 	// SpeechTranscriptions: Speech transcription.
-	SpeechTranscriptions []*GoogleCloudVideointelligenceV2beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
+	SpeechTranscriptions []*GoogleCloudVideointelligenceV1p3beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
 
 	// TextAnnotations: OCR text detection and tracking.
 	// Annotations for list of detected text snippets. Each will have list
 	// of
 	// frame information associated with it.
-	TextAnnotations []*GoogleCloudVideointelligenceV2beta1TextAnnotation `json:"textAnnotations,omitempty"`
+	TextAnnotations []*GoogleCloudVideointelligenceV1p3beta1TextAnnotation `json:"textAnnotations,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Error") to
 	// unconditionally include in API requests. By default, fields with
@@ -5729,14 +5821,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoAnnotationResults
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoSegment: Video segment.
-type GoogleCloudVideointelligenceV2beta1VideoSegment struct {
+// GoogleCloudVideointelligenceV1p3beta1VideoSegment: Video segment.
+type GoogleCloudVideointelligenceV1p3beta1VideoSegment struct {
 	// EndTimeOffset: Time-offset, relative to the beginning of the
 	// video,
 	// corresponding to the end of the segment (inclusive).
@@ -5764,18 +5856,18 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1WordInfo: Word-specific
+// GoogleCloudVideointelligenceV1p3beta1WordInfo: Word-specific
 // information for recognized words. Word information is only
 // included in the response when certain request parameters are set,
 // such
 // as `enable_word_time_offsets`.
-type GoogleCloudVideointelligenceV2beta1WordInfo struct {
+type GoogleCloudVideointelligenceV1p3beta1WordInfo struct {
 	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
 	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
@@ -5835,14 +5927,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1WordInfo) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1WordInfo
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1WordInfo) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1WordInfo
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5931,20 +6023,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/videointelligence/v1p1beta1/videointelligence-api.json b/videointelligence/v1p1beta1/videointelligence-api.json
index 340e82c..ce2e50c 100644
--- a/videointelligence/v1p1beta1/videointelligence-api.json
+++ b/videointelligence/v1p1beta1/videointelligence-api.json
@@ -127,7 +127,7 @@
       }
     }
   },
-  "revision": "20190220",
+  "revision": "20190308",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -1331,6 +1331,11 @@
       "description": "Config for LABEL_DETECTION.",
       "id": "GoogleCloudVideointelligenceV1p1beta1_LabelDetectionConfig",
       "properties": {
+        "frameConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nframe-level detection. If not set, it is set to 0.4 by default. The valid\nrange for this threshold is [0.1, 0.9]. Any value set outside of this\nrange will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
+        },
         "labelDetectionMode": {
           "description": "What labels should be detected with LABEL_DETECTION, in addition to\nvideo-level labels or segment-level labels.\nIf unspecified, defaults to `SHOT_MODE`.",
           "enum": [
@@ -1354,6 +1359,11 @@
         "stationaryCamera": {
           "description": "Whether the video has been shot from a stationary (i.e. non-moving) camera.\nWhen set to true, might improve detection accuracy for moving objects.\nShould be used with `SHOT_AND_FRAME_MODE` enabled.",
           "type": "boolean"
+        },
+        "videoConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nvideo-level and shot-level detections. If not set, it is set to 0.3 by\ndefault. The valid range for this threshold is [0.1, 0.9]. Any value set\noutside of this range will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
         }
       },
       "type": "object"
@@ -2366,37 +2376,37 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_AnnotateVideoProgress": {
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress": {
       "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
-      "id": "GoogleCloudVideointelligenceV2beta1_AnnotateVideoProgress",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress",
       "properties": {
         "annotationProgress": {
           "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_AnnotateVideoResponse": {
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse": {
       "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
-      "id": "GoogleCloudVideointelligenceV2beta1_AnnotateVideoResponse",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse",
       "properties": {
         "annotationResults": {
           "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_Entity": {
+    "GoogleCloudVideointelligenceV1p3beta1_Entity": {
       "description": "Detected entity from video analysis.",
-      "id": "GoogleCloudVideointelligenceV2beta1_Entity",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_Entity",
       "properties": {
         "description": {
           "description": "Textual description, e.g. `Fixed-gear bicycle`.",
@@ -2413,23 +2423,23 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation": {
       "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
       "properties": {
         "frames": {
           "description": "All video frames where explicit content was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame": {
       "description": "Video frame level annotation results for explicit content.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame",
       "properties": {
         "pornographyLikelihood": {
           "description": "Likelihood of the pornography content..",
@@ -2459,41 +2469,41 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation": {
       "description": "Label annotation.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation",
       "properties": {
         "categoryEntities": {
           "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_Entity"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity"
           },
           "type": "array"
         },
         "entity": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_Entity",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
           "description": "Detected entity."
         },
         "frames": {
           "description": "All video frames where a label was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame"
           },
           "type": "array"
         },
         "segments": {
           "description": "All video segments where a label was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelFrame": {
       "description": "Video frame level annotation results for label detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame",
       "properties": {
         "confidence": {
           "description": "Confidence that the label is accurate. Range: [0, 1].",
@@ -2508,9 +2518,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelSegment": {
       "description": "Video segment level annotation results for label detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment",
       "properties": {
         "confidence": {
           "description": "Confidence that the label is accurate. Range: [0, 1].",
@@ -2518,15 +2528,15 @@
           "type": "number"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Video segment where a label was detected."
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox": {
       "description": "Normalized bounding box.\nThe normalized vertex coordinates are relative to the original image.\nRange: [0, 1].",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
       "properties": {
         "bottom": {
           "description": "Bottom Y coordinate.",
@@ -2551,23 +2561,23 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly": {
       "description": "Normalized bounding polygon for text (that might not be aligned with axis).\nContains list of the corner points in clockwise order starting from\ntop-left corner. For example, for a rectangular bounding box:\nWhen the text is horizontal it might look like:\n        0----1\n        |    |\n        3----2\n\nWhen it's clockwise rotated 180 degrees around the top-left corner it\nbecomes:\n        2----3\n        |    |\n        1----0\n\nand the vertex order will still be (0, 1, 2, 3). Note that values can be less\nthan 0, or greater than 1 due to trignometric calculations for location of\nthe box.",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
       "properties": {
         "vertices": {
           "description": "Normalized vertices of the bounding polygon.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedVertex"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedVertex": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex": {
       "description": "A vertex represents a 2D point in the image.\nNOTE: the normalized vertex coordinates are relative to the original image\nand range from 0 to 1.",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedVertex",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex",
       "properties": {
         "x": {
           "description": "X coordinate.",
@@ -2582,9 +2592,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation": {
       "description": "Annotations corresponding to one tracked object.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation",
       "properties": {
         "confidence": {
           "description": "Object category's labeling confidence of this track.",
@@ -2592,18 +2602,18 @@
           "type": "number"
         },
         "entity": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_Entity",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
           "description": "Entity to specify the object category that this track is labeled as."
         },
         "frames": {
           "description": "Information corresponding to all frames where this object track appears.\nNon-streaming batch mode: it may be one or multiple ObjectTrackingFrame\nmessages in frames.\nStreaming mode: it can only be one ObjectTrackingFrame message in frames.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame"
           },
           "type": "array"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Non-streaming batch mode ONLY.\nEach object track corresponds to one video segment where it appears."
         },
         "trackId": {
@@ -2614,12 +2624,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame": {
       "description": "Video frame level annotations for object detection and tracking. This field\nstores per frame location, time offset, and confidence.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame",
       "properties": {
         "normalizedBoundingBox": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
           "description": "The normalized bounding box location of this object track for the frame."
         },
         "timeOffset": {
@@ -2630,9 +2640,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative": {
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative": {
       "description": "Alternative hypotheses (a.k.a. n-best list).",
-      "id": "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
           "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
@@ -2646,21 +2656,21 @@
         "words": {
           "description": "A list of word-specific information for each recognized word.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_WordInfo"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_WordInfo"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_SpeechTranscription": {
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription": {
       "description": "A speech recognition result corresponding to a portion of the audio.",
-      "id": "GoogleCloudVideointelligenceV2beta1_SpeechTranscription",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription",
       "properties": {
         "alternatives": {
           "description": "May contain one or more recognition hypotheses (up to the maximum specified\nin `max_alternatives`).  These alternatives are ordered in terms of\naccuracy, with the top (first) alternative being the most probable, as\nranked by the recognizer.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative"
           },
           "type": "array"
         },
@@ -2671,12 +2681,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_StreamingAnnotateVideoResponse": {
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse": {
       "description": "`StreamingAnnotateVideoResponse` is the only message returned to the client\nby `StreamingAnnotateVideo`. A series of zero or more\n`StreamingAnnotateVideoResponse` messages are streamed back to the client.",
-      "id": "GoogleCloudVideointelligenceV2beta1_StreamingAnnotateVideoResponse",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse",
       "properties": {
         "annotationResults": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
           "description": "Streaming annotation results."
         },
         "annotationResultsUri": {
@@ -2690,46 +2700,46 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults": {
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults": {
       "description": "Streaming annotation results corresponding to a portion of the video\nthat is currently being processed.",
-      "id": "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
       "properties": {
         "explicitAnnotation": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
           "description": "Explicit content annotation results."
         },
         "labelAnnotations": {
           "description": "Label annotation results.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "objectAnnotations": {
           "description": "Object tracking results.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
           },
           "type": "array"
         },
         "shotAnnotations": {
           "description": "Shot annotation results. Each shot is represented as a video segment.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation": {
       "description": "Annotations related to one detected OCR text snippet. This will contain the\ncorresponding text, confidence value, and frame level information for each\ndetection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation",
       "properties": {
         "segments": {
           "description": "All video segments where OCR detected text appears.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextSegment"
           },
           "type": "array"
         },
@@ -2740,12 +2750,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextFrame": {
       "description": "Video frame level annotation results for text annotation (OCR).\nContains information regarding timestamp and bounding box locations for the\nframes containing detected OCR text snippets.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextFrame",
       "properties": {
         "rotatedBoundingBox": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
           "description": "Bounding polygon of the detected text for this frame."
         },
         "timeOffset": {
@@ -2756,9 +2766,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextSegment": {
       "description": "Video segment level annotation results for text detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextSegment",
       "properties": {
         "confidence": {
           "description": "Confidence for the track of detected text. It is calculated as the highest\nover all frames where OCR detected text appears.",
@@ -2768,20 +2778,20 @@
         "frames": {
           "description": "Information related to the frames where OCR detected text appears.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextFrame"
           },
           "type": "array"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Video segment where a text snippet was detected."
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress": {
       "description": "Annotation progress for a single video.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress",
       "properties": {
         "inputUri": {
           "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
@@ -2805,22 +2815,22 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults": {
       "description": "Annotation results for a single video.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults",
       "properties": {
         "error": {
           "$ref": "GoogleRpc_Status",
           "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail."
         },
         "explicitAnnotation": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
           "description": "Explicit content annotation."
         },
         "frameLabelAnnotations": {
           "description": "Label annotations on frame level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
@@ -2831,51 +2841,51 @@
         "objectAnnotations": {
           "description": "Annotations for list of objects detected and tracked in video.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
           },
           "type": "array"
         },
         "segmentLabelAnnotations": {
           "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "shotAnnotations": {
           "description": "Shot annotations. Each shot is represented as a video segment.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
           },
           "type": "array"
         },
         "shotLabelAnnotations": {
           "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "speechTranscriptions": {
           "description": "Speech transcription.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_SpeechTranscription"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription"
           },
           "type": "array"
         },
         "textAnnotations": {
           "description": "OCR text detection and tracking.\nAnnotations for list of detected text snippets. Each will have list of\nframe information associated with it.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoSegment": {
       "description": "Video segment.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
       "properties": {
         "endTimeOffset": {
           "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).",
@@ -2890,9 +2900,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_WordInfo": {
+    "GoogleCloudVideointelligenceV1p3beta1_WordInfo": {
       "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.",
-      "id": "GoogleCloudVideointelligenceV2beta1_WordInfo",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_WordInfo",
       "properties": {
         "confidence": {
           "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
@@ -2957,7 +2967,7 @@
       "type": "object"
     },
     "GoogleRpc_Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpc_Status",
       "properties": {
         "code": {
diff --git a/videointelligence/v1p1beta1/videointelligence-gen.go b/videointelligence/v1p1beta1/videointelligence-gen.go
index 7ac96cc..669fa5c 100644
--- a/videointelligence/v1p1beta1/videointelligence-gen.go
+++ b/videointelligence/v1p1beta1/videointelligence-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/videointelligence/apiv1 instead.
 //
-// See https://cloud.google.com/video-intelligence/docs/
+// For product documentation, see: https://cloud.google.com/video-intelligence/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/videointelligence/v1p1beta1"
 //   ...
-//   videointelligenceService, err := videointelligence.New(oauthHttpClient)
+//   ctx := context.Background()
+//   videointelligenceService, err := videointelligence.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package videointelligence // import "google.golang.org/api/videointelligence/v1p1beta1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -2531,6 +2581,18 @@
 // GoogleCloudVideointelligenceV1p1beta1LabelDetectionConfig: Config for
 // LABEL_DETECTION.
 type GoogleCloudVideointelligenceV1p1beta1LabelDetectionConfig struct {
+	// FrameConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// frame-level detection. If not set, it is set to 0.4 by default. The
+	// valid
+	// range for this threshold is [0.1, 0.9]. Any value set outside of
+	// this
+	// range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	FrameConfidenceThreshold float64 `json:"frameConfidenceThreshold,omitempty"`
+
 	// LabelDetectionMode: What labels should be detected with
 	// LABEL_DETECTION, in addition to
 	// video-level labels or segment-level labels.
@@ -2557,18 +2619,31 @@
 	// Should be used with `SHOT_AND_FRAME_MODE` enabled.
 	StationaryCamera bool `json:"stationaryCamera,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "LabelDetectionMode")
-	// 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.
+	// VideoConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// video-level and shot-level detections. If not set, it is set to 0.3
+	// by
+	// default. The valid range for this threshold is [0.1, 0.9]. Any value
+	// set
+	// outside of this range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	VideoConfidenceThreshold float64 `json:"videoConfidenceThreshold,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "FrameConfidenceThreshold") to unconditionally include in API
+	// requests. By default, fields with empty values are omitted from API
+	// requests. However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "LabelDetectionMode") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
+	// NullFields is a list of field names (e.g. "FrameConfidenceThreshold")
+	// to include in API requests with the JSON null value. By default,
+	// fields with empty values are omitted from API requests. However, any
+	// field with an empty value appearing in NullFields will be sent to the
 	// server as null. It is an error if a field in this list has a
 	// non-empty value. This may be used to include null fields in Patch
 	// requests.
@@ -2581,6 +2656,22 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+func (s *GoogleCloudVideointelligenceV1p1beta1LabelDetectionConfig) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1LabelDetectionConfig
+	var s1 struct {
+		FrameConfidenceThreshold gensupport.JSONFloat64 `json:"frameConfidenceThreshold"`
+		VideoConfidenceThreshold gensupport.JSONFloat64 `json:"videoConfidenceThreshold"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.FrameConfidenceThreshold = float64(s1.FrameConfidenceThreshold)
+	s.VideoConfidenceThreshold = float64(s1.VideoConfidenceThreshold)
+	return nil
+}
+
 // GoogleCloudVideointelligenceV1p1beta1LabelFrame: Video frame level
 // annotation results for label detection.
 type GoogleCloudVideointelligenceV1p1beta1LabelFrame struct {
@@ -4717,14 +4808,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress: Video
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress: Video
 // annotation progress. Included in the `metadata`
 // field of the `Operation` returned by the `GetOperation`
 // call of the `google::longrunning::Operations` service.
-type GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress struct {
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress struct {
 	// AnnotationProgress: Progress metadata for all videos specified in
 	// `AnnotateVideoRequest`.
-	AnnotationProgress []*GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
+	AnnotationProgress []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
 	// to unconditionally include in API requests. By default, fields with
@@ -4744,20 +4835,20 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse: Video
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse: Video
 // annotation response. Included in the `response`
 // field of the `Operation` returned by the `GetOperation`
 // call of the `google::longrunning::Operations` service.
-type GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse struct {
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse struct {
 	// AnnotationResults: Annotation results for all videos specified in
 	// `AnnotateVideoRequest`.
-	AnnotationResults []*GoogleCloudVideointelligenceV2beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
+	AnnotationResults []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
 	// to unconditionally include in API requests. By default, fields with
@@ -4777,15 +4868,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1Entity: Detected entity from video
-// analysis.
-type GoogleCloudVideointelligenceV2beta1Entity struct {
+// GoogleCloudVideointelligenceV1p3beta1Entity: Detected entity from
+// video analysis.
+type GoogleCloudVideointelligenceV1p3beta1Entity struct {
 	// Description: Textual description, e.g. `Fixed-gear bicycle`.
 	Description string `json:"description,omitempty"`
 
@@ -4815,21 +4906,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1Entity) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1Entity
+func (s *GoogleCloudVideointelligenceV1p3beta1Entity) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1Entity
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation:
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation:
 // Explicit content annotation (based on per-frame visual signals
 // only).
 // If no explicit content has been detected in a frame, no annotations
 // are
 // present for that frame.
-type GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation struct {
 	// Frames: All video frames where explicit content was detected.
-	Frames []*GoogleCloudVideointelligenceV2beta1ExplicitContentFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame `json:"frames,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Frames") to
 	// unconditionally include in API requests. By default, fields with
@@ -4848,15 +4939,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1ExplicitContentFrame: Video frame
-// level annotation results for explicit content.
-type GoogleCloudVideointelligenceV2beta1ExplicitContentFrame struct {
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame: Video
+// frame level annotation results for explicit content.
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame struct {
 	// PornographyLikelihood: Likelihood of the pornography content..
 	//
 	// Possible values:
@@ -4892,30 +4983,31 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ExplicitContentFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelAnnotation: Label annotation.
-type GoogleCloudVideointelligenceV2beta1LabelAnnotation struct {
+// GoogleCloudVideointelligenceV1p3beta1LabelAnnotation: Label
+// annotation.
+type GoogleCloudVideointelligenceV1p3beta1LabelAnnotation struct {
 	// CategoryEntities: Common categories for the detected entity.
 	// E.g. when the label is `Terrier` the category is likely `dog`. And in
 	// some
 	// cases there might be more than one categories e.g. `Terrier` could
 	// also be
 	// a `pet`.
-	CategoryEntities []*GoogleCloudVideointelligenceV2beta1Entity `json:"categoryEntities,omitempty"`
+	CategoryEntities []*GoogleCloudVideointelligenceV1p3beta1Entity `json:"categoryEntities,omitempty"`
 
 	// Entity: Detected entity.
-	Entity *GoogleCloudVideointelligenceV2beta1Entity `json:"entity,omitempty"`
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
 
 	// Frames: All video frames where a label was detected.
-	Frames []*GoogleCloudVideointelligenceV2beta1LabelFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1LabelFrame `json:"frames,omitempty"`
 
 	// Segments: All video segments where a label was detected.
-	Segments []*GoogleCloudVideointelligenceV2beta1LabelSegment `json:"segments,omitempty"`
+	Segments []*GoogleCloudVideointelligenceV1p3beta1LabelSegment `json:"segments,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "CategoryEntities") to
 	// unconditionally include in API requests. By default, fields with
@@ -4935,15 +5027,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelFrame: Video frame level
+// GoogleCloudVideointelligenceV1p3beta1LabelFrame: Video frame level
 // annotation results for label detection.
-type GoogleCloudVideointelligenceV2beta1LabelFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1LabelFrame struct {
 	// Confidence: Confidence that the label is accurate. Range: [0, 1].
 	Confidence float64 `json:"confidence,omitempty"`
 
@@ -4969,14 +5061,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelFrame) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -4989,14 +5081,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelSegment: Video segment level
-// annotation results for label detection.
-type GoogleCloudVideointelligenceV2beta1LabelSegment struct {
+// GoogleCloudVideointelligenceV1p3beta1LabelSegment: Video segment
+// level annotation results for label detection.
+type GoogleCloudVideointelligenceV1p3beta1LabelSegment struct {
 	// Confidence: Confidence that the label is accurate. Range: [0, 1].
 	Confidence float64 `json:"confidence,omitempty"`
 
 	// Segment: Video segment where a label was detected.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5015,14 +5107,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelSegment) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5035,12 +5127,12 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox: Normalized
-// bounding box.
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox:
+// Normalized bounding box.
 // The normalized vertex coordinates are relative to the original
 // image.
 // Range: [0, 1].
-type GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox struct {
 	// Bottom: Bottom Y coordinate.
 	Bottom float64 `json:"bottom,omitempty"`
 
@@ -5070,14 +5162,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
 	var s1 struct {
 		Bottom gensupport.JSONFloat64 `json:"bottom"`
 		Left   gensupport.JSONFloat64 `json:"left"`
@@ -5096,8 +5188,8 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly: Normalized
-// bounding polygon for text (that might not be aligned with
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly:
+// Normalized bounding polygon for text (that might not be aligned with
 // axis).
 // Contains list of the corner points in clockwise order starting
 // from
@@ -5119,9 +5211,9 @@
 // than 0, or greater than 1 due to trignometric calculations for
 // location of
 // the box.
-type GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly struct {
 	// Vertices: Normalized vertices of the bounding polygon.
-	Vertices []*GoogleCloudVideointelligenceV2beta1NormalizedVertex `json:"vertices,omitempty"`
+	Vertices []*GoogleCloudVideointelligenceV1p3beta1NormalizedVertex `json:"vertices,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Vertices") to
 	// unconditionally include in API requests. By default, fields with
@@ -5140,18 +5232,18 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedVertex: A vertex
+// GoogleCloudVideointelligenceV1p3beta1NormalizedVertex: A vertex
 // represents a 2D point in the image.
 // NOTE: the normalized vertex coordinates are relative to the original
 // image
 // and range from 0 to 1.
-type GoogleCloudVideointelligenceV2beta1NormalizedVertex struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedVertex struct {
 	// X: X coordinate.
 	X float64 `json:"x,omitempty"`
 
@@ -5175,14 +5267,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedVertex
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedVertex
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
 	var s1 struct {
 		X gensupport.JSONFloat64 `json:"x"`
 		Y gensupport.JSONFloat64 `json:"y"`
@@ -5197,15 +5289,15 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation:
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation:
 // Annotations corresponding to one tracked object.
-type GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation struct {
 	// Confidence: Object category's labeling confidence of this track.
 	Confidence float64 `json:"confidence,omitempty"`
 
 	// Entity: Entity to specify the object category that this track is
 	// labeled as.
-	Entity *GoogleCloudVideointelligenceV2beta1Entity `json:"entity,omitempty"`
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
 
 	// Frames: Information corresponding to all frames where this object
 	// track appears.
@@ -5214,11 +5306,11 @@
 	// messages in frames.
 	// Streaming mode: it can only be one ObjectTrackingFrame message in
 	// frames.
-	Frames []*GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame `json:"frames,omitempty"`
 
 	// Segment: Non-streaming batch mode ONLY.
 	// Each object track corresponds to one video segment where it appears.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// TrackId: Streaming mode ONLY.
 	// In streaming mode, we do not know the end time of a tracked
@@ -5249,14 +5341,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5269,14 +5361,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame: Video frame
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame: Video frame
 // level annotations for object detection and tracking. This
 // field
 // stores per frame location, time offset, and confidence.
-type GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame struct {
 	// NormalizedBoundingBox: The normalized bounding box location of this
 	// object track for the frame.
-	NormalizedBoundingBox *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
+	NormalizedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
 
 	// TimeOffset: The timestamp of the frame in microseconds.
 	TimeOffset string `json:"timeOffset,omitempty"`
@@ -5300,15 +5392,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative:
+// GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
-type GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative struct {
+type GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative struct {
 	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
 	// number
 	// indicates an estimated greater likelihood that the recognized words
@@ -5328,7 +5420,7 @@
 	Transcript string `json:"transcript,omitempty"`
 
 	// Words: A list of word-specific information for each recognized word.
-	Words []*GoogleCloudVideointelligenceV2beta1WordInfo `json:"words,omitempty"`
+	Words []*GoogleCloudVideointelligenceV1p3beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5347,14 +5439,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5367,9 +5459,9 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1SpeechTranscription: A speech
+// GoogleCloudVideointelligenceV1p3beta1SpeechTranscription: A speech
 // recognition result corresponding to a portion of the audio.
-type GoogleCloudVideointelligenceV2beta1SpeechTranscription struct {
+type GoogleCloudVideointelligenceV1p3beta1SpeechTranscription struct {
 	// Alternatives: May contain one or more recognition hypotheses (up to
 	// the maximum specified
 	// in `max_alternatives`).  These alternatives are ordered in terms
@@ -5377,7 +5469,7 @@
 	// accuracy, with the top (first) alternative being the most probable,
 	// as
 	// ranked by the recognizer.
-	Alternatives []*GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
+	Alternatives []*GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
 
 	// LanguageCode: Output only.
 	// The
@@ -5405,22 +5497,22 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechTranscription
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechTranscription
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse:
+// GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse:
 // `StreamingAnnotateVideoResponse` is the only message returned to the
 // client
 // by `StreamingAnnotateVideo`. A series of zero or
 // more
 // `StreamingAnnotateVideoResponse` messages are streamed back to the
 // client.
-type GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse struct {
+type GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse struct {
 	// AnnotationResults: Streaming annotation results.
-	AnnotationResults *GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults `json:"annotationResults,omitempty"`
+	AnnotationResults *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults `json:"annotationResults,omitempty"`
 
 	// AnnotationResultsUri: GCS URI that stores annotation results of one
 	// streaming session.
@@ -5453,29 +5545,29 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults:
+// GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults:
 // Streaming annotation results corresponding to a portion of the
 // video
 // that is currently being processed.
-type GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults struct {
+type GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults struct {
 	// ExplicitAnnotation: Explicit content annotation results.
-	ExplicitAnnotation *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
 
 	// LabelAnnotations: Label annotation results.
-	LabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
+	LabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
 
 	// ObjectAnnotations: Object tracking results.
-	ObjectAnnotations []*GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
 	// ShotAnnotations: Shot annotation results. Each shot is represented as
 	// a video segment.
-	ShotAnnotations []*GoogleCloudVideointelligenceV2beta1VideoSegment `json:"shotAnnotations,omitempty"`
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ExplicitAnnotation")
 	// to unconditionally include in API requests. By default, fields with
@@ -5495,21 +5587,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextAnnotation: Annotations
+// GoogleCloudVideointelligenceV1p3beta1TextAnnotation: Annotations
 // related to one detected OCR text snippet. This will contain
 // the
 // corresponding text, confidence value, and frame level information for
 // each
 // detection.
-type GoogleCloudVideointelligenceV2beta1TextAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1TextAnnotation struct {
 	// Segments: All video segments where OCR detected text appears.
-	Segments []*GoogleCloudVideointelligenceV2beta1TextSegment `json:"segments,omitempty"`
+	Segments []*GoogleCloudVideointelligenceV1p3beta1TextSegment `json:"segments,omitempty"`
 
 	// Text: The detected text.
 	Text string `json:"text,omitempty"`
@@ -5531,21 +5623,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextFrame: Video frame level
+// GoogleCloudVideointelligenceV1p3beta1TextFrame: Video frame level
 // annotation results for text annotation (OCR).
 // Contains information regarding timestamp and bounding box locations
 // for the
 // frames containing detected OCR text snippets.
-type GoogleCloudVideointelligenceV2beta1TextFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1TextFrame struct {
 	// RotatedBoundingBox: Bounding polygon of the detected text for this
 	// frame.
-	RotatedBoundingBox *GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
+	RotatedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
 
 	// TimeOffset: Timestamp of this frame.
 	TimeOffset string `json:"timeOffset,omitempty"`
@@ -5568,15 +5660,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1TextFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextSegment: Video segment level
+// GoogleCloudVideointelligenceV1p3beta1TextSegment: Video segment level
 // annotation results for text detection.
-type GoogleCloudVideointelligenceV2beta1TextSegment struct {
+type GoogleCloudVideointelligenceV1p3beta1TextSegment struct {
 	// Confidence: Confidence for the track of detected text. It is
 	// calculated as the highest
 	// over all frames where OCR detected text appears.
@@ -5584,10 +5676,10 @@
 
 	// Frames: Information related to the frames where OCR detected text
 	// appears.
-	Frames []*GoogleCloudVideointelligenceV2beta1TextFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1TextFrame `json:"frames,omitempty"`
 
 	// Segment: Video segment where a text snippet was detected.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5606,14 +5698,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextSegment) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5626,9 +5718,9 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress:
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress:
 // Annotation progress for a single video.
-type GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress struct {
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress struct {
 	// InputUri: Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
 	InputUri string `json:"inputUri,omitempty"`
@@ -5661,26 +5753,26 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoAnnotationResults: Annotation
-// results for a single video.
-type GoogleCloudVideointelligenceV2beta1VideoAnnotationResults struct {
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults:
+// Annotation results for a single video.
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults struct {
 	// Error: If set, indicates an error. Note that for a single
 	// `AnnotateVideoRequest`
 	// some videos may succeed and some may fail.
 	Error *GoogleRpcStatus `json:"error,omitempty"`
 
 	// ExplicitAnnotation: Explicit content annotation.
-	ExplicitAnnotation *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
 
 	// FrameLabelAnnotations: Label annotations on frame level.
 	// There is exactly one element for each unique label.
-	FrameLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
+	FrameLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
 
 	// InputUri: Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
@@ -5688,29 +5780,29 @@
 
 	// ObjectAnnotations: Annotations for list of objects detected and
 	// tracked in video.
-	ObjectAnnotations []*GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
 	// SegmentLabelAnnotations: Label annotations on video level or user
 	// specified segment level.
 	// There is exactly one element for each unique label.
-	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
+	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
 	// ShotAnnotations: Shot annotations. Each shot is represented as a
 	// video segment.
-	ShotAnnotations []*GoogleCloudVideointelligenceV2beta1VideoSegment `json:"shotAnnotations,omitempty"`
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
 	// ShotLabelAnnotations: Label annotations on shot level.
 	// There is exactly one element for each unique label.
-	ShotLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
+	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
 	// SpeechTranscriptions: Speech transcription.
-	SpeechTranscriptions []*GoogleCloudVideointelligenceV2beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
+	SpeechTranscriptions []*GoogleCloudVideointelligenceV1p3beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
 
 	// TextAnnotations: OCR text detection and tracking.
 	// Annotations for list of detected text snippets. Each will have list
 	// of
 	// frame information associated with it.
-	TextAnnotations []*GoogleCloudVideointelligenceV2beta1TextAnnotation `json:"textAnnotations,omitempty"`
+	TextAnnotations []*GoogleCloudVideointelligenceV1p3beta1TextAnnotation `json:"textAnnotations,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Error") to
 	// unconditionally include in API requests. By default, fields with
@@ -5729,14 +5821,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoAnnotationResults
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoSegment: Video segment.
-type GoogleCloudVideointelligenceV2beta1VideoSegment struct {
+// GoogleCloudVideointelligenceV1p3beta1VideoSegment: Video segment.
+type GoogleCloudVideointelligenceV1p3beta1VideoSegment struct {
 	// EndTimeOffset: Time-offset, relative to the beginning of the
 	// video,
 	// corresponding to the end of the segment (inclusive).
@@ -5764,18 +5856,18 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1WordInfo: Word-specific
+// GoogleCloudVideointelligenceV1p3beta1WordInfo: Word-specific
 // information for recognized words. Word information is only
 // included in the response when certain request parameters are set,
 // such
 // as `enable_word_time_offsets`.
-type GoogleCloudVideointelligenceV2beta1WordInfo struct {
+type GoogleCloudVideointelligenceV1p3beta1WordInfo struct {
 	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
 	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
@@ -5835,14 +5927,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1WordInfo) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1WordInfo
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1WordInfo) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1WordInfo
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5931,20 +6023,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/videointelligence/v1p2beta1/videointelligence-api.json b/videointelligence/v1p2beta1/videointelligence-api.json
index 0f9c4ef..3e31ca2 100644
--- a/videointelligence/v1p2beta1/videointelligence-api.json
+++ b/videointelligence/v1p2beta1/videointelligence-api.json
@@ -127,7 +127,7 @@
       }
     }
   },
-  "revision": "20190220",
+  "revision": "20190308",
   "rootUrl": "https://videointelligence.googleapis.com/",
   "schemas": {
     "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
@@ -1835,6 +1835,11 @@
       "description": "Config for LABEL_DETECTION.",
       "id": "GoogleCloudVideointelligenceV1p2beta1_LabelDetectionConfig",
       "properties": {
+        "frameConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nframe-level detection. If not set, it is set to 0.4 by default. The valid\nrange for this threshold is [0.1, 0.9]. Any value set outside of this\nrange will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
+        },
         "labelDetectionMode": {
           "description": "What labels should be detected with LABEL_DETECTION, in addition to\nvideo-level labels or segment-level labels.\nIf unspecified, defaults to `SHOT_MODE`.",
           "enum": [
@@ -1858,6 +1863,11 @@
         "stationaryCamera": {
           "description": "Whether the video has been shot from a stationary (i.e. non-moving) camera.\nWhen set to true, might improve detection accuracy for moving objects.\nShould be used with `SHOT_AND_FRAME_MODE` enabled.",
           "type": "boolean"
+        },
+        "videoConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nvideo-level and shot-level detections. If not set, it is set to 0.3 by\ndefault. The valid range for this threshold is [0.1, 0.9]. Any value set\noutside of this range will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
         }
       },
       "type": "object"
@@ -2366,37 +2376,37 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_AnnotateVideoProgress": {
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress": {
       "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
-      "id": "GoogleCloudVideointelligenceV2beta1_AnnotateVideoProgress",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress",
       "properties": {
         "annotationProgress": {
           "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_AnnotateVideoResponse": {
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse": {
       "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
-      "id": "GoogleCloudVideointelligenceV2beta1_AnnotateVideoResponse",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse",
       "properties": {
         "annotationResults": {
           "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_Entity": {
+    "GoogleCloudVideointelligenceV1p3beta1_Entity": {
       "description": "Detected entity from video analysis.",
-      "id": "GoogleCloudVideointelligenceV2beta1_Entity",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_Entity",
       "properties": {
         "description": {
           "description": "Textual description, e.g. `Fixed-gear bicycle`.",
@@ -2413,23 +2423,23 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation": {
       "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
       "properties": {
         "frames": {
           "description": "All video frames where explicit content was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame": {
       "description": "Video frame level annotation results for explicit content.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ExplicitContentFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame",
       "properties": {
         "pornographyLikelihood": {
           "description": "Likelihood of the pornography content..",
@@ -2459,41 +2469,41 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation": {
       "description": "Label annotation.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation",
       "properties": {
         "categoryEntities": {
           "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_Entity"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity"
           },
           "type": "array"
         },
         "entity": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_Entity",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
           "description": "Detected entity."
         },
         "frames": {
           "description": "All video frames where a label was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame"
           },
           "type": "array"
         },
         "segments": {
           "description": "All video segments where a label was detected.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelFrame": {
       "description": "Video frame level annotation results for label detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame",
       "properties": {
         "confidence": {
           "description": "Confidence that the label is accurate. Range: [0, 1].",
@@ -2508,9 +2518,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_LabelSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_LabelSegment": {
       "description": "Video segment level annotation results for label detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_LabelSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment",
       "properties": {
         "confidence": {
           "description": "Confidence that the label is accurate. Range: [0, 1].",
@@ -2518,15 +2528,15 @@
           "type": "number"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Video segment where a label was detected."
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox": {
       "description": "Normalized bounding box.\nThe normalized vertex coordinates are relative to the original image.\nRange: [0, 1].",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
       "properties": {
         "bottom": {
           "description": "Bottom Y coordinate.",
@@ -2551,23 +2561,23 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly": {
       "description": "Normalized bounding polygon for text (that might not be aligned with axis).\nContains list of the corner points in clockwise order starting from\ntop-left corner. For example, for a rectangular bounding box:\nWhen the text is horizontal it might look like:\n        0----1\n        |    |\n        3----2\n\nWhen it's clockwise rotated 180 degrees around the top-left corner it\nbecomes:\n        2----3\n        |    |\n        1----0\n\nand the vertex order will still be (0, 1, 2, 3). Note that values can be less\nthan 0, or greater than 1 due to trignometric calculations for location of\nthe box.",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
       "properties": {
         "vertices": {
           "description": "Normalized vertices of the bounding polygon.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedVertex"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_NormalizedVertex": {
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex": {
       "description": "A vertex represents a 2D point in the image.\nNOTE: the normalized vertex coordinates are relative to the original image\nand range from 0 to 1.",
-      "id": "GoogleCloudVideointelligenceV2beta1_NormalizedVertex",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex",
       "properties": {
         "x": {
           "description": "X coordinate.",
@@ -2582,9 +2592,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation": {
       "description": "Annotations corresponding to one tracked object.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation",
       "properties": {
         "confidence": {
           "description": "Object category's labeling confidence of this track.",
@@ -2592,18 +2602,18 @@
           "type": "number"
         },
         "entity": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_Entity",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
           "description": "Entity to specify the object category that this track is labeled as."
         },
         "frames": {
           "description": "Information corresponding to all frames where this object track appears.\nNon-streaming batch mode: it may be one or multiple ObjectTrackingFrame\nmessages in frames.\nStreaming mode: it can only be one ObjectTrackingFrame message in frames.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame"
           },
           "type": "array"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Non-streaming batch mode ONLY.\nEach object track corresponds to one video segment where it appears."
         },
         "trackId": {
@@ -2614,12 +2624,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame": {
       "description": "Video frame level annotations for object detection and tracking. This field\nstores per frame location, time offset, and confidence.",
-      "id": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame",
       "properties": {
         "normalizedBoundingBox": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingBox",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
           "description": "The normalized bounding box location of this object track for the frame."
         },
         "timeOffset": {
@@ -2630,9 +2640,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative": {
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative": {
       "description": "Alternative hypotheses (a.k.a. n-best list).",
-      "id": "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative",
       "properties": {
         "confidence": {
           "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
@@ -2646,21 +2656,21 @@
         "words": {
           "description": "A list of word-specific information for each recognized word.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_WordInfo"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_WordInfo"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_SpeechTranscription": {
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription": {
       "description": "A speech recognition result corresponding to a portion of the audio.",
-      "id": "GoogleCloudVideointelligenceV2beta1_SpeechTranscription",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription",
       "properties": {
         "alternatives": {
           "description": "May contain one or more recognition hypotheses (up to the maximum specified\nin `max_alternatives`).  These alternatives are ordered in terms of\naccuracy, with the top (first) alternative being the most probable, as\nranked by the recognizer.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_SpeechRecognitionAlternative"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative"
           },
           "type": "array"
         },
@@ -2671,12 +2681,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_StreamingAnnotateVideoResponse": {
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse": {
       "description": "`StreamingAnnotateVideoResponse` is the only message returned to the client\nby `StreamingAnnotateVideo`. A series of zero or more\n`StreamingAnnotateVideoResponse` messages are streamed back to the client.",
-      "id": "GoogleCloudVideointelligenceV2beta1_StreamingAnnotateVideoResponse",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse",
       "properties": {
         "annotationResults": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
           "description": "Streaming annotation results."
         },
         "annotationResultsUri": {
@@ -2690,46 +2700,46 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults": {
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults": {
       "description": "Streaming annotation results corresponding to a portion of the video\nthat is currently being processed.",
-      "id": "GoogleCloudVideointelligenceV2beta1_StreamingVideoAnnotationResults",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
       "properties": {
         "explicitAnnotation": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
           "description": "Explicit content annotation results."
         },
         "labelAnnotations": {
           "description": "Label annotation results.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "objectAnnotations": {
           "description": "Object tracking results.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
           },
           "type": "array"
         },
         "shotAnnotations": {
           "description": "Shot annotation results. Each shot is represented as a video segment.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextAnnotation": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation": {
       "description": "Annotations related to one detected OCR text snippet. This will contain the\ncorresponding text, confidence value, and frame level information for each\ndetection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextAnnotation",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation",
       "properties": {
         "segments": {
           "description": "All video segments where OCR detected text appears.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextSegment"
           },
           "type": "array"
         },
@@ -2740,12 +2750,12 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextFrame": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextFrame": {
       "description": "Video frame level annotation results for text annotation (OCR).\nContains information regarding timestamp and bounding box locations for the\nframes containing detected OCR text snippets.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextFrame",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextFrame",
       "properties": {
         "rotatedBoundingBox": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_NormalizedBoundingPoly",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
           "description": "Bounding polygon of the detected text for this frame."
         },
         "timeOffset": {
@@ -2756,9 +2766,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_TextSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_TextSegment": {
       "description": "Video segment level annotation results for text detection.",
-      "id": "GoogleCloudVideointelligenceV2beta1_TextSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextSegment",
       "properties": {
         "confidence": {
           "description": "Confidence for the track of detected text. It is calculated as the highest\nover all frames where OCR detected text appears.",
@@ -2768,20 +2778,20 @@
         "frames": {
           "description": "Information related to the frames where OCR detected text appears.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextFrame"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextFrame"
           },
           "type": "array"
         },
         "segment": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
           "description": "Video segment where a text snippet was detected."
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress": {
       "description": "Annotation progress for a single video.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationProgress",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress",
       "properties": {
         "inputUri": {
           "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
@@ -2805,22 +2815,22 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults": {
       "description": "Annotation results for a single video.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoAnnotationResults",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults",
       "properties": {
         "error": {
           "$ref": "GoogleRpc_Status",
           "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail."
         },
         "explicitAnnotation": {
-          "$ref": "GoogleCloudVideointelligenceV2beta1_ExplicitContentAnnotation",
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
           "description": "Explicit content annotation."
         },
         "frameLabelAnnotations": {
           "description": "Label annotations on frame level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
@@ -2831,51 +2841,51 @@
         "objectAnnotations": {
           "description": "Annotations for list of objects detected and tracked in video.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_ObjectTrackingAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
           },
           "type": "array"
         },
         "segmentLabelAnnotations": {
           "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "shotAnnotations": {
           "description": "Shot annotations. Each shot is represented as a video segment.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_VideoSegment"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
           },
           "type": "array"
         },
         "shotLabelAnnotations": {
           "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_LabelAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
           },
           "type": "array"
         },
         "speechTranscriptions": {
           "description": "Speech transcription.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_SpeechTranscription"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription"
           },
           "type": "array"
         },
         "textAnnotations": {
           "description": "OCR text detection and tracking.\nAnnotations for list of detected text snippets. Each will have list of\nframe information associated with it.",
           "items": {
-            "$ref": "GoogleCloudVideointelligenceV2beta1_TextAnnotation"
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation"
           },
           "type": "array"
         }
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_VideoSegment": {
+    "GoogleCloudVideointelligenceV1p3beta1_VideoSegment": {
       "description": "Video segment.",
-      "id": "GoogleCloudVideointelligenceV2beta1_VideoSegment",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
       "properties": {
         "endTimeOffset": {
           "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).",
@@ -2890,9 +2900,9 @@
       },
       "type": "object"
     },
-    "GoogleCloudVideointelligenceV2beta1_WordInfo": {
+    "GoogleCloudVideointelligenceV1p3beta1_WordInfo": {
       "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.",
-      "id": "GoogleCloudVideointelligenceV2beta1_WordInfo",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_WordInfo",
       "properties": {
         "confidence": {
           "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
@@ -2957,7 +2967,7 @@
       "type": "object"
     },
     "GoogleRpc_Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "GoogleRpc_Status",
       "properties": {
         "code": {
diff --git a/videointelligence/v1p2beta1/videointelligence-gen.go b/videointelligence/v1p2beta1/videointelligence-gen.go
index f62f31c..83f3f7b 100644
--- a/videointelligence/v1p2beta1/videointelligence-gen.go
+++ b/videointelligence/v1p2beta1/videointelligence-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,35 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/videointelligence/apiv1 instead.
 //
-// See https://cloud.google.com/video-intelligence/docs/
+// For product documentation, see: https://cloud.google.com/video-intelligence/docs/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/videointelligence/v1p2beta1"
 //   ...
-//   videointelligenceService, err := videointelligence.New(oauthHttpClient)
+//   ctx := context.Background()
+//   videointelligenceService, err := videointelligence.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package videointelligence // import "google.golang.org/api/videointelligence/v1p2beta1"
 
 import (
@@ -31,6 +53,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -58,6 +82,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -3580,6 +3630,18 @@
 // GoogleCloudVideointelligenceV1p2beta1LabelDetectionConfig: Config for
 // LABEL_DETECTION.
 type GoogleCloudVideointelligenceV1p2beta1LabelDetectionConfig struct {
+	// FrameConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// frame-level detection. If not set, it is set to 0.4 by default. The
+	// valid
+	// range for this threshold is [0.1, 0.9]. Any value set outside of
+	// this
+	// range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	FrameConfidenceThreshold float64 `json:"frameConfidenceThreshold,omitempty"`
+
 	// LabelDetectionMode: What labels should be detected with
 	// LABEL_DETECTION, in addition to
 	// video-level labels or segment-level labels.
@@ -3606,18 +3668,31 @@
 	// Should be used with `SHOT_AND_FRAME_MODE` enabled.
 	StationaryCamera bool `json:"stationaryCamera,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "LabelDetectionMode")
-	// 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.
+	// VideoConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// video-level and shot-level detections. If not set, it is set to 0.3
+	// by
+	// default. The valid range for this threshold is [0.1, 0.9]. Any value
+	// set
+	// outside of this range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	VideoConfidenceThreshold float64 `json:"videoConfidenceThreshold,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "FrameConfidenceThreshold") to unconditionally include in API
+	// requests. By default, fields with empty values are omitted from API
+	// requests. However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "LabelDetectionMode") to
-	// include in API requests with the JSON null value. By default, fields
-	// with empty values are omitted from API requests. However, any field
-	// with an empty value appearing in NullFields will be sent to the
+	// NullFields is a list of field names (e.g. "FrameConfidenceThreshold")
+	// to include in API requests with the JSON null value. By default,
+	// fields with empty values are omitted from API requests. However, any
+	// field with an empty value appearing in NullFields will be sent to the
 	// server as null. It is an error if a field in this list has a
 	// non-empty value. This may be used to include null fields in Patch
 	// requests.
@@ -3630,6 +3705,22 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+func (s *GoogleCloudVideointelligenceV1p2beta1LabelDetectionConfig) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1LabelDetectionConfig
+	var s1 struct {
+		FrameConfidenceThreshold gensupport.JSONFloat64 `json:"frameConfidenceThreshold"`
+		VideoConfidenceThreshold gensupport.JSONFloat64 `json:"videoConfidenceThreshold"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.FrameConfidenceThreshold = float64(s1.FrameConfidenceThreshold)
+	s.VideoConfidenceThreshold = float64(s1.VideoConfidenceThreshold)
+	return nil
+}
+
 // GoogleCloudVideointelligenceV1p2beta1LabelFrame: Video frame level
 // annotation results for label detection.
 type GoogleCloudVideointelligenceV1p2beta1LabelFrame struct {
@@ -4717,14 +4808,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress: Video
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress: Video
 // annotation progress. Included in the `metadata`
 // field of the `Operation` returned by the `GetOperation`
 // call of the `google::longrunning::Operations` service.
-type GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress struct {
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress struct {
 	// AnnotationProgress: Progress metadata for all videos specified in
 	// `AnnotateVideoRequest`.
-	AnnotationProgress []*GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
+	AnnotationProgress []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
 	// to unconditionally include in API requests. By default, fields with
@@ -4744,20 +4835,20 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1AnnotateVideoProgress
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse: Video
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse: Video
 // annotation response. Included in the `response`
 // field of the `Operation` returned by the `GetOperation`
 // call of the `google::longrunning::Operations` service.
-type GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse struct {
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse struct {
 	// AnnotationResults: Annotation results for all videos specified in
 	// `AnnotateVideoRequest`.
-	AnnotationResults []*GoogleCloudVideointelligenceV2beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
+	AnnotationResults []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
 	// to unconditionally include in API requests. By default, fields with
@@ -4777,15 +4868,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1AnnotateVideoResponse
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1Entity: Detected entity from video
-// analysis.
-type GoogleCloudVideointelligenceV2beta1Entity struct {
+// GoogleCloudVideointelligenceV1p3beta1Entity: Detected entity from
+// video analysis.
+type GoogleCloudVideointelligenceV1p3beta1Entity struct {
 	// Description: Textual description, e.g. `Fixed-gear bicycle`.
 	Description string `json:"description,omitempty"`
 
@@ -4815,21 +4906,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1Entity) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1Entity
+func (s *GoogleCloudVideointelligenceV1p3beta1Entity) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1Entity
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation:
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation:
 // Explicit content annotation (based on per-frame visual signals
 // only).
 // If no explicit content has been detected in a frame, no annotations
 // are
 // present for that frame.
-type GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation struct {
 	// Frames: All video frames where explicit content was detected.
-	Frames []*GoogleCloudVideointelligenceV2beta1ExplicitContentFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame `json:"frames,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Frames") to
 	// unconditionally include in API requests. By default, fields with
@@ -4848,15 +4939,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1ExplicitContentFrame: Video frame
-// level annotation results for explicit content.
-type GoogleCloudVideointelligenceV2beta1ExplicitContentFrame struct {
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame: Video
+// frame level annotation results for explicit content.
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame struct {
 	// PornographyLikelihood: Likelihood of the pornography content..
 	//
 	// Possible values:
@@ -4892,30 +4983,31 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ExplicitContentFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelAnnotation: Label annotation.
-type GoogleCloudVideointelligenceV2beta1LabelAnnotation struct {
+// GoogleCloudVideointelligenceV1p3beta1LabelAnnotation: Label
+// annotation.
+type GoogleCloudVideointelligenceV1p3beta1LabelAnnotation struct {
 	// CategoryEntities: Common categories for the detected entity.
 	// E.g. when the label is `Terrier` the category is likely `dog`. And in
 	// some
 	// cases there might be more than one categories e.g. `Terrier` could
 	// also be
 	// a `pet`.
-	CategoryEntities []*GoogleCloudVideointelligenceV2beta1Entity `json:"categoryEntities,omitempty"`
+	CategoryEntities []*GoogleCloudVideointelligenceV1p3beta1Entity `json:"categoryEntities,omitempty"`
 
 	// Entity: Detected entity.
-	Entity *GoogleCloudVideointelligenceV2beta1Entity `json:"entity,omitempty"`
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
 
 	// Frames: All video frames where a label was detected.
-	Frames []*GoogleCloudVideointelligenceV2beta1LabelFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1LabelFrame `json:"frames,omitempty"`
 
 	// Segments: All video segments where a label was detected.
-	Segments []*GoogleCloudVideointelligenceV2beta1LabelSegment `json:"segments,omitempty"`
+	Segments []*GoogleCloudVideointelligenceV1p3beta1LabelSegment `json:"segments,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "CategoryEntities") to
 	// unconditionally include in API requests. By default, fields with
@@ -4935,15 +5027,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelFrame: Video frame level
+// GoogleCloudVideointelligenceV1p3beta1LabelFrame: Video frame level
 // annotation results for label detection.
-type GoogleCloudVideointelligenceV2beta1LabelFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1LabelFrame struct {
 	// Confidence: Confidence that the label is accurate. Range: [0, 1].
 	Confidence float64 `json:"confidence,omitempty"`
 
@@ -4969,14 +5061,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelFrame) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -4989,14 +5081,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1LabelSegment: Video segment level
-// annotation results for label detection.
-type GoogleCloudVideointelligenceV2beta1LabelSegment struct {
+// GoogleCloudVideointelligenceV1p3beta1LabelSegment: Video segment
+// level annotation results for label detection.
+type GoogleCloudVideointelligenceV1p3beta1LabelSegment struct {
 	// Confidence: Confidence that the label is accurate. Range: [0, 1].
 	Confidence float64 `json:"confidence,omitempty"`
 
 	// Segment: Video segment where a label was detected.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5015,14 +5107,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1LabelSegment) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1LabelSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5035,12 +5127,12 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox: Normalized
-// bounding box.
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox:
+// Normalized bounding box.
 // The normalized vertex coordinates are relative to the original
 // image.
 // Range: [0, 1].
-type GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox struct {
 	// Bottom: Bottom Y coordinate.
 	Bottom float64 `json:"bottom,omitempty"`
 
@@ -5070,14 +5162,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
 	var s1 struct {
 		Bottom gensupport.JSONFloat64 `json:"bottom"`
 		Left   gensupport.JSONFloat64 `json:"left"`
@@ -5096,8 +5188,8 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly: Normalized
-// bounding polygon for text (that might not be aligned with
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly:
+// Normalized bounding polygon for text (that might not be aligned with
 // axis).
 // Contains list of the corner points in clockwise order starting
 // from
@@ -5119,9 +5211,9 @@
 // than 0, or greater than 1 due to trignometric calculations for
 // location of
 // the box.
-type GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly struct {
 	// Vertices: Normalized vertices of the bounding polygon.
-	Vertices []*GoogleCloudVideointelligenceV2beta1NormalizedVertex `json:"vertices,omitempty"`
+	Vertices []*GoogleCloudVideointelligenceV1p3beta1NormalizedVertex `json:"vertices,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Vertices") to
 	// unconditionally include in API requests. By default, fields with
@@ -5140,18 +5232,18 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1NormalizedVertex: A vertex
+// GoogleCloudVideointelligenceV1p3beta1NormalizedVertex: A vertex
 // represents a 2D point in the image.
 // NOTE: the normalized vertex coordinates are relative to the original
 // image
 // and range from 0 to 1.
-type GoogleCloudVideointelligenceV2beta1NormalizedVertex struct {
+type GoogleCloudVideointelligenceV1p3beta1NormalizedVertex struct {
 	// X: X coordinate.
 	X float64 `json:"x,omitempty"`
 
@@ -5175,14 +5267,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedVertex
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1NormalizedVertex
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
 	var s1 struct {
 		X gensupport.JSONFloat64 `json:"x"`
 		Y gensupport.JSONFloat64 `json:"y"`
@@ -5197,15 +5289,15 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation:
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation:
 // Annotations corresponding to one tracked object.
-type GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation struct {
 	// Confidence: Object category's labeling confidence of this track.
 	Confidence float64 `json:"confidence,omitempty"`
 
 	// Entity: Entity to specify the object category that this track is
 	// labeled as.
-	Entity *GoogleCloudVideointelligenceV2beta1Entity `json:"entity,omitempty"`
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
 
 	// Frames: Information corresponding to all frames where this object
 	// track appears.
@@ -5214,11 +5306,11 @@
 	// messages in frames.
 	// Streaming mode: it can only be one ObjectTrackingFrame message in
 	// frames.
-	Frames []*GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame `json:"frames,omitempty"`
 
 	// Segment: Non-streaming batch mode ONLY.
 	// Each object track corresponds to one video segment where it appears.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// TrackId: Streaming mode ONLY.
 	// In streaming mode, we do not know the end time of a tracked
@@ -5249,14 +5341,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5269,14 +5361,14 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame: Video frame
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame: Video frame
 // level annotations for object detection and tracking. This
 // field
 // stores per frame location, time offset, and confidence.
-type GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame struct {
 	// NormalizedBoundingBox: The normalized bounding box location of this
 	// object track for the frame.
-	NormalizedBoundingBox *GoogleCloudVideointelligenceV2beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
+	NormalizedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
 
 	// TimeOffset: The timestamp of the frame in microseconds.
 	TimeOffset string `json:"timeOffset,omitempty"`
@@ -5300,15 +5392,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1ObjectTrackingFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative:
+// GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative:
 // Alternative hypotheses (a.k.a. n-best list).
-type GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative struct {
+type GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative struct {
 	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
 	// number
 	// indicates an estimated greater likelihood that the recognized words
@@ -5328,7 +5420,7 @@
 	Transcript string `json:"transcript,omitempty"`
 
 	// Words: A list of word-specific information for each recognized word.
-	Words []*GoogleCloudVideointelligenceV2beta1WordInfo `json:"words,omitempty"`
+	Words []*GoogleCloudVideointelligenceV1p3beta1WordInfo `json:"words,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5347,14 +5439,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5367,9 +5459,9 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1SpeechTranscription: A speech
+// GoogleCloudVideointelligenceV1p3beta1SpeechTranscription: A speech
 // recognition result corresponding to a portion of the audio.
-type GoogleCloudVideointelligenceV2beta1SpeechTranscription struct {
+type GoogleCloudVideointelligenceV1p3beta1SpeechTranscription struct {
 	// Alternatives: May contain one or more recognition hypotheses (up to
 	// the maximum specified
 	// in `max_alternatives`).  These alternatives are ordered in terms
@@ -5377,7 +5469,7 @@
 	// accuracy, with the top (first) alternative being the most probable,
 	// as
 	// ranked by the recognizer.
-	Alternatives []*GoogleCloudVideointelligenceV2beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
+	Alternatives []*GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
 
 	// LanguageCode: Output only.
 	// The
@@ -5405,22 +5497,22 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1SpeechTranscription
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechTranscription
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse:
+// GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse:
 // `StreamingAnnotateVideoResponse` is the only message returned to the
 // client
 // by `StreamingAnnotateVideo`. A series of zero or
 // more
 // `StreamingAnnotateVideoResponse` messages are streamed back to the
 // client.
-type GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse struct {
+type GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse struct {
 	// AnnotationResults: Streaming annotation results.
-	AnnotationResults *GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults `json:"annotationResults,omitempty"`
+	AnnotationResults *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults `json:"annotationResults,omitempty"`
 
 	// AnnotationResultsUri: GCS URI that stores annotation results of one
 	// streaming session.
@@ -5453,29 +5545,29 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1StreamingAnnotateVideoResponse
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults:
+// GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults:
 // Streaming annotation results corresponding to a portion of the
 // video
 // that is currently being processed.
-type GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults struct {
+type GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults struct {
 	// ExplicitAnnotation: Explicit content annotation results.
-	ExplicitAnnotation *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
 
 	// LabelAnnotations: Label annotation results.
-	LabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
+	LabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
 
 	// ObjectAnnotations: Object tracking results.
-	ObjectAnnotations []*GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
 	// ShotAnnotations: Shot annotation results. Each shot is represented as
 	// a video segment.
-	ShotAnnotations []*GoogleCloudVideointelligenceV2beta1VideoSegment `json:"shotAnnotations,omitempty"`
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ExplicitAnnotation")
 	// to unconditionally include in API requests. By default, fields with
@@ -5495,21 +5587,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1StreamingVideoAnnotationResults
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextAnnotation: Annotations
+// GoogleCloudVideointelligenceV1p3beta1TextAnnotation: Annotations
 // related to one detected OCR text snippet. This will contain
 // the
 // corresponding text, confidence value, and frame level information for
 // each
 // detection.
-type GoogleCloudVideointelligenceV2beta1TextAnnotation struct {
+type GoogleCloudVideointelligenceV1p3beta1TextAnnotation struct {
 	// Segments: All video segments where OCR detected text appears.
-	Segments []*GoogleCloudVideointelligenceV2beta1TextSegment `json:"segments,omitempty"`
+	Segments []*GoogleCloudVideointelligenceV1p3beta1TextSegment `json:"segments,omitempty"`
 
 	// Text: The detected text.
 	Text string `json:"text,omitempty"`
@@ -5531,21 +5623,21 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextAnnotation
+func (s *GoogleCloudVideointelligenceV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextAnnotation
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextFrame: Video frame level
+// GoogleCloudVideointelligenceV1p3beta1TextFrame: Video frame level
 // annotation results for text annotation (OCR).
 // Contains information regarding timestamp and bounding box locations
 // for the
 // frames containing detected OCR text snippets.
-type GoogleCloudVideointelligenceV2beta1TextFrame struct {
+type GoogleCloudVideointelligenceV1p3beta1TextFrame struct {
 	// RotatedBoundingBox: Bounding polygon of the detected text for this
 	// frame.
-	RotatedBoundingBox *GoogleCloudVideointelligenceV2beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
+	RotatedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
 
 	// TimeOffset: Timestamp of this frame.
 	TimeOffset string `json:"timeOffset,omitempty"`
@@ -5568,15 +5660,15 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextFrame) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextFrame
+func (s *GoogleCloudVideointelligenceV1p3beta1TextFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextFrame
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1TextSegment: Video segment level
+// GoogleCloudVideointelligenceV1p3beta1TextSegment: Video segment level
 // annotation results for text detection.
-type GoogleCloudVideointelligenceV2beta1TextSegment struct {
+type GoogleCloudVideointelligenceV1p3beta1TextSegment struct {
 	// Confidence: Confidence for the track of detected text. It is
 	// calculated as the highest
 	// over all frames where OCR detected text appears.
@@ -5584,10 +5676,10 @@
 
 	// Frames: Information related to the frames where OCR detected text
 	// appears.
-	Frames []*GoogleCloudVideointelligenceV2beta1TextFrame `json:"frames,omitempty"`
+	Frames []*GoogleCloudVideointelligenceV1p3beta1TextFrame `json:"frames,omitempty"`
 
 	// Segment: Video segment where a text snippet was detected.
-	Segment *GoogleCloudVideointelligenceV2beta1VideoSegment `json:"segment,omitempty"`
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Confidence") to
 	// unconditionally include in API requests. By default, fields with
@@ -5606,14 +5698,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1TextSegment) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1TextSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5626,9 +5718,9 @@
 	return nil
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress:
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress:
 // Annotation progress for a single video.
-type GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress struct {
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress struct {
 	// InputUri: Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
 	InputUri string `json:"inputUri,omitempty"`
@@ -5661,26 +5753,26 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoAnnotationProgress
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoAnnotationResults: Annotation
-// results for a single video.
-type GoogleCloudVideointelligenceV2beta1VideoAnnotationResults struct {
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults:
+// Annotation results for a single video.
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults struct {
 	// Error: If set, indicates an error. Note that for a single
 	// `AnnotateVideoRequest`
 	// some videos may succeed and some may fail.
 	Error *GoogleRpcStatus `json:"error,omitempty"`
 
 	// ExplicitAnnotation: Explicit content annotation.
-	ExplicitAnnotation *GoogleCloudVideointelligenceV2beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
 
 	// FrameLabelAnnotations: Label annotations on frame level.
 	// There is exactly one element for each unique label.
-	FrameLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
+	FrameLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
 
 	// InputUri: Video file location in
 	// [Google Cloud Storage](https://cloud.google.com/storage/).
@@ -5688,29 +5780,29 @@
 
 	// ObjectAnnotations: Annotations for list of objects detected and
 	// tracked in video.
-	ObjectAnnotations []*GoogleCloudVideointelligenceV2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
 
 	// SegmentLabelAnnotations: Label annotations on video level or user
 	// specified segment level.
 	// There is exactly one element for each unique label.
-	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
+	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
 
 	// ShotAnnotations: Shot annotations. Each shot is represented as a
 	// video segment.
-	ShotAnnotations []*GoogleCloudVideointelligenceV2beta1VideoSegment `json:"shotAnnotations,omitempty"`
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
 
 	// ShotLabelAnnotations: Label annotations on shot level.
 	// There is exactly one element for each unique label.
-	ShotLabelAnnotations []*GoogleCloudVideointelligenceV2beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
+	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
 
 	// SpeechTranscriptions: Speech transcription.
-	SpeechTranscriptions []*GoogleCloudVideointelligenceV2beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
+	SpeechTranscriptions []*GoogleCloudVideointelligenceV1p3beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
 
 	// TextAnnotations: OCR text detection and tracking.
 	// Annotations for list of detected text snippets. Each will have list
 	// of
 	// frame information associated with it.
-	TextAnnotations []*GoogleCloudVideointelligenceV2beta1TextAnnotation `json:"textAnnotations,omitempty"`
+	TextAnnotations []*GoogleCloudVideointelligenceV1p3beta1TextAnnotation `json:"textAnnotations,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "Error") to
 	// unconditionally include in API requests. By default, fields with
@@ -5729,14 +5821,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoAnnotationResults
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1VideoSegment: Video segment.
-type GoogleCloudVideointelligenceV2beta1VideoSegment struct {
+// GoogleCloudVideointelligenceV1p3beta1VideoSegment: Video segment.
+type GoogleCloudVideointelligenceV1p3beta1VideoSegment struct {
 	// EndTimeOffset: Time-offset, relative to the beginning of the
 	// video,
 	// corresponding to the end of the segment (inclusive).
@@ -5764,18 +5856,18 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1VideoSegment) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1VideoSegment
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoSegment
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-// GoogleCloudVideointelligenceV2beta1WordInfo: Word-specific
+// GoogleCloudVideointelligenceV1p3beta1WordInfo: Word-specific
 // information for recognized words. Word information is only
 // included in the response when certain request parameters are set,
 // such
 // as `enable_word_time_offsets`.
-type GoogleCloudVideointelligenceV2beta1WordInfo struct {
+type GoogleCloudVideointelligenceV1p3beta1WordInfo struct {
 	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
 	// A higher number
 	// indicates an estimated greater likelihood that the recognized words
@@ -5835,14 +5927,14 @@
 	NullFields []string `json:"-"`
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1WordInfo) MarshalJSON() ([]byte, error) {
-	type NoMethod GoogleCloudVideointelligenceV2beta1WordInfo
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
 	raw := NoMethod(*s)
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
-func (s *GoogleCloudVideointelligenceV2beta1WordInfo) UnmarshalJSON(data []byte) error {
-	type NoMethod GoogleCloudVideointelligenceV2beta1WordInfo
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
 	var s1 struct {
 		Confidence gensupport.JSONFloat64 `json:"confidence"`
 		*NoMethod
@@ -5931,20 +6023,20 @@
 }
 
 // GoogleRpcStatus: 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:
+// 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
+// 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
diff --git a/videointelligence/v1p3beta1/videointelligence-api.json b/videointelligence/v1p3beta1/videointelligence-api.json
new file mode 100644
index 0000000..d30d88f
--- /dev/null
+++ b/videointelligence/v1p3beta1/videointelligence-api.json
@@ -0,0 +1,3001 @@
+{
+  "auth": {
+    "oauth2": {
+      "scopes": {
+        "https://www.googleapis.com/auth/cloud-platform": {
+          "description": "View and manage your data across Google Cloud Platform services"
+        }
+      }
+    }
+  },
+  "basePath": "",
+  "baseUrl": "https://videointelligence.googleapis.com/",
+  "batchPath": "batch",
+  "canonicalName": "Cloud Video Intelligence",
+  "description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.",
+  "discoveryVersion": "v1",
+  "documentationLink": "https://cloud.google.com/video-intelligence/docs/",
+  "fullyEncodeReservedExpansion": true,
+  "icons": {
+    "x16": "http://www.google.com/images/icons/product/search-16.gif",
+    "x32": "http://www.google.com/images/icons/product/search-32.gif"
+  },
+  "id": "videointelligence:v1p3beta1",
+  "kind": "discovery#restDescription",
+  "name": "videointelligence",
+  "ownerDomain": "google.com",
+  "ownerName": "Google",
+  "parameters": {
+    "$.xgafv": {
+      "description": "V1 error format.",
+      "enum": [
+        "1",
+        "2"
+      ],
+      "enumDescriptions": [
+        "v1 error format",
+        "v2 error format"
+      ],
+      "location": "query",
+      "type": "string"
+    },
+    "access_token": {
+      "description": "OAuth access token.",
+      "location": "query",
+      "type": "string"
+    },
+    "alt": {
+      "default": "json",
+      "description": "Data format for response.",
+      "enum": [
+        "json",
+        "media",
+        "proto"
+      ],
+      "enumDescriptions": [
+        "Responses with Content-Type of application/json",
+        "Media download with context-dependent Content-Type",
+        "Responses with Content-Type of application/x-protobuf"
+      ],
+      "location": "query",
+      "type": "string"
+    },
+    "callback": {
+      "description": "JSONP",
+      "location": "query",
+      "type": "string"
+    },
+    "fields": {
+      "description": "Selector specifying which fields to include in a partial response.",
+      "location": "query",
+      "type": "string"
+    },
+    "key": {
+      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
+      "location": "query",
+      "type": "string"
+    },
+    "oauth_token": {
+      "description": "OAuth 2.0 token for the current user.",
+      "location": "query",
+      "type": "string"
+    },
+    "prettyPrint": {
+      "default": "true",
+      "description": "Returns response with indentations and line breaks.",
+      "location": "query",
+      "type": "boolean"
+    },
+    "quotaUser": {
+      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
+      "location": "query",
+      "type": "string"
+    },
+    "uploadType": {
+      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
+      "location": "query",
+      "type": "string"
+    },
+    "upload_protocol": {
+      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
+      "location": "query",
+      "type": "string"
+    }
+  },
+  "protocol": "rest",
+  "resources": {
+    "videos": {
+      "methods": {
+        "annotate": {
+          "description": "Performs asynchronous video annotation. Progress and results can be\nretrieved through the `google.longrunning.Operations` interface.\n`Operation.metadata` contains `AnnotateVideoProgress` (progress).\n`Operation.response` contains `AnnotateVideoResponse` (results).",
+          "flatPath": "v1p3beta1/videos:annotate",
+          "httpMethod": "POST",
+          "id": "videointelligence.videos.annotate",
+          "parameterOrder": [],
+          "parameters": {},
+          "path": "v1p3beta1/videos:annotate",
+          "request": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoRequest"
+          },
+          "response": {
+            "$ref": "GoogleLongrunning_Operation"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform"
+          ]
+        }
+      }
+    }
+  },
+  "revision": "20190308",
+  "rootUrl": "https://videointelligence.googleapis.com/",
+  "schemas": {
+    "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": {
+      "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1_AnnotateVideoProgress",
+      "properties": {
+        "annotationProgress": {
+          "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_VideoAnnotationProgress"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_AnnotateVideoResponse": {
+      "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1_AnnotateVideoResponse",
+      "properties": {
+        "annotationResults": {
+          "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_VideoAnnotationResults"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_Entity": {
+      "description": "Detected entity from video analysis.",
+      "id": "GoogleCloudVideointelligenceV1_Entity",
+      "properties": {
+        "description": {
+          "description": "Textual description, e.g. `Fixed-gear bicycle`.",
+          "type": "string"
+        },
+        "entityId": {
+          "description": "Opaque entity ID. Some IDs may be available in\n[Google Knowledge Graph Search\nAPI](https://developers.google.com/knowledge-graph/).",
+          "type": "string"
+        },
+        "languageCode": {
+          "description": "Language code for `description` in BCP-47 format.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_ExplicitContentAnnotation": {
+      "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.",
+      "id": "GoogleCloudVideointelligenceV1_ExplicitContentAnnotation",
+      "properties": {
+        "frames": {
+          "description": "All video frames where explicit content was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_ExplicitContentFrame"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_ExplicitContentFrame": {
+      "description": "Video frame level annotation results for explicit content.",
+      "id": "GoogleCloudVideointelligenceV1_ExplicitContentFrame",
+      "properties": {
+        "pornographyLikelihood": {
+          "description": "Likelihood of the pornography content..",
+          "enum": [
+            "LIKELIHOOD_UNSPECIFIED",
+            "VERY_UNLIKELY",
+            "UNLIKELY",
+            "POSSIBLE",
+            "LIKELY",
+            "VERY_LIKELY"
+          ],
+          "enumDescriptions": [
+            "Unspecified likelihood.",
+            "Very unlikely.",
+            "Unlikely.",
+            "Possible.",
+            "Likely.",
+            "Very likely."
+          ],
+          "type": "string"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_LabelAnnotation": {
+      "description": "Label annotation.",
+      "id": "GoogleCloudVideointelligenceV1_LabelAnnotation",
+      "properties": {
+        "categoryEntities": {
+          "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_Entity"
+          },
+          "type": "array"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1_Entity",
+          "description": "Detected entity."
+        },
+        "frames": {
+          "description": "All video frames where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_LabelFrame"
+          },
+          "type": "array"
+        },
+        "segments": {
+          "description": "All video segments where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_LabelSegment"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_LabelFrame": {
+      "description": "Video frame level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1_LabelFrame",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_LabelSegment": {
+      "description": "Video segment level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1_LabelSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1_VideoSegment",
+          "description": "Video segment where a label was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_NormalizedBoundingBox": {
+      "description": "Normalized bounding box.\nThe normalized vertex coordinates are relative to the original image.\nRange: [0, 1].",
+      "id": "GoogleCloudVideointelligenceV1_NormalizedBoundingBox",
+      "properties": {
+        "bottom": {
+          "description": "Bottom Y coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "left": {
+          "description": "Left X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "right": {
+          "description": "Right X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "top": {
+          "description": "Top Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_NormalizedBoundingPoly": {
+      "description": "Normalized bounding polygon for text (that might not be aligned with axis).\nContains list of the corner points in clockwise order starting from\ntop-left corner. For example, for a rectangular bounding box:\nWhen the text is horizontal it might look like:\n        0----1\n        |    |\n        3----2\n\nWhen it's clockwise rotated 180 degrees around the top-left corner it\nbecomes:\n        2----3\n        |    |\n        1----0\n\nand the vertex order will still be (0, 1, 2, 3). Note that values can be less\nthan 0, or greater than 1 due to trignometric calculations for location of\nthe box.",
+      "id": "GoogleCloudVideointelligenceV1_NormalizedBoundingPoly",
+      "properties": {
+        "vertices": {
+          "description": "Normalized vertices of the bounding polygon.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_NormalizedVertex"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_NormalizedVertex": {
+      "description": "A vertex represents a 2D point in the image.\nNOTE: the normalized vertex coordinates are relative to the original image\nand range from 0 to 1.",
+      "id": "GoogleCloudVideointelligenceV1_NormalizedVertex",
+      "properties": {
+        "x": {
+          "description": "X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "y": {
+          "description": "Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_ObjectTrackingAnnotation": {
+      "description": "Annotations corresponding to one tracked object.",
+      "id": "GoogleCloudVideointelligenceV1_ObjectTrackingAnnotation",
+      "properties": {
+        "confidence": {
+          "description": "Object category's labeling confidence of this track.",
+          "format": "float",
+          "type": "number"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1_Entity",
+          "description": "Entity to specify the object category that this track is labeled as."
+        },
+        "frames": {
+          "description": "Information corresponding to all frames where this object track appears.\nNon-streaming batch mode: it may be one or multiple ObjectTrackingFrame\nmessages in frames.\nStreaming mode: it can only be one ObjectTrackingFrame message in frames.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_ObjectTrackingFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1_VideoSegment",
+          "description": "Non-streaming batch mode ONLY.\nEach object track corresponds to one video segment where it appears."
+        },
+        "trackId": {
+          "description": "Streaming mode ONLY.\nIn streaming mode, we do not know the end time of a tracked object\nbefore it is completed. Hence, there is no VideoSegment info returned.\nInstead, we provide a unique identifiable integer track_id so that\nthe customers can correlate the results of the ongoing\nObjectTrackAnnotation of the same track_id over time.",
+          "format": "int64",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_ObjectTrackingFrame": {
+      "description": "Video frame level annotations for object detection and tracking. This field\nstores per frame location, time offset, and confidence.",
+      "id": "GoogleCloudVideointelligenceV1_ObjectTrackingFrame",
+      "properties": {
+        "normalizedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1_NormalizedBoundingBox",
+          "description": "The normalized bounding box location of this object track for the frame."
+        },
+        "timeOffset": {
+          "description": "The timestamp of the frame in microseconds.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_SpeechRecognitionAlternative": {
+      "description": "Alternative hypotheses (a.k.a. n-best list).",
+      "id": "GoogleCloudVideointelligenceV1_SpeechRecognitionAlternative",
+      "properties": {
+        "confidence": {
+          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "transcript": {
+          "description": "Transcript text representing the words that the user spoke.",
+          "type": "string"
+        },
+        "words": {
+          "description": "A list of word-specific information for each recognized word.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_WordInfo"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_SpeechTranscription": {
+      "description": "A speech recognition result corresponding to a portion of the audio.",
+      "id": "GoogleCloudVideointelligenceV1_SpeechTranscription",
+      "properties": {
+        "alternatives": {
+          "description": "May contain one or more recognition hypotheses (up to the maximum specified\nin `max_alternatives`).  These alternatives are ordered in terms of\naccuracy, with the top (first) alternative being the most probable, as\nranked by the recognizer.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_SpeechRecognitionAlternative"
+          },
+          "type": "array"
+        },
+        "languageCode": {
+          "description": "Output only. The\n[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the\nlanguage in this result. This language code was detected to have the most\nlikelihood of being spoken in the audio.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_TextAnnotation": {
+      "description": "Annotations related to one detected OCR text snippet. This will contain the\ncorresponding text, confidence value, and frame level information for each\ndetection.",
+      "id": "GoogleCloudVideointelligenceV1_TextAnnotation",
+      "properties": {
+        "segments": {
+          "description": "All video segments where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_TextSegment"
+          },
+          "type": "array"
+        },
+        "text": {
+          "description": "The detected text.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_TextFrame": {
+      "description": "Video frame level annotation results for text annotation (OCR).\nContains information regarding timestamp and bounding box locations for the\nframes containing detected OCR text snippets.",
+      "id": "GoogleCloudVideointelligenceV1_TextFrame",
+      "properties": {
+        "rotatedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1_NormalizedBoundingPoly",
+          "description": "Bounding polygon of the detected text for this frame."
+        },
+        "timeOffset": {
+          "description": "Timestamp of this frame.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_TextSegment": {
+      "description": "Video segment level annotation results for text detection.",
+      "id": "GoogleCloudVideointelligenceV1_TextSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence for the track of detected text. It is calculated as the highest\nover all frames where OCR detected text appears.",
+          "format": "float",
+          "type": "number"
+        },
+        "frames": {
+          "description": "Information related to the frames where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_TextFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1_VideoSegment",
+          "description": "Video segment where a text snippet was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_VideoAnnotationProgress": {
+      "description": "Annotation progress for a single video.",
+      "id": "GoogleCloudVideointelligenceV1_VideoAnnotationProgress",
+      "properties": {
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "progressPercent": {
+          "description": "Approximate percentage processed thus far. Guaranteed to be\n100 when fully processed.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time when the request was received.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "updateTime": {
+          "description": "Time of the most recent update.",
+          "format": "google-datetime",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_VideoAnnotationResults": {
+      "description": "Annotation results for a single video.",
+      "id": "GoogleCloudVideointelligenceV1_VideoAnnotationResults",
+      "properties": {
+        "error": {
+          "$ref": "GoogleRpc_Status",
+          "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail."
+        },
+        "explicitAnnotation": {
+          "$ref": "GoogleCloudVideointelligenceV1_ExplicitContentAnnotation",
+          "description": "Explicit content annotation."
+        },
+        "frameLabelAnnotations": {
+          "description": "Label annotations on frame level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "objectAnnotations": {
+          "description": "Annotations for list of objects detected and tracked in video.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_ObjectTrackingAnnotation"
+          },
+          "type": "array"
+        },
+        "segmentLabelAnnotations": {
+          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "shotAnnotations": {
+          "description": "Shot annotations. Each shot is represented as a video segment.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_VideoSegment"
+          },
+          "type": "array"
+        },
+        "shotLabelAnnotations": {
+          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "speechTranscriptions": {
+          "description": "Speech transcription.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_SpeechTranscription"
+          },
+          "type": "array"
+        },
+        "textAnnotations": {
+          "description": "OCR text detection and tracking.\nAnnotations for list of detected text snippets. Each will have list of\nframe information associated with it.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1_TextAnnotation"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_VideoSegment": {
+      "description": "Video segment.",
+      "id": "GoogleCloudVideointelligenceV1_VideoSegment",
+      "properties": {
+        "endTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "startTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the start of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1_WordInfo": {
+      "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.",
+      "id": "GoogleCloudVideointelligenceV1_WordInfo",
+      "properties": {
+        "confidence": {
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "endTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the end of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "speakerTag": {
+          "description": "Output only. A distinct integer value is assigned for every speaker within\nthe audio. This field specifies which one of those speakers was detected to\nhave spoken this word. Value ranges from 1 up to diarization_speaker_count,\nand is only set if speaker diarization is enabled.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the start of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "word": {
+          "description": "The word corresponding to this set of information.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_AnnotateVideoProgress": {
+      "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1beta2_AnnotateVideoProgress",
+      "properties": {
+        "annotationProgress": {
+          "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_AnnotateVideoResponse": {
+      "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1beta2_AnnotateVideoResponse",
+      "properties": {
+        "annotationResults": {
+          "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationResults"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_Entity": {
+      "description": "Detected entity from video analysis.",
+      "id": "GoogleCloudVideointelligenceV1beta2_Entity",
+      "properties": {
+        "description": {
+          "description": "Textual description, e.g. `Fixed-gear bicycle`.",
+          "type": "string"
+        },
+        "entityId": {
+          "description": "Opaque entity ID. Some IDs may be available in\n[Google Knowledge Graph Search\nAPI](https://developers.google.com/knowledge-graph/).",
+          "type": "string"
+        },
+        "languageCode": {
+          "description": "Language code for `description` in BCP-47 format.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation": {
+      "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.",
+      "id": "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation",
+      "properties": {
+        "frames": {
+          "description": "All video frames where explicit content was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame": {
+      "description": "Video frame level annotation results for explicit content.",
+      "id": "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame",
+      "properties": {
+        "pornographyLikelihood": {
+          "description": "Likelihood of the pornography content..",
+          "enum": [
+            "LIKELIHOOD_UNSPECIFIED",
+            "VERY_UNLIKELY",
+            "UNLIKELY",
+            "POSSIBLE",
+            "LIKELY",
+            "VERY_LIKELY"
+          ],
+          "enumDescriptions": [
+            "Unspecified likelihood.",
+            "Very unlikely.",
+            "Unlikely.",
+            "Possible.",
+            "Likely.",
+            "Very likely."
+          ],
+          "type": "string"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_LabelAnnotation": {
+      "description": "Label annotation.",
+      "id": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation",
+      "properties": {
+        "categoryEntities": {
+          "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_Entity"
+          },
+          "type": "array"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_Entity",
+          "description": "Detected entity."
+        },
+        "frames": {
+          "description": "All video frames where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_LabelFrame"
+          },
+          "type": "array"
+        },
+        "segments": {
+          "description": "All video segments where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_LabelSegment"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_LabelFrame": {
+      "description": "Video frame level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1beta2_LabelFrame",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_LabelSegment": {
+      "description": "Video segment level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1beta2_LabelSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment",
+          "description": "Video segment where a label was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingBox": {
+      "description": "Normalized bounding box.\nThe normalized vertex coordinates are relative to the original image.\nRange: [0, 1].",
+      "id": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingBox",
+      "properties": {
+        "bottom": {
+          "description": "Bottom Y coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "left": {
+          "description": "Left X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "right": {
+          "description": "Right X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "top": {
+          "description": "Top Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingPoly": {
+      "description": "Normalized bounding polygon for text (that might not be aligned with axis).\nContains list of the corner points in clockwise order starting from\ntop-left corner. For example, for a rectangular bounding box:\nWhen the text is horizontal it might look like:\n        0----1\n        |    |\n        3----2\n\nWhen it's clockwise rotated 180 degrees around the top-left corner it\nbecomes:\n        2----3\n        |    |\n        1----0\n\nand the vertex order will still be (0, 1, 2, 3). Note that values can be less\nthan 0, or greater than 1 due to trignometric calculations for location of\nthe box.",
+      "id": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingPoly",
+      "properties": {
+        "vertices": {
+          "description": "Normalized vertices of the bounding polygon.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_NormalizedVertex"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_NormalizedVertex": {
+      "description": "A vertex represents a 2D point in the image.\nNOTE: the normalized vertex coordinates are relative to the original image\nand range from 0 to 1.",
+      "id": "GoogleCloudVideointelligenceV1beta2_NormalizedVertex",
+      "properties": {
+        "x": {
+          "description": "X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "y": {
+          "description": "Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_ObjectTrackingAnnotation": {
+      "description": "Annotations corresponding to one tracked object.",
+      "id": "GoogleCloudVideointelligenceV1beta2_ObjectTrackingAnnotation",
+      "properties": {
+        "confidence": {
+          "description": "Object category's labeling confidence of this track.",
+          "format": "float",
+          "type": "number"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_Entity",
+          "description": "Entity to specify the object category that this track is labeled as."
+        },
+        "frames": {
+          "description": "Information corresponding to all frames where this object track appears.\nNon-streaming batch mode: it may be one or multiple ObjectTrackingFrame\nmessages in frames.\nStreaming mode: it can only be one ObjectTrackingFrame message in frames.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_ObjectTrackingFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment",
+          "description": "Non-streaming batch mode ONLY.\nEach object track corresponds to one video segment where it appears."
+        },
+        "trackId": {
+          "description": "Streaming mode ONLY.\nIn streaming mode, we do not know the end time of a tracked object\nbefore it is completed. Hence, there is no VideoSegment info returned.\nInstead, we provide a unique identifiable integer track_id so that\nthe customers can correlate the results of the ongoing\nObjectTrackAnnotation of the same track_id over time.",
+          "format": "int64",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_ObjectTrackingFrame": {
+      "description": "Video frame level annotations for object detection and tracking. This field\nstores per frame location, time offset, and confidence.",
+      "id": "GoogleCloudVideointelligenceV1beta2_ObjectTrackingFrame",
+      "properties": {
+        "normalizedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingBox",
+          "description": "The normalized bounding box location of this object track for the frame."
+        },
+        "timeOffset": {
+          "description": "The timestamp of the frame in microseconds.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_SpeechRecognitionAlternative": {
+      "description": "Alternative hypotheses (a.k.a. n-best list).",
+      "id": "GoogleCloudVideointelligenceV1beta2_SpeechRecognitionAlternative",
+      "properties": {
+        "confidence": {
+          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "transcript": {
+          "description": "Transcript text representing the words that the user spoke.",
+          "type": "string"
+        },
+        "words": {
+          "description": "A list of word-specific information for each recognized word.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_WordInfo"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_SpeechTranscription": {
+      "description": "A speech recognition result corresponding to a portion of the audio.",
+      "id": "GoogleCloudVideointelligenceV1beta2_SpeechTranscription",
+      "properties": {
+        "alternatives": {
+          "description": "May contain one or more recognition hypotheses (up to the maximum specified\nin `max_alternatives`).  These alternatives are ordered in terms of\naccuracy, with the top (first) alternative being the most probable, as\nranked by the recognizer.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_SpeechRecognitionAlternative"
+          },
+          "type": "array"
+        },
+        "languageCode": {
+          "description": "Output only. The\n[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the\nlanguage in this result. This language code was detected to have the most\nlikelihood of being spoken in the audio.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_TextAnnotation": {
+      "description": "Annotations related to one detected OCR text snippet. This will contain the\ncorresponding text, confidence value, and frame level information for each\ndetection.",
+      "id": "GoogleCloudVideointelligenceV1beta2_TextAnnotation",
+      "properties": {
+        "segments": {
+          "description": "All video segments where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_TextSegment"
+          },
+          "type": "array"
+        },
+        "text": {
+          "description": "The detected text.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_TextFrame": {
+      "description": "Video frame level annotation results for text annotation (OCR).\nContains information regarding timestamp and bounding box locations for the\nframes containing detected OCR text snippets.",
+      "id": "GoogleCloudVideointelligenceV1beta2_TextFrame",
+      "properties": {
+        "rotatedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingPoly",
+          "description": "Bounding polygon of the detected text for this frame."
+        },
+        "timeOffset": {
+          "description": "Timestamp of this frame.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_TextSegment": {
+      "description": "Video segment level annotation results for text detection.",
+      "id": "GoogleCloudVideointelligenceV1beta2_TextSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence for the track of detected text. It is calculated as the highest\nover all frames where OCR detected text appears.",
+          "format": "float",
+          "type": "number"
+        },
+        "frames": {
+          "description": "Information related to the frames where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_TextFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment",
+          "description": "Video segment where a text snippet was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress": {
+      "description": "Annotation progress for a single video.",
+      "id": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress",
+      "properties": {
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "progressPercent": {
+          "description": "Approximate percentage processed thus far. Guaranteed to be\n100 when fully processed.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time when the request was received.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "updateTime": {
+          "description": "Time of the most recent update.",
+          "format": "google-datetime",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_VideoAnnotationResults": {
+      "description": "Annotation results for a single video.",
+      "id": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationResults",
+      "properties": {
+        "error": {
+          "$ref": "GoogleRpc_Status",
+          "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail."
+        },
+        "explicitAnnotation": {
+          "$ref": "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation",
+          "description": "Explicit content annotation."
+        },
+        "frameLabelAnnotations": {
+          "description": "Label annotations on frame level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "objectAnnotations": {
+          "description": "Annotations for list of objects detected and tracked in video.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_ObjectTrackingAnnotation"
+          },
+          "type": "array"
+        },
+        "segmentLabelAnnotations": {
+          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "shotAnnotations": {
+          "description": "Shot annotations. Each shot is represented as a video segment.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment"
+          },
+          "type": "array"
+        },
+        "shotLabelAnnotations": {
+          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "speechTranscriptions": {
+          "description": "Speech transcription.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_SpeechTranscription"
+          },
+          "type": "array"
+        },
+        "textAnnotations": {
+          "description": "OCR text detection and tracking.\nAnnotations for list of detected text snippets. Each will have list of\nframe information associated with it.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1beta2_TextAnnotation"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_VideoSegment": {
+      "description": "Video segment.",
+      "id": "GoogleCloudVideointelligenceV1beta2_VideoSegment",
+      "properties": {
+        "endTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "startTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the start of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1beta2_WordInfo": {
+      "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.",
+      "id": "GoogleCloudVideointelligenceV1beta2_WordInfo",
+      "properties": {
+        "confidence": {
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "endTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the end of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "speakerTag": {
+          "description": "Output only. A distinct integer value is assigned for every speaker within\nthe audio. This field specifies which one of those speakers was detected to\nhave spoken this word. Value ranges from 1 up to diarization_speaker_count,\nand is only set if speaker diarization is enabled.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the start of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "word": {
+          "description": "The word corresponding to this set of information.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_AnnotateVideoProgress": {
+      "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_AnnotateVideoProgress",
+      "properties": {
+        "annotationProgress": {
+          "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationProgress"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_AnnotateVideoResponse": {
+      "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_AnnotateVideoResponse",
+      "properties": {
+        "annotationResults": {
+          "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationResults"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_Entity": {
+      "description": "Detected entity from video analysis.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_Entity",
+      "properties": {
+        "description": {
+          "description": "Textual description, e.g. `Fixed-gear bicycle`.",
+          "type": "string"
+        },
+        "entityId": {
+          "description": "Opaque entity ID. Some IDs may be available in\n[Google Knowledge Graph Search\nAPI](https://developers.google.com/knowledge-graph/).",
+          "type": "string"
+        },
+        "languageCode": {
+          "description": "Language code for `description` in BCP-47 format.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentAnnotation": {
+      "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentAnnotation",
+      "properties": {
+        "frames": {
+          "description": "All video frames where explicit content was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentFrame"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentFrame": {
+      "description": "Video frame level annotation results for explicit content.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentFrame",
+      "properties": {
+        "pornographyLikelihood": {
+          "description": "Likelihood of the pornography content..",
+          "enum": [
+            "LIKELIHOOD_UNSPECIFIED",
+            "VERY_UNLIKELY",
+            "UNLIKELY",
+            "POSSIBLE",
+            "LIKELY",
+            "VERY_LIKELY"
+          ],
+          "enumDescriptions": [
+            "Unspecified likelihood.",
+            "Very unlikely.",
+            "Unlikely.",
+            "Possible.",
+            "Likely.",
+            "Very likely."
+          ],
+          "type": "string"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation": {
+      "description": "Label annotation.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation",
+      "properties": {
+        "categoryEntities": {
+          "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_Entity"
+          },
+          "type": "array"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_Entity",
+          "description": "Detected entity."
+        },
+        "frames": {
+          "description": "All video frames where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelFrame"
+          },
+          "type": "array"
+        },
+        "segments": {
+          "description": "All video segments where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelSegment"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_LabelFrame": {
+      "description": "Video frame level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_LabelFrame",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_LabelSegment": {
+      "description": "Video segment level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_LabelSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment",
+          "description": "Video segment where a label was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingBox": {
+      "description": "Normalized bounding box.\nThe normalized vertex coordinates are relative to the original image.\nRange: [0, 1].",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingBox",
+      "properties": {
+        "bottom": {
+          "description": "Bottom Y coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "left": {
+          "description": "Left X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "right": {
+          "description": "Right X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "top": {
+          "description": "Top Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingPoly": {
+      "description": "Normalized bounding polygon for text (that might not be aligned with axis).\nContains list of the corner points in clockwise order starting from\ntop-left corner. For example, for a rectangular bounding box:\nWhen the text is horizontal it might look like:\n        0----1\n        |    |\n        3----2\n\nWhen it's clockwise rotated 180 degrees around the top-left corner it\nbecomes:\n        2----3\n        |    |\n        1----0\n\nand the vertex order will still be (0, 1, 2, 3). Note that values can be less\nthan 0, or greater than 1 due to trignometric calculations for location of\nthe box.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingPoly",
+      "properties": {
+        "vertices": {
+          "description": "Normalized vertices of the bounding polygon.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_NormalizedVertex"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_NormalizedVertex": {
+      "description": "A vertex represents a 2D point in the image.\nNOTE: the normalized vertex coordinates are relative to the original image\nand range from 0 to 1.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_NormalizedVertex",
+      "properties": {
+        "x": {
+          "description": "X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "y": {
+          "description": "Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingAnnotation": {
+      "description": "Annotations corresponding to one tracked object.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingAnnotation",
+      "properties": {
+        "confidence": {
+          "description": "Object category's labeling confidence of this track.",
+          "format": "float",
+          "type": "number"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_Entity",
+          "description": "Entity to specify the object category that this track is labeled as."
+        },
+        "frames": {
+          "description": "Information corresponding to all frames where this object track appears.\nNon-streaming batch mode: it may be one or multiple ObjectTrackingFrame\nmessages in frames.\nStreaming mode: it can only be one ObjectTrackingFrame message in frames.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment",
+          "description": "Non-streaming batch mode ONLY.\nEach object track corresponds to one video segment where it appears."
+        },
+        "trackId": {
+          "description": "Streaming mode ONLY.\nIn streaming mode, we do not know the end time of a tracked object\nbefore it is completed. Hence, there is no VideoSegment info returned.\nInstead, we provide a unique identifiable integer track_id so that\nthe customers can correlate the results of the ongoing\nObjectTrackAnnotation of the same track_id over time.",
+          "format": "int64",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingFrame": {
+      "description": "Video frame level annotations for object detection and tracking. This field\nstores per frame location, time offset, and confidence.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingFrame",
+      "properties": {
+        "normalizedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingBox",
+          "description": "The normalized bounding box location of this object track for the frame."
+        },
+        "timeOffset": {
+          "description": "The timestamp of the frame in microseconds.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_SpeechRecognitionAlternative": {
+      "description": "Alternative hypotheses (a.k.a. n-best list).",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_SpeechRecognitionAlternative",
+      "properties": {
+        "confidence": {
+          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "transcript": {
+          "description": "Transcript text representing the words that the user spoke.",
+          "type": "string"
+        },
+        "words": {
+          "description": "A list of word-specific information for each recognized word.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_WordInfo"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_SpeechTranscription": {
+      "description": "A speech recognition result corresponding to a portion of the audio.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_SpeechTranscription",
+      "properties": {
+        "alternatives": {
+          "description": "May contain one or more recognition hypotheses (up to the maximum specified\nin `max_alternatives`).  These alternatives are ordered in terms of\naccuracy, with the top (first) alternative being the most probable, as\nranked by the recognizer.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_SpeechRecognitionAlternative"
+          },
+          "type": "array"
+        },
+        "languageCode": {
+          "description": "Output only. The\n[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the\nlanguage in this result. This language code was detected to have the most\nlikelihood of being spoken in the audio.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_TextAnnotation": {
+      "description": "Annotations related to one detected OCR text snippet. This will contain the\ncorresponding text, confidence value, and frame level information for each\ndetection.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_TextAnnotation",
+      "properties": {
+        "segments": {
+          "description": "All video segments where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_TextSegment"
+          },
+          "type": "array"
+        },
+        "text": {
+          "description": "The detected text.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_TextFrame": {
+      "description": "Video frame level annotation results for text annotation (OCR).\nContains information regarding timestamp and bounding box locations for the\nframes containing detected OCR text snippets.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_TextFrame",
+      "properties": {
+        "rotatedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingPoly",
+          "description": "Bounding polygon of the detected text for this frame."
+        },
+        "timeOffset": {
+          "description": "Timestamp of this frame.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_TextSegment": {
+      "description": "Video segment level annotation results for text detection.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_TextSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence for the track of detected text. It is calculated as the highest\nover all frames where OCR detected text appears.",
+          "format": "float",
+          "type": "number"
+        },
+        "frames": {
+          "description": "Information related to the frames where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_TextFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment",
+          "description": "Video segment where a text snippet was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationProgress": {
+      "description": "Annotation progress for a single video.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationProgress",
+      "properties": {
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "progressPercent": {
+          "description": "Approximate percentage processed thus far. Guaranteed to be\n100 when fully processed.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time when the request was received.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "updateTime": {
+          "description": "Time of the most recent update.",
+          "format": "google-datetime",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationResults": {
+      "description": "Annotation results for a single video.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationResults",
+      "properties": {
+        "error": {
+          "$ref": "GoogleRpc_Status",
+          "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail."
+        },
+        "explicitAnnotation": {
+          "$ref": "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentAnnotation",
+          "description": "Explicit content annotation."
+        },
+        "frameLabelAnnotations": {
+          "description": "Label annotations on frame level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "objectAnnotations": {
+          "description": "Annotations for list of objects detected and tracked in video.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingAnnotation"
+          },
+          "type": "array"
+        },
+        "segmentLabelAnnotations": {
+          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "shotAnnotations": {
+          "description": "Shot annotations. Each shot is represented as a video segment.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment"
+          },
+          "type": "array"
+        },
+        "shotLabelAnnotations": {
+          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "speechTranscriptions": {
+          "description": "Speech transcription.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_SpeechTranscription"
+          },
+          "type": "array"
+        },
+        "textAnnotations": {
+          "description": "OCR text detection and tracking.\nAnnotations for list of detected text snippets. Each will have list of\nframe information associated with it.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p1beta1_TextAnnotation"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_VideoSegment": {
+      "description": "Video segment.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment",
+      "properties": {
+        "endTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "startTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the start of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p1beta1_WordInfo": {
+      "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.",
+      "id": "GoogleCloudVideointelligenceV1p1beta1_WordInfo",
+      "properties": {
+        "confidence": {
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "endTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the end of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "speakerTag": {
+          "description": "Output only. A distinct integer value is assigned for every speaker within\nthe audio. This field specifies which one of those speakers was detected to\nhave spoken this word. Value ranges from 1 up to diarization_speaker_count,\nand is only set if speaker diarization is enabled.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the start of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "word": {
+          "description": "The word corresponding to this set of information.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoProgress": {
+      "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoProgress",
+      "properties": {
+        "annotationProgress": {
+          "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoResponse": {
+      "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoResponse",
+      "properties": {
+        "annotationResults": {
+          "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_Entity": {
+      "description": "Detected entity from video analysis.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_Entity",
+      "properties": {
+        "description": {
+          "description": "Textual description, e.g. `Fixed-gear bicycle`.",
+          "type": "string"
+        },
+        "entityId": {
+          "description": "Opaque entity ID. Some IDs may be available in\n[Google Knowledge Graph Search\nAPI](https://developers.google.com/knowledge-graph/).",
+          "type": "string"
+        },
+        "languageCode": {
+          "description": "Language code for `description` in BCP-47 format.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentAnnotation": {
+      "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentAnnotation",
+      "properties": {
+        "frames": {
+          "description": "All video frames where explicit content was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentFrame"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentFrame": {
+      "description": "Video frame level annotation results for explicit content.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentFrame",
+      "properties": {
+        "pornographyLikelihood": {
+          "description": "Likelihood of the pornography content..",
+          "enum": [
+            "LIKELIHOOD_UNSPECIFIED",
+            "VERY_UNLIKELY",
+            "UNLIKELY",
+            "POSSIBLE",
+            "LIKELY",
+            "VERY_LIKELY"
+          ],
+          "enumDescriptions": [
+            "Unspecified likelihood.",
+            "Very unlikely.",
+            "Unlikely.",
+            "Possible.",
+            "Likely.",
+            "Very likely."
+          ],
+          "type": "string"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation": {
+      "description": "Label annotation.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation",
+      "properties": {
+        "categoryEntities": {
+          "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_Entity"
+          },
+          "type": "array"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_Entity",
+          "description": "Detected entity."
+        },
+        "frames": {
+          "description": "All video frames where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelFrame"
+          },
+          "type": "array"
+        },
+        "segments": {
+          "description": "All video segments where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelSegment"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_LabelFrame": {
+      "description": "Video frame level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_LabelFrame",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_LabelSegment": {
+      "description": "Video segment level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_LabelSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment",
+          "description": "Video segment where a label was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox": {
+      "description": "Normalized bounding box.\nThe normalized vertex coordinates are relative to the original image.\nRange: [0, 1].",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox",
+      "properties": {
+        "bottom": {
+          "description": "Bottom Y coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "left": {
+          "description": "Left X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "right": {
+          "description": "Right X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "top": {
+          "description": "Top Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingPoly": {
+      "description": "Normalized bounding polygon for text (that might not be aligned with axis).\nContains list of the corner points in clockwise order starting from\ntop-left corner. For example, for a rectangular bounding box:\nWhen the text is horizontal it might look like:\n        0----1\n        |    |\n        3----2\n\nWhen it's clockwise rotated 180 degrees around the top-left corner it\nbecomes:\n        2----3\n        |    |\n        1----0\n\nand the vertex order will still be (0, 1, 2, 3). Note that values can be less\nthan 0, or greater than 1 due to trignometric calculations for location of\nthe box.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingPoly",
+      "properties": {
+        "vertices": {
+          "description": "Normalized vertices of the bounding polygon.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_NormalizedVertex"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_NormalizedVertex": {
+      "description": "A vertex represents a 2D point in the image.\nNOTE: the normalized vertex coordinates are relative to the original image\nand range from 0 to 1.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_NormalizedVertex",
+      "properties": {
+        "x": {
+          "description": "X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "y": {
+          "description": "Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation": {
+      "description": "Annotations corresponding to one tracked object.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation",
+      "properties": {
+        "confidence": {
+          "description": "Object category's labeling confidence of this track.",
+          "format": "float",
+          "type": "number"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_Entity",
+          "description": "Entity to specify the object category that this track is labeled as."
+        },
+        "frames": {
+          "description": "Information corresponding to all frames where this object track appears.\nNon-streaming batch mode: it may be one or multiple ObjectTrackingFrame\nmessages in frames.\nStreaming mode: it can only be one ObjectTrackingFrame message in frames.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment",
+          "description": "Non-streaming batch mode ONLY.\nEach object track corresponds to one video segment where it appears."
+        },
+        "trackId": {
+          "description": "Streaming mode ONLY.\nIn streaming mode, we do not know the end time of a tracked object\nbefore it is completed. Hence, there is no VideoSegment info returned.\nInstead, we provide a unique identifiable integer track_id so that\nthe customers can correlate the results of the ongoing\nObjectTrackAnnotation of the same track_id over time.",
+          "format": "int64",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingFrame": {
+      "description": "Video frame level annotations for object detection and tracking. This field\nstores per frame location, time offset, and confidence.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingFrame",
+      "properties": {
+        "normalizedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox",
+          "description": "The normalized bounding box location of this object track for the frame."
+        },
+        "timeOffset": {
+          "description": "The timestamp of the frame in microseconds.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_SpeechRecognitionAlternative": {
+      "description": "Alternative hypotheses (a.k.a. n-best list).",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_SpeechRecognitionAlternative",
+      "properties": {
+        "confidence": {
+          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "transcript": {
+          "description": "Transcript text representing the words that the user spoke.",
+          "type": "string"
+        },
+        "words": {
+          "description": "A list of word-specific information for each recognized word.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_WordInfo"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_SpeechTranscription": {
+      "description": "A speech recognition result corresponding to a portion of the audio.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_SpeechTranscription",
+      "properties": {
+        "alternatives": {
+          "description": "May contain one or more recognition hypotheses (up to the maximum specified\nin `max_alternatives`).  These alternatives are ordered in terms of\naccuracy, with the top (first) alternative being the most probable, as\nranked by the recognizer.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_SpeechRecognitionAlternative"
+          },
+          "type": "array"
+        },
+        "languageCode": {
+          "description": "Output only. The\n[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the\nlanguage in this result. This language code was detected to have the most\nlikelihood of being spoken in the audio.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_TextAnnotation": {
+      "description": "Annotations related to one detected OCR text snippet. This will contain the\ncorresponding text, confidence value, and frame level information for each\ndetection.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_TextAnnotation",
+      "properties": {
+        "segments": {
+          "description": "All video segments where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_TextSegment"
+          },
+          "type": "array"
+        },
+        "text": {
+          "description": "The detected text.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_TextFrame": {
+      "description": "Video frame level annotation results for text annotation (OCR).\nContains information regarding timestamp and bounding box locations for the\nframes containing detected OCR text snippets.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_TextFrame",
+      "properties": {
+        "rotatedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingPoly",
+          "description": "Bounding polygon of the detected text for this frame."
+        },
+        "timeOffset": {
+          "description": "Timestamp of this frame.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_TextSegment": {
+      "description": "Video segment level annotation results for text detection.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_TextSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence for the track of detected text. It is calculated as the highest\nover all frames where OCR detected text appears.",
+          "format": "float",
+          "type": "number"
+        },
+        "frames": {
+          "description": "Information related to the frames where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_TextFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment",
+          "description": "Video segment where a text snippet was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress": {
+      "description": "Annotation progress for a single video.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress",
+      "properties": {
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "progressPercent": {
+          "description": "Approximate percentage processed thus far. Guaranteed to be\n100 when fully processed.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time when the request was received.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "updateTime": {
+          "description": "Time of the most recent update.",
+          "format": "google-datetime",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults": {
+      "description": "Annotation results for a single video.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults",
+      "properties": {
+        "error": {
+          "$ref": "GoogleRpc_Status",
+          "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail."
+        },
+        "explicitAnnotation": {
+          "$ref": "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentAnnotation",
+          "description": "Explicit content annotation."
+        },
+        "frameLabelAnnotations": {
+          "description": "Label annotations on frame level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "objectAnnotations": {
+          "description": "Annotations for list of objects detected and tracked in video.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation"
+          },
+          "type": "array"
+        },
+        "segmentLabelAnnotations": {
+          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "shotAnnotations": {
+          "description": "Shot annotations. Each shot is represented as a video segment.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment"
+          },
+          "type": "array"
+        },
+        "shotLabelAnnotations": {
+          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "speechTranscriptions": {
+          "description": "Speech transcription.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_SpeechTranscription"
+          },
+          "type": "array"
+        },
+        "textAnnotations": {
+          "description": "OCR text detection and tracking.\nAnnotations for list of detected text snippets. Each will have list of\nframe information associated with it.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p2beta1_TextAnnotation"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_VideoSegment": {
+      "description": "Video segment.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment",
+      "properties": {
+        "endTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "startTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the start of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p2beta1_WordInfo": {
+      "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.",
+      "id": "GoogleCloudVideointelligenceV1p2beta1_WordInfo",
+      "properties": {
+        "confidence": {
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "endTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the end of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "speakerTag": {
+          "description": "Output only. A distinct integer value is assigned for every speaker within\nthe audio. This field specifies which one of those speakers was detected to\nhave spoken this word. Value ranges from 1 up to diarization_speaker_count,\nand is only set if speaker diarization is enabled.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the start of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "word": {
+          "description": "The word corresponding to this set of information.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress": {
+      "description": "Video annotation progress. Included in the `metadata`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress",
+      "properties": {
+        "annotationProgress": {
+          "description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoRequest": {
+      "description": "Video annotation request.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoRequest",
+      "properties": {
+        "features": {
+          "description": "Requested video annotation features.",
+          "enumDescriptions": [
+            "Unspecified.",
+            "Label detection. Detect objects, such as dog or flower.",
+            "Shot change detection.",
+            "Explicit content detection.",
+            "Speech transcription.",
+            "OCR text detection and tracking.",
+            "Object detection and tracking."
+          ],
+          "items": {
+            "enum": [
+              "FEATURE_UNSPECIFIED",
+              "LABEL_DETECTION",
+              "SHOT_CHANGE_DETECTION",
+              "EXPLICIT_CONTENT_DETECTION",
+              "SPEECH_TRANSCRIPTION",
+              "TEXT_DETECTION",
+              "OBJECT_TRACKING"
+            ],
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "inputContent": {
+          "description": "The video data bytes.\nIf unset, the input video(s) should be specified via `input_uri`.\nIf set, `input_uri` should be unset.",
+          "format": "byte",
+          "type": "string"
+        },
+        "inputUri": {
+          "description": "Input video location. Currently, only\n[Google Cloud Storage](https://cloud.google.com/storage/) URIs are\nsupported, which must be specified in the following format:\n`gs://bucket-id/object-id` (other URI formats return\ngoogle.rpc.Code.INVALID_ARGUMENT). For more information, see\n[Request URIs](/storage/docs/reference-uris).\nA video URI may include wildcards in `object-id`, and thus identify\nmultiple videos. Supported wildcards: '*' to match 0 or more characters;\n'?' to match 1 character. If unset, the input video should be embedded\nin the request as `input_content`. If set, `input_content` should be unset.",
+          "type": "string"
+        },
+        "locationId": {
+          "description": "Optional cloud region where annotation should take place. Supported cloud\nregions: `us-east1`, `us-west1`, `europe-west1`, `asia-east1`. If no region\nis specified, a region will be determined based on video file location.",
+          "type": "string"
+        },
+        "outputUri": {
+          "description": "Optional location where the output (in JSON format) should be stored.\nCurrently, only [Google Cloud Storage](https://cloud.google.com/storage/)\nURIs are supported, which must be specified in the following format:\n`gs://bucket-id/object-id` (other URI formats return\ngoogle.rpc.Code.INVALID_ARGUMENT). For more information, see\n[Request URIs](/storage/docs/reference-uris).",
+          "type": "string"
+        },
+        "videoContext": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoContext",
+          "description": "Additional video context and/or feature-specific parameters."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse": {
+      "description": "Video annotation response. Included in the `response`\nfield of the `Operation` returned by the `GetOperation`\ncall of the `google::longrunning::Operations` service.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse",
+      "properties": {
+        "annotationResults": {
+          "description": "Annotation results for all videos specified in `AnnotateVideoRequest`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_Entity": {
+      "description": "Detected entity from video analysis.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_Entity",
+      "properties": {
+        "description": {
+          "description": "Textual description, e.g. `Fixed-gear bicycle`.",
+          "type": "string"
+        },
+        "entityId": {
+          "description": "Opaque entity ID. Some IDs may be available in\n[Google Knowledge Graph Search\nAPI](https://developers.google.com/knowledge-graph/).",
+          "type": "string"
+        },
+        "languageCode": {
+          "description": "Language code for `description` in BCP-47 format.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation": {
+      "description": "Explicit content annotation (based on per-frame visual signals only).\nIf no explicit content has been detected in a frame, no annotations are\npresent for that frame.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
+      "properties": {
+        "frames": {
+          "description": "All video frames where explicit content was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentDetectionConfig": {
+      "description": "Config for EXPLICIT_CONTENT_DETECTION.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentDetectionConfig",
+      "properties": {
+        "model": {
+          "description": "Model to use for explicit content detection.\nSupported values: \"builtin/stable\" (the default if unset) and\n\"builtin/latest\".",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame": {
+      "description": "Video frame level annotation results for explicit content.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame",
+      "properties": {
+        "pornographyLikelihood": {
+          "description": "Likelihood of the pornography content..",
+          "enum": [
+            "LIKELIHOOD_UNSPECIFIED",
+            "VERY_UNLIKELY",
+            "UNLIKELY",
+            "POSSIBLE",
+            "LIKELY",
+            "VERY_LIKELY"
+          ],
+          "enumDescriptions": [
+            "Unspecified likelihood.",
+            "Very unlikely.",
+            "Unlikely.",
+            "Possible.",
+            "Likely.",
+            "Very likely."
+          ],
+          "type": "string"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation": {
+      "description": "Label annotation.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation",
+      "properties": {
+        "categoryEntities": {
+          "description": "Common categories for the detected entity.\nE.g. when the label is `Terrier` the category is likely `dog`. And in some\ncases there might be more than one categories e.g. `Terrier` could also be\na `pet`.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity"
+          },
+          "type": "array"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
+          "description": "Detected entity."
+        },
+        "frames": {
+          "description": "All video frames where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame"
+          },
+          "type": "array"
+        },
+        "segments": {
+          "description": "All video segments where a label was detected.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_LabelDetectionConfig": {
+      "description": "Config for LABEL_DETECTION.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelDetectionConfig",
+      "properties": {
+        "frameConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nframe-level detection. If not set, it is set to 0.4 by default. The valid\nrange for this threshold is [0.1, 0.9]. Any value set outside of this\nrange will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
+        },
+        "labelDetectionMode": {
+          "description": "What labels should be detected with LABEL_DETECTION, in addition to\nvideo-level labels or segment-level labels.\nIf unspecified, defaults to `SHOT_MODE`.",
+          "enum": [
+            "LABEL_DETECTION_MODE_UNSPECIFIED",
+            "SHOT_MODE",
+            "FRAME_MODE",
+            "SHOT_AND_FRAME_MODE"
+          ],
+          "enumDescriptions": [
+            "Unspecified.",
+            "Detect shot-level labels.",
+            "Detect frame-level labels.",
+            "Detect both shot-level and frame-level labels."
+          ],
+          "type": "string"
+        },
+        "model": {
+          "description": "Model to use for label detection.\nSupported values: \"builtin/stable\" (the default if unset) and\n\"builtin/latest\".",
+          "type": "string"
+        },
+        "stationaryCamera": {
+          "description": "Whether the video has been shot from a stationary (i.e. non-moving) camera.\nWhen set to true, might improve detection accuracy for moving objects.\nShould be used with `SHOT_AND_FRAME_MODE` enabled.",
+          "type": "boolean"
+        },
+        "videoConfidenceThreshold": {
+          "description": "The confidence threshold we perform filtering on the labels from\nvideo-level and shot-level detections. If not set, it is set to 0.3 by\ndefault. The valid range for this threshold is [0.1, 0.9]. Any value set\noutside of this range will be clipped.\nNote: for best results please follow the default threshold. We will update\nthe default threshold everytime when we release a new model.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_LabelFrame": {
+      "description": "Video frame level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "timeOffset": {
+          "description": "Time-offset, relative to the beginning of the video, corresponding to the\nvideo frame for this location.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_LabelSegment": {
+      "description": "Video segment level annotation results for label detection.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence that the label is accurate. Range: [0, 1].",
+          "format": "float",
+          "type": "number"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
+          "description": "Video segment where a label was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox": {
+      "description": "Normalized bounding box.\nThe normalized vertex coordinates are relative to the original image.\nRange: [0, 1].",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
+      "properties": {
+        "bottom": {
+          "description": "Bottom Y coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "left": {
+          "description": "Left X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "right": {
+          "description": "Right X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "top": {
+          "description": "Top Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly": {
+      "description": "Normalized bounding polygon for text (that might not be aligned with axis).\nContains list of the corner points in clockwise order starting from\ntop-left corner. For example, for a rectangular bounding box:\nWhen the text is horizontal it might look like:\n        0----1\n        |    |\n        3----2\n\nWhen it's clockwise rotated 180 degrees around the top-left corner it\nbecomes:\n        2----3\n        |    |\n        1----0\n\nand the vertex order will still be (0, 1, 2, 3). Note that values can be less\nthan 0, or greater than 1 due to trignometric calculations for location of\nthe box.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
+      "properties": {
+        "vertices": {
+          "description": "Normalized vertices of the bounding polygon.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex": {
+      "description": "A vertex represents a 2D point in the image.\nNOTE: the normalized vertex coordinates are relative to the original image\nand range from 0 to 1.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex",
+      "properties": {
+        "x": {
+          "description": "X coordinate.",
+          "format": "float",
+          "type": "number"
+        },
+        "y": {
+          "description": "Y coordinate.",
+          "format": "float",
+          "type": "number"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation": {
+      "description": "Annotations corresponding to one tracked object.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation",
+      "properties": {
+        "confidence": {
+          "description": "Object category's labeling confidence of this track.",
+          "format": "float",
+          "type": "number"
+        },
+        "entity": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity",
+          "description": "Entity to specify the object category that this track is labeled as."
+        },
+        "frames": {
+          "description": "Information corresponding to all frames where this object track appears.\nNon-streaming batch mode: it may be one or multiple ObjectTrackingFrame\nmessages in frames.\nStreaming mode: it can only be one ObjectTrackingFrame message in frames.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
+          "description": "Non-streaming batch mode ONLY.\nEach object track corresponds to one video segment where it appears."
+        },
+        "trackId": {
+          "description": "Streaming mode ONLY.\nIn streaming mode, we do not know the end time of a tracked object\nbefore it is completed. Hence, there is no VideoSegment info returned.\nInstead, we provide a unique identifiable integer track_id so that\nthe customers can correlate the results of the ongoing\nObjectTrackAnnotation of the same track_id over time.",
+          "format": "int64",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame": {
+      "description": "Video frame level annotations for object detection and tracking. This field\nstores per frame location, time offset, and confidence.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame",
+      "properties": {
+        "normalizedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox",
+          "description": "The normalized bounding box location of this object track for the frame."
+        },
+        "timeOffset": {
+          "description": "The timestamp of the frame in microseconds.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_ShotChangeDetectionConfig": {
+      "description": "Config for SHOT_CHANGE_DETECTION.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_ShotChangeDetectionConfig",
+      "properties": {
+        "model": {
+          "description": "Model to use for shot change detection.\nSupported values: \"builtin/stable\" (the default if unset) and\n\"builtin/latest\".",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechContext": {
+      "description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases\nin the results.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechContext",
+      "properties": {
+        "phrases": {
+          "description": "*Optional* A list of strings containing words and phrases \"hints\" so that\nthe speech recognition is more likely to recognize them. This can be used\nto improve the accuracy for specific words and phrases, for example, if\nspecific commands are typically spoken by the user. This can also be used\nto add additional words to the vocabulary of the recognizer. See\n[usage limits](https://cloud.google.com/speech/limits#content).",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative": {
+      "description": "Alternative hypotheses (a.k.a. n-best list).",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative",
+      "properties": {
+        "confidence": {
+          "description": "The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is typically provided only for the top hypothesis, and\nonly for `is_final=true` results. Clients should not rely on the\n`confidence` field as it is not guaranteed to be accurate or consistent.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "transcript": {
+          "description": "Transcript text representing the words that the user spoke.",
+          "type": "string"
+        },
+        "words": {
+          "description": "A list of word-specific information for each recognized word.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_WordInfo"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription": {
+      "description": "A speech recognition result corresponding to a portion of the audio.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription",
+      "properties": {
+        "alternatives": {
+          "description": "May contain one or more recognition hypotheses (up to the maximum specified\nin `max_alternatives`).  These alternatives are ordered in terms of\naccuracy, with the top (first) alternative being the most probable, as\nranked by the recognizer.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative"
+          },
+          "type": "array"
+        },
+        "languageCode": {
+          "description": "Output only. The\n[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the\nlanguage in this result. This language code was detected to have the most\nlikelihood of being spoken in the audio.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscriptionConfig": {
+      "description": "Config for SPEECH_TRANSCRIPTION.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscriptionConfig",
+      "properties": {
+        "audioTracks": {
+          "description": "*Optional* For file formats, such as MXF or MKV, supporting multiple audio\ntracks, specify up to two tracks. Default: track 0.",
+          "items": {
+            "format": "int32",
+            "type": "integer"
+          },
+          "type": "array"
+        },
+        "diarizationSpeakerCount": {
+          "description": "*Optional*\nIf set, specifies the estimated number of speakers in the conversation.\nIf not set, defaults to '2'.\nIgnored unless enable_speaker_diarization is set to true.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "enableAutomaticPunctuation": {
+          "description": "*Optional* If 'true', adds punctuation to recognition result hypotheses.\nThis feature is only available in select languages. Setting this for\nrequests in other languages has no effect at all. The default 'false' value\ndoes not add punctuation to result hypotheses. NOTE: \"This is currently\noffered as an experimental service, complimentary to all users. In the\nfuture this may be exclusively available as a premium feature.\"",
+          "type": "boolean"
+        },
+        "enableSpeakerDiarization": {
+          "description": "*Optional* If 'true', enables speaker detection for each recognized word in\nthe top alternative of the recognition result using a speaker_tag provided\nin the WordInfo.\nNote: When this is true, we send all the words from the beginning of the\naudio for the top alternative in every consecutive responses.\nThis is done in order to improve our speaker tags as our models learn to\nidentify the speakers in the conversation over time.",
+          "type": "boolean"
+        },
+        "enableWordConfidence": {
+          "description": "*Optional* If `true`, the top result includes a list of words and the\nconfidence for those words. If `false`, no word-level confidence\ninformation is returned. The default is `false`.",
+          "type": "boolean"
+        },
+        "filterProfanity": {
+          "description": "*Optional* If set to `true`, the server will attempt to filter out\nprofanities, replacing all but the initial character in each filtered word\nwith asterisks, e.g. \"f***\". If set to `false` or omitted, profanities\nwon't be filtered out.",
+          "type": "boolean"
+        },
+        "languageCode": {
+          "description": "*Required* The language of the supplied audio as a\n[BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag.\nExample: \"en-US\".\nSee [Language Support](https://cloud.google.com/speech/docs/languages)\nfor a list of the currently supported language codes.",
+          "type": "string"
+        },
+        "maxAlternatives": {
+          "description": "*Optional* Maximum number of recognition hypotheses to be returned.\nSpecifically, the maximum number of `SpeechRecognitionAlternative` messages\nwithin each `SpeechTranscription`. The server may return fewer than\n`max_alternatives`. Valid values are `0`-`30`. A value of `0` or `1` will\nreturn a maximum of one. If omitted, will return a maximum of one.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "speechContexts": {
+          "description": "*Optional* A means to provide context to assist the speech recognition.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechContext"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse": {
+      "description": "`StreamingAnnotateVideoResponse` is the only message returned to the client\nby `StreamingAnnotateVideo`. A series of zero or more\n`StreamingAnnotateVideoResponse` messages are streamed back to the client.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse",
+      "properties": {
+        "annotationResults": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
+          "description": "Streaming annotation results."
+        },
+        "annotationResultsUri": {
+          "description": "GCS URI that stores annotation results of one streaming session.\nIt is a directory that can hold multiple files in JSON format.\nExample uri format:\ngs://bucket_id/object_id/cloud_project_name-session_id",
+          "type": "string"
+        },
+        "error": {
+          "$ref": "GoogleRpc_Status",
+          "description": "If set, returns a google.rpc.Status message that\nspecifies the error for the operation."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults": {
+      "description": "Streaming annotation results corresponding to a portion of the video\nthat is currently being processed.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults",
+      "properties": {
+        "explicitAnnotation": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
+          "description": "Explicit content annotation results."
+        },
+        "labelAnnotations": {
+          "description": "Label annotation results.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "objectAnnotations": {
+          "description": "Object tracking results.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
+          },
+          "type": "array"
+        },
+        "shotAnnotations": {
+          "description": "Shot annotation results. Each shot is represented as a video segment.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation": {
+      "description": "Annotations related to one detected OCR text snippet. This will contain the\ncorresponding text, confidence value, and frame level information for each\ndetection.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation",
+      "properties": {
+        "segments": {
+          "description": "All video segments where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextSegment"
+          },
+          "type": "array"
+        },
+        "text": {
+          "description": "The detected text.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_TextDetectionConfig": {
+      "description": "Config for TEXT_DETECTION.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextDetectionConfig",
+      "properties": {
+        "languageHints": {
+          "description": "Language hint can be specified if the language to be detected is known a\npriori. It can increase the accuracy of the detection. Language hint must\nbe language code in BCP-47 format.\n\nAutomatic language detection is performed if no hint is provided.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_TextFrame": {
+      "description": "Video frame level annotation results for text annotation (OCR).\nContains information regarding timestamp and bounding box locations for the\nframes containing detected OCR text snippets.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextFrame",
+      "properties": {
+        "rotatedBoundingBox": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly",
+          "description": "Bounding polygon of the detected text for this frame."
+        },
+        "timeOffset": {
+          "description": "Timestamp of this frame.",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_TextSegment": {
+      "description": "Video segment level annotation results for text detection.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_TextSegment",
+      "properties": {
+        "confidence": {
+          "description": "Confidence for the track of detected text. It is calculated as the highest\nover all frames where OCR detected text appears.",
+          "format": "float",
+          "type": "number"
+        },
+        "frames": {
+          "description": "Information related to the frames where OCR detected text appears.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextFrame"
+          },
+          "type": "array"
+        },
+        "segment": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
+          "description": "Video segment where a text snippet was detected."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress": {
+      "description": "Annotation progress for a single video.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress",
+      "properties": {
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "progressPercent": {
+          "description": "Approximate percentage processed thus far. Guaranteed to be\n100 when fully processed.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time when the request was received.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "updateTime": {
+          "description": "Time of the most recent update.",
+          "format": "google-datetime",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults": {
+      "description": "Annotation results for a single video.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults",
+      "properties": {
+        "error": {
+          "$ref": "GoogleRpc_Status",
+          "description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest`\nsome videos may succeed and some may fail."
+        },
+        "explicitAnnotation": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation",
+          "description": "Explicit content annotation."
+        },
+        "frameLabelAnnotations": {
+          "description": "Label annotations on frame level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "inputUri": {
+          "description": "Video file location in\n[Google Cloud Storage](https://cloud.google.com/storage/).",
+          "type": "string"
+        },
+        "objectAnnotations": {
+          "description": "Annotations for list of objects detected and tracked in video.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation"
+          },
+          "type": "array"
+        },
+        "segmentLabelAnnotations": {
+          "description": "Label annotations on video level or user specified segment level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "shotAnnotations": {
+          "description": "Shot annotations. Each shot is represented as a video segment.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
+          },
+          "type": "array"
+        },
+        "shotLabelAnnotations": {
+          "description": "Label annotations on shot level.\nThere is exactly one element for each unique label.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation"
+          },
+          "type": "array"
+        },
+        "speechTranscriptions": {
+          "description": "Speech transcription.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription"
+          },
+          "type": "array"
+        },
+        "textAnnotations": {
+          "description": "OCR text detection and tracking.\nAnnotations for list of detected text snippets. Each will have list of\nframe information associated with it.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_VideoContext": {
+      "description": "Video context and/or feature-specific parameters.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoContext",
+      "properties": {
+        "explicitContentDetectionConfig": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentDetectionConfig",
+          "description": "Config for EXPLICIT_CONTENT_DETECTION."
+        },
+        "labelDetectionConfig": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelDetectionConfig",
+          "description": "Config for LABEL_DETECTION."
+        },
+        "segments": {
+          "description": "Video segments to annotate. The segments may overlap and are not required\nto be contiguous or span the whole video. If unspecified, each video is\ntreated as a single segment.",
+          "items": {
+            "$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment"
+          },
+          "type": "array"
+        },
+        "shotChangeDetectionConfig": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_ShotChangeDetectionConfig",
+          "description": "Config for SHOT_CHANGE_DETECTION."
+        },
+        "speechTranscriptionConfig": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscriptionConfig",
+          "description": "Config for SPEECH_TRANSCRIPTION."
+        },
+        "textDetectionConfig": {
+          "$ref": "GoogleCloudVideointelligenceV1p3beta1_TextDetectionConfig",
+          "description": "Config for TEXT_DETECTION."
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_VideoSegment": {
+      "description": "Video segment.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment",
+      "properties": {
+        "endTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the end of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "startTimeOffset": {
+          "description": "Time-offset, relative to the beginning of the video,\ncorresponding to the start of the segment (inclusive).",
+          "format": "google-duration",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleCloudVideointelligenceV1p3beta1_WordInfo": {
+      "description": "Word-specific information for recognized words. Word information is only\nincluded in the response when certain request parameters are set, such\nas `enable_word_time_offsets`.",
+      "id": "GoogleCloudVideointelligenceV1p3beta1_WordInfo",
+      "properties": {
+        "confidence": {
+          "description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number\nindicates an estimated greater likelihood that the recognized words are\ncorrect. This field is set only for the top alternative.\nThis field is not guaranteed to be accurate and users should not rely on it\nto be always provided.\nThe default of 0.0 is a sentinel value indicating `confidence` was not set.",
+          "format": "float",
+          "type": "number"
+        },
+        "endTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the end of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "speakerTag": {
+          "description": "Output only. A distinct integer value is assigned for every speaker within\nthe audio. This field specifies which one of those speakers was detected to\nhave spoken this word. Value ranges from 1 up to diarization_speaker_count,\nand is only set if speaker diarization is enabled.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "startTime": {
+          "description": "Time offset relative to the beginning of the audio, and\ncorresponding to the start of the spoken word. This field is only set if\n`enable_word_time_offsets=true` and only in the top hypothesis. This is an\nexperimental feature and the accuracy of the time offset can vary.",
+          "format": "google-duration",
+          "type": "string"
+        },
+        "word": {
+          "description": "The word corresponding to this set of information.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleLongrunning_Operation": {
+      "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
+      "id": "GoogleLongrunning_Operation",
+      "properties": {
+        "done": {
+          "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
+          "type": "boolean"
+        },
+        "error": {
+          "$ref": "GoogleRpc_Status",
+          "description": "The error result of the operation in case of failure or cancellation."
+        },
+        "metadata": {
+          "additionalProperties": {
+            "description": "Properties of the object. Contains field @type with type URL.",
+            "type": "any"
+          },
+          "description": "Service-specific metadata associated with the operation.  It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata.  Any method that returns a\nlong-running operation should document the metadata type, if any.",
+          "type": "object"
+        },
+        "name": {
+          "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.",
+          "type": "string"
+        },
+        "response": {
+          "additionalProperties": {
+            "description": "Properties of the object. Contains field @type with type URL.",
+            "type": "any"
+          },
+          "description": "The normal response of the operation in case of success.  If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`.  If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource.  For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name.  For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.",
+          "type": "object"
+        }
+      },
+      "type": "object"
+    },
+    "GoogleRpc_Status": {
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "id": "GoogleRpc_Status",
+      "properties": {
+        "code": {
+          "description": "The status code, which should be an enum value of google.rpc.Code.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "details": {
+          "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use.",
+          "items": {
+            "additionalProperties": {
+              "description": "Properties of the object. Contains field @type with type URL.",
+              "type": "any"
+            },
+            "type": "object"
+          },
+          "type": "array"
+        },
+        "message": {
+          "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    }
+  },
+  "servicePath": "",
+  "title": "Cloud Video Intelligence API",
+  "version": "v1p3beta1",
+  "version_module": true
+}
\ No newline at end of file
diff --git a/videointelligence/v1p3beta1/videointelligence-gen.go b/videointelligence/v1p3beta1/videointelligence-gen.go
new file mode 100644
index 0000000..61941d8
--- /dev/null
+++ b/videointelligence/v1p3beta1/videointelligence-gen.go
@@ -0,0 +1,6272 @@
+// Copyright 2019 Google LLC.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Code generated file. DO NOT EDIT.
+
+// Package videointelligence provides access to the Cloud Video Intelligence API.
+//
+// This package is DEPRECATED. Use package cloud.google.com/go/videointelligence/apiv1 instead.
+//
+// For product documentation, see: https://cloud.google.com/video-intelligence/docs/
+//
+// Creating a client
+//
+// Usage example:
+//
+//   import "google.golang.org/api/videointelligence/v1p3beta1"
+//   ...
+//   ctx := context.Background()
+//   videointelligenceService, err := videointelligence.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   videointelligenceService, err := videointelligence.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
+package videointelligence // import "google.golang.org/api/videointelligence/v1p3beta1"
+
+import (
+	"bytes"
+	"context"
+	"encoding/json"
+	"errors"
+	"fmt"
+	"io"
+	"net/http"
+	"net/url"
+	"strconv"
+	"strings"
+
+	gensupport "google.golang.org/api/gensupport"
+	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
+)
+
+// Always reference these packages, just in case the auto-generated code
+// below doesn't.
+var _ = bytes.NewBuffer
+var _ = strconv.Itoa
+var _ = fmt.Sprintf
+var _ = json.NewDecoder
+var _ = io.Copy
+var _ = url.Parse
+var _ = gensupport.MarshalJSON
+var _ = googleapi.Version
+var _ = errors.New
+var _ = strings.Replace
+var _ = context.Canceled
+
+const apiId = "videointelligence:v1p3beta1"
+const apiName = "videointelligence"
+const apiVersion = "v1p3beta1"
+const basePath = "https://videointelligence.googleapis.com/"
+
+// 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"
+)
+
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
+func New(client *http.Client) (*Service, error) {
+	if client == nil {
+		return nil, errors.New("client is nil")
+	}
+	s := &Service{client: client, BasePath: basePath}
+	s.Videos = NewVideosService(s)
+	return s, nil
+}
+
+type Service struct {
+	client    *http.Client
+	BasePath  string // API endpoint base URL
+	UserAgent string // optional additional User-Agent fragment
+
+	Videos *VideosService
+}
+
+func (s *Service) userAgent() string {
+	if s.UserAgent == "" {
+		return googleapi.UserAgent
+	}
+	return googleapi.UserAgent + " " + s.UserAgent
+}
+
+func NewVideosService(s *Service) *VideosService {
+	rs := &VideosService{s: s}
+	return rs
+}
+
+type VideosService struct {
+	s *Service
+}
+
+// GoogleCloudVideointelligenceV1AnnotateVideoProgress: Video annotation
+// progress. Included in the `metadata`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1AnnotateVideoProgress struct {
+	// AnnotationProgress: Progress metadata for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationProgress []*GoogleCloudVideointelligenceV1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationProgress") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1AnnotateVideoProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1AnnotateVideoResponse: Video annotation
+// response. Included in the `response`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1AnnotateVideoResponse struct {
+	// AnnotationResults: Annotation results for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationResults []*GoogleCloudVideointelligenceV1VideoAnnotationResults `json:"annotationResults,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationResults") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1AnnotateVideoResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1Entity: Detected entity from video
+// analysis.
+type GoogleCloudVideointelligenceV1Entity struct {
+	// Description: Textual description, e.g. `Fixed-gear bicycle`.
+	Description string `json:"description,omitempty"`
+
+	// EntityId: Opaque entity ID. Some IDs may be available in
+	// [Google Knowledge Graph
+	// Search
+	// API](https://developers.google.com/knowledge-graph/).
+	EntityId string `json:"entityId,omitempty"`
+
+	// LanguageCode: Language code for `description` in BCP-47 format.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// 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:"-"`
+
+	// NullFields is a list of field names (e.g. "Description") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1Entity) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1Entity
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1ExplicitContentAnnotation: Explicit
+// content annotation (based on per-frame visual signals only).
+// If no explicit content has been detected in a frame, no annotations
+// are
+// present for that frame.
+type GoogleCloudVideointelligenceV1ExplicitContentAnnotation struct {
+	// Frames: All video frames where explicit content was detected.
+	Frames []*GoogleCloudVideointelligenceV1ExplicitContentFrame `json:"frames,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Frames") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Frames") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1ExplicitContentAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1ExplicitContentFrame: Video frame level
+// annotation results for explicit content.
+type GoogleCloudVideointelligenceV1ExplicitContentFrame struct {
+	// PornographyLikelihood: Likelihood of the pornography content..
+	//
+	// Possible values:
+	//   "LIKELIHOOD_UNSPECIFIED" - Unspecified likelihood.
+	//   "VERY_UNLIKELY" - Very unlikely.
+	//   "UNLIKELY" - Unlikely.
+	//   "POSSIBLE" - Possible.
+	//   "LIKELY" - Likely.
+	//   "VERY_LIKELY" - Very likely.
+	PornographyLikelihood string `json:"pornographyLikelihood,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "PornographyLikelihood") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "PornographyLikelihood") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1ExplicitContentFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1LabelAnnotation: Label annotation.
+type GoogleCloudVideointelligenceV1LabelAnnotation struct {
+	// CategoryEntities: Common categories for the detected entity.
+	// E.g. when the label is `Terrier` the category is likely `dog`. And in
+	// some
+	// cases there might be more than one categories e.g. `Terrier` could
+	// also be
+	// a `pet`.
+	CategoryEntities []*GoogleCloudVideointelligenceV1Entity `json:"categoryEntities,omitempty"`
+
+	// Entity: Detected entity.
+	Entity *GoogleCloudVideointelligenceV1Entity `json:"entity,omitempty"`
+
+	// Frames: All video frames where a label was detected.
+	Frames []*GoogleCloudVideointelligenceV1LabelFrame `json:"frames,omitempty"`
+
+	// Segments: All video segments where a label was detected.
+	Segments []*GoogleCloudVideointelligenceV1LabelSegment `json:"segments,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "CategoryEntities") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "CategoryEntities") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1LabelAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1LabelAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1LabelFrame: Video frame level
+// annotation results for label detection.
+type GoogleCloudVideointelligenceV1LabelFrame struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1LabelFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1LabelFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1LabelFrame) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1LabelFrame
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1LabelSegment: Video segment level
+// annotation results for label detection.
+type GoogleCloudVideointelligenceV1LabelSegment struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Segment: Video segment where a label was detected.
+	Segment *GoogleCloudVideointelligenceV1VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1LabelSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1LabelSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1LabelSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1LabelSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1NormalizedBoundingBox: Normalized
+// bounding box.
+// The normalized vertex coordinates are relative to the original
+// image.
+// Range: [0, 1].
+type GoogleCloudVideointelligenceV1NormalizedBoundingBox struct {
+	// Bottom: Bottom Y coordinate.
+	Bottom float64 `json:"bottom,omitempty"`
+
+	// Left: Left X coordinate.
+	Left float64 `json:"left,omitempty"`
+
+	// Right: Right X coordinate.
+	Right float64 `json:"right,omitempty"`
+
+	// Top: Top Y coordinate.
+	Top float64 `json:"top,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Bottom") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Bottom") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1NormalizedBoundingBox
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1NormalizedBoundingBox
+	var s1 struct {
+		Bottom gensupport.JSONFloat64 `json:"bottom"`
+		Left   gensupport.JSONFloat64 `json:"left"`
+		Right  gensupport.JSONFloat64 `json:"right"`
+		Top    gensupport.JSONFloat64 `json:"top"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Bottom = float64(s1.Bottom)
+	s.Left = float64(s1.Left)
+	s.Right = float64(s1.Right)
+	s.Top = float64(s1.Top)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1NormalizedBoundingPoly: Normalized
+// bounding polygon for text (that might not be aligned with
+// axis).
+// Contains list of the corner points in clockwise order starting
+// from
+// top-left corner. For example, for a rectangular bounding box:
+// When the text is horizontal it might look like:
+//         0----1
+//         |    |
+//         3----2
+//
+// When it's clockwise rotated 180 degrees around the top-left corner
+// it
+// becomes:
+//         2----3
+//         |    |
+//         1----0
+//
+// and the vertex order will still be (0, 1, 2, 3). Note that values can
+// be less
+// than 0, or greater than 1 due to trignometric calculations for
+// location of
+// the box.
+type GoogleCloudVideointelligenceV1NormalizedBoundingPoly struct {
+	// Vertices: Normalized vertices of the bounding polygon.
+	Vertices []*GoogleCloudVideointelligenceV1NormalizedVertex `json:"vertices,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Vertices") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Vertices") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1NormalizedBoundingPoly
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1NormalizedVertex: A vertex represents a
+// 2D point in the image.
+// NOTE: the normalized vertex coordinates are relative to the original
+// image
+// and range from 0 to 1.
+type GoogleCloudVideointelligenceV1NormalizedVertex struct {
+	// X: X coordinate.
+	X float64 `json:"x,omitempty"`
+
+	// Y: Y coordinate.
+	Y float64 `json:"y,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "X") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "X") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1NormalizedVertex) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1NormalizedVertex
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1NormalizedVertex) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1NormalizedVertex
+	var s1 struct {
+		X gensupport.JSONFloat64 `json:"x"`
+		Y gensupport.JSONFloat64 `json:"y"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.X = float64(s1.X)
+	s.Y = float64(s1.Y)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1ObjectTrackingAnnotation: Annotations
+// corresponding to one tracked object.
+type GoogleCloudVideointelligenceV1ObjectTrackingAnnotation struct {
+	// Confidence: Object category's labeling confidence of this track.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Entity: Entity to specify the object category that this track is
+	// labeled as.
+	Entity *GoogleCloudVideointelligenceV1Entity `json:"entity,omitempty"`
+
+	// Frames: Information corresponding to all frames where this object
+	// track appears.
+	// Non-streaming batch mode: it may be one or multiple
+	// ObjectTrackingFrame
+	// messages in frames.
+	// Streaming mode: it can only be one ObjectTrackingFrame message in
+	// frames.
+	Frames []*GoogleCloudVideointelligenceV1ObjectTrackingFrame `json:"frames,omitempty"`
+
+	// Segment: Non-streaming batch mode ONLY.
+	// Each object track corresponds to one video segment where it appears.
+	Segment *GoogleCloudVideointelligenceV1VideoSegment `json:"segment,omitempty"`
+
+	// TrackId: Streaming mode ONLY.
+	// In streaming mode, we do not know the end time of a tracked
+	// object
+	// before it is completed. Hence, there is no VideoSegment info
+	// returned.
+	// Instead, we provide a unique identifiable integer track_id so
+	// that
+	// the customers can correlate the results of the
+	// ongoing
+	// ObjectTrackAnnotation of the same track_id over time.
+	TrackId int64 `json:"trackId,omitempty,string"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1ObjectTrackingAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1ObjectTrackingAnnotation
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1ObjectTrackingFrame: Video frame level
+// annotations for object detection and tracking. This field
+// stores per frame location, time offset, and confidence.
+type GoogleCloudVideointelligenceV1ObjectTrackingFrame struct {
+	// NormalizedBoundingBox: The normalized bounding box location of this
+	// object track for the frame.
+	NormalizedBoundingBox *GoogleCloudVideointelligenceV1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
+
+	// TimeOffset: The timestamp of the frame in microseconds.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "NormalizedBoundingBox") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "NormalizedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1ObjectTrackingFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1SpeechRecognitionAlternative:
+// Alternative hypotheses (a.k.a. n-best list).
+type GoogleCloudVideointelligenceV1SpeechRecognitionAlternative struct {
+	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
+	// number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is typically provided only for the top
+	// hypothesis, and
+	// only for `is_final=true` results. Clients should not rely on
+	// the
+	// `confidence` field as it is not guaranteed to be accurate or
+	// consistent.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Transcript: Transcript text representing the words that the user
+	// spoke.
+	Transcript string `json:"transcript,omitempty"`
+
+	// Words: A list of word-specific information for each recognized word.
+	Words []*GoogleCloudVideointelligenceV1WordInfo `json:"words,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1SpeechRecognitionAlternative
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1SpeechRecognitionAlternative
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1SpeechTranscription: A speech
+// recognition result corresponding to a portion of the audio.
+type GoogleCloudVideointelligenceV1SpeechTranscription struct {
+	// Alternatives: May contain one or more recognition hypotheses (up to
+	// the maximum specified
+	// in `max_alternatives`).  These alternatives are ordered in terms
+	// of
+	// accuracy, with the top (first) alternative being the most probable,
+	// as
+	// ranked by the recognizer.
+	Alternatives []*GoogleCloudVideointelligenceV1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
+
+	// LanguageCode: Output only.
+	// The
+	// [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag
+	// of the
+	// language in this result. This language code was detected to have the
+	// most
+	// likelihood of being spoken in the audio.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Alternatives") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Alternatives") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1SpeechTranscription) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1SpeechTranscription
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1TextAnnotation: Annotations related to
+// one detected OCR text snippet. This will contain the
+// corresponding text, confidence value, and frame level information for
+// each
+// detection.
+type GoogleCloudVideointelligenceV1TextAnnotation struct {
+	// Segments: All video segments where OCR detected text appears.
+	Segments []*GoogleCloudVideointelligenceV1TextSegment `json:"segments,omitempty"`
+
+	// Text: The detected text.
+	Text string `json:"text,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Segments") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Segments") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1TextAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1TextAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1TextFrame: Video frame level annotation
+// results for text annotation (OCR).
+// Contains information regarding timestamp and bounding box locations
+// for the
+// frames containing detected OCR text snippets.
+type GoogleCloudVideointelligenceV1TextFrame struct {
+	// RotatedBoundingBox: Bounding polygon of the detected text for this
+	// frame.
+	RotatedBoundingBox *GoogleCloudVideointelligenceV1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
+
+	// TimeOffset: Timestamp of this frame.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "RotatedBoundingBox")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "RotatedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1TextFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1TextFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1TextSegment: Video segment level
+// annotation results for text detection.
+type GoogleCloudVideointelligenceV1TextSegment struct {
+	// Confidence: Confidence for the track of detected text. It is
+	// calculated as the highest
+	// over all frames where OCR detected text appears.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Frames: Information related to the frames where OCR detected text
+	// appears.
+	Frames []*GoogleCloudVideointelligenceV1TextFrame `json:"frames,omitempty"`
+
+	// Segment: Video segment where a text snippet was detected.
+	Segment *GoogleCloudVideointelligenceV1VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1TextSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1TextSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1TextSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1TextSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1VideoAnnotationProgress: Annotation
+// progress for a single video.
+type GoogleCloudVideointelligenceV1VideoAnnotationProgress struct {
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ProgressPercent: Approximate percentage processed thus far.
+	// Guaranteed to be
+	// 100 when fully processed.
+	ProgressPercent int64 `json:"progressPercent,omitempty"`
+
+	// StartTime: Time when the request was received.
+	StartTime string `json:"startTime,omitempty"`
+
+	// UpdateTime: Time of the most recent update.
+	UpdateTime string `json:"updateTime,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "InputUri") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "InputUri") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1VideoAnnotationProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1VideoAnnotationResults: Annotation
+// results for a single video.
+type GoogleCloudVideointelligenceV1VideoAnnotationResults struct {
+	// Error: If set, indicates an error. Note that for a single
+	// `AnnotateVideoRequest`
+	// some videos may succeed and some may fail.
+	Error *GoogleRpcStatus `json:"error,omitempty"`
+
+	// ExplicitAnnotation: Explicit content annotation.
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+
+	// FrameLabelAnnotations: Label annotations on frame level.
+	// There is exactly one element for each unique label.
+	FrameLabelAnnotations []*GoogleCloudVideointelligenceV1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
+
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ObjectAnnotations: Annotations for list of objects detected and
+	// tracked in video.
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+
+	// SegmentLabelAnnotations: Label annotations on video level or user
+	// specified segment level.
+	// There is exactly one element for each unique label.
+	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
+
+	// ShotAnnotations: Shot annotations. Each shot is represented as a
+	// video segment.
+	ShotAnnotations []*GoogleCloudVideointelligenceV1VideoSegment `json:"shotAnnotations,omitempty"`
+
+	// ShotLabelAnnotations: Label annotations on shot level.
+	// There is exactly one element for each unique label.
+	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
+
+	// SpeechTranscriptions: Speech transcription.
+	SpeechTranscriptions []*GoogleCloudVideointelligenceV1SpeechTranscription `json:"speechTranscriptions,omitempty"`
+
+	// TextAnnotations: OCR text detection and tracking.
+	// Annotations for list of detected text snippets. Each will have list
+	// of
+	// frame information associated with it.
+	TextAnnotations []*GoogleCloudVideointelligenceV1TextAnnotation `json:"textAnnotations,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Error") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Error") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1VideoAnnotationResults
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1VideoSegment: Video segment.
+type GoogleCloudVideointelligenceV1VideoSegment struct {
+	// EndTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the end of the segment (inclusive).
+	EndTimeOffset string `json:"endTimeOffset,omitempty"`
+
+	// StartTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the start of the segment (inclusive).
+	StartTimeOffset string `json:"startTimeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "EndTimeOffset") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "EndTimeOffset") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1VideoSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1VideoSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1WordInfo: Word-specific information for
+// recognized words. Word information is only
+// included in the response when certain request parameters are set,
+// such
+// as `enable_word_time_offsets`.
+type GoogleCloudVideointelligenceV1WordInfo struct {
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// EndTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the end of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	EndTime string `json:"endTime,omitempty"`
+
+	// SpeakerTag: Output only. A distinct integer value is assigned for
+	// every speaker within
+	// the audio. This field specifies which one of those speakers was
+	// detected to
+	// have spoken this word. Value ranges from 1 up to
+	// diarization_speaker_count,
+	// and is only set if speaker diarization is enabled.
+	SpeakerTag int64 `json:"speakerTag,omitempty"`
+
+	// StartTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the start of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	StartTime string `json:"startTime,omitempty"`
+
+	// Word: The word corresponding to this set of information.
+	Word string `json:"word,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1WordInfo) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1WordInfo
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1WordInfo) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1WordInfo
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1beta2AnnotateVideoProgress: Video
+// annotation progress. Included in the `metadata`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1beta2AnnotateVideoProgress struct {
+	// AnnotationProgress: Progress metadata for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationProgress []*GoogleCloudVideointelligenceV1beta2VideoAnnotationProgress `json:"annotationProgress,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationProgress") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2AnnotateVideoProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2AnnotateVideoResponse: Video
+// annotation response. Included in the `response`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1beta2AnnotateVideoResponse struct {
+	// AnnotationResults: Annotation results for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationResults []*GoogleCloudVideointelligenceV1beta2VideoAnnotationResults `json:"annotationResults,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationResults") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2AnnotateVideoResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2Entity: Detected entity from video
+// analysis.
+type GoogleCloudVideointelligenceV1beta2Entity struct {
+	// Description: Textual description, e.g. `Fixed-gear bicycle`.
+	Description string `json:"description,omitempty"`
+
+	// EntityId: Opaque entity ID. Some IDs may be available in
+	// [Google Knowledge Graph
+	// Search
+	// API](https://developers.google.com/knowledge-graph/).
+	EntityId string `json:"entityId,omitempty"`
+
+	// LanguageCode: Language code for `description` in BCP-47 format.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// 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:"-"`
+
+	// NullFields is a list of field names (e.g. "Description") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2Entity) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2Entity
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2ExplicitContentAnnotation:
+// Explicit content annotation (based on per-frame visual signals
+// only).
+// If no explicit content has been detected in a frame, no annotations
+// are
+// present for that frame.
+type GoogleCloudVideointelligenceV1beta2ExplicitContentAnnotation struct {
+	// Frames: All video frames where explicit content was detected.
+	Frames []*GoogleCloudVideointelligenceV1beta2ExplicitContentFrame `json:"frames,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Frames") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Frames") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2ExplicitContentAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2ExplicitContentFrame: Video frame
+// level annotation results for explicit content.
+type GoogleCloudVideointelligenceV1beta2ExplicitContentFrame struct {
+	// PornographyLikelihood: Likelihood of the pornography content..
+	//
+	// Possible values:
+	//   "LIKELIHOOD_UNSPECIFIED" - Unspecified likelihood.
+	//   "VERY_UNLIKELY" - Very unlikely.
+	//   "UNLIKELY" - Unlikely.
+	//   "POSSIBLE" - Possible.
+	//   "LIKELY" - Likely.
+	//   "VERY_LIKELY" - Very likely.
+	PornographyLikelihood string `json:"pornographyLikelihood,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "PornographyLikelihood") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "PornographyLikelihood") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2ExplicitContentFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2ExplicitContentFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2LabelAnnotation: Label annotation.
+type GoogleCloudVideointelligenceV1beta2LabelAnnotation struct {
+	// CategoryEntities: Common categories for the detected entity.
+	// E.g. when the label is `Terrier` the category is likely `dog`. And in
+	// some
+	// cases there might be more than one categories e.g. `Terrier` could
+	// also be
+	// a `pet`.
+	CategoryEntities []*GoogleCloudVideointelligenceV1beta2Entity `json:"categoryEntities,omitempty"`
+
+	// Entity: Detected entity.
+	Entity *GoogleCloudVideointelligenceV1beta2Entity `json:"entity,omitempty"`
+
+	// Frames: All video frames where a label was detected.
+	Frames []*GoogleCloudVideointelligenceV1beta2LabelFrame `json:"frames,omitempty"`
+
+	// Segments: All video segments where a label was detected.
+	Segments []*GoogleCloudVideointelligenceV1beta2LabelSegment `json:"segments,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "CategoryEntities") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "CategoryEntities") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2LabelAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2LabelAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2LabelFrame: Video frame level
+// annotation results for label detection.
+type GoogleCloudVideointelligenceV1beta2LabelFrame struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2LabelFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2LabelFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2LabelFrame) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1beta2LabelFrame
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1beta2LabelSegment: Video segment level
+// annotation results for label detection.
+type GoogleCloudVideointelligenceV1beta2LabelSegment struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Segment: Video segment where a label was detected.
+	Segment *GoogleCloudVideointelligenceV1beta2VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2LabelSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2LabelSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2LabelSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1beta2LabelSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1beta2NormalizedBoundingBox: Normalized
+// bounding box.
+// The normalized vertex coordinates are relative to the original
+// image.
+// Range: [0, 1].
+type GoogleCloudVideointelligenceV1beta2NormalizedBoundingBox struct {
+	// Bottom: Bottom Y coordinate.
+	Bottom float64 `json:"bottom,omitempty"`
+
+	// Left: Left X coordinate.
+	Left float64 `json:"left,omitempty"`
+
+	// Right: Right X coordinate.
+	Right float64 `json:"right,omitempty"`
+
+	// Top: Top Y coordinate.
+	Top float64 `json:"top,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Bottom") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Bottom") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2NormalizedBoundingBox
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1beta2NormalizedBoundingBox
+	var s1 struct {
+		Bottom gensupport.JSONFloat64 `json:"bottom"`
+		Left   gensupport.JSONFloat64 `json:"left"`
+		Right  gensupport.JSONFloat64 `json:"right"`
+		Top    gensupport.JSONFloat64 `json:"top"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Bottom = float64(s1.Bottom)
+	s.Left = float64(s1.Left)
+	s.Right = float64(s1.Right)
+	s.Top = float64(s1.Top)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1beta2NormalizedBoundingPoly: Normalized
+// bounding polygon for text (that might not be aligned with
+// axis).
+// Contains list of the corner points in clockwise order starting
+// from
+// top-left corner. For example, for a rectangular bounding box:
+// When the text is horizontal it might look like:
+//         0----1
+//         |    |
+//         3----2
+//
+// When it's clockwise rotated 180 degrees around the top-left corner
+// it
+// becomes:
+//         2----3
+//         |    |
+//         1----0
+//
+// and the vertex order will still be (0, 1, 2, 3). Note that values can
+// be less
+// than 0, or greater than 1 due to trignometric calculations for
+// location of
+// the box.
+type GoogleCloudVideointelligenceV1beta2NormalizedBoundingPoly struct {
+	// Vertices: Normalized vertices of the bounding polygon.
+	Vertices []*GoogleCloudVideointelligenceV1beta2NormalizedVertex `json:"vertices,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Vertices") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Vertices") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2NormalizedBoundingPoly
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2NormalizedVertex: A vertex
+// represents a 2D point in the image.
+// NOTE: the normalized vertex coordinates are relative to the original
+// image
+// and range from 0 to 1.
+type GoogleCloudVideointelligenceV1beta2NormalizedVertex struct {
+	// X: X coordinate.
+	X float64 `json:"x,omitempty"`
+
+	// Y: Y coordinate.
+	Y float64 `json:"y,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "X") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "X") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2NormalizedVertex) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2NormalizedVertex
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2NormalizedVertex) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1beta2NormalizedVertex
+	var s1 struct {
+		X gensupport.JSONFloat64 `json:"x"`
+		Y gensupport.JSONFloat64 `json:"y"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.X = float64(s1.X)
+	s.Y = float64(s1.Y)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation:
+// Annotations corresponding to one tracked object.
+type GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation struct {
+	// Confidence: Object category's labeling confidence of this track.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Entity: Entity to specify the object category that this track is
+	// labeled as.
+	Entity *GoogleCloudVideointelligenceV1beta2Entity `json:"entity,omitempty"`
+
+	// Frames: Information corresponding to all frames where this object
+	// track appears.
+	// Non-streaming batch mode: it may be one or multiple
+	// ObjectTrackingFrame
+	// messages in frames.
+	// Streaming mode: it can only be one ObjectTrackingFrame message in
+	// frames.
+	Frames []*GoogleCloudVideointelligenceV1beta2ObjectTrackingFrame `json:"frames,omitempty"`
+
+	// Segment: Non-streaming batch mode ONLY.
+	// Each object track corresponds to one video segment where it appears.
+	Segment *GoogleCloudVideointelligenceV1beta2VideoSegment `json:"segment,omitempty"`
+
+	// TrackId: Streaming mode ONLY.
+	// In streaming mode, we do not know the end time of a tracked
+	// object
+	// before it is completed. Hence, there is no VideoSegment info
+	// returned.
+	// Instead, we provide a unique identifiable integer track_id so
+	// that
+	// the customers can correlate the results of the
+	// ongoing
+	// ObjectTrackAnnotation of the same track_id over time.
+	TrackId int64 `json:"trackId,omitempty,string"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1beta2ObjectTrackingFrame: Video frame
+// level annotations for object detection and tracking. This
+// field
+// stores per frame location, time offset, and confidence.
+type GoogleCloudVideointelligenceV1beta2ObjectTrackingFrame struct {
+	// NormalizedBoundingBox: The normalized bounding box location of this
+	// object track for the frame.
+	NormalizedBoundingBox *GoogleCloudVideointelligenceV1beta2NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
+
+	// TimeOffset: The timestamp of the frame in microseconds.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "NormalizedBoundingBox") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "NormalizedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2ObjectTrackingFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative:
+// Alternative hypotheses (a.k.a. n-best list).
+type GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative struct {
+	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
+	// number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is typically provided only for the top
+	// hypothesis, and
+	// only for `is_final=true` results. Clients should not rely on
+	// the
+	// `confidence` field as it is not guaranteed to be accurate or
+	// consistent.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Transcript: Transcript text representing the words that the user
+	// spoke.
+	Transcript string `json:"transcript,omitempty"`
+
+	// Words: A list of word-specific information for each recognized word.
+	Words []*GoogleCloudVideointelligenceV1beta2WordInfo `json:"words,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1beta2SpeechTranscription: A speech
+// recognition result corresponding to a portion of the audio.
+type GoogleCloudVideointelligenceV1beta2SpeechTranscription struct {
+	// Alternatives: May contain one or more recognition hypotheses (up to
+	// the maximum specified
+	// in `max_alternatives`).  These alternatives are ordered in terms
+	// of
+	// accuracy, with the top (first) alternative being the most probable,
+	// as
+	// ranked by the recognizer.
+	Alternatives []*GoogleCloudVideointelligenceV1beta2SpeechRecognitionAlternative `json:"alternatives,omitempty"`
+
+	// LanguageCode: Output only.
+	// The
+	// [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag
+	// of the
+	// language in this result. This language code was detected to have the
+	// most
+	// likelihood of being spoken in the audio.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Alternatives") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Alternatives") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2SpeechTranscription) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2SpeechTranscription
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2TextAnnotation: Annotations
+// related to one detected OCR text snippet. This will contain
+// the
+// corresponding text, confidence value, and frame level information for
+// each
+// detection.
+type GoogleCloudVideointelligenceV1beta2TextAnnotation struct {
+	// Segments: All video segments where OCR detected text appears.
+	Segments []*GoogleCloudVideointelligenceV1beta2TextSegment `json:"segments,omitempty"`
+
+	// Text: The detected text.
+	Text string `json:"text,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Segments") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Segments") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2TextAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2TextAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2TextFrame: Video frame level
+// annotation results for text annotation (OCR).
+// Contains information regarding timestamp and bounding box locations
+// for the
+// frames containing detected OCR text snippets.
+type GoogleCloudVideointelligenceV1beta2TextFrame struct {
+	// RotatedBoundingBox: Bounding polygon of the detected text for this
+	// frame.
+	RotatedBoundingBox *GoogleCloudVideointelligenceV1beta2NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
+
+	// TimeOffset: Timestamp of this frame.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "RotatedBoundingBox")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "RotatedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2TextFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2TextFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2TextSegment: Video segment level
+// annotation results for text detection.
+type GoogleCloudVideointelligenceV1beta2TextSegment struct {
+	// Confidence: Confidence for the track of detected text. It is
+	// calculated as the highest
+	// over all frames where OCR detected text appears.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Frames: Information related to the frames where OCR detected text
+	// appears.
+	Frames []*GoogleCloudVideointelligenceV1beta2TextFrame `json:"frames,omitempty"`
+
+	// Segment: Video segment where a text snippet was detected.
+	Segment *GoogleCloudVideointelligenceV1beta2VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2TextSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2TextSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2TextSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1beta2TextSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1beta2VideoAnnotationProgress:
+// Annotation progress for a single video.
+type GoogleCloudVideointelligenceV1beta2VideoAnnotationProgress struct {
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ProgressPercent: Approximate percentage processed thus far.
+	// Guaranteed to be
+	// 100 when fully processed.
+	ProgressPercent int64 `json:"progressPercent,omitempty"`
+
+	// StartTime: Time when the request was received.
+	StartTime string `json:"startTime,omitempty"`
+
+	// UpdateTime: Time of the most recent update.
+	UpdateTime string `json:"updateTime,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "InputUri") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "InputUri") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2VideoAnnotationProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2VideoAnnotationResults: Annotation
+// results for a single video.
+type GoogleCloudVideointelligenceV1beta2VideoAnnotationResults struct {
+	// Error: If set, indicates an error. Note that for a single
+	// `AnnotateVideoRequest`
+	// some videos may succeed and some may fail.
+	Error *GoogleRpcStatus `json:"error,omitempty"`
+
+	// ExplicitAnnotation: Explicit content annotation.
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1beta2ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+
+	// FrameLabelAnnotations: Label annotations on frame level.
+	// There is exactly one element for each unique label.
+	FrameLabelAnnotations []*GoogleCloudVideointelligenceV1beta2LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
+
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ObjectAnnotations: Annotations for list of objects detected and
+	// tracked in video.
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1beta2ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+
+	// SegmentLabelAnnotations: Label annotations on video level or user
+	// specified segment level.
+	// There is exactly one element for each unique label.
+	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1beta2LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
+
+	// ShotAnnotations: Shot annotations. Each shot is represented as a
+	// video segment.
+	ShotAnnotations []*GoogleCloudVideointelligenceV1beta2VideoSegment `json:"shotAnnotations,omitempty"`
+
+	// ShotLabelAnnotations: Label annotations on shot level.
+	// There is exactly one element for each unique label.
+	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1beta2LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
+
+	// SpeechTranscriptions: Speech transcription.
+	SpeechTranscriptions []*GoogleCloudVideointelligenceV1beta2SpeechTranscription `json:"speechTranscriptions,omitempty"`
+
+	// TextAnnotations: OCR text detection and tracking.
+	// Annotations for list of detected text snippets. Each will have list
+	// of
+	// frame information associated with it.
+	TextAnnotations []*GoogleCloudVideointelligenceV1beta2TextAnnotation `json:"textAnnotations,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Error") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Error") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2VideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2VideoAnnotationResults
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2VideoSegment: Video segment.
+type GoogleCloudVideointelligenceV1beta2VideoSegment struct {
+	// EndTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the end of the segment (inclusive).
+	EndTimeOffset string `json:"endTimeOffset,omitempty"`
+
+	// StartTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the start of the segment (inclusive).
+	StartTimeOffset string `json:"startTimeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "EndTimeOffset") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "EndTimeOffset") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2VideoSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2VideoSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1beta2WordInfo: Word-specific
+// information for recognized words. Word information is only
+// included in the response when certain request parameters are set,
+// such
+// as `enable_word_time_offsets`.
+type GoogleCloudVideointelligenceV1beta2WordInfo struct {
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// EndTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the end of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	EndTime string `json:"endTime,omitempty"`
+
+	// SpeakerTag: Output only. A distinct integer value is assigned for
+	// every speaker within
+	// the audio. This field specifies which one of those speakers was
+	// detected to
+	// have spoken this word. Value ranges from 1 up to
+	// diarization_speaker_count,
+	// and is only set if speaker diarization is enabled.
+	SpeakerTag int64 `json:"speakerTag,omitempty"`
+
+	// StartTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the start of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	StartTime string `json:"startTime,omitempty"`
+
+	// Word: The word corresponding to this set of information.
+	Word string `json:"word,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2WordInfo) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1beta2WordInfo
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1beta2WordInfo) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1beta2WordInfo
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p1beta1AnnotateVideoProgress: Video
+// annotation progress. Included in the `metadata`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1p1beta1AnnotateVideoProgress struct {
+	// AnnotationProgress: Progress metadata for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationProgress []*GoogleCloudVideointelligenceV1p1beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationProgress") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1AnnotateVideoProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1AnnotateVideoResponse: Video
+// annotation response. Included in the `response`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1p1beta1AnnotateVideoResponse struct {
+	// AnnotationResults: Annotation results for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationResults []*GoogleCloudVideointelligenceV1p1beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationResults") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1AnnotateVideoResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1Entity: Detected entity from
+// video analysis.
+type GoogleCloudVideointelligenceV1p1beta1Entity struct {
+	// Description: Textual description, e.g. `Fixed-gear bicycle`.
+	Description string `json:"description,omitempty"`
+
+	// EntityId: Opaque entity ID. Some IDs may be available in
+	// [Google Knowledge Graph
+	// Search
+	// API](https://developers.google.com/knowledge-graph/).
+	EntityId string `json:"entityId,omitempty"`
+
+	// LanguageCode: Language code for `description` in BCP-47 format.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// 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:"-"`
+
+	// NullFields is a list of field names (e.g. "Description") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1Entity) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1Entity
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1ExplicitContentAnnotation:
+// Explicit content annotation (based on per-frame visual signals
+// only).
+// If no explicit content has been detected in a frame, no annotations
+// are
+// present for that frame.
+type GoogleCloudVideointelligenceV1p1beta1ExplicitContentAnnotation struct {
+	// Frames: All video frames where explicit content was detected.
+	Frames []*GoogleCloudVideointelligenceV1p1beta1ExplicitContentFrame `json:"frames,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Frames") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Frames") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1ExplicitContentAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1ExplicitContentFrame: Video
+// frame level annotation results for explicit content.
+type GoogleCloudVideointelligenceV1p1beta1ExplicitContentFrame struct {
+	// PornographyLikelihood: Likelihood of the pornography content..
+	//
+	// Possible values:
+	//   "LIKELIHOOD_UNSPECIFIED" - Unspecified likelihood.
+	//   "VERY_UNLIKELY" - Very unlikely.
+	//   "UNLIKELY" - Unlikely.
+	//   "POSSIBLE" - Possible.
+	//   "LIKELY" - Likely.
+	//   "VERY_LIKELY" - Very likely.
+	PornographyLikelihood string `json:"pornographyLikelihood,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "PornographyLikelihood") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "PornographyLikelihood") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1ExplicitContentFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1LabelAnnotation: Label
+// annotation.
+type GoogleCloudVideointelligenceV1p1beta1LabelAnnotation struct {
+	// CategoryEntities: Common categories for the detected entity.
+	// E.g. when the label is `Terrier` the category is likely `dog`. And in
+	// some
+	// cases there might be more than one categories e.g. `Terrier` could
+	// also be
+	// a `pet`.
+	CategoryEntities []*GoogleCloudVideointelligenceV1p1beta1Entity `json:"categoryEntities,omitempty"`
+
+	// Entity: Detected entity.
+	Entity *GoogleCloudVideointelligenceV1p1beta1Entity `json:"entity,omitempty"`
+
+	// Frames: All video frames where a label was detected.
+	Frames []*GoogleCloudVideointelligenceV1p1beta1LabelFrame `json:"frames,omitempty"`
+
+	// Segments: All video segments where a label was detected.
+	Segments []*GoogleCloudVideointelligenceV1p1beta1LabelSegment `json:"segments,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "CategoryEntities") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "CategoryEntities") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1LabelAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1LabelFrame: Video frame level
+// annotation results for label detection.
+type GoogleCloudVideointelligenceV1p1beta1LabelFrame struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1LabelFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1LabelFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1LabelFrame) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1LabelFrame
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p1beta1LabelSegment: Video segment
+// level annotation results for label detection.
+type GoogleCloudVideointelligenceV1p1beta1LabelSegment struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Segment: Video segment where a label was detected.
+	Segment *GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1LabelSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1LabelSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1LabelSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1LabelSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingBox:
+// Normalized bounding box.
+// The normalized vertex coordinates are relative to the original
+// image.
+// Range: [0, 1].
+type GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingBox struct {
+	// Bottom: Bottom Y coordinate.
+	Bottom float64 `json:"bottom,omitempty"`
+
+	// Left: Left X coordinate.
+	Left float64 `json:"left,omitempty"`
+
+	// Right: Right X coordinate.
+	Right float64 `json:"right,omitempty"`
+
+	// Top: Top Y coordinate.
+	Top float64 `json:"top,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Bottom") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Bottom") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingBox
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingBox
+	var s1 struct {
+		Bottom gensupport.JSONFloat64 `json:"bottom"`
+		Left   gensupport.JSONFloat64 `json:"left"`
+		Right  gensupport.JSONFloat64 `json:"right"`
+		Top    gensupport.JSONFloat64 `json:"top"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Bottom = float64(s1.Bottom)
+	s.Left = float64(s1.Left)
+	s.Right = float64(s1.Right)
+	s.Top = float64(s1.Top)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingPoly:
+// Normalized bounding polygon for text (that might not be aligned with
+// axis).
+// Contains list of the corner points in clockwise order starting
+// from
+// top-left corner. For example, for a rectangular bounding box:
+// When the text is horizontal it might look like:
+//         0----1
+//         |    |
+//         3----2
+//
+// When it's clockwise rotated 180 degrees around the top-left corner
+// it
+// becomes:
+//         2----3
+//         |    |
+//         1----0
+//
+// and the vertex order will still be (0, 1, 2, 3). Note that values can
+// be less
+// than 0, or greater than 1 due to trignometric calculations for
+// location of
+// the box.
+type GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingPoly struct {
+	// Vertices: Normalized vertices of the bounding polygon.
+	Vertices []*GoogleCloudVideointelligenceV1p1beta1NormalizedVertex `json:"vertices,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Vertices") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Vertices") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingPoly
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1NormalizedVertex: A vertex
+// represents a 2D point in the image.
+// NOTE: the normalized vertex coordinates are relative to the original
+// image
+// and range from 0 to 1.
+type GoogleCloudVideointelligenceV1p1beta1NormalizedVertex struct {
+	// X: X coordinate.
+	X float64 `json:"x,omitempty"`
+
+	// Y: Y coordinate.
+	Y float64 `json:"y,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "X") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "X") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1NormalizedVertex
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1NormalizedVertex
+	var s1 struct {
+		X gensupport.JSONFloat64 `json:"x"`
+		Y gensupport.JSONFloat64 `json:"y"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.X = float64(s1.X)
+	s.Y = float64(s1.Y)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation:
+// Annotations corresponding to one tracked object.
+type GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation struct {
+	// Confidence: Object category's labeling confidence of this track.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Entity: Entity to specify the object category that this track is
+	// labeled as.
+	Entity *GoogleCloudVideointelligenceV1p1beta1Entity `json:"entity,omitempty"`
+
+	// Frames: Information corresponding to all frames where this object
+	// track appears.
+	// Non-streaming batch mode: it may be one or multiple
+	// ObjectTrackingFrame
+	// messages in frames.
+	// Streaming mode: it can only be one ObjectTrackingFrame message in
+	// frames.
+	Frames []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingFrame `json:"frames,omitempty"`
+
+	// Segment: Non-streaming batch mode ONLY.
+	// Each object track corresponds to one video segment where it appears.
+	Segment *GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"segment,omitempty"`
+
+	// TrackId: Streaming mode ONLY.
+	// In streaming mode, we do not know the end time of a tracked
+	// object
+	// before it is completed. Hence, there is no VideoSegment info
+	// returned.
+	// Instead, we provide a unique identifiable integer track_id so
+	// that
+	// the customers can correlate the results of the
+	// ongoing
+	// ObjectTrackAnnotation of the same track_id over time.
+	TrackId int64 `json:"trackId,omitempty,string"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p1beta1ObjectTrackingFrame: Video frame
+// level annotations for object detection and tracking. This
+// field
+// stores per frame location, time offset, and confidence.
+type GoogleCloudVideointelligenceV1p1beta1ObjectTrackingFrame struct {
+	// NormalizedBoundingBox: The normalized bounding box location of this
+	// object track for the frame.
+	NormalizedBoundingBox *GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
+
+	// TimeOffset: The timestamp of the frame in microseconds.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "NormalizedBoundingBox") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "NormalizedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1ObjectTrackingFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative:
+// Alternative hypotheses (a.k.a. n-best list).
+type GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative struct {
+	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
+	// number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is typically provided only for the top
+	// hypothesis, and
+	// only for `is_final=true` results. Clients should not rely on
+	// the
+	// `confidence` field as it is not guaranteed to be accurate or
+	// consistent.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Transcript: Transcript text representing the words that the user
+	// spoke.
+	Transcript string `json:"transcript,omitempty"`
+
+	// Words: A list of word-specific information for each recognized word.
+	Words []*GoogleCloudVideointelligenceV1p1beta1WordInfo `json:"words,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p1beta1SpeechTranscription: A speech
+// recognition result corresponding to a portion of the audio.
+type GoogleCloudVideointelligenceV1p1beta1SpeechTranscription struct {
+	// Alternatives: May contain one or more recognition hypotheses (up to
+	// the maximum specified
+	// in `max_alternatives`).  These alternatives are ordered in terms
+	// of
+	// accuracy, with the top (first) alternative being the most probable,
+	// as
+	// ranked by the recognizer.
+	Alternatives []*GoogleCloudVideointelligenceV1p1beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
+
+	// LanguageCode: Output only.
+	// The
+	// [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag
+	// of the
+	// language in this result. This language code was detected to have the
+	// most
+	// likelihood of being spoken in the audio.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Alternatives") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Alternatives") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1SpeechTranscription
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1TextAnnotation: Annotations
+// related to one detected OCR text snippet. This will contain
+// the
+// corresponding text, confidence value, and frame level information for
+// each
+// detection.
+type GoogleCloudVideointelligenceV1p1beta1TextAnnotation struct {
+	// Segments: All video segments where OCR detected text appears.
+	Segments []*GoogleCloudVideointelligenceV1p1beta1TextSegment `json:"segments,omitempty"`
+
+	// Text: The detected text.
+	Text string `json:"text,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Segments") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Segments") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1TextAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1TextAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1TextFrame: Video frame level
+// annotation results for text annotation (OCR).
+// Contains information regarding timestamp and bounding box locations
+// for the
+// frames containing detected OCR text snippets.
+type GoogleCloudVideointelligenceV1p1beta1TextFrame struct {
+	// RotatedBoundingBox: Bounding polygon of the detected text for this
+	// frame.
+	RotatedBoundingBox *GoogleCloudVideointelligenceV1p1beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
+
+	// TimeOffset: Timestamp of this frame.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "RotatedBoundingBox")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "RotatedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1TextFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1TextFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1TextSegment: Video segment level
+// annotation results for text detection.
+type GoogleCloudVideointelligenceV1p1beta1TextSegment struct {
+	// Confidence: Confidence for the track of detected text. It is
+	// calculated as the highest
+	// over all frames where OCR detected text appears.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Frames: Information related to the frames where OCR detected text
+	// appears.
+	Frames []*GoogleCloudVideointelligenceV1p1beta1TextFrame `json:"frames,omitempty"`
+
+	// Segment: Video segment where a text snippet was detected.
+	Segment *GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1TextSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1TextSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1TextSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1TextSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p1beta1VideoAnnotationProgress:
+// Annotation progress for a single video.
+type GoogleCloudVideointelligenceV1p1beta1VideoAnnotationProgress struct {
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ProgressPercent: Approximate percentage processed thus far.
+	// Guaranteed to be
+	// 100 when fully processed.
+	ProgressPercent int64 `json:"progressPercent,omitempty"`
+
+	// StartTime: Time when the request was received.
+	StartTime string `json:"startTime,omitempty"`
+
+	// UpdateTime: Time of the most recent update.
+	UpdateTime string `json:"updateTime,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "InputUri") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "InputUri") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1VideoAnnotationProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1VideoAnnotationResults:
+// Annotation results for a single video.
+type GoogleCloudVideointelligenceV1p1beta1VideoAnnotationResults struct {
+	// Error: If set, indicates an error. Note that for a single
+	// `AnnotateVideoRequest`
+	// some videos may succeed and some may fail.
+	Error *GoogleRpcStatus `json:"error,omitempty"`
+
+	// ExplicitAnnotation: Explicit content annotation.
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p1beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+
+	// FrameLabelAnnotations: Label annotations on frame level.
+	// There is exactly one element for each unique label.
+	FrameLabelAnnotations []*GoogleCloudVideointelligenceV1p1beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
+
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ObjectAnnotations: Annotations for list of objects detected and
+	// tracked in video.
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p1beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+
+	// SegmentLabelAnnotations: Label annotations on video level or user
+	// specified segment level.
+	// There is exactly one element for each unique label.
+	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p1beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
+
+	// ShotAnnotations: Shot annotations. Each shot is represented as a
+	// video segment.
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p1beta1VideoSegment `json:"shotAnnotations,omitempty"`
+
+	// ShotLabelAnnotations: Label annotations on shot level.
+	// There is exactly one element for each unique label.
+	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p1beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
+
+	// SpeechTranscriptions: Speech transcription.
+	SpeechTranscriptions []*GoogleCloudVideointelligenceV1p1beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
+
+	// TextAnnotations: OCR text detection and tracking.
+	// Annotations for list of detected text snippets. Each will have list
+	// of
+	// frame information associated with it.
+	TextAnnotations []*GoogleCloudVideointelligenceV1p1beta1TextAnnotation `json:"textAnnotations,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Error") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Error") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1VideoAnnotationResults
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1VideoSegment: Video segment.
+type GoogleCloudVideointelligenceV1p1beta1VideoSegment struct {
+	// EndTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the end of the segment (inclusive).
+	EndTimeOffset string `json:"endTimeOffset,omitempty"`
+
+	// StartTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the start of the segment (inclusive).
+	StartTimeOffset string `json:"startTimeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "EndTimeOffset") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "EndTimeOffset") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1VideoSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1VideoSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p1beta1WordInfo: Word-specific
+// information for recognized words. Word information is only
+// included in the response when certain request parameters are set,
+// such
+// as `enable_word_time_offsets`.
+type GoogleCloudVideointelligenceV1p1beta1WordInfo struct {
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// EndTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the end of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	EndTime string `json:"endTime,omitempty"`
+
+	// SpeakerTag: Output only. A distinct integer value is assigned for
+	// every speaker within
+	// the audio. This field specifies which one of those speakers was
+	// detected to
+	// have spoken this word. Value ranges from 1 up to
+	// diarization_speaker_count,
+	// and is only set if speaker diarization is enabled.
+	SpeakerTag int64 `json:"speakerTag,omitempty"`
+
+	// StartTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the start of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	StartTime string `json:"startTime,omitempty"`
+
+	// Word: The word corresponding to this set of information.
+	Word string `json:"word,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1WordInfo) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1WordInfo
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p1beta1WordInfo) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p1beta1WordInfo
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p2beta1AnnotateVideoProgress: Video
+// annotation progress. Included in the `metadata`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1p2beta1AnnotateVideoProgress struct {
+	// AnnotationProgress: Progress metadata for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationProgress []*GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationProgress") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1AnnotateVideoProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1AnnotateVideoResponse: Video
+// annotation response. Included in the `response`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1p2beta1AnnotateVideoResponse struct {
+	// AnnotationResults: Annotation results for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationResults []*GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationResults") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1AnnotateVideoResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1Entity: Detected entity from
+// video analysis.
+type GoogleCloudVideointelligenceV1p2beta1Entity struct {
+	// Description: Textual description, e.g. `Fixed-gear bicycle`.
+	Description string `json:"description,omitempty"`
+
+	// EntityId: Opaque entity ID. Some IDs may be available in
+	// [Google Knowledge Graph
+	// Search
+	// API](https://developers.google.com/knowledge-graph/).
+	EntityId string `json:"entityId,omitempty"`
+
+	// LanguageCode: Language code for `description` in BCP-47 format.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// 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:"-"`
+
+	// NullFields is a list of field names (e.g. "Description") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1Entity) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1Entity
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation:
+// Explicit content annotation (based on per-frame visual signals
+// only).
+// If no explicit content has been detected in a frame, no annotations
+// are
+// present for that frame.
+type GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation struct {
+	// Frames: All video frames where explicit content was detected.
+	Frames []*GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame `json:"frames,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Frames") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Frames") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame: Video
+// frame level annotation results for explicit content.
+type GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame struct {
+	// PornographyLikelihood: Likelihood of the pornography content..
+	//
+	// Possible values:
+	//   "LIKELIHOOD_UNSPECIFIED" - Unspecified likelihood.
+	//   "VERY_UNLIKELY" - Very unlikely.
+	//   "UNLIKELY" - Unlikely.
+	//   "POSSIBLE" - Possible.
+	//   "LIKELY" - Likely.
+	//   "VERY_LIKELY" - Very likely.
+	PornographyLikelihood string `json:"pornographyLikelihood,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "PornographyLikelihood") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "PornographyLikelihood") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1ExplicitContentFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1LabelAnnotation: Label
+// annotation.
+type GoogleCloudVideointelligenceV1p2beta1LabelAnnotation struct {
+	// CategoryEntities: Common categories for the detected entity.
+	// E.g. when the label is `Terrier` the category is likely `dog`. And in
+	// some
+	// cases there might be more than one categories e.g. `Terrier` could
+	// also be
+	// a `pet`.
+	CategoryEntities []*GoogleCloudVideointelligenceV1p2beta1Entity `json:"categoryEntities,omitempty"`
+
+	// Entity: Detected entity.
+	Entity *GoogleCloudVideointelligenceV1p2beta1Entity `json:"entity,omitempty"`
+
+	// Frames: All video frames where a label was detected.
+	Frames []*GoogleCloudVideointelligenceV1p2beta1LabelFrame `json:"frames,omitempty"`
+
+	// Segments: All video segments where a label was detected.
+	Segments []*GoogleCloudVideointelligenceV1p2beta1LabelSegment `json:"segments,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "CategoryEntities") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "CategoryEntities") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1LabelAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1LabelFrame: Video frame level
+// annotation results for label detection.
+type GoogleCloudVideointelligenceV1p2beta1LabelFrame struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1LabelFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1LabelFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1LabelFrame) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1LabelFrame
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p2beta1LabelSegment: Video segment
+// level annotation results for label detection.
+type GoogleCloudVideointelligenceV1p2beta1LabelSegment struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Segment: Video segment where a label was detected.
+	Segment *GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1LabelSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1LabelSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1LabelSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1LabelSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox:
+// Normalized bounding box.
+// The normalized vertex coordinates are relative to the original
+// image.
+// Range: [0, 1].
+type GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox struct {
+	// Bottom: Bottom Y coordinate.
+	Bottom float64 `json:"bottom,omitempty"`
+
+	// Left: Left X coordinate.
+	Left float64 `json:"left,omitempty"`
+
+	// Right: Right X coordinate.
+	Right float64 `json:"right,omitempty"`
+
+	// Top: Top Y coordinate.
+	Top float64 `json:"top,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Bottom") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Bottom") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox
+	var s1 struct {
+		Bottom gensupport.JSONFloat64 `json:"bottom"`
+		Left   gensupport.JSONFloat64 `json:"left"`
+		Right  gensupport.JSONFloat64 `json:"right"`
+		Top    gensupport.JSONFloat64 `json:"top"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Bottom = float64(s1.Bottom)
+	s.Left = float64(s1.Left)
+	s.Right = float64(s1.Right)
+	s.Top = float64(s1.Top)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly:
+// Normalized bounding polygon for text (that might not be aligned with
+// axis).
+// Contains list of the corner points in clockwise order starting
+// from
+// top-left corner. For example, for a rectangular bounding box:
+// When the text is horizontal it might look like:
+//         0----1
+//         |    |
+//         3----2
+//
+// When it's clockwise rotated 180 degrees around the top-left corner
+// it
+// becomes:
+//         2----3
+//         |    |
+//         1----0
+//
+// and the vertex order will still be (0, 1, 2, 3). Note that values can
+// be less
+// than 0, or greater than 1 due to trignometric calculations for
+// location of
+// the box.
+type GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly struct {
+	// Vertices: Normalized vertices of the bounding polygon.
+	Vertices []*GoogleCloudVideointelligenceV1p2beta1NormalizedVertex `json:"vertices,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Vertices") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Vertices") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1NormalizedVertex: A vertex
+// represents a 2D point in the image.
+// NOTE: the normalized vertex coordinates are relative to the original
+// image
+// and range from 0 to 1.
+type GoogleCloudVideointelligenceV1p2beta1NormalizedVertex struct {
+	// X: X coordinate.
+	X float64 `json:"x,omitempty"`
+
+	// Y: Y coordinate.
+	Y float64 `json:"y,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "X") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "X") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1NormalizedVertex
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1NormalizedVertex
+	var s1 struct {
+		X gensupport.JSONFloat64 `json:"x"`
+		Y gensupport.JSONFloat64 `json:"y"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.X = float64(s1.X)
+	s.Y = float64(s1.Y)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation:
+// Annotations corresponding to one tracked object.
+type GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation struct {
+	// Confidence: Object category's labeling confidence of this track.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Entity: Entity to specify the object category that this track is
+	// labeled as.
+	Entity *GoogleCloudVideointelligenceV1p2beta1Entity `json:"entity,omitempty"`
+
+	// Frames: Information corresponding to all frames where this object
+	// track appears.
+	// Non-streaming batch mode: it may be one or multiple
+	// ObjectTrackingFrame
+	// messages in frames.
+	// Streaming mode: it can only be one ObjectTrackingFrame message in
+	// frames.
+	Frames []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame `json:"frames,omitempty"`
+
+	// Segment: Non-streaming batch mode ONLY.
+	// Each object track corresponds to one video segment where it appears.
+	Segment *GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"segment,omitempty"`
+
+	// TrackId: Streaming mode ONLY.
+	// In streaming mode, we do not know the end time of a tracked
+	// object
+	// before it is completed. Hence, there is no VideoSegment info
+	// returned.
+	// Instead, we provide a unique identifiable integer track_id so
+	// that
+	// the customers can correlate the results of the
+	// ongoing
+	// ObjectTrackAnnotation of the same track_id over time.
+	TrackId int64 `json:"trackId,omitempty,string"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame: Video frame
+// level annotations for object detection and tracking. This
+// field
+// stores per frame location, time offset, and confidence.
+type GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame struct {
+	// NormalizedBoundingBox: The normalized bounding box location of this
+	// object track for the frame.
+	NormalizedBoundingBox *GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
+
+	// TimeOffset: The timestamp of the frame in microseconds.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "NormalizedBoundingBox") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "NormalizedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1ObjectTrackingFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative:
+// Alternative hypotheses (a.k.a. n-best list).
+type GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative struct {
+	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
+	// number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is typically provided only for the top
+	// hypothesis, and
+	// only for `is_final=true` results. Clients should not rely on
+	// the
+	// `confidence` field as it is not guaranteed to be accurate or
+	// consistent.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Transcript: Transcript text representing the words that the user
+	// spoke.
+	Transcript string `json:"transcript,omitempty"`
+
+	// Words: A list of word-specific information for each recognized word.
+	Words []*GoogleCloudVideointelligenceV1p2beta1WordInfo `json:"words,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p2beta1SpeechTranscription: A speech
+// recognition result corresponding to a portion of the audio.
+type GoogleCloudVideointelligenceV1p2beta1SpeechTranscription struct {
+	// Alternatives: May contain one or more recognition hypotheses (up to
+	// the maximum specified
+	// in `max_alternatives`).  These alternatives are ordered in terms
+	// of
+	// accuracy, with the top (first) alternative being the most probable,
+	// as
+	// ranked by the recognizer.
+	Alternatives []*GoogleCloudVideointelligenceV1p2beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
+
+	// LanguageCode: Output only.
+	// The
+	// [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag
+	// of the
+	// language in this result. This language code was detected to have the
+	// most
+	// likelihood of being spoken in the audio.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Alternatives") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Alternatives") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1SpeechTranscription
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1TextAnnotation: Annotations
+// related to one detected OCR text snippet. This will contain
+// the
+// corresponding text, confidence value, and frame level information for
+// each
+// detection.
+type GoogleCloudVideointelligenceV1p2beta1TextAnnotation struct {
+	// Segments: All video segments where OCR detected text appears.
+	Segments []*GoogleCloudVideointelligenceV1p2beta1TextSegment `json:"segments,omitempty"`
+
+	// Text: The detected text.
+	Text string `json:"text,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Segments") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Segments") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1TextAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1TextAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1TextFrame: Video frame level
+// annotation results for text annotation (OCR).
+// Contains information regarding timestamp and bounding box locations
+// for the
+// frames containing detected OCR text snippets.
+type GoogleCloudVideointelligenceV1p2beta1TextFrame struct {
+	// RotatedBoundingBox: Bounding polygon of the detected text for this
+	// frame.
+	RotatedBoundingBox *GoogleCloudVideointelligenceV1p2beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
+
+	// TimeOffset: Timestamp of this frame.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "RotatedBoundingBox")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "RotatedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1TextFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1TextFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1TextSegment: Video segment level
+// annotation results for text detection.
+type GoogleCloudVideointelligenceV1p2beta1TextSegment struct {
+	// Confidence: Confidence for the track of detected text. It is
+	// calculated as the highest
+	// over all frames where OCR detected text appears.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Frames: Information related to the frames where OCR detected text
+	// appears.
+	Frames []*GoogleCloudVideointelligenceV1p2beta1TextFrame `json:"frames,omitempty"`
+
+	// Segment: Video segment where a text snippet was detected.
+	Segment *GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1TextSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1TextSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1TextSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1TextSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress:
+// Annotation progress for a single video.
+type GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress struct {
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ProgressPercent: Approximate percentage processed thus far.
+	// Guaranteed to be
+	// 100 when fully processed.
+	ProgressPercent int64 `json:"progressPercent,omitempty"`
+
+	// StartTime: Time when the request was received.
+	StartTime string `json:"startTime,omitempty"`
+
+	// UpdateTime: Time of the most recent update.
+	UpdateTime string `json:"updateTime,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "InputUri") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "InputUri") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1VideoAnnotationProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults:
+// Annotation results for a single video.
+type GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults struct {
+	// Error: If set, indicates an error. Note that for a single
+	// `AnnotateVideoRequest`
+	// some videos may succeed and some may fail.
+	Error *GoogleRpcStatus `json:"error,omitempty"`
+
+	// ExplicitAnnotation: Explicit content annotation.
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p2beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+
+	// FrameLabelAnnotations: Label annotations on frame level.
+	// There is exactly one element for each unique label.
+	FrameLabelAnnotations []*GoogleCloudVideointelligenceV1p2beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
+
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ObjectAnnotations: Annotations for list of objects detected and
+	// tracked in video.
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p2beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+
+	// SegmentLabelAnnotations: Label annotations on video level or user
+	// specified segment level.
+	// There is exactly one element for each unique label.
+	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p2beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
+
+	// ShotAnnotations: Shot annotations. Each shot is represented as a
+	// video segment.
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p2beta1VideoSegment `json:"shotAnnotations,omitempty"`
+
+	// ShotLabelAnnotations: Label annotations on shot level.
+	// There is exactly one element for each unique label.
+	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p2beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
+
+	// SpeechTranscriptions: Speech transcription.
+	SpeechTranscriptions []*GoogleCloudVideointelligenceV1p2beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
+
+	// TextAnnotations: OCR text detection and tracking.
+	// Annotations for list of detected text snippets. Each will have list
+	// of
+	// frame information associated with it.
+	TextAnnotations []*GoogleCloudVideointelligenceV1p2beta1TextAnnotation `json:"textAnnotations,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Error") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Error") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1VideoAnnotationResults
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1VideoSegment: Video segment.
+type GoogleCloudVideointelligenceV1p2beta1VideoSegment struct {
+	// EndTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the end of the segment (inclusive).
+	EndTimeOffset string `json:"endTimeOffset,omitempty"`
+
+	// StartTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the start of the segment (inclusive).
+	StartTimeOffset string `json:"startTimeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "EndTimeOffset") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "EndTimeOffset") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1VideoSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1VideoSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p2beta1WordInfo: Word-specific
+// information for recognized words. Word information is only
+// included in the response when certain request parameters are set,
+// such
+// as `enable_word_time_offsets`.
+type GoogleCloudVideointelligenceV1p2beta1WordInfo struct {
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// EndTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the end of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	EndTime string `json:"endTime,omitempty"`
+
+	// SpeakerTag: Output only. A distinct integer value is assigned for
+	// every speaker within
+	// the audio. This field specifies which one of those speakers was
+	// detected to
+	// have spoken this word. Value ranges from 1 up to
+	// diarization_speaker_count,
+	// and is only set if speaker diarization is enabled.
+	SpeakerTag int64 `json:"speakerTag,omitempty"`
+
+	// StartTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the start of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	StartTime string `json:"startTime,omitempty"`
+
+	// Word: The word corresponding to this set of information.
+	Word string `json:"word,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1WordInfo) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1WordInfo
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p2beta1WordInfo) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p2beta1WordInfo
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress: Video
+// annotation progress. Included in the `metadata`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress struct {
+	// AnnotationProgress: Progress metadata for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationProgress []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationProgress") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoRequest: Video
+// annotation request.
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoRequest struct {
+	// Features: Requested video annotation features.
+	//
+	// Possible values:
+	//   "FEATURE_UNSPECIFIED" - Unspecified.
+	//   "LABEL_DETECTION" - Label detection. Detect objects, such as dog or
+	// flower.
+	//   "SHOT_CHANGE_DETECTION" - Shot change detection.
+	//   "EXPLICIT_CONTENT_DETECTION" - Explicit content detection.
+	//   "SPEECH_TRANSCRIPTION" - Speech transcription.
+	//   "TEXT_DETECTION" - OCR text detection and tracking.
+	//   "OBJECT_TRACKING" - Object detection and tracking.
+	Features []string `json:"features,omitempty"`
+
+	// InputContent: The video data bytes.
+	// If unset, the input video(s) should be specified via `input_uri`.
+	// If set, `input_uri` should be unset.
+	InputContent string `json:"inputContent,omitempty"`
+
+	// InputUri: Input video location. Currently, only
+	// [Google Cloud Storage](https://cloud.google.com/storage/) URIs
+	// are
+	// supported, which must be specified in the following
+	// format:
+	// `gs://bucket-id/object-id` (other URI formats
+	// return
+	// google.rpc.Code.INVALID_ARGUMENT). For more information, see
+	// [Request URIs](/storage/docs/reference-uris).
+	// A video URI may include wildcards in `object-id`, and thus
+	// identify
+	// multiple videos. Supported wildcards: '*' to match 0 or more
+	// characters;
+	// '?' to match 1 character. If unset, the input video should be
+	// embedded
+	// in the request as `input_content`. If set, `input_content` should be
+	// unset.
+	InputUri string `json:"inputUri,omitempty"`
+
+	// LocationId: Optional cloud region where annotation should take place.
+	// Supported cloud
+	// regions: `us-east1`, `us-west1`, `europe-west1`, `asia-east1`. If no
+	// region
+	// is specified, a region will be determined based on video file
+	// location.
+	LocationId string `json:"locationId,omitempty"`
+
+	// OutputUri: Optional location where the output (in JSON format) should
+	// be stored.
+	// Currently, only [Google Cloud
+	// Storage](https://cloud.google.com/storage/)
+	// URIs are supported, which must be specified in the following
+	// format:
+	// `gs://bucket-id/object-id` (other URI formats
+	// return
+	// google.rpc.Code.INVALID_ARGUMENT). For more information, see
+	// [Request URIs](/storage/docs/reference-uris).
+	OutputUri string `json:"outputUri,omitempty"`
+
+	// VideoContext: Additional video context and/or feature-specific
+	// parameters.
+	VideoContext *GoogleCloudVideointelligenceV1p3beta1VideoContext `json:"videoContext,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Features") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Features") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse: Video
+// annotation response. Included in the `response`
+// field of the `Operation` returned by the `GetOperation`
+// call of the `google::longrunning::Operations` service.
+type GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse struct {
+	// AnnotationResults: Annotation results for all videos specified in
+	// `AnnotateVideoRequest`.
+	AnnotationResults []*GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationResults") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1AnnotateVideoResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1Entity: Detected entity from
+// video analysis.
+type GoogleCloudVideointelligenceV1p3beta1Entity struct {
+	// Description: Textual description, e.g. `Fixed-gear bicycle`.
+	Description string `json:"description,omitempty"`
+
+	// EntityId: Opaque entity ID. Some IDs may be available in
+	// [Google Knowledge Graph
+	// Search
+	// API](https://developers.google.com/knowledge-graph/).
+	EntityId string `json:"entityId,omitempty"`
+
+	// LanguageCode: Language code for `description` in BCP-47 format.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// 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:"-"`
+
+	// NullFields is a list of field names (e.g. "Description") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1Entity) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1Entity
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation:
+// Explicit content annotation (based on per-frame visual signals
+// only).
+// If no explicit content has been detected in a frame, no annotations
+// are
+// present for that frame.
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation struct {
+	// Frames: All video frames where explicit content was detected.
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame `json:"frames,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Frames") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Frames") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentDetectionConfig:
+// Config for EXPLICIT_CONTENT_DETECTION.
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentDetectionConfig struct {
+	// Model: Model to use for explicit content detection.
+	// Supported values: "builtin/stable" (the default if unset)
+	// and
+	// "builtin/latest".
+	Model string `json:"model,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Model") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Model") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentDetectionConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentDetectionConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame: Video
+// frame level annotation results for explicit content.
+type GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame struct {
+	// PornographyLikelihood: Likelihood of the pornography content..
+	//
+	// Possible values:
+	//   "LIKELIHOOD_UNSPECIFIED" - Unspecified likelihood.
+	//   "VERY_UNLIKELY" - Very unlikely.
+	//   "UNLIKELY" - Unlikely.
+	//   "POSSIBLE" - Possible.
+	//   "LIKELY" - Likely.
+	//   "VERY_LIKELY" - Very likely.
+	PornographyLikelihood string `json:"pornographyLikelihood,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "PornographyLikelihood") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "PornographyLikelihood") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ExplicitContentFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1LabelAnnotation: Label
+// annotation.
+type GoogleCloudVideointelligenceV1p3beta1LabelAnnotation struct {
+	// CategoryEntities: Common categories for the detected entity.
+	// E.g. when the label is `Terrier` the category is likely `dog`. And in
+	// some
+	// cases there might be more than one categories e.g. `Terrier` could
+	// also be
+	// a `pet`.
+	CategoryEntities []*GoogleCloudVideointelligenceV1p3beta1Entity `json:"categoryEntities,omitempty"`
+
+	// Entity: Detected entity.
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
+
+	// Frames: All video frames where a label was detected.
+	Frames []*GoogleCloudVideointelligenceV1p3beta1LabelFrame `json:"frames,omitempty"`
+
+	// Segments: All video segments where a label was detected.
+	Segments []*GoogleCloudVideointelligenceV1p3beta1LabelSegment `json:"segments,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "CategoryEntities") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "CategoryEntities") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1LabelDetectionConfig: Config for
+// LABEL_DETECTION.
+type GoogleCloudVideointelligenceV1p3beta1LabelDetectionConfig struct {
+	// FrameConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// frame-level detection. If not set, it is set to 0.4 by default. The
+	// valid
+	// range for this threshold is [0.1, 0.9]. Any value set outside of
+	// this
+	// range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	FrameConfidenceThreshold float64 `json:"frameConfidenceThreshold,omitempty"`
+
+	// LabelDetectionMode: What labels should be detected with
+	// LABEL_DETECTION, in addition to
+	// video-level labels or segment-level labels.
+	// If unspecified, defaults to `SHOT_MODE`.
+	//
+	// Possible values:
+	//   "LABEL_DETECTION_MODE_UNSPECIFIED" - Unspecified.
+	//   "SHOT_MODE" - Detect shot-level labels.
+	//   "FRAME_MODE" - Detect frame-level labels.
+	//   "SHOT_AND_FRAME_MODE" - Detect both shot-level and frame-level
+	// labels.
+	LabelDetectionMode string `json:"labelDetectionMode,omitempty"`
+
+	// Model: Model to use for label detection.
+	// Supported values: "builtin/stable" (the default if unset)
+	// and
+	// "builtin/latest".
+	Model string `json:"model,omitempty"`
+
+	// StationaryCamera: Whether the video has been shot from a stationary
+	// (i.e. non-moving) camera.
+	// When set to true, might improve detection accuracy for moving
+	// objects.
+	// Should be used with `SHOT_AND_FRAME_MODE` enabled.
+	StationaryCamera bool `json:"stationaryCamera,omitempty"`
+
+	// VideoConfidenceThreshold: The confidence threshold we perform
+	// filtering on the labels from
+	// video-level and shot-level detections. If not set, it is set to 0.3
+	// by
+	// default. The valid range for this threshold is [0.1, 0.9]. Any value
+	// set
+	// outside of this range will be clipped.
+	// Note: for best results please follow the default threshold. We will
+	// update
+	// the default threshold everytime when we release a new model.
+	VideoConfidenceThreshold float64 `json:"videoConfidenceThreshold,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "FrameConfidenceThreshold") to unconditionally include in API
+	// requests. By default, fields with empty values are omitted from API
+	// requests. However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "FrameConfidenceThreshold")
+	// to include in API requests with the JSON null value. By default,
+	// fields with empty values are omitted from API requests. However, any
+	// field with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelDetectionConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelDetectionConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelDetectionConfig) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelDetectionConfig
+	var s1 struct {
+		FrameConfidenceThreshold gensupport.JSONFloat64 `json:"frameConfidenceThreshold"`
+		VideoConfidenceThreshold gensupport.JSONFloat64 `json:"videoConfidenceThreshold"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.FrameConfidenceThreshold = float64(s1.FrameConfidenceThreshold)
+	s.VideoConfidenceThreshold = float64(s1.VideoConfidenceThreshold)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p3beta1LabelFrame: Video frame level
+// annotation results for label detection.
+type GoogleCloudVideointelligenceV1p3beta1LabelFrame struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// TimeOffset: Time-offset, relative to the beginning of the video,
+	// corresponding to the
+	// video frame for this location.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelFrame) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelFrame
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p3beta1LabelSegment: Video segment
+// level annotation results for label detection.
+type GoogleCloudVideointelligenceV1p3beta1LabelSegment struct {
+	// Confidence: Confidence that the label is accurate. Range: [0, 1].
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Segment: Video segment where a label was detected.
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1LabelSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1LabelSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox:
+// Normalized bounding box.
+// The normalized vertex coordinates are relative to the original
+// image.
+// Range: [0, 1].
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox struct {
+	// Bottom: Bottom Y coordinate.
+	Bottom float64 `json:"bottom,omitempty"`
+
+	// Left: Left X coordinate.
+	Left float64 `json:"left,omitempty"`
+
+	// Right: Right X coordinate.
+	Right float64 `json:"right,omitempty"`
+
+	// Top: Top Y coordinate.
+	Top float64 `json:"top,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Bottom") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Bottom") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox
+	var s1 struct {
+		Bottom gensupport.JSONFloat64 `json:"bottom"`
+		Left   gensupport.JSONFloat64 `json:"left"`
+		Right  gensupport.JSONFloat64 `json:"right"`
+		Top    gensupport.JSONFloat64 `json:"top"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Bottom = float64(s1.Bottom)
+	s.Left = float64(s1.Left)
+	s.Right = float64(s1.Right)
+	s.Top = float64(s1.Top)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly:
+// Normalized bounding polygon for text (that might not be aligned with
+// axis).
+// Contains list of the corner points in clockwise order starting
+// from
+// top-left corner. For example, for a rectangular bounding box:
+// When the text is horizontal it might look like:
+//         0----1
+//         |    |
+//         3----2
+//
+// When it's clockwise rotated 180 degrees around the top-left corner
+// it
+// becomes:
+//         2----3
+//         |    |
+//         1----0
+//
+// and the vertex order will still be (0, 1, 2, 3). Note that values can
+// be less
+// than 0, or greater than 1 due to trignometric calculations for
+// location of
+// the box.
+type GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly struct {
+	// Vertices: Normalized vertices of the bounding polygon.
+	Vertices []*GoogleCloudVideointelligenceV1p3beta1NormalizedVertex `json:"vertices,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Vertices") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Vertices") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1NormalizedVertex: A vertex
+// represents a 2D point in the image.
+// NOTE: the normalized vertex coordinates are relative to the original
+// image
+// and range from 0 to 1.
+type GoogleCloudVideointelligenceV1p3beta1NormalizedVertex struct {
+	// X: X coordinate.
+	X float64 `json:"x,omitempty"`
+
+	// Y: Y coordinate.
+	Y float64 `json:"y,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "X") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "X") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1NormalizedVertex) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1NormalizedVertex
+	var s1 struct {
+		X gensupport.JSONFloat64 `json:"x"`
+		Y gensupport.JSONFloat64 `json:"y"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.X = float64(s1.X)
+	s.Y = float64(s1.Y)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation:
+// Annotations corresponding to one tracked object.
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation struct {
+	// Confidence: Object category's labeling confidence of this track.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Entity: Entity to specify the object category that this track is
+	// labeled as.
+	Entity *GoogleCloudVideointelligenceV1p3beta1Entity `json:"entity,omitempty"`
+
+	// Frames: Information corresponding to all frames where this object
+	// track appears.
+	// Non-streaming batch mode: it may be one or multiple
+	// ObjectTrackingFrame
+	// messages in frames.
+	// Streaming mode: it can only be one ObjectTrackingFrame message in
+	// frames.
+	Frames []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame `json:"frames,omitempty"`
+
+	// Segment: Non-streaming batch mode ONLY.
+	// Each object track corresponds to one video segment where it appears.
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
+
+	// TrackId: Streaming mode ONLY.
+	// In streaming mode, we do not know the end time of a tracked
+	// object
+	// before it is completed. Hence, there is no VideoSegment info
+	// returned.
+	// Instead, we provide a unique identifiable integer track_id so
+	// that
+	// the customers can correlate the results of the
+	// ongoing
+	// ObjectTrackAnnotation of the same track_id over time.
+	TrackId int64 `json:"trackId,omitempty,string"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame: Video frame
+// level annotations for object detection and tracking. This
+// field
+// stores per frame location, time offset, and confidence.
+type GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame struct {
+	// NormalizedBoundingBox: The normalized bounding box location of this
+	// object track for the frame.
+	NormalizedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingBox `json:"normalizedBoundingBox,omitempty"`
+
+	// TimeOffset: The timestamp of the frame in microseconds.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "NormalizedBoundingBox") to unconditionally include in API requests.
+	// By default, fields with empty values are omitted from API requests.
+	// However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "NormalizedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ObjectTrackingFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1ShotChangeDetectionConfig:
+// Config for SHOT_CHANGE_DETECTION.
+type GoogleCloudVideointelligenceV1p3beta1ShotChangeDetectionConfig struct {
+	// Model: Model to use for shot change detection.
+	// Supported values: "builtin/stable" (the default if unset)
+	// and
+	// "builtin/latest".
+	Model string `json:"model,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Model") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Model") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1ShotChangeDetectionConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1ShotChangeDetectionConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1SpeechContext: Provides "hints"
+// to the speech recognizer to favor specific words and phrases
+// in the results.
+type GoogleCloudVideointelligenceV1p3beta1SpeechContext struct {
+	// Phrases: *Optional* A list of strings containing words and phrases
+	// "hints" so that
+	// the speech recognition is more likely to recognize them. This can be
+	// used
+	// to improve the accuracy for specific words and phrases, for example,
+	// if
+	// specific commands are typically spoken by the user. This can also be
+	// used
+	// to add additional words to the vocabulary of the recognizer.
+	// See
+	// [usage limits](https://cloud.google.com/speech/limits#content).
+	Phrases []string `json:"phrases,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Phrases") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Phrases") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechContext) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechContext
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative:
+// Alternative hypotheses (a.k.a. n-best list).
+type GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative struct {
+	// Confidence: The confidence estimate between 0.0 and 1.0. A higher
+	// number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is typically provided only for the top
+	// hypothesis, and
+	// only for `is_final=true` results. Clients should not rely on
+	// the
+	// `confidence` field as it is not guaranteed to be accurate or
+	// consistent.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Transcript: Transcript text representing the words that the user
+	// spoke.
+	Transcript string `json:"transcript,omitempty"`
+
+	// Words: A list of word-specific information for each recognized word.
+	Words []*GoogleCloudVideointelligenceV1p3beta1WordInfo `json:"words,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p3beta1SpeechTranscription: A speech
+// recognition result corresponding to a portion of the audio.
+type GoogleCloudVideointelligenceV1p3beta1SpeechTranscription struct {
+	// Alternatives: May contain one or more recognition hypotheses (up to
+	// the maximum specified
+	// in `max_alternatives`).  These alternatives are ordered in terms
+	// of
+	// accuracy, with the top (first) alternative being the most probable,
+	// as
+	// ranked by the recognizer.
+	Alternatives []*GoogleCloudVideointelligenceV1p3beta1SpeechRecognitionAlternative `json:"alternatives,omitempty"`
+
+	// LanguageCode: Output only.
+	// The
+	// [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag
+	// of the
+	// language in this result. This language code was detected to have the
+	// most
+	// likelihood of being spoken in the audio.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Alternatives") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Alternatives") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechTranscription) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechTranscription
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1SpeechTranscriptionConfig:
+// Config for SPEECH_TRANSCRIPTION.
+type GoogleCloudVideointelligenceV1p3beta1SpeechTranscriptionConfig struct {
+	// AudioTracks: *Optional* For file formats, such as MXF or MKV,
+	// supporting multiple audio
+	// tracks, specify up to two tracks. Default: track 0.
+	AudioTracks []int64 `json:"audioTracks,omitempty"`
+
+	// DiarizationSpeakerCount: *Optional*
+	// If set, specifies the estimated number of speakers in the
+	// conversation.
+	// If not set, defaults to '2'.
+	// Ignored unless enable_speaker_diarization is set to true.
+	DiarizationSpeakerCount int64 `json:"diarizationSpeakerCount,omitempty"`
+
+	// EnableAutomaticPunctuation: *Optional* If 'true', adds punctuation to
+	// recognition result hypotheses.
+	// This feature is only available in select languages. Setting this
+	// for
+	// requests in other languages has no effect at all. The default 'false'
+	// value
+	// does not add punctuation to result hypotheses. NOTE: "This is
+	// currently
+	// offered as an experimental service, complimentary to all users. In
+	// the
+	// future this may be exclusively available as a premium feature."
+	EnableAutomaticPunctuation bool `json:"enableAutomaticPunctuation,omitempty"`
+
+	// EnableSpeakerDiarization: *Optional* If 'true', enables speaker
+	// detection for each recognized word in
+	// the top alternative of the recognition result using a speaker_tag
+	// provided
+	// in the WordInfo.
+	// Note: When this is true, we send all the words from the beginning of
+	// the
+	// audio for the top alternative in every consecutive responses.
+	// This is done in order to improve our speaker tags as our models learn
+	// to
+	// identify the speakers in the conversation over time.
+	EnableSpeakerDiarization bool `json:"enableSpeakerDiarization,omitempty"`
+
+	// EnableWordConfidence: *Optional* If `true`, the top result includes a
+	// list of words and the
+	// confidence for those words. If `false`, no word-level
+	// confidence
+	// information is returned. The default is `false`.
+	EnableWordConfidence bool `json:"enableWordConfidence,omitempty"`
+
+	// FilterProfanity: *Optional* If set to `true`, the server will attempt
+	// to filter out
+	// profanities, replacing all but the initial character in each filtered
+	// word
+	// with asterisks, e.g. "f***". If set to `false` or omitted,
+	// profanities
+	// won't be filtered out.
+	FilterProfanity bool `json:"filterProfanity,omitempty"`
+
+	// LanguageCode: *Required* The language of the supplied audio as
+	// a
+	// [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language
+	// tag.
+	// Example: "en-US".
+	// See [Language
+	// Support](https://cloud.google.com/speech/docs/languages)
+	// for a list of the currently supported language codes.
+	LanguageCode string `json:"languageCode,omitempty"`
+
+	// MaxAlternatives: *Optional* Maximum number of recognition hypotheses
+	// to be returned.
+	// Specifically, the maximum number of `SpeechRecognitionAlternative`
+	// messages
+	// within each `SpeechTranscription`. The server may return fewer
+	// than
+	// `max_alternatives`. Valid values are `0`-`30`. A value of `0` or `1`
+	// will
+	// return a maximum of one. If omitted, will return a maximum of one.
+	MaxAlternatives int64 `json:"maxAlternatives,omitempty"`
+
+	// SpeechContexts: *Optional* A means to provide context to assist the
+	// speech recognition.
+	SpeechContexts []*GoogleCloudVideointelligenceV1p3beta1SpeechContext `json:"speechContexts,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AudioTracks") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AudioTracks") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1SpeechTranscriptionConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1SpeechTranscriptionConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse:
+// `StreamingAnnotateVideoResponse` is the only message returned to the
+// client
+// by `StreamingAnnotateVideo`. A series of zero or
+// more
+// `StreamingAnnotateVideoResponse` messages are streamed back to the
+// client.
+type GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse struct {
+	// AnnotationResults: Streaming annotation results.
+	AnnotationResults *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults `json:"annotationResults,omitempty"`
+
+	// AnnotationResultsUri: GCS URI that stores annotation results of one
+	// streaming session.
+	// It is a directory that can hold multiple files in JSON
+	// format.
+	// Example uri
+	// format:
+	// gs://bucket_id/object_id/cloud_project_name-session_id
+	AnnotationResultsUri string `json:"annotationResultsUri,omitempty"`
+
+	// Error: If set, returns a google.rpc.Status message that
+	// specifies the error for the operation.
+	Error *GoogleRpcStatus `json:"error,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "AnnotationResults")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "AnnotationResults") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingAnnotateVideoResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults:
+// Streaming annotation results corresponding to a portion of the
+// video
+// that is currently being processed.
+type GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults struct {
+	// ExplicitAnnotation: Explicit content annotation results.
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+
+	// LabelAnnotations: Label annotation results.
+	LabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
+
+	// ObjectAnnotations: Object tracking results.
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+
+	// ShotAnnotations: Shot annotation results. Each shot is represented as
+	// a video segment.
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "ExplicitAnnotation")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "ExplicitAnnotation") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1StreamingVideoAnnotationResults
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1TextAnnotation: Annotations
+// related to one detected OCR text snippet. This will contain
+// the
+// corresponding text, confidence value, and frame level information for
+// each
+// detection.
+type GoogleCloudVideointelligenceV1p3beta1TextAnnotation struct {
+	// Segments: All video segments where OCR detected text appears.
+	Segments []*GoogleCloudVideointelligenceV1p3beta1TextSegment `json:"segments,omitempty"`
+
+	// Text: The detected text.
+	Text string `json:"text,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Segments") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Segments") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1TextAnnotation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextAnnotation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1TextDetectionConfig: Config for
+// TEXT_DETECTION.
+type GoogleCloudVideointelligenceV1p3beta1TextDetectionConfig struct {
+	// LanguageHints: Language hint can be specified if the language to be
+	// detected is known a
+	// priori. It can increase the accuracy of the detection. Language hint
+	// must
+	// be language code in BCP-47 format.
+	//
+	// Automatic language detection is performed if no hint is provided.
+	LanguageHints []string `json:"languageHints,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "LanguageHints") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "LanguageHints") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1TextDetectionConfig) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextDetectionConfig
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1TextFrame: Video frame level
+// annotation results for text annotation (OCR).
+// Contains information regarding timestamp and bounding box locations
+// for the
+// frames containing detected OCR text snippets.
+type GoogleCloudVideointelligenceV1p3beta1TextFrame struct {
+	// RotatedBoundingBox: Bounding polygon of the detected text for this
+	// frame.
+	RotatedBoundingBox *GoogleCloudVideointelligenceV1p3beta1NormalizedBoundingPoly `json:"rotatedBoundingBox,omitempty"`
+
+	// TimeOffset: Timestamp of this frame.
+	TimeOffset string `json:"timeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "RotatedBoundingBox")
+	// to unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "RotatedBoundingBox") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1TextFrame) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextFrame
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1TextSegment: Video segment level
+// annotation results for text detection.
+type GoogleCloudVideointelligenceV1p3beta1TextSegment struct {
+	// Confidence: Confidence for the track of detected text. It is
+	// calculated as the highest
+	// over all frames where OCR detected text appears.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// Frames: Information related to the frames where OCR detected text
+	// appears.
+	Frames []*GoogleCloudVideointelligenceV1p3beta1TextFrame `json:"frames,omitempty"`
+
+	// Segment: Video segment where a text snippet was detected.
+	Segment *GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segment,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1TextSegment) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1TextSegment
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress:
+// Annotation progress for a single video.
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress struct {
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ProgressPercent: Approximate percentage processed thus far.
+	// Guaranteed to be
+	// 100 when fully processed.
+	ProgressPercent int64 `json:"progressPercent,omitempty"`
+
+	// StartTime: Time when the request was received.
+	StartTime string `json:"startTime,omitempty"`
+
+	// UpdateTime: Time of the most recent update.
+	UpdateTime string `json:"updateTime,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "InputUri") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "InputUri") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationProgress
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults:
+// Annotation results for a single video.
+type GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults struct {
+	// Error: If set, indicates an error. Note that for a single
+	// `AnnotateVideoRequest`
+	// some videos may succeed and some may fail.
+	Error *GoogleRpcStatus `json:"error,omitempty"`
+
+	// ExplicitAnnotation: Explicit content annotation.
+	ExplicitAnnotation *GoogleCloudVideointelligenceV1p3beta1ExplicitContentAnnotation `json:"explicitAnnotation,omitempty"`
+
+	// FrameLabelAnnotations: Label annotations on frame level.
+	// There is exactly one element for each unique label.
+	FrameLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"frameLabelAnnotations,omitempty"`
+
+	// InputUri: Video file location in
+	// [Google Cloud Storage](https://cloud.google.com/storage/).
+	InputUri string `json:"inputUri,omitempty"`
+
+	// ObjectAnnotations: Annotations for list of objects detected and
+	// tracked in video.
+	ObjectAnnotations []*GoogleCloudVideointelligenceV1p3beta1ObjectTrackingAnnotation `json:"objectAnnotations,omitempty"`
+
+	// SegmentLabelAnnotations: Label annotations on video level or user
+	// specified segment level.
+	// There is exactly one element for each unique label.
+	SegmentLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"segmentLabelAnnotations,omitempty"`
+
+	// ShotAnnotations: Shot annotations. Each shot is represented as a
+	// video segment.
+	ShotAnnotations []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"shotAnnotations,omitempty"`
+
+	// ShotLabelAnnotations: Label annotations on shot level.
+	// There is exactly one element for each unique label.
+	ShotLabelAnnotations []*GoogleCloudVideointelligenceV1p3beta1LabelAnnotation `json:"shotLabelAnnotations,omitempty"`
+
+	// SpeechTranscriptions: Speech transcription.
+	SpeechTranscriptions []*GoogleCloudVideointelligenceV1p3beta1SpeechTranscription `json:"speechTranscriptions,omitempty"`
+
+	// TextAnnotations: OCR text detection and tracking.
+	// Annotations for list of detected text snippets. Each will have list
+	// of
+	// frame information associated with it.
+	TextAnnotations []*GoogleCloudVideointelligenceV1p3beta1TextAnnotation `json:"textAnnotations,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Error") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Error") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoAnnotationResults
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1VideoContext: Video context
+// and/or feature-specific parameters.
+type GoogleCloudVideointelligenceV1p3beta1VideoContext struct {
+	// ExplicitContentDetectionConfig: Config for
+	// EXPLICIT_CONTENT_DETECTION.
+	ExplicitContentDetectionConfig *GoogleCloudVideointelligenceV1p3beta1ExplicitContentDetectionConfig `json:"explicitContentDetectionConfig,omitempty"`
+
+	// LabelDetectionConfig: Config for LABEL_DETECTION.
+	LabelDetectionConfig *GoogleCloudVideointelligenceV1p3beta1LabelDetectionConfig `json:"labelDetectionConfig,omitempty"`
+
+	// Segments: Video segments to annotate. The segments may overlap and
+	// are not required
+	// to be contiguous or span the whole video. If unspecified, each video
+	// is
+	// treated as a single segment.
+	Segments []*GoogleCloudVideointelligenceV1p3beta1VideoSegment `json:"segments,omitempty"`
+
+	// ShotChangeDetectionConfig: Config for SHOT_CHANGE_DETECTION.
+	ShotChangeDetectionConfig *GoogleCloudVideointelligenceV1p3beta1ShotChangeDetectionConfig `json:"shotChangeDetectionConfig,omitempty"`
+
+	// SpeechTranscriptionConfig: Config for SPEECH_TRANSCRIPTION.
+	SpeechTranscriptionConfig *GoogleCloudVideointelligenceV1p3beta1SpeechTranscriptionConfig `json:"speechTranscriptionConfig,omitempty"`
+
+	// TextDetectionConfig: Config for TEXT_DETECTION.
+	TextDetectionConfig *GoogleCloudVideointelligenceV1p3beta1TextDetectionConfig `json:"textDetectionConfig,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g.
+	// "ExplicitContentDetectionConfig") to unconditionally include in API
+	// requests. By default, fields with empty values are omitted from API
+	// requests. However, any non-pointer, non-interface field appearing in
+	// ForceSendFields will be sent to the server regardless of whether the
+	// field is empty or not. This may be used to include empty fields in
+	// Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g.
+	// "ExplicitContentDetectionConfig") to include in API requests with the
+	// JSON null value. By default, fields with empty values are omitted
+	// from API requests. However, any field with an empty value appearing
+	// in NullFields will be sent to the server as null. It is an error if a
+	// field in this list has a non-empty value. This may be used to include
+	// null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoContext) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoContext
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1VideoSegment: Video segment.
+type GoogleCloudVideointelligenceV1p3beta1VideoSegment struct {
+	// EndTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the end of the segment (inclusive).
+	EndTimeOffset string `json:"endTimeOffset,omitempty"`
+
+	// StartTimeOffset: Time-offset, relative to the beginning of the
+	// video,
+	// corresponding to the start of the segment (inclusive).
+	StartTimeOffset string `json:"startTimeOffset,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "EndTimeOffset") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "EndTimeOffset") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1VideoSegment) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1VideoSegment
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleCloudVideointelligenceV1p3beta1WordInfo: Word-specific
+// information for recognized words. Word information is only
+// included in the response when certain request parameters are set,
+// such
+// as `enable_word_time_offsets`.
+type GoogleCloudVideointelligenceV1p3beta1WordInfo struct {
+	// Confidence: Output only. The confidence estimate between 0.0 and 1.0.
+	// A higher number
+	// indicates an estimated greater likelihood that the recognized words
+	// are
+	// correct. This field is set only for the top alternative.
+	// This field is not guaranteed to be accurate and users should not rely
+	// on it
+	// to be always provided.
+	// The default of 0.0 is a sentinel value indicating `confidence` was
+	// not set.
+	Confidence float64 `json:"confidence,omitempty"`
+
+	// EndTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the end of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	EndTime string `json:"endTime,omitempty"`
+
+	// SpeakerTag: Output only. A distinct integer value is assigned for
+	// every speaker within
+	// the audio. This field specifies which one of those speakers was
+	// detected to
+	// have spoken this word. Value ranges from 1 up to
+	// diarization_speaker_count,
+	// and is only set if speaker diarization is enabled.
+	SpeakerTag int64 `json:"speakerTag,omitempty"`
+
+	// StartTime: Time offset relative to the beginning of the audio,
+	// and
+	// corresponding to the start of the spoken word. This field is only set
+	// if
+	// `enable_word_time_offsets=true` and only in the top hypothesis. This
+	// is an
+	// experimental feature and the accuracy of the time offset can vary.
+	StartTime string `json:"startTime,omitempty"`
+
+	// Word: The word corresponding to this set of information.
+	Word string `json:"word,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Confidence") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Confidence") to include in
+	// API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+func (s *GoogleCloudVideointelligenceV1p3beta1WordInfo) UnmarshalJSON(data []byte) error {
+	type NoMethod GoogleCloudVideointelligenceV1p3beta1WordInfo
+	var s1 struct {
+		Confidence gensupport.JSONFloat64 `json:"confidence"`
+		*NoMethod
+	}
+	s1.NoMethod = (*NoMethod)(s)
+	if err := json.Unmarshal(data, &s1); err != nil {
+		return err
+	}
+	s.Confidence = float64(s1.Confidence)
+	return nil
+}
+
+// GoogleLongrunningOperation: This resource represents a long-running
+// operation that is the result of a
+// network API call.
+type GoogleLongrunningOperation struct {
+	// Done: If the value is `false`, it means the operation is still in
+	// progress.
+	// If `true`, the operation is completed, and either `error` or
+	// `response` is
+	// available.
+	Done bool `json:"done,omitempty"`
+
+	// Error: The error result of the operation in case of failure or
+	// cancellation.
+	Error *GoogleRpcStatus `json:"error,omitempty"`
+
+	// Metadata: Service-specific metadata associated with the operation.
+	// It typically
+	// contains progress information and common metadata such as create
+	// time.
+	// Some services might not provide such metadata.  Any method that
+	// returns a
+	// long-running operation should document the metadata type, if any.
+	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
+
+	// Name: The server-assigned name, which is only unique within the same
+	// service that
+	// originally returns it. If you use the default HTTP mapping,
+	// the
+	// `name` should have the format of `operations/some/unique/name`.
+	Name string `json:"name,omitempty"`
+
+	// Response: The normal response of the operation in case of success.
+	// If the original
+	// method returns no data on success, such as `Delete`, the response
+	// is
+	// `google.protobuf.Empty`.  If the original method is
+	// standard
+	// `Get`/`Create`/`Update`, the response should be the resource.  For
+	// other
+	// methods, the response should have the type `XxxResponse`, where
+	// `Xxx`
+	// is the original method name.  For example, if the original method
+	// name
+	// is `TakeSnapshot()`, the inferred response type
+	// is
+	// `TakeSnapshotResponse`.
+	Response googleapi.RawMessage `json:"response,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "Done") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Done") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleLongrunningOperation) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleLongrunningOperation
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// GoogleRpcStatus: 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` that can be used for common error
+// conditions.
+//
+// # Language mapping
+//
+// The `Status` message is the logical representation of the error
+// model, but it
+// is not necessarily the actual wire format. When the `Status` message
+// is
+// exposed in different client libraries and different wire protocols,
+// it can be
+// mapped differently. For example, it will likely be mapped to some
+// exceptions
+// in Java, but more likely mapped to some error codes in C.
+//
+// # Other uses
+//
+// The error model and the `Status` message can be used in a variety
+// of
+// environments, either with or without APIs, to provide a
+// consistent developer experience across different
+// environments.
+//
+// Example uses of this error model include:
+//
+// - Partial errors. If a service needs to return partial errors to the
+// client,
+//     it may embed the `Status` in the normal response to indicate the
+// partial
+//     errors.
+//
+// - Workflow errors. A typical workflow has multiple steps. Each step
+// may
+//     have a `Status` message for error reporting.
+//
+// - Batch operations. If a client uses batch request and batch
+// response, the
+//     `Status` message should be used directly inside batch response,
+// one for
+//     each error sub-response.
+//
+// - Asynchronous operations. If an API call embeds asynchronous
+// operation
+//     results in its response, the status of those operations should
+// be
+//     represented directly using the `Status` message.
+//
+// - Logging. If some API errors are stored in logs, the message
+// `Status` could
+//     be used directly after any stripping needed for security/privacy
+// reasons.
+type GoogleRpcStatus struct {
+	// Code: The status code, which should be an enum value of
+	// google.rpc.Code.
+	Code int64 `json:"code,omitempty"`
+
+	// Details: A list of messages that carry the error details.  There is a
+	// common set of
+	// message types for APIs to use.
+	Details []googleapi.RawMessage `json:"details,omitempty"`
+
+	// 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 field, or localized by the client.
+	Message string `json:"message,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "Code") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "Code") to include in API
+	// requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. However, any field with an
+	// empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleRpcStatus) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleRpcStatus
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// method id "videointelligence.videos.annotate":
+
+type VideosAnnotateCall struct {
+	s                                                         *Service
+	googlecloudvideointelligencev1p3beta1Annotatevideorequest *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoRequest
+	urlParams_                                                gensupport.URLParams
+	ctx_                                                      context.Context
+	header_                                                   http.Header
+}
+
+// Annotate: Performs asynchronous video annotation. Progress and
+// results can be
+// retrieved through the `google.longrunning.Operations`
+// interface.
+// `Operation.metadata` contains `AnnotateVideoProgress`
+// (progress).
+// `Operation.response` contains `AnnotateVideoResponse` (results).
+func (r *VideosService) Annotate(googlecloudvideointelligencev1p3beta1Annotatevideorequest *GoogleCloudVideointelligenceV1p3beta1AnnotateVideoRequest) *VideosAnnotateCall {
+	c := &VideosAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.googlecloudvideointelligencev1p3beta1Annotatevideorequest = googlecloudvideointelligencev1p3beta1Annotatevideorequest
+	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 *VideosAnnotateCall) Fields(s ...googleapi.Field) *VideosAnnotateCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *VideosAnnotateCall) Context(ctx context.Context) *VideosAnnotateCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *VideosAnnotateCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *VideosAnnotateCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvideointelligencev1p3beta1Annotatevideorequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v1p3beta1/videos:annotate")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	req.Header = reqHeaders
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "videointelligence.videos.annotate" call.
+// Exactly one of *GoogleLongrunningOperation or error will be non-nil.
+// Any non-2xx status code is an error. Response headers are in either
+// *GoogleLongrunningOperation.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 *VideosAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &GoogleLongrunningOperation{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Performs asynchronous video annotation. Progress and results can be\nretrieved through the `google.longrunning.Operations` interface.\n`Operation.metadata` contains `AnnotateVideoProgress` (progress).\n`Operation.response` contains `AnnotateVideoResponse` (results).",
+	//   "flatPath": "v1p3beta1/videos:annotate",
+	//   "httpMethod": "POST",
+	//   "id": "videointelligence.videos.annotate",
+	//   "parameterOrder": [],
+	//   "parameters": {},
+	//   "path": "v1p3beta1/videos:annotate",
+	//   "request": {
+	//     "$ref": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "GoogleLongrunning_Operation"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/cloud-platform"
+	//   ]
+	// }
+
+}
diff --git a/vision/v1/vision-api.json b/vision/v1/vision-api.json
index 208569b..f586eff 100644
--- a/vision/v1/vision-api.json
+++ b/vision/v1/vision-api.json
@@ -906,7 +906,7 @@
       }
     }
   },
-  "revision": "20190212",
+  "revision": "20190309",
   "rootUrl": "https://vision.googleapis.com/",
   "schemas": {
     "AddProductToProductSetRequest": {
@@ -1244,7 +1244,7 @@
       "type": "object"
     },
     "Color": {
-      "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well. Here are some examples:\n\nExample (Java):\n\n     import com.google.type.Color;\n\n     // ...\n     public static java.awt.Color fromProto(Color protocolor) {\n       float alpha = protocolor.hasAlpha()\n           ? protocolor.getAlpha().getValue()\n           : 1.0;\n\n       return new java.awt.Color(\n           protocolor.getRed(),\n           protocolor.getGreen(),\n           protocolor.getBlue(),\n           alpha);\n     }\n\n     public static Color toProto(java.awt.Color color) {\n       float red = (float) color.getRed();\n       float green = (float) color.getGreen();\n       float blue = (float) color.getBlue();\n       float denominator = 255.0;\n       Color.Builder resultBuilder =\n           Color\n               .newBuilder()\n               .setRed(red / denominator)\n               .setGreen(green / denominator)\n               .setBlue(blue / denominator);\n       int alpha = color.getAlpha();\n       if (alpha != 255) {\n         result.setAlpha(\n             FloatValue\n                 .newBuilder()\n                 .setValue(((float) alpha) / denominator)\n                 .build());\n       }\n       return resultBuilder.build();\n     }\n     // ...\n\nExample (iOS / Obj-C):\n\n     // ...\n     static UIColor* fromProto(Color* protocolor) {\n        float red = [protocolor red];\n        float green = [protocolor green];\n        float blue = [protocolor blue];\n        FloatValue* alpha_wrapper = [protocolor alpha];\n        float alpha = 1.0;\n        if (alpha_wrapper != nil) {\n          alpha = [alpha_wrapper value];\n        }\n        return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n     }\n\n     static Color* toProto(UIColor* color) {\n         CGFloat red, green, blue, alpha;\n         if (![color getRed:\u0026red green:\u0026green blue:\u0026blue alpha:\u0026alpha]) {\n           return nil;\n         }\n         Color* result = [[Color alloc] init];\n         [result setRed:red];\n         [result setGreen:green];\n         [result setBlue:blue];\n         if (alpha \u003c= 0.9999) {\n           [result setAlpha:floatWrapperWithValue(alpha)];\n         }\n         [result autorelease];\n         return result;\n    }\n    // ...\n\n Example (JavaScript):\n\n    // ...\n\n    var protoToCssColor = function(rgb_color) {\n       var redFrac = rgb_color.red || 0.0;\n       var greenFrac = rgb_color.green || 0.0;\n       var blueFrac = rgb_color.blue || 0.0;\n       var red = Math.floor(redFrac * 255);\n       var green = Math.floor(greenFrac * 255);\n       var blue = Math.floor(blueFrac * 255);\n\n       if (!('alpha' in rgb_color)) {\n          return rgbToCssColor_(red, green, blue);\n       }\n\n       var alphaFrac = rgb_color.alpha.value || 0.0;\n       var rgbParams = [red, green, blue].join(',');\n       return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n    };\n\n    var rgbToCssColor_ = function(red, green, blue) {\n      var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n      var hexString = rgbNumber.toString(16);\n      var missingZeros = 6 - hexString.length;\n      var resultBuilder = ['#'];\n      for (var i = 0; i \u003c missingZeros; i++) {\n         resultBuilder.push('0');\n      }\n      resultBuilder.push(hexString);\n      return resultBuilder.join('');\n    };\n\n    // ...",
+      "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well.\n\nNote: this proto does not carry information about the absolute color space\nthat should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,\nDCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color\nspace.\n\nExample (Java):\n\n     import com.google.type.Color;\n\n     // ...\n     public static java.awt.Color fromProto(Color protocolor) {\n       float alpha = protocolor.hasAlpha()\n           ? protocolor.getAlpha().getValue()\n           : 1.0;\n\n       return new java.awt.Color(\n           protocolor.getRed(),\n           protocolor.getGreen(),\n           protocolor.getBlue(),\n           alpha);\n     }\n\n     public static Color toProto(java.awt.Color color) {\n       float red = (float) color.getRed();\n       float green = (float) color.getGreen();\n       float blue = (float) color.getBlue();\n       float denominator = 255.0;\n       Color.Builder resultBuilder =\n           Color\n               .newBuilder()\n               .setRed(red / denominator)\n               .setGreen(green / denominator)\n               .setBlue(blue / denominator);\n       int alpha = color.getAlpha();\n       if (alpha != 255) {\n         result.setAlpha(\n             FloatValue\n                 .newBuilder()\n                 .setValue(((float) alpha) / denominator)\n                 .build());\n       }\n       return resultBuilder.build();\n     }\n     // ...\n\nExample (iOS / Obj-C):\n\n     // ...\n     static UIColor* fromProto(Color* protocolor) {\n        float red = [protocolor red];\n        float green = [protocolor green];\n        float blue = [protocolor blue];\n        FloatValue* alpha_wrapper = [protocolor alpha];\n        float alpha = 1.0;\n        if (alpha_wrapper != nil) {\n          alpha = [alpha_wrapper value];\n        }\n        return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n     }\n\n     static Color* toProto(UIColor* color) {\n         CGFloat red, green, blue, alpha;\n         if (![color getRed:\u0026red green:\u0026green blue:\u0026blue alpha:\u0026alpha]) {\n           return nil;\n         }\n         Color* result = [[Color alloc] init];\n         [result setRed:red];\n         [result setGreen:green];\n         [result setBlue:blue];\n         if (alpha \u003c= 0.9999) {\n           [result setAlpha:floatWrapperWithValue(alpha)];\n         }\n         [result autorelease];\n         return result;\n    }\n    // ...\n\n Example (JavaScript):\n\n    // ...\n\n    var protoToCssColor = function(rgb_color) {\n       var redFrac = rgb_color.red || 0.0;\n       var greenFrac = rgb_color.green || 0.0;\n       var blueFrac = rgb_color.blue || 0.0;\n       var red = Math.floor(redFrac * 255);\n       var green = Math.floor(greenFrac * 255);\n       var blue = Math.floor(blueFrac * 255);\n\n       if (!('alpha' in rgb_color)) {\n          return rgbToCssColor_(red, green, blue);\n       }\n\n       var alphaFrac = rgb_color.alpha.value || 0.0;\n       var rgbParams = [red, green, blue].join(',');\n       return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n    };\n\n    var rgbToCssColor_ = function(red, green, blue) {\n      var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n      var hexString = rgbNumber.toString(16);\n      var missingZeros = 6 - hexString.length;\n      var resultBuilder = ['#'];\n      for (var i = 0; i \u003c missingZeros; i++) {\n         resultBuilder.push('0');\n      }\n      resultBuilder.push(hexString);\n      return resultBuilder.join('');\n    };\n\n    // ...",
       "id": "Color",
       "properties": {
         "alpha": {
@@ -8283,7 +8283,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/vision/v1/vision-gen.go b/vision/v1/vision-gen.go
index 30a55b9..05b7a7b 100644
--- a/vision/v1/vision-gen.go
+++ b/vision/v1/vision-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/vision/apiv1 instead.
 //
-// See https://cloud.google.com/vision/
+// For product documentation, see: https://cloud.google.com/vision/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/vision/v1"
 //   ...
-//   visionService, err := vision.New(oauthHttpClient)
+//   ctx := context.Background()
+//   visionService, err := vision.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   visionService, err := vision.NewService(ctx, option.WithScopes(vision.CloudVisionScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   visionService, err := vision.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   visionService, err := vision.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package vision // import "google.golang.org/api/vision/v1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	CloudVisionScope = "https://www.googleapis.com/auth/cloud-vision"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-vision",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -788,8 +843,15 @@
 // "+colorWithRed:green:blue:alpha"
 // method in iOS; and, with just a little work, it can be easily
 // formatted into
-// a CSS "rgba()" string in JavaScript, as well. Here are some
-// examples:
+// a CSS "rgba()" string in JavaScript, as well.
+//
+// Note: this proto does not carry information about the absolute color
+// space
+// that should be used to interpret the RGB value (e.g. sRGB, Adobe
+// RGB,
+// DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the
+// sRGB color
+// space.
 //
 // Example (Java):
 //
@@ -13782,20 +13844,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/vision/v1p1beta1/vision-api.json b/vision/v1p1beta1/vision-api.json
index 75bd195..ffe72c4 100644
--- a/vision/v1p1beta1/vision-api.json
+++ b/vision/v1p1beta1/vision-api.json
@@ -154,7 +154,7 @@
       }
     }
   },
-  "revision": "20190212",
+  "revision": "20190309",
   "rootUrl": "https://vision.googleapis.com/",
   "schemas": {
     "AnnotateFileResponse": {
@@ -385,7 +385,7 @@
       "type": "object"
     },
     "Color": {
-      "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well. Here are some examples:\n\nExample (Java):\n\n     import com.google.type.Color;\n\n     // ...\n     public static java.awt.Color fromProto(Color protocolor) {\n       float alpha = protocolor.hasAlpha()\n           ? protocolor.getAlpha().getValue()\n           : 1.0;\n\n       return new java.awt.Color(\n           protocolor.getRed(),\n           protocolor.getGreen(),\n           protocolor.getBlue(),\n           alpha);\n     }\n\n     public static Color toProto(java.awt.Color color) {\n       float red = (float) color.getRed();\n       float green = (float) color.getGreen();\n       float blue = (float) color.getBlue();\n       float denominator = 255.0;\n       Color.Builder resultBuilder =\n           Color\n               .newBuilder()\n               .setRed(red / denominator)\n               .setGreen(green / denominator)\n               .setBlue(blue / denominator);\n       int alpha = color.getAlpha();\n       if (alpha != 255) {\n         result.setAlpha(\n             FloatValue\n                 .newBuilder()\n                 .setValue(((float) alpha) / denominator)\n                 .build());\n       }\n       return resultBuilder.build();\n     }\n     // ...\n\nExample (iOS / Obj-C):\n\n     // ...\n     static UIColor* fromProto(Color* protocolor) {\n        float red = [protocolor red];\n        float green = [protocolor green];\n        float blue = [protocolor blue];\n        FloatValue* alpha_wrapper = [protocolor alpha];\n        float alpha = 1.0;\n        if (alpha_wrapper != nil) {\n          alpha = [alpha_wrapper value];\n        }\n        return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n     }\n\n     static Color* toProto(UIColor* color) {\n         CGFloat red, green, blue, alpha;\n         if (![color getRed:\u0026red green:\u0026green blue:\u0026blue alpha:\u0026alpha]) {\n           return nil;\n         }\n         Color* result = [[Color alloc] init];\n         [result setRed:red];\n         [result setGreen:green];\n         [result setBlue:blue];\n         if (alpha \u003c= 0.9999) {\n           [result setAlpha:floatWrapperWithValue(alpha)];\n         }\n         [result autorelease];\n         return result;\n    }\n    // ...\n\n Example (JavaScript):\n\n    // ...\n\n    var protoToCssColor = function(rgb_color) {\n       var redFrac = rgb_color.red || 0.0;\n       var greenFrac = rgb_color.green || 0.0;\n       var blueFrac = rgb_color.blue || 0.0;\n       var red = Math.floor(redFrac * 255);\n       var green = Math.floor(greenFrac * 255);\n       var blue = Math.floor(blueFrac * 255);\n\n       if (!('alpha' in rgb_color)) {\n          return rgbToCssColor_(red, green, blue);\n       }\n\n       var alphaFrac = rgb_color.alpha.value || 0.0;\n       var rgbParams = [red, green, blue].join(',');\n       return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n    };\n\n    var rgbToCssColor_ = function(red, green, blue) {\n      var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n      var hexString = rgbNumber.toString(16);\n      var missingZeros = 6 - hexString.length;\n      var resultBuilder = ['#'];\n      for (var i = 0; i \u003c missingZeros; i++) {\n         resultBuilder.push('0');\n      }\n      resultBuilder.push(hexString);\n      return resultBuilder.join('');\n    };\n\n    // ...",
+      "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well.\n\nNote: this proto does not carry information about the absolute color space\nthat should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,\nDCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color\nspace.\n\nExample (Java):\n\n     import com.google.type.Color;\n\n     // ...\n     public static java.awt.Color fromProto(Color protocolor) {\n       float alpha = protocolor.hasAlpha()\n           ? protocolor.getAlpha().getValue()\n           : 1.0;\n\n       return new java.awt.Color(\n           protocolor.getRed(),\n           protocolor.getGreen(),\n           protocolor.getBlue(),\n           alpha);\n     }\n\n     public static Color toProto(java.awt.Color color) {\n       float red = (float) color.getRed();\n       float green = (float) color.getGreen();\n       float blue = (float) color.getBlue();\n       float denominator = 255.0;\n       Color.Builder resultBuilder =\n           Color\n               .newBuilder()\n               .setRed(red / denominator)\n               .setGreen(green / denominator)\n               .setBlue(blue / denominator);\n       int alpha = color.getAlpha();\n       if (alpha != 255) {\n         result.setAlpha(\n             FloatValue\n                 .newBuilder()\n                 .setValue(((float) alpha) / denominator)\n                 .build());\n       }\n       return resultBuilder.build();\n     }\n     // ...\n\nExample (iOS / Obj-C):\n\n     // ...\n     static UIColor* fromProto(Color* protocolor) {\n        float red = [protocolor red];\n        float green = [protocolor green];\n        float blue = [protocolor blue];\n        FloatValue* alpha_wrapper = [protocolor alpha];\n        float alpha = 1.0;\n        if (alpha_wrapper != nil) {\n          alpha = [alpha_wrapper value];\n        }\n        return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n     }\n\n     static Color* toProto(UIColor* color) {\n         CGFloat red, green, blue, alpha;\n         if (![color getRed:\u0026red green:\u0026green blue:\u0026blue alpha:\u0026alpha]) {\n           return nil;\n         }\n         Color* result = [[Color alloc] init];\n         [result setRed:red];\n         [result setGreen:green];\n         [result setBlue:blue];\n         if (alpha \u003c= 0.9999) {\n           [result setAlpha:floatWrapperWithValue(alpha)];\n         }\n         [result autorelease];\n         return result;\n    }\n    // ...\n\n Example (JavaScript):\n\n    // ...\n\n    var protoToCssColor = function(rgb_color) {\n       var redFrac = rgb_color.red || 0.0;\n       var greenFrac = rgb_color.green || 0.0;\n       var blueFrac = rgb_color.blue || 0.0;\n       var red = Math.floor(redFrac * 255);\n       var green = Math.floor(greenFrac * 255);\n       var blue = Math.floor(blueFrac * 255);\n\n       if (!('alpha' in rgb_color)) {\n          return rgbToCssColor_(red, green, blue);\n       }\n\n       var alphaFrac = rgb_color.alpha.value || 0.0;\n       var rgbParams = [red, green, blue].join(',');\n       return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n    };\n\n    var rgbToCssColor_ = function(red, green, blue) {\n      var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n      var hexString = rgbNumber.toString(16);\n      var missingZeros = 6 - hexString.length;\n      var resultBuilder = ['#'];\n      for (var i = 0; i \u003c missingZeros; i++) {\n         resultBuilder.push('0');\n      }\n      resultBuilder.push(hexString);\n      return resultBuilder.join('');\n    };\n\n    // ...",
       "id": "Color",
       "properties": {
         "alpha": {
@@ -7356,7 +7356,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/vision/v1p1beta1/vision-gen.go b/vision/v1p1beta1/vision-gen.go
index e706c6a..a8e6bee 100644
--- a/vision/v1p1beta1/vision-gen.go
+++ b/vision/v1p1beta1/vision-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/vision/apiv1 instead.
 //
-// See https://cloud.google.com/vision/
+// For product documentation, see: https://cloud.google.com/vision/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/vision/v1p1beta1"
 //   ...
-//   visionService, err := vision.New(oauthHttpClient)
+//   ctx := context.Background()
+//   visionService, err := vision.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   visionService, err := vision.NewService(ctx, option.WithScopes(vision.CloudVisionScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   visionService, err := vision.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   visionService, err := vision.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package vision // import "google.golang.org/api/vision/v1p1beta1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	CloudVisionScope = "https://www.googleapis.com/auth/cloud-vision"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-vision",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -474,8 +529,15 @@
 // "+colorWithRed:green:blue:alpha"
 // method in iOS; and, with just a little work, it can be easily
 // formatted into
-// a CSS "rgba()" string in JavaScript, as well. Here are some
-// examples:
+// a CSS "rgba()" string in JavaScript, as well.
+//
+// Note: this proto does not carry information about the absolute color
+// space
+// that should be used to interpret the RGB value (e.g. sRGB, Adobe
+// RGB,
+// DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the
+// sRGB color
+// space.
 //
 // Example (Java):
 //
@@ -13188,20 +13250,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/vision/v1p2beta1/vision-api.json b/vision/v1p2beta1/vision-api.json
index 74179a3..9f144f2 100644
--- a/vision/v1p2beta1/vision-api.json
+++ b/vision/v1p2beta1/vision-api.json
@@ -154,7 +154,7 @@
       }
     }
   },
-  "revision": "20190212",
+  "revision": "20190309",
   "rootUrl": "https://vision.googleapis.com/",
   "schemas": {
     "AnnotateFileResponse": {
@@ -385,7 +385,7 @@
       "type": "object"
     },
     "Color": {
-      "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well. Here are some examples:\n\nExample (Java):\n\n     import com.google.type.Color;\n\n     // ...\n     public static java.awt.Color fromProto(Color protocolor) {\n       float alpha = protocolor.hasAlpha()\n           ? protocolor.getAlpha().getValue()\n           : 1.0;\n\n       return new java.awt.Color(\n           protocolor.getRed(),\n           protocolor.getGreen(),\n           protocolor.getBlue(),\n           alpha);\n     }\n\n     public static Color toProto(java.awt.Color color) {\n       float red = (float) color.getRed();\n       float green = (float) color.getGreen();\n       float blue = (float) color.getBlue();\n       float denominator = 255.0;\n       Color.Builder resultBuilder =\n           Color\n               .newBuilder()\n               .setRed(red / denominator)\n               .setGreen(green / denominator)\n               .setBlue(blue / denominator);\n       int alpha = color.getAlpha();\n       if (alpha != 255) {\n         result.setAlpha(\n             FloatValue\n                 .newBuilder()\n                 .setValue(((float) alpha) / denominator)\n                 .build());\n       }\n       return resultBuilder.build();\n     }\n     // ...\n\nExample (iOS / Obj-C):\n\n     // ...\n     static UIColor* fromProto(Color* protocolor) {\n        float red = [protocolor red];\n        float green = [protocolor green];\n        float blue = [protocolor blue];\n        FloatValue* alpha_wrapper = [protocolor alpha];\n        float alpha = 1.0;\n        if (alpha_wrapper != nil) {\n          alpha = [alpha_wrapper value];\n        }\n        return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n     }\n\n     static Color* toProto(UIColor* color) {\n         CGFloat red, green, blue, alpha;\n         if (![color getRed:\u0026red green:\u0026green blue:\u0026blue alpha:\u0026alpha]) {\n           return nil;\n         }\n         Color* result = [[Color alloc] init];\n         [result setRed:red];\n         [result setGreen:green];\n         [result setBlue:blue];\n         if (alpha \u003c= 0.9999) {\n           [result setAlpha:floatWrapperWithValue(alpha)];\n         }\n         [result autorelease];\n         return result;\n    }\n    // ...\n\n Example (JavaScript):\n\n    // ...\n\n    var protoToCssColor = function(rgb_color) {\n       var redFrac = rgb_color.red || 0.0;\n       var greenFrac = rgb_color.green || 0.0;\n       var blueFrac = rgb_color.blue || 0.0;\n       var red = Math.floor(redFrac * 255);\n       var green = Math.floor(greenFrac * 255);\n       var blue = Math.floor(blueFrac * 255);\n\n       if (!('alpha' in rgb_color)) {\n          return rgbToCssColor_(red, green, blue);\n       }\n\n       var alphaFrac = rgb_color.alpha.value || 0.0;\n       var rgbParams = [red, green, blue].join(',');\n       return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n    };\n\n    var rgbToCssColor_ = function(red, green, blue) {\n      var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n      var hexString = rgbNumber.toString(16);\n      var missingZeros = 6 - hexString.length;\n      var resultBuilder = ['#'];\n      for (var i = 0; i \u003c missingZeros; i++) {\n         resultBuilder.push('0');\n      }\n      resultBuilder.push(hexString);\n      return resultBuilder.join('');\n    };\n\n    // ...",
+      "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well.\n\nNote: this proto does not carry information about the absolute color space\nthat should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,\nDCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color\nspace.\n\nExample (Java):\n\n     import com.google.type.Color;\n\n     // ...\n     public static java.awt.Color fromProto(Color protocolor) {\n       float alpha = protocolor.hasAlpha()\n           ? protocolor.getAlpha().getValue()\n           : 1.0;\n\n       return new java.awt.Color(\n           protocolor.getRed(),\n           protocolor.getGreen(),\n           protocolor.getBlue(),\n           alpha);\n     }\n\n     public static Color toProto(java.awt.Color color) {\n       float red = (float) color.getRed();\n       float green = (float) color.getGreen();\n       float blue = (float) color.getBlue();\n       float denominator = 255.0;\n       Color.Builder resultBuilder =\n           Color\n               .newBuilder()\n               .setRed(red / denominator)\n               .setGreen(green / denominator)\n               .setBlue(blue / denominator);\n       int alpha = color.getAlpha();\n       if (alpha != 255) {\n         result.setAlpha(\n             FloatValue\n                 .newBuilder()\n                 .setValue(((float) alpha) / denominator)\n                 .build());\n       }\n       return resultBuilder.build();\n     }\n     // ...\n\nExample (iOS / Obj-C):\n\n     // ...\n     static UIColor* fromProto(Color* protocolor) {\n        float red = [protocolor red];\n        float green = [protocolor green];\n        float blue = [protocolor blue];\n        FloatValue* alpha_wrapper = [protocolor alpha];\n        float alpha = 1.0;\n        if (alpha_wrapper != nil) {\n          alpha = [alpha_wrapper value];\n        }\n        return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n     }\n\n     static Color* toProto(UIColor* color) {\n         CGFloat red, green, blue, alpha;\n         if (![color getRed:\u0026red green:\u0026green blue:\u0026blue alpha:\u0026alpha]) {\n           return nil;\n         }\n         Color* result = [[Color alloc] init];\n         [result setRed:red];\n         [result setGreen:green];\n         [result setBlue:blue];\n         if (alpha \u003c= 0.9999) {\n           [result setAlpha:floatWrapperWithValue(alpha)];\n         }\n         [result autorelease];\n         return result;\n    }\n    // ...\n\n Example (JavaScript):\n\n    // ...\n\n    var protoToCssColor = function(rgb_color) {\n       var redFrac = rgb_color.red || 0.0;\n       var greenFrac = rgb_color.green || 0.0;\n       var blueFrac = rgb_color.blue || 0.0;\n       var red = Math.floor(redFrac * 255);\n       var green = Math.floor(greenFrac * 255);\n       var blue = Math.floor(blueFrac * 255);\n\n       if (!('alpha' in rgb_color)) {\n          return rgbToCssColor_(red, green, blue);\n       }\n\n       var alphaFrac = rgb_color.alpha.value || 0.0;\n       var rgbParams = [red, green, blue].join(',');\n       return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n    };\n\n    var rgbToCssColor_ = function(red, green, blue) {\n      var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n      var hexString = rgbNumber.toString(16);\n      var missingZeros = 6 - hexString.length;\n      var resultBuilder = ['#'];\n      for (var i = 0; i \u003c missingZeros; i++) {\n         resultBuilder.push('0');\n      }\n      resultBuilder.push(hexString);\n      return resultBuilder.join('');\n    };\n\n    // ...",
       "id": "Color",
       "properties": {
         "alpha": {
@@ -7356,7 +7356,7 @@
       "type": "object"
     },
     "Status": {
-      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
+      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error\nmessage, and error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
       "id": "Status",
       "properties": {
         "code": {
diff --git a/vision/v1p2beta1/vision-gen.go b/vision/v1p2beta1/vision-gen.go
index 45d3c13..1367d94 100644
--- a/vision/v1p2beta1/vision-gen.go
+++ b/vision/v1p2beta1/vision-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -8,13 +8,39 @@
 //
 // This package is DEPRECATED. Use package cloud.google.com/go/vision/apiv1 instead.
 //
-// See https://cloud.google.com/vision/
+// For product documentation, see: https://cloud.google.com/vision/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/vision/v1p2beta1"
 //   ...
-//   visionService, err := vision.New(oauthHttpClient)
+//   ctx := context.Background()
+//   visionService, err := vision.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   visionService, err := vision.NewService(ctx, option.WithScopes(vision.CloudVisionScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   visionService, err := vision.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   visionService, err := vision.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package vision // import "google.golang.org/api/vision/v1p2beta1"
 
 import (
@@ -31,6 +57,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -61,6 +89,33 @@
 	CloudVisionScope = "https://www.googleapis.com/auth/cloud-vision"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+		"https://www.googleapis.com/auth/cloud-vision",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
@@ -474,8 +529,15 @@
 // "+colorWithRed:green:blue:alpha"
 // method in iOS; and, with just a little work, it can be easily
 // formatted into
-// a CSS "rgba()" string in JavaScript, as well. Here are some
-// examples:
+// a CSS "rgba()" string in JavaScript, as well.
+//
+// Note: this proto does not carry information about the absolute color
+// space
+// that should be used to interpret the RGB value (e.g. sRGB, Adobe
+// RGB,
+// DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the
+// sRGB color
+// space.
 //
 // Example (Java):
 //
@@ -13188,20 +13250,20 @@
 }
 
 // Status: 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:
+// 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
+// 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
diff --git a/webfonts/v1/webfonts-gen.go b/webfonts/v1/webfonts-gen.go
index 44b31a7..2445f61 100644
--- a/webfonts/v1/webfonts-gen.go
+++ b/webfonts/v1/webfonts-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package webfonts provides access to the Google Fonts Developer API.
 //
-// See https://developers.google.com/fonts/docs/developer_api
+// For product documentation, see: https://developers.google.com/fonts/docs/developer_api
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/webfonts/v1"
 //   ...
-//   webfontsService, err := webfonts.New(oauthHttpClient)
+//   ctx := context.Background()
+//   webfontsService, err := webfonts.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   webfontsService, err := webfonts.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   webfontsService, err := webfonts.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package webfonts // import "google.golang.org/api/webfonts/v1"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -50,6 +74,27 @@
 const apiVersion = "v1"
 const basePath = "https://www.googleapis.com/webfonts/v1/"
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/webmasters/v3/webmasters-gen.go b/webmasters/v3/webmasters-gen.go
index 4aab1cd..16ffe02 100644
--- a/webmasters/v3/webmasters-gen.go
+++ b/webmasters/v3/webmasters-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package webmasters provides access to the Search Console API.
 //
-// See https://developers.google.com/webmaster-tools/
+// For product documentation, see: https://developers.google.com/webmaster-tools/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/webmasters/v3"
 //   ...
-//   webmastersService, err := webmasters.New(oauthHttpClient)
+//   ctx := context.Background()
+//   webmastersService, err := webmasters.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   webmastersService, err := webmasters.NewService(ctx, option.WithScopes(webmasters.WebmastersReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   webmastersService, err := webmasters.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   webmastersService, err := webmasters.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package webmasters // import "google.golang.org/api/webmasters/v3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -59,6 +87,33 @@
 	WebmastersReadonlyScope = "https://www.googleapis.com/auth/webmasters.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/webmasters",
+		"https://www.googleapis.com/auth/webmasters.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/websecurityscanner/v1alpha/websecurityscanner-gen.go b/websecurityscanner/v1alpha/websecurityscanner-gen.go
index 7dd73c3..0f9def4 100644
--- a/websecurityscanner/v1alpha/websecurityscanner-gen.go
+++ b/websecurityscanner/v1alpha/websecurityscanner-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,35 @@
 
 // Package websecurityscanner provides access to the Web Security Scanner API.
 //
-// See https://cloud.google.com/security-scanner/
+// For product documentation, see: https://cloud.google.com/security-scanner/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/websecurityscanner/v1alpha"
 //   ...
-//   websecurityscannerService, err := websecurityscanner.New(oauthHttpClient)
+//   ctx := context.Background()
+//   websecurityscannerService, err := websecurityscanner.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   websecurityscannerService, err := websecurityscanner.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   websecurityscannerService, err := websecurityscanner.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package websecurityscanner // import "google.golang.org/api/websecurityscanner/v1alpha"
 
 import (
@@ -29,6 +51,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -56,6 +80,32 @@
 	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/cloud-platform",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/youtube/v3/youtube-gen.go b/youtube/v3/youtube-gen.go
index 9021a2a..8ab78d7 100644
--- a/youtube/v3/youtube-gen.go
+++ b/youtube/v3/youtube-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package youtube provides access to the YouTube Data API.
 //
-// See https://developers.google.com/youtube/v3
+// For product documentation, see: https://developers.google.com/youtube/v3
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/youtube/v3"
 //   ...
-//   youtubeService, err := youtube.New(oauthHttpClient)
+//   ctx := context.Background()
+//   youtubeService, err := youtube.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   youtubeService, err := youtube.NewService(ctx, option.WithScopes(youtube.YoutubepartnerChannelAuditScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   youtubeService, err := youtube.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   youtubeService, err := youtube.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package youtube // import "google.golang.org/api/youtube/v3"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -73,6 +101,37 @@
 	YoutubepartnerChannelAuditScope = "https://www.googleapis.com/auth/youtubepartner-channel-audit"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/youtube",
+		"https://www.googleapis.com/auth/youtube.force-ssl",
+		"https://www.googleapis.com/auth/youtube.readonly",
+		"https://www.googleapis.com/auth/youtube.upload",
+		"https://www.googleapis.com/auth/youtubepartner",
+		"https://www.googleapis.com/auth/youtubepartner-channel-audit",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/youtubeanalytics/v1/youtubeanalytics-gen.go b/youtubeanalytics/v1/youtubeanalytics-gen.go
index 20f5559..f6bcffd 100644
--- a/youtubeanalytics/v1/youtubeanalytics-gen.go
+++ b/youtubeanalytics/v1/youtubeanalytics-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package youtubeanalytics provides access to the YouTube Analytics API.
 //
-// See http://developers.google.com/youtube/analytics/
+// For product documentation, see: http://developers.google.com/youtube/analytics/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/youtubeanalytics/v1"
 //   ...
-//   youtubeanalyticsService, err := youtubeanalytics.New(oauthHttpClient)
+//   ctx := context.Background()
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx, option.WithScopes(youtubeanalytics.YtAnalyticsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package youtubeanalytics // import "google.golang.org/api/youtubeanalytics/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -69,6 +97,36 @@
 	YtAnalyticsReadonlyScope = "https://www.googleapis.com/auth/yt-analytics.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/youtube",
+		"https://www.googleapis.com/auth/youtube.readonly",
+		"https://www.googleapis.com/auth/youtubepartner",
+		"https://www.googleapis.com/auth/yt-analytics-monetary.readonly",
+		"https://www.googleapis.com/auth/yt-analytics.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/youtubeanalytics/v1beta1/youtubeanalytics-gen.go b/youtubeanalytics/v1beta1/youtubeanalytics-gen.go
index 986cdea..2cc0edf 100644
--- a/youtubeanalytics/v1beta1/youtubeanalytics-gen.go
+++ b/youtubeanalytics/v1beta1/youtubeanalytics-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package youtubeanalytics provides access to the YouTube Analytics API.
 //
-// See http://developers.google.com/youtube/analytics/
+// For product documentation, see: http://developers.google.com/youtube/analytics/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/youtubeanalytics/v1beta1"
 //   ...
-//   youtubeanalyticsService, err := youtubeanalytics.New(oauthHttpClient)
+//   ctx := context.Background()
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx, option.WithScopes(youtubeanalytics.YtAnalyticsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package youtubeanalytics // import "google.golang.org/api/youtubeanalytics/v1beta1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -69,6 +97,36 @@
 	YtAnalyticsReadonlyScope = "https://www.googleapis.com/auth/yt-analytics.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/youtube",
+		"https://www.googleapis.com/auth/youtube.readonly",
+		"https://www.googleapis.com/auth/youtubepartner",
+		"https://www.googleapis.com/auth/yt-analytics-monetary.readonly",
+		"https://www.googleapis.com/auth/yt-analytics.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/youtubeanalytics/v2/youtubeanalytics-gen.go b/youtubeanalytics/v2/youtubeanalytics-gen.go
index 998bf24..8448d07 100644
--- a/youtubeanalytics/v2/youtubeanalytics-gen.go
+++ b/youtubeanalytics/v2/youtubeanalytics-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package youtubeanalytics provides access to the YouTube Analytics API.
 //
-// See https://developers.google.com/youtube/analytics
+// For product documentation, see: https://developers.google.com/youtube/analytics
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/youtubeanalytics/v2"
 //   ...
-//   youtubeanalyticsService, err := youtubeanalytics.New(oauthHttpClient)
+//   ctx := context.Background()
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx, option.WithScopes(youtubeanalytics.YtAnalyticsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   youtubeanalyticsService, err := youtubeanalytics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package youtubeanalytics // import "google.golang.org/api/youtubeanalytics/v2"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -69,6 +97,36 @@
 	YtAnalyticsReadonlyScope = "https://www.googleapis.com/auth/yt-analytics.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/youtube",
+		"https://www.googleapis.com/auth/youtube.readonly",
+		"https://www.googleapis.com/auth/youtubepartner",
+		"https://www.googleapis.com/auth/yt-analytics-monetary.readonly",
+		"https://www.googleapis.com/auth/yt-analytics.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")
diff --git a/youtubereporting/v1/youtubereporting-gen.go b/youtubereporting/v1/youtubereporting-gen.go
index 1813de7..4d5838d 100644
--- a/youtubereporting/v1/youtubereporting-gen.go
+++ b/youtubereporting/v1/youtubereporting-gen.go
@@ -1,4 +1,4 @@
-// Copyright 2019 Google Inc. All rights reserved.
+// Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -6,13 +6,39 @@
 
 // Package youtubereporting provides access to the YouTube Reporting API.
 //
-// See https://developers.google.com/youtube/reporting/v1/reports/
+// For product documentation, see: https://developers.google.com/youtube/reporting/v1/reports/
+//
+// Creating a client
 //
 // Usage example:
 //
 //   import "google.golang.org/api/youtubereporting/v1"
 //   ...
-//   youtubereportingService, err := youtubereporting.New(oauthHttpClient)
+//   ctx := context.Background()
+//   youtubereportingService, err := youtubereporting.NewService(ctx)
+//
+// In this example, Google Application Default Credentials are used for authentication.
+//
+// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
+//
+// Other authentication options
+//
+// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
+//
+//   youtubereportingService, err := youtubereporting.NewService(ctx, option.WithScopes(youtubereporting.YtAnalyticsReadonlyScope))
+//
+// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
+//
+//   youtubereportingService, err := youtubereporting.NewService(ctx, option.WithAPIKey("AIza..."))
+//
+// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
+//
+//   config := &oauth2.Config{...}
+//   // ...
+//   token, err := config.Exchange(ctx, ...)
+//   youtubereportingService, err := youtubereporting.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
+//
+// See https://godoc.org/google.golang.org/api/option/ for details on options.
 package youtubereporting // import "google.golang.org/api/youtubereporting/v1"
 
 import (
@@ -29,6 +55,8 @@
 
 	gensupport "google.golang.org/api/gensupport"
 	googleapi "google.golang.org/api/googleapi"
+	option "google.golang.org/api/option"
+	htransport "google.golang.org/api/transport/http"
 )
 
 // Always reference these packages, just in case the auto-generated code
@@ -60,6 +88,33 @@
 	YtAnalyticsReadonlyScope = "https://www.googleapis.com/auth/yt-analytics.readonly"
 )
 
+// NewService creates a new Service.
+func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
+	scopesOption := option.WithScopes(
+		"https://www.googleapis.com/auth/yt-analytics-monetary.readonly",
+		"https://www.googleapis.com/auth/yt-analytics.readonly",
+	)
+	// NOTE: prepend, so we don't override user-specified scopes.
+	opts = append([]option.ClientOption{scopesOption}, opts...)
+	client, endpoint, err := htransport.NewClient(ctx, opts...)
+	if err != nil {
+		return nil, err
+	}
+	s, err := New(client)
+	if err != nil {
+		return nil, err
+	}
+	if endpoint != "" {
+		s.BasePath = endpoint
+	}
+	return s, nil
+}
+
+// New creates a new Service. It uses the provided http.Client for requests.
+//
+// Deprecated: please use NewService instead.
+// To provide a custom HTTP client, use option.WithHTTPClient.
+// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
 func New(client *http.Client) (*Service, error) {
 	if client == nil {
 		return nil, errors.New("client is nil")