all: get latest api, genproto

Change-Id: I7e0f4d6c39d8bf08718a7ba9d6b93a0045d13fb8
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/47530
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Tyler Bui-Palsulich <tbp@google.com>
diff --git a/asset/apiv1/asset_client.go b/asset/apiv1/asset_client.go
index 87706cd..4fac08e 100644
--- a/asset/apiv1/asset_client.go
+++ b/asset/apiv1/asset_client.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Code generated by gapic-generator. DO NOT EDIT.
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
 
 package asset
 
@@ -44,6 +44,7 @@
 func defaultClientOptions() []option.ClientOption {
 	return []option.ClientOption{
 		option.WithEndpoint("cloudasset.googleapis.com:443"),
+		option.WithGRPCDialOption(grpc.WithDisableServiceConfig()),
 		option.WithScopes(DefaultAuthScopes()...),
 		option.WithGRPCDialOption(grpc.WithDefaultCallOptions(
 			grpc.MaxCallRecvMsgSize(math.MaxInt32))),
@@ -51,8 +52,9 @@
 }
 
 func defaultCallOptions() *CallOptions {
-	retry := map[[2]string][]gax.CallOption{
-		{"default", "idempotent"}: {
+	return &CallOptions{
+		ExportAssets: []gax.CallOption{},
+		BatchGetAssetsHistory: []gax.CallOption{
 			gax.WithRetry(func() gax.Retryer {
 				return gax.OnCodes([]codes.Code{
 					codes.DeadlineExceeded,
@@ -60,15 +62,11 @@
 				}, gax.Backoff{
 					Initial:    100 * time.Millisecond,
 					Max:        60000 * time.Millisecond,
-					Multiplier: 1.3,
+					Multiplier: 1.30,
 				})
 			}),
 		},
 	}
-	return &CallOptions{
-		ExportAssets:          retry[[2]string{"default", "non_idempotent"}],
-		BatchGetAssetsHistory: retry[[2]string{"default", "idempotent"}],
-	}
 }
 
 // Client is a client for interacting with Cloud Asset API.
@@ -205,7 +203,7 @@
 // See documentation of Poll for error-handling information.
 func (op *ExportAssetsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*assetpb.ExportAssetsResponse, error) {
 	var resp assetpb.ExportAssetsResponse
-	if err := op.lro.WaitWithInterval(ctx, &resp, 5000*time.Millisecond, opts...); err != nil {
+	if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil {
 		return nil, err
 	}
 	return &resp, nil
diff --git a/asset/apiv1/asset_client_example_test.go b/asset/apiv1/asset_client_example_test.go
index d838842..cb0ba9d 100644
--- a/asset/apiv1/asset_client_example_test.go
+++ b/asset/apiv1/asset_client_example_test.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Code generated by gapic-generator. DO NOT EDIT.
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
 
 package asset_test
 
@@ -34,6 +34,8 @@
 }
 
 func ExampleClient_ExportAssets() {
+	// import assetpb "google.golang.org/genproto/googleapis/cloud/asset/v1"
+
 	ctx := context.Background()
 	c, err := asset.NewClient(ctx)
 	if err != nil {
@@ -57,6 +59,8 @@
 }
 
 func ExampleClient_BatchGetAssetsHistory() {
+	// import assetpb "google.golang.org/genproto/googleapis/cloud/asset/v1"
+
 	ctx := context.Background()
 	c, err := asset.NewClient(ctx)
 	if err != nil {
diff --git a/asset/apiv1/doc.go b/asset/apiv1/doc.go
index 9be444e..948251e 100644
--- a/asset/apiv1/doc.go
+++ b/asset/apiv1/doc.go
@@ -12,15 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Code generated by gapic-generator. DO NOT EDIT.
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
 
 // Package asset is an auto-generated package for the
 // Cloud Asset API.
 //
-//   NOTE: This package is in alpha. It is not stable, and is likely to change.
-//
 // The cloud asset API manages the history and inventory of cloud resources.
 //
+//   NOTE: This package is in alpha. It is not stable, and is likely to change.
+//
 // Use of Context
 //
 // The ctx passed to NewClient is used for authentication requests and
@@ -31,6 +31,7 @@
 //
 // For information about setting deadlines, reusing contexts, and more
 // please visit godoc.org/cloud.google.com/go.
+
 package asset // import "cloud.google.com/go/asset/apiv1"
 
 import (
@@ -42,6 +43,8 @@
 	"google.golang.org/grpc/metadata"
 )
 
+const versionClient = "20191028"
+
 func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
 	out, _ := metadata.FromOutgoingContext(ctx)
 	out = out.Copy()
@@ -75,7 +78,7 @@
 	}
 
 	notSemverRune := func(r rune) bool {
-		return strings.IndexRune("0123456789.", r) < 0
+		return !strings.ContainsRune("0123456789.", r)
 	}
 
 	if strings.HasPrefix(s, "go1") {
@@ -96,5 +99,3 @@
 	}
 	return "UNKNOWN"
 }
-
-const versionClient = "UNKNOWN"
diff --git a/automl/apiv1/auto_ml_client.go b/automl/apiv1/auto_ml_client.go
index 6dde76e..06d31e6 100644
--- a/automl/apiv1/auto_ml_client.go
+++ b/automl/apiv1/auto_ml_client.go
@@ -46,11 +46,15 @@
 	DeleteDataset        []gax.CallOption
 	ImportData           []gax.CallOption
 	ExportData           []gax.CallOption
+	GetAnnotationSpec    []gax.CallOption
 	CreateModel          []gax.CallOption
 	GetModel             []gax.CallOption
 	UpdateModel          []gax.CallOption
 	ListModels           []gax.CallOption
 	DeleteModel          []gax.CallOption
+	DeployModel          []gax.CallOption
+	UndeployModel        []gax.CallOption
+	ExportModel          []gax.CallOption
 	GetModelEvaluation   []gax.CallOption
 	ListModelEvaluations []gax.CallOption
 }
@@ -87,11 +91,15 @@
 		DeleteDataset:        retry[[2]string{"default", "idempotent"}],
 		ImportData:           retry[[2]string{"default", "non_idempotent"}],
 		ExportData:           retry[[2]string{"default", "non_idempotent"}],
+		GetAnnotationSpec:    retry[[2]string{"default", "idempotent"}],
 		CreateModel:          retry[[2]string{"default", "non_idempotent"}],
 		GetModel:             retry[[2]string{"default", "idempotent"}],
 		UpdateModel:          retry[[2]string{"default", "non_idempotent"}],
 		ListModels:           retry[[2]string{"default", "idempotent"}],
 		DeleteModel:          retry[[2]string{"default", "idempotent"}],
+		DeployModel:          retry[[2]string{"default", "non_idempotent"}],
+		UndeployModel:        retry[[2]string{"default", "non_idempotent"}],
+		ExportModel:          retry[[2]string{"default", "non_idempotent"}],
 		GetModelEvaluation:   retry[[2]string{"default", "idempotent"}],
 		ListModelEvaluations: retry[[2]string{"default", "idempotent"}],
 	}
@@ -336,6 +344,23 @@
 	}, nil
 }
 
+// GetAnnotationSpec gets an annotation spec.
+func (c *Client) GetAnnotationSpec(ctx context.Context, req *automlpb.GetAnnotationSpecRequest, opts ...gax.CallOption) (*automlpb.AnnotationSpec, error) {
+	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
+	ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+	opts = append(c.CallOptions.GetAnnotationSpec[0:len(c.CallOptions.GetAnnotationSpec):len(c.CallOptions.GetAnnotationSpec)], opts...)
+	var resp *automlpb.AnnotationSpec
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.client.GetAnnotationSpec(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
 // CreateModel creates a model.
 // Returns a Model in the [response][google.longrunning.Operation.response]
 // field when it completes.
@@ -455,6 +480,86 @@
 	}, nil
 }
 
+// DeployModel deploys a model. If a model is already deployed, deploying it with the
+// same parameters has no effect. Deploying with different parametrs
+// (as e.g. changing
+//
+// [node_number][google.cloud.automl.v1p1beta.ImageObjectDetectionModelDeploymentMetadata.node_number])
+// will reset the deployment state without pausing the model's availability.
+//
+// Only applicable for Text Classification, Image Object Detection; all other
+// domains manage deployment automatically.
+//
+// Returns an empty response in the
+// [response][google.longrunning.Operation.response] field when it completes.
+func (c *Client) DeployModel(ctx context.Context, req *automlpb.DeployModelRequest, opts ...gax.CallOption) (*DeployModelOperation, error) {
+	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
+	ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+	opts = append(c.CallOptions.DeployModel[0:len(c.CallOptions.DeployModel):len(c.CallOptions.DeployModel)], opts...)
+	var resp *longrunningpb.Operation
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.client.DeployModel(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &DeployModelOperation{
+		lro: longrunning.InternalNewOperation(c.LROClient, resp),
+	}, nil
+}
+
+// UndeployModel undeploys a model. If the model is not deployed this method has no effect.
+//
+// Only applicable for Text Classification, Image Object Detection;
+// all other domains manage deployment automatically.
+//
+// Returns an empty response in the
+// [response][google.longrunning.Operation.response] field when it completes.
+func (c *Client) UndeployModel(ctx context.Context, req *automlpb.UndeployModelRequest, opts ...gax.CallOption) (*UndeployModelOperation, error) {
+	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
+	ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+	opts = append(c.CallOptions.UndeployModel[0:len(c.CallOptions.UndeployModel):len(c.CallOptions.UndeployModel)], opts...)
+	var resp *longrunningpb.Operation
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.client.UndeployModel(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &UndeployModelOperation{
+		lro: longrunning.InternalNewOperation(c.LROClient, resp),
+	}, nil
+}
+
+// ExportModel exports a trained, "export-able", model to a user specified Google Cloud
+// Storage location. A model is considered export-able if and only if it has
+// an export format defined for it in
+// [ModelExportOutputConfig][google.cloud.automl.v1.ModelExportOutputConfig].
+//
+// Returns an empty response in the
+// [response][google.longrunning.Operation.response] field when it completes.
+func (c *Client) ExportModel(ctx context.Context, req *automlpb.ExportModelRequest, opts ...gax.CallOption) (*ExportModelOperation, error) {
+	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
+	ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+	opts = append(c.CallOptions.ExportModel[0:len(c.CallOptions.ExportModel):len(c.CallOptions.ExportModel)], opts...)
+	var resp *longrunningpb.Operation
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.client.ExportModel(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &ExportModelOperation{
+		lro: longrunning.InternalNewOperation(c.LROClient, resp),
+	}, nil
+}
+
 // GetModelEvaluation gets a model evaluation.
 func (c *Client) GetModelEvaluation(ctx context.Context, req *automlpb.GetModelEvaluationRequest, opts ...gax.CallOption) (*automlpb.ModelEvaluation, error) {
 	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
@@ -887,6 +992,62 @@
 	return op.lro.Name()
 }
 
+// DeployModelOperation manages a long-running operation from DeployModel.
+type DeployModelOperation struct {
+	lro *longrunning.Operation
+}
+
+// DeployModelOperation returns a new DeployModelOperation from a given name.
+// The name must be that of a previously created DeployModelOperation, possibly from a different process.
+func (c *Client) DeployModelOperation(name string) *DeployModelOperation {
+	return &DeployModelOperation{
+		lro: longrunning.InternalNewOperation(c.LROClient, &longrunningpb.Operation{Name: name}),
+	}
+}
+
+// Wait blocks until the long-running operation is completed, returning any error encountered.
+//
+// See documentation of Poll for error-handling information.
+func (op *DeployModelOperation) Wait(ctx context.Context, opts ...gax.CallOption) error {
+	return op.lro.WaitWithInterval(ctx, nil, 5000*time.Millisecond, opts...)
+}
+
+// Poll fetches the latest state of the long-running operation.
+//
+// Poll also fetches the latest metadata, which can be retrieved by Metadata.
+//
+// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and
+// the operation has completed with failure, the error is returned and op.Done will return true.
+// If Poll succeeds and the operation has completed successfully, op.Done will return true.
+func (op *DeployModelOperation) Poll(ctx context.Context, opts ...gax.CallOption) error {
+	return op.lro.Poll(ctx, nil, opts...)
+}
+
+// Metadata returns metadata associated with the long-running operation.
+// Metadata itself does not contact the server, but Poll does.
+// To get the latest metadata, call this method after a successful call to Poll.
+// If the metadata is not available, the returned metadata and error are both nil.
+func (op *DeployModelOperation) Metadata() (*automlpb.OperationMetadata, error) {
+	var meta automlpb.OperationMetadata
+	if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata {
+		return nil, nil
+	} else if err != nil {
+		return nil, err
+	}
+	return &meta, nil
+}
+
+// Done reports whether the long-running operation has completed.
+func (op *DeployModelOperation) Done() bool {
+	return op.lro.Done()
+}
+
+// Name returns the name of the long-running operation.
+// The name is assigned by the server and is unique within the service from which the operation is created.
+func (op *DeployModelOperation) Name() string {
+	return op.lro.Name()
+}
+
 // ExportDataOperation manages a long-running operation from ExportData.
 type ExportDataOperation struct {
 	lro *longrunning.Operation
@@ -943,6 +1104,62 @@
 	return op.lro.Name()
 }
 
+// ExportModelOperation manages a long-running operation from ExportModel.
+type ExportModelOperation struct {
+	lro *longrunning.Operation
+}
+
+// ExportModelOperation returns a new ExportModelOperation from a given name.
+// The name must be that of a previously created ExportModelOperation, possibly from a different process.
+func (c *Client) ExportModelOperation(name string) *ExportModelOperation {
+	return &ExportModelOperation{
+		lro: longrunning.InternalNewOperation(c.LROClient, &longrunningpb.Operation{Name: name}),
+	}
+}
+
+// Wait blocks until the long-running operation is completed, returning any error encountered.
+//
+// See documentation of Poll for error-handling information.
+func (op *ExportModelOperation) Wait(ctx context.Context, opts ...gax.CallOption) error {
+	return op.lro.WaitWithInterval(ctx, nil, 5000*time.Millisecond, opts...)
+}
+
+// Poll fetches the latest state of the long-running operation.
+//
+// Poll also fetches the latest metadata, which can be retrieved by Metadata.
+//
+// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and
+// the operation has completed with failure, the error is returned and op.Done will return true.
+// If Poll succeeds and the operation has completed successfully, op.Done will return true.
+func (op *ExportModelOperation) Poll(ctx context.Context, opts ...gax.CallOption) error {
+	return op.lro.Poll(ctx, nil, opts...)
+}
+
+// Metadata returns metadata associated with the long-running operation.
+// Metadata itself does not contact the server, but Poll does.
+// To get the latest metadata, call this method after a successful call to Poll.
+// If the metadata is not available, the returned metadata and error are both nil.
+func (op *ExportModelOperation) Metadata() (*automlpb.OperationMetadata, error) {
+	var meta automlpb.OperationMetadata
+	if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata {
+		return nil, nil
+	} else if err != nil {
+		return nil, err
+	}
+	return &meta, nil
+}
+
+// Done reports whether the long-running operation has completed.
+func (op *ExportModelOperation) Done() bool {
+	return op.lro.Done()
+}
+
+// Name returns the name of the long-running operation.
+// The name is assigned by the server and is unique within the service from which the operation is created.
+func (op *ExportModelOperation) Name() string {
+	return op.lro.Name()
+}
+
 // ImportDataOperation manages a long-running operation from ImportData.
 type ImportDataOperation struct {
 	lro *longrunning.Operation
@@ -998,3 +1215,59 @@
 func (op *ImportDataOperation) Name() string {
 	return op.lro.Name()
 }
+
+// UndeployModelOperation manages a long-running operation from UndeployModel.
+type UndeployModelOperation struct {
+	lro *longrunning.Operation
+}
+
+// UndeployModelOperation returns a new UndeployModelOperation from a given name.
+// The name must be that of a previously created UndeployModelOperation, possibly from a different process.
+func (c *Client) UndeployModelOperation(name string) *UndeployModelOperation {
+	return &UndeployModelOperation{
+		lro: longrunning.InternalNewOperation(c.LROClient, &longrunningpb.Operation{Name: name}),
+	}
+}
+
+// Wait blocks until the long-running operation is completed, returning any error encountered.
+//
+// See documentation of Poll for error-handling information.
+func (op *UndeployModelOperation) Wait(ctx context.Context, opts ...gax.CallOption) error {
+	return op.lro.WaitWithInterval(ctx, nil, 5000*time.Millisecond, opts...)
+}
+
+// Poll fetches the latest state of the long-running operation.
+//
+// Poll also fetches the latest metadata, which can be retrieved by Metadata.
+//
+// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and
+// the operation has completed with failure, the error is returned and op.Done will return true.
+// If Poll succeeds and the operation has completed successfully, op.Done will return true.
+func (op *UndeployModelOperation) Poll(ctx context.Context, opts ...gax.CallOption) error {
+	return op.lro.Poll(ctx, nil, opts...)
+}
+
+// Metadata returns metadata associated with the long-running operation.
+// Metadata itself does not contact the server, but Poll does.
+// To get the latest metadata, call this method after a successful call to Poll.
+// If the metadata is not available, the returned metadata and error are both nil.
+func (op *UndeployModelOperation) Metadata() (*automlpb.OperationMetadata, error) {
+	var meta automlpb.OperationMetadata
+	if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata {
+		return nil, nil
+	} else if err != nil {
+		return nil, err
+	}
+	return &meta, nil
+}
+
+// Done reports whether the long-running operation has completed.
+func (op *UndeployModelOperation) Done() bool {
+	return op.lro.Done()
+}
+
+// Name returns the name of the long-running operation.
+// The name is assigned by the server and is unique within the service from which the operation is created.
+func (op *UndeployModelOperation) Name() string {
+	return op.lro.Name()
+}
diff --git a/automl/apiv1/auto_ml_client_example_test.go b/automl/apiv1/auto_ml_client_example_test.go
index 405f540..01b7d65 100644
--- a/automl/apiv1/auto_ml_client_example_test.go
+++ b/automl/apiv1/auto_ml_client_example_test.go
@@ -174,6 +174,24 @@
 	// TODO: Handle error.
 }
 
+func ExampleClient_GetAnnotationSpec() {
+	ctx := context.Background()
+	c, err := automl.NewClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &automlpb.GetAnnotationSpecRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.GetAnnotationSpec(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
 func ExampleClient_CreateModel() {
 	ctx := context.Background()
 	c, err := automl.NewClient(ctx)
@@ -276,6 +294,63 @@
 	// TODO: Handle error.
 }
 
+func ExampleClient_DeployModel() {
+	ctx := context.Background()
+	c, err := automl.NewClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &automlpb.DeployModelRequest{
+		// TODO: Fill request struct fields.
+	}
+	op, err := c.DeployModel(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	err = op.Wait(ctx)
+	// TODO: Handle error.
+}
+
+func ExampleClient_UndeployModel() {
+	ctx := context.Background()
+	c, err := automl.NewClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &automlpb.UndeployModelRequest{
+		// TODO: Fill request struct fields.
+	}
+	op, err := c.UndeployModel(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	err = op.Wait(ctx)
+	// TODO: Handle error.
+}
+
+func ExampleClient_ExportModel() {
+	ctx := context.Background()
+	c, err := automl.NewClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &automlpb.ExportModelRequest{
+		// TODO: Fill request struct fields.
+	}
+	op, err := c.ExportModel(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	err = op.Wait(ctx)
+	// TODO: Handle error.
+}
+
 func ExampleClient_GetModelEvaluation() {
 	ctx := context.Background()
 	c, err := automl.NewClient(ctx)
diff --git a/automl/apiv1/doc.go b/automl/apiv1/doc.go
index d9950a0..d038006 100644
--- a/automl/apiv1/doc.go
+++ b/automl/apiv1/doc.go
@@ -97,4 +97,4 @@
 	return "UNKNOWN"
 }
 
-const versionClient = "UNKNOWN"
+const versionClient = "20191028"
diff --git a/automl/apiv1/mock_test.go b/automl/apiv1/mock_test.go
index a69c500..5954848 100644
--- a/automl/apiv1/mock_test.go
+++ b/automl/apiv1/mock_test.go
@@ -146,6 +146,18 @@
 	return s.resps[0].(*longrunningpb.Operation), nil
 }
 
+func (s *mockAutoMlServer) GetAnnotationSpec(ctx context.Context, req *automlpb.GetAnnotationSpecRequest) (*automlpb.AnnotationSpec, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*automlpb.AnnotationSpec), nil
+}
+
 func (s *mockAutoMlServer) CreateModel(ctx context.Context, req *automlpb.CreateModelRequest) (*longrunningpb.Operation, error) {
 	md, _ := metadata.FromIncomingContext(ctx)
 	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
@@ -206,6 +218,42 @@
 	return s.resps[0].(*automlpb.Model), nil
 }
 
+func (s *mockAutoMlServer) DeployModel(ctx context.Context, req *automlpb.DeployModelRequest) (*longrunningpb.Operation, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*longrunningpb.Operation), nil
+}
+
+func (s *mockAutoMlServer) UndeployModel(ctx context.Context, req *automlpb.UndeployModelRequest) (*longrunningpb.Operation, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*longrunningpb.Operation), nil
+}
+
+func (s *mockAutoMlServer) ExportModel(ctx context.Context, req *automlpb.ExportModelRequest) (*longrunningpb.Operation, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*longrunningpb.Operation), nil
+}
+
 func (s *mockAutoMlServer) GetModelEvaluation(ctx context.Context, req *automlpb.GetModelEvaluationRequest) (*automlpb.ModelEvaluation, error) {
 	md, _ := metadata.FromIncomingContext(ctx)
 	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
@@ -257,6 +305,18 @@
 	return s.resps[0].(*automlpb.PredictResponse), nil
 }
 
+func (s *mockPredictionServer) BatchPredict(ctx context.Context, req *automlpb.BatchPredictRequest) (*longrunningpb.Operation, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*longrunningpb.Operation), nil
+}
+
 // clientOpt is the option tests should use to connect to the test server.
 // It is initialized by TestMain.
 var clientOpt option.ClientOption
@@ -837,14 +897,79 @@
 		t.Errorf("got error code %q, want %q", c, errCode)
 	}
 }
+func TestAutoMlGetAnnotationSpec(t *testing.T) {
+	var name2 string = "name2-1052831874"
+	var displayName string = "displayName1615086568"
+	var exampleCount int32 = 1517063674
+	var expectedResponse = &automlpb.AnnotationSpec{
+		Name:         name2,
+		DisplayName:  displayName,
+		ExampleCount: exampleCount,
+	}
+
+	mockAutoMl.err = nil
+	mockAutoMl.reqs = nil
+
+	mockAutoMl.resps = append(mockAutoMl.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/datasets/%s/annotationSpecs/%s", "[PROJECT]", "[LOCATION]", "[DATASET]", "[ANNOTATION_SPEC]")
+	var request = &automlpb.GetAnnotationSpecRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetAnnotationSpec(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockAutoMl.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestAutoMlGetAnnotationSpecError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockAutoMl.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/datasets/%s/annotationSpecs/%s", "[PROJECT]", "[LOCATION]", "[DATASET]", "[ANNOTATION_SPEC]")
+	var request = &automlpb.GetAnnotationSpecRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetAnnotationSpec(context.Background(), request)
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+	_ = resp
+}
 func TestAutoMlCreateModel(t *testing.T) {
 	var name string = "name3373707"
 	var displayName string = "displayName1615086568"
 	var datasetId string = "datasetId-2115646910"
+	var etag string = "etag3123477"
 	var expectedResponse = &automlpb.Model{
 		Name:        name,
 		DisplayName: displayName,
 		DatasetId:   datasetId,
+		Etag:        etag,
 	}
 
 	mockAutoMl.err = nil
@@ -934,10 +1059,12 @@
 	var name2 string = "name2-1052831874"
 	var displayName string = "displayName1615086568"
 	var datasetId string = "datasetId-2115646910"
+	var etag string = "etag3123477"
 	var expectedResponse = &automlpb.Model{
 		Name:        name2,
 		DisplayName: displayName,
 		DatasetId:   datasetId,
+		Etag:        etag,
 	}
 
 	mockAutoMl.err = nil
@@ -997,10 +1124,12 @@
 	var name string = "name3373707"
 	var displayName string = "displayName1615086568"
 	var datasetId string = "datasetId-2115646910"
+	var etag string = "etag3123477"
 	var expectedResponse = &automlpb.Model{
 		Name:        name,
 		DisplayName: displayName,
 		DatasetId:   datasetId,
+		Etag:        etag,
 	}
 
 	mockAutoMl.err = nil
@@ -1210,13 +1339,253 @@
 		t.Errorf("got error code %q, want %q", c, errCode)
 	}
 }
+func TestAutoMlDeployModel(t *testing.T) {
+	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
+
+	mockAutoMl.err = nil
+	mockAutoMl.reqs = nil
+
+	any, err := ptypes.MarshalAny(expectedResponse)
+	if err != nil {
+		t.Fatal(err)
+	}
+	mockAutoMl.resps = append(mockAutoMl.resps[:0], &longrunningpb.Operation{
+		Name:   "longrunning-test",
+		Done:   true,
+		Result: &longrunningpb.Operation_Response{Response: any},
+	})
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/models/%s", "[PROJECT]", "[LOCATION]", "[MODEL]")
+	var request = &automlpb.DeployModelRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	respLRO, err := c.DeployModel(context.Background(), request)
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = respLRO.Wait(context.Background())
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockAutoMl.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+}
+
+func TestAutoMlDeployModelError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockAutoMl.err = nil
+	mockAutoMl.resps = append(mockAutoMl.resps[:0], &longrunningpb.Operation{
+		Name: "longrunning-test",
+		Done: true,
+		Result: &longrunningpb.Operation_Error{
+			Error: &status.Status{
+				Code:    int32(errCode),
+				Message: "test error",
+			},
+		},
+	})
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/models/%s", "[PROJECT]", "[LOCATION]", "[MODEL]")
+	var request = &automlpb.DeployModelRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	respLRO, err := c.DeployModel(context.Background(), request)
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = respLRO.Wait(context.Background())
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+}
+func TestAutoMlUndeployModel(t *testing.T) {
+	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
+
+	mockAutoMl.err = nil
+	mockAutoMl.reqs = nil
+
+	any, err := ptypes.MarshalAny(expectedResponse)
+	if err != nil {
+		t.Fatal(err)
+	}
+	mockAutoMl.resps = append(mockAutoMl.resps[:0], &longrunningpb.Operation{
+		Name:   "longrunning-test",
+		Done:   true,
+		Result: &longrunningpb.Operation_Response{Response: any},
+	})
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/models/%s", "[PROJECT]", "[LOCATION]", "[MODEL]")
+	var request = &automlpb.UndeployModelRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	respLRO, err := c.UndeployModel(context.Background(), request)
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = respLRO.Wait(context.Background())
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockAutoMl.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+}
+
+func TestAutoMlUndeployModelError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockAutoMl.err = nil
+	mockAutoMl.resps = append(mockAutoMl.resps[:0], &longrunningpb.Operation{
+		Name: "longrunning-test",
+		Done: true,
+		Result: &longrunningpb.Operation_Error{
+			Error: &status.Status{
+				Code:    int32(errCode),
+				Message: "test error",
+			},
+		},
+	})
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/models/%s", "[PROJECT]", "[LOCATION]", "[MODEL]")
+	var request = &automlpb.UndeployModelRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	respLRO, err := c.UndeployModel(context.Background(), request)
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = respLRO.Wait(context.Background())
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+}
+func TestAutoMlExportModel(t *testing.T) {
+	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
+
+	mockAutoMl.err = nil
+	mockAutoMl.reqs = nil
+
+	any, err := ptypes.MarshalAny(expectedResponse)
+	if err != nil {
+		t.Fatal(err)
+	}
+	mockAutoMl.resps = append(mockAutoMl.resps[:0], &longrunningpb.Operation{
+		Name:   "longrunning-test",
+		Done:   true,
+		Result: &longrunningpb.Operation_Response{Response: any},
+	})
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/models/%s", "[PROJECT]", "[LOCATION]", "[MODEL]")
+	var outputConfig *automlpb.ModelExportOutputConfig = &automlpb.ModelExportOutputConfig{}
+	var request = &automlpb.ExportModelRequest{
+		Name:         formattedName,
+		OutputConfig: outputConfig,
+	}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	respLRO, err := c.ExportModel(context.Background(), request)
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = respLRO.Wait(context.Background())
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockAutoMl.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+}
+
+func TestAutoMlExportModelError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockAutoMl.err = nil
+	mockAutoMl.resps = append(mockAutoMl.resps[:0], &longrunningpb.Operation{
+		Name: "longrunning-test",
+		Done: true,
+		Result: &longrunningpb.Operation_Error{
+			Error: &status.Status{
+				Code:    int32(errCode),
+				Message: "test error",
+			},
+		},
+	})
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/models/%s", "[PROJECT]", "[LOCATION]", "[MODEL]")
+	var outputConfig *automlpb.ModelExportOutputConfig = &automlpb.ModelExportOutputConfig{}
+	var request = &automlpb.ExportModelRequest{
+		Name:         formattedName,
+		OutputConfig: outputConfig,
+	}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	respLRO, err := c.ExportModel(context.Background(), request)
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = respLRO.Wait(context.Background())
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+}
 func TestAutoMlGetModelEvaluation(t *testing.T) {
 	var name2 string = "name2-1052831874"
 	var annotationSpecId string = "annotationSpecId60690191"
+	var displayName string = "displayName1615086568"
 	var evaluatedExampleCount int32 = 277565350
 	var expectedResponse = &automlpb.ModelEvaluation{
 		Name:                  name2,
 		AnnotationSpecId:      annotationSpecId,
+		DisplayName:           displayName,
 		EvaluatedExampleCount: evaluatedExampleCount,
 	}
 
@@ -1409,3 +1778,93 @@
 	}
 	_ = resp
 }
+func TestPredictionServiceBatchPredict(t *testing.T) {
+	var expectedResponse *automlpb.BatchPredictResult = &automlpb.BatchPredictResult{}
+
+	mockPrediction.err = nil
+	mockPrediction.reqs = nil
+
+	any, err := ptypes.MarshalAny(expectedResponse)
+	if err != nil {
+		t.Fatal(err)
+	}
+	mockPrediction.resps = append(mockPrediction.resps[:0], &longrunningpb.Operation{
+		Name:   "longrunning-test",
+		Done:   true,
+		Result: &longrunningpb.Operation_Response{Response: any},
+	})
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/models/%s", "[PROJECT]", "[LOCATION]", "[MODEL]")
+	var inputConfig *automlpb.BatchPredictInputConfig = &automlpb.BatchPredictInputConfig{}
+	var outputConfig *automlpb.BatchPredictOutputConfig = &automlpb.BatchPredictOutputConfig{}
+	var request = &automlpb.BatchPredictRequest{
+		Name:         formattedName,
+		InputConfig:  inputConfig,
+		OutputConfig: outputConfig,
+	}
+
+	c, err := NewPredictionClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	respLRO, err := c.BatchPredict(context.Background(), request)
+	if err != nil {
+		t.Fatal(err)
+	}
+	resp, err := respLRO.Wait(context.Background())
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockPrediction.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestPredictionServiceBatchPredictError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockPrediction.err = nil
+	mockPrediction.resps = append(mockPrediction.resps[:0], &longrunningpb.Operation{
+		Name: "longrunning-test",
+		Done: true,
+		Result: &longrunningpb.Operation_Error{
+			Error: &status.Status{
+				Code:    int32(errCode),
+				Message: "test error",
+			},
+		},
+	})
+
+	var formattedName string = fmt.Sprintf("projects/%s/locations/%s/models/%s", "[PROJECT]", "[LOCATION]", "[MODEL]")
+	var inputConfig *automlpb.BatchPredictInputConfig = &automlpb.BatchPredictInputConfig{}
+	var outputConfig *automlpb.BatchPredictOutputConfig = &automlpb.BatchPredictOutputConfig{}
+	var request = &automlpb.BatchPredictRequest{
+		Name:         formattedName,
+		InputConfig:  inputConfig,
+		OutputConfig: outputConfig,
+	}
+
+	c, err := NewPredictionClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	respLRO, err := c.BatchPredict(context.Background(), request)
+	if err != nil {
+		t.Fatal(err)
+	}
+	resp, err := respLRO.Wait(context.Background())
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+	_ = resp
+}
diff --git a/automl/apiv1/prediction_client.go b/automl/apiv1/prediction_client.go
index aadac67..77bfe9f 100644
--- a/automl/apiv1/prediction_client.go
+++ b/automl/apiv1/prediction_client.go
@@ -21,18 +21,23 @@
 	"fmt"
 	"math"
 	"net/url"
+	"time"
 
+	"cloud.google.com/go/longrunning"
+	lroauto "cloud.google.com/go/longrunning/autogen"
 	gax "github.com/googleapis/gax-go/v2"
 	"google.golang.org/api/option"
 	"google.golang.org/api/transport"
 	automlpb "google.golang.org/genproto/googleapis/cloud/automl/v1"
+	longrunningpb "google.golang.org/genproto/googleapis/longrunning"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/metadata"
 )
 
 // PredictionCallOptions contains the retry settings for each method of PredictionClient.
 type PredictionCallOptions struct {
-	Predict []gax.CallOption
+	Predict      []gax.CallOption
+	BatchPredict []gax.CallOption
 }
 
 func defaultPredictionClientOptions() []option.ClientOption {
@@ -47,7 +52,8 @@
 func defaultPredictionCallOptions() *PredictionCallOptions {
 	retry := map[[2]string][]gax.CallOption{}
 	return &PredictionCallOptions{
-		Predict: retry[[2]string{"default", "non_idempotent"}],
+		Predict:      retry[[2]string{"default", "non_idempotent"}],
+		BatchPredict: retry[[2]string{"default", "non_idempotent"}],
 	}
 }
 
@@ -61,6 +67,11 @@
 	// The gRPC API client.
 	predictionClient automlpb.PredictionServiceClient
 
+	// LROClient is used internally to handle longrunning operations.
+	// It is exposed so that its CallOptions can be modified if required.
+	// Users should not Close this client.
+	LROClient *lroauto.OperationsClient
+
 	// The call options for this service.
 	CallOptions *PredictionCallOptions
 
@@ -86,6 +97,17 @@
 		predictionClient: automlpb.NewPredictionServiceClient(conn),
 	}
 	c.setGoogleClientInfo()
+
+	c.LROClient, err = lroauto.NewOperationsClient(ctx, option.WithGRPCConn(conn))
+	if err != nil {
+		// This error "should not happen", since we are just reusing old connection
+		// and never actually need to dial.
+		// If this does happen, we could leak conn. However, we cannot close conn:
+		// If the user invoked the function with option.WithGRPCConn,
+		// we would close a connection that's still in use.
+		// TODO(pongad): investigate error conditions.
+		return nil, err
+	}
 	return c, nil
 }
 
@@ -113,8 +135,23 @@
 // returned in the response.
 // Available for following ML problems, and their expected request payloads:
 //
+//   Image Classification - Image in .JPEG, .GIF or .PNG format, image_bytes
+//   up to 30MB.
+//
+//   Image Object Detection - Image in .JPEG, .GIF or .PNG format, image_bytes
+//   up to 30MB.
+//
+//   Text Classification - TextSnippet, content up to 60,000 characters,
+//   UTF-8 encoded.
+//
+//   Text Extraction - TextSnippet, content up to 30,000 characters,
+//   UTF-8 NFC encoded.
+//
 //   Translation - TextSnippet, content up to 25,000 characters, UTF-8
 //   encoded.
+//
+//   Text Sentiment - TextSnippet, content up 500 characters, UTF-8
+//   encoded.
 func (c *PredictionClient) Predict(ctx context.Context, req *automlpb.PredictRequest, opts ...gax.CallOption) (*automlpb.PredictResponse, error) {
 	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
 	ctx = insertMetadata(ctx, c.xGoogMetadata, md)
@@ -130,3 +167,105 @@
 	}
 	return resp, nil
 }
+
+// BatchPredict perform a batch prediction. Unlike the online
+// [Predict][google.cloud.automl.v1.PredictionService.Predict], batch
+// prediction result won't be immediately available in the response. Instead,
+// a long running operation object is returned. User can poll the operation
+// result via [GetOperation][google.longrunning.Operations.GetOperation]
+// method. Once the operation is done,
+// [BatchPredictResult][google.cloud.automl.v1.BatchPredictResult] is returned
+// in the [response][google.longrunning.Operation.response] field. Available
+// for following ML problems:
+//
+//   Image Classification
+//
+//   Image Object Detection
+//
+//   Text Extraction
+func (c *PredictionClient) BatchPredict(ctx context.Context, req *automlpb.BatchPredictRequest, opts ...gax.CallOption) (*BatchPredictOperation, error) {
+	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
+	ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+	opts = append(c.CallOptions.BatchPredict[0:len(c.CallOptions.BatchPredict):len(c.CallOptions.BatchPredict)], opts...)
+	var resp *longrunningpb.Operation
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.predictionClient.BatchPredict(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &BatchPredictOperation{
+		lro: longrunning.InternalNewOperation(c.LROClient, resp),
+	}, nil
+}
+
+// BatchPredictOperation manages a long-running operation from BatchPredict.
+type BatchPredictOperation struct {
+	lro *longrunning.Operation
+}
+
+// BatchPredictOperation returns a new BatchPredictOperation from a given name.
+// The name must be that of a previously created BatchPredictOperation, possibly from a different process.
+func (c *PredictionClient) BatchPredictOperation(name string) *BatchPredictOperation {
+	return &BatchPredictOperation{
+		lro: longrunning.InternalNewOperation(c.LROClient, &longrunningpb.Operation{Name: name}),
+	}
+}
+
+// Wait blocks until the long-running operation is completed, returning the response and any errors encountered.
+//
+// See documentation of Poll for error-handling information.
+func (op *BatchPredictOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*automlpb.BatchPredictResult, error) {
+	var resp automlpb.BatchPredictResult
+	if err := op.lro.WaitWithInterval(ctx, &resp, 5000*time.Millisecond, opts...); err != nil {
+		return nil, err
+	}
+	return &resp, nil
+}
+
+// Poll fetches the latest state of the long-running operation.
+//
+// Poll also fetches the latest metadata, which can be retrieved by Metadata.
+//
+// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and
+// the operation has completed with failure, the error is returned and op.Done will return true.
+// If Poll succeeds and the operation has completed successfully,
+// op.Done will return true, and the response of the operation is returned.
+// If Poll succeeds and the operation has not completed, the returned response and error are both nil.
+func (op *BatchPredictOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*automlpb.BatchPredictResult, error) {
+	var resp automlpb.BatchPredictResult
+	if err := op.lro.Poll(ctx, &resp, opts...); err != nil {
+		return nil, err
+	}
+	if !op.Done() {
+		return nil, nil
+	}
+	return &resp, nil
+}
+
+// Metadata returns metadata associated with the long-running operation.
+// Metadata itself does not contact the server, but Poll does.
+// To get the latest metadata, call this method after a successful call to Poll.
+// If the metadata is not available, the returned metadata and error are both nil.
+func (op *BatchPredictOperation) Metadata() (*automlpb.OperationMetadata, error) {
+	var meta automlpb.OperationMetadata
+	if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata {
+		return nil, nil
+	} else if err != nil {
+		return nil, err
+	}
+	return &meta, nil
+}
+
+// Done reports whether the long-running operation has completed.
+func (op *BatchPredictOperation) Done() bool {
+	return op.lro.Done()
+}
+
+// Name returns the name of the long-running operation.
+// The name is assigned by the server and is unique within the service from which the operation is created.
+func (op *BatchPredictOperation) Name() string {
+	return op.lro.Name()
+}
diff --git a/automl/apiv1/prediction_client_example_test.go b/automl/apiv1/prediction_client_example_test.go
index 475d3e5..fe44352 100644
--- a/automl/apiv1/prediction_client_example_test.go
+++ b/automl/apiv1/prediction_client_example_test.go
@@ -50,3 +50,26 @@
 	// TODO: Use resp.
 	_ = resp
 }
+
+func ExamplePredictionClient_BatchPredict() {
+	ctx := context.Background()
+	c, err := automl.NewPredictionClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &automlpb.BatchPredictRequest{
+		// TODO: Fill request struct fields.
+	}
+	op, err := c.BatchPredict(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	resp, err := op.Wait(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
diff --git a/cloudbuild/apiv1/cloud_build_client.go b/cloudbuild/apiv1/cloud_build_client.go
index 9996649..07c0d93 100644
--- a/cloudbuild/apiv1/cloud_build_client.go
+++ b/cloudbuild/apiv1/cloud_build_client.go
@@ -48,6 +48,11 @@
 	UpdateBuildTrigger []gax.CallOption
 	RunBuildTrigger    []gax.CallOption
 	RetryBuild         []gax.CallOption
+	CreateWorkerPool   []gax.CallOption
+	GetWorkerPool      []gax.CallOption
+	DeleteWorkerPool   []gax.CallOption
+	UpdateWorkerPool   []gax.CallOption
+	ListWorkerPools    []gax.CallOption
 }
 
 func defaultClientOptions() []option.ClientOption {
@@ -86,6 +91,11 @@
 		UpdateBuildTrigger: retry[[2]string{"default", "non_idempotent"}],
 		RunBuildTrigger:    retry[[2]string{"default", "non_idempotent"}],
 		RetryBuild:         retry[[2]string{"default", "non_idempotent"}],
+		CreateWorkerPool:   retry[[2]string{"default", "non_idempotent"}],
+		GetWorkerPool:      retry[[2]string{"default", "non_idempotent"}],
+		DeleteWorkerPool:   retry[[2]string{"default", "non_idempotent"}],
+		UpdateWorkerPool:   retry[[2]string{"default", "non_idempotent"}],
+		ListWorkerPools:    retry[[2]string{"default", "non_idempotent"}],
 	}
 }
 
@@ -397,6 +407,92 @@
 	return resp, nil
 }
 
+// CreateWorkerPool creates a WorkerPool to run the builds, and returns the new worker pool.
+//
+// This API is experimental.
+func (c *Client) CreateWorkerPool(ctx context.Context, req *cloudbuildpb.CreateWorkerPoolRequest, opts ...gax.CallOption) (*cloudbuildpb.WorkerPool, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.CreateWorkerPool[0:len(c.CallOptions.CreateWorkerPool):len(c.CallOptions.CreateWorkerPool)], opts...)
+	var resp *cloudbuildpb.WorkerPool
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.client.CreateWorkerPool(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// GetWorkerPool returns information about a WorkerPool.
+//
+// This API is experimental.
+func (c *Client) GetWorkerPool(ctx context.Context, req *cloudbuildpb.GetWorkerPoolRequest, opts ...gax.CallOption) (*cloudbuildpb.WorkerPool, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.GetWorkerPool[0:len(c.CallOptions.GetWorkerPool):len(c.CallOptions.GetWorkerPool)], opts...)
+	var resp *cloudbuildpb.WorkerPool
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.client.GetWorkerPool(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// DeleteWorkerPool deletes a WorkerPool by its project ID and WorkerPool name.
+//
+// This API is experimental.
+func (c *Client) DeleteWorkerPool(ctx context.Context, req *cloudbuildpb.DeleteWorkerPoolRequest, opts ...gax.CallOption) error {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.DeleteWorkerPool[0:len(c.CallOptions.DeleteWorkerPool):len(c.CallOptions.DeleteWorkerPool)], opts...)
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		_, err = c.client.DeleteWorkerPool(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	return err
+}
+
+// UpdateWorkerPool update a WorkerPool.
+//
+// This API is experimental.
+func (c *Client) UpdateWorkerPool(ctx context.Context, req *cloudbuildpb.UpdateWorkerPoolRequest, opts ...gax.CallOption) (*cloudbuildpb.WorkerPool, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.UpdateWorkerPool[0:len(c.CallOptions.UpdateWorkerPool):len(c.CallOptions.UpdateWorkerPool)], opts...)
+	var resp *cloudbuildpb.WorkerPool
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.client.UpdateWorkerPool(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// ListWorkerPools list project's WorkerPools.
+//
+// This API is experimental.
+func (c *Client) ListWorkerPools(ctx context.Context, req *cloudbuildpb.ListWorkerPoolsRequest, opts ...gax.CallOption) (*cloudbuildpb.ListWorkerPoolsResponse, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.ListWorkerPools[0:len(c.CallOptions.ListWorkerPools):len(c.CallOptions.ListWorkerPools)], opts...)
+	var resp *cloudbuildpb.ListWorkerPoolsResponse
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.client.ListWorkerPools(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
 // BuildIterator manages a stream of *cloudbuildpb.Build.
 type BuildIterator struct {
 	items    []*cloudbuildpb.Build
diff --git a/cloudbuild/apiv1/cloud_build_client_example_test.go b/cloudbuild/apiv1/cloud_build_client_example_test.go
index cb521ab..5f0e574 100644
--- a/cloudbuild/apiv1/cloud_build_client_example_test.go
+++ b/cloudbuild/apiv1/cloud_build_client_example_test.go
@@ -235,3 +235,91 @@
 	// TODO: Use resp.
 	_ = resp
 }
+
+func ExampleClient_CreateWorkerPool() {
+	ctx := context.Background()
+	c, err := cloudbuild.NewClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &cloudbuildpb.CreateWorkerPoolRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.CreateWorkerPool(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleClient_GetWorkerPool() {
+	ctx := context.Background()
+	c, err := cloudbuild.NewClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &cloudbuildpb.GetWorkerPoolRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.GetWorkerPool(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleClient_DeleteWorkerPool() {
+	ctx := context.Background()
+	c, err := cloudbuild.NewClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &cloudbuildpb.DeleteWorkerPoolRequest{
+		// TODO: Fill request struct fields.
+	}
+	err = c.DeleteWorkerPool(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+}
+
+func ExampleClient_UpdateWorkerPool() {
+	ctx := context.Background()
+	c, err := cloudbuild.NewClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &cloudbuildpb.UpdateWorkerPoolRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.UpdateWorkerPool(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleClient_ListWorkerPools() {
+	ctx := context.Background()
+	c, err := cloudbuild.NewClient(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &cloudbuildpb.ListWorkerPoolsRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.ListWorkerPools(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
diff --git a/cloudbuild/apiv1/doc.go b/cloudbuild/apiv1/doc.go
index 3cbb852..1a234dd 100644
--- a/cloudbuild/apiv1/doc.go
+++ b/cloudbuild/apiv1/doc.go
@@ -97,4 +97,4 @@
 	return "UNKNOWN"
 }
 
-const versionClient = "20190917"
+const versionClient = "20191028"
diff --git a/cloudbuild/apiv1/mock_test.go b/cloudbuild/apiv1/mock_test.go
index aff5d1f..43d03ec 100644
--- a/cloudbuild/apiv1/mock_test.go
+++ b/cloudbuild/apiv1/mock_test.go
@@ -193,6 +193,66 @@
 	return s.resps[0].(*longrunningpb.Operation), nil
 }
 
+func (s *mockCloudBuildServer) CreateWorkerPool(ctx context.Context, req *cloudbuildpb.CreateWorkerPoolRequest) (*cloudbuildpb.WorkerPool, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*cloudbuildpb.WorkerPool), nil
+}
+
+func (s *mockCloudBuildServer) GetWorkerPool(ctx context.Context, req *cloudbuildpb.GetWorkerPoolRequest) (*cloudbuildpb.WorkerPool, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*cloudbuildpb.WorkerPool), nil
+}
+
+func (s *mockCloudBuildServer) DeleteWorkerPool(ctx context.Context, req *cloudbuildpb.DeleteWorkerPoolRequest) (*emptypb.Empty, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*emptypb.Empty), nil
+}
+
+func (s *mockCloudBuildServer) UpdateWorkerPool(ctx context.Context, req *cloudbuildpb.UpdateWorkerPoolRequest) (*cloudbuildpb.WorkerPool, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*cloudbuildpb.WorkerPool), nil
+}
+
+func (s *mockCloudBuildServer) ListWorkerPools(ctx context.Context, req *cloudbuildpb.ListWorkerPoolsRequest) (*cloudbuildpb.ListWorkerPoolsResponse, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*cloudbuildpb.ListWorkerPoolsResponse), nil
+}
+
 // clientOpt is the option tests should use to connect to the test server.
 // It is initialized by TestMain.
 var clientOpt option.ClientOption
@@ -508,11 +568,13 @@
 func TestCloudBuildCreateBuildTrigger(t *testing.T) {
 	var id string = "id3355"
 	var description string = "description-1724546052"
+	var name string = "name3373707"
 	var filename string = "filename-734768633"
 	var disabled bool = true
 	var expectedResponse = &cloudbuildpb.BuildTrigger{
 		Id:          id,
 		Description: description,
+		Name:        name,
 		BuildTemplate: &cloudbuildpb.BuildTrigger_Filename{
 			Filename: filename,
 		},
@@ -579,11 +641,13 @@
 func TestCloudBuildGetBuildTrigger(t *testing.T) {
 	var id string = "id3355"
 	var description string = "description-1724546052"
+	var name string = "name3373707"
 	var filename string = "filename-734768633"
 	var disabled bool = true
 	var expectedResponse = &cloudbuildpb.BuildTrigger{
 		Id:          id,
 		Description: description,
+		Name:        name,
 		BuildTemplate: &cloudbuildpb.BuildTrigger_Filename{
 			Filename: filename,
 		},
@@ -648,7 +712,10 @@
 	_ = resp
 }
 func TestCloudBuildListBuildTriggers(t *testing.T) {
-	var expectedResponse *cloudbuildpb.ListBuildTriggersResponse = &cloudbuildpb.ListBuildTriggersResponse{}
+	var nextPageToken string = "nextPageToken-1530815211"
+	var expectedResponse = &cloudbuildpb.ListBuildTriggersResponse{
+		NextPageToken: nextPageToken,
+	}
 
 	mockCloudBuild.err = nil
 	mockCloudBuild.reqs = nil
@@ -762,11 +829,13 @@
 func TestCloudBuildUpdateBuildTrigger(t *testing.T) {
 	var id string = "id3355"
 	var description string = "description-1724546052"
+	var name string = "name3373707"
 	var filename string = "filename-734768633"
 	var disabled bool = true
 	var expectedResponse = &cloudbuildpb.BuildTrigger{
 		Id:          id,
 		Description: description,
+		Name:        name,
 		BuildTemplate: &cloudbuildpb.BuildTrigger_Filename{
 			Filename: filename,
 		},
@@ -968,3 +1037,276 @@
 	}
 	_ = resp
 }
+func TestCloudBuildCreateWorkerPool(t *testing.T) {
+	var name string = "name3373707"
+	var projectId string = "projectId-1969970175"
+	var serviceAccountEmail string = "serviceAccountEmail-1300473088"
+	var workerCount int64 = 372044046
+	var expectedResponse = &cloudbuildpb.WorkerPool{
+		Name:                name,
+		ProjectId:           projectId,
+		ServiceAccountEmail: serviceAccountEmail,
+		WorkerCount:         workerCount,
+	}
+
+	mockCloudBuild.err = nil
+	mockCloudBuild.reqs = nil
+
+	mockCloudBuild.resps = append(mockCloudBuild.resps[:0], expectedResponse)
+
+	var request *cloudbuildpb.CreateWorkerPoolRequest = &cloudbuildpb.CreateWorkerPoolRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.CreateWorkerPool(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockCloudBuild.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestCloudBuildCreateWorkerPoolError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockCloudBuild.err = gstatus.Error(errCode, "test error")
+
+	var request *cloudbuildpb.CreateWorkerPoolRequest = &cloudbuildpb.CreateWorkerPoolRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.CreateWorkerPool(context.Background(), request)
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+	_ = resp
+}
+func TestCloudBuildGetWorkerPool(t *testing.T) {
+	var name string = "name3373707"
+	var projectId string = "projectId-1969970175"
+	var serviceAccountEmail string = "serviceAccountEmail-1300473088"
+	var workerCount int64 = 372044046
+	var expectedResponse = &cloudbuildpb.WorkerPool{
+		Name:                name,
+		ProjectId:           projectId,
+		ServiceAccountEmail: serviceAccountEmail,
+		WorkerCount:         workerCount,
+	}
+
+	mockCloudBuild.err = nil
+	mockCloudBuild.reqs = nil
+
+	mockCloudBuild.resps = append(mockCloudBuild.resps[:0], expectedResponse)
+
+	var request *cloudbuildpb.GetWorkerPoolRequest = &cloudbuildpb.GetWorkerPoolRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetWorkerPool(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockCloudBuild.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestCloudBuildGetWorkerPoolError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockCloudBuild.err = gstatus.Error(errCode, "test error")
+
+	var request *cloudbuildpb.GetWorkerPoolRequest = &cloudbuildpb.GetWorkerPoolRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetWorkerPool(context.Background(), request)
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+	_ = resp
+}
+func TestCloudBuildDeleteWorkerPool(t *testing.T) {
+	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
+
+	mockCloudBuild.err = nil
+	mockCloudBuild.reqs = nil
+
+	mockCloudBuild.resps = append(mockCloudBuild.resps[:0], expectedResponse)
+
+	var request *cloudbuildpb.DeleteWorkerPoolRequest = &cloudbuildpb.DeleteWorkerPoolRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	err = c.DeleteWorkerPool(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockCloudBuild.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+}
+
+func TestCloudBuildDeleteWorkerPoolError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockCloudBuild.err = gstatus.Error(errCode, "test error")
+
+	var request *cloudbuildpb.DeleteWorkerPoolRequest = &cloudbuildpb.DeleteWorkerPoolRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	err = c.DeleteWorkerPool(context.Background(), request)
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+}
+func TestCloudBuildUpdateWorkerPool(t *testing.T) {
+	var name string = "name3373707"
+	var projectId string = "projectId-1969970175"
+	var serviceAccountEmail string = "serviceAccountEmail-1300473088"
+	var workerCount int64 = 372044046
+	var expectedResponse = &cloudbuildpb.WorkerPool{
+		Name:                name,
+		ProjectId:           projectId,
+		ServiceAccountEmail: serviceAccountEmail,
+		WorkerCount:         workerCount,
+	}
+
+	mockCloudBuild.err = nil
+	mockCloudBuild.reqs = nil
+
+	mockCloudBuild.resps = append(mockCloudBuild.resps[:0], expectedResponse)
+
+	var request *cloudbuildpb.UpdateWorkerPoolRequest = &cloudbuildpb.UpdateWorkerPoolRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateWorkerPool(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockCloudBuild.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestCloudBuildUpdateWorkerPoolError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockCloudBuild.err = gstatus.Error(errCode, "test error")
+
+	var request *cloudbuildpb.UpdateWorkerPoolRequest = &cloudbuildpb.UpdateWorkerPoolRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateWorkerPool(context.Background(), request)
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+	_ = resp
+}
+func TestCloudBuildListWorkerPools(t *testing.T) {
+	var expectedResponse *cloudbuildpb.ListWorkerPoolsResponse = &cloudbuildpb.ListWorkerPoolsResponse{}
+
+	mockCloudBuild.err = nil
+	mockCloudBuild.reqs = nil
+
+	mockCloudBuild.resps = append(mockCloudBuild.resps[:0], expectedResponse)
+
+	var request *cloudbuildpb.ListWorkerPoolsRequest = &cloudbuildpb.ListWorkerPoolsRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListWorkerPools(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockCloudBuild.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestCloudBuildListWorkerPoolsError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockCloudBuild.err = gstatus.Error(errCode, "test error")
+
+	var request *cloudbuildpb.ListWorkerPoolsRequest = &cloudbuildpb.ListWorkerPoolsRequest{}
+
+	c, err := NewClient(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListWorkerPools(context.Background(), request)
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+	_ = resp
+}
diff --git a/debugger/apiv2/controller2_client.go b/debugger/apiv2/controller2_client.go
index 963858d..e073d52 100644
--- a/debugger/apiv2/controller2_client.go
+++ b/debugger/apiv2/controller2_client.go
@@ -34,9 +34,9 @@
 
 // Controller2CallOptions contains the retry settings for each method of Controller2Client.
 type Controller2CallOptions struct {
+	UpdateActiveBreakpoint []gax.CallOption
 	RegisterDebuggee       []gax.CallOption
 	ListActiveBreakpoints  []gax.CallOption
-	UpdateActiveBreakpoint []gax.CallOption
 }
 
 func defaultController2ClientOptions() []option.ClientOption {
@@ -64,9 +64,9 @@
 		},
 	}
 	return &Controller2CallOptions{
+		UpdateActiveBreakpoint: retry[[2]string{"default", "idempotent"}],
 		RegisterDebuggee:       retry[[2]string{"default", "non_idempotent"}],
 		ListActiveBreakpoints:  retry[[2]string{"default", "idempotent"}],
-		UpdateActiveBreakpoint: retry[[2]string{"default", "idempotent"}],
 	}
 }
 
@@ -144,6 +144,29 @@
 	c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
 }
 
+// UpdateActiveBreakpoint updates the breakpoint state or mutable fields.
+// The entire Breakpoint message must be sent back to the controller service.
+//
+// Updates to active breakpoint fields are only allowed if the new value
+// does not change the breakpoint specification. Updates to the location,
+// condition and expressions fields should not alter the breakpoint
+// semantics. These may only make changes such as canonicalizing a value
+// or snapping the location to the correct line of code.
+func (c *Controller2Client) UpdateActiveBreakpoint(ctx context.Context, req *clouddebuggerpb.UpdateActiveBreakpointRequest, opts ...gax.CallOption) (*clouddebuggerpb.UpdateActiveBreakpointResponse, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.UpdateActiveBreakpoint[0:len(c.CallOptions.UpdateActiveBreakpoint):len(c.CallOptions.UpdateActiveBreakpoint)], opts...)
+	var resp *clouddebuggerpb.UpdateActiveBreakpointResponse
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.controller2Client.UpdateActiveBreakpoint(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
 // RegisterDebuggee registers the debuggee with the controller service.
 //
 // All agents attached to the same application must call this method with
@@ -197,26 +220,3 @@
 	}
 	return resp, nil
 }
-
-// UpdateActiveBreakpoint updates the breakpoint state or mutable fields.
-// The entire Breakpoint message must be sent back to the controller service.
-//
-// Updates to active breakpoint fields are only allowed if the new value
-// does not change the breakpoint specification. Updates to the location,
-// condition and expressions fields should not alter the breakpoint
-// semantics. These may only make changes such as canonicalizing a value
-// or snapping the location to the correct line of code.
-func (c *Controller2Client) UpdateActiveBreakpoint(ctx context.Context, req *clouddebuggerpb.UpdateActiveBreakpointRequest, opts ...gax.CallOption) (*clouddebuggerpb.UpdateActiveBreakpointResponse, error) {
-	ctx = insertMetadata(ctx, c.xGoogMetadata)
-	opts = append(c.CallOptions.UpdateActiveBreakpoint[0:len(c.CallOptions.UpdateActiveBreakpoint):len(c.CallOptions.UpdateActiveBreakpoint)], opts...)
-	var resp *clouddebuggerpb.UpdateActiveBreakpointResponse
-	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
-		var err error
-		resp, err = c.controller2Client.UpdateActiveBreakpoint(ctx, req, settings.GRPC...)
-		return err
-	}, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return resp, nil
-}
diff --git a/debugger/apiv2/controller2_client_example_test.go b/debugger/apiv2/controller2_client_example_test.go
index 7455941..fa988ff 100644
--- a/debugger/apiv2/controller2_client_example_test.go
+++ b/debugger/apiv2/controller2_client_example_test.go
@@ -33,6 +33,24 @@
 	_ = c
 }
 
+func ExampleController2Client_UpdateActiveBreakpoint() {
+	ctx := context.Background()
+	c, err := debugger.NewController2Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &clouddebuggerpb.UpdateActiveBreakpointRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.UpdateActiveBreakpoint(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
 func ExampleController2Client_RegisterDebuggee() {
 	ctx := context.Background()
 	c, err := debugger.NewController2Client(ctx)
@@ -68,21 +86,3 @@
 	// TODO: Use resp.
 	_ = resp
 }
-
-func ExampleController2Client_UpdateActiveBreakpoint() {
-	ctx := context.Background()
-	c, err := debugger.NewController2Client(ctx)
-	if err != nil {
-		// TODO: Handle error.
-	}
-
-	req := &clouddebuggerpb.UpdateActiveBreakpointRequest{
-		// TODO: Fill request struct fields.
-	}
-	resp, err := c.UpdateActiveBreakpoint(ctx, req)
-	if err != nil {
-		// TODO: Handle error.
-	}
-	// TODO: Use resp.
-	_ = resp
-}
diff --git a/debugger/apiv2/debugger2_client.go b/debugger/apiv2/debugger2_client.go
index ffc8255..a70e4b6 100644
--- a/debugger/apiv2/debugger2_client.go
+++ b/debugger/apiv2/debugger2_client.go
@@ -34,9 +34,9 @@
 
 // Debugger2CallOptions contains the retry settings for each method of Debugger2Client.
 type Debugger2CallOptions struct {
+	DeleteBreakpoint []gax.CallOption
 	SetBreakpoint    []gax.CallOption
 	GetBreakpoint    []gax.CallOption
-	DeleteBreakpoint []gax.CallOption
 	ListBreakpoints  []gax.CallOption
 	ListDebuggees    []gax.CallOption
 }
@@ -66,9 +66,9 @@
 		},
 	}
 	return &Debugger2CallOptions{
+		DeleteBreakpoint: retry[[2]string{"default", "idempotent"}],
 		SetBreakpoint:    retry[[2]string{"default", "non_idempotent"}],
 		GetBreakpoint:    retry[[2]string{"default", "idempotent"}],
-		DeleteBreakpoint: retry[[2]string{"default", "idempotent"}],
 		ListBreakpoints:  retry[[2]string{"default", "idempotent"}],
 		ListDebuggees:    retry[[2]string{"default", "idempotent"}],
 	}
@@ -140,6 +140,18 @@
 	c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
 }
 
+// DeleteBreakpoint deletes the breakpoint from the debuggee.
+func (c *Debugger2Client) DeleteBreakpoint(ctx context.Context, req *clouddebuggerpb.DeleteBreakpointRequest, opts ...gax.CallOption) error {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.DeleteBreakpoint[0:len(c.CallOptions.DeleteBreakpoint):len(c.CallOptions.DeleteBreakpoint)], opts...)
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		_, err = c.debugger2Client.DeleteBreakpoint(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	return err
+}
+
 // SetBreakpoint sets the breakpoint to the debuggee.
 func (c *Debugger2Client) SetBreakpoint(ctx context.Context, req *clouddebuggerpb.SetBreakpointRequest, opts ...gax.CallOption) (*clouddebuggerpb.SetBreakpointResponse, error) {
 	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "debuggee_id", url.QueryEscape(req.GetDebuggeeId())))
@@ -173,18 +185,6 @@
 	return resp, nil
 }
 
-// DeleteBreakpoint deletes the breakpoint from the debuggee.
-func (c *Debugger2Client) DeleteBreakpoint(ctx context.Context, req *clouddebuggerpb.DeleteBreakpointRequest, opts ...gax.CallOption) error {
-	ctx = insertMetadata(ctx, c.xGoogMetadata)
-	opts = append(c.CallOptions.DeleteBreakpoint[0:len(c.CallOptions.DeleteBreakpoint):len(c.CallOptions.DeleteBreakpoint)], opts...)
-	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
-		var err error
-		_, err = c.debugger2Client.DeleteBreakpoint(ctx, req, settings.GRPC...)
-		return err
-	}, opts...)
-	return err
-}
-
 // ListBreakpoints lists all breakpoints for the debuggee.
 func (c *Debugger2Client) ListBreakpoints(ctx context.Context, req *clouddebuggerpb.ListBreakpointsRequest, opts ...gax.CallOption) (*clouddebuggerpb.ListBreakpointsResponse, error) {
 	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "debuggee_id", url.QueryEscape(req.GetDebuggeeId())))
diff --git a/debugger/apiv2/debugger2_client_example_test.go b/debugger/apiv2/debugger2_client_example_test.go
index 24d1f4c..5c9a13e 100644
--- a/debugger/apiv2/debugger2_client_example_test.go
+++ b/debugger/apiv2/debugger2_client_example_test.go
@@ -33,6 +33,22 @@
 	_ = c
 }
 
+func ExampleDebugger2Client_DeleteBreakpoint() {
+	ctx := context.Background()
+	c, err := debugger.NewDebugger2Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &clouddebuggerpb.DeleteBreakpointRequest{
+		// TODO: Fill request struct fields.
+	}
+	err = c.DeleteBreakpoint(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+}
+
 func ExampleDebugger2Client_SetBreakpoint() {
 	ctx := context.Background()
 	c, err := debugger.NewDebugger2Client(ctx)
@@ -69,22 +85,6 @@
 	_ = resp
 }
 
-func ExampleDebugger2Client_DeleteBreakpoint() {
-	ctx := context.Background()
-	c, err := debugger.NewDebugger2Client(ctx)
-	if err != nil {
-		// TODO: Handle error.
-	}
-
-	req := &clouddebuggerpb.DeleteBreakpointRequest{
-		// TODO: Fill request struct fields.
-	}
-	err = c.DeleteBreakpoint(ctx, req)
-	if err != nil {
-		// TODO: Handle error.
-	}
-}
-
 func ExampleDebugger2Client_ListBreakpoints() {
 	ctx := context.Background()
 	c, err := debugger.NewDebugger2Client(ctx)
diff --git a/debugger/apiv2/doc.go b/debugger/apiv2/doc.go
index ce71d74..6bdb1d9 100644
--- a/debugger/apiv2/doc.go
+++ b/debugger/apiv2/doc.go
@@ -101,4 +101,4 @@
 	return "UNKNOWN"
 }
 
-const versionClient = "UNKNOWN"
+const versionClient = "20191028"
diff --git a/debugger/apiv2/mock_test.go b/debugger/apiv2/mock_test.go
index 6b05daa..8207ca2 100644
--- a/debugger/apiv2/mock_test.go
+++ b/debugger/apiv2/mock_test.go
@@ -45,57 +45,6 @@
 var _ = ptypes.MarshalAny
 var _ status.Status
 
-type mockController2Server struct {
-	// Embed for forward compatibility.
-	// Tests will keep working if more methods are added
-	// in the future.
-	clouddebuggerpb.Controller2Server
-
-	reqs []proto.Message
-
-	// If set, all calls return this error.
-	err error
-
-	// responses to return if err == nil
-	resps []proto.Message
-}
-
-func (s *mockController2Server) RegisterDebuggee(ctx context.Context, req *clouddebuggerpb.RegisterDebuggeeRequest) (*clouddebuggerpb.RegisterDebuggeeResponse, error) {
-	md, _ := metadata.FromIncomingContext(ctx)
-	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
-		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
-	}
-	s.reqs = append(s.reqs, req)
-	if s.err != nil {
-		return nil, s.err
-	}
-	return s.resps[0].(*clouddebuggerpb.RegisterDebuggeeResponse), nil
-}
-
-func (s *mockController2Server) ListActiveBreakpoints(ctx context.Context, req *clouddebuggerpb.ListActiveBreakpointsRequest) (*clouddebuggerpb.ListActiveBreakpointsResponse, error) {
-	md, _ := metadata.FromIncomingContext(ctx)
-	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
-		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
-	}
-	s.reqs = append(s.reqs, req)
-	if s.err != nil {
-		return nil, s.err
-	}
-	return s.resps[0].(*clouddebuggerpb.ListActiveBreakpointsResponse), nil
-}
-
-func (s *mockController2Server) UpdateActiveBreakpoint(ctx context.Context, req *clouddebuggerpb.UpdateActiveBreakpointRequest) (*clouddebuggerpb.UpdateActiveBreakpointResponse, error) {
-	md, _ := metadata.FromIncomingContext(ctx)
-	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
-		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
-	}
-	s.reqs = append(s.reqs, req)
-	if s.err != nil {
-		return nil, s.err
-	}
-	return s.resps[0].(*clouddebuggerpb.UpdateActiveBreakpointResponse), nil
-}
-
 type mockDebugger2Server struct {
 	// Embed for forward compatibility.
 	// Tests will keep working if more methods are added
@@ -171,21 +120,72 @@
 	return s.resps[0].(*clouddebuggerpb.ListDebuggeesResponse), nil
 }
 
+type mockController2Server struct {
+	// Embed for forward compatibility.
+	// Tests will keep working if more methods are added
+	// in the future.
+	clouddebuggerpb.Controller2Server
+
+	reqs []proto.Message
+
+	// If set, all calls return this error.
+	err error
+
+	// responses to return if err == nil
+	resps []proto.Message
+}
+
+func (s *mockController2Server) RegisterDebuggee(ctx context.Context, req *clouddebuggerpb.RegisterDebuggeeRequest) (*clouddebuggerpb.RegisterDebuggeeResponse, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*clouddebuggerpb.RegisterDebuggeeResponse), nil
+}
+
+func (s *mockController2Server) ListActiveBreakpoints(ctx context.Context, req *clouddebuggerpb.ListActiveBreakpointsRequest) (*clouddebuggerpb.ListActiveBreakpointsResponse, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*clouddebuggerpb.ListActiveBreakpointsResponse), nil
+}
+
+func (s *mockController2Server) UpdateActiveBreakpoint(ctx context.Context, req *clouddebuggerpb.UpdateActiveBreakpointRequest) (*clouddebuggerpb.UpdateActiveBreakpointResponse, error) {
+	md, _ := metadata.FromIncomingContext(ctx)
+	if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
+		return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
+	}
+	s.reqs = append(s.reqs, req)
+	if s.err != nil {
+		return nil, s.err
+	}
+	return s.resps[0].(*clouddebuggerpb.UpdateActiveBreakpointResponse), nil
+}
+
 // clientOpt is the option tests should use to connect to the test server.
 // It is initialized by TestMain.
 var clientOpt option.ClientOption
 
 var (
-	mockController2 mockController2Server
 	mockDebugger2   mockDebugger2Server
+	mockController2 mockController2Server
 )
 
 func TestMain(m *testing.M) {
 	flag.Parse()
 
 	serv := grpc.NewServer()
-	clouddebuggerpb.RegisterController2Server(serv, &mockController2)
 	clouddebuggerpb.RegisterDebugger2Server(serv, &mockDebugger2)
+	clouddebuggerpb.RegisterController2Server(serv, &mockController2)
 
 	lis, err := net.Listen("tcp", "localhost:0")
 	if err != nil {
@@ -202,182 +202,65 @@
 	os.Exit(m.Run())
 }
 
-func TestController2RegisterDebuggee(t *testing.T) {
-	var expectedResponse *clouddebuggerpb.RegisterDebuggeeResponse = &clouddebuggerpb.RegisterDebuggeeResponse{}
+func TestDebugger2DeleteBreakpoint(t *testing.T) {
+	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
 
-	mockController2.err = nil
-	mockController2.reqs = nil
+	mockDebugger2.err = nil
+	mockDebugger2.reqs = nil
 
-	mockController2.resps = append(mockController2.resps[:0], expectedResponse)
+	mockDebugger2.resps = append(mockDebugger2.resps[:0], expectedResponse)
 
-	var debuggee *clouddebuggerpb.Debuggee = &clouddebuggerpb.Debuggee{}
-	var request = &clouddebuggerpb.RegisterDebuggeeRequest{
-		Debuggee: debuggee,
+	var debuggeeId string = "debuggeeId-997255898"
+	var breakpointId string = "breakpointId498424873"
+	var clientVersion string = "clientVersion-1506231196"
+	var request = &clouddebuggerpb.DeleteBreakpointRequest{
+		DebuggeeId:    debuggeeId,
+		BreakpointId:  breakpointId,
+		ClientVersion: clientVersion,
 	}
 
-	c, err := NewController2Client(context.Background(), clientOpt)
+	c, err := NewDebugger2Client(context.Background(), clientOpt)
 	if err != nil {
 		t.Fatal(err)
 	}
 
-	resp, err := c.RegisterDebuggee(context.Background(), request)
+	err = c.DeleteBreakpoint(context.Background(), request)
 
 	if err != nil {
 		t.Fatal(err)
 	}
 
-	if want, got := request, mockController2.reqs[0]; !proto.Equal(want, got) {
+	if want, got := request, mockDebugger2.reqs[0]; !proto.Equal(want, got) {
 		t.Errorf("wrong request %q, want %q", got, want)
 	}
 
-	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
-		t.Errorf("wrong response %q, want %q)", got, want)
-	}
 }
 
-func TestController2RegisterDebuggeeError(t *testing.T) {
+func TestDebugger2DeleteBreakpointError(t *testing.T) {
 	errCode := codes.PermissionDenied
-	mockController2.err = gstatus.Error(errCode, "test error")
+	mockDebugger2.err = gstatus.Error(errCode, "test error")
 
-	var debuggee *clouddebuggerpb.Debuggee = &clouddebuggerpb.Debuggee{}
-	var request = &clouddebuggerpb.RegisterDebuggeeRequest{
-		Debuggee: debuggee,
+	var debuggeeId string = "debuggeeId-997255898"
+	var breakpointId string = "breakpointId498424873"
+	var clientVersion string = "clientVersion-1506231196"
+	var request = &clouddebuggerpb.DeleteBreakpointRequest{
+		DebuggeeId:    debuggeeId,
+		BreakpointId:  breakpointId,
+		ClientVersion: clientVersion,
 	}
 
-	c, err := NewController2Client(context.Background(), clientOpt)
+	c, err := NewDebugger2Client(context.Background(), clientOpt)
 	if err != nil {
 		t.Fatal(err)
 	}
 
-	resp, err := c.RegisterDebuggee(context.Background(), request)
+	err = c.DeleteBreakpoint(context.Background(), request)
 
 	if st, ok := gstatus.FromError(err); !ok {
 		t.Errorf("got error %v, expected grpc error", err)
 	} else if c := st.Code(); c != errCode {
 		t.Errorf("got error code %q, want %q", c, errCode)
 	}
-	_ = resp
-}
-func TestController2ListActiveBreakpoints(t *testing.T) {
-	var nextWaitToken string = "nextWaitToken1006864251"
-	var waitExpired bool = false
-	var expectedResponse = &clouddebuggerpb.ListActiveBreakpointsResponse{
-		NextWaitToken: nextWaitToken,
-		WaitExpired:   waitExpired,
-	}
-
-	mockController2.err = nil
-	mockController2.reqs = nil
-
-	mockController2.resps = append(mockController2.resps[:0], expectedResponse)
-
-	var debuggeeId string = "debuggeeId-997255898"
-	var request = &clouddebuggerpb.ListActiveBreakpointsRequest{
-		DebuggeeId: debuggeeId,
-	}
-
-	c, err := NewController2Client(context.Background(), clientOpt)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	resp, err := c.ListActiveBreakpoints(context.Background(), request)
-
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	if want, got := request, mockController2.reqs[0]; !proto.Equal(want, got) {
-		t.Errorf("wrong request %q, want %q", got, want)
-	}
-
-	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
-		t.Errorf("wrong response %q, want %q)", got, want)
-	}
-}
-
-func TestController2ListActiveBreakpointsError(t *testing.T) {
-	errCode := codes.PermissionDenied
-	mockController2.err = gstatus.Error(errCode, "test error")
-
-	var debuggeeId string = "debuggeeId-997255898"
-	var request = &clouddebuggerpb.ListActiveBreakpointsRequest{
-		DebuggeeId: debuggeeId,
-	}
-
-	c, err := NewController2Client(context.Background(), clientOpt)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	resp, err := c.ListActiveBreakpoints(context.Background(), request)
-
-	if st, ok := gstatus.FromError(err); !ok {
-		t.Errorf("got error %v, expected grpc error", err)
-	} else if c := st.Code(); c != errCode {
-		t.Errorf("got error code %q, want %q", c, errCode)
-	}
-	_ = resp
-}
-func TestController2UpdateActiveBreakpoint(t *testing.T) {
-	var expectedResponse *clouddebuggerpb.UpdateActiveBreakpointResponse = &clouddebuggerpb.UpdateActiveBreakpointResponse{}
-
-	mockController2.err = nil
-	mockController2.reqs = nil
-
-	mockController2.resps = append(mockController2.resps[:0], expectedResponse)
-
-	var debuggeeId string = "debuggeeId-997255898"
-	var breakpoint *clouddebuggerpb.Breakpoint = &clouddebuggerpb.Breakpoint{}
-	var request = &clouddebuggerpb.UpdateActiveBreakpointRequest{
-		DebuggeeId: debuggeeId,
-		Breakpoint: breakpoint,
-	}
-
-	c, err := NewController2Client(context.Background(), clientOpt)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	resp, err := c.UpdateActiveBreakpoint(context.Background(), request)
-
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	if want, got := request, mockController2.reqs[0]; !proto.Equal(want, got) {
-		t.Errorf("wrong request %q, want %q", got, want)
-	}
-
-	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
-		t.Errorf("wrong response %q, want %q)", got, want)
-	}
-}
-
-func TestController2UpdateActiveBreakpointError(t *testing.T) {
-	errCode := codes.PermissionDenied
-	mockController2.err = gstatus.Error(errCode, "test error")
-
-	var debuggeeId string = "debuggeeId-997255898"
-	var breakpoint *clouddebuggerpb.Breakpoint = &clouddebuggerpb.Breakpoint{}
-	var request = &clouddebuggerpb.UpdateActiveBreakpointRequest{
-		DebuggeeId: debuggeeId,
-		Breakpoint: breakpoint,
-	}
-
-	c, err := NewController2Client(context.Background(), clientOpt)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	resp, err := c.UpdateActiveBreakpoint(context.Background(), request)
-
-	if st, ok := gstatus.FromError(err); !ok {
-		t.Errorf("got error %v, expected grpc error", err)
-	} else if c := st.Code(); c != errCode {
-		t.Errorf("got error code %q, want %q", c, errCode)
-	}
-	_ = resp
 }
 func TestDebugger2SetBreakpoint(t *testing.T) {
 	var expectedResponse *clouddebuggerpb.SetBreakpointResponse = &clouddebuggerpb.SetBreakpointResponse{}
@@ -507,66 +390,6 @@
 	}
 	_ = resp
 }
-func TestDebugger2DeleteBreakpoint(t *testing.T) {
-	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
-
-	mockDebugger2.err = nil
-	mockDebugger2.reqs = nil
-
-	mockDebugger2.resps = append(mockDebugger2.resps[:0], expectedResponse)
-
-	var debuggeeId string = "debuggeeId-997255898"
-	var breakpointId string = "breakpointId498424873"
-	var clientVersion string = "clientVersion-1506231196"
-	var request = &clouddebuggerpb.DeleteBreakpointRequest{
-		DebuggeeId:    debuggeeId,
-		BreakpointId:  breakpointId,
-		ClientVersion: clientVersion,
-	}
-
-	c, err := NewDebugger2Client(context.Background(), clientOpt)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	err = c.DeleteBreakpoint(context.Background(), request)
-
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	if want, got := request, mockDebugger2.reqs[0]; !proto.Equal(want, got) {
-		t.Errorf("wrong request %q, want %q", got, want)
-	}
-
-}
-
-func TestDebugger2DeleteBreakpointError(t *testing.T) {
-	errCode := codes.PermissionDenied
-	mockDebugger2.err = gstatus.Error(errCode, "test error")
-
-	var debuggeeId string = "debuggeeId-997255898"
-	var breakpointId string = "breakpointId498424873"
-	var clientVersion string = "clientVersion-1506231196"
-	var request = &clouddebuggerpb.DeleteBreakpointRequest{
-		DebuggeeId:    debuggeeId,
-		BreakpointId:  breakpointId,
-		ClientVersion: clientVersion,
-	}
-
-	c, err := NewDebugger2Client(context.Background(), clientOpt)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	err = c.DeleteBreakpoint(context.Background(), request)
-
-	if st, ok := gstatus.FromError(err); !ok {
-		t.Errorf("got error %v, expected grpc error", err)
-	} else if c := st.Code(); c != errCode {
-		t.Errorf("got error code %q, want %q", c, errCode)
-	}
-}
 func TestDebugger2ListBreakpoints(t *testing.T) {
 	var nextWaitToken string = "nextWaitToken1006864251"
 	var expectedResponse = &clouddebuggerpb.ListBreakpointsResponse{
@@ -690,3 +513,180 @@
 	}
 	_ = resp
 }
+func TestController2UpdateActiveBreakpoint(t *testing.T) {
+	var expectedResponse *clouddebuggerpb.UpdateActiveBreakpointResponse = &clouddebuggerpb.UpdateActiveBreakpointResponse{}
+
+	mockController2.err = nil
+	mockController2.reqs = nil
+
+	mockController2.resps = append(mockController2.resps[:0], expectedResponse)
+
+	var debuggeeId string = "debuggeeId-997255898"
+	var breakpoint *clouddebuggerpb.Breakpoint = &clouddebuggerpb.Breakpoint{}
+	var request = &clouddebuggerpb.UpdateActiveBreakpointRequest{
+		DebuggeeId: debuggeeId,
+		Breakpoint: breakpoint,
+	}
+
+	c, err := NewController2Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateActiveBreakpoint(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockController2.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestController2UpdateActiveBreakpointError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockController2.err = gstatus.Error(errCode, "test error")
+
+	var debuggeeId string = "debuggeeId-997255898"
+	var breakpoint *clouddebuggerpb.Breakpoint = &clouddebuggerpb.Breakpoint{}
+	var request = &clouddebuggerpb.UpdateActiveBreakpointRequest{
+		DebuggeeId: debuggeeId,
+		Breakpoint: breakpoint,
+	}
+
+	c, err := NewController2Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateActiveBreakpoint(context.Background(), request)
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+	_ = resp
+}
+func TestController2RegisterDebuggee(t *testing.T) {
+	var expectedResponse *clouddebuggerpb.RegisterDebuggeeResponse = &clouddebuggerpb.RegisterDebuggeeResponse{}
+
+	mockController2.err = nil
+	mockController2.reqs = nil
+
+	mockController2.resps = append(mockController2.resps[:0], expectedResponse)
+
+	var debuggee *clouddebuggerpb.Debuggee = &clouddebuggerpb.Debuggee{}
+	var request = &clouddebuggerpb.RegisterDebuggeeRequest{
+		Debuggee: debuggee,
+	}
+
+	c, err := NewController2Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.RegisterDebuggee(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockController2.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestController2RegisterDebuggeeError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockController2.err = gstatus.Error(errCode, "test error")
+
+	var debuggee *clouddebuggerpb.Debuggee = &clouddebuggerpb.Debuggee{}
+	var request = &clouddebuggerpb.RegisterDebuggeeRequest{
+		Debuggee: debuggee,
+	}
+
+	c, err := NewController2Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.RegisterDebuggee(context.Background(), request)
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+	_ = resp
+}
+func TestController2ListActiveBreakpoints(t *testing.T) {
+	var nextWaitToken string = "nextWaitToken1006864251"
+	var waitExpired bool = false
+	var expectedResponse = &clouddebuggerpb.ListActiveBreakpointsResponse{
+		NextWaitToken: nextWaitToken,
+		WaitExpired:   waitExpired,
+	}
+
+	mockController2.err = nil
+	mockController2.reqs = nil
+
+	mockController2.resps = append(mockController2.resps[:0], expectedResponse)
+
+	var debuggeeId string = "debuggeeId-997255898"
+	var request = &clouddebuggerpb.ListActiveBreakpointsRequest{
+		DebuggeeId: debuggeeId,
+	}
+
+	c, err := NewController2Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListActiveBreakpoints(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockController2.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	if want, got := expectedResponse, resp; !proto.Equal(want, got) {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestController2ListActiveBreakpointsError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockController2.err = gstatus.Error(errCode, "test error")
+
+	var debuggeeId string = "debuggeeId-997255898"
+	var request = &clouddebuggerpb.ListActiveBreakpointsRequest{
+		DebuggeeId: debuggeeId,
+	}
+
+	c, err := NewController2Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListActiveBreakpoints(context.Background(), request)
+
+	if st, ok := gstatus.FromError(err); !ok {
+		t.Errorf("got error %v, expected grpc error", err)
+	} else if c := st.Code(); c != errCode {
+		t.Errorf("got error code %q, want %q", c, errCode)
+	}
+	_ = resp
+}
diff --git a/firestore/apiv1/admin/firestore_admin_client.go b/firestore/apiv1/admin/firestore_admin_client.go
index 01e1a1c..65dc91d 100644
--- a/firestore/apiv1/admin/firestore_admin_client.go
+++ b/firestore/apiv1/admin/firestore_admin_client.go
@@ -118,7 +118,7 @@
 
 		firestoreAdminClient: adminpb.NewFirestoreAdminClient(conn),
 	}
-	c.setGoogleClientInfo()
+	c.SetGoogleClientInfo()
 	return c, nil
 }
 
@@ -133,10 +133,10 @@
 	return c.conn.Close()
 }
 
-// setGoogleClientInfo sets the name and version of the application in
+// SetGoogleClientInfo sets the name and version of the application in
 // the `x-goog-api-client` header passed on each request. Intended for
 // use by Google-written clients.
-func (c *FirestoreAdminClient) setGoogleClientInfo(keyval ...string) {
+func (c *FirestoreAdminClient) SetGoogleClientInfo(keyval ...string) {
 	kv := append([]string{"gl-go", versionGo()}, keyval...)
 	kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
 	c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
diff --git a/go.mod b/go.mod
index 7500909..efcf070 100644
--- a/go.mod
+++ b/go.mod
@@ -15,14 +15,14 @@
 	github.com/googleapis/gax-go/v2 v2.0.5
 	github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024
 	go.opencensus.io v0.22.0
-	golang.org/x/exp v0.0.0-20191014171548-69215a2ee97e
+	golang.org/x/exp v0.0.0-20191024150812-c286b889502e
 	golang.org/x/lint v0.0.0-20190930215403-16217165b5de
 	golang.org/x/net v0.0.0-20190620200207-3b0461eec859
 	golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
 	golang.org/x/text v0.3.2
-	golang.org/x/tools v0.0.0-20191022210528-83d82311fd1f
+	golang.org/x/tools v0.0.0-20191028173913-b394bd8bba1d
 	google.golang.org/api v0.11.0
-	google.golang.org/genproto v0.0.0-20191009194640-548a555dbc03
+	google.golang.org/genproto v0.0.0-20191028173616-919d9bdd9fe6
 	google.golang.org/grpc v1.21.1
 	honnef.co/go/tools v0.0.1-2019.2.3
 )
diff --git a/go.sum b/go.sum
index 759c2e4..5a9f6fc 100644
--- a/go.sum
+++ b/go.sum
@@ -75,8 +75,8 @@
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 golang.org/x/exp v0.0.0-20190829153037-c13cbed26979 h1:Agxu5KLo8o7Bb634SVDnhIfpTvxmzUwhbYAzBvXt6h4=
 golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
-golang.org/x/exp v0.0.0-20191014171548-69215a2ee97e h1:ewBcnrlKhy0GKnQ31tXkOC/G7/jHC4ogar1TiIfANC4=
-golang.org/x/exp v0.0.0-20191014171548-69215a2ee97e/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
+golang.org/x/exp v0.0.0-20191024150812-c286b889502e h1:fmGnHW8OPmvjJP1J7hROFG77l4AgxYQWmbEyGsBpddg=
+golang.org/x/exp v0.0.0-20191024150812-c286b889502e/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -157,8 +157,8 @@
 golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff h1:On1qIo75ByTwFJ4/W2bIqHcwJ9XAqtSWUs8GwRrIhtc=
 golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191022210528-83d82311fd1f h1:X4UYO3m0+b0v4ctMUiMVB/vdVP5v25QRYMtH88N+Ne8=
-golang.org/x/tools v0.0.0-20191022210528-83d82311fd1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191028173913-b394bd8bba1d h1:6lJmNmBxF3rqvoa+GEU+fMkB1LmsZHcagu45likjWkw=
+golang.org/x/tools v0.0.0-20191028173913-b394bd8bba1d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
@@ -188,8 +188,8 @@
 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
 google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51 h1:Ex1mq5jaJof+kRnYi3SlYJ8KKa9Ao3NHyIT5XJ1gF6U=
 google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
-google.golang.org/genproto v0.0.0-20191009194640-548a555dbc03 h1:4HYDjxeNXAOTv3o1N2tjo8UUSlhQgAD52FVkwxnWgM8=
-google.golang.org/genproto v0.0.0-20191009194640-548a555dbc03/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20191028173616-919d9bdd9fe6 h1:UXl+Zk3jqqcbEVV7ace5lrt4YdA4tXiz3f/KbmD29Vo=
+google.golang.org/genproto v0.0.0-20191028173616-919d9bdd9fe6/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
 google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1 h1:Hz2g2wirWK7H0qIIhGIqRGTuMwTE8HEKFnDZZ7lm9NU=
diff --git a/iot/apiv1/device_manager_client.go b/iot/apiv1/device_manager_client.go
index 64cadc1..361ec0d 100644
--- a/iot/apiv1/device_manager_client.go
+++ b/iot/apiv1/device_manager_client.go
@@ -81,38 +81,25 @@
 				})
 			}),
 		},
-		{"rate_limited_aware", "rate_limited_aware"}: {
-			gax.WithRetry(func() gax.Retryer {
-				return gax.OnCodes([]codes.Code{
-					codes.DeadlineExceeded,
-					codes.ResourceExhausted,
-					codes.Unavailable,
-				}, gax.Backoff{
-					Initial:    1000 * time.Millisecond,
-					Max:        60000 * time.Millisecond,
-					Multiplier: 1.3,
-				})
-			}),
-		},
 	}
 	return &DeviceManagerCallOptions{
 		CreateDeviceRegistry:      retry[[2]string{"default", "non_idempotent"}],
 		GetDeviceRegistry:         retry[[2]string{"default", "idempotent"}],
 		UpdateDeviceRegistry:      retry[[2]string{"default", "non_idempotent"}],
-		DeleteDeviceRegistry:      retry[[2]string{"default", "idempotent"}],
+		DeleteDeviceRegistry:      retry[[2]string{"default", "non_idempotent"}],
 		ListDeviceRegistries:      retry[[2]string{"default", "idempotent"}],
 		CreateDevice:              retry[[2]string{"default", "non_idempotent"}],
 		GetDevice:                 retry[[2]string{"default", "idempotent"}],
 		UpdateDevice:              retry[[2]string{"default", "non_idempotent"}],
-		DeleteDevice:              retry[[2]string{"default", "idempotent"}],
+		DeleteDevice:              retry[[2]string{"default", "non_idempotent"}],
 		ListDevices:               retry[[2]string{"default", "idempotent"}],
-		ModifyCloudToDeviceConfig: retry[[2]string{"rate_limited_aware", "rate_limited_aware"}],
+		ModifyCloudToDeviceConfig: retry[[2]string{"default", "non_idempotent"}],
 		ListDeviceConfigVersions:  retry[[2]string{"default", "idempotent"}],
 		ListDeviceStates:          retry[[2]string{"default", "idempotent"}],
 		SetIamPolicy:              retry[[2]string{"default", "non_idempotent"}],
 		GetIamPolicy:              retry[[2]string{"default", "non_idempotent"}],
 		TestIamPermissions:        retry[[2]string{"default", "non_idempotent"}],
-		SendCommandToDevice:       retry[[2]string{"rate_limited_aware", "rate_limited_aware"}],
+		SendCommandToDevice:       retry[[2]string{"default", "non_idempotent"}],
 		BindDeviceToGateway:       retry[[2]string{"default", "non_idempotent"}],
 		UnbindDeviceFromGateway:   retry[[2]string{"default", "non_idempotent"}],
 	}
diff --git a/iot/apiv1/doc.go b/iot/apiv1/doc.go
index d725f6a..4b27f87 100644
--- a/iot/apiv1/doc.go
+++ b/iot/apiv1/doc.go
@@ -99,4 +99,4 @@
 	return "UNKNOWN"
 }
 
-const versionClient = "UNKNOWN"
+const versionClient = "20191028"
diff --git a/iot/apiv1/mock_test.go b/iot/apiv1/mock_test.go
index 7b3ea08..f27813f 100644
--- a/iot/apiv1/mock_test.go
+++ b/iot/apiv1/mock_test.go
@@ -1151,10 +1151,10 @@
 
 	mockDeviceManager.resps = append(mockDeviceManager.resps[:0], expectedResponse)
 
-	var formattedResource string = fmt.Sprintf("projects/%s/locations/%s/registries/%s", "[PROJECT]", "[LOCATION]", "[REGISTRY]")
+	var resource string = "resource-341064690"
 	var policy *iampb.Policy = &iampb.Policy{}
 	var request = &iampb.SetIamPolicyRequest{
-		Resource: formattedResource,
+		Resource: resource,
 		Policy:   policy,
 	}
 
@@ -1182,10 +1182,10 @@
 	errCode := codes.PermissionDenied
 	mockDeviceManager.err = gstatus.Error(errCode, "test error")
 
-	var formattedResource string = fmt.Sprintf("projects/%s/locations/%s/registries/%s", "[PROJECT]", "[LOCATION]", "[REGISTRY]")
+	var resource string = "resource-341064690"
 	var policy *iampb.Policy = &iampb.Policy{}
 	var request = &iampb.SetIamPolicyRequest{
-		Resource: formattedResource,
+		Resource: resource,
 		Policy:   policy,
 	}
 
@@ -1216,9 +1216,9 @@
 
 	mockDeviceManager.resps = append(mockDeviceManager.resps[:0], expectedResponse)
 
-	var formattedResource string = fmt.Sprintf("projects/%s/locations/%s/registries/%s", "[PROJECT]", "[LOCATION]", "[REGISTRY]")
+	var resource string = "resource-341064690"
 	var request = &iampb.GetIamPolicyRequest{
-		Resource: formattedResource,
+		Resource: resource,
 	}
 
 	c, err := NewDeviceManagerClient(context.Background(), clientOpt)
@@ -1245,9 +1245,9 @@
 	errCode := codes.PermissionDenied
 	mockDeviceManager.err = gstatus.Error(errCode, "test error")
 
-	var formattedResource string = fmt.Sprintf("projects/%s/locations/%s/registries/%s", "[PROJECT]", "[LOCATION]", "[REGISTRY]")
+	var resource string = "resource-341064690"
 	var request = &iampb.GetIamPolicyRequest{
-		Resource: formattedResource,
+		Resource: resource,
 	}
 
 	c, err := NewDeviceManagerClient(context.Background(), clientOpt)
@@ -1272,11 +1272,9 @@
 
 	mockDeviceManager.resps = append(mockDeviceManager.resps[:0], expectedResponse)
 
-	var formattedResource string = fmt.Sprintf("projects/%s/locations/%s/registries/%s", "[PROJECT]", "[LOCATION]", "[REGISTRY]")
-	var permissions []string = nil
+	var resource string = "resource-341064690"
 	var request = &iampb.TestIamPermissionsRequest{
-		Resource:    formattedResource,
-		Permissions: permissions,
+		Resource: resource,
 	}
 
 	c, err := NewDeviceManagerClient(context.Background(), clientOpt)
@@ -1303,11 +1301,9 @@
 	errCode := codes.PermissionDenied
 	mockDeviceManager.err = gstatus.Error(errCode, "test error")
 
-	var formattedResource string = fmt.Sprintf("projects/%s/locations/%s/registries/%s", "[PROJECT]", "[LOCATION]", "[REGISTRY]")
-	var permissions []string = nil
+	var resource string = "resource-341064690"
 	var request = &iampb.TestIamPermissionsRequest{
-		Resource:    formattedResource,
-		Permissions: permissions,
+		Resource: resource,
 	}
 
 	c, err := NewDeviceManagerClient(context.Background(), clientOpt)
diff --git a/language/apiv1/doc.go b/language/apiv1/doc.go
index 6771001..48378fa 100644
--- a/language/apiv1/doc.go
+++ b/language/apiv1/doc.go
@@ -12,17 +12,17 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Code generated by gapic-generator. DO NOT EDIT.
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
 
 // Package language is an auto-generated package for the
 // Cloud Natural Language API.
 //
-//   NOTE: This package is in alpha. It is not stable, and is likely to change.
-//
 // Provides natural language understanding technologies, such as sentiment
 // analysis, entity recognition, entity sentiment analysis, and other text
 // annotations, to developers.
 //
+//   NOTE: This package is in alpha. It is not stable, and is likely to change.
+//
 // Use of Context
 //
 // The ctx passed to NewClient is used for authentication requests and
@@ -33,6 +33,7 @@
 //
 // For information about setting deadlines, reusing contexts, and more
 // please visit godoc.org/cloud.google.com/go.
+
 package language // import "cloud.google.com/go/language/apiv1"
 
 import (
@@ -44,6 +45,8 @@
 	"google.golang.org/grpc/metadata"
 )
 
+const versionClient = "20191028"
+
 func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
 	out, _ := metadata.FromOutgoingContext(ctx)
 	out = out.Copy()
@@ -78,7 +81,7 @@
 	}
 
 	notSemverRune := func(r rune) bool {
-		return strings.IndexRune("0123456789.", r) < 0
+		return !strings.ContainsRune("0123456789.", r)
 	}
 
 	if strings.HasPrefix(s, "go1") {
@@ -99,5 +102,3 @@
 	}
 	return "UNKNOWN"
 }
-
-const versionClient = "UNKNOWN"
diff --git a/language/apiv1/language_client.go b/language/apiv1/language_client.go
index 0b0c97c..611e381 100644
--- a/language/apiv1/language_client.go
+++ b/language/apiv1/language_client.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Code generated by gapic-generator. DO NOT EDIT.
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
 
 package language
 
@@ -43,6 +43,7 @@
 func defaultClientOptions() []option.ClientOption {
 	return []option.ClientOption{
 		option.WithEndpoint("language.googleapis.com:443"),
+		option.WithGRPCDialOption(grpc.WithDisableServiceConfig()),
 		option.WithScopes(DefaultAuthScopes()...),
 		option.WithGRPCDialOption(grpc.WithDefaultCallOptions(
 			grpc.MaxCallRecvMsgSize(math.MaxInt32))),
@@ -50,8 +51,8 @@
 }
 
 func defaultCallOptions() *CallOptions {
-	retry := map[[2]string][]gax.CallOption{
-		{"default", "idempotent"}: {
+	return &CallOptions{
+		AnalyzeSentiment: []gax.CallOption{
 			gax.WithRetry(func() gax.Retryer {
 				return gax.OnCodes([]codes.Code{
 					codes.DeadlineExceeded,
@@ -59,18 +60,70 @@
 				}, gax.Backoff{
 					Initial:    100 * time.Millisecond,
 					Max:        60000 * time.Millisecond,
-					Multiplier: 1.3,
+					Multiplier: 1.30,
 				})
 			}),
 		},
-	}
-	return &CallOptions{
-		AnalyzeSentiment:       retry[[2]string{"default", "idempotent"}],
-		AnalyzeEntities:        retry[[2]string{"default", "idempotent"}],
-		AnalyzeEntitySentiment: retry[[2]string{"default", "idempotent"}],
-		AnalyzeSyntax:          retry[[2]string{"default", "idempotent"}],
-		ClassifyText:           retry[[2]string{"default", "idempotent"}],
-		AnnotateText:           retry[[2]string{"default", "idempotent"}],
+		AnalyzeEntities: []gax.CallOption{
+			gax.WithRetry(func() gax.Retryer {
+				return gax.OnCodes([]codes.Code{
+					codes.DeadlineExceeded,
+					codes.Unavailable,
+				}, gax.Backoff{
+					Initial:    100 * time.Millisecond,
+					Max:        60000 * time.Millisecond,
+					Multiplier: 1.30,
+				})
+			}),
+		},
+		AnalyzeEntitySentiment: []gax.CallOption{
+			gax.WithRetry(func() gax.Retryer {
+				return gax.OnCodes([]codes.Code{
+					codes.DeadlineExceeded,
+					codes.Unavailable,
+				}, gax.Backoff{
+					Initial:    100 * time.Millisecond,
+					Max:        60000 * time.Millisecond,
+					Multiplier: 1.30,
+				})
+			}),
+		},
+		AnalyzeSyntax: []gax.CallOption{
+			gax.WithRetry(func() gax.Retryer {
+				return gax.OnCodes([]codes.Code{
+					codes.DeadlineExceeded,
+					codes.Unavailable,
+				}, gax.Backoff{
+					Initial:    100 * time.Millisecond,
+					Max:        60000 * time.Millisecond,
+					Multiplier: 1.30,
+				})
+			}),
+		},
+		ClassifyText: []gax.CallOption{
+			gax.WithRetry(func() gax.Retryer {
+				return gax.OnCodes([]codes.Code{
+					codes.DeadlineExceeded,
+					codes.Unavailable,
+				}, gax.Backoff{
+					Initial:    100 * time.Millisecond,
+					Max:        60000 * time.Millisecond,
+					Multiplier: 1.30,
+				})
+			}),
+		},
+		AnnotateText: []gax.CallOption{
+			gax.WithRetry(func() gax.Retryer {
+				return gax.OnCodes([]codes.Code{
+					codes.DeadlineExceeded,
+					codes.Unavailable,
+				}, gax.Backoff{
+					Initial:    100 * time.Millisecond,
+					Max:        60000 * time.Millisecond,
+					Multiplier: 1.30,
+				})
+			}),
+		},
 	}
 }
 
@@ -107,6 +160,7 @@
 		client: languagepb.NewLanguageServiceClient(conn),
 	}
 	c.setGoogleClientInfo()
+
 	return c, nil
 }
 
diff --git a/language/apiv1/language_client_example_test.go b/language/apiv1/language_client_example_test.go
index ff2adc4..665a422 100644
--- a/language/apiv1/language_client_example_test.go
+++ b/language/apiv1/language_client_example_test.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Code generated by gapic-generator. DO NOT EDIT.
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
 
 package language_test
 
@@ -34,6 +34,8 @@
 }
 
 func ExampleClient_AnalyzeSentiment() {
+	// import languagepb "google.golang.org/genproto/googleapis/cloud/language/v1"
+
 	ctx := context.Background()
 	c, err := language.NewClient(ctx)
 	if err != nil {
@@ -52,6 +54,8 @@
 }
 
 func ExampleClient_AnalyzeEntities() {
+	// import languagepb "google.golang.org/genproto/googleapis/cloud/language/v1"
+
 	ctx := context.Background()
 	c, err := language.NewClient(ctx)
 	if err != nil {
@@ -70,6 +74,8 @@
 }
 
 func ExampleClient_AnalyzeEntitySentiment() {
+	// import languagepb "google.golang.org/genproto/googleapis/cloud/language/v1"
+
 	ctx := context.Background()
 	c, err := language.NewClient(ctx)
 	if err != nil {
@@ -88,6 +94,8 @@
 }
 
 func ExampleClient_AnalyzeSyntax() {
+	// import languagepb "google.golang.org/genproto/googleapis/cloud/language/v1"
+
 	ctx := context.Background()
 	c, err := language.NewClient(ctx)
 	if err != nil {
@@ -106,6 +114,8 @@
 }
 
 func ExampleClient_ClassifyText() {
+	// import languagepb "google.golang.org/genproto/googleapis/cloud/language/v1"
+
 	ctx := context.Background()
 	c, err := language.NewClient(ctx)
 	if err != nil {
@@ -124,6 +134,8 @@
 }
 
 func ExampleClient_AnnotateText() {
+	// import languagepb "google.golang.org/genproto/googleapis/cloud/language/v1"
+
 	ctx := context.Background()
 	c, err := language.NewClient(ctx)
 	if err != nil {
diff --git a/monitoring/apiv3/doc.go b/monitoring/apiv3/doc.go
index 74be266..1ddac19 100644
--- a/monitoring/apiv3/doc.go
+++ b/monitoring/apiv3/doc.go
@@ -102,4 +102,4 @@
 	return "UNKNOWN"
 }
 
-const versionClient = "UNKNOWN"
+const versionClient = "20191028"
diff --git a/monitoring/apiv3/mock_test.go b/monitoring/apiv3/mock_test.go
index 1c36b45..20e565c 100644
--- a/monitoring/apiv3/mock_test.go
+++ b/monitoring/apiv3/mock_test.go
@@ -2549,9 +2549,11 @@
 func TestUptimeCheckServiceGetUptimeCheckConfig(t *testing.T) {
 	var name2 string = "name2-1052831874"
 	var displayName string = "displayName1615086568"
+	var isInternal bool = true
 	var expectedResponse = &monitoringpb.UptimeCheckConfig{
 		Name:        name2,
 		DisplayName: displayName,
+		IsInternal:  isInternal,
 	}
 
 	mockUptimeCheck.err = nil
@@ -2610,9 +2612,11 @@
 func TestUptimeCheckServiceCreateUptimeCheckConfig(t *testing.T) {
 	var name string = "name3373707"
 	var displayName string = "displayName1615086568"
+	var isInternal bool = true
 	var expectedResponse = &monitoringpb.UptimeCheckConfig{
 		Name:        name,
 		DisplayName: displayName,
+		IsInternal:  isInternal,
 	}
 
 	mockUptimeCheck.err = nil
@@ -2675,9 +2679,11 @@
 func TestUptimeCheckServiceUpdateUptimeCheckConfig(t *testing.T) {
 	var name string = "name3373707"
 	var displayName string = "displayName1615086568"
+	var isInternal bool = true
 	var expectedResponse = &monitoringpb.UptimeCheckConfig{
 		Name:        name,
 		DisplayName: displayName,
+		IsInternal:  isInternal,
 	}
 
 	mockUptimeCheck.err = nil
diff --git a/oslogin/apiv1/doc.go b/oslogin/apiv1/doc.go
index 65c2615..ad7e942 100644
--- a/oslogin/apiv1/doc.go
+++ b/oslogin/apiv1/doc.go
@@ -100,4 +100,4 @@
 	return "UNKNOWN"
 }
 
-const versionClient = "UNKNOWN"
+const versionClient = "20191028"
diff --git a/oslogin/apiv1/mock_test.go b/oslogin/apiv1/mock_test.go
index 8dce20d..f3c2879 100644
--- a/oslogin/apiv1/mock_test.go
+++ b/oslogin/apiv1/mock_test.go
@@ -268,10 +268,8 @@
 }
 func TestOsLoginServiceGetLoginProfile(t *testing.T) {
 	var name2 string = "name2-1052831874"
-	var suspended bool = false
 	var expectedResponse = &osloginpb.LoginProfile{
-		Name:      name2,
-		Suspended: suspended,
+		Name: name2,
 	}
 
 	mockOsLogin.err = nil
@@ -401,10 +399,8 @@
 	mockOsLogin.resps = append(mockOsLogin.resps[:0], expectedResponse)
 
 	var formattedParent string = fmt.Sprintf("users/%s", "[USER]")
-	var sshPublicKey *commonpb.SshPublicKey = &commonpb.SshPublicKey{}
 	var request = &osloginpb.ImportSshPublicKeyRequest{
-		Parent:       formattedParent,
-		SshPublicKey: sshPublicKey,
+		Parent: formattedParent,
 	}
 
 	c, err := NewClient(context.Background(), clientOpt)
@@ -432,10 +428,8 @@
 	mockOsLogin.err = gstatus.Error(errCode, "test error")
 
 	var formattedParent string = fmt.Sprintf("users/%s", "[USER]")
-	var sshPublicKey *commonpb.SshPublicKey = &commonpb.SshPublicKey{}
 	var request = &osloginpb.ImportSshPublicKeyRequest{
-		Parent:       formattedParent,
-		SshPublicKey: sshPublicKey,
+		Parent: formattedParent,
 	}
 
 	c, err := NewClient(context.Background(), clientOpt)
diff --git a/oslogin/apiv1/os_login_client.go b/oslogin/apiv1/os_login_client.go
index 75a2842..2e0ec23 100644
--- a/oslogin/apiv1/os_login_client.go
+++ b/oslogin/apiv1/os_login_client.go
@@ -68,12 +68,12 @@
 		},
 	}
 	return &CallOptions{
-		DeletePosixAccount: retry[[2]string{"default", "idempotent"}],
-		DeleteSshPublicKey: retry[[2]string{"default", "idempotent"}],
+		DeletePosixAccount: retry[[2]string{"default", "non_idempotent"}],
+		DeleteSshPublicKey: retry[[2]string{"default", "non_idempotent"}],
 		GetLoginProfile:    retry[[2]string{"default", "idempotent"}],
 		GetSshPublicKey:    retry[[2]string{"default", "idempotent"}],
-		ImportSshPublicKey: retry[[2]string{"default", "idempotent"}],
-		UpdateSshPublicKey: retry[[2]string{"default", "idempotent"}],
+		ImportSshPublicKey: retry[[2]string{"default", "non_idempotent"}],
+		UpdateSshPublicKey: retry[[2]string{"default", "non_idempotent"}],
 	}
 }
 
diff --git a/oslogin/apiv1beta/doc.go b/oslogin/apiv1beta/doc.go
index d8c1ba4..cef3fbd 100644
--- a/oslogin/apiv1beta/doc.go
+++ b/oslogin/apiv1beta/doc.go
@@ -100,4 +100,4 @@
 	return "UNKNOWN"
 }
 
-const versionClient = "UNKNOWN"
+const versionClient = "20191028"
diff --git a/oslogin/apiv1beta/mock_test.go b/oslogin/apiv1beta/mock_test.go
index bc7f4f9..20a5f2d 100644
--- a/oslogin/apiv1beta/mock_test.go
+++ b/oslogin/apiv1beta/mock_test.go
@@ -268,10 +268,8 @@
 }
 func TestOsLoginServiceGetLoginProfile(t *testing.T) {
 	var name2 string = "name2-1052831874"
-	var suspended bool = false
 	var expectedResponse = &osloginpb.LoginProfile{
-		Name:      name2,
-		Suspended: suspended,
+		Name: name2,
 	}
 
 	mockOsLogin.err = nil
diff --git a/phishingprotection/apiv1beta1/doc.go b/phishingprotection/apiv1beta1/doc.go
index 14caa2d..700a095 100644
--- a/phishingprotection/apiv1beta1/doc.go
+++ b/phishingprotection/apiv1beta1/doc.go
@@ -12,14 +12,13 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Code generated by gapic-generator. DO NOT EDIT.
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
 
 // Package phishingprotection is an auto-generated package for the
 // Phishing Protection API.
 //
 //   NOTE: This package is in beta. It is not stable, and may be subject to changes.
 //
-//
 // Use of Context
 //
 // The ctx passed to NewClient is used for authentication requests and
@@ -30,6 +29,7 @@
 //
 // For information about setting deadlines, reusing contexts, and more
 // please visit godoc.org/cloud.google.com/go.
+
 package phishingprotection // import "cloud.google.com/go/phishingprotection/apiv1beta1"
 
 import (
@@ -41,6 +41,8 @@
 	"google.golang.org/grpc/metadata"
 )
 
+const versionClient = "20191028"
+
 func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
 	out, _ := metadata.FromOutgoingContext(ctx)
 	out = out.Copy()
@@ -74,7 +76,7 @@
 	}
 
 	notSemverRune := func(r rune) bool {
-		return strings.IndexRune("0123456789.", r) < 0
+		return !strings.ContainsRune("0123456789.", r)
 	}
 
 	if strings.HasPrefix(s, "go1") {
@@ -95,5 +97,3 @@
 	}
 	return "UNKNOWN"
 }
-
-const versionClient = "UNKNOWN"
diff --git a/phishingprotection/apiv1beta1/phishing_protection_service_v1_beta1_client.go b/phishingprotection/apiv1beta1/phishing_protection_service_v1_beta1_client.go
index c4831ac..742533b 100644
--- a/phishingprotection/apiv1beta1/phishing_protection_service_v1_beta1_client.go
+++ b/phishingprotection/apiv1beta1/phishing_protection_service_v1_beta1_client.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Code generated by gapic-generator. DO NOT EDIT.
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
 
 package phishingprotection
 
@@ -38,6 +38,7 @@
 func defaultPhishingProtectionServiceV1Beta1ClientOptions() []option.ClientOption {
 	return []option.ClientOption{
 		option.WithEndpoint("phishingprotection.googleapis.com:443"),
+		option.WithGRPCDialOption(grpc.WithDisableServiceConfig()),
 		option.WithScopes(DefaultAuthScopes()...),
 		option.WithGRPCDialOption(grpc.WithDefaultCallOptions(
 			grpc.MaxCallRecvMsgSize(math.MaxInt32))),
@@ -45,9 +46,8 @@
 }
 
 func defaultPhishingProtectionServiceV1Beta1CallOptions() *PhishingProtectionServiceV1Beta1CallOptions {
-	retry := map[[2]string][]gax.CallOption{}
 	return &PhishingProtectionServiceV1Beta1CallOptions{
-		ReportPhishing: retry[[2]string{"default", "non_idempotent"}],
+		ReportPhishing: []gax.CallOption{},
 	}
 }
 
@@ -83,6 +83,7 @@
 		phishingProtectionServiceV1Beta1Client: phishingprotectionpb.NewPhishingProtectionServiceV1Beta1Client(conn),
 	}
 	c.setGoogleClientInfo()
+
 	return c, nil
 }
 
@@ -110,7 +111,7 @@
 // the report review is complete, its result can be found in the Cloud
 // Security Command Center findings dashboard for Phishing Protection. If the
 // result verifies the existence of malicious phishing content, the site will
-// be added the to Google's Social Engineering
+// be added the to Google’s Social Engineering
 // lists (at https://support.google.com/webmasters/answer/6350487/) in order to
 // protect users that could get exposed to this threat in the future.
 func (c *PhishingProtectionServiceV1Beta1Client) ReportPhishing(ctx context.Context, req *phishingprotectionpb.ReportPhishingRequest, opts ...gax.CallOption) (*phishingprotectionpb.ReportPhishingResponse, error) {
diff --git a/phishingprotection/apiv1beta1/phishing_protection_service_v1_beta1_client_example_test.go b/phishingprotection/apiv1beta1/phishing_protection_service_v1_beta1_client_example_test.go
index 04c7c3a..70d5be7 100644
--- a/phishingprotection/apiv1beta1/phishing_protection_service_v1_beta1_client_example_test.go
+++ b/phishingprotection/apiv1beta1/phishing_protection_service_v1_beta1_client_example_test.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Code generated by gapic-generator. DO NOT EDIT.
+// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
 
 package phishingprotection_test
 
@@ -34,6 +34,8 @@
 }
 
 func ExamplePhishingProtectionServiceV1Beta1Client_ReportPhishing() {
+	// import phishingprotectionpb "google.golang.org/genproto/googleapis/cloud/phishingprotection/v1beta1"
+
 	ctx := context.Background()
 	c, err := phishingprotection.NewPhishingProtectionServiceV1Beta1Client(ctx)
 	if err != nil {
diff --git a/scheduler/apiv1/cloud_scheduler_client.go b/scheduler/apiv1/cloud_scheduler_client.go
index 6a7eda0..7ee27d2 100644
--- a/scheduler/apiv1/cloud_scheduler_client.go
+++ b/scheduler/apiv1/cloud_scheduler_client.go
@@ -75,7 +75,7 @@
 		GetJob:    retry[[2]string{"default", "idempotent"}],
 		CreateJob: retry[[2]string{"default", "non_idempotent"}],
 		UpdateJob: retry[[2]string{"default", "non_idempotent"}],
-		DeleteJob: retry[[2]string{"default", "idempotent"}],
+		DeleteJob: retry[[2]string{"default", "non_idempotent"}],
 		PauseJob:  retry[[2]string{"default", "non_idempotent"}],
 		ResumeJob: retry[[2]string{"default", "non_idempotent"}],
 		RunJob:    retry[[2]string{"default", "non_idempotent"}],
diff --git a/scheduler/apiv1/doc.go b/scheduler/apiv1/doc.go
index b1acbf9..1b6b8be 100644
--- a/scheduler/apiv1/doc.go
+++ b/scheduler/apiv1/doc.go
@@ -96,4 +96,4 @@
 	return "UNKNOWN"
 }
 
-const versionClient = "UNKNOWN"
+const versionClient = "20191028"
diff --git a/scheduler/apiv1beta1/cloud_scheduler_client.go b/scheduler/apiv1beta1/cloud_scheduler_client.go
index 71caedf..694a44e 100644
--- a/scheduler/apiv1beta1/cloud_scheduler_client.go
+++ b/scheduler/apiv1beta1/cloud_scheduler_client.go
@@ -75,9 +75,9 @@
 		GetJob:    retry[[2]string{"default", "idempotent"}],
 		CreateJob: retry[[2]string{"default", "non_idempotent"}],
 		UpdateJob: retry[[2]string{"default", "non_idempotent"}],
-		DeleteJob: retry[[2]string{"default", "idempotent"}],
-		PauseJob:  retry[[2]string{"default", "idempotent"}],
-		ResumeJob: retry[[2]string{"default", "idempotent"}],
+		DeleteJob: retry[[2]string{"default", "non_idempotent"}],
+		PauseJob:  retry[[2]string{"default", "non_idempotent"}],
+		ResumeJob: retry[[2]string{"default", "non_idempotent"}],
 		RunJob:    retry[[2]string{"default", "non_idempotent"}],
 	}
 }
diff --git a/scheduler/apiv1beta1/doc.go b/scheduler/apiv1beta1/doc.go
index d777a8f..8f084d6 100644
--- a/scheduler/apiv1beta1/doc.go
+++ b/scheduler/apiv1beta1/doc.go
@@ -97,4 +97,4 @@
 	return "UNKNOWN"
 }
 
-const versionClient = "UNKNOWN"
+const versionClient = "20191028"
diff --git a/texttospeech/apiv1/doc.go b/texttospeech/apiv1/doc.go
index 6ab7bf2..b52fdef 100644
--- a/texttospeech/apiv1/doc.go
+++ b/texttospeech/apiv1/doc.go
@@ -44,7 +44,7 @@
 	"google.golang.org/grpc/metadata"
 )
 
-const versionClient = "20191007"
+const versionClient = "20191028"
 
 func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
 	out, _ := metadata.FromOutgoingContext(ctx)