devtools/containeranalysis/v1beta1: new client

Change-Id: I71434a8d4efc6ce84cbf14ea5118e9194d111986
Reviewed-on: https://code-review.googlesource.com/31690
Reviewed-by: Jean de Klerk <deklerk@google.com>
diff --git a/devtools/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client.go b/devtools/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client.go
new file mode 100644
index 0000000..5d95ec7
--- /dev/null
+++ b/devtools/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client.go
@@ -0,0 +1,323 @@
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// AUTO-GENERATED CODE. DO NOT EDIT.
+
+package containeranalysis
+
+import (
+	"math"
+	"time"
+
+	"cloud.google.com/go/internal/version"
+	"github.com/golang/protobuf/proto"
+	gax "github.com/googleapis/gax-go"
+	"golang.org/x/net/context"
+	"google.golang.org/api/iterator"
+	"google.golang.org/api/option"
+	"google.golang.org/api/transport"
+	containeranalysispb "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1"
+	iampb "google.golang.org/genproto/googleapis/iam/v1"
+	"google.golang.org/grpc"
+	"google.golang.org/grpc/codes"
+	"google.golang.org/grpc/metadata"
+)
+
+// ContainerAnalysisV1Beta1CallOptions contains the retry settings for each method of ContainerAnalysisV1Beta1Client.
+type ContainerAnalysisV1Beta1CallOptions struct {
+	SetIamPolicy       []gax.CallOption
+	GetIamPolicy       []gax.CallOption
+	TestIamPermissions []gax.CallOption
+	GetScanConfig      []gax.CallOption
+	ListScanConfigs    []gax.CallOption
+	UpdateScanConfig   []gax.CallOption
+}
+
+func defaultContainerAnalysisV1Beta1ClientOptions() []option.ClientOption {
+	return []option.ClientOption{
+		option.WithEndpoint("containeranalysis.googleapis.com:443"),
+		option.WithScopes(DefaultAuthScopes()...),
+	}
+}
+
+func defaultContainerAnalysisV1Beta1CallOptions() *ContainerAnalysisV1Beta1CallOptions {
+	retry := map[[2]string][]gax.CallOption{
+		{"default", "idempotent"}: {
+			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.3,
+				})
+			}),
+		},
+	}
+	return &ContainerAnalysisV1Beta1CallOptions{
+		SetIamPolicy:       retry[[2]string{"default", "non_idempotent"}],
+		GetIamPolicy:       retry[[2]string{"default", "non_idempotent"}],
+		TestIamPermissions: retry[[2]string{"default", "non_idempotent"}],
+		GetScanConfig:      retry[[2]string{"default", "idempotent"}],
+		ListScanConfigs:    retry[[2]string{"default", "idempotent"}],
+		UpdateScanConfig:   retry[[2]string{"default", "non_idempotent"}],
+	}
+}
+
+// ContainerAnalysisV1Beta1Client is a client for interacting with Container Analysis API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type ContainerAnalysisV1Beta1Client struct {
+	// The connection to the service.
+	conn *grpc.ClientConn
+
+	// The gRPC API client.
+	containerAnalysisV1Beta1Client containeranalysispb.ContainerAnalysisV1Beta1Client
+
+	// The call options for this service.
+	CallOptions *ContainerAnalysisV1Beta1CallOptions
+
+	// The x-goog-* metadata to be sent with each request.
+	xGoogMetadata metadata.MD
+}
+
+// NewContainerAnalysisV1Beta1Client creates a new container analysis v1 beta1 client.
+//
+// Retrieves analysis results of Cloud components such as Docker container
+// images. The Container Analysis API is an implementation of the
+// Grafeas (at grafeas.io) API.
+//
+// Analysis results are stored as a series of occurrences. An Occurrence
+// contains information about a specific analysis instance on a resource. An
+// occurrence refers to a Note. A note contains details describing the
+// analysis and is generally stored in a separate project, called a Provider.
+// Multiple occurrences can refer to the same note.
+//
+// For example, an SSL vulnerability could affect multiple images. In this case,
+// there would be one note for the vulnerability and an occurrence for each
+// image with the vulnerability referring to that note.
+func NewContainerAnalysisV1Beta1Client(ctx context.Context, opts ...option.ClientOption) (*ContainerAnalysisV1Beta1Client, error) {
+	conn, err := transport.DialGRPC(ctx, append(defaultContainerAnalysisV1Beta1ClientOptions(), opts...)...)
+	if err != nil {
+		return nil, err
+	}
+	c := &ContainerAnalysisV1Beta1Client{
+		conn:        conn,
+		CallOptions: defaultContainerAnalysisV1Beta1CallOptions(),
+
+		containerAnalysisV1Beta1Client: containeranalysispb.NewContainerAnalysisV1Beta1Client(conn),
+	}
+	c.setGoogleClientInfo()
+	return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *ContainerAnalysisV1Beta1Client) Connection() *grpc.ClientConn {
+	return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *ContainerAnalysisV1Beta1Client) Close() error {
+	return c.conn.Close()
+}
+
+// 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 *ContainerAnalysisV1Beta1Client) setGoogleClientInfo(keyval ...string) {
+	kv := append([]string{"gl-go", version.Go()}, keyval...)
+	kv = append(kv, "gapic", version.Repo, "gax", gax.Version, "grpc", grpc.Version)
+	c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// SetIamPolicy sets the access control policy on the specified note or occurrence.
+// Requires containeranalysis.notes.setIamPolicy or
+// containeranalysis.occurrences.setIamPolicy permission if the resource is
+// a note or an occurrence, respectively.
+//
+// The resource takes the format projects/[PROJECT_ID]/notes/[NOTE_ID] for
+// notes and projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID] for
+// occurrences.
+func (c *ContainerAnalysisV1Beta1Client) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.SetIamPolicy[0:len(c.CallOptions.SetIamPolicy):len(c.CallOptions.SetIamPolicy)], opts...)
+	var resp *iampb.Policy
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.containerAnalysisV1Beta1Client.SetIamPolicy(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// GetIamPolicy gets the access control policy for a note or an occurrence resource.
+// Requires containeranalysis.notes.setIamPolicy or
+// containeranalysis.occurrences.setIamPolicy permission if the resource is
+// a note or occurrence, respectively.
+//
+// The resource takes the format projects/[PROJECT_ID]/notes/[NOTE_ID] for
+// notes and projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID] for
+// occurrences.
+func (c *ContainerAnalysisV1Beta1Client) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.GetIamPolicy[0:len(c.CallOptions.GetIamPolicy):len(c.CallOptions.GetIamPolicy)], opts...)
+	var resp *iampb.Policy
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.containerAnalysisV1Beta1Client.GetIamPolicy(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// TestIamPermissions returns the permissions that a caller has on the specified note or
+// occurrence. Requires list permission on the project (for example,
+// containeranalysis.notes.list).
+//
+// The resource takes the format projects/[PROJECT_ID]/notes/[NOTE_ID] for
+// notes and projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID] for
+// occurrences.
+func (c *ContainerAnalysisV1Beta1Client) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.TestIamPermissions[0:len(c.CallOptions.TestIamPermissions):len(c.CallOptions.TestIamPermissions)], opts...)
+	var resp *iampb.TestIamPermissionsResponse
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.containerAnalysisV1Beta1Client.TestIamPermissions(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// GetScanConfig gets the specified scan configuration.
+func (c *ContainerAnalysisV1Beta1Client) GetScanConfig(ctx context.Context, req *containeranalysispb.GetScanConfigRequest, opts ...gax.CallOption) (*containeranalysispb.ScanConfig, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.GetScanConfig[0:len(c.CallOptions.GetScanConfig):len(c.CallOptions.GetScanConfig)], opts...)
+	var resp *containeranalysispb.ScanConfig
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.containerAnalysisV1Beta1Client.GetScanConfig(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// ListScanConfigs lists scan configurations for the specified project.
+func (c *ContainerAnalysisV1Beta1Client) ListScanConfigs(ctx context.Context, req *containeranalysispb.ListScanConfigsRequest, opts ...gax.CallOption) *ScanConfigIterator {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.ListScanConfigs[0:len(c.CallOptions.ListScanConfigs):len(c.CallOptions.ListScanConfigs)], opts...)
+	it := &ScanConfigIterator{}
+	req = proto.Clone(req).(*containeranalysispb.ListScanConfigsRequest)
+	it.InternalFetch = func(pageSize int, pageToken string) ([]*containeranalysispb.ScanConfig, string, error) {
+		var resp *containeranalysispb.ListScanConfigsResponse
+		req.PageToken = pageToken
+		if pageSize > math.MaxInt32 {
+			req.PageSize = math.MaxInt32
+		} else {
+			req.PageSize = int32(pageSize)
+		}
+		err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+			var err error
+			resp, err = c.containerAnalysisV1Beta1Client.ListScanConfigs(ctx, req, settings.GRPC...)
+			return err
+		}, opts...)
+		if err != nil {
+			return nil, "", err
+		}
+		return resp.ScanConfigs, resp.NextPageToken, nil
+	}
+	fetch := func(pageSize int, pageToken string) (string, error) {
+		items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+		if err != nil {
+			return "", err
+		}
+		it.items = append(it.items, items...)
+		return nextPageToken, nil
+	}
+	it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+	it.pageInfo.MaxSize = int(req.PageSize)
+	return it
+}
+
+// UpdateScanConfig updates the specified scan configuration.
+func (c *ContainerAnalysisV1Beta1Client) UpdateScanConfig(ctx context.Context, req *containeranalysispb.UpdateScanConfigRequest, opts ...gax.CallOption) (*containeranalysispb.ScanConfig, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.UpdateScanConfig[0:len(c.CallOptions.UpdateScanConfig):len(c.CallOptions.UpdateScanConfig)], opts...)
+	var resp *containeranalysispb.ScanConfig
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.containerAnalysisV1Beta1Client.UpdateScanConfig(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// ScanConfigIterator manages a stream of *containeranalysispb.ScanConfig.
+type ScanConfigIterator struct {
+	items    []*containeranalysispb.ScanConfig
+	pageInfo *iterator.PageInfo
+	nextFunc func() error
+
+	// InternalFetch is for use by the Google Cloud Libraries only.
+	// It is not part of the stable interface of this package.
+	//
+	// InternalFetch returns results from a single call to the underlying RPC.
+	// The number of results is no greater than pageSize.
+	// If there are no more results, nextPageToken is empty and err is nil.
+	InternalFetch func(pageSize int, pageToken string) (results []*containeranalysispb.ScanConfig, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *ScanConfigIterator) PageInfo() *iterator.PageInfo {
+	return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *ScanConfigIterator) Next() (*containeranalysispb.ScanConfig, error) {
+	var item *containeranalysispb.ScanConfig
+	if err := it.nextFunc(); err != nil {
+		return item, err
+	}
+	item = it.items[0]
+	it.items = it.items[1:]
+	return item, nil
+}
+
+func (it *ScanConfigIterator) bufLen() int {
+	return len(it.items)
+}
+
+func (it *ScanConfigIterator) takeBuf() interface{} {
+	b := it.items
+	it.items = nil
+	return b
+}
diff --git a/devtools/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client_example_test.go b/devtools/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client_example_test.go
new file mode 100644
index 0000000..3712e8f
--- /dev/null
+++ b/devtools/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client_example_test.go
@@ -0,0 +1,149 @@
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// AUTO-GENERATED CODE. DO NOT EDIT.
+
+package containeranalysis_test
+
+import (
+	"cloud.google.com/go/devtools/containeranalysis/apiv1beta1"
+	"golang.org/x/net/context"
+	"google.golang.org/api/iterator"
+	containeranalysispb "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1"
+	iampb "google.golang.org/genproto/googleapis/iam/v1"
+)
+
+func ExampleNewContainerAnalysisV1Beta1Client() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewContainerAnalysisV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use client.
+	_ = c
+}
+
+func ExampleContainerAnalysisV1Beta1Client_SetIamPolicy() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewContainerAnalysisV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &iampb.SetIamPolicyRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.SetIamPolicy(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleContainerAnalysisV1Beta1Client_GetIamPolicy() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewContainerAnalysisV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &iampb.GetIamPolicyRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.GetIamPolicy(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleContainerAnalysisV1Beta1Client_TestIamPermissions() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewContainerAnalysisV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &iampb.TestIamPermissionsRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.TestIamPermissions(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleContainerAnalysisV1Beta1Client_GetScanConfig() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewContainerAnalysisV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &containeranalysispb.GetScanConfigRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.GetScanConfig(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleContainerAnalysisV1Beta1Client_ListScanConfigs() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewContainerAnalysisV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &containeranalysispb.ListScanConfigsRequest{
+		// TODO: Fill request struct fields.
+	}
+	it := c.ListScanConfigs(ctx, req)
+	for {
+		resp, err := it.Next()
+		if err == iterator.Done {
+			break
+		}
+		if err != nil {
+			// TODO: Handle error.
+		}
+		// TODO: Use resp.
+		_ = resp
+	}
+}
+
+func ExampleContainerAnalysisV1Beta1Client_UpdateScanConfig() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewContainerAnalysisV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &containeranalysispb.UpdateScanConfigRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.UpdateScanConfig(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
diff --git a/devtools/containeranalysis/apiv1beta1/doc.go b/devtools/containeranalysis/apiv1beta1/doc.go
new file mode 100644
index 0000000..2d6f77f
--- /dev/null
+++ b/devtools/containeranalysis/apiv1beta1/doc.go
@@ -0,0 +1,48 @@
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// AUTO-GENERATED CODE. DO NOT EDIT.
+
+// Package containeranalysis is an auto-generated package for the
+// Container Analysis API.
+//
+//   NOTE: This package is in alpha. It is not stable, and is likely to change.
+//
+// An implementation of the Grafeas API, which stores, and enables querying
+// and
+// retrieval of critical metadata about all of your software artifacts.
+package containeranalysis // import "cloud.google.com/go/devtools/containeranalysis/apiv1beta1"
+
+import (
+	"golang.org/x/net/context"
+	"google.golang.org/grpc/metadata"
+)
+
+func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
+	out, _ := metadata.FromOutgoingContext(ctx)
+	out = out.Copy()
+	for _, md := range mds {
+		for k, v := range md {
+			out[k] = append(out[k], v...)
+		}
+	}
+	return metadata.NewOutgoingContext(ctx, out)
+}
+
+// DefaultAuthScopes reports the default set of authentication scopes to use with this package.
+func DefaultAuthScopes() []string {
+	return []string{
+		"https://www.googleapis.com/auth/cloud-platform",
+	}
+}
diff --git a/devtools/containeranalysis/apiv1beta1/grafeas_v1_beta1_client.go b/devtools/containeranalysis/apiv1beta1/grafeas_v1_beta1_client.go
new file mode 100644
index 0000000..d976a35
--- /dev/null
+++ b/devtools/containeranalysis/apiv1beta1/grafeas_v1_beta1_client.go
@@ -0,0 +1,546 @@
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// AUTO-GENERATED CODE. DO NOT EDIT.
+
+package containeranalysis
+
+import (
+	"math"
+	"time"
+
+	"cloud.google.com/go/internal/version"
+	"github.com/golang/protobuf/proto"
+	gax "github.com/googleapis/gax-go"
+	"golang.org/x/net/context"
+	"google.golang.org/api/iterator"
+	"google.golang.org/api/option"
+	"google.golang.org/api/transport"
+	grafeaspb "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/grafeas"
+	"google.golang.org/grpc"
+	"google.golang.org/grpc/codes"
+	"google.golang.org/grpc/metadata"
+)
+
+// GrafeasV1Beta1CallOptions contains the retry settings for each method of GrafeasV1Beta1Client.
+type GrafeasV1Beta1CallOptions struct {
+	GetOccurrence                      []gax.CallOption
+	ListOccurrences                    []gax.CallOption
+	DeleteOccurrence                   []gax.CallOption
+	CreateOccurrence                   []gax.CallOption
+	BatchCreateOccurrences             []gax.CallOption
+	UpdateOccurrence                   []gax.CallOption
+	GetOccurrenceNote                  []gax.CallOption
+	GetNote                            []gax.CallOption
+	ListNotes                          []gax.CallOption
+	DeleteNote                         []gax.CallOption
+	CreateNote                         []gax.CallOption
+	BatchCreateNotes                   []gax.CallOption
+	UpdateNote                         []gax.CallOption
+	ListNoteOccurrences                []gax.CallOption
+	GetVulnerabilityOccurrencesSummary []gax.CallOption
+}
+
+func defaultGrafeasV1Beta1ClientOptions() []option.ClientOption {
+	return []option.ClientOption{
+		option.WithEndpoint("containeranalysis.googleapis.com:443"),
+		option.WithScopes(DefaultAuthScopes()...),
+	}
+}
+
+func defaultGrafeasV1Beta1CallOptions() *GrafeasV1Beta1CallOptions {
+	retry := map[[2]string][]gax.CallOption{
+		{"default", "idempotent"}: {
+			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.3,
+				})
+			}),
+		},
+	}
+	return &GrafeasV1Beta1CallOptions{
+		GetOccurrence:                      retry[[2]string{"default", "idempotent"}],
+		ListOccurrences:                    retry[[2]string{"default", "idempotent"}],
+		DeleteOccurrence:                   retry[[2]string{"default", "idempotent"}],
+		CreateOccurrence:                   retry[[2]string{"default", "non_idempotent"}],
+		BatchCreateOccurrences:             retry[[2]string{"default", "non_idempotent"}],
+		UpdateOccurrence:                   retry[[2]string{"default", "non_idempotent"}],
+		GetOccurrenceNote:                  retry[[2]string{"default", "idempotent"}],
+		GetNote:                            retry[[2]string{"default", "idempotent"}],
+		ListNotes:                          retry[[2]string{"default", "idempotent"}],
+		DeleteNote:                         retry[[2]string{"default", "idempotent"}],
+		CreateNote:                         retry[[2]string{"default", "non_idempotent"}],
+		BatchCreateNotes:                   retry[[2]string{"default", "non_idempotent"}],
+		UpdateNote:                         retry[[2]string{"default", "non_idempotent"}],
+		ListNoteOccurrences:                retry[[2]string{"default", "idempotent"}],
+		GetVulnerabilityOccurrencesSummary: retry[[2]string{"default", "idempotent"}],
+	}
+}
+
+// GrafeasV1Beta1Client is a client for interacting with Container Analysis API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type GrafeasV1Beta1Client struct {
+	// The connection to the service.
+	conn *grpc.ClientConn
+
+	// The gRPC API client.
+	grafeasV1Beta1Client grafeaspb.GrafeasV1Beta1Client
+
+	// The call options for this service.
+	CallOptions *GrafeasV1Beta1CallOptions
+
+	// The x-goog-* metadata to be sent with each request.
+	xGoogMetadata metadata.MD
+}
+
+// NewGrafeasV1Beta1Client creates a new grafeas v1 beta1 client.
+//
+// Grafeas (at grafeas.io) API.
+//
+// Retrieves analysis results of Cloud components such as Docker container
+// images.
+//
+// Analysis results are stored as a series of occurrences. An Occurrence
+// contains information about a specific analysis instance on a resource. An
+// occurrence refers to a Note. A note contains details describing the
+// analysis and is generally stored in a separate project, called a Provider.
+// Multiple occurrences can refer to the same note.
+//
+// For example, an SSL vulnerability could affect multiple images. In this case,
+// there would be one note for the vulnerability and an occurrence for each
+// image with the vulnerability referring to that note.
+func NewGrafeasV1Beta1Client(ctx context.Context, opts ...option.ClientOption) (*GrafeasV1Beta1Client, error) {
+	conn, err := transport.DialGRPC(ctx, append(defaultGrafeasV1Beta1ClientOptions(), opts...)...)
+	if err != nil {
+		return nil, err
+	}
+	c := &GrafeasV1Beta1Client{
+		conn:        conn,
+		CallOptions: defaultGrafeasV1Beta1CallOptions(),
+
+		grafeasV1Beta1Client: grafeaspb.NewGrafeasV1Beta1Client(conn),
+	}
+	c.setGoogleClientInfo()
+	return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *GrafeasV1Beta1Client) Connection() *grpc.ClientConn {
+	return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *GrafeasV1Beta1Client) Close() error {
+	return c.conn.Close()
+}
+
+// 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 *GrafeasV1Beta1Client) setGoogleClientInfo(keyval ...string) {
+	kv := append([]string{"gl-go", version.Go()}, keyval...)
+	kv = append(kv, "gapic", version.Repo, "gax", gax.Version, "grpc", grpc.Version)
+	c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// GetOccurrence gets the specified occurrence.
+func (c *GrafeasV1Beta1Client) GetOccurrence(ctx context.Context, req *grafeaspb.GetOccurrenceRequest, opts ...gax.CallOption) (*grafeaspb.Occurrence, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.GetOccurrence[0:len(c.CallOptions.GetOccurrence):len(c.CallOptions.GetOccurrence)], opts...)
+	var resp *grafeaspb.Occurrence
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.GetOccurrence(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// ListOccurrences lists occurrences for the specified project.
+func (c *GrafeasV1Beta1Client) ListOccurrences(ctx context.Context, req *grafeaspb.ListOccurrencesRequest, opts ...gax.CallOption) *OccurrenceIterator {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.ListOccurrences[0:len(c.CallOptions.ListOccurrences):len(c.CallOptions.ListOccurrences)], opts...)
+	it := &OccurrenceIterator{}
+	req = proto.Clone(req).(*grafeaspb.ListOccurrencesRequest)
+	it.InternalFetch = func(pageSize int, pageToken string) ([]*grafeaspb.Occurrence, string, error) {
+		var resp *grafeaspb.ListOccurrencesResponse
+		req.PageToken = pageToken
+		if pageSize > math.MaxInt32 {
+			req.PageSize = math.MaxInt32
+		} else {
+			req.PageSize = int32(pageSize)
+		}
+		err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+			var err error
+			resp, err = c.grafeasV1Beta1Client.ListOccurrences(ctx, req, settings.GRPC...)
+			return err
+		}, opts...)
+		if err != nil {
+			return nil, "", err
+		}
+		return resp.Occurrences, resp.NextPageToken, nil
+	}
+	fetch := func(pageSize int, pageToken string) (string, error) {
+		items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+		if err != nil {
+			return "", err
+		}
+		it.items = append(it.items, items...)
+		return nextPageToken, nil
+	}
+	it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+	it.pageInfo.MaxSize = int(req.PageSize)
+	return it
+}
+
+// DeleteOccurrence deletes the specified occurrence. For example, use this method to delete an
+// occurrence when the occurrence is no longer applicable for the given
+// resource.
+func (c *GrafeasV1Beta1Client) DeleteOccurrence(ctx context.Context, req *grafeaspb.DeleteOccurrenceRequest, opts ...gax.CallOption) error {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.DeleteOccurrence[0:len(c.CallOptions.DeleteOccurrence):len(c.CallOptions.DeleteOccurrence)], opts...)
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		_, err = c.grafeasV1Beta1Client.DeleteOccurrence(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	return err
+}
+
+// CreateOccurrence creates a new occurrence.
+func (c *GrafeasV1Beta1Client) CreateOccurrence(ctx context.Context, req *grafeaspb.CreateOccurrenceRequest, opts ...gax.CallOption) (*grafeaspb.Occurrence, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.CreateOccurrence[0:len(c.CallOptions.CreateOccurrence):len(c.CallOptions.CreateOccurrence)], opts...)
+	var resp *grafeaspb.Occurrence
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.CreateOccurrence(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// BatchCreateOccurrences creates new occurrences in batch.
+func (c *GrafeasV1Beta1Client) BatchCreateOccurrences(ctx context.Context, req *grafeaspb.BatchCreateOccurrencesRequest, opts ...gax.CallOption) (*grafeaspb.BatchCreateOccurrencesResponse, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.BatchCreateOccurrences[0:len(c.CallOptions.BatchCreateOccurrences):len(c.CallOptions.BatchCreateOccurrences)], opts...)
+	var resp *grafeaspb.BatchCreateOccurrencesResponse
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.BatchCreateOccurrences(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// UpdateOccurrence updates the specified occurrence.
+func (c *GrafeasV1Beta1Client) UpdateOccurrence(ctx context.Context, req *grafeaspb.UpdateOccurrenceRequest, opts ...gax.CallOption) (*grafeaspb.Occurrence, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.UpdateOccurrence[0:len(c.CallOptions.UpdateOccurrence):len(c.CallOptions.UpdateOccurrence)], opts...)
+	var resp *grafeaspb.Occurrence
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.UpdateOccurrence(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// GetOccurrenceNote gets the note attached to the specified occurrence. Consumer projects can
+// use this method to get a note that belongs to a provider project.
+func (c *GrafeasV1Beta1Client) GetOccurrenceNote(ctx context.Context, req *grafeaspb.GetOccurrenceNoteRequest, opts ...gax.CallOption) (*grafeaspb.Note, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.GetOccurrenceNote[0:len(c.CallOptions.GetOccurrenceNote):len(c.CallOptions.GetOccurrenceNote)], opts...)
+	var resp *grafeaspb.Note
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.GetOccurrenceNote(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// GetNote gets the specified note.
+func (c *GrafeasV1Beta1Client) GetNote(ctx context.Context, req *grafeaspb.GetNoteRequest, opts ...gax.CallOption) (*grafeaspb.Note, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.GetNote[0:len(c.CallOptions.GetNote):len(c.CallOptions.GetNote)], opts...)
+	var resp *grafeaspb.Note
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.GetNote(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// ListNotes lists notes for the specified project.
+func (c *GrafeasV1Beta1Client) ListNotes(ctx context.Context, req *grafeaspb.ListNotesRequest, opts ...gax.CallOption) *NoteIterator {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.ListNotes[0:len(c.CallOptions.ListNotes):len(c.CallOptions.ListNotes)], opts...)
+	it := &NoteIterator{}
+	req = proto.Clone(req).(*grafeaspb.ListNotesRequest)
+	it.InternalFetch = func(pageSize int, pageToken string) ([]*grafeaspb.Note, string, error) {
+		var resp *grafeaspb.ListNotesResponse
+		req.PageToken = pageToken
+		if pageSize > math.MaxInt32 {
+			req.PageSize = math.MaxInt32
+		} else {
+			req.PageSize = int32(pageSize)
+		}
+		err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+			var err error
+			resp, err = c.grafeasV1Beta1Client.ListNotes(ctx, req, settings.GRPC...)
+			return err
+		}, opts...)
+		if err != nil {
+			return nil, "", err
+		}
+		return resp.Notes, resp.NextPageToken, nil
+	}
+	fetch := func(pageSize int, pageToken string) (string, error) {
+		items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+		if err != nil {
+			return "", err
+		}
+		it.items = append(it.items, items...)
+		return nextPageToken, nil
+	}
+	it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+	it.pageInfo.MaxSize = int(req.PageSize)
+	return it
+}
+
+// DeleteNote deletes the specified note.
+func (c *GrafeasV1Beta1Client) DeleteNote(ctx context.Context, req *grafeaspb.DeleteNoteRequest, opts ...gax.CallOption) error {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.DeleteNote[0:len(c.CallOptions.DeleteNote):len(c.CallOptions.DeleteNote)], opts...)
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		_, err = c.grafeasV1Beta1Client.DeleteNote(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	return err
+}
+
+// CreateNote creates a new note.
+func (c *GrafeasV1Beta1Client) CreateNote(ctx context.Context, req *grafeaspb.CreateNoteRequest, opts ...gax.CallOption) (*grafeaspb.Note, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.CreateNote[0:len(c.CallOptions.CreateNote):len(c.CallOptions.CreateNote)], opts...)
+	var resp *grafeaspb.Note
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.CreateNote(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// BatchCreateNotes creates new notes in batch.
+func (c *GrafeasV1Beta1Client) BatchCreateNotes(ctx context.Context, req *grafeaspb.BatchCreateNotesRequest, opts ...gax.CallOption) (*grafeaspb.BatchCreateNotesResponse, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.BatchCreateNotes[0:len(c.CallOptions.BatchCreateNotes):len(c.CallOptions.BatchCreateNotes)], opts...)
+	var resp *grafeaspb.BatchCreateNotesResponse
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.BatchCreateNotes(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// UpdateNote updates the specified note.
+func (c *GrafeasV1Beta1Client) UpdateNote(ctx context.Context, req *grafeaspb.UpdateNoteRequest, opts ...gax.CallOption) (*grafeaspb.Note, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.UpdateNote[0:len(c.CallOptions.UpdateNote):len(c.CallOptions.UpdateNote)], opts...)
+	var resp *grafeaspb.Note
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.UpdateNote(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// ListNoteOccurrences lists occurrences referencing the specified note. Provider projects can use
+// this method to get all occurrences across consumer projects referencing the
+// specified note.
+func (c *GrafeasV1Beta1Client) ListNoteOccurrences(ctx context.Context, req *grafeaspb.ListNoteOccurrencesRequest, opts ...gax.CallOption) *OccurrenceIterator {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.ListNoteOccurrences[0:len(c.CallOptions.ListNoteOccurrences):len(c.CallOptions.ListNoteOccurrences)], opts...)
+	it := &OccurrenceIterator{}
+	req = proto.Clone(req).(*grafeaspb.ListNoteOccurrencesRequest)
+	it.InternalFetch = func(pageSize int, pageToken string) ([]*grafeaspb.Occurrence, string, error) {
+		var resp *grafeaspb.ListNoteOccurrencesResponse
+		req.PageToken = pageToken
+		if pageSize > math.MaxInt32 {
+			req.PageSize = math.MaxInt32
+		} else {
+			req.PageSize = int32(pageSize)
+		}
+		err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+			var err error
+			resp, err = c.grafeasV1Beta1Client.ListNoteOccurrences(ctx, req, settings.GRPC...)
+			return err
+		}, opts...)
+		if err != nil {
+			return nil, "", err
+		}
+		return resp.Occurrences, resp.NextPageToken, nil
+	}
+	fetch := func(pageSize int, pageToken string) (string, error) {
+		items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+		if err != nil {
+			return "", err
+		}
+		it.items = append(it.items, items...)
+		return nextPageToken, nil
+	}
+	it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+	it.pageInfo.MaxSize = int(req.PageSize)
+	return it
+}
+
+// GetVulnerabilityOccurrencesSummary gets a summary of the number and severity of occurrences.
+func (c *GrafeasV1Beta1Client) GetVulnerabilityOccurrencesSummary(ctx context.Context, req *grafeaspb.GetVulnerabilityOccurrencesSummaryRequest, opts ...gax.CallOption) (*grafeaspb.VulnerabilityOccurrencesSummary, error) {
+	ctx = insertMetadata(ctx, c.xGoogMetadata)
+	opts = append(c.CallOptions.GetVulnerabilityOccurrencesSummary[0:len(c.CallOptions.GetVulnerabilityOccurrencesSummary):len(c.CallOptions.GetVulnerabilityOccurrencesSummary)], opts...)
+	var resp *grafeaspb.VulnerabilityOccurrencesSummary
+	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+		var err error
+		resp, err = c.grafeasV1Beta1Client.GetVulnerabilityOccurrencesSummary(ctx, req, settings.GRPC...)
+		return err
+	}, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return resp, nil
+}
+
+// NoteIterator manages a stream of *grafeaspb.Note.
+type NoteIterator struct {
+	items    []*grafeaspb.Note
+	pageInfo *iterator.PageInfo
+	nextFunc func() error
+
+	// InternalFetch is for use by the Google Cloud Libraries only.
+	// It is not part of the stable interface of this package.
+	//
+	// InternalFetch returns results from a single call to the underlying RPC.
+	// The number of results is no greater than pageSize.
+	// If there are no more results, nextPageToken is empty and err is nil.
+	InternalFetch func(pageSize int, pageToken string) (results []*grafeaspb.Note, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *NoteIterator) PageInfo() *iterator.PageInfo {
+	return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *NoteIterator) Next() (*grafeaspb.Note, error) {
+	var item *grafeaspb.Note
+	if err := it.nextFunc(); err != nil {
+		return item, err
+	}
+	item = it.items[0]
+	it.items = it.items[1:]
+	return item, nil
+}
+
+func (it *NoteIterator) bufLen() int {
+	return len(it.items)
+}
+
+func (it *NoteIterator) takeBuf() interface{} {
+	b := it.items
+	it.items = nil
+	return b
+}
+
+// OccurrenceIterator manages a stream of *grafeaspb.Occurrence.
+type OccurrenceIterator struct {
+	items    []*grafeaspb.Occurrence
+	pageInfo *iterator.PageInfo
+	nextFunc func() error
+
+	// InternalFetch is for use by the Google Cloud Libraries only.
+	// It is not part of the stable interface of this package.
+	//
+	// InternalFetch returns results from a single call to the underlying RPC.
+	// The number of results is no greater than pageSize.
+	// If there are no more results, nextPageToken is empty and err is nil.
+	InternalFetch func(pageSize int, pageToken string) (results []*grafeaspb.Occurrence, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *OccurrenceIterator) PageInfo() *iterator.PageInfo {
+	return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *OccurrenceIterator) Next() (*grafeaspb.Occurrence, error) {
+	var item *grafeaspb.Occurrence
+	if err := it.nextFunc(); err != nil {
+		return item, err
+	}
+	item = it.items[0]
+	it.items = it.items[1:]
+	return item, nil
+}
+
+func (it *OccurrenceIterator) bufLen() int {
+	return len(it.items)
+}
+
+func (it *OccurrenceIterator) takeBuf() interface{} {
+	b := it.items
+	it.items = nil
+	return b
+}
diff --git a/devtools/containeranalysis/apiv1beta1/grafeas_v1_beta1_client_example_test.go b/devtools/containeranalysis/apiv1beta1/grafeas_v1_beta1_client_example_test.go
new file mode 100644
index 0000000..cad6329
--- /dev/null
+++ b/devtools/containeranalysis/apiv1beta1/grafeas_v1_beta1_client_example_test.go
@@ -0,0 +1,318 @@
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// AUTO-GENERATED CODE. DO NOT EDIT.
+
+package containeranalysis_test
+
+import (
+	"cloud.google.com/go/devtools/containeranalysis/apiv1beta1"
+	"golang.org/x/net/context"
+	"google.golang.org/api/iterator"
+	grafeaspb "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/grafeas"
+)
+
+func ExampleNewGrafeasV1Beta1Client() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use client.
+	_ = c
+}
+
+func ExampleGrafeasV1Beta1Client_GetOccurrence() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.GetOccurrenceRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.GetOccurrence(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleGrafeasV1Beta1Client_ListOccurrences() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.ListOccurrencesRequest{
+		// TODO: Fill request struct fields.
+	}
+	it := c.ListOccurrences(ctx, req)
+	for {
+		resp, err := it.Next()
+		if err == iterator.Done {
+			break
+		}
+		if err != nil {
+			// TODO: Handle error.
+		}
+		// TODO: Use resp.
+		_ = resp
+	}
+}
+
+func ExampleGrafeasV1Beta1Client_DeleteOccurrence() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.DeleteOccurrenceRequest{
+		// TODO: Fill request struct fields.
+	}
+	err = c.DeleteOccurrence(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+}
+
+func ExampleGrafeasV1Beta1Client_CreateOccurrence() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.CreateOccurrenceRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.CreateOccurrence(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleGrafeasV1Beta1Client_BatchCreateOccurrences() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.BatchCreateOccurrencesRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.BatchCreateOccurrences(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleGrafeasV1Beta1Client_UpdateOccurrence() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.UpdateOccurrenceRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.UpdateOccurrence(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleGrafeasV1Beta1Client_GetOccurrenceNote() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.GetOccurrenceNoteRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.GetOccurrenceNote(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleGrafeasV1Beta1Client_GetNote() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.GetNoteRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.GetNote(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleGrafeasV1Beta1Client_ListNotes() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.ListNotesRequest{
+		// TODO: Fill request struct fields.
+	}
+	it := c.ListNotes(ctx, req)
+	for {
+		resp, err := it.Next()
+		if err == iterator.Done {
+			break
+		}
+		if err != nil {
+			// TODO: Handle error.
+		}
+		// TODO: Use resp.
+		_ = resp
+	}
+}
+
+func ExampleGrafeasV1Beta1Client_DeleteNote() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.DeleteNoteRequest{
+		// TODO: Fill request struct fields.
+	}
+	err = c.DeleteNote(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+}
+
+func ExampleGrafeasV1Beta1Client_CreateNote() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.CreateNoteRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.CreateNote(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleGrafeasV1Beta1Client_BatchCreateNotes() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.BatchCreateNotesRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.BatchCreateNotes(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleGrafeasV1Beta1Client_UpdateNote() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.UpdateNoteRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.UpdateNote(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
+
+func ExampleGrafeasV1Beta1Client_ListNoteOccurrences() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.ListNoteOccurrencesRequest{
+		// TODO: Fill request struct fields.
+	}
+	it := c.ListNoteOccurrences(ctx, req)
+	for {
+		resp, err := it.Next()
+		if err == iterator.Done {
+			break
+		}
+		if err != nil {
+			// TODO: Handle error.
+		}
+		// TODO: Use resp.
+		_ = resp
+	}
+}
+
+func ExampleGrafeasV1Beta1Client_GetVulnerabilityOccurrencesSummary() {
+	ctx := context.Background()
+	c, err := containeranalysis.NewGrafeasV1Beta1Client(ctx)
+	if err != nil {
+		// TODO: Handle error.
+	}
+
+	req := &grafeaspb.GetVulnerabilityOccurrencesSummaryRequest{
+		// TODO: Fill request struct fields.
+	}
+	resp, err := c.GetVulnerabilityOccurrencesSummary(ctx, req)
+	if err != nil {
+		// TODO: Handle error.
+	}
+	// TODO: Use resp.
+	_ = resp
+}
diff --git a/devtools/containeranalysis/apiv1beta1/mock_test.go b/devtools/containeranalysis/apiv1beta1/mock_test.go
new file mode 100644
index 0000000..42d3d2e
--- /dev/null
+++ b/devtools/containeranalysis/apiv1beta1/mock_test.go
@@ -0,0 +1,1708 @@
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// AUTO-GENERATED CODE. DO NOT EDIT.
+
+package containeranalysis
+
+import (
+	emptypb "github.com/golang/protobuf/ptypes/empty"
+	containeranalysispb "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1"
+	grafeaspb "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/grafeas"
+	iampb "google.golang.org/genproto/googleapis/iam/v1"
+)
+
+import (
+	"flag"
+	"fmt"
+	"io"
+	"log"
+	"net"
+	"os"
+	"strings"
+	"testing"
+
+	"github.com/golang/protobuf/proto"
+	"github.com/golang/protobuf/ptypes"
+	"golang.org/x/net/context"
+	"google.golang.org/api/option"
+	status "google.golang.org/genproto/googleapis/rpc/status"
+	"google.golang.org/grpc"
+	"google.golang.org/grpc/codes"
+	"google.golang.org/grpc/metadata"
+	gstatus "google.golang.org/grpc/status"
+)
+
+var _ = io.EOF
+var _ = ptypes.MarshalAny
+var _ status.Status
+
+type mockContainerAnalysisV1Beta1Server struct {
+	// Embed for forward compatibility.
+	// Tests will keep working if more methods are added
+	// in the future.
+	containeranalysispb.ContainerAnalysisV1Beta1Server
+
+	reqs []proto.Message
+
+	// If set, all calls return this error.
+	err error
+
+	// responses to return if err == nil
+	resps []proto.Message
+}
+
+func (s *mockContainerAnalysisV1Beta1Server) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest) (*iampb.Policy, 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].(*iampb.Policy), nil
+}
+
+func (s *mockContainerAnalysisV1Beta1Server) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest) (*iampb.Policy, 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].(*iampb.Policy), nil
+}
+
+func (s *mockContainerAnalysisV1Beta1Server) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, 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].(*iampb.TestIamPermissionsResponse), nil
+}
+
+func (s *mockContainerAnalysisV1Beta1Server) GetScanConfig(ctx context.Context, req *containeranalysispb.GetScanConfigRequest) (*containeranalysispb.ScanConfig, 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].(*containeranalysispb.ScanConfig), nil
+}
+
+func (s *mockContainerAnalysisV1Beta1Server) ListScanConfigs(ctx context.Context, req *containeranalysispb.ListScanConfigsRequest) (*containeranalysispb.ListScanConfigsResponse, 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].(*containeranalysispb.ListScanConfigsResponse), nil
+}
+
+func (s *mockContainerAnalysisV1Beta1Server) UpdateScanConfig(ctx context.Context, req *containeranalysispb.UpdateScanConfigRequest) (*containeranalysispb.ScanConfig, 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].(*containeranalysispb.ScanConfig), nil
+}
+
+type mockGrafeasV1Beta1Server struct {
+	// Embed for forward compatibility.
+	// Tests will keep working if more methods are added
+	// in the future.
+	grafeaspb.GrafeasV1Beta1Server
+
+	reqs []proto.Message
+
+	// If set, all calls return this error.
+	err error
+
+	// responses to return if err == nil
+	resps []proto.Message
+}
+
+func (s *mockGrafeasV1Beta1Server) GetOccurrence(ctx context.Context, req *grafeaspb.GetOccurrenceRequest) (*grafeaspb.Occurrence, 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].(*grafeaspb.Occurrence), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) ListOccurrences(ctx context.Context, req *grafeaspb.ListOccurrencesRequest) (*grafeaspb.ListOccurrencesResponse, 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].(*grafeaspb.ListOccurrencesResponse), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) DeleteOccurrence(ctx context.Context, req *grafeaspb.DeleteOccurrenceRequest) (*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 *mockGrafeasV1Beta1Server) CreateOccurrence(ctx context.Context, req *grafeaspb.CreateOccurrenceRequest) (*grafeaspb.Occurrence, 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].(*grafeaspb.Occurrence), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) BatchCreateOccurrences(ctx context.Context, req *grafeaspb.BatchCreateOccurrencesRequest) (*grafeaspb.BatchCreateOccurrencesResponse, 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].(*grafeaspb.BatchCreateOccurrencesResponse), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) UpdateOccurrence(ctx context.Context, req *grafeaspb.UpdateOccurrenceRequest) (*grafeaspb.Occurrence, 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].(*grafeaspb.Occurrence), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) GetOccurrenceNote(ctx context.Context, req *grafeaspb.GetOccurrenceNoteRequest) (*grafeaspb.Note, 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].(*grafeaspb.Note), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) GetNote(ctx context.Context, req *grafeaspb.GetNoteRequest) (*grafeaspb.Note, 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].(*grafeaspb.Note), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) ListNotes(ctx context.Context, req *grafeaspb.ListNotesRequest) (*grafeaspb.ListNotesResponse, 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].(*grafeaspb.ListNotesResponse), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) DeleteNote(ctx context.Context, req *grafeaspb.DeleteNoteRequest) (*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 *mockGrafeasV1Beta1Server) CreateNote(ctx context.Context, req *grafeaspb.CreateNoteRequest) (*grafeaspb.Note, 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].(*grafeaspb.Note), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) BatchCreateNotes(ctx context.Context, req *grafeaspb.BatchCreateNotesRequest) (*grafeaspb.BatchCreateNotesResponse, 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].(*grafeaspb.BatchCreateNotesResponse), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) UpdateNote(ctx context.Context, req *grafeaspb.UpdateNoteRequest) (*grafeaspb.Note, 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].(*grafeaspb.Note), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) ListNoteOccurrences(ctx context.Context, req *grafeaspb.ListNoteOccurrencesRequest) (*grafeaspb.ListNoteOccurrencesResponse, 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].(*grafeaspb.ListNoteOccurrencesResponse), nil
+}
+
+func (s *mockGrafeasV1Beta1Server) GetVulnerabilityOccurrencesSummary(ctx context.Context, req *grafeaspb.GetVulnerabilityOccurrencesSummaryRequest) (*grafeaspb.VulnerabilityOccurrencesSummary, 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].(*grafeaspb.VulnerabilityOccurrencesSummary), nil
+}
+
+// clientOpt is the option tests should use to connect to the test server.
+// It is initialized by TestMain.
+var clientOpt option.ClientOption
+
+var (
+	mockContainerAnalysisV1Beta1 mockContainerAnalysisV1Beta1Server
+	mockGrafeasV1Beta1           mockGrafeasV1Beta1Server
+)
+
+func TestMain(m *testing.M) {
+	flag.Parse()
+
+	serv := grpc.NewServer()
+	containeranalysispb.RegisterContainerAnalysisV1Beta1Server(serv, &mockContainerAnalysisV1Beta1)
+	grafeaspb.RegisterGrafeasV1Beta1Server(serv, &mockGrafeasV1Beta1)
+
+	lis, err := net.Listen("tcp", "localhost:0")
+	if err != nil {
+		log.Fatal(err)
+	}
+	go serv.Serve(lis)
+
+	conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
+	if err != nil {
+		log.Fatal(err)
+	}
+	clientOpt = option.WithGRPCConn(conn)
+
+	os.Exit(m.Run())
+}
+
+func TestContainerAnalysisV1Beta1SetIamPolicy(t *testing.T) {
+	var version int32 = 351608024
+	var etag []byte = []byte("21")
+	var expectedResponse = &iampb.Policy{
+		Version: version,
+		Etag:    etag,
+	}
+
+	mockContainerAnalysisV1Beta1.err = nil
+	mockContainerAnalysisV1Beta1.reqs = nil
+
+	mockContainerAnalysisV1Beta1.resps = append(mockContainerAnalysisV1Beta1.resps[:0], expectedResponse)
+
+	var formattedResource string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var policy *iampb.Policy = &iampb.Policy{}
+	var request = &iampb.SetIamPolicyRequest{
+		Resource: formattedResource,
+		Policy:   policy,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.SetIamPolicy(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockContainerAnalysisV1Beta1.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 TestContainerAnalysisV1Beta1SetIamPolicyError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockContainerAnalysisV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedResource string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var policy *iampb.Policy = &iampb.Policy{}
+	var request = &iampb.SetIamPolicyRequest{
+		Resource: formattedResource,
+		Policy:   policy,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.SetIamPolicy(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 TestContainerAnalysisV1Beta1GetIamPolicy(t *testing.T) {
+	var version int32 = 351608024
+	var etag []byte = []byte("21")
+	var expectedResponse = &iampb.Policy{
+		Version: version,
+		Etag:    etag,
+	}
+
+	mockContainerAnalysisV1Beta1.err = nil
+	mockContainerAnalysisV1Beta1.reqs = nil
+
+	mockContainerAnalysisV1Beta1.resps = append(mockContainerAnalysisV1Beta1.resps[:0], expectedResponse)
+
+	var formattedResource string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var request = &iampb.GetIamPolicyRequest{
+		Resource: formattedResource,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetIamPolicy(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockContainerAnalysisV1Beta1.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 TestContainerAnalysisV1Beta1GetIamPolicyError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockContainerAnalysisV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedResource string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var request = &iampb.GetIamPolicyRequest{
+		Resource: formattedResource,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetIamPolicy(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 TestContainerAnalysisV1Beta1TestIamPermissions(t *testing.T) {
+	var expectedResponse *iampb.TestIamPermissionsResponse = &iampb.TestIamPermissionsResponse{}
+
+	mockContainerAnalysisV1Beta1.err = nil
+	mockContainerAnalysisV1Beta1.reqs = nil
+
+	mockContainerAnalysisV1Beta1.resps = append(mockContainerAnalysisV1Beta1.resps[:0], expectedResponse)
+
+	var formattedResource string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var permissions []string = nil
+	var request = &iampb.TestIamPermissionsRequest{
+		Resource:    formattedResource,
+		Permissions: permissions,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.TestIamPermissions(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockContainerAnalysisV1Beta1.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 TestContainerAnalysisV1Beta1TestIamPermissionsError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockContainerAnalysisV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedResource string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var permissions []string = nil
+	var request = &iampb.TestIamPermissionsRequest{
+		Resource:    formattedResource,
+		Permissions: permissions,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.TestIamPermissions(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 TestContainerAnalysisV1Beta1GetScanConfig(t *testing.T) {
+	var name2 string = "name2-1052831874"
+	var description string = "description-1724546052"
+	var enabled bool = false
+	var expectedResponse = &containeranalysispb.ScanConfig{
+		Name:        name2,
+		Description: description,
+		Enabled:     enabled,
+	}
+
+	mockContainerAnalysisV1Beta1.err = nil
+	mockContainerAnalysisV1Beta1.reqs = nil
+
+	mockContainerAnalysisV1Beta1.resps = append(mockContainerAnalysisV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/scanConfigs/%s", "[PROJECT]", "[SCAN_CONFIG]")
+	var request = &containeranalysispb.GetScanConfigRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetScanConfig(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockContainerAnalysisV1Beta1.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 TestContainerAnalysisV1Beta1GetScanConfigError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockContainerAnalysisV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/scanConfigs/%s", "[PROJECT]", "[SCAN_CONFIG]")
+	var request = &containeranalysispb.GetScanConfigRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetScanConfig(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 TestContainerAnalysisV1Beta1ListScanConfigs(t *testing.T) {
+	var nextPageToken string = ""
+	var scanConfigsElement *containeranalysispb.ScanConfig = &containeranalysispb.ScanConfig{}
+	var scanConfigs = []*containeranalysispb.ScanConfig{scanConfigsElement}
+	var expectedResponse = &containeranalysispb.ListScanConfigsResponse{
+		NextPageToken: nextPageToken,
+		ScanConfigs:   scanConfigs,
+	}
+
+	mockContainerAnalysisV1Beta1.err = nil
+	mockContainerAnalysisV1Beta1.reqs = nil
+
+	mockContainerAnalysisV1Beta1.resps = append(mockContainerAnalysisV1Beta1.resps[:0], expectedResponse)
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var request = &containeranalysispb.ListScanConfigsRequest{
+		Parent: formattedParent,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListScanConfigs(context.Background(), request).Next()
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockContainerAnalysisV1Beta1.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	want := (interface{})(expectedResponse.ScanConfigs[0])
+	got := (interface{})(resp)
+	var ok bool
+
+	switch want := (want).(type) {
+	case proto.Message:
+		ok = proto.Equal(want, got.(proto.Message))
+	default:
+		ok = want == got
+	}
+	if !ok {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestContainerAnalysisV1Beta1ListScanConfigsError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockContainerAnalysisV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var request = &containeranalysispb.ListScanConfigsRequest{
+		Parent: formattedParent,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListScanConfigs(context.Background(), request).Next()
+
+	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 TestContainerAnalysisV1Beta1UpdateScanConfig(t *testing.T) {
+	var name2 string = "name2-1052831874"
+	var description string = "description-1724546052"
+	var enabled bool = false
+	var expectedResponse = &containeranalysispb.ScanConfig{
+		Name:        name2,
+		Description: description,
+		Enabled:     enabled,
+	}
+
+	mockContainerAnalysisV1Beta1.err = nil
+	mockContainerAnalysisV1Beta1.reqs = nil
+
+	mockContainerAnalysisV1Beta1.resps = append(mockContainerAnalysisV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/scanConfigs/%s", "[PROJECT]", "[SCAN_CONFIG]")
+	var scanConfig *containeranalysispb.ScanConfig = &containeranalysispb.ScanConfig{}
+	var request = &containeranalysispb.UpdateScanConfigRequest{
+		Name:       formattedName,
+		ScanConfig: scanConfig,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateScanConfig(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockContainerAnalysisV1Beta1.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 TestContainerAnalysisV1Beta1UpdateScanConfigError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockContainerAnalysisV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/scanConfigs/%s", "[PROJECT]", "[SCAN_CONFIG]")
+	var scanConfig *containeranalysispb.ScanConfig = &containeranalysispb.ScanConfig{}
+	var request = &containeranalysispb.UpdateScanConfigRequest{
+		Name:       formattedName,
+		ScanConfig: scanConfig,
+	}
+
+	c, err := NewContainerAnalysisV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateScanConfig(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 TestGrafeasV1Beta1GetOccurrence(t *testing.T) {
+	var name2 string = "name2-1052831874"
+	var noteName string = "noteName1780787896"
+	var remediation string = "remediation779381797"
+	var expectedResponse = &grafeaspb.Occurrence{
+		Name:        name2,
+		NoteName:    noteName,
+		Remediation: remediation,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/occurrences/%s", "[PROJECT]", "[OCCURRENCE]")
+	var request = &grafeaspb.GetOccurrenceRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetOccurrence(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1GetOccurrenceError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/occurrences/%s", "[PROJECT]", "[OCCURRENCE]")
+	var request = &grafeaspb.GetOccurrenceRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetOccurrence(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 TestGrafeasV1Beta1ListOccurrences(t *testing.T) {
+	var nextPageToken string = ""
+	var occurrencesElement *grafeaspb.Occurrence = &grafeaspb.Occurrence{}
+	var occurrences = []*grafeaspb.Occurrence{occurrencesElement}
+	var expectedResponse = &grafeaspb.ListOccurrencesResponse{
+		NextPageToken: nextPageToken,
+		Occurrences:   occurrences,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var request = &grafeaspb.ListOccurrencesRequest{
+		Parent: formattedParent,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListOccurrences(context.Background(), request).Next()
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	want := (interface{})(expectedResponse.Occurrences[0])
+	got := (interface{})(resp)
+	var ok bool
+
+	switch want := (want).(type) {
+	case proto.Message:
+		ok = proto.Equal(want, got.(proto.Message))
+	default:
+		ok = want == got
+	}
+	if !ok {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestGrafeasV1Beta1ListOccurrencesError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var request = &grafeaspb.ListOccurrencesRequest{
+		Parent: formattedParent,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListOccurrences(context.Background(), request).Next()
+
+	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 TestGrafeasV1Beta1DeleteOccurrence(t *testing.T) {
+	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/occurrences/%s", "[PROJECT]", "[OCCURRENCE]")
+	var request = &grafeaspb.DeleteOccurrenceRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	err = c.DeleteOccurrence(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+}
+
+func TestGrafeasV1Beta1DeleteOccurrenceError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/occurrences/%s", "[PROJECT]", "[OCCURRENCE]")
+	var request = &grafeaspb.DeleteOccurrenceRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	err = c.DeleteOccurrence(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 TestGrafeasV1Beta1CreateOccurrence(t *testing.T) {
+	var name string = "name3373707"
+	var noteName string = "noteName1780787896"
+	var remediation string = "remediation779381797"
+	var expectedResponse = &grafeaspb.Occurrence{
+		Name:        name,
+		NoteName:    noteName,
+		Remediation: remediation,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var occurrence *grafeaspb.Occurrence = &grafeaspb.Occurrence{}
+	var request = &grafeaspb.CreateOccurrenceRequest{
+		Parent:     formattedParent,
+		Occurrence: occurrence,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.CreateOccurrence(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1CreateOccurrenceError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var occurrence *grafeaspb.Occurrence = &grafeaspb.Occurrence{}
+	var request = &grafeaspb.CreateOccurrenceRequest{
+		Parent:     formattedParent,
+		Occurrence: occurrence,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.CreateOccurrence(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 TestGrafeasV1Beta1BatchCreateOccurrences(t *testing.T) {
+	var expectedResponse *grafeaspb.BatchCreateOccurrencesResponse = &grafeaspb.BatchCreateOccurrencesResponse{}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var occurrences []*grafeaspb.Occurrence = nil
+	var request = &grafeaspb.BatchCreateOccurrencesRequest{
+		Parent:      formattedParent,
+		Occurrences: occurrences,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.BatchCreateOccurrences(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1BatchCreateOccurrencesError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var occurrences []*grafeaspb.Occurrence = nil
+	var request = &grafeaspb.BatchCreateOccurrencesRequest{
+		Parent:      formattedParent,
+		Occurrences: occurrences,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.BatchCreateOccurrences(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 TestGrafeasV1Beta1UpdateOccurrence(t *testing.T) {
+	var name2 string = "name2-1052831874"
+	var noteName string = "noteName1780787896"
+	var remediation string = "remediation779381797"
+	var expectedResponse = &grafeaspb.Occurrence{
+		Name:        name2,
+		NoteName:    noteName,
+		Remediation: remediation,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/occurrences/%s", "[PROJECT]", "[OCCURRENCE]")
+	var occurrence *grafeaspb.Occurrence = &grafeaspb.Occurrence{}
+	var request = &grafeaspb.UpdateOccurrenceRequest{
+		Name:       formattedName,
+		Occurrence: occurrence,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateOccurrence(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1UpdateOccurrenceError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/occurrences/%s", "[PROJECT]", "[OCCURRENCE]")
+	var occurrence *grafeaspb.Occurrence = &grafeaspb.Occurrence{}
+	var request = &grafeaspb.UpdateOccurrenceRequest{
+		Name:       formattedName,
+		Occurrence: occurrence,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateOccurrence(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 TestGrafeasV1Beta1GetOccurrenceNote(t *testing.T) {
+	var name2 string = "name2-1052831874"
+	var shortDescription string = "shortDescription-235369287"
+	var longDescription string = "longDescription-1747792199"
+	var expectedResponse = &grafeaspb.Note{
+		Name:             name2,
+		ShortDescription: shortDescription,
+		LongDescription:  longDescription,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/occurrences/%s", "[PROJECT]", "[OCCURRENCE]")
+	var request = &grafeaspb.GetOccurrenceNoteRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetOccurrenceNote(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1GetOccurrenceNoteError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/occurrences/%s", "[PROJECT]", "[OCCURRENCE]")
+	var request = &grafeaspb.GetOccurrenceNoteRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetOccurrenceNote(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 TestGrafeasV1Beta1GetNote(t *testing.T) {
+	var name2 string = "name2-1052831874"
+	var shortDescription string = "shortDescription-235369287"
+	var longDescription string = "longDescription-1747792199"
+	var expectedResponse = &grafeaspb.Note{
+		Name:             name2,
+		ShortDescription: shortDescription,
+		LongDescription:  longDescription,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var request = &grafeaspb.GetNoteRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetNote(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1GetNoteError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var request = &grafeaspb.GetNoteRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetNote(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 TestGrafeasV1Beta1ListNotes(t *testing.T) {
+	var nextPageToken string = ""
+	var notesElement *grafeaspb.Note = &grafeaspb.Note{}
+	var notes = []*grafeaspb.Note{notesElement}
+	var expectedResponse = &grafeaspb.ListNotesResponse{
+		NextPageToken: nextPageToken,
+		Notes:         notes,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var request = &grafeaspb.ListNotesRequest{
+		Parent: formattedParent,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListNotes(context.Background(), request).Next()
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	want := (interface{})(expectedResponse.Notes[0])
+	got := (interface{})(resp)
+	var ok bool
+
+	switch want := (want).(type) {
+	case proto.Message:
+		ok = proto.Equal(want, got.(proto.Message))
+	default:
+		ok = want == got
+	}
+	if !ok {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestGrafeasV1Beta1ListNotesError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var request = &grafeaspb.ListNotesRequest{
+		Parent: formattedParent,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListNotes(context.Background(), request).Next()
+
+	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 TestGrafeasV1Beta1DeleteNote(t *testing.T) {
+	var expectedResponse *emptypb.Empty = &emptypb.Empty{}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var request = &grafeaspb.DeleteNoteRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	err = c.DeleteNote(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+}
+
+func TestGrafeasV1Beta1DeleteNoteError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var request = &grafeaspb.DeleteNoteRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	err = c.DeleteNote(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 TestGrafeasV1Beta1CreateNote(t *testing.T) {
+	var name string = "name3373707"
+	var shortDescription string = "shortDescription-235369287"
+	var longDescription string = "longDescription-1747792199"
+	var expectedResponse = &grafeaspb.Note{
+		Name:             name,
+		ShortDescription: shortDescription,
+		LongDescription:  longDescription,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var noteId string = "noteId2129224840"
+	var note *grafeaspb.Note = &grafeaspb.Note{}
+	var request = &grafeaspb.CreateNoteRequest{
+		Parent: formattedParent,
+		NoteId: noteId,
+		Note:   note,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.CreateNote(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1CreateNoteError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var noteId string = "noteId2129224840"
+	var note *grafeaspb.Note = &grafeaspb.Note{}
+	var request = &grafeaspb.CreateNoteRequest{
+		Parent: formattedParent,
+		NoteId: noteId,
+		Note:   note,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.CreateNote(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 TestGrafeasV1Beta1BatchCreateNotes(t *testing.T) {
+	var expectedResponse *grafeaspb.BatchCreateNotesResponse = &grafeaspb.BatchCreateNotesResponse{}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var notes map[string]*grafeaspb.Note = nil
+	var request = &grafeaspb.BatchCreateNotesRequest{
+		Parent: formattedParent,
+		Notes:  notes,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.BatchCreateNotes(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1BatchCreateNotesError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var notes map[string]*grafeaspb.Note = nil
+	var request = &grafeaspb.BatchCreateNotesRequest{
+		Parent: formattedParent,
+		Notes:  notes,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.BatchCreateNotes(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 TestGrafeasV1Beta1UpdateNote(t *testing.T) {
+	var name2 string = "name2-1052831874"
+	var shortDescription string = "shortDescription-235369287"
+	var longDescription string = "longDescription-1747792199"
+	var expectedResponse = &grafeaspb.Note{
+		Name:             name2,
+		ShortDescription: shortDescription,
+		LongDescription:  longDescription,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var note *grafeaspb.Note = &grafeaspb.Note{}
+	var request = &grafeaspb.UpdateNoteRequest{
+		Name: formattedName,
+		Note: note,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateNote(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1UpdateNoteError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var note *grafeaspb.Note = &grafeaspb.Note{}
+	var request = &grafeaspb.UpdateNoteRequest{
+		Name: formattedName,
+		Note: note,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.UpdateNote(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 TestGrafeasV1Beta1ListNoteOccurrences(t *testing.T) {
+	var nextPageToken string = ""
+	var occurrencesElement *grafeaspb.Occurrence = &grafeaspb.Occurrence{}
+	var occurrences = []*grafeaspb.Occurrence{occurrencesElement}
+	var expectedResponse = &grafeaspb.ListNoteOccurrencesResponse{
+		NextPageToken: nextPageToken,
+		Occurrences:   occurrences,
+	}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedName string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var request = &grafeaspb.ListNoteOccurrencesRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListNoteOccurrences(context.Background(), request).Next()
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.reqs[0]; !proto.Equal(want, got) {
+		t.Errorf("wrong request %q, want %q", got, want)
+	}
+
+	want := (interface{})(expectedResponse.Occurrences[0])
+	got := (interface{})(resp)
+	var ok bool
+
+	switch want := (want).(type) {
+	case proto.Message:
+		ok = proto.Equal(want, got.(proto.Message))
+	default:
+		ok = want == got
+	}
+	if !ok {
+		t.Errorf("wrong response %q, want %q)", got, want)
+	}
+}
+
+func TestGrafeasV1Beta1ListNoteOccurrencesError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedName string = fmt.Sprintf("projects/%s/notes/%s", "[PROJECT]", "[NOTE]")
+	var request = &grafeaspb.ListNoteOccurrencesRequest{
+		Name: formattedName,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.ListNoteOccurrences(context.Background(), request).Next()
+
+	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 TestGrafeasV1Beta1GetVulnerabilityOccurrencesSummary(t *testing.T) {
+	var expectedResponse *grafeaspb.VulnerabilityOccurrencesSummary = &grafeaspb.VulnerabilityOccurrencesSummary{}
+
+	mockGrafeasV1Beta1.err = nil
+	mockGrafeasV1Beta1.reqs = nil
+
+	mockGrafeasV1Beta1.resps = append(mockGrafeasV1Beta1.resps[:0], expectedResponse)
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var request = &grafeaspb.GetVulnerabilityOccurrencesSummaryRequest{
+		Parent: formattedParent,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetVulnerabilityOccurrencesSummary(context.Background(), request)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if want, got := request, mockGrafeasV1Beta1.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 TestGrafeasV1Beta1GetVulnerabilityOccurrencesSummaryError(t *testing.T) {
+	errCode := codes.PermissionDenied
+	mockGrafeasV1Beta1.err = gstatus.Error(errCode, "test error")
+
+	var formattedParent string = fmt.Sprintf("projects/%s", "[PROJECT]")
+	var request = &grafeaspb.GetVulnerabilityOccurrencesSummaryRequest{
+		Parent: formattedParent,
+	}
+
+	c, err := NewGrafeasV1Beta1Client(context.Background(), clientOpt)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	resp, err := c.GetVulnerabilityOccurrencesSummary(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
+}