internal/gapicgen: fix securitycenter import, add test
I deleted the client with the wrong import path.
Test generation: https://code-review.googlesource.com/c/gocloud/+/51811
Change-Id: Ic191b50b6640233cf14288bb120c41b865e79127
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/51770
Reviewed-by: Noah Dietz <ndietz@google.com>
diff --git a/internal/gapicgen/generator/config.go b/internal/gapicgen/generator/config.go
index 3371f20..6cefa56 100644
--- a/internal/gapicgen/generator/config.go
+++ b/internal/gapicgen/generator/config.go
@@ -419,7 +419,7 @@
{
inputDirectoryPath: "google/cloud/securitycenter/v1p1beta1",
pkg: "securitycenter",
- importPath: "cloud.google.com/go/securitycenter/v1p1beta1",
+ importPath: "cloud.google.com/go/securitycenter/apiv1p1beta1",
gRPCServiceConfigPath: "google/cloud/securitycenter/v1p1beta1/securitycenter_grpc_service_config.json",
apiServiceConfigPath: "google/cloud/securitycenter/v1p1beta1/securitycenter_v1p1beta1.yaml",
releaseLevel: "beta",
diff --git a/internal/gapicgen/generator/config_test.go b/internal/gapicgen/generator/config_test.go
index 7a0a4b9..2ce9121 100644
--- a/internal/gapicgen/generator/config_test.go
+++ b/internal/gapicgen/generator/config_test.go
@@ -15,6 +15,7 @@
package generator
import (
+ "strings"
"testing"
)
@@ -24,6 +25,12 @@
"ga": true,
}
+var apivExceptions = map[string]bool{
+ "cloud.google.com/go/longrunning/autogen": true,
+ "cloud.google.com/go/firestore/apiv1/admin": true,
+ "cloud.google.com/go/cloudbuild/apiv1/v2": true,
+}
+
// TestMicrogenConfigs validates config entries.
// We expect entries here to have reasonable production settings, whereas
// the low level tooling is more permissive in the face of ambiguity.
@@ -36,6 +43,11 @@
if entry.importPath == "" {
t.Errorf("config %q (#%d) expected non-empty importPath", entry.inputDirectoryPath, k)
}
+ importParts := strings.Split(entry.importPath, "/")
+ v := importParts[len(importParts)-1]
+ if !strings.HasPrefix(v, "apiv") && !apivExceptions[entry.importPath] {
+ t.Errorf("config %q (#%d) expected the last part of import path %q to start with \"apiv\"", entry.inputDirectoryPath, k, entry.importPath)
+ }
if entry.inputDirectoryPath == "" {
t.Errorf("config %q (#%d) expected non-empty inputDirectoryPath field", entry.importPath, k)
}
diff --git a/securitycenter/v1p1beta1/doc.go b/securitycenter/v1p1beta1/doc.go
deleted file mode 100644
index f3eee2d..0000000
--- a/securitycenter/v1p1beta1/doc.go
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2020 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.
-
-// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
-
-// Package securitycenter is an auto-generated package for the
-// Cloud Security Command Center API.
-//
-// Cloud Security Command Center API provides access to temporal views of
-// assets and findings within an organization.
-//
-// NOTE: This package is in beta. It is not stable, and may be subject to changes.
-//
-// Use of Context
-//
-// The ctx passed to NewClient is used for authentication requests and
-// for creating the underlying connection, but is not used for subsequent calls.
-// Individual methods on the client use the ctx given to them.
-//
-// To close the open connection, use the Close() method.
-//
-// For information about setting deadlines, reusing contexts, and more
-// please visit godoc.org/cloud.google.com/go.
-package securitycenter // import "cloud.google.com/go/securitycenter/v1p1beta1"
-
-import (
- "context"
- "runtime"
- "strings"
- "unicode"
-
- "google.golang.org/grpc/metadata"
-)
-
-const versionClient = "20200211"
-
-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",
- }
-}
-
-// versionGo returns the Go runtime version. The returned string
-// has no whitespace, suitable for reporting in header.
-func versionGo() string {
- const develPrefix = "devel +"
-
- s := runtime.Version()
- if strings.HasPrefix(s, develPrefix) {
- s = s[len(develPrefix):]
- if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
- s = s[:p]
- }
- return s
- }
-
- notSemverRune := func(r rune) bool {
- return !strings.ContainsRune("0123456789.", r)
- }
-
- if strings.HasPrefix(s, "go1") {
- s = s[2:]
- var prerelease string
- if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
- s, prerelease = s[:p], s[p:]
- }
- if strings.HasSuffix(s, ".") {
- s += "0"
- } else if strings.Count(s, ".") < 2 {
- s += ".0"
- }
- if prerelease != "" {
- s += "-" + prerelease
- }
- return s
- }
- return "UNKNOWN"
-}
diff --git a/securitycenter/v1p1beta1/security_center_client.go b/securitycenter/v1p1beta1/security_center_client.go
deleted file mode 100644
index 10567ae..0000000
--- a/securitycenter/v1p1beta1/security_center_client.go
+++ /dev/null
@@ -1,1151 +0,0 @@
-// Copyright 2020 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.
-
-// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
-
-package securitycenter
-
-import (
- "context"
- "fmt"
- "math"
- "net/url"
- "time"
-
- "cloud.google.com/go/longrunning"
- lroauto "cloud.google.com/go/longrunning/autogen"
- "github.com/golang/protobuf/proto"
- emptypb "github.com/golang/protobuf/ptypes/empty"
- gax "github.com/googleapis/gax-go/v2"
- "google.golang.org/api/iterator"
- "google.golang.org/api/option"
- gtransport "google.golang.org/api/transport/grpc"
- securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
- iampb "google.golang.org/genproto/googleapis/iam/v1"
- longrunningpb "google.golang.org/genproto/googleapis/longrunning"
- "google.golang.org/grpc"
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/metadata"
-)
-
-// CallOptions contains the retry settings for each method of Client.
-type CallOptions struct {
- CreateSource []gax.CallOption
- CreateFinding []gax.CallOption
- CreateNotificationConfig []gax.CallOption
- DeleteNotificationConfig []gax.CallOption
- GetIamPolicy []gax.CallOption
- GetNotificationConfig []gax.CallOption
- GetOrganizationSettings []gax.CallOption
- GetSource []gax.CallOption
- GroupAssets []gax.CallOption
- GroupFindings []gax.CallOption
- ListAssets []gax.CallOption
- ListFindings []gax.CallOption
- ListNotificationConfigs []gax.CallOption
- ListSources []gax.CallOption
- RunAssetDiscovery []gax.CallOption
- SetFindingState []gax.CallOption
- SetIamPolicy []gax.CallOption
- TestIamPermissions []gax.CallOption
- UpdateFinding []gax.CallOption
- UpdateNotificationConfig []gax.CallOption
- UpdateOrganizationSettings []gax.CallOption
- UpdateSource []gax.CallOption
- UpdateSecurityMarks []gax.CallOption
-}
-
-func defaultClientOptions() []option.ClientOption {
- return []option.ClientOption{
- option.WithEndpoint("securitycenter.googleapis.com:443"),
- option.WithGRPCDialOption(grpc.WithDisableServiceConfig()),
- option.WithScopes(DefaultAuthScopes()...),
- option.WithGRPCDialOption(grpc.WithDefaultCallOptions(
- grpc.MaxCallRecvMsgSize(math.MaxInt32))),
- }
-}
-
-func defaultCallOptions() *CallOptions {
- return &CallOptions{
- CreateSource: []gax.CallOption{},
- CreateFinding: []gax.CallOption{},
- CreateNotificationConfig: []gax.CallOption{},
- DeleteNotificationConfig: []gax.CallOption{},
- GetIamPolicy: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- GetNotificationConfig: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- GetOrganizationSettings: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- GetSource: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- GroupAssets: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- GroupFindings: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- ListAssets: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- ListFindings: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- ListNotificationConfigs: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- ListSources: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- RunAssetDiscovery: []gax.CallOption{},
- SetFindingState: []gax.CallOption{},
- SetIamPolicy: []gax.CallOption{},
- TestIamPermissions: []gax.CallOption{
- gax.WithRetry(func() gax.Retryer {
- return gax.OnCodes([]codes.Code{
- codes.DeadlineExceeded,
- codes.Unavailable,
- }, gax.Backoff{
- Initial: 100 * time.Millisecond,
- Max: 60000 * time.Millisecond,
- Multiplier: 1.30,
- })
- }),
- },
- UpdateFinding: []gax.CallOption{},
- UpdateNotificationConfig: []gax.CallOption{},
- UpdateOrganizationSettings: []gax.CallOption{},
- UpdateSource: []gax.CallOption{},
- UpdateSecurityMarks: []gax.CallOption{},
- }
-}
-
-// Client is a client for interacting with Cloud Security Command Center API.
-//
-// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
-type Client struct {
- // Connection pool of gRPC connections to the service.
- connPool gtransport.ConnPool
-
- // The gRPC API client.
- client securitycenterpb.SecurityCenterClient
-
- // LROClient is used internally to handle longrunning operations.
- // It is exposed so that its CallOptions can be modified if required.
- // Users should not Close this client.
- LROClient *lroauto.OperationsClient
-
- // The call options for this service.
- CallOptions *CallOptions
-
- // The x-goog-* metadata to be sent with each request.
- xGoogMetadata metadata.MD
-}
-
-// NewClient creates a new security center client.
-//
-// V1p1Beta1 APIs for Security Center service.
-func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) {
- connPool, err := gtransport.DialPool(ctx, append(defaultClientOptions(), opts...)...)
- if err != nil {
- return nil, err
- }
- c := &Client{
- connPool: connPool,
- CallOptions: defaultCallOptions(),
-
- client: securitycenterpb.NewSecurityCenterClient(connPool),
- }
- c.setGoogleClientInfo()
-
- c.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool))
- if err != nil {
- // This error "should not happen", since we are just reusing old connection pool
- // and never actually need to dial.
- // If this does happen, we could leak connp. However, we cannot close conn:
- // If the user invoked the constructor with option.WithGRPCConn,
- // we would close a connection that's still in use.
- // TODO: investigate error conditions.
- return nil, err
- }
- return c, nil
-}
-
-// Connection returns a connection to the API service.
-//
-// Deprecated.
-func (c *Client) Connection() *grpc.ClientConn {
- return c.connPool.Conn()
-}
-
-// Close closes the connection to the API service. The user should invoke this when
-// the client is no longer required.
-func (c *Client) Close() error {
- return c.connPool.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 *Client) setGoogleClientInfo(keyval ...string) {
- kv := append([]string{"gl-go", versionGo()}, keyval...)
- kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
- c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
-}
-
-// CreateSource creates a source.
-func (c *Client) CreateSource(ctx context.Context, req *securitycenterpb.CreateSourceRequest, opts ...gax.CallOption) (*securitycenterpb.Source, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.CreateSource[0:len(c.CallOptions.CreateSource):len(c.CallOptions.CreateSource)], opts...)
- var resp *securitycenterpb.Source
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.CreateSource(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// CreateFinding creates a finding. The corresponding source must exist for finding
-// creation to succeed.
-func (c *Client) CreateFinding(ctx context.Context, req *securitycenterpb.CreateFindingRequest, opts ...gax.CallOption) (*securitycenterpb.Finding, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.CreateFinding[0:len(c.CallOptions.CreateFinding):len(c.CallOptions.CreateFinding)], opts...)
- var resp *securitycenterpb.Finding
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.CreateFinding(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// CreateNotificationConfig creates a notification config.
-func (c *Client) CreateNotificationConfig(ctx context.Context, req *securitycenterpb.CreateNotificationConfigRequest, opts ...gax.CallOption) (*securitycenterpb.NotificationConfig, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.CreateNotificationConfig[0:len(c.CallOptions.CreateNotificationConfig):len(c.CallOptions.CreateNotificationConfig)], opts...)
- var resp *securitycenterpb.NotificationConfig
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.CreateNotificationConfig(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// DeleteNotificationConfig deletes a notification config.
-func (c *Client) DeleteNotificationConfig(ctx context.Context, req *securitycenterpb.DeleteNotificationConfigRequest, opts ...gax.CallOption) error {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.DeleteNotificationConfig[0:len(c.CallOptions.DeleteNotificationConfig):len(c.CallOptions.DeleteNotificationConfig)], opts...)
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- _, err = c.client.DeleteNotificationConfig(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- return err
-}
-
-// GetIamPolicy gets the access control policy on the specified Source.
-func (c *Client) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- 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.client.GetIamPolicy(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// GetNotificationConfig gets a notification config.
-func (c *Client) GetNotificationConfig(ctx context.Context, req *securitycenterpb.GetNotificationConfigRequest, opts ...gax.CallOption) (*securitycenterpb.NotificationConfig, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.GetNotificationConfig[0:len(c.CallOptions.GetNotificationConfig):len(c.CallOptions.GetNotificationConfig)], opts...)
- var resp *securitycenterpb.NotificationConfig
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.GetNotificationConfig(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// GetOrganizationSettings gets the settings for an organization.
-func (c *Client) GetOrganizationSettings(ctx context.Context, req *securitycenterpb.GetOrganizationSettingsRequest, opts ...gax.CallOption) (*securitycenterpb.OrganizationSettings, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.GetOrganizationSettings[0:len(c.CallOptions.GetOrganizationSettings):len(c.CallOptions.GetOrganizationSettings)], opts...)
- var resp *securitycenterpb.OrganizationSettings
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.GetOrganizationSettings(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// GetSource gets a source.
-func (c *Client) GetSource(ctx context.Context, req *securitycenterpb.GetSourceRequest, opts ...gax.CallOption) (*securitycenterpb.Source, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.GetSource[0:len(c.CallOptions.GetSource):len(c.CallOptions.GetSource)], opts...)
- var resp *securitycenterpb.Source
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.GetSource(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// GroupAssets filters an organization’s assets and groups them by their specified
-// properties.
-func (c *Client) GroupAssets(ctx context.Context, req *securitycenterpb.GroupAssetsRequest, opts ...gax.CallOption) *GroupResultIterator {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.GroupAssets[0:len(c.CallOptions.GroupAssets):len(c.CallOptions.GroupAssets)], opts...)
- it := &GroupResultIterator{}
- req = proto.Clone(req).(*securitycenterpb.GroupAssetsRequest)
- it.InternalFetch = func(pageSize int, pageToken string) ([]*securitycenterpb.GroupResult, string, error) {
- var resp *securitycenterpb.GroupAssetsResponse
- 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.client.GroupAssets(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, "", err
- }
-
- it.Response = resp
- return resp.GroupByResults, 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)
- it.pageInfo.Token = req.PageToken
- return it
-}
-
-// GroupFindings filters an organization or source’s findings and groups them by their
-// specified properties.
-//
-// To group across all sources provide a - as the source id.
-// Example: /v1p1beta1/organizations/{organization_id}/sources/-/findings
-func (c *Client) GroupFindings(ctx context.Context, req *securitycenterpb.GroupFindingsRequest, opts ...gax.CallOption) *GroupResultIterator {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.GroupFindings[0:len(c.CallOptions.GroupFindings):len(c.CallOptions.GroupFindings)], opts...)
- it := &GroupResultIterator{}
- req = proto.Clone(req).(*securitycenterpb.GroupFindingsRequest)
- it.InternalFetch = func(pageSize int, pageToken string) ([]*securitycenterpb.GroupResult, string, error) {
- var resp *securitycenterpb.GroupFindingsResponse
- 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.client.GroupFindings(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, "", err
- }
-
- it.Response = resp
- return resp.GroupByResults, 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)
- it.pageInfo.Token = req.PageToken
- return it
-}
-
-// ListAssets lists an organization’s assets.
-func (c *Client) ListAssets(ctx context.Context, req *securitycenterpb.ListAssetsRequest, opts ...gax.CallOption) *ListAssetsResponse_ListAssetsResultIterator {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.ListAssets[0:len(c.CallOptions.ListAssets):len(c.CallOptions.ListAssets)], opts...)
- it := &ListAssetsResponse_ListAssetsResultIterator{}
- req = proto.Clone(req).(*securitycenterpb.ListAssetsRequest)
- it.InternalFetch = func(pageSize int, pageToken string) ([]*securitycenterpb.ListAssetsResponse_ListAssetsResult, string, error) {
- var resp *securitycenterpb.ListAssetsResponse
- 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.client.ListAssets(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, "", err
- }
-
- it.Response = resp
- return resp.ListAssetsResults, 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)
- it.pageInfo.Token = req.PageToken
- return it
-}
-
-// ListFindings lists an organization or source’s findings.
-//
-// To list across all sources provide a - as the source id.
-// Example: /v1p1beta1/organizations/{organization_id}/sources/-/findings
-func (c *Client) ListFindings(ctx context.Context, req *securitycenterpb.ListFindingsRequest, opts ...gax.CallOption) *ListFindingsResponse_ListFindingsResultIterator {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.ListFindings[0:len(c.CallOptions.ListFindings):len(c.CallOptions.ListFindings)], opts...)
- it := &ListFindingsResponse_ListFindingsResultIterator{}
- req = proto.Clone(req).(*securitycenterpb.ListFindingsRequest)
- it.InternalFetch = func(pageSize int, pageToken string) ([]*securitycenterpb.ListFindingsResponse_ListFindingsResult, string, error) {
- var resp *securitycenterpb.ListFindingsResponse
- 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.client.ListFindings(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, "", err
- }
-
- it.Response = resp
- return resp.ListFindingsResults, 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)
- it.pageInfo.Token = req.PageToken
- return it
-}
-
-// ListNotificationConfigs lists notification configs.
-func (c *Client) ListNotificationConfigs(ctx context.Context, req *securitycenterpb.ListNotificationConfigsRequest, opts ...gax.CallOption) *NotificationConfigIterator {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.ListNotificationConfigs[0:len(c.CallOptions.ListNotificationConfigs):len(c.CallOptions.ListNotificationConfigs)], opts...)
- it := &NotificationConfigIterator{}
- req = proto.Clone(req).(*securitycenterpb.ListNotificationConfigsRequest)
- it.InternalFetch = func(pageSize int, pageToken string) ([]*securitycenterpb.NotificationConfig, string, error) {
- var resp *securitycenterpb.ListNotificationConfigsResponse
- 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.client.ListNotificationConfigs(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, "", err
- }
-
- it.Response = resp
- return resp.NotificationConfigs, 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)
- it.pageInfo.Token = req.PageToken
- return it
-}
-
-// ListSources lists all sources belonging to an organization.
-func (c *Client) ListSources(ctx context.Context, req *securitycenterpb.ListSourcesRequest, opts ...gax.CallOption) *SourceIterator {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.ListSources[0:len(c.CallOptions.ListSources):len(c.CallOptions.ListSources)], opts...)
- it := &SourceIterator{}
- req = proto.Clone(req).(*securitycenterpb.ListSourcesRequest)
- it.InternalFetch = func(pageSize int, pageToken string) ([]*securitycenterpb.Source, string, error) {
- var resp *securitycenterpb.ListSourcesResponse
- 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.client.ListSources(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, "", err
- }
-
- it.Response = resp
- return resp.Sources, 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)
- it.pageInfo.Token = req.PageToken
- return it
-}
-
-// RunAssetDiscovery runs asset discovery. The discovery is tracked with a long-running
-// operation.
-//
-// This API can only be called with limited frequency for an organization. If
-// it is called too frequently the caller will receive a TOO_MANY_REQUESTS
-// error.
-func (c *Client) RunAssetDiscovery(ctx context.Context, req *securitycenterpb.RunAssetDiscoveryRequest, opts ...gax.CallOption) (*RunAssetDiscoveryOperation, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.RunAssetDiscovery[0:len(c.CallOptions.RunAssetDiscovery):len(c.CallOptions.RunAssetDiscovery)], opts...)
- var resp *longrunningpb.Operation
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.RunAssetDiscovery(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return &RunAssetDiscoveryOperation{
- lro: longrunning.InternalNewOperation(c.LROClient, resp),
- }, nil
-}
-
-// SetFindingState updates the state of a finding.
-func (c *Client) SetFindingState(ctx context.Context, req *securitycenterpb.SetFindingStateRequest, opts ...gax.CallOption) (*securitycenterpb.Finding, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.SetFindingState[0:len(c.CallOptions.SetFindingState):len(c.CallOptions.SetFindingState)], opts...)
- var resp *securitycenterpb.Finding
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.SetFindingState(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// SetIamPolicy sets the access control policy on the specified Source.
-func (c *Client) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- 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.client.SetIamPolicy(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 source.
-func (c *Client) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- 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.client.TestIamPermissions(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// UpdateFinding creates or updates a finding. The corresponding source must exist for a
-// finding creation to succeed.
-func (c *Client) UpdateFinding(ctx context.Context, req *securitycenterpb.UpdateFindingRequest, opts ...gax.CallOption) (*securitycenterpb.Finding, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "finding.name", url.QueryEscape(req.GetFinding().GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.UpdateFinding[0:len(c.CallOptions.UpdateFinding):len(c.CallOptions.UpdateFinding)], opts...)
- var resp *securitycenterpb.Finding
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.UpdateFinding(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// UpdateNotificationConfig updates a notification config.
-func (c *Client) UpdateNotificationConfig(ctx context.Context, req *securitycenterpb.UpdateNotificationConfigRequest, opts ...gax.CallOption) (*securitycenterpb.NotificationConfig, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "notification_config.name", url.QueryEscape(req.GetNotificationConfig().GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.UpdateNotificationConfig[0:len(c.CallOptions.UpdateNotificationConfig):len(c.CallOptions.UpdateNotificationConfig)], opts...)
- var resp *securitycenterpb.NotificationConfig
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.UpdateNotificationConfig(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// UpdateOrganizationSettings updates an organization’s settings.
-func (c *Client) UpdateOrganizationSettings(ctx context.Context, req *securitycenterpb.UpdateOrganizationSettingsRequest, opts ...gax.CallOption) (*securitycenterpb.OrganizationSettings, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "organization_settings.name", url.QueryEscape(req.GetOrganizationSettings().GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.UpdateOrganizationSettings[0:len(c.CallOptions.UpdateOrganizationSettings):len(c.CallOptions.UpdateOrganizationSettings)], opts...)
- var resp *securitycenterpb.OrganizationSettings
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.UpdateOrganizationSettings(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// UpdateSource updates a source.
-func (c *Client) UpdateSource(ctx context.Context, req *securitycenterpb.UpdateSourceRequest, opts ...gax.CallOption) (*securitycenterpb.Source, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "source.name", url.QueryEscape(req.GetSource().GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.UpdateSource[0:len(c.CallOptions.UpdateSource):len(c.CallOptions.UpdateSource)], opts...)
- var resp *securitycenterpb.Source
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.UpdateSource(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// UpdateSecurityMarks updates security marks.
-func (c *Client) UpdateSecurityMarks(ctx context.Context, req *securitycenterpb.UpdateSecurityMarksRequest, opts ...gax.CallOption) (*securitycenterpb.SecurityMarks, error) {
- md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "security_marks.name", url.QueryEscape(req.GetSecurityMarks().GetName())))
- ctx = insertMetadata(ctx, c.xGoogMetadata, md)
- opts = append(c.CallOptions.UpdateSecurityMarks[0:len(c.CallOptions.UpdateSecurityMarks):len(c.CallOptions.UpdateSecurityMarks)], opts...)
- var resp *securitycenterpb.SecurityMarks
- err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
- var err error
- resp, err = c.client.UpdateSecurityMarks(ctx, req, settings.GRPC...)
- return err
- }, opts...)
- if err != nil {
- return nil, err
- }
- return resp, nil
-}
-
-// RunAssetDiscoveryOperation manages a long-running operation from RunAssetDiscovery.
-type RunAssetDiscoveryOperation struct {
- lro *longrunning.Operation
-}
-
-// RunAssetDiscoveryOperation returns a new RunAssetDiscoveryOperation from a given name.
-// The name must be that of a previously created RunAssetDiscoveryOperation, possibly from a different process.
-func (c *Client) RunAssetDiscoveryOperation(name string) *RunAssetDiscoveryOperation {
- return &RunAssetDiscoveryOperation{
- lro: longrunning.InternalNewOperation(c.LROClient, &longrunningpb.Operation{Name: name}),
- }
-}
-
-// Wait blocks until the long-running operation is completed, returning the response and any errors encountered.
-//
-// See documentation of Poll for error-handling information.
-func (op *RunAssetDiscoveryOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*securitycenterpb.RunAssetDiscoveryResponse, error) {
- var resp securitycenterpb.RunAssetDiscoveryResponse
- if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil {
- return nil, err
- }
- return &resp, nil
-}
-
-// Poll fetches the latest state of the long-running operation.
-//
-// Poll also fetches the latest metadata, which can be retrieved by Metadata.
-//
-// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and
-// the operation has completed with failure, the error is returned and op.Done will return true.
-// If Poll succeeds and the operation has completed successfully,
-// op.Done will return true, and the response of the operation is returned.
-// If Poll succeeds and the operation has not completed, the returned response and error are both nil.
-func (op *RunAssetDiscoveryOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*securitycenterpb.RunAssetDiscoveryResponse, error) {
- var resp securitycenterpb.RunAssetDiscoveryResponse
- if err := op.lro.Poll(ctx, &resp, opts...); err != nil {
- return nil, err
- }
- if !op.Done() {
- return nil, nil
- }
- return &resp, nil
-}
-
-// Metadata returns metadata associated with the long-running operation.
-// Metadata itself does not contact the server, but Poll does.
-// To get the latest metadata, call this method after a successful call to Poll.
-// If the metadata is not available, the returned metadata and error are both nil.
-func (op *RunAssetDiscoveryOperation) Metadata() (*emptypb.Empty, error) {
- var meta emptypb.Empty
- if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata {
- return nil, nil
- } else if err != nil {
- return nil, err
- }
- return &meta, nil
-}
-
-// Done reports whether the long-running operation has completed.
-func (op *RunAssetDiscoveryOperation) Done() bool {
- return op.lro.Done()
-}
-
-// Name returns the name of the long-running operation.
-// The name is assigned by the server and is unique within the service from which the operation is created.
-func (op *RunAssetDiscoveryOperation) Name() string {
- return op.lro.Name()
-}
-
-// GroupResultIterator manages a stream of *securitycenterpb.GroupResult.
-type GroupResultIterator struct {
- items []*securitycenterpb.GroupResult
- pageInfo *iterator.PageInfo
- nextFunc func() error
-
- // Response is the raw response for the current page.
- // It must be cast to the RPC response type.
- // Calling Next() or InternalFetch() updates this value.
- Response interface{}
-
- // 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 []*securitycenterpb.GroupResult, nextPageToken string, err error)
-}
-
-// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
-func (it *GroupResultIterator) 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 *GroupResultIterator) Next() (*securitycenterpb.GroupResult, error) {
- var item *securitycenterpb.GroupResult
- if err := it.nextFunc(); err != nil {
- return item, err
- }
- item = it.items[0]
- it.items = it.items[1:]
- return item, nil
-}
-
-func (it *GroupResultIterator) bufLen() int {
- return len(it.items)
-}
-
-func (it *GroupResultIterator) takeBuf() interface{} {
- b := it.items
- it.items = nil
- return b
-}
-
-// ListAssetsResponse_ListAssetsResultIterator manages a stream of *securitycenterpb.ListAssetsResponse_ListAssetsResult.
-type ListAssetsResponse_ListAssetsResultIterator struct {
- items []*securitycenterpb.ListAssetsResponse_ListAssetsResult
- pageInfo *iterator.PageInfo
- nextFunc func() error
-
- // Response is the raw response for the current page.
- // It must be cast to the RPC response type.
- // Calling Next() or InternalFetch() updates this value.
- Response interface{}
-
- // 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 []*securitycenterpb.ListAssetsResponse_ListAssetsResult, nextPageToken string, err error)
-}
-
-// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
-func (it *ListAssetsResponse_ListAssetsResultIterator) 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 *ListAssetsResponse_ListAssetsResultIterator) Next() (*securitycenterpb.ListAssetsResponse_ListAssetsResult, error) {
- var item *securitycenterpb.ListAssetsResponse_ListAssetsResult
- if err := it.nextFunc(); err != nil {
- return item, err
- }
- item = it.items[0]
- it.items = it.items[1:]
- return item, nil
-}
-
-func (it *ListAssetsResponse_ListAssetsResultIterator) bufLen() int {
- return len(it.items)
-}
-
-func (it *ListAssetsResponse_ListAssetsResultIterator) takeBuf() interface{} {
- b := it.items
- it.items = nil
- return b
-}
-
-// ListFindingsResponse_ListFindingsResultIterator manages a stream of *securitycenterpb.ListFindingsResponse_ListFindingsResult.
-type ListFindingsResponse_ListFindingsResultIterator struct {
- items []*securitycenterpb.ListFindingsResponse_ListFindingsResult
- pageInfo *iterator.PageInfo
- nextFunc func() error
-
- // Response is the raw response for the current page.
- // It must be cast to the RPC response type.
- // Calling Next() or InternalFetch() updates this value.
- Response interface{}
-
- // 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 []*securitycenterpb.ListFindingsResponse_ListFindingsResult, nextPageToken string, err error)
-}
-
-// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
-func (it *ListFindingsResponse_ListFindingsResultIterator) 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 *ListFindingsResponse_ListFindingsResultIterator) Next() (*securitycenterpb.ListFindingsResponse_ListFindingsResult, error) {
- var item *securitycenterpb.ListFindingsResponse_ListFindingsResult
- if err := it.nextFunc(); err != nil {
- return item, err
- }
- item = it.items[0]
- it.items = it.items[1:]
- return item, nil
-}
-
-func (it *ListFindingsResponse_ListFindingsResultIterator) bufLen() int {
- return len(it.items)
-}
-
-func (it *ListFindingsResponse_ListFindingsResultIterator) takeBuf() interface{} {
- b := it.items
- it.items = nil
- return b
-}
-
-// NotificationConfigIterator manages a stream of *securitycenterpb.NotificationConfig.
-type NotificationConfigIterator struct {
- items []*securitycenterpb.NotificationConfig
- pageInfo *iterator.PageInfo
- nextFunc func() error
-
- // Response is the raw response for the current page.
- // It must be cast to the RPC response type.
- // Calling Next() or InternalFetch() updates this value.
- Response interface{}
-
- // 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 []*securitycenterpb.NotificationConfig, nextPageToken string, err error)
-}
-
-// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
-func (it *NotificationConfigIterator) 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 *NotificationConfigIterator) Next() (*securitycenterpb.NotificationConfig, error) {
- var item *securitycenterpb.NotificationConfig
- if err := it.nextFunc(); err != nil {
- return item, err
- }
- item = it.items[0]
- it.items = it.items[1:]
- return item, nil
-}
-
-func (it *NotificationConfigIterator) bufLen() int {
- return len(it.items)
-}
-
-func (it *NotificationConfigIterator) takeBuf() interface{} {
- b := it.items
- it.items = nil
- return b
-}
-
-// SourceIterator manages a stream of *securitycenterpb.Source.
-type SourceIterator struct {
- items []*securitycenterpb.Source
- pageInfo *iterator.PageInfo
- nextFunc func() error
-
- // Response is the raw response for the current page.
- // It must be cast to the RPC response type.
- // Calling Next() or InternalFetch() updates this value.
- Response interface{}
-
- // 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 []*securitycenterpb.Source, nextPageToken string, err error)
-}
-
-// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
-func (it *SourceIterator) 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 *SourceIterator) Next() (*securitycenterpb.Source, error) {
- var item *securitycenterpb.Source
- if err := it.nextFunc(); err != nil {
- return item, err
- }
- item = it.items[0]
- it.items = it.items[1:]
- return item, nil
-}
-
-func (it *SourceIterator) bufLen() int {
- return len(it.items)
-}
-
-func (it *SourceIterator) takeBuf() interface{} {
- b := it.items
- it.items = nil
- return b
-}
diff --git a/securitycenter/v1p1beta1/security_center_client_example_test.go b/securitycenter/v1p1beta1/security_center_client_example_test.go
deleted file mode 100644
index 572e57b..0000000
--- a/securitycenter/v1p1beta1/security_center_client_example_test.go
+++ /dev/null
@@ -1,539 +0,0 @@
-// Copyright 2020 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.
-
-// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
-
-package securitycenter_test
-
-import (
- "context"
-
- securitycenter "cloud.google.com/go/securitycenter/v1p1beta1"
- "google.golang.org/api/iterator"
- securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
- iampb "google.golang.org/genproto/googleapis/iam/v1"
-)
-
-func ExampleNewClient() {
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use client.
- _ = c
-}
-
-func ExampleClient_CreateSource() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.CreateSourceRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.CreateSource(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_CreateFinding() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.CreateFindingRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.CreateFinding(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_CreateNotificationConfig() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.CreateNotificationConfigRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.CreateNotificationConfig(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_DeleteNotificationConfig() {
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.DeleteNotificationConfigRequest{
- // TODO: Fill request struct fields.
- }
- err = c.DeleteNotificationConfig(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
-}
-
-func ExampleClient_GetIamPolicy() {
- // import iampb "google.golang.org/genproto/googleapis/iam/v1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(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 ExampleClient_GetNotificationConfig() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.GetNotificationConfigRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.GetNotificationConfig(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_GetOrganizationSettings() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.GetOrganizationSettingsRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.GetOrganizationSettings(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_GetSource() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.GetSourceRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.GetSource(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_GroupAssets() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
- // import "google.golang.org/api/iterator"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.GroupAssetsRequest{
- // TODO: Fill request struct fields.
- }
- it := c.GroupAssets(ctx, req)
- for {
- resp, err := it.Next()
- if err == iterator.Done {
- break
- }
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
- }
-}
-
-func ExampleClient_GroupFindings() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
- // import "google.golang.org/api/iterator"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.GroupFindingsRequest{
- // TODO: Fill request struct fields.
- }
- it := c.GroupFindings(ctx, req)
- for {
- resp, err := it.Next()
- if err == iterator.Done {
- break
- }
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
- }
-}
-
-func ExampleClient_ListAssets() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
- // import "google.golang.org/api/iterator"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.ListAssetsRequest{
- // TODO: Fill request struct fields.
- }
- it := c.ListAssets(ctx, req)
- for {
- resp, err := it.Next()
- if err == iterator.Done {
- break
- }
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
- }
-}
-
-func ExampleClient_ListFindings() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
- // import "google.golang.org/api/iterator"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.ListFindingsRequest{
- // TODO: Fill request struct fields.
- }
- it := c.ListFindings(ctx, req)
- for {
- resp, err := it.Next()
- if err == iterator.Done {
- break
- }
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
- }
-}
-
-func ExampleClient_ListNotificationConfigs() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
- // import "google.golang.org/api/iterator"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.ListNotificationConfigsRequest{
- // TODO: Fill request struct fields.
- }
- it := c.ListNotificationConfigs(ctx, req)
- for {
- resp, err := it.Next()
- if err == iterator.Done {
- break
- }
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
- }
-}
-
-func ExampleClient_ListSources() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
- // import "google.golang.org/api/iterator"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.ListSourcesRequest{
- // TODO: Fill request struct fields.
- }
- it := c.ListSources(ctx, req)
- for {
- resp, err := it.Next()
- if err == iterator.Done {
- break
- }
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
- }
-}
-
-func ExampleClient_RunAssetDiscovery() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.RunAssetDiscoveryRequest{
- // TODO: Fill request struct fields.
- }
- op, err := c.RunAssetDiscovery(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
-
- resp, err := op.Wait(ctx)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_SetFindingState() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.SetFindingStateRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.SetFindingState(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_SetIamPolicy() {
- // import iampb "google.golang.org/genproto/googleapis/iam/v1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(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 ExampleClient_TestIamPermissions() {
- // import iampb "google.golang.org/genproto/googleapis/iam/v1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(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 ExampleClient_UpdateFinding() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.UpdateFindingRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.UpdateFinding(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_UpdateNotificationConfig() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.UpdateNotificationConfigRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.UpdateNotificationConfig(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_UpdateOrganizationSettings() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.UpdateOrganizationSettingsRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.UpdateOrganizationSettings(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_UpdateSource() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.UpdateSourceRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.UpdateSource(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}
-
-func ExampleClient_UpdateSecurityMarks() {
- // import securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1"
-
- ctx := context.Background()
- c, err := securitycenter.NewClient(ctx)
- if err != nil {
- // TODO: Handle error.
- }
-
- req := &securitycenterpb.UpdateSecurityMarksRequest{
- // TODO: Fill request struct fields.
- }
- resp, err := c.UpdateSecurityMarks(ctx, req)
- if err != nil {
- // TODO: Handle error.
- }
- // TODO: Use resp.
- _ = resp
-}