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
+}