diff --git a/.librarian/state.yaml b/.librarian/state.yaml index b35601cd831d..8aa25a748344 100644 --- a/.librarian/state.yaml +++ b/.librarian/state.yaml @@ -702,6 +702,29 @@ libraries: release_exclude_paths: - internal/generated/snippets/assuredworkloads/ tag_format: '{id}/v{version}' + - id: auditmanager + version: 0.0.0 + last_generated_commit: c99e8a29e1b568d183445adccde5bf9d6437cf00 + apis: + - path: google/cloud/auditmanager/v1 + service_config: auditmanager_v1.yaml + source_roots: + - auditmanager + - internal/generated/snippets/auditmanager + preserve_regex: [] + remove_regex: + - ^internal/generated/snippets/auditmanager/ + - ^auditmanager/apiv1/[^/]*_client\.go$ + - ^auditmanager/apiv1/[^/]*_client_example_go123_test\.go$ + - ^auditmanager/apiv1/[^/]*_client_example_test\.go$ + - ^auditmanager/apiv1/auxiliary\.go$ + - ^auditmanager/apiv1/auxiliary_go123\.go$ + - ^auditmanager/apiv1/doc\.go$ + - ^auditmanager/apiv1/gapic_metadata\.json$ + - ^auditmanager/apiv1/helpers\.go$ + - ^auditmanager/apiv1/\.repo-metadata\.json$ + - ^auditmanager/apiv1/auditmanagerpb/.*$ + tag_format: '{id}/v{version}' - id: auth version: 0.18.1 last_generated_commit: 31b413bc4feb03f6849c718048c2b9998561b5fa diff --git a/auditmanager/CHANGES.md b/auditmanager/CHANGES.md new file mode 100644 index 000000000000..b671f0bbcdd2 --- /dev/null +++ b/auditmanager/CHANGES.md @@ -0,0 +1 @@ +# Changes diff --git a/auditmanager/README.md b/auditmanager/README.md new file mode 100644 index 000000000000..eb165d942e53 --- /dev/null +++ b/auditmanager/README.md @@ -0,0 +1,55 @@ +# Audit Manager API + +[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/auditmanager.svg)](https://pkg.go.dev/cloud.google.com/go/auditmanager) + +Go Client Library for Audit Manager API. + +## Install + +```bash +go get cloud.google.com/go/auditmanager +``` + +## Stability + +The stability of this module is indicated by SemVer. + +However, a `v1+` module may have breaking changes in two scenarios: + +* Packages with `alpha` or `beta` in the import path +* The GoDoc has an explicit stability disclaimer (for example, for an experimental feature). + +### Which package to use? + +Generated client library surfaces can be found in packages whose import path +ends in `.../apivXXX`. The `XXX` could be something like `1` or `2` in the case +of a stable service backend or may be like `1beta2` or `2beta` in the case of a +more experimental service backend. Because of this fact, a given module can have +multiple clients for different service backends. In these cases it is generally +recommended to use clients with stable service backends, with import suffixes like +`apiv1`, unless you need to use features that are only present in a beta backend +or there is not yet a stable backend available. + +## Google Cloud Samples + +To browse ready to use code samples check [Google Cloud Samples](https://cloud.google.com/docs/samples?l=go). + +## Go Version Support + +See the [Go Versions Supported](https://github.com/googleapis/google-cloud-go#go-versions-supported) +section in the root directory's README. + +## Authorization + +See the [Authorization](https://github.com/googleapis/google-cloud-go#authorization) +section in the root directory's README. + +## Contributing + +Contributions are welcome. Please, see the [CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md) +document for details. + +Please note that this project is released with a Contributor Code of Conduct. +By participating in this project you agree to abide by its terms. See +[Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct) +for more information. diff --git a/auditmanager/apiv1/.repo-metadata.json b/auditmanager/apiv1/.repo-metadata.json new file mode 100644 index 000000000000..90aef7710a17 --- /dev/null +++ b/auditmanager/apiv1/.repo-metadata.json @@ -0,0 +1,10 @@ +{ + "api_shortname": "auditmanager", + "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/auditmanager/latest/apiv1", + "client_library_type": "generated", + "description": "Audit Manager API", + "distribution_name": "cloud.google.com/go/auditmanager/apiv1", + "language": "go", + "library_type": "GAPIC_AUTO", + "release_level": "preview" +} diff --git a/auditmanager/apiv1/audit_manager_client.go b/auditmanager/apiv1/audit_manager_client.go new file mode 100644 index 000000000000..e23f21d4d501 --- /dev/null +++ b/auditmanager/apiv1/audit_manager_client.go @@ -0,0 +1,1842 @@ +// Copyright 2026 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 auditmanager + +import ( + "bytes" + "context" + "fmt" + "log/slog" + "math" + "net/http" + "net/url" + "time" + + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httptransport "google.golang.org/api/transport/http" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newClientHook clientHook + +// CallOptions contains the retry settings for each method of Client. +type CallOptions struct { + EnrollResource []gax.CallOption + GenerateAuditScopeReport []gax.CallOption + GenerateAuditReport []gax.CallOption + ListAuditReports []gax.CallOption + GetAuditReport []gax.CallOption + GetResourceEnrollmentStatus []gax.CallOption + ListResourceEnrollmentStatuses []gax.CallOption + ListControls []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("auditmanager.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("auditmanager.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("auditmanager.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://auditmanager.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + internaloption.EnableNewAuthLibrary(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultCallOptions() *CallOptions { + return &CallOptions{ + EnrollResource: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GenerateAuditScopeReport: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GenerateAuditReport: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListAuditReports: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetAuditReport: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetResourceEnrollmentStatus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListResourceEnrollmentStatuses: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListControls: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultRESTCallOptions() *CallOptions { + return &CallOptions{ + EnrollResource: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GenerateAuditScopeReport: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GenerateAuditReport: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListAuditReports: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetAuditReport: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetResourceEnrollmentStatus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListResourceEnrollmentStatuses: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListControls: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalClient is an interface that defines the methods available from Audit Manager API. +type internalClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + EnrollResource(context.Context, *auditmanagerpb.EnrollResourceRequest, ...gax.CallOption) (*auditmanagerpb.Enrollment, error) + GenerateAuditScopeReport(context.Context, *auditmanagerpb.GenerateAuditScopeReportRequest, ...gax.CallOption) (*auditmanagerpb.AuditScopeReport, error) + GenerateAuditReport(context.Context, *auditmanagerpb.GenerateAuditReportRequest, ...gax.CallOption) (*GenerateAuditReportOperation, error) + GenerateAuditReportOperation(name string) *GenerateAuditReportOperation + ListAuditReports(context.Context, *auditmanagerpb.ListAuditReportsRequest, ...gax.CallOption) *AuditReportIterator + GetAuditReport(context.Context, *auditmanagerpb.GetAuditReportRequest, ...gax.CallOption) (*auditmanagerpb.AuditReport, error) + GetResourceEnrollmentStatus(context.Context, *auditmanagerpb.GetResourceEnrollmentStatusRequest, ...gax.CallOption) (*auditmanagerpb.ResourceEnrollmentStatus, error) + ListResourceEnrollmentStatuses(context.Context, *auditmanagerpb.ListResourceEnrollmentStatusesRequest, ...gax.CallOption) *ResourceEnrollmentStatusIterator + ListControls(context.Context, *auditmanagerpb.ListControlsRequest, ...gax.CallOption) *ControlIterator + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator +} + +// Client is a client for interacting with Audit Manager API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service describing handlers for resources +type Client struct { + // The internal transport-dependent client. + internalClient internalClient + + // The call options for this service. + CallOptions *CallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// Wrapper methods routed to the internal client. + +// 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.internalClient.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) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *Client) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// EnrollResource enrolls the customer resource(folder/project/organization) to the audit +// manager service by creating the audit managers Service Agent in customers +// workload and granting required permissions to the Service Agent. Please +// note that if enrollment request is made on the already enrolled workload +// then enrollment is executed overriding the existing set of destinations. +func (c *Client) EnrollResource(ctx context.Context, req *auditmanagerpb.EnrollResourceRequest, opts ...gax.CallOption) (*auditmanagerpb.Enrollment, error) { + return c.internalClient.EnrollResource(ctx, req, opts...) +} + +// GenerateAuditScopeReport generates a demo report highlighting different responsibilities +// (Google/Customer/ shared) required to be fulfilled for the customer’s +// workload to be compliant with the given standard. +func (c *Client) GenerateAuditScopeReport(ctx context.Context, req *auditmanagerpb.GenerateAuditScopeReportRequest, opts ...gax.CallOption) (*auditmanagerpb.AuditScopeReport, error) { + return c.internalClient.GenerateAuditScopeReport(ctx, req, opts...) +} + +// GenerateAuditReport register the Audit Report generation requests and returns the OperationId +// using which the customer can track the report generation progress. +func (c *Client) GenerateAuditReport(ctx context.Context, req *auditmanagerpb.GenerateAuditReportRequest, opts ...gax.CallOption) (*GenerateAuditReportOperation, error) { + return c.internalClient.GenerateAuditReport(ctx, req, opts...) +} + +// GenerateAuditReportOperation returns a new GenerateAuditReportOperation from a given name. +// The name must be that of a previously created GenerateAuditReportOperation, possibly from a different process. +func (c *Client) GenerateAuditReportOperation(name string) *GenerateAuditReportOperation { + return c.internalClient.GenerateAuditReportOperation(name) +} + +// ListAuditReports lists audit reports in the selected parent scope +func (c *Client) ListAuditReports(ctx context.Context, req *auditmanagerpb.ListAuditReportsRequest, opts ...gax.CallOption) *AuditReportIterator { + return c.internalClient.ListAuditReports(ctx, req, opts...) +} + +// GetAuditReport get the overall audit report +func (c *Client) GetAuditReport(ctx context.Context, req *auditmanagerpb.GetAuditReportRequest, opts ...gax.CallOption) (*auditmanagerpb.AuditReport, error) { + return c.internalClient.GetAuditReport(ctx, req, opts...) +} + +// GetResourceEnrollmentStatus get a resource along with its enrollment status. +func (c *Client) GetResourceEnrollmentStatus(ctx context.Context, req *auditmanagerpb.GetResourceEnrollmentStatusRequest, opts ...gax.CallOption) (*auditmanagerpb.ResourceEnrollmentStatus, error) { + return c.internalClient.GetResourceEnrollmentStatus(ctx, req, opts...) +} + +// ListResourceEnrollmentStatuses fetches all resources under the parent along with their enrollment. +func (c *Client) ListResourceEnrollmentStatuses(ctx context.Context, req *auditmanagerpb.ListResourceEnrollmentStatusesRequest, opts ...gax.CallOption) *ResourceEnrollmentStatusIterator { + return c.internalClient.ListResourceEnrollmentStatuses(ctx, req, opts...) +} + +// ListControls gets controls needed to be implemented to be compliant to a standard. +func (c *Client) ListControls(ctx context.Context, req *auditmanagerpb.ListControlsRequest, opts ...gax.CallOption) *ControlIterator { + return c.internalClient.ListControls(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *Client) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +// This method can be called in two ways: +// +// List all public locations: Use the path GET /v1/locations. +// +// List project-visible locations: Use the path +// GET /v1/projects/{project_id}/locations. This may include public +// locations as well as private or other locations specifically visible +// to the project. +func (c *Client) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *Client) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *Client) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *Client) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *Client) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// gRPCClient is a client for interacting with Audit Manager API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type gRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing Client + CallOptions **CallOptions + + // The gRPC API client. + client auditmanagerpb.AuditManagerClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string + + logger *slog.Logger +} + +// NewClient creates a new audit manager client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service describing handlers for resources +func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { + clientOpts := defaultGRPCClientOptions() + if newClientHook != nil { + hookOpts, err := newClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := Client{CallOptions: defaultCallOptions()} + + c := &gRPCClient{ + connPool: connPool, + client: auditmanagerpb.NewAuditManagerClient(connPool), + CallOptions: &client.CallOptions, + logger: internaloption.GetLogger(opts), + operationsClient: longrunningpb.NewOperationsClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.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 + } + c.LROClient = &client.LROClient + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *gRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// 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 *gRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version, "pb", protoVersion) + c.xGoogHeaders = []string{ + "x-goog-api-client", gax.XGoogHeader(kv...), + } +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *gRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type restClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing Client + CallOptions **CallOptions + + logger *slog.Logger +} + +// NewRESTClient creates a new audit manager rest client. +// +// Service describing handlers for resources +func NewRESTClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { + clientOpts := append(defaultRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultRESTCallOptions() + c := &restClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + logger: internaloption.GetLogger(opts), + } + c.setGoogleClientInfo() + + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + + return &Client{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://auditmanager.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://auditmanager.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://auditmanager.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://auditmanager.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableNewAuthLibrary(), + } +} + +// 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 *restClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN", "pb", protoVersion) + c.xGoogHeaders = []string{ + "x-goog-api-client", gax.XGoogHeader(kv...), + } +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *restClient) Close() error { + // Replace httpClient with nil to force cleanup. + c.httpClient = nil + return nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: This method always returns nil. +func (c *restClient) Connection() *grpc.ClientConn { + return nil +} +func (c *gRPCClient) EnrollResource(ctx context.Context, req *auditmanagerpb.EnrollResourceRequest, opts ...gax.CallOption) (*auditmanagerpb.Enrollment, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "scope", url.QueryEscape(req.GetScope()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).EnrollResource[0:len((*c.CallOptions).EnrollResource):len((*c.CallOptions).EnrollResource)], opts...) + var resp *auditmanagerpb.Enrollment + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.EnrollResource, req, settings.GRPC, c.logger, "EnrollResource") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) GenerateAuditScopeReport(ctx context.Context, req *auditmanagerpb.GenerateAuditScopeReportRequest, opts ...gax.CallOption) (*auditmanagerpb.AuditScopeReport, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "scope", url.QueryEscape(req.GetScope()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GenerateAuditScopeReport[0:len((*c.CallOptions).GenerateAuditScopeReport):len((*c.CallOptions).GenerateAuditScopeReport)], opts...) + var resp *auditmanagerpb.AuditScopeReport + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.GenerateAuditScopeReport, req, settings.GRPC, c.logger, "GenerateAuditScopeReport") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) GenerateAuditReport(ctx context.Context, req *auditmanagerpb.GenerateAuditReportRequest, opts ...gax.CallOption) (*GenerateAuditReportOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "scope", url.QueryEscape(req.GetScope()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GenerateAuditReport[0:len((*c.CallOptions).GenerateAuditReport):len((*c.CallOptions).GenerateAuditReport)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.GenerateAuditReport, req, settings.GRPC, c.logger, "GenerateAuditReport") + return err + }, opts...) + if err != nil { + return nil, err + } + return &GenerateAuditReportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ListAuditReports(ctx context.Context, req *auditmanagerpb.ListAuditReportsRequest, opts ...gax.CallOption) *AuditReportIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListAuditReports[0:len((*c.CallOptions).ListAuditReports):len((*c.CallOptions).ListAuditReports)], opts...) + it := &AuditReportIterator{} + req = proto.Clone(req).(*auditmanagerpb.ListAuditReportsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*auditmanagerpb.AuditReport, string, error) { + resp := &auditmanagerpb.ListAuditReportsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.ListAuditReports, req, settings.GRPC, c.logger, "ListAuditReports") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetAuditReports(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) GetAuditReport(ctx context.Context, req *auditmanagerpb.GetAuditReportRequest, opts ...gax.CallOption) (*auditmanagerpb.AuditReport, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetAuditReport[0:len((*c.CallOptions).GetAuditReport):len((*c.CallOptions).GetAuditReport)], opts...) + var resp *auditmanagerpb.AuditReport + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.GetAuditReport, req, settings.GRPC, c.logger, "GetAuditReport") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) GetResourceEnrollmentStatus(ctx context.Context, req *auditmanagerpb.GetResourceEnrollmentStatusRequest, opts ...gax.CallOption) (*auditmanagerpb.ResourceEnrollmentStatus, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetResourceEnrollmentStatus[0:len((*c.CallOptions).GetResourceEnrollmentStatus):len((*c.CallOptions).GetResourceEnrollmentStatus)], opts...) + var resp *auditmanagerpb.ResourceEnrollmentStatus + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.GetResourceEnrollmentStatus, req, settings.GRPC, c.logger, "GetResourceEnrollmentStatus") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) ListResourceEnrollmentStatuses(ctx context.Context, req *auditmanagerpb.ListResourceEnrollmentStatusesRequest, opts ...gax.CallOption) *ResourceEnrollmentStatusIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListResourceEnrollmentStatuses[0:len((*c.CallOptions).ListResourceEnrollmentStatuses):len((*c.CallOptions).ListResourceEnrollmentStatuses)], opts...) + it := &ResourceEnrollmentStatusIterator{} + req = proto.Clone(req).(*auditmanagerpb.ListResourceEnrollmentStatusesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*auditmanagerpb.ResourceEnrollmentStatus, string, error) { + resp := &auditmanagerpb.ListResourceEnrollmentStatusesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.ListResourceEnrollmentStatuses, req, settings.GRPC, c.logger, "ListResourceEnrollmentStatuses") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetResourceEnrollmentStatuses(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) ListControls(ctx context.Context, req *auditmanagerpb.ListControlsRequest, opts ...gax.CallOption) *ControlIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListControls[0:len((*c.CallOptions).ListControls):len((*c.CallOptions).ListControls)], opts...) + it := &ControlIterator{} + req = proto.Clone(req).(*auditmanagerpb.ListControlsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*auditmanagerpb.Control, string, error) { + resp := &auditmanagerpb.ListControlsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.ListControls, req, settings.GRPC, c.logger, "ListControls") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetControls(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + var resp *locationpb.Location + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.locationsClient.GetLocation, req, settings.GRPC, c.logger, "GetLocation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.locationsClient.ListLocations, req, settings.GRPC, c.logger, "ListLocations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.CancelOperation, req, settings.GRPC, c.logger, "CancelOperation") + return err + }, opts...) + return err +} + +func (c *gRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.DeleteOperation, req, settings.GRPC, c.logger, "DeleteOperation") + return err + }, opts...) + return err +} + +func (c *gRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.GetOperation, req, settings.GRPC, c.logger, "GetOperation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.ListOperations, req, settings.GRPC, c.logger, "ListOperations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// EnrollResource enrolls the customer resource(folder/project/organization) to the audit +// manager service by creating the audit managers Service Agent in customers +// workload and granting required permissions to the Service Agent. Please +// note that if enrollment request is made on the already enrolled workload +// then enrollment is executed overriding the existing set of destinations. +func (c *restClient) EnrollResource(ctx context.Context, req *auditmanagerpb.EnrollResourceRequest, opts ...gax.CallOption) (*auditmanagerpb.Enrollment, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:enrollResource", req.GetScope()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "scope", url.QueryEscape(req.GetScope()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).EnrollResource[0:len((*c.CallOptions).EnrollResource):len((*c.CallOptions).EnrollResource)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &auditmanagerpb.Enrollment{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, jsonReq, "EnrollResource") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// GenerateAuditScopeReport generates a demo report highlighting different responsibilities +// (Google/Customer/ shared) required to be fulfilled for the customer’s +// workload to be compliant with the given standard. +func (c *restClient) GenerateAuditScopeReport(ctx context.Context, req *auditmanagerpb.GenerateAuditScopeReportRequest, opts ...gax.CallOption) (*auditmanagerpb.AuditScopeReport, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/auditScopeReports:generate", req.GetScope()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "scope", url.QueryEscape(req.GetScope()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GenerateAuditScopeReport[0:len((*c.CallOptions).GenerateAuditScopeReport):len((*c.CallOptions).GenerateAuditScopeReport)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &auditmanagerpb.AuditScopeReport{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, jsonReq, "GenerateAuditScopeReport") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// GenerateAuditReport register the Audit Report generation requests and returns the OperationId +// using which the customer can track the report generation progress. +func (c *restClient) GenerateAuditReport(ctx context.Context, req *auditmanagerpb.GenerateAuditReportRequest, opts ...gax.CallOption) (*GenerateAuditReportOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/auditReports:generate", req.GetScope()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "scope", url.QueryEscape(req.GetScope()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, jsonReq, "GenerateAuditReport") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &GenerateAuditReportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListAuditReports lists audit reports in the selected parent scope +func (c *restClient) ListAuditReports(ctx context.Context, req *auditmanagerpb.ListAuditReportsRequest, opts ...gax.CallOption) *AuditReportIterator { + it := &AuditReportIterator{} + req = proto.Clone(req).(*auditmanagerpb.ListAuditReportsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*auditmanagerpb.AuditReport, string, error) { + resp := &auditmanagerpb.ListAuditReportsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/auditReports", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListAuditReports") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetAuditReports(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetAuditReport get the overall audit report +func (c *restClient) GetAuditReport(ctx context.Context, req *auditmanagerpb.GetAuditReportRequest, opts ...gax.CallOption) (*auditmanagerpb.AuditReport, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetAuditReport[0:len((*c.CallOptions).GetAuditReport):len((*c.CallOptions).GetAuditReport)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &auditmanagerpb.AuditReport{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "GetAuditReport") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// GetResourceEnrollmentStatus get a resource along with its enrollment status. +func (c *restClient) GetResourceEnrollmentStatus(ctx context.Context, req *auditmanagerpb.GetResourceEnrollmentStatusRequest, opts ...gax.CallOption) (*auditmanagerpb.ResourceEnrollmentStatus, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetResourceEnrollmentStatus[0:len((*c.CallOptions).GetResourceEnrollmentStatus):len((*c.CallOptions).GetResourceEnrollmentStatus)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &auditmanagerpb.ResourceEnrollmentStatus{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "GetResourceEnrollmentStatus") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListResourceEnrollmentStatuses fetches all resources under the parent along with their enrollment. +func (c *restClient) ListResourceEnrollmentStatuses(ctx context.Context, req *auditmanagerpb.ListResourceEnrollmentStatusesRequest, opts ...gax.CallOption) *ResourceEnrollmentStatusIterator { + it := &ResourceEnrollmentStatusIterator{} + req = proto.Clone(req).(*auditmanagerpb.ListResourceEnrollmentStatusesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*auditmanagerpb.ResourceEnrollmentStatus, string, error) { + resp := &auditmanagerpb.ListResourceEnrollmentStatusesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/resourceEnrollmentStatuses", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListResourceEnrollmentStatuses") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetResourceEnrollmentStatuses(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// ListControls gets controls needed to be implemented to be compliant to a standard. +func (c *restClient) ListControls(ctx context.Context, req *auditmanagerpb.ListControlsRequest, opts ...gax.CallOption) *ControlIterator { + it := &ControlIterator{} + req = proto.Clone(req).(*auditmanagerpb.ListControlsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*auditmanagerpb.Control, string, error) { + resp := &auditmanagerpb.ListControlsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/controls", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListControls") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetControls(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetLocation gets information about a location. +func (c *restClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &locationpb.Location{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "GetLocation") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListLocations lists information about the supported locations for this service. +// This method can be called in two ways: +// +// List all public locations: Use the path GET /v1/locations. +// +// List project-visible locations: Use the path +// GET /v1/projects/{project_id}/locations. This may include public +// locations as well as private or other locations specifically visible +// to the project. +func (c *restClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/locations", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListLocations") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *restClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:cancel", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + _, err = executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, jsonReq, "CancelOperation") + return err + }, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *restClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + _, err = executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "DeleteOperation") + return err + }, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *restClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "GetOperation") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *restClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/operations", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + if req.GetReturnPartialSuccess() { + params.Add("returnPartialSuccess", fmt.Sprintf("%v", req.GetReturnPartialSuccess())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListOperations") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), 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.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GenerateAuditReportOperation returns a new GenerateAuditReportOperation from a given name. +// The name must be that of a previously created GenerateAuditReportOperation, possibly from a different process. +func (c *gRPCClient) GenerateAuditReportOperation(name string) *GenerateAuditReportOperation { + return &GenerateAuditReportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// GenerateAuditReportOperation returns a new GenerateAuditReportOperation from a given name. +// The name must be that of a previously created GenerateAuditReportOperation, possibly from a different process. +func (c *restClient) GenerateAuditReportOperation(name string) *GenerateAuditReportOperation { + override := fmt.Sprintf("/v1/%s", name) + return &GenerateAuditReportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} diff --git a/auditmanager/apiv1/audit_manager_client_example_go123_test.go b/auditmanager/apiv1/audit_manager_client_example_go123_test.go new file mode 100644 index 000000000000..951af61d5bbe --- /dev/null +++ b/auditmanager/apiv1/audit_manager_client_example_go123_test.go @@ -0,0 +1,158 @@ +// Copyright 2026 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. + +//go:build go1.23 + +package auditmanager_test + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleClient_ListAuditReports_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.ListAuditReportsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#ListAuditReportsRequest. + } + for resp, err := range c.ListAuditReports(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListControls_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.ListControlsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#ListControlsRequest. + } + for resp, err := range c.ListControls(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListResourceEnrollmentStatuses_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.ListResourceEnrollmentStatusesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#ListResourceEnrollmentStatusesRequest. + } + for resp, err := range c.ListResourceEnrollmentStatuses(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListLocations_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + for resp, err := range c.ListLocations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListOperations_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + for resp, err := range c.ListOperations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} diff --git a/auditmanager/apiv1/audit_manager_client_example_test.go b/auditmanager/apiv1/audit_manager_client_example_test.go new file mode 100644 index 000000000000..e93e272558a7 --- /dev/null +++ b/auditmanager/apiv1/audit_manager_client_example_test.go @@ -0,0 +1,472 @@ +// Copyright 2026 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 auditmanager_test + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewRESTClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleClient_EnrollResource() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.EnrollResourceRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#EnrollResourceRequest. + } + resp, err := c.EnrollResource(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_GenerateAuditReport() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.GenerateAuditReportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#GenerateAuditReportRequest. + } + op, err := c.GenerateAuditReport(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_GenerateAuditScopeReport() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.GenerateAuditScopeReportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#GenerateAuditScopeReportRequest. + } + resp, err := c.GenerateAuditScopeReport(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_GetAuditReport() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.GetAuditReportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#GetAuditReportRequest. + } + resp, err := c.GetAuditReport(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_GetResourceEnrollmentStatus() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.GetResourceEnrollmentStatusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#GetResourceEnrollmentStatusRequest. + } + resp, err := c.GetResourceEnrollmentStatus(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListAuditReports() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.ListAuditReportsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#ListAuditReportsRequest. + } + it := c.ListAuditReports(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*auditmanagerpb.ListAuditReportsResponse) + } +} + +func ExampleClient_ListControls() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.ListControlsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#ListControlsRequest. + } + it := c.ListControls(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*auditmanagerpb.ListControlsResponse) + } +} + +func ExampleClient_ListResourceEnrollmentStatuses() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.ListResourceEnrollmentStatusesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#ListResourceEnrollmentStatusesRequest. + } + it := c.ListResourceEnrollmentStatuses(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*auditmanagerpb.ListResourceEnrollmentStatusesResponse) + } +} + +func ExampleClient_GetLocation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListLocations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*locationpb.ListLocationsResponse) + } +} + +func ExampleClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} diff --git a/auditmanager/apiv1/auxiliary.go b/auditmanager/apiv1/auxiliary.go new file mode 100644 index 000000000000..0c9a8fb94462 --- /dev/null +++ b/auditmanager/apiv1/auxiliary.go @@ -0,0 +1,328 @@ +// Copyright 2026 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 auditmanager + +import ( + "context" + "time" + + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" + "cloud.google.com/go/longrunning" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +// GenerateAuditReportOperation manages a long-running operation from GenerateAuditReport. +type GenerateAuditReportOperation struct { + lro *longrunning.Operation + pollPath string +} + +// 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 *GenerateAuditReportOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*auditmanagerpb.AuditReport, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp auditmanagerpb.AuditReport + 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 *GenerateAuditReportOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*auditmanagerpb.AuditReport, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp auditmanagerpb.AuditReport + 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 *GenerateAuditReportOperation) Metadata() (*auditmanagerpb.OperationMetadata, error) { + var meta auditmanagerpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *GenerateAuditReportOperation) 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 *GenerateAuditReportOperation) Name() string { + return op.lro.Name() +} + +// AuditReportIterator manages a stream of *auditmanagerpb.AuditReport. +type AuditReportIterator struct { + items []*auditmanagerpb.AuditReport + 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 []*auditmanagerpb.AuditReport, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *AuditReportIterator) 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 *AuditReportIterator) Next() (*auditmanagerpb.AuditReport, error) { + var item *auditmanagerpb.AuditReport + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *AuditReportIterator) bufLen() int { + return len(it.items) +} + +func (it *AuditReportIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ControlIterator manages a stream of *auditmanagerpb.Control. +type ControlIterator struct { + items []*auditmanagerpb.Control + 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 []*auditmanagerpb.Control, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *ControlIterator) 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 *ControlIterator) Next() (*auditmanagerpb.Control, error) { + var item *auditmanagerpb.Control + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ControlIterator) bufLen() int { + return len(it.items) +} + +func (it *ControlIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// LocationIterator manages a stream of *locationpb.Location. +type LocationIterator struct { + items []*locationpb.Location + 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 []*locationpb.Location, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *LocationIterator) 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 *LocationIterator) Next() (*locationpb.Location, error) { + var item *locationpb.Location + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *LocationIterator) bufLen() int { + return len(it.items) +} + +func (it *LocationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// OperationIterator manages a stream of *longrunningpb.Operation. +type OperationIterator struct { + items []*longrunningpb.Operation + 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 []*longrunningpb.Operation, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *OperationIterator) 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 *OperationIterator) Next() (*longrunningpb.Operation, error) { + var item *longrunningpb.Operation + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *OperationIterator) bufLen() int { + return len(it.items) +} + +func (it *OperationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ResourceEnrollmentStatusIterator manages a stream of *auditmanagerpb.ResourceEnrollmentStatus. +type ResourceEnrollmentStatusIterator struct { + items []*auditmanagerpb.ResourceEnrollmentStatus + 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 []*auditmanagerpb.ResourceEnrollmentStatus, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *ResourceEnrollmentStatusIterator) 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 *ResourceEnrollmentStatusIterator) Next() (*auditmanagerpb.ResourceEnrollmentStatus, error) { + var item *auditmanagerpb.ResourceEnrollmentStatus + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ResourceEnrollmentStatusIterator) bufLen() int { + return len(it.items) +} + +func (it *ResourceEnrollmentStatusIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/auditmanager/apiv1/auxiliary_go123.go b/auditmanager/apiv1/auxiliary_go123.go new file mode 100644 index 000000000000..7a1c56ec7775 --- /dev/null +++ b/auditmanager/apiv1/auxiliary_go123.go @@ -0,0 +1,58 @@ +// Copyright 2026 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. + +//go:build go1.23 + +package auditmanager + +import ( + "iter" + + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "github.com/googleapis/gax-go/v2/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *AuditReportIterator) All() iter.Seq2[*auditmanagerpb.AuditReport, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *ControlIterator) All() iter.Seq2[*auditmanagerpb.Control, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *LocationIterator) All() iter.Seq2[*locationpb.Location, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *OperationIterator) All() iter.Seq2[*longrunningpb.Operation, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *ResourceEnrollmentStatusIterator) All() iter.Seq2[*auditmanagerpb.ResourceEnrollmentStatus, error] { + return iterator.RangeAdapter(it.Next) +} diff --git a/auditmanager/apiv1/doc.go b/auditmanager/apiv1/doc.go new file mode 100644 index 000000000000..29d0f3c50ce0 --- /dev/null +++ b/auditmanager/apiv1/doc.go @@ -0,0 +1,83 @@ +// Copyright 2026 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 auditmanager is an auto-generated package for the +// Audit Manager API. +// +// NOTE: This package is in beta. It is not stable, and may be subject to changes. +// +// # General documentation +// +// For information that is relevant for all client libraries please reference +// https://pkg.go.dev/cloud.google.com/go#pkg-overview. Some information on this +// page includes: +// +// - [Authentication and Authorization] +// - [Timeouts and Cancellation] +// - [Testing against Client Libraries] +// - [Debugging Client Libraries] +// - [Inspecting errors] +// +// # Example usage +// +// To get started with this package, create a client. +// +// // go get cloud.google.com/go/auditmanager/apiv1@latest +// ctx := context.Background() +// // This snippet has been automatically generated and should be regarded as a code template only. +// // It will require modifications to work: +// // - It may require correct/in-range values for request initialization. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := auditmanager.NewClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// The client will use your default application credentials. Clients should be reused instead of created as needed. +// The methods of Client are safe for concurrent use by multiple goroutines. +// The returned client must be Closed when it is done being used. +// +// # Using the Client +// +// The following is an example of making an API call with the newly created client, mentioned above. +// +// req := &auditmanagerpb.EnrollResourceRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#EnrollResourceRequest. +// } +// resp, err := c.EnrollResource(ctx, req) +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// # 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. +// +// [Authentication and Authorization]: https://pkg.go.dev/cloud.google.com/go#hdr-Authentication_and_Authorization +// [Timeouts and Cancellation]: https://pkg.go.dev/cloud.google.com/go#hdr-Timeouts_and_Cancellation +// [Testing against Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Testing +// [Debugging Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Debugging +// [Inspecting errors]: https://pkg.go.dev/cloud.google.com/go#hdr-Inspecting_errors +package auditmanager // import "cloud.google.com/go/auditmanager/apiv1" diff --git a/auditmanager/apiv1/gapic_metadata.json b/auditmanager/apiv1/gapic_metadata.json new file mode 100644 index 000000000000..3c2897af8a68 --- /dev/null +++ b/auditmanager/apiv1/gapic_metadata.json @@ -0,0 +1,163 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods.", + "language": "go", + "protoPackage": "google.cloud.auditmanager.v1", + "libraryPackage": "cloud.google.com/go/auditmanager/apiv1", + "services": { + "AuditManager": { + "clients": { + "grpc": { + "libraryClient": "Client", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "EnrollResource": { + "methods": [ + "EnrollResource" + ] + }, + "GenerateAuditReport": { + "methods": [ + "GenerateAuditReport" + ] + }, + "GenerateAuditScopeReport": { + "methods": [ + "GenerateAuditScopeReport" + ] + }, + "GetAuditReport": { + "methods": [ + "GetAuditReport" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetResourceEnrollmentStatus": { + "methods": [ + "GetResourceEnrollmentStatus" + ] + }, + "ListAuditReports": { + "methods": [ + "ListAuditReports" + ] + }, + "ListControls": { + "methods": [ + "ListControls" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListResourceEnrollmentStatuses": { + "methods": [ + "ListResourceEnrollmentStatuses" + ] + } + } + }, + "rest": { + "libraryClient": "Client", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "EnrollResource": { + "methods": [ + "EnrollResource" + ] + }, + "GenerateAuditReport": { + "methods": [ + "GenerateAuditReport" + ] + }, + "GenerateAuditScopeReport": { + "methods": [ + "GenerateAuditScopeReport" + ] + }, + "GetAuditReport": { + "methods": [ + "GetAuditReport" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetResourceEnrollmentStatus": { + "methods": [ + "GetResourceEnrollmentStatus" + ] + }, + "ListAuditReports": { + "methods": [ + "ListAuditReports" + ] + }, + "ListControls": { + "methods": [ + "ListControls" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListResourceEnrollmentStatuses": { + "methods": [ + "ListResourceEnrollmentStatuses" + ] + } + } + } + } + } + } +} diff --git a/auditmanager/apiv1/helpers.go b/auditmanager/apiv1/helpers.go new file mode 100644 index 000000000000..241202351b16 --- /dev/null +++ b/auditmanager/apiv1/helpers.go @@ -0,0 +1,105 @@ +// Copyright 2026 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 auditmanager + +import ( + "context" + "fmt" + "io" + "log/slog" + "net/http" + + "github.com/googleapis/gax-go/v2/internallog" + "github.com/googleapis/gax-go/v2/internallog/grpclog" + "google.golang.org/api/googleapi" + "google.golang.org/api/option" + "google.golang.org/grpc" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/runtime/protoimpl" +) + +const serviceName = "auditmanager.googleapis.com" + +var protoVersion = fmt.Sprintf("1.%d", protoimpl.MaxVersion) + +// For more information on implementing a client constructor hook, see +// https://github.com/googleapis/google-cloud-go/wiki/Customizing-constructors. +type clientHookParams struct{} +type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) + +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} + +// 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", + } +} + +func executeHTTPRequestWithResponse(ctx context.Context, client *http.Client, req *http.Request, logger *slog.Logger, body []byte, rpc string) ([]byte, *http.Response, error) { + logger.DebugContext(ctx, "api request", "serviceName", serviceName, "rpcName", rpc, "request", internallog.HTTPRequest(req, body)) + resp, err := client.Do(req) + if err != nil { + return nil, nil, err + } + defer resp.Body.Close() + buf, err := io.ReadAll(resp.Body) + if err != nil { + return nil, nil, err + } + logger.DebugContext(ctx, "api response", "serviceName", serviceName, "rpcName", rpc, "response", internallog.HTTPResponse(resp, buf)) + if err = googleapi.CheckResponseWithBody(resp, buf); err != nil { + return nil, nil, err + } + return buf, resp, nil +} + +func executeHTTPRequest(ctx context.Context, client *http.Client, req *http.Request, logger *slog.Logger, body []byte, rpc string) ([]byte, error) { + buf, _, err := executeHTTPRequestWithResponse(ctx, client, req, logger, body, rpc) + return buf, err +} + +func executeStreamingHTTPRequest(ctx context.Context, client *http.Client, req *http.Request, logger *slog.Logger, body []byte, rpc string) (*http.Response, error) { + logger.DebugContext(ctx, "api request", "serviceName", serviceName, "rpcName", rpc, "request", internallog.HTTPRequest(req, body)) + resp, err := client.Do(req) + if err != nil { + return nil, err + } + logger.DebugContext(ctx, "api response", "serviceName", serviceName, "rpcName", rpc, "response", internallog.HTTPResponse(resp, nil)) + if err = googleapi.CheckResponse(resp); err != nil { + return nil, err + } + return resp, nil +} + +func executeRPC[I proto.Message, O proto.Message](ctx context.Context, fn func(context.Context, I, ...grpc.CallOption) (O, error), req I, opts []grpc.CallOption, logger *slog.Logger, rpc string) (O, error) { + var zero O + logger.DebugContext(ctx, "api request", "serviceName", serviceName, "rpcName", rpc, "request", grpclog.ProtoMessageRequest(ctx, req)) + resp, err := fn(ctx, req, opts...) + if err != nil { + return zero, err + } + logger.DebugContext(ctx, "api response", "serviceName", serviceName, "rpcName", rpc, "response", grpclog.ProtoMessageResponse(resp)) + return resp, err +} diff --git a/auditmanager/apiv1/version.go b/auditmanager/apiv1/version.go new file mode 100644 index 000000000000..03ed84ee3f22 --- /dev/null +++ b/auditmanager/apiv1/version.go @@ -0,0 +1,23 @@ +// Copyright 2026 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 +// +// http://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 gapicgen. DO NOT EDIT. + +package auditmanager + +import "cloud.google.com/go/auditmanager/internal" + +func init() { + versionClient = internal.Version +} diff --git a/auditmanager/apiv1main/auditmanagerpb/auditmanager.pb.go b/auditmanager/apiv1main/auditmanagerpb/auditmanager.pb.go new file mode 100644 index 000000000000..37c80df8f8c2 --- /dev/null +++ b/auditmanager/apiv1main/auditmanagerpb/auditmanager.pb.go @@ -0,0 +1,3168 @@ +// Copyright 2026 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 +// +// http://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. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc v4.25.7 +// source: google/cloud/auditmanager/v1/auditmanager.proto + +package auditmanagerpb + +import ( + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The different execution states of the Audit Manager service. +type OperationState int32 + +const ( + // Unspecified. Invalid state. + OperationState_OPERATION_STATE_UNSPECIFIED OperationState = 0 + // Audit report generation process has not started. + OperationState_OPERATION_STATE_NOT_STARTED OperationState = 10 + // Audit Manager is currently evaluating the workloads against specific + // standard. + OperationState_OPERATION_STATE_EVALUATION_IN_PROGRESS OperationState = 20 + // Audit Manager has completed Evaluation for the workload. + OperationState_OPERATION_STATE_EVALUATION_DONE OperationState = 21 + // Audit Manager is creating audit report from the evaluated data. + OperationState_OPERATION_STATE_EVIDENCE_REPORT_GENERATION_IN_PROGRESS OperationState = 30 + // Audit Manager has completed generation of the audit report. + OperationState_OPERATION_STATE_EVIDENCE_REPORT_GENERATION_DONE OperationState = 31 + // Audit Manager is uploading the audit report and evidences to the customer + // provided destination. + OperationState_OPERATION_STATE_EVIDENCE_UPLOAD_IN_PROGRESS OperationState = 40 + // Audit report generation process is completed. + OperationState_OPERATION_STATE_DONE OperationState = 50 + // Audit report generation process has failed. + OperationState_OPERATION_STATE_FAILED OperationState = 60 +) + +// Enum value maps for OperationState. +var ( + OperationState_name = map[int32]string{ + 0: "OPERATION_STATE_UNSPECIFIED", + 10: "OPERATION_STATE_NOT_STARTED", + 20: "OPERATION_STATE_EVALUATION_IN_PROGRESS", + 21: "OPERATION_STATE_EVALUATION_DONE", + 30: "OPERATION_STATE_EVIDENCE_REPORT_GENERATION_IN_PROGRESS", + 31: "OPERATION_STATE_EVIDENCE_REPORT_GENERATION_DONE", + 40: "OPERATION_STATE_EVIDENCE_UPLOAD_IN_PROGRESS", + 50: "OPERATION_STATE_DONE", + 60: "OPERATION_STATE_FAILED", + } + OperationState_value = map[string]int32{ + "OPERATION_STATE_UNSPECIFIED": 0, + "OPERATION_STATE_NOT_STARTED": 10, + "OPERATION_STATE_EVALUATION_IN_PROGRESS": 20, + "OPERATION_STATE_EVALUATION_DONE": 21, + "OPERATION_STATE_EVIDENCE_REPORT_GENERATION_IN_PROGRESS": 30, + "OPERATION_STATE_EVIDENCE_REPORT_GENERATION_DONE": 31, + "OPERATION_STATE_EVIDENCE_UPLOAD_IN_PROGRESS": 40, + "OPERATION_STATE_DONE": 50, + "OPERATION_STATE_FAILED": 60, + } +) + +func (x OperationState) Enum() *OperationState { + p := new(OperationState) + *p = x + return p +} + +func (x OperationState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OperationState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[0].Descriptor() +} + +func (OperationState) Type() protoreflect.EnumType { + return &file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[0] +} + +func (x OperationState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OperationState.Descriptor instead. +func (OperationState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{0} +} + +// The compliance state after evaluation. +type ComplianceState int32 + +const ( + // Unspecified. Invalid state. + ComplianceState_COMPLIANCE_STATE_UNSPECIFIED ComplianceState = 0 + // Compliant. + ComplianceState_COMPLIANT ComplianceState = 1 + // Violation. + ComplianceState_VIOLATION ComplianceState = 2 + // MANUAL_REVIEW_NEEDED, requires manual review + ComplianceState_MANUAL_REVIEW_NEEDED ComplianceState = 3 + // Error while computing status. + ComplianceState_ERROR ComplianceState = 4 + // Cannot be audited + ComplianceState_AUDIT_NOT_SUPPORTED ComplianceState = 5 +) + +// Enum value maps for ComplianceState. +var ( + ComplianceState_name = map[int32]string{ + 0: "COMPLIANCE_STATE_UNSPECIFIED", + 1: "COMPLIANT", + 2: "VIOLATION", + 3: "MANUAL_REVIEW_NEEDED", + 4: "ERROR", + 5: "AUDIT_NOT_SUPPORTED", + } + ComplianceState_value = map[string]int32{ + "COMPLIANCE_STATE_UNSPECIFIED": 0, + "COMPLIANT": 1, + "VIOLATION": 2, + "MANUAL_REVIEW_NEEDED": 3, + "ERROR": 4, + "AUDIT_NOT_SUPPORTED": 5, + } +) + +func (x ComplianceState) Enum() *ComplianceState { + p := new(ComplianceState) + *p = x + return p +} + +func (x ComplianceState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ComplianceState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[1].Descriptor() +} + +func (ComplianceState) Type() protoreflect.EnumType { + return &file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[1] +} + +func (x ComplianceState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ComplianceState.Descriptor instead. +func (ComplianceState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{1} +} + +// The options for the audit scope report format. +type GenerateAuditScopeReportRequest_AuditScopeReportFormat int32 + +const ( + // Unspecified. Invalid format. + GenerateAuditScopeReportRequest_AUDIT_SCOPE_REPORT_FORMAT_UNSPECIFIED GenerateAuditScopeReportRequest_AuditScopeReportFormat = 0 + // Audit Scope Report creation format is Open Document. + GenerateAuditScopeReportRequest_AUDIT_SCOPE_REPORT_FORMAT_ODF GenerateAuditScopeReportRequest_AuditScopeReportFormat = 1 +) + +// Enum value maps for GenerateAuditScopeReportRequest_AuditScopeReportFormat. +var ( + GenerateAuditScopeReportRequest_AuditScopeReportFormat_name = map[int32]string{ + 0: "AUDIT_SCOPE_REPORT_FORMAT_UNSPECIFIED", + 1: "AUDIT_SCOPE_REPORT_FORMAT_ODF", + } + GenerateAuditScopeReportRequest_AuditScopeReportFormat_value = map[string]int32{ + "AUDIT_SCOPE_REPORT_FORMAT_UNSPECIFIED": 0, + "AUDIT_SCOPE_REPORT_FORMAT_ODF": 1, + } +) + +func (x GenerateAuditScopeReportRequest_AuditScopeReportFormat) Enum() *GenerateAuditScopeReportRequest_AuditScopeReportFormat { + p := new(GenerateAuditScopeReportRequest_AuditScopeReportFormat) + *p = x + return p +} + +func (x GenerateAuditScopeReportRequest_AuditScopeReportFormat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GenerateAuditScopeReportRequest_AuditScopeReportFormat) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[2].Descriptor() +} + +func (GenerateAuditScopeReportRequest_AuditScopeReportFormat) Type() protoreflect.EnumType { + return &file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[2] +} + +func (x GenerateAuditScopeReportRequest_AuditScopeReportFormat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GenerateAuditScopeReportRequest_AuditScopeReportFormat.Descriptor instead. +func (GenerateAuditScopeReportRequest_AuditScopeReportFormat) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{1, 0} +} + +// The options for the audit report format. +type GenerateAuditReportRequest_AuditReportFormat int32 + +const ( + // Unspecified. Invalid state. + GenerateAuditReportRequest_AUDIT_REPORT_FORMAT_UNSPECIFIED GenerateAuditReportRequest_AuditReportFormat = 0 + // Audit Report creation format is Open Document. + GenerateAuditReportRequest_AUDIT_REPORT_FORMAT_ODF GenerateAuditReportRequest_AuditReportFormat = 1 +) + +// Enum value maps for GenerateAuditReportRequest_AuditReportFormat. +var ( + GenerateAuditReportRequest_AuditReportFormat_name = map[int32]string{ + 0: "AUDIT_REPORT_FORMAT_UNSPECIFIED", + 1: "AUDIT_REPORT_FORMAT_ODF", + } + GenerateAuditReportRequest_AuditReportFormat_value = map[string]int32{ + "AUDIT_REPORT_FORMAT_UNSPECIFIED": 0, + "AUDIT_REPORT_FORMAT_ODF": 1, + } +) + +func (x GenerateAuditReportRequest_AuditReportFormat) Enum() *GenerateAuditReportRequest_AuditReportFormat { + p := new(GenerateAuditReportRequest_AuditReportFormat) + *p = x + return p +} + +func (x GenerateAuditReportRequest_AuditReportFormat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GenerateAuditReportRequest_AuditReportFormat) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[3].Descriptor() +} + +func (GenerateAuditReportRequest_AuditReportFormat) Type() protoreflect.EnumType { + return &file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[3] +} + +func (x GenerateAuditReportRequest_AuditReportFormat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GenerateAuditReportRequest_AuditReportFormat.Descriptor instead. +func (GenerateAuditReportRequest_AuditReportFormat) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{2, 0} +} + +// The different enrollment states of a resource. +type ResourceEnrollmentStatus_ResourceEnrollmentState int32 + +const ( + // Unspecified. Invalid state. + ResourceEnrollmentStatus_RESOURCE_ENROLLMENT_STATE_UNSPECIFIED ResourceEnrollmentStatus_ResourceEnrollmentState = 0 + // Not enrolled. + ResourceEnrollmentStatus_NOT_ENROLLED ResourceEnrollmentStatus_ResourceEnrollmentState = 1 + // Resource is not enrolled but the parent is enrolled. + ResourceEnrollmentStatus_INHERITED ResourceEnrollmentStatus_ResourceEnrollmentState = 2 + // Enrolled. + ResourceEnrollmentStatus_ENROLLED ResourceEnrollmentStatus_ResourceEnrollmentState = 3 +) + +// Enum value maps for ResourceEnrollmentStatus_ResourceEnrollmentState. +var ( + ResourceEnrollmentStatus_ResourceEnrollmentState_name = map[int32]string{ + 0: "RESOURCE_ENROLLMENT_STATE_UNSPECIFIED", + 1: "NOT_ENROLLED", + 2: "INHERITED", + 3: "ENROLLED", + } + ResourceEnrollmentStatus_ResourceEnrollmentState_value = map[string]int32{ + "RESOURCE_ENROLLMENT_STATE_UNSPECIFIED": 0, + "NOT_ENROLLED": 1, + "INHERITED": 2, + "ENROLLED": 3, + } +) + +func (x ResourceEnrollmentStatus_ResourceEnrollmentState) Enum() *ResourceEnrollmentStatus_ResourceEnrollmentState { + p := new(ResourceEnrollmentStatus_ResourceEnrollmentState) + *p = x + return p +} + +func (x ResourceEnrollmentStatus_ResourceEnrollmentState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ResourceEnrollmentStatus_ResourceEnrollmentState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[4].Descriptor() +} + +func (ResourceEnrollmentStatus_ResourceEnrollmentState) Type() protoreflect.EnumType { + return &file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[4] +} + +func (x ResourceEnrollmentStatus_ResourceEnrollmentState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ResourceEnrollmentStatus_ResourceEnrollmentState.Descriptor instead. +func (ResourceEnrollmentStatus_ResourceEnrollmentState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{15, 0} +} + +// The different states of the Audit Manager report generation. +type AuditReport_ReportGenerationState int32 + +const ( + // Unspecified. Invalid state. + AuditReport_REPORT_GENERATION_STATE_UNSPECIFIED AuditReport_ReportGenerationState = 0 + // Audit report generation process is in progress, ie. operation state is + // neither OPERATION_STATE_DONE nor OPERATION_STATE_FAILED. + AuditReport_IN_PROGRESS AuditReport_ReportGenerationState = 1 + // Audit report generation process is completed. Operation state is + // OPERATION_STATE_DONE. + AuditReport_COMPLETED AuditReport_ReportGenerationState = 2 + // Audit report generation process has failed. Operation state is + // OPERATION_STATE_FAILED. + AuditReport_FAILED AuditReport_ReportGenerationState = 3 + // Audit report generation process has completed. But report summary is + // unknown. This is valid for older reports. + AuditReport_SUMMARY_UNKNOWN AuditReport_ReportGenerationState = 4 +) + +// Enum value maps for AuditReport_ReportGenerationState. +var ( + AuditReport_ReportGenerationState_name = map[int32]string{ + 0: "REPORT_GENERATION_STATE_UNSPECIFIED", + 1: "IN_PROGRESS", + 2: "COMPLETED", + 3: "FAILED", + 4: "SUMMARY_UNKNOWN", + } + AuditReport_ReportGenerationState_value = map[string]int32{ + "REPORT_GENERATION_STATE_UNSPECIFIED": 0, + "IN_PROGRESS": 1, + "COMPLETED": 2, + "FAILED": 3, + "SUMMARY_UNKNOWN": 4, + } +) + +func (x AuditReport_ReportGenerationState) Enum() *AuditReport_ReportGenerationState { + p := new(AuditReport_ReportGenerationState) + *p = x + return p +} + +func (x AuditReport_ReportGenerationState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AuditReport_ReportGenerationState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[5].Descriptor() +} + +func (AuditReport_ReportGenerationState) Type() protoreflect.EnumType { + return &file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[5] +} + +func (x AuditReport_ReportGenerationState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AuditReport_ReportGenerationState.Descriptor instead. +func (AuditReport_ReportGenerationState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{16, 0} +} + +// The family of the control. For example, Access Control. +type Control_Family int32 + +const ( + // Unspecified. Invalid state. + Control_FAMILY_UNSPECIFIED Control_Family = 0 + // Access Control + Control_AC Control_Family = 1 + // Awareness and Training + Control_AT Control_Family = 2 + // Audit and Accountability + Control_AU Control_Family = 3 + // Certification, Accreditation and Security Assessments + Control_CA Control_Family = 4 + // Configuration Management + Control_CM Control_Family = 5 + // Contingency Planning + Control_CP Control_Family = 6 + // Identification and Authentication + Control_IA Control_Family = 7 + // Incident Response + Control_IR Control_Family = 8 + // Maintenance + Control_MA Control_Family = 9 + // Media Protection + Control_MP Control_Family = 10 + // Physical and Environmental Protection + Control_PE Control_Family = 11 + // Security Planning + Control_PL Control_Family = 12 + // Personnel Security + Control_PS Control_Family = 13 + // Risk Assessment + Control_RA Control_Family = 14 + // System Services and Acquisition + Control_SA Control_Family = 15 + // System and Communications Protection + Control_SC Control_Family = 16 + // System and Information Integrity + Control_SI Control_Family = 17 + // Supply Chain Risk Management + Control_SR Control_Family = 18 +) + +// Enum value maps for Control_Family. +var ( + Control_Family_name = map[int32]string{ + 0: "FAMILY_UNSPECIFIED", + 1: "AC", + 2: "AT", + 3: "AU", + 4: "CA", + 5: "CM", + 6: "CP", + 7: "IA", + 8: "IR", + 9: "MA", + 10: "MP", + 11: "PE", + 12: "PL", + 13: "PS", + 14: "RA", + 15: "SA", + 16: "SC", + 17: "SI", + 18: "SR", + } + Control_Family_value = map[string]int32{ + "FAMILY_UNSPECIFIED": 0, + "AC": 1, + "AT": 2, + "AU": 3, + "CA": 4, + "CM": 5, + "CP": 6, + "IA": 7, + "IR": 8, + "MA": 9, + "MP": 10, + "PE": 11, + "PL": 12, + "PS": 13, + "RA": 14, + "SA": 15, + "SC": 16, + "SI": 17, + "SR": 18, + } +) + +func (x Control_Family) Enum() *Control_Family { + p := new(Control_Family) + *p = x + return p +} + +func (x Control_Family) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Control_Family) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[6].Descriptor() +} + +func (Control_Family) Type() protoreflect.EnumType { + return &file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes[6] +} + +func (x Control_Family) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Control_Family.Descriptor instead. +func (Control_Family) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{18, 0} +} + +// Request message to subscribe the Audit Manager service for given resource. +type EnrollResourceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource to be enrolled to the audit manager. Scope format + // should be resource_type/resource_identifier Eg: + // projects/{project}/locations/{location}, + // folders/{folder}/locations/{location} + // organizations/{organization}/locations/{location} + Scope string `protobuf:"bytes,1,opt,name=scope,proto3" json:"scope,omitempty"` + // Required. List of destination among which customer can choose to upload + // their reports during the audit process. While enrolling at a + // organization/folder level, customer can choose Cloud storage bucket in any + // project. If the audit is triggered at project level using the service agent + // at organization/folder level, all the destination options associated with + // respective organization/folder level service agent will be available to + // auditing projects. + Destinations []*EnrollResourceRequest_EligibleDestination `protobuf:"bytes,2,rep,name=destinations,proto3" json:"destinations,omitempty"` +} + +func (x *EnrollResourceRequest) Reset() { + *x = EnrollResourceRequest{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EnrollResourceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnrollResourceRequest) ProtoMessage() {} + +func (x *EnrollResourceRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnrollResourceRequest.ProtoReflect.Descriptor instead. +func (*EnrollResourceRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{0} +} + +func (x *EnrollResourceRequest) GetScope() string { + if x != nil { + return x.Scope + } + return "" +} + +func (x *EnrollResourceRequest) GetDestinations() []*EnrollResourceRequest_EligibleDestination { + if x != nil { + return x.Destinations + } + return nil +} + +// Message for requesting audit scope report. +type GenerateAuditScopeReportRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Scope for which the AuditScopeReport is required. Must be of + // format resource_type/resource_identifier Eg: + // projects/{project}/locations/{location}, + // folders/{folder}/locations/{location} + Scope string `protobuf:"bytes,2,opt,name=scope,proto3" json:"scope,omitempty"` + // Required. Compliance Standard against which the Scope Report must be + // generated. Eg: FEDRAMP_MODERATE + ComplianceStandard string `protobuf:"bytes,3,opt,name=compliance_standard,json=complianceStandard,proto3" json:"compliance_standard,omitempty"` + // Required. The format in which the Scope report bytes should be returned. + ReportFormat GenerateAuditScopeReportRequest_AuditScopeReportFormat `protobuf:"varint,4,opt,name=report_format,json=reportFormat,proto3,enum=google.cloud.auditmanager.v1.GenerateAuditScopeReportRequest_AuditScopeReportFormat" json:"report_format,omitempty"` + // Required. Compliance framework against which the Scope Report must be + // generated. + ComplianceFramework string `protobuf:"bytes,5,opt,name=compliance_framework,json=complianceFramework,proto3" json:"compliance_framework,omitempty"` +} + +func (x *GenerateAuditScopeReportRequest) Reset() { + *x = GenerateAuditScopeReportRequest{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GenerateAuditScopeReportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateAuditScopeReportRequest) ProtoMessage() {} + +func (x *GenerateAuditScopeReportRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenerateAuditScopeReportRequest.ProtoReflect.Descriptor instead. +func (*GenerateAuditScopeReportRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{1} +} + +func (x *GenerateAuditScopeReportRequest) GetScope() string { + if x != nil { + return x.Scope + } + return "" +} + +func (x *GenerateAuditScopeReportRequest) GetComplianceStandard() string { + if x != nil { + return x.ComplianceStandard + } + return "" +} + +func (x *GenerateAuditScopeReportRequest) GetReportFormat() GenerateAuditScopeReportRequest_AuditScopeReportFormat { + if x != nil { + return x.ReportFormat + } + return GenerateAuditScopeReportRequest_AUDIT_SCOPE_REPORT_FORMAT_UNSPECIFIED +} + +func (x *GenerateAuditScopeReportRequest) GetComplianceFramework() string { + if x != nil { + return x.ComplianceFramework + } + return "" +} + +// Message for requesting the Audit Report. +type GenerateAuditReportRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Set of options for the report destination location. + // + // Types that are assignable to Destination: + // + // *GenerateAuditReportRequest_GcsUri + Destination isGenerateAuditReportRequest_Destination `protobuf_oneof:"destination"` + // Required. Scope for which the AuditScopeReport is required. Must be of + // format resource_type/resource_identifier Eg: + // projects/{project}/locations/{location}, + // folders/{folder}/locations/{location} + Scope string `protobuf:"bytes,1,opt,name=scope,proto3" json:"scope,omitempty"` + // Required. Compliance Standard against which the Scope Report must be + // generated. Eg: FEDRAMP_MODERATE + ComplianceStandard string `protobuf:"bytes,3,opt,name=compliance_standard,json=complianceStandard,proto3" json:"compliance_standard,omitempty"` + // Required. The format in which the audit report should be created. + ReportFormat GenerateAuditReportRequest_AuditReportFormat `protobuf:"varint,4,opt,name=report_format,json=reportFormat,proto3,enum=google.cloud.auditmanager.v1.GenerateAuditReportRequest_AuditReportFormat" json:"report_format,omitempty"` + // Required. Compliance framework against which the Report must be generated. + ComplianceFramework string `protobuf:"bytes,5,opt,name=compliance_framework,json=complianceFramework,proto3" json:"compliance_framework,omitempty"` +} + +func (x *GenerateAuditReportRequest) Reset() { + *x = GenerateAuditReportRequest{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GenerateAuditReportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateAuditReportRequest) ProtoMessage() {} + +func (x *GenerateAuditReportRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenerateAuditReportRequest.ProtoReflect.Descriptor instead. +func (*GenerateAuditReportRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{2} +} + +func (m *GenerateAuditReportRequest) GetDestination() isGenerateAuditReportRequest_Destination { + if m != nil { + return m.Destination + } + return nil +} + +func (x *GenerateAuditReportRequest) GetGcsUri() string { + if x, ok := x.GetDestination().(*GenerateAuditReportRequest_GcsUri); ok { + return x.GcsUri + } + return "" +} + +func (x *GenerateAuditReportRequest) GetScope() string { + if x != nil { + return x.Scope + } + return "" +} + +func (x *GenerateAuditReportRequest) GetComplianceStandard() string { + if x != nil { + return x.ComplianceStandard + } + return "" +} + +func (x *GenerateAuditReportRequest) GetReportFormat() GenerateAuditReportRequest_AuditReportFormat { + if x != nil { + return x.ReportFormat + } + return GenerateAuditReportRequest_AUDIT_REPORT_FORMAT_UNSPECIFIED +} + +func (x *GenerateAuditReportRequest) GetComplianceFramework() string { + if x != nil { + return x.ComplianceFramework + } + return "" +} + +type isGenerateAuditReportRequest_Destination interface { + isGenerateAuditReportRequest_Destination() +} + +type GenerateAuditReportRequest_GcsUri struct { + // Destination Cloud storage bucket where report and evidence must be + // uploaded. The Cloud storage bucket provided here must be selected among + // the buckets entered during the enrollment process. + GcsUri string `protobuf:"bytes,2,opt,name=gcs_uri,json=gcsUri,proto3,oneof"` +} + +func (*GenerateAuditReportRequest_GcsUri) isGenerateAuditReportRequest_Destination() {} + +// Message for getting the enrollment status of a resource. +type GetResourceEnrollmentStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Format + // folders/{folder}/locations/{location}/resourceEnrollmentStatuses/{resource_enrollment_status}, + // projects/{project}/locations/{location}/resourceEnrollmentStatuses/{resource_enrollment_status}, + // organizations/{organization}/locations/{location}/resourceEnrollmentStatuses/{resource_enrollment_status} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetResourceEnrollmentStatusRequest) Reset() { + *x = GetResourceEnrollmentStatusRequest{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetResourceEnrollmentStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetResourceEnrollmentStatusRequest) ProtoMessage() {} + +func (x *GetResourceEnrollmentStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetResourceEnrollmentStatusRequest.ProtoReflect.Descriptor instead. +func (*GetResourceEnrollmentStatusRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{3} +} + +func (x *GetResourceEnrollmentStatusRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for listing all the descendent resources under parent with +// enrollment. +type ListResourceEnrollmentStatusesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent scope for which the list of resources with enrollments + // are required. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of resources to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. The next_page_token value returned from a previous List request, + // if any. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListResourceEnrollmentStatusesRequest) Reset() { + *x = ListResourceEnrollmentStatusesRequest{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListResourceEnrollmentStatusesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListResourceEnrollmentStatusesRequest) ProtoMessage() {} + +func (x *ListResourceEnrollmentStatusesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListResourceEnrollmentStatusesRequest.ProtoReflect.Descriptor instead. +func (*ListResourceEnrollmentStatusesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{4} +} + +func (x *ListResourceEnrollmentStatusesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListResourceEnrollmentStatusesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListResourceEnrollmentStatusesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message with all the descendent resources with enrollment. +type ListResourceEnrollmentStatusesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resources with their enrollment status. + ResourceEnrollmentStatuses []*ResourceEnrollmentStatus `protobuf:"bytes,1,rep,name=resource_enrollment_statuses,json=resourceEnrollmentStatuses,proto3" json:"resource_enrollment_statuses,omitempty"` + // Output only. The token to retrieve the next page of results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListResourceEnrollmentStatusesResponse) Reset() { + *x = ListResourceEnrollmentStatusesResponse{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListResourceEnrollmentStatusesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListResourceEnrollmentStatusesResponse) ProtoMessage() {} + +func (x *ListResourceEnrollmentStatusesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListResourceEnrollmentStatusesResponse.ProtoReflect.Descriptor instead. +func (*ListResourceEnrollmentStatusesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{5} +} + +func (x *ListResourceEnrollmentStatusesResponse) GetResourceEnrollmentStatuses() []*ResourceEnrollmentStatus { + if x != nil { + return x.ResourceEnrollmentStatuses + } + return nil +} + +func (x *ListResourceEnrollmentStatusesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Message for requesting to list the audit reports. +type ListAuditReportsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent scope for which to list the reports. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of resources to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. The next_page_token value returned from a previous List request, + // if any. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListAuditReportsRequest) Reset() { + *x = ListAuditReportsRequest{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListAuditReportsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAuditReportsRequest) ProtoMessage() {} + +func (x *ListAuditReportsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListAuditReportsRequest.ProtoReflect.Descriptor instead. +func (*ListAuditReportsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{6} +} + +func (x *ListAuditReportsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListAuditReportsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListAuditReportsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message with all the audit reports. +type ListAuditReportsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The audit reports. + AuditReports []*AuditReport `protobuf:"bytes,1,rep,name=audit_reports,json=auditReports,proto3" json:"audit_reports,omitempty"` + // Output only. The token to retrieve the next page of results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListAuditReportsResponse) Reset() { + *x = ListAuditReportsResponse{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListAuditReportsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAuditReportsResponse) ProtoMessage() {} + +func (x *ListAuditReportsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListAuditReportsResponse.ProtoReflect.Descriptor instead. +func (*ListAuditReportsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{7} +} + +func (x *ListAuditReportsResponse) GetAuditReports() []*AuditReport { + if x != nil { + return x.AuditReports + } + return nil +} + +func (x *ListAuditReportsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Message for requesting the overall audit report for an audit report name. +type GetAuditReportRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Format + // projects/{project}/locations/{location}/auditReports/{audit_report}, + // folders/{folder}/locations/{location}/auditReports/{audit_report} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetAuditReportRequest) Reset() { + *x = GetAuditReportRequest{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetAuditReportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAuditReportRequest) ProtoMessage() {} + +func (x *GetAuditReportRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAuditReportRequest.ProtoReflect.Descriptor instead. +func (*GetAuditReportRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{8} +} + +func (x *GetAuditReportRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for requesting all the controls for a compliance standard. +type ListControlsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Format + // projects/{project}/locations/{location}/standards/{standard}, + // folders/{folder}/locations/{location}/standards/{standard} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of resources to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. The next_page_token value returned from a previous List request, + // if any. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListControlsRequest) Reset() { + *x = ListControlsRequest{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListControlsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListControlsRequest) ProtoMessage() {} + +func (x *ListControlsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListControlsRequest.ProtoReflect.Descriptor instead. +func (*ListControlsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{9} +} + +func (x *ListControlsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListControlsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListControlsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message with all the controls for a compliance standard. +type ListControlsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The controls for the compliance standard. + Controls []*Control `protobuf:"bytes,1,rep,name=controls,proto3" json:"controls,omitempty"` + // Output only. The token to retrieve the next page of results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListControlsResponse) Reset() { + *x = ListControlsResponse{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListControlsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListControlsResponse) ProtoMessage() {} + +func (x *ListControlsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListControlsResponse.ProtoReflect.Descriptor instead. +func (*ListControlsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{10} +} + +func (x *ListControlsResponse) GetControls() []*Control { + if x != nil { + return x.Controls + } + return nil +} + +func (x *ListControlsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// The `ReportGenerationProgress` is part of +// [google.longrunning.Operation][google.longrunning.Operation] returned to the +// client for every `GetOperation` request. +type ReportGenerationProgress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The current state of execution for report generation. + State OperationState `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.auditmanager.v1.OperationState" json:"state,omitempty"` + // Output only. States the reason of failure during the audit report + // generation process. This field is set only if the state attribute is + // OPERATION_STATE_FAILED. + FailureReason string `protobuf:"bytes,2,opt,name=failure_reason,json=failureReason,proto3" json:"failure_reason,omitempty"` + // Shows the progress of the CESS service evaluation process. The progress is + // defined in terms of percentage complete and is being fetched from the CESS + // service. + EvaluationPercentComplete float64 `protobuf:"fixed64,20,opt,name=evaluation_percent_complete,json=evaluationPercentComplete,proto3" json:"evaluation_percent_complete,omitempty"` + // Shows the report generation progress of the CESS Result Processor Service. + // The // progress is defined in terms of percentage complete and is being + // fetched from the CESS service. If report_generation_in_progress is non zero + // then evaluation_percent_complete will be 100%. + ReportGenerationPercentComplete float64 `protobuf:"fixed64,30,opt,name=report_generation_percent_complete,json=reportGenerationPercentComplete,proto3" json:"report_generation_percent_complete,omitempty"` + // Shows the report uploading progress of the CESS Result Processor Service. + // The progress is defined in terms of percentage complete and is being + // fetched from the CESS service. If report_uploading_in_progress is non zero + // then evaluation_percent_complete and report_generation_percent_complete + // will be 100%. + ReportUploadingPercentComplete float64 `protobuf:"fixed64,40,opt,name=report_uploading_percent_complete,json=reportUploadingPercentComplete,proto3" json:"report_uploading_percent_complete,omitempty"` + // Output only. The Cloud Storage bucket where the audit report will be + // uploaded once the evaluation process is completed. + DestinationGcsBucket string `protobuf:"bytes,50,opt,name=destination_gcs_bucket,json=destinationGcsBucket,proto3" json:"destination_gcs_bucket,omitempty"` + // Output only. The name of the audit report. + AuditReport string `protobuf:"bytes,51,opt,name=audit_report,json=auditReport,proto3" json:"audit_report,omitempty"` +} + +func (x *ReportGenerationProgress) Reset() { + *x = ReportGenerationProgress{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReportGenerationProgress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportGenerationProgress) ProtoMessage() {} + +func (x *ReportGenerationProgress) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportGenerationProgress.ProtoReflect.Descriptor instead. +func (*ReportGenerationProgress) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{11} +} + +func (x *ReportGenerationProgress) GetState() OperationState { + if x != nil { + return x.State + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (x *ReportGenerationProgress) GetFailureReason() string { + if x != nil { + return x.FailureReason + } + return "" +} + +func (x *ReportGenerationProgress) GetEvaluationPercentComplete() float64 { + if x != nil { + return x.EvaluationPercentComplete + } + return 0 +} + +func (x *ReportGenerationProgress) GetReportGenerationPercentComplete() float64 { + if x != nil { + return x.ReportGenerationPercentComplete + } + return 0 +} + +func (x *ReportGenerationProgress) GetReportUploadingPercentComplete() float64 { + if x != nil { + return x.ReportUploadingPercentComplete + } + return 0 +} + +func (x *ReportGenerationProgress) GetDestinationGcsBucket() string { + if x != nil { + return x.DestinationGcsBucket + } + return "" +} + +func (x *ReportGenerationProgress) GetAuditReport() string { + if x != nil { + return x.AuditReport + } + return "" +} + +// The enrollment resource. +type Enrollment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The name of this Enrollment, in the format of scope given in + // request. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The locations where the generated reports can be uploaded. + DestinationDetails []*DestinationDetails `protobuf:"bytes,3,rep,name=destination_details,json=destinationDetails,proto3" json:"destination_details,omitempty"` +} + +func (x *Enrollment) Reset() { + *x = Enrollment{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Enrollment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Enrollment) ProtoMessage() {} + +func (x *Enrollment) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Enrollment.ProtoReflect.Descriptor instead. +func (*Enrollment) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{12} +} + +func (x *Enrollment) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Enrollment) GetDestinationDetails() []*DestinationDetails { + if x != nil { + return x.DestinationDetails + } + return nil +} + +// The audit scope report. +type AuditScopeReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The options in which the audit scope report is exported. + // + // Types that are assignable to AuditReport: + // + // *AuditScopeReport_ScopeReportContents + AuditReport isAuditScopeReport_AuditReport `protobuf_oneof:"audit_report"` + // Identifier. The name of this Audit Report, in the format of scope given in + // request. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *AuditScopeReport) Reset() { + *x = AuditScopeReport{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AuditScopeReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuditScopeReport) ProtoMessage() {} + +func (x *AuditScopeReport) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AuditScopeReport.ProtoReflect.Descriptor instead. +func (*AuditScopeReport) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{13} +} + +func (m *AuditScopeReport) GetAuditReport() isAuditScopeReport_AuditReport { + if m != nil { + return m.AuditReport + } + return nil +} + +func (x *AuditScopeReport) GetScopeReportContents() []byte { + if x, ok := x.GetAuditReport().(*AuditScopeReport_ScopeReportContents); ok { + return x.ScopeReportContents + } + return nil +} + +func (x *AuditScopeReport) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type isAuditScopeReport_AuditReport interface { + isAuditScopeReport_AuditReport() +} + +type AuditScopeReport_ScopeReportContents struct { + // The audit scope report content in byte format. + ScopeReportContents []byte `protobuf:"bytes,1,opt,name=scope_report_contents,json=scopeReportContents,proto3,oneof"` +} + +func (*AuditScopeReport_ScopeReportContents) isAuditScopeReport_AuditReport() {} + +// The metadata of the long-running operation. +type OperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The time the operation was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the operation finished running. + EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Output only. Server-defined resource path for the target of the operation. + Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` + // Output only. Name of the verb executed by the operation. + Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"` + // Output only. Human-readable status of the operation, if any. + StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + RequestedCancellation bool `protobuf:"varint,6,opt,name=requested_cancellation,json=requestedCancellation,proto3" json:"requested_cancellation,omitempty"` + // Output only. API version used to start the operation. + ApiVersion string `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` +} + +func (x *OperationMetadata) Reset() { + *x = OperationMetadata{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperationMetadata) ProtoMessage() {} + +func (x *OperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OperationMetadata.ProtoReflect.Descriptor instead. +func (*OperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{14} +} + +func (x *OperationMetadata) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *OperationMetadata) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *OperationMetadata) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +func (x *OperationMetadata) GetVerb() string { + if x != nil { + return x.Verb + } + return "" +} + +func (x *OperationMetadata) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *OperationMetadata) GetRequestedCancellation() bool { + if x != nil { + return x.RequestedCancellation + } + return false +} + +func (x *OperationMetadata) GetApiVersion() string { + if x != nil { + return x.ApiVersion + } + return "" +} + +// A resource with its enrollment status. +type ResourceEnrollmentStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The name of this resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Enrollment which contains enrolled destination details for a + // resource + Enrollment *Enrollment `protobuf:"bytes,2,opt,name=enrollment,proto3" json:"enrollment,omitempty"` + // Output only. Is resource enrolled. + // + // Deprecated: Marked as deprecated in google/cloud/auditmanager/v1/auditmanager.proto. + Enrolled bool `protobuf:"varint,3,opt,name=enrolled,proto3" json:"enrolled,omitempty"` + // Output only. Display name of the project/folder/organization. + DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Output only. Enrollment state of the resource. + EnrollmentState ResourceEnrollmentStatus_ResourceEnrollmentState `protobuf:"varint,5,opt,name=enrollment_state,json=enrollmentState,proto3,enum=google.cloud.auditmanager.v1.ResourceEnrollmentStatus_ResourceEnrollmentState" json:"enrollment_state,omitempty"` +} + +func (x *ResourceEnrollmentStatus) Reset() { + *x = ResourceEnrollmentStatus{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceEnrollmentStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceEnrollmentStatus) ProtoMessage() {} + +func (x *ResourceEnrollmentStatus) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceEnrollmentStatus.ProtoReflect.Descriptor instead. +func (*ResourceEnrollmentStatus) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{15} +} + +func (x *ResourceEnrollmentStatus) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ResourceEnrollmentStatus) GetEnrollment() *Enrollment { + if x != nil { + return x.Enrollment + } + return nil +} + +// Deprecated: Marked as deprecated in google/cloud/auditmanager/v1/auditmanager.proto. +func (x *ResourceEnrollmentStatus) GetEnrolled() bool { + if x != nil { + return x.Enrolled + } + return false +} + +func (x *ResourceEnrollmentStatus) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *ResourceEnrollmentStatus) GetEnrollmentState() ResourceEnrollmentStatus_ResourceEnrollmentState { + if x != nil { + return x.EnrollmentState + } + return ResourceEnrollmentStatus_RESOURCE_ENROLLMENT_STATE_UNSPECIFIED +} + +// An audit report. +type AuditReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The name of this Audit Report, in the format of scope given in + // request. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Report summary with compliance, violation counts etc. + ReportSummary *ReportSummary `protobuf:"bytes,2,opt,name=report_summary,json=reportSummary,proto3" json:"report_summary,omitempty"` + // Output only. ClientOperationId + OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"` + // Output only. The location where the generated report will be uploaded. + DestinationDetails *DestinationDetails `protobuf:"bytes,4,opt,name=destination_details,json=destinationDetails,proto3" json:"destination_details,omitempty"` + // Output only. Compliance Standard. + ComplianceStandard string `protobuf:"bytes,5,opt,name=compliance_standard,json=complianceStandard,proto3" json:"compliance_standard,omitempty"` + // Output only. The parent scope on which the report was generated. + Scope string `protobuf:"bytes,6,opt,name=scope,proto3" json:"scope,omitempty"` + // Output only. Creation time of the audit report. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The overall status of controls + ControlDetails []*ControlDetails `protobuf:"bytes,8,rep,name=control_details,json=controlDetails,proto3" json:"control_details,omitempty"` + // Output only. The state of Audit Report Generation. + ReportGenerationState AuditReport_ReportGenerationState `protobuf:"varint,9,opt,name=report_generation_state,json=reportGenerationState,proto3,enum=google.cloud.auditmanager.v1.AuditReport_ReportGenerationState" json:"report_generation_state,omitempty"` + // Output only. Compliance Framework of Audit Report + ComplianceFramework string `protobuf:"bytes,10,opt,name=compliance_framework,json=complianceFramework,proto3" json:"compliance_framework,omitempty"` + // Output only. The ID/ Number for the scope on which the audit report was + // generated. + ScopeId string `protobuf:"bytes,11,opt,name=scope_id,json=scopeId,proto3" json:"scope_id,omitempty"` +} + +func (x *AuditReport) Reset() { + *x = AuditReport{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AuditReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuditReport) ProtoMessage() {} + +func (x *AuditReport) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AuditReport.ProtoReflect.Descriptor instead. +func (*AuditReport) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{16} +} + +func (x *AuditReport) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AuditReport) GetReportSummary() *ReportSummary { + if x != nil { + return x.ReportSummary + } + return nil +} + +func (x *AuditReport) GetOperationId() string { + if x != nil { + return x.OperationId + } + return "" +} + +func (x *AuditReport) GetDestinationDetails() *DestinationDetails { + if x != nil { + return x.DestinationDetails + } + return nil +} + +func (x *AuditReport) GetComplianceStandard() string { + if x != nil { + return x.ComplianceStandard + } + return "" +} + +func (x *AuditReport) GetScope() string { + if x != nil { + return x.Scope + } + return "" +} + +func (x *AuditReport) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *AuditReport) GetControlDetails() []*ControlDetails { + if x != nil { + return x.ControlDetails + } + return nil +} + +func (x *AuditReport) GetReportGenerationState() AuditReport_ReportGenerationState { + if x != nil { + return x.ReportGenerationState + } + return AuditReport_REPORT_GENERATION_STATE_UNSPECIFIED +} + +func (x *AuditReport) GetComplianceFramework() string { + if x != nil { + return x.ComplianceFramework + } + return "" +} + +func (x *AuditReport) GetScopeId() string { + if x != nil { + return x.ScopeId + } + return "" +} + +// The regulatory family of the control. +type ControlFamily struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The ID of the regulatory control family. + FamilyId string `protobuf:"bytes,1,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` + // The display name of the regulatory control family. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` +} + +func (x *ControlFamily) Reset() { + *x = ControlFamily{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ControlFamily) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ControlFamily) ProtoMessage() {} + +func (x *ControlFamily) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ControlFamily.ProtoReflect.Descriptor instead. +func (*ControlFamily) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{17} +} + +func (x *ControlFamily) GetFamilyId() string { + if x != nil { + return x.FamilyId + } + return "" +} + +func (x *ControlFamily) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +// A control. +type Control struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The control identifier used to fetch the findings. This is + // same as the control report name. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Output only. Display name of the control. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Output only. Group where the control belongs. E.g. Access Control. + Family Control_Family `protobuf:"varint,3,opt,name=family,proto3,enum=google.cloud.auditmanager.v1.Control_Family" json:"family,omitempty"` + // Output only. Regulatory Family of the control E.g. Access Control + ControlFamily *ControlFamily `protobuf:"bytes,10,opt,name=control_family,json=controlFamily,proto3" json:"control_family,omitempty"` + // Output only. Regulatory control ask of the control + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + // Output only. The type of responsibility for implementing this control. It + // can be google, customer or shared. + ResponsibilityType string `protobuf:"bytes,5,opt,name=responsibility_type,json=responsibilityType,proto3" json:"responsibility_type,omitempty"` + // Output only. Description of the google responsibility for implementing this + // control. + GoogleResponsibilityDescription string `protobuf:"bytes,6,opt,name=google_responsibility_description,json=googleResponsibilityDescription,proto3" json:"google_responsibility_description,omitempty"` + // Output only. Implementation of the google responsibility for implementing + // this control. + GoogleResponsibilityImplementation string `protobuf:"bytes,7,opt,name=google_responsibility_implementation,json=googleResponsibilityImplementation,proto3" json:"google_responsibility_implementation,omitempty"` + // Output only. Description of the customer responsibility for implementing + // this control. + CustomerResponsibilityDescription string `protobuf:"bytes,8,opt,name=customer_responsibility_description,json=customerResponsibilityDescription,proto3" json:"customer_responsibility_description,omitempty"` + // Output only. Implementation of the customer responsibility for implementing + // this control. + CustomerResponsibilityImplementation string `protobuf:"bytes,9,opt,name=customer_responsibility_implementation,json=customerResponsibilityImplementation,proto3" json:"customer_responsibility_implementation,omitempty"` +} + +func (x *Control) Reset() { + *x = Control{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Control) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Control) ProtoMessage() {} + +func (x *Control) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Control.ProtoReflect.Descriptor instead. +func (*Control) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{18} +} + +func (x *Control) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Control) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Control) GetFamily() Control_Family { + if x != nil { + return x.Family + } + return Control_FAMILY_UNSPECIFIED +} + +func (x *Control) GetControlFamily() *ControlFamily { + if x != nil { + return x.ControlFamily + } + return nil +} + +func (x *Control) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Control) GetResponsibilityType() string { + if x != nil { + return x.ResponsibilityType + } + return "" +} + +func (x *Control) GetGoogleResponsibilityDescription() string { + if x != nil { + return x.GoogleResponsibilityDescription + } + return "" +} + +func (x *Control) GetGoogleResponsibilityImplementation() string { + if x != nil { + return x.GoogleResponsibilityImplementation + } + return "" +} + +func (x *Control) GetCustomerResponsibilityDescription() string { + if x != nil { + return x.CustomerResponsibilityDescription + } + return "" +} + +func (x *Control) GetCustomerResponsibilityImplementation() string { + if x != nil { + return x.CustomerResponsibilityImplementation + } + return "" +} + +// The locations where the generated reports are saved. +type DestinationDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Destination: + // + // *DestinationDetails_GcsBucketUri + Destination isDestinationDetails_Destination `protobuf_oneof:"destination"` +} + +func (x *DestinationDetails) Reset() { + *x = DestinationDetails{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DestinationDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestinationDetails) ProtoMessage() {} + +func (x *DestinationDetails) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestinationDetails.ProtoReflect.Descriptor instead. +func (*DestinationDetails) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{19} +} + +func (m *DestinationDetails) GetDestination() isDestinationDetails_Destination { + if m != nil { + return m.Destination + } + return nil +} + +func (x *DestinationDetails) GetGcsBucketUri() string { + if x, ok := x.GetDestination().(*DestinationDetails_GcsBucketUri); ok { + return x.GcsBucketUri + } + return "" +} + +type isDestinationDetails_Destination interface { + isDestinationDetails_Destination() +} + +type DestinationDetails_GcsBucketUri struct { + // The Cloud Storage bucket where the audit report is/will be uploaded. + GcsBucketUri string `protobuf:"bytes,1,opt,name=gcs_bucket_uri,json=gcsBucketUri,proto3,oneof"` +} + +func (*DestinationDetails_GcsBucketUri) isDestinationDetails_Destination() {} + +// The additional information for an audit operation. +type ReportSummary struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total number of checks. + TotalCount int32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` + // Number of compliant checks. + CompliantCount int32 `protobuf:"varint,2,opt,name=compliant_count,json=compliantCount,proto3" json:"compliant_count,omitempty"` + // Number of checks with violations. + ViolationCount int32 `protobuf:"varint,3,opt,name=violation_count,json=violationCount,proto3" json:"violation_count,omitempty"` + // Number of checks with "manual review needed" status. + ManualReviewNeededCount int32 `protobuf:"varint,4,opt,name=manual_review_needed_count,json=manualReviewNeededCount,proto3" json:"manual_review_needed_count,omitempty"` + // Number of checks that could not be performed due to errors. + ErrorCount int32 `protobuf:"varint,5,opt,name=error_count,json=errorCount,proto3" json:"error_count,omitempty"` +} + +func (x *ReportSummary) Reset() { + *x = ReportSummary{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReportSummary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportSummary) ProtoMessage() {} + +func (x *ReportSummary) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportSummary.ProtoReflect.Descriptor instead. +func (*ReportSummary) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{20} +} + +func (x *ReportSummary) GetTotalCount() int32 { + if x != nil { + return x.TotalCount + } + return 0 +} + +func (x *ReportSummary) GetCompliantCount() int32 { + if x != nil { + return x.CompliantCount + } + return 0 +} + +func (x *ReportSummary) GetViolationCount() int32 { + if x != nil { + return x.ViolationCount + } + return 0 +} + +func (x *ReportSummary) GetManualReviewNeededCount() int32 { + if x != nil { + return x.ManualReviewNeededCount + } + return 0 +} + +func (x *ReportSummary) GetErrorCount() int32 { + if x != nil { + return x.ErrorCount + } + return 0 +} + +// The evaluation details for a control. +type ControlDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The control for which the findings are being reported. + Control *Control `protobuf:"bytes,1,opt,name=control,proto3" json:"control,omitempty"` + // Output only. Overall status of the findings for the control. + ComplianceState ComplianceState `protobuf:"varint,2,opt,name=compliance_state,json=complianceState,proto3,enum=google.cloud.auditmanager.v1.ComplianceState" json:"compliance_state,omitempty"` + // Report summary with compliance, violation counts etc. + ControlReportSummary *ReportSummary `protobuf:"bytes,3,opt,name=control_report_summary,json=controlReportSummary,proto3" json:"control_report_summary,omitempty"` +} + +func (x *ControlDetails) Reset() { + *x = ControlDetails{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ControlDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ControlDetails) ProtoMessage() {} + +func (x *ControlDetails) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ControlDetails.ProtoReflect.Descriptor instead. +func (*ControlDetails) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{21} +} + +func (x *ControlDetails) GetControl() *Control { + if x != nil { + return x.Control + } + return nil +} + +func (x *ControlDetails) GetComplianceState() ComplianceState { + if x != nil { + return x.ComplianceState + } + return ComplianceState_COMPLIANCE_STATE_UNSPECIFIED +} + +func (x *ControlDetails) GetControlReportSummary() *ReportSummary { + if x != nil { + return x.ControlReportSummary + } + return nil +} + +// The destination details where the audit report must be uploaded. +type EnrollResourceRequest_EligibleDestination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The options for the report destination location. + // + // Types that are assignable to EligibleDestinations: + // + // *EnrollResourceRequest_EligibleDestination_EligibleGcsBucket + EligibleDestinations isEnrollResourceRequest_EligibleDestination_EligibleDestinations `protobuf_oneof:"eligible_destinations"` +} + +func (x *EnrollResourceRequest_EligibleDestination) Reset() { + *x = EnrollResourceRequest_EligibleDestination{} + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EnrollResourceRequest_EligibleDestination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnrollResourceRequest_EligibleDestination) ProtoMessage() {} + +func (x *EnrollResourceRequest_EligibleDestination) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnrollResourceRequest_EligibleDestination.ProtoReflect.Descriptor instead. +func (*EnrollResourceRequest_EligibleDestination) Descriptor() ([]byte, []int) { + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP(), []int{0, 0} +} + +func (m *EnrollResourceRequest_EligibleDestination) GetEligibleDestinations() isEnrollResourceRequest_EligibleDestination_EligibleDestinations { + if m != nil { + return m.EligibleDestinations + } + return nil +} + +func (x *EnrollResourceRequest_EligibleDestination) GetEligibleGcsBucket() string { + if x, ok := x.GetEligibleDestinations().(*EnrollResourceRequest_EligibleDestination_EligibleGcsBucket); ok { + return x.EligibleGcsBucket + } + return "" +} + +type isEnrollResourceRequest_EligibleDestination_EligibleDestinations interface { + isEnrollResourceRequest_EligibleDestination_EligibleDestinations() +} + +type EnrollResourceRequest_EligibleDestination_EligibleGcsBucket struct { + // The Cloud Storage bucket location where the audit report and evidences + // can be uploaded during the `GenerateAuditReport` API call. + EligibleGcsBucket string `protobuf:"bytes,3,opt,name=eligible_gcs_bucket,json=eligibleGcsBucket,proto3,oneof"` +} + +func (*EnrollResourceRequest_EligibleDestination_EligibleGcsBucket) isEnrollResourceRequest_EligibleDestination_EligibleDestinations() { +} + +var File_google_cloud_auditmanager_v1_auditmanager_proto protoreflect.FileDescriptor + +var file_google_cloud_auditmanager_v1_auditmanager_proto_rawDesc = []byte{ + 0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, + 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x86, 0x02, 0x0a, 0x15, 0x45, 0x6e, 0x72, + 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x70, 0x0a, + 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, + 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, + 0x60, 0x0a, 0x13, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, + 0x6c, 0x65, 0x5f, 0x67, 0x63, 0x73, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x47, + 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x65, 0x6c, 0x69, 0x67, + 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x92, 0x03, 0x0a, 0x1f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, + 0x12, 0x34, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x12, 0x7e, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x54, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x69, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x66, + 0x0a, 0x16, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x55, 0x44, 0x49, + 0x54, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, + 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x53, 0x43, 0x4f, + 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, + 0x5f, 0x4f, 0x44, 0x46, 0x10, 0x01, 0x22, 0x9c, 0x03, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x13, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x12, 0x74, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x69, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x22, + 0x55, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x52, 0x45, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x55, 0x44, + 0x49, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, + 0x5f, 0x4f, 0x44, 0x46, 0x10, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x36, 0x0a, 0x34, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc0, 0x01, + 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, + 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x39, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x33, 0x0a, + 0x31, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x72, + 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x63, 0x6f, + 0x70, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0xcf, 0x01, 0x0a, 0x26, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x1c, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x1a, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x12, 0x27, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9c, 0x01, + 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, + 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5c, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x13, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8b, + 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x12, + 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf6, 0x03, 0x0a, + 0x18, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x3e, + 0x0a, 0x1b, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x19, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x4b, + 0x0a, 0x22, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x1f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x21, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x18, 0x28, 0x20, 0x01, 0x28, 0x01, 0x52, 0x1e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x63, 0x73, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x14, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x29, 0x0a, + 0x27, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xa3, 0x03, 0x0a, 0x0a, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x66, 0x0a, + 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x3a, 0x93, 0x02, 0xea, 0x41, 0x8f, 0x02, 0x0a, 0x26, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x65, 0x6e, + 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x72, 0x6f, 0x6c, + 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x12, 0x3e, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x65, 0x6e, + 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x72, 0x6f, 0x6c, + 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x12, 0x4a, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, + 0x74, 0x7d, 0x2a, 0x0b, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x32, + 0x0a, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe9, 0x02, 0x0a, 0x10, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x34, 0x0a, 0x15, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x00, 0x52, 0x13, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, + 0xf5, 0x01, 0xea, 0x41, 0xf1, 0x01, 0x0a, 0x2c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x12, 0x4e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, + 0x7b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x7d, 0x12, 0x4c, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, + 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x7d, 0x2a, 0x11, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x32, 0x10, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xd5, 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x76, 0x65, 0x72, + 0x62, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, + 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x69, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, + 0xe0, 0x06, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, + 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x08, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05, 0xe0, 0x41, 0x03, 0x18, 0x01, 0x52, 0x08, 0x65, + 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x7e, 0x0a, 0x10, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, + 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x73, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, + 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x52, 0x45, + 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x4d, 0x45, 0x4e, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x52, + 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x48, 0x45, 0x52, + 0x49, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, + 0x45, 0x44, 0x10, 0x03, 0x3a, 0x9b, 0x03, 0xea, 0x41, 0x97, 0x03, 0x0a, 0x34, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x5d, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64, + 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, + 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x7d, + 0x12, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, + 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x7d, 0x12, 0x69, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, + 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x2f, + 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x7d, 0x2a, 0x1a, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x32, 0x18, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0xab, 0x08, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x66, 0x0a, 0x13, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, + 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x63, + 0x6f, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x7c, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x36, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x07, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x49, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x47, 0x45, + 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, + 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x55, 0x4d, 0x4d, + 0x41, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x04, 0x3a, 0xd0, 0x01, + 0xea, 0x41, 0xcc, 0x01, 0x0a, 0x27, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x7d, 0x12, 0x41, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, + 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x7d, 0x2a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x32, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x22, 0x4f, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x21, + 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0xd2, 0x06, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x13, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x57, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x25, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x21, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x24, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x23, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x21, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x26, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x24, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xb0, 0x01, 0x0a, 0x06, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x16, + 0x0a, 0x12, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x41, 0x43, 0x10, 0x01, 0x12, 0x06, + 0x0a, 0x02, 0x41, 0x54, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x41, 0x55, 0x10, 0x03, 0x12, 0x06, + 0x0a, 0x02, 0x43, 0x41, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x43, 0x4d, 0x10, 0x05, 0x12, 0x06, + 0x0a, 0x02, 0x43, 0x50, 0x10, 0x06, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x41, 0x10, 0x07, 0x12, 0x06, + 0x0a, 0x02, 0x49, 0x52, 0x10, 0x08, 0x12, 0x06, 0x0a, 0x02, 0x4d, 0x41, 0x10, 0x09, 0x12, 0x06, + 0x0a, 0x02, 0x4d, 0x50, 0x10, 0x0a, 0x12, 0x06, 0x0a, 0x02, 0x50, 0x45, 0x10, 0x0b, 0x12, 0x06, + 0x0a, 0x02, 0x50, 0x4c, 0x10, 0x0c, 0x12, 0x06, 0x0a, 0x02, 0x50, 0x53, 0x10, 0x0d, 0x12, 0x06, + 0x0a, 0x02, 0x52, 0x41, 0x10, 0x0e, 0x12, 0x06, 0x0a, 0x02, 0x53, 0x41, 0x10, 0x0f, 0x12, 0x06, + 0x0a, 0x02, 0x53, 0x43, 0x10, 0x10, 0x12, 0x06, 0x0a, 0x02, 0x53, 0x49, 0x10, 0x11, 0x12, 0x06, + 0x0a, 0x02, 0x53, 0x52, 0x10, 0x12, 0x22, 0x4b, 0x0a, 0x12, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0e, + 0x67, 0x63, 0x73, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x55, 0x72, 0x69, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xe0, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, + 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x27, 0x0a, 0x0f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x6d, 0x61, 0x6e, 0x75, + 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6d, 0x61, + 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x5d, 0x0a, 0x10, 0x63, 0x6f, + 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, + 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x16, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2a, 0xfb, 0x02, 0x0a, + 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1f, 0x0a, 0x1b, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, + 0x0a, 0x12, 0x2a, 0x0a, 0x26, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x14, 0x12, 0x23, 0x0a, + 0x1f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x4e, 0x45, + 0x10, 0x15, 0x12, 0x3a, 0x0a, 0x36, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x52, + 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x1e, 0x12, 0x33, + 0x0a, 0x2f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x4e, + 0x45, 0x10, 0x1f, 0x12, 0x2f, 0x0a, 0x2b, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, + 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x28, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x32, 0x12, 0x1a, + 0x0a, 0x16, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x3c, 0x2a, 0x8f, 0x01, 0x0a, 0x0f, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, + 0x0a, 0x1c, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x49, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x49, 0x41, 0x4e, 0x54, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x56, 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x18, + 0x0a, 0x14, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x5f, + 0x4e, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x05, 0x32, 0xc0, 0x14, 0x0a, + 0x0c, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0xb8, 0x02, + 0x0a, 0x0e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0xc6, 0x01, 0xda, 0x41, 0x12, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x2c, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xaa, 0x01, 0x3a, 0x01, + 0x2a, 0x5a, 0x36, 0x3a, 0x01, 0x2a, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x6e, 0x72, 0x6f, 0x6c, + 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5a, 0x3b, 0x3a, 0x01, 0x2a, 0x22, 0x36, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x3d, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0xc2, 0x02, 0x0a, 0x18, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x22, 0xb6, 0x01, 0xda, 0x41, 0x27, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x2c, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x2c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x85, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x42, 0x3a, 0x01, 0x2a, + 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x22, + 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3d, 0x66, 0x6f, 0x6c, 0x64, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0xc7, 0x02, + 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd6, + 0x01, 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x2f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x2c, 0x67, 0x63, 0x73, + 0x5f, 0x75, 0x72, 0x69, 0x2c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x3a, 0x01, 0x2a, 0x5a, + 0x3d, 0x3a, 0x01, 0x2a, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x63, 0x6f, 0x70, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x22, 0x37, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3d, 0x66, 0x6f, 0x6c, 0x64, 0x65, + 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0xb2, 0x02, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x01, 0xda, 0x41, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9e, 0x01, 0x5a, 0x31, + 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x6f, + 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x5a, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0xe4, 0x01, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, + 0x72, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x5a, 0x32, + 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x66, 0x6f, + 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xf0, 0x02, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, + 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, + 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd6, 0x01, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xc8, 0x01, 0x5a, 0x3f, + 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x66, 0x6f, 0x6c, 0x64, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, + 0x45, 0x12, 0x43, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc4, 0x02, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, + 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x86, 0x01, 0x5a, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x43, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, + 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0xbe, 0x02, + 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x12, 0x31, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc6, 0x01, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xb6, 0x01, 0x5a, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x73, 0x5a, 0x3a, 0x12, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x12, + 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x1a, 0x4f, + 0xca, 0x41, 0x1b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, + 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, + 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, + 0x96, 0x06, 0xea, 0x41, 0x53, 0x0a, 0x2a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x25, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64, + 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0xea, 0x41, 0x65, 0x0a, 0x30, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, + 0xea, 0x41, 0xe8, 0x01, 0x0a, 0x24, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x12, 0x3c, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x7d, 0x12, 0x3a, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x7d, 0x12, 0x46, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x7d, 0xea, 0x41, 0x8d, 0x01, + 0x0a, 0x31, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, + 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x63, + 0x6f, 0x70, 0x65, 0x12, 0x25, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, + 0x6c, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0x31, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x0a, 0x20, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, + 0x0b, 0x56, 0x31, 0x6d, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x48, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x70, 0x62, 0x3b, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x70, 0x62, 0xaa, 0x02, 0x1c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, + 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescOnce sync.Once + file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescData = file_google_cloud_auditmanager_v1_auditmanager_proto_rawDesc +) + +func file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescGZIP() []byte { + file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescOnce.Do(func() { + file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescData) + }) + return file_google_cloud_auditmanager_v1_auditmanager_proto_rawDescData +} + +var file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_google_cloud_auditmanager_v1_auditmanager_proto_goTypes = []any{ + (OperationState)(0), // 0: google.cloud.auditmanager.v1.OperationState + (ComplianceState)(0), // 1: google.cloud.auditmanager.v1.ComplianceState + (GenerateAuditScopeReportRequest_AuditScopeReportFormat)(0), // 2: google.cloud.auditmanager.v1.GenerateAuditScopeReportRequest.AuditScopeReportFormat + (GenerateAuditReportRequest_AuditReportFormat)(0), // 3: google.cloud.auditmanager.v1.GenerateAuditReportRequest.AuditReportFormat + (ResourceEnrollmentStatus_ResourceEnrollmentState)(0), // 4: google.cloud.auditmanager.v1.ResourceEnrollmentStatus.ResourceEnrollmentState + (AuditReport_ReportGenerationState)(0), // 5: google.cloud.auditmanager.v1.AuditReport.ReportGenerationState + (Control_Family)(0), // 6: google.cloud.auditmanager.v1.Control.Family + (*EnrollResourceRequest)(nil), // 7: google.cloud.auditmanager.v1.EnrollResourceRequest + (*GenerateAuditScopeReportRequest)(nil), // 8: google.cloud.auditmanager.v1.GenerateAuditScopeReportRequest + (*GenerateAuditReportRequest)(nil), // 9: google.cloud.auditmanager.v1.GenerateAuditReportRequest + (*GetResourceEnrollmentStatusRequest)(nil), // 10: google.cloud.auditmanager.v1.GetResourceEnrollmentStatusRequest + (*ListResourceEnrollmentStatusesRequest)(nil), // 11: google.cloud.auditmanager.v1.ListResourceEnrollmentStatusesRequest + (*ListResourceEnrollmentStatusesResponse)(nil), // 12: google.cloud.auditmanager.v1.ListResourceEnrollmentStatusesResponse + (*ListAuditReportsRequest)(nil), // 13: google.cloud.auditmanager.v1.ListAuditReportsRequest + (*ListAuditReportsResponse)(nil), // 14: google.cloud.auditmanager.v1.ListAuditReportsResponse + (*GetAuditReportRequest)(nil), // 15: google.cloud.auditmanager.v1.GetAuditReportRequest + (*ListControlsRequest)(nil), // 16: google.cloud.auditmanager.v1.ListControlsRequest + (*ListControlsResponse)(nil), // 17: google.cloud.auditmanager.v1.ListControlsResponse + (*ReportGenerationProgress)(nil), // 18: google.cloud.auditmanager.v1.ReportGenerationProgress + (*Enrollment)(nil), // 19: google.cloud.auditmanager.v1.Enrollment + (*AuditScopeReport)(nil), // 20: google.cloud.auditmanager.v1.AuditScopeReport + (*OperationMetadata)(nil), // 21: google.cloud.auditmanager.v1.OperationMetadata + (*ResourceEnrollmentStatus)(nil), // 22: google.cloud.auditmanager.v1.ResourceEnrollmentStatus + (*AuditReport)(nil), // 23: google.cloud.auditmanager.v1.AuditReport + (*ControlFamily)(nil), // 24: google.cloud.auditmanager.v1.ControlFamily + (*Control)(nil), // 25: google.cloud.auditmanager.v1.Control + (*DestinationDetails)(nil), // 26: google.cloud.auditmanager.v1.DestinationDetails + (*ReportSummary)(nil), // 27: google.cloud.auditmanager.v1.ReportSummary + (*ControlDetails)(nil), // 28: google.cloud.auditmanager.v1.ControlDetails + (*EnrollResourceRequest_EligibleDestination)(nil), // 29: google.cloud.auditmanager.v1.EnrollResourceRequest.EligibleDestination + (*timestamppb.Timestamp)(nil), // 30: google.protobuf.Timestamp + (*longrunningpb.Operation)(nil), // 31: google.longrunning.Operation +} +var file_google_cloud_auditmanager_v1_auditmanager_proto_depIdxs = []int32{ + 29, // 0: google.cloud.auditmanager.v1.EnrollResourceRequest.destinations:type_name -> google.cloud.auditmanager.v1.EnrollResourceRequest.EligibleDestination + 2, // 1: google.cloud.auditmanager.v1.GenerateAuditScopeReportRequest.report_format:type_name -> google.cloud.auditmanager.v1.GenerateAuditScopeReportRequest.AuditScopeReportFormat + 3, // 2: google.cloud.auditmanager.v1.GenerateAuditReportRequest.report_format:type_name -> google.cloud.auditmanager.v1.GenerateAuditReportRequest.AuditReportFormat + 22, // 3: google.cloud.auditmanager.v1.ListResourceEnrollmentStatusesResponse.resource_enrollment_statuses:type_name -> google.cloud.auditmanager.v1.ResourceEnrollmentStatus + 23, // 4: google.cloud.auditmanager.v1.ListAuditReportsResponse.audit_reports:type_name -> google.cloud.auditmanager.v1.AuditReport + 25, // 5: google.cloud.auditmanager.v1.ListControlsResponse.controls:type_name -> google.cloud.auditmanager.v1.Control + 0, // 6: google.cloud.auditmanager.v1.ReportGenerationProgress.state:type_name -> google.cloud.auditmanager.v1.OperationState + 26, // 7: google.cloud.auditmanager.v1.Enrollment.destination_details:type_name -> google.cloud.auditmanager.v1.DestinationDetails + 30, // 8: google.cloud.auditmanager.v1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp + 30, // 9: google.cloud.auditmanager.v1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp + 19, // 10: google.cloud.auditmanager.v1.ResourceEnrollmentStatus.enrollment:type_name -> google.cloud.auditmanager.v1.Enrollment + 4, // 11: google.cloud.auditmanager.v1.ResourceEnrollmentStatus.enrollment_state:type_name -> google.cloud.auditmanager.v1.ResourceEnrollmentStatus.ResourceEnrollmentState + 27, // 12: google.cloud.auditmanager.v1.AuditReport.report_summary:type_name -> google.cloud.auditmanager.v1.ReportSummary + 26, // 13: google.cloud.auditmanager.v1.AuditReport.destination_details:type_name -> google.cloud.auditmanager.v1.DestinationDetails + 30, // 14: google.cloud.auditmanager.v1.AuditReport.create_time:type_name -> google.protobuf.Timestamp + 28, // 15: google.cloud.auditmanager.v1.AuditReport.control_details:type_name -> google.cloud.auditmanager.v1.ControlDetails + 5, // 16: google.cloud.auditmanager.v1.AuditReport.report_generation_state:type_name -> google.cloud.auditmanager.v1.AuditReport.ReportGenerationState + 6, // 17: google.cloud.auditmanager.v1.Control.family:type_name -> google.cloud.auditmanager.v1.Control.Family + 24, // 18: google.cloud.auditmanager.v1.Control.control_family:type_name -> google.cloud.auditmanager.v1.ControlFamily + 25, // 19: google.cloud.auditmanager.v1.ControlDetails.control:type_name -> google.cloud.auditmanager.v1.Control + 1, // 20: google.cloud.auditmanager.v1.ControlDetails.compliance_state:type_name -> google.cloud.auditmanager.v1.ComplianceState + 27, // 21: google.cloud.auditmanager.v1.ControlDetails.control_report_summary:type_name -> google.cloud.auditmanager.v1.ReportSummary + 7, // 22: google.cloud.auditmanager.v1.AuditManager.EnrollResource:input_type -> google.cloud.auditmanager.v1.EnrollResourceRequest + 8, // 23: google.cloud.auditmanager.v1.AuditManager.GenerateAuditScopeReport:input_type -> google.cloud.auditmanager.v1.GenerateAuditScopeReportRequest + 9, // 24: google.cloud.auditmanager.v1.AuditManager.GenerateAuditReport:input_type -> google.cloud.auditmanager.v1.GenerateAuditReportRequest + 13, // 25: google.cloud.auditmanager.v1.AuditManager.ListAuditReports:input_type -> google.cloud.auditmanager.v1.ListAuditReportsRequest + 15, // 26: google.cloud.auditmanager.v1.AuditManager.GetAuditReport:input_type -> google.cloud.auditmanager.v1.GetAuditReportRequest + 10, // 27: google.cloud.auditmanager.v1.AuditManager.GetResourceEnrollmentStatus:input_type -> google.cloud.auditmanager.v1.GetResourceEnrollmentStatusRequest + 11, // 28: google.cloud.auditmanager.v1.AuditManager.ListResourceEnrollmentStatuses:input_type -> google.cloud.auditmanager.v1.ListResourceEnrollmentStatusesRequest + 16, // 29: google.cloud.auditmanager.v1.AuditManager.ListControls:input_type -> google.cloud.auditmanager.v1.ListControlsRequest + 19, // 30: google.cloud.auditmanager.v1.AuditManager.EnrollResource:output_type -> google.cloud.auditmanager.v1.Enrollment + 20, // 31: google.cloud.auditmanager.v1.AuditManager.GenerateAuditScopeReport:output_type -> google.cloud.auditmanager.v1.AuditScopeReport + 31, // 32: google.cloud.auditmanager.v1.AuditManager.GenerateAuditReport:output_type -> google.longrunning.Operation + 14, // 33: google.cloud.auditmanager.v1.AuditManager.ListAuditReports:output_type -> google.cloud.auditmanager.v1.ListAuditReportsResponse + 23, // 34: google.cloud.auditmanager.v1.AuditManager.GetAuditReport:output_type -> google.cloud.auditmanager.v1.AuditReport + 22, // 35: google.cloud.auditmanager.v1.AuditManager.GetResourceEnrollmentStatus:output_type -> google.cloud.auditmanager.v1.ResourceEnrollmentStatus + 12, // 36: google.cloud.auditmanager.v1.AuditManager.ListResourceEnrollmentStatuses:output_type -> google.cloud.auditmanager.v1.ListResourceEnrollmentStatusesResponse + 17, // 37: google.cloud.auditmanager.v1.AuditManager.ListControls:output_type -> google.cloud.auditmanager.v1.ListControlsResponse + 30, // [30:38] is the sub-list for method output_type + 22, // [22:30] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name +} + +func init() { file_google_cloud_auditmanager_v1_auditmanager_proto_init() } +func file_google_cloud_auditmanager_v1_auditmanager_proto_init() { + if File_google_cloud_auditmanager_v1_auditmanager_proto != nil { + return + } + file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[2].OneofWrappers = []any{ + (*GenerateAuditReportRequest_GcsUri)(nil), + } + file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[13].OneofWrappers = []any{ + (*AuditScopeReport_ScopeReportContents)(nil), + } + file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[19].OneofWrappers = []any{ + (*DestinationDetails_GcsBucketUri)(nil), + } + file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes[22].OneofWrappers = []any{ + (*EnrollResourceRequest_EligibleDestination_EligibleGcsBucket)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_auditmanager_v1_auditmanager_proto_rawDesc, + NumEnums: 7, + NumMessages: 23, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_auditmanager_v1_auditmanager_proto_goTypes, + DependencyIndexes: file_google_cloud_auditmanager_v1_auditmanager_proto_depIdxs, + EnumInfos: file_google_cloud_auditmanager_v1_auditmanager_proto_enumTypes, + MessageInfos: file_google_cloud_auditmanager_v1_auditmanager_proto_msgTypes, + }.Build() + File_google_cloud_auditmanager_v1_auditmanager_proto = out.File + file_google_cloud_auditmanager_v1_auditmanager_proto_rawDesc = nil + file_google_cloud_auditmanager_v1_auditmanager_proto_goTypes = nil + file_google_cloud_auditmanager_v1_auditmanager_proto_depIdxs = nil +} diff --git a/auditmanager/apiv1main/auditmanagerpb/auditmanager_grpc.pb.go b/auditmanager/apiv1main/auditmanagerpb/auditmanager_grpc.pb.go new file mode 100644 index 000000000000..bdb05ea544e5 --- /dev/null +++ b/auditmanager/apiv1main/auditmanagerpb/auditmanager_grpc.pb.go @@ -0,0 +1,412 @@ +// Copyright 2026 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 +// +// http://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-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.25.7 +// source: google/cloud/auditmanager/v1/auditmanager.proto + +package auditmanagerpb + +import ( + context "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + AuditManager_EnrollResource_FullMethodName = "/google.cloud.auditmanager.v1.AuditManager/EnrollResource" + AuditManager_GenerateAuditScopeReport_FullMethodName = "/google.cloud.auditmanager.v1.AuditManager/GenerateAuditScopeReport" + AuditManager_GenerateAuditReport_FullMethodName = "/google.cloud.auditmanager.v1.AuditManager/GenerateAuditReport" + AuditManager_ListAuditReports_FullMethodName = "/google.cloud.auditmanager.v1.AuditManager/ListAuditReports" + AuditManager_GetAuditReport_FullMethodName = "/google.cloud.auditmanager.v1.AuditManager/GetAuditReport" + AuditManager_GetResourceEnrollmentStatus_FullMethodName = "/google.cloud.auditmanager.v1.AuditManager/GetResourceEnrollmentStatus" + AuditManager_ListResourceEnrollmentStatuses_FullMethodName = "/google.cloud.auditmanager.v1.AuditManager/ListResourceEnrollmentStatuses" + AuditManager_ListControls_FullMethodName = "/google.cloud.auditmanager.v1.AuditManager/ListControls" +) + +// AuditManagerClient is the client API for AuditManager service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type AuditManagerClient interface { + // Enrolls the customer resource(folder/project/organization) to the audit + // manager service by creating the audit managers Service Agent in customers + // workload and granting required permissions to the Service Agent. Please + // note that if enrollment request is made on the already enrolled workload + // then enrollment is executed overriding the existing set of destinations. + EnrollResource(ctx context.Context, in *EnrollResourceRequest, opts ...grpc.CallOption) (*Enrollment, error) + // Generates a demo report highlighting different responsibilities + // (Google/Customer/ shared) required to be fulfilled for the customer's + // workload to be compliant with the given standard. + GenerateAuditScopeReport(ctx context.Context, in *GenerateAuditScopeReportRequest, opts ...grpc.CallOption) (*AuditScopeReport, error) + // Register the Audit Report generation requests and returns the OperationId + // using which the customer can track the report generation progress. + GenerateAuditReport(ctx context.Context, in *GenerateAuditReportRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists audit reports in the selected parent scope + ListAuditReports(ctx context.Context, in *ListAuditReportsRequest, opts ...grpc.CallOption) (*ListAuditReportsResponse, error) + // Get the overall audit report + GetAuditReport(ctx context.Context, in *GetAuditReportRequest, opts ...grpc.CallOption) (*AuditReport, error) + // Get a resource along with its enrollment status. + GetResourceEnrollmentStatus(ctx context.Context, in *GetResourceEnrollmentStatusRequest, opts ...grpc.CallOption) (*ResourceEnrollmentStatus, error) + // Fetches all resources under the parent along with their enrollment. + ListResourceEnrollmentStatuses(ctx context.Context, in *ListResourceEnrollmentStatusesRequest, opts ...grpc.CallOption) (*ListResourceEnrollmentStatusesResponse, error) + // Gets controls needed to be implemented to be compliant to a standard. + ListControls(ctx context.Context, in *ListControlsRequest, opts ...grpc.CallOption) (*ListControlsResponse, error) +} + +type auditManagerClient struct { + cc grpc.ClientConnInterface +} + +func NewAuditManagerClient(cc grpc.ClientConnInterface) AuditManagerClient { + return &auditManagerClient{cc} +} + +func (c *auditManagerClient) EnrollResource(ctx context.Context, in *EnrollResourceRequest, opts ...grpc.CallOption) (*Enrollment, error) { + out := new(Enrollment) + err := c.cc.Invoke(ctx, AuditManager_EnrollResource_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *auditManagerClient) GenerateAuditScopeReport(ctx context.Context, in *GenerateAuditScopeReportRequest, opts ...grpc.CallOption) (*AuditScopeReport, error) { + out := new(AuditScopeReport) + err := c.cc.Invoke(ctx, AuditManager_GenerateAuditScopeReport_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *auditManagerClient) GenerateAuditReport(ctx context.Context, in *GenerateAuditReportRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, AuditManager_GenerateAuditReport_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *auditManagerClient) ListAuditReports(ctx context.Context, in *ListAuditReportsRequest, opts ...grpc.CallOption) (*ListAuditReportsResponse, error) { + out := new(ListAuditReportsResponse) + err := c.cc.Invoke(ctx, AuditManager_ListAuditReports_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *auditManagerClient) GetAuditReport(ctx context.Context, in *GetAuditReportRequest, opts ...grpc.CallOption) (*AuditReport, error) { + out := new(AuditReport) + err := c.cc.Invoke(ctx, AuditManager_GetAuditReport_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *auditManagerClient) GetResourceEnrollmentStatus(ctx context.Context, in *GetResourceEnrollmentStatusRequest, opts ...grpc.CallOption) (*ResourceEnrollmentStatus, error) { + out := new(ResourceEnrollmentStatus) + err := c.cc.Invoke(ctx, AuditManager_GetResourceEnrollmentStatus_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *auditManagerClient) ListResourceEnrollmentStatuses(ctx context.Context, in *ListResourceEnrollmentStatusesRequest, opts ...grpc.CallOption) (*ListResourceEnrollmentStatusesResponse, error) { + out := new(ListResourceEnrollmentStatusesResponse) + err := c.cc.Invoke(ctx, AuditManager_ListResourceEnrollmentStatuses_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *auditManagerClient) ListControls(ctx context.Context, in *ListControlsRequest, opts ...grpc.CallOption) (*ListControlsResponse, error) { + out := new(ListControlsResponse) + err := c.cc.Invoke(ctx, AuditManager_ListControls_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AuditManagerServer is the server API for AuditManager service. +// All implementations should embed UnimplementedAuditManagerServer +// for forward compatibility +type AuditManagerServer interface { + // Enrolls the customer resource(folder/project/organization) to the audit + // manager service by creating the audit managers Service Agent in customers + // workload and granting required permissions to the Service Agent. Please + // note that if enrollment request is made on the already enrolled workload + // then enrollment is executed overriding the existing set of destinations. + EnrollResource(context.Context, *EnrollResourceRequest) (*Enrollment, error) + // Generates a demo report highlighting different responsibilities + // (Google/Customer/ shared) required to be fulfilled for the customer's + // workload to be compliant with the given standard. + GenerateAuditScopeReport(context.Context, *GenerateAuditScopeReportRequest) (*AuditScopeReport, error) + // Register the Audit Report generation requests and returns the OperationId + // using which the customer can track the report generation progress. + GenerateAuditReport(context.Context, *GenerateAuditReportRequest) (*longrunningpb.Operation, error) + // Lists audit reports in the selected parent scope + ListAuditReports(context.Context, *ListAuditReportsRequest) (*ListAuditReportsResponse, error) + // Get the overall audit report + GetAuditReport(context.Context, *GetAuditReportRequest) (*AuditReport, error) + // Get a resource along with its enrollment status. + GetResourceEnrollmentStatus(context.Context, *GetResourceEnrollmentStatusRequest) (*ResourceEnrollmentStatus, error) + // Fetches all resources under the parent along with their enrollment. + ListResourceEnrollmentStatuses(context.Context, *ListResourceEnrollmentStatusesRequest) (*ListResourceEnrollmentStatusesResponse, error) + // Gets controls needed to be implemented to be compliant to a standard. + ListControls(context.Context, *ListControlsRequest) (*ListControlsResponse, error) +} + +// UnimplementedAuditManagerServer should be embedded to have forward compatible implementations. +type UnimplementedAuditManagerServer struct { +} + +func (UnimplementedAuditManagerServer) EnrollResource(context.Context, *EnrollResourceRequest) (*Enrollment, error) { + return nil, status.Errorf(codes.Unimplemented, "method EnrollResource not implemented") +} +func (UnimplementedAuditManagerServer) GenerateAuditScopeReport(context.Context, *GenerateAuditScopeReportRequest) (*AuditScopeReport, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateAuditScopeReport not implemented") +} +func (UnimplementedAuditManagerServer) GenerateAuditReport(context.Context, *GenerateAuditReportRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateAuditReport not implemented") +} +func (UnimplementedAuditManagerServer) ListAuditReports(context.Context, *ListAuditReportsRequest) (*ListAuditReportsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListAuditReports not implemented") +} +func (UnimplementedAuditManagerServer) GetAuditReport(context.Context, *GetAuditReportRequest) (*AuditReport, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAuditReport not implemented") +} +func (UnimplementedAuditManagerServer) GetResourceEnrollmentStatus(context.Context, *GetResourceEnrollmentStatusRequest) (*ResourceEnrollmentStatus, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetResourceEnrollmentStatus not implemented") +} +func (UnimplementedAuditManagerServer) ListResourceEnrollmentStatuses(context.Context, *ListResourceEnrollmentStatusesRequest) (*ListResourceEnrollmentStatusesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListResourceEnrollmentStatuses not implemented") +} +func (UnimplementedAuditManagerServer) ListControls(context.Context, *ListControlsRequest) (*ListControlsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListControls not implemented") +} + +// UnsafeAuditManagerServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to AuditManagerServer will +// result in compilation errors. +type UnsafeAuditManagerServer interface { + mustEmbedUnimplementedAuditManagerServer() +} + +func RegisterAuditManagerServer(s grpc.ServiceRegistrar, srv AuditManagerServer) { + s.RegisterService(&AuditManager_ServiceDesc, srv) +} + +func _AuditManager_EnrollResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EnrollResourceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuditManagerServer).EnrollResource(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AuditManager_EnrollResource_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuditManagerServer).EnrollResource(ctx, req.(*EnrollResourceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuditManager_GenerateAuditScopeReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateAuditScopeReportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuditManagerServer).GenerateAuditScopeReport(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AuditManager_GenerateAuditScopeReport_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuditManagerServer).GenerateAuditScopeReport(ctx, req.(*GenerateAuditScopeReportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuditManager_GenerateAuditReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateAuditReportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuditManagerServer).GenerateAuditReport(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AuditManager_GenerateAuditReport_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuditManagerServer).GenerateAuditReport(ctx, req.(*GenerateAuditReportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuditManager_ListAuditReports_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListAuditReportsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuditManagerServer).ListAuditReports(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AuditManager_ListAuditReports_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuditManagerServer).ListAuditReports(ctx, req.(*ListAuditReportsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuditManager_GetAuditReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAuditReportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuditManagerServer).GetAuditReport(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AuditManager_GetAuditReport_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuditManagerServer).GetAuditReport(ctx, req.(*GetAuditReportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuditManager_GetResourceEnrollmentStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResourceEnrollmentStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuditManagerServer).GetResourceEnrollmentStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AuditManager_GetResourceEnrollmentStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuditManagerServer).GetResourceEnrollmentStatus(ctx, req.(*GetResourceEnrollmentStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuditManager_ListResourceEnrollmentStatuses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListResourceEnrollmentStatusesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuditManagerServer).ListResourceEnrollmentStatuses(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AuditManager_ListResourceEnrollmentStatuses_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuditManagerServer).ListResourceEnrollmentStatuses(ctx, req.(*ListResourceEnrollmentStatusesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuditManager_ListControls_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListControlsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuditManagerServer).ListControls(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AuditManager_ListControls_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuditManagerServer).ListControls(ctx, req.(*ListControlsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// AuditManager_ServiceDesc is the grpc.ServiceDesc for AuditManager service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var AuditManager_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.auditmanager.v1.AuditManager", + HandlerType: (*AuditManagerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "EnrollResource", + Handler: _AuditManager_EnrollResource_Handler, + }, + { + MethodName: "GenerateAuditScopeReport", + Handler: _AuditManager_GenerateAuditScopeReport_Handler, + }, + { + MethodName: "GenerateAuditReport", + Handler: _AuditManager_GenerateAuditReport_Handler, + }, + { + MethodName: "ListAuditReports", + Handler: _AuditManager_ListAuditReports_Handler, + }, + { + MethodName: "GetAuditReport", + Handler: _AuditManager_GetAuditReport_Handler, + }, + { + MethodName: "GetResourceEnrollmentStatus", + Handler: _AuditManager_GetResourceEnrollmentStatus_Handler, + }, + { + MethodName: "ListResourceEnrollmentStatuses", + Handler: _AuditManager_ListResourceEnrollmentStatuses_Handler, + }, + { + MethodName: "ListControls", + Handler: _AuditManager_ListControls_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/auditmanager/v1/auditmanager.proto", +} diff --git a/auditmanager/go.mod b/auditmanager/go.mod new file mode 100644 index 000000000000..a8728cd0f90f --- /dev/null +++ b/auditmanager/go.mod @@ -0,0 +1,40 @@ +module cloud.google.com/go/auditmanager + +go 1.24.0 + +require ( + cloud.google.com/go/longrunning v0.8.0 + github.com/googleapis/gax-go/v2 v2.17.0 + google.golang.org/api v0.266.0 + google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57 + google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 + google.golang.org/grpc v1.78.0 + google.golang.org/protobuf v1.36.11 +) + +require ( + cloud.google.com/go v0.123.0 // indirect + cloud.google.com/go/auth v0.18.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect + cloud.google.com/go/compute/metadata v0.9.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/go-logr/logr v1.4.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/google/s2a-go v0.1.9 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.11 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.39.0 // indirect + go.opentelemetry.io/otel/metric v1.39.0 // indirect + go.opentelemetry.io/otel/trace v1.39.0 // indirect + golang.org/x/crypto v0.47.0 // indirect + golang.org/x/net v0.49.0 // indirect + golang.org/x/oauth2 v0.35.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.40.0 // indirect + golang.org/x/text v0.33.0 // indirect + golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 // indirect +) diff --git a/auditmanager/go.sum b/auditmanager/go.sum new file mode 100644 index 000000000000..9890fd9732e5 --- /dev/null +++ b/auditmanager/go.sum @@ -0,0 +1,92 @@ +cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= +cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= +cloud.google.com/go/auth v0.18.1 h1:IwTEx92GFUo2pJ6Qea0EU3zYvKnTAeRCODxfA/G5UWs= +cloud.google.com/go/auth v0.18.1/go.mod h1:GfTYoS9G3CWpRA3Va9doKN9mjPGRS+v41jmZAhBzbrA= +cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= +cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= +cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= +cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +cloud.google.com/go/longrunning v0.8.0 h1:LiKK77J3bx5gDLi4SMViHixjD2ohlkwBi+mKA7EhfW8= +cloud.google.com/go/longrunning v0.8.0/go.mod h1:UmErU2Onzi+fKDg2gR7dusz11Pe26aknR4kHmJJqIfk= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0= +github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329 h1:K+fnvUM0VZ7ZFJf0n4L/BRlnsb9pL/GuDG6FqaH+PwM= +github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo= +github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs= +github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= +github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= +github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.11 h1:vAe81Msw+8tKUxi2Dqh/NZMz7475yUvmRIkXr4oN2ao= +github.com/googleapis/enterprise-certificate-proxy v0.3.11/go.mod h1:RFV7MUdlb7AgEq2v7FmMCfeSMCllAzWxFgRdusoGks8= +github.com/googleapis/gax-go/v2 v2.17.0 h1:RksgfBpxqff0EZkDWYuz9q/uWsTVz+kf43LsZ1J6SMc= +github.com/googleapis/gax-go/v2 v2.17.0/go.mod h1:mzaqghpQp4JDh3HvADwrat+6M3MOIDp5YKHhb9PAgDY= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 h1:q4XOmH/0opmeuJtPsbFNivyl7bCt7yRBbeEm2sC/XtQ= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0/go.mod h1:snMWehoOh2wsEwnvvwtDyFCxVeDAODenXHtn5vzrKjo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= +go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= +go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= +go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= +go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= +go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= +go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= +go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= +go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= +go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= +golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= +golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= +golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= +golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/api v0.266.0 h1:hco+oNCf9y7DmLeAtHJi/uBAY7n/7XC9mZPxu1ROiyk= +google.golang.org/api v0.266.0/go.mod h1:Jzc0+ZfLnyvXma3UtaTl023TdhZu6OMBP9tJ+0EmFD0= +google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57 h1:uZSB/r2MjH9IsqpG2vRNSV1Juteix90oHe8oTcLW9tk= +google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:nGuPfp0lnDJcJD0J47StV0Skgnw3qMSQhjsLKiejq5Y= +google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= +google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 h1:Jr5R2J6F6qWyzINc+4AM8t5pfUz6beZpHp678GNrMbE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc= +google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/auditmanager/internal/version.go b/auditmanager/internal/version.go new file mode 100644 index 000000000000..af6ecf6a609a --- /dev/null +++ b/auditmanager/internal/version.go @@ -0,0 +1,20 @@ +// Copyright 2026 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 +// +// http://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 gapicgen. DO NOT EDIT. + +package internal + +// Version is the current tagged release of the library. +const Version = "0.0.0" diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/CancelOperation/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/CancelOperation/main.go new file mode 100644 index 000000000000..b5d8fd678e40 --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_CancelOperation_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END auditmanager_v1_generated_AuditManager_CancelOperation_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/DeleteOperation/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/DeleteOperation/main.go new file mode 100644 index 000000000000..7426b01a0445 --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_DeleteOperation_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END auditmanager_v1_generated_AuditManager_DeleteOperation_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/EnrollResource/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/EnrollResource/main.go new file mode 100644 index 000000000000..15a28aad4dd7 --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/EnrollResource/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_EnrollResource_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.EnrollResourceRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#EnrollResourceRequest. + } + resp, err := c.EnrollResource(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END auditmanager_v1_generated_AuditManager_EnrollResource_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/GenerateAuditReport/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/GenerateAuditReport/main.go new file mode 100644 index 000000000000..1cb8257d890b --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/GenerateAuditReport/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_GenerateAuditReport_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.GenerateAuditReportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#GenerateAuditReportRequest. + } + op, err := c.GenerateAuditReport(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END auditmanager_v1_generated_AuditManager_GenerateAuditReport_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/GenerateAuditScopeReport/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/GenerateAuditScopeReport/main.go new file mode 100644 index 000000000000..cf76b63e0a7c --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/GenerateAuditScopeReport/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_GenerateAuditScopeReport_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.GenerateAuditScopeReportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#GenerateAuditScopeReportRequest. + } + resp, err := c.GenerateAuditScopeReport(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END auditmanager_v1_generated_AuditManager_GenerateAuditScopeReport_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/GetAuditReport/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/GetAuditReport/main.go new file mode 100644 index 000000000000..0e6340796cf2 --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/GetAuditReport/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_GetAuditReport_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.GetAuditReportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#GetAuditReportRequest. + } + resp, err := c.GetAuditReport(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END auditmanager_v1_generated_AuditManager_GetAuditReport_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/GetLocation/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/GetLocation/main.go new file mode 100644 index 000000000000..d06d5e1293b4 --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_GetLocation_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END auditmanager_v1_generated_AuditManager_GetLocation_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/GetOperation/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/GetOperation/main.go new file mode 100644 index 000000000000..78ff18dc121f --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_GetOperation_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END auditmanager_v1_generated_AuditManager_GetOperation_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/GetResourceEnrollmentStatus/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/GetResourceEnrollmentStatus/main.go new file mode 100644 index 000000000000..0547428ad28a --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/GetResourceEnrollmentStatus/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_GetResourceEnrollmentStatus_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.GetResourceEnrollmentStatusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#GetResourceEnrollmentStatusRequest. + } + resp, err := c.GetResourceEnrollmentStatus(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END auditmanager_v1_generated_AuditManager_GetResourceEnrollmentStatus_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/ListAuditReports/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/ListAuditReports/main.go new file mode 100644 index 000000000000..a5c8943ab32d --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/ListAuditReports/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_ListAuditReports_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.ListAuditReportsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#ListAuditReportsRequest. + } + it := c.ListAuditReports(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*auditmanagerpb.ListAuditReportsResponse) + } +} + +// [END auditmanager_v1_generated_AuditManager_ListAuditReports_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/ListControls/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/ListControls/main.go new file mode 100644 index 000000000000..466dba50c8c3 --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/ListControls/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_ListControls_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.ListControlsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#ListControlsRequest. + } + it := c.ListControls(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*auditmanagerpb.ListControlsResponse) + } +} + +// [END auditmanager_v1_generated_AuditManager_ListControls_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/ListLocations/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/ListLocations/main.go new file mode 100644 index 000000000000..83dc84fd85cb --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/ListLocations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_ListLocations_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*locationpb.ListLocationsResponse) + } +} + +// [END auditmanager_v1_generated_AuditManager_ListLocations_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/ListOperations/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/ListOperations/main.go new file mode 100644 index 000000000000..3dea8a6ecb89 --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/ListOperations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_ListOperations_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} + +// [END auditmanager_v1_generated_AuditManager_ListOperations_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/Client/ListResourceEnrollmentStatuses/main.go b/internal/generated/snippets/auditmanager/apiv1/Client/ListResourceEnrollmentStatuses/main.go new file mode 100644 index 000000000000..f865a01c11ae --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/Client/ListResourceEnrollmentStatuses/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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. + +// [START auditmanager_v1_generated_AuditManager_ListResourceEnrollmentStatuses_sync] + +package main + +import ( + "context" + + auditmanager "cloud.google.com/go/auditmanager/apiv1" + auditmanagerpb "cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := auditmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &auditmanagerpb.ListResourceEnrollmentStatusesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/auditmanager/apiv1main/auditmanagerpb#ListResourceEnrollmentStatusesRequest. + } + it := c.ListResourceEnrollmentStatuses(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*auditmanagerpb.ListResourceEnrollmentStatusesResponse) + } +} + +// [END auditmanager_v1_generated_AuditManager_ListResourceEnrollmentStatuses_sync] diff --git a/internal/generated/snippets/auditmanager/apiv1/snippet_metadata.google.cloud.auditmanager.v1.json b/internal/generated/snippets/auditmanager/apiv1/snippet_metadata.google.cloud.auditmanager.v1.json new file mode 100644 index 000000000000..1ac5161697ed --- /dev/null +++ b/internal/generated/snippets/auditmanager/apiv1/snippet_metadata.google.cloud.auditmanager.v1.json @@ -0,0 +1,657 @@ +{ + "clientLibrary": { + "name": "cloud.google.com/go/auditmanager/apiv1", + "version": "0.0.0", + "language": "GO", + "apis": [ + { + "id": "google.cloud.auditmanager.v1", + "version": "v1" + } + ] + }, + "snippets": [ + { + "regionTag": "auditmanager_v1_generated_AuditManager_CancelOperation_sync", + "title": "auditmanager CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "Client/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.auditmanager.v1.Client.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_DeleteOperation_sync", + "title": "auditmanager DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "Client/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.auditmanager.v1.Client.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_EnrollResource_sync", + "title": "auditmanager EnrollResource Sample", + "description": "EnrollResource enrolls the customer resource(folder/project/organization) to the audit\nmanager service by creating the audit managers Service Agent in customers\nworkload and granting required permissions to the Service Agent. Please\nnote that if enrollment request is made on the already enrolled workload\nthen enrollment is executed overriding the existing set of destinations.", + "file": "Client/EnrollResource/main.go", + "language": "GO", + "clientMethod": { + "shortName": "EnrollResource", + "fullName": "google.cloud.auditmanager.v1.Client.EnrollResource", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "auditmanagerpb.EnrollResourceRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*auditmanagerpb.Enrollment", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "EnrollResource", + "fullName": "google.cloud.auditmanager.v1.AuditManager.EnrollResource", + "service": { + "shortName": "AuditManager", + "fullName": "google.cloud.auditmanager.v1.AuditManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_GenerateAuditReport_sync", + "title": "auditmanager GenerateAuditReport Sample", + "description": "GenerateAuditReport register the Audit Report generation requests and returns the OperationId\nusing which the customer can track the report generation progress.", + "file": "Client/GenerateAuditReport/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GenerateAuditReport", + "fullName": "google.cloud.auditmanager.v1.Client.GenerateAuditReport", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "auditmanagerpb.GenerateAuditReportRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "GenerateAuditReportOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "GenerateAuditReport", + "fullName": "google.cloud.auditmanager.v1.AuditManager.GenerateAuditReport", + "service": { + "shortName": "AuditManager", + "fullName": "google.cloud.auditmanager.v1.AuditManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_GenerateAuditScopeReport_sync", + "title": "auditmanager GenerateAuditScopeReport Sample", + "description": "GenerateAuditScopeReport generates a demo report highlighting different responsibilities\n(Google/Customer/ shared) required to be fulfilled for the customer's\nworkload to be compliant with the given standard.", + "file": "Client/GenerateAuditScopeReport/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GenerateAuditScopeReport", + "fullName": "google.cloud.auditmanager.v1.Client.GenerateAuditScopeReport", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "auditmanagerpb.GenerateAuditScopeReportRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*auditmanagerpb.AuditScopeReport", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "GenerateAuditScopeReport", + "fullName": "google.cloud.auditmanager.v1.AuditManager.GenerateAuditScopeReport", + "service": { + "shortName": "AuditManager", + "fullName": "google.cloud.auditmanager.v1.AuditManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_GetAuditReport_sync", + "title": "auditmanager GetAuditReport Sample", + "description": "GetAuditReport get the overall audit report", + "file": "Client/GetAuditReport/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetAuditReport", + "fullName": "google.cloud.auditmanager.v1.Client.GetAuditReport", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "auditmanagerpb.GetAuditReportRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*auditmanagerpb.AuditReport", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "GetAuditReport", + "fullName": "google.cloud.auditmanager.v1.AuditManager.GetAuditReport", + "service": { + "shortName": "AuditManager", + "fullName": "google.cloud.auditmanager.v1.AuditManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_GetLocation_sync", + "title": "auditmanager GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "Client/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.auditmanager.v1.Client.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_GetOperation_sync", + "title": "auditmanager GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "Client/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.auditmanager.v1.Client.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_GetResourceEnrollmentStatus_sync", + "title": "auditmanager GetResourceEnrollmentStatus Sample", + "description": "GetResourceEnrollmentStatus get a resource along with its enrollment status.", + "file": "Client/GetResourceEnrollmentStatus/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetResourceEnrollmentStatus", + "fullName": "google.cloud.auditmanager.v1.Client.GetResourceEnrollmentStatus", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "auditmanagerpb.GetResourceEnrollmentStatusRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*auditmanagerpb.ResourceEnrollmentStatus", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "GetResourceEnrollmentStatus", + "fullName": "google.cloud.auditmanager.v1.AuditManager.GetResourceEnrollmentStatus", + "service": { + "shortName": "AuditManager", + "fullName": "google.cloud.auditmanager.v1.AuditManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_ListAuditReports_sync", + "title": "auditmanager ListAuditReports Sample", + "description": "ListAuditReports lists audit reports in the selected parent scope", + "file": "Client/ListAuditReports/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListAuditReports", + "fullName": "google.cloud.auditmanager.v1.Client.ListAuditReports", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "auditmanagerpb.ListAuditReportsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "AuditReportIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "ListAuditReports", + "fullName": "google.cloud.auditmanager.v1.AuditManager.ListAuditReports", + "service": { + "shortName": "AuditManager", + "fullName": "google.cloud.auditmanager.v1.AuditManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_ListControls_sync", + "title": "auditmanager ListControls Sample", + "description": "ListControls gets controls needed to be implemented to be compliant to a standard.", + "file": "Client/ListControls/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListControls", + "fullName": "google.cloud.auditmanager.v1.Client.ListControls", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "auditmanagerpb.ListControlsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ControlIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "ListControls", + "fullName": "google.cloud.auditmanager.v1.AuditManager.ListControls", + "service": { + "shortName": "AuditManager", + "fullName": "google.cloud.auditmanager.v1.AuditManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_ListLocations_sync", + "title": "auditmanager ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.\nThis method can be called in two ways: \n\n* **List all public locations: ** Use the path `GET /v1/locations`.\n* **List project-visible locations: ** Use the path\n`GET /v1/projects/{project_id}/locations`. This may include public\nlocations as well as private or other locations specifically visible\nto the project.", + "file": "Client/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.auditmanager.v1.Client.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_ListOperations_sync", + "title": "auditmanager ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "Client/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.auditmanager.v1.Client.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "auditmanager_v1_generated_AuditManager_ListResourceEnrollmentStatuses_sync", + "title": "auditmanager ListResourceEnrollmentStatuses Sample", + "description": "ListResourceEnrollmentStatuses fetches all resources under the parent along with their enrollment.", + "file": "Client/ListResourceEnrollmentStatuses/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListResourceEnrollmentStatuses", + "fullName": "google.cloud.auditmanager.v1.Client.ListResourceEnrollmentStatuses", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "auditmanagerpb.ListResourceEnrollmentStatusesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ResourceEnrollmentStatusIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.auditmanager.v1.Client" + }, + "method": { + "shortName": "ListResourceEnrollmentStatuses", + "fullName": "google.cloud.auditmanager.v1.AuditManager.ListResourceEnrollmentStatuses", + "service": { + "shortName": "AuditManager", + "fullName": "google.cloud.auditmanager.v1.AuditManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/internal/generated/snippets/go.mod b/internal/generated/snippets/go.mod index 015beff43a01..994a662a6f81 100644 --- a/internal/generated/snippets/go.mod +++ b/internal/generated/snippets/go.mod @@ -7,7 +7,7 @@ require ( cloud.google.com/go/accessapproval v1.8.8 cloud.google.com/go/accesscontextmanager v1.9.7 cloud.google.com/go/advisorynotifications v0.0.0-00010101000000-000000000000 - cloud.google.com/go/aiplatform v1.114.0 + cloud.google.com/go/aiplatform v1.115.0 cloud.google.com/go/alloydb v0.0.0-00010101000000-000000000000 cloud.google.com/go/analytics v0.30.1 cloud.google.com/go/apigateway v1.7.7 @@ -23,7 +23,7 @@ require ( cloud.google.com/go/baremetalsolution v1.4.0 cloud.google.com/go/batch v1.14.0 cloud.google.com/go/beyondcorp v1.2.0 - cloud.google.com/go/bigquery v1.72.0 + cloud.google.com/go/bigquery v1.73.1 cloud.google.com/go/bigquery/v2 v2.0.0 cloud.google.com/go/billing v1.21.0 cloud.google.com/go/binaryauthorization v1.10.0 @@ -35,7 +35,7 @@ require ( cloud.google.com/go/compute v1.54.0 cloud.google.com/go/confidentialcomputing v0.1.0 cloud.google.com/go/contactcenterinsights v1.17.4 - cloud.google.com/go/container v1.45.0 + cloud.google.com/go/container v1.46.0 cloud.google.com/go/containeranalysis v0.14.2 cloud.google.com/go/datacatalog v1.26.1 cloud.google.com/go/dataflow v0.11.1 @@ -46,13 +46,13 @@ require ( cloud.google.com/go/dataplex v1.28.0 cloud.google.com/go/dataproc/v2 v2.15.0 cloud.google.com/go/dataqna v0.9.8 - cloud.google.com/go/datastore v1.21.0 + cloud.google.com/go/datastore v1.22.0 cloud.google.com/go/datastream v1.15.1 cloud.google.com/go/deploy v1.27.3 - cloud.google.com/go/dialogflow v1.74.0 + cloud.google.com/go/dialogflow v1.75.0 cloud.google.com/go/discoveryengine v0.0.0-00010101000000-000000000000 cloud.google.com/go/dlp v1.28.0 - cloud.google.com/go/documentai v1.39.0 + cloud.google.com/go/documentai v1.40.0 cloud.google.com/go/domains v0.10.7 cloud.google.com/go/edgecontainer v1.4.4 cloud.google.com/go/errorreporting v0.4.0 @@ -73,7 +73,7 @@ require ( cloud.google.com/go/kms v1.25.0 cloud.google.com/go/language v1.14.6 cloud.google.com/go/lifesciences v0.10.7 - cloud.google.com/go/logging v1.13.1 + cloud.google.com/go/logging v1.13.2 cloud.google.com/go/longrunning v0.8.0 cloud.google.com/go/managedidentities v1.7.7 cloud.google.com/go/maps v1.26.0 @@ -82,7 +82,7 @@ require ( cloud.google.com/go/metastore v1.14.8 cloud.google.com/go/monitoring v1.24.3 cloud.google.com/go/networkconnectivity v1.20.0 - cloud.google.com/go/networkmanagement v1.21.0 + cloud.google.com/go/networkmanagement v1.22.0 cloud.google.com/go/networksecurity v0.11.0 cloud.google.com/go/notebooks v1.12.7 cloud.google.com/go/optimization v1.7.7 @@ -99,7 +99,7 @@ require ( cloud.google.com/go/recommender v1.13.6 cloud.google.com/go/redis v1.18.3 cloud.google.com/go/resourcemanager v1.10.7 - cloud.google.com/go/retail v1.25.1 + cloud.google.com/go/retail v1.26.0 cloud.google.com/go/run v1.15.0 cloud.google.com/go/scheduler v1.11.8 cloud.google.com/go/secretmanager v1.16.0 @@ -131,7 +131,7 @@ require ( cloud.google.com/go/workflows v1.14.3 cloud.google.com/go/workstations v0.0.0-00010101000000-000000000000 google.golang.org/api v0.266.0 - google.golang.org/genproto v0.0.0-20260128011058-8636f8732409 + google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57 ) require ( @@ -140,6 +140,7 @@ require ( cloud.google.com/go/apiregistry v0.0.0-00010101000000-000000000000 cloud.google.com/go/apphub v0.0.0-00010101000000-000000000000 cloud.google.com/go/apps v0.0.0-00010101000000-000000000000 + cloud.google.com/go/auditmanager v0.0.0-00010101000000-000000000000 cloud.google.com/go/backupdr v0.0.0-00010101000000-000000000000 cloud.google.com/go/capacityplanner v0.0.0-00010101000000-000000000000 cloud.google.com/go/chat v0.0.0-00010101000000-000000000000 @@ -589,4 +590,6 @@ replace cloud.google.com/go/apiregistry => ../../../apiregistry replace cloud.google.com/go/cloudsecuritycompliance => ../../../cloudsecuritycompliance +replace cloud.google.com/go/auditmanager => ../../../auditmanager + replace cloud.google.com/go/datamanager => ../../../datamanager diff --git a/internal/generated/snippets/go.sum b/internal/generated/snippets/go.sum index 8f6b6483fe1e..e3313c28732d 100644 --- a/internal/generated/snippets/go.sum +++ b/internal/generated/snippets/go.sum @@ -72,8 +72,8 @@ gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= google.golang.org/api v0.266.0 h1:hco+oNCf9y7DmLeAtHJi/uBAY7n/7XC9mZPxu1ROiyk= google.golang.org/api v0.266.0/go.mod h1:Jzc0+ZfLnyvXma3UtaTl023TdhZu6OMBP9tJ+0EmFD0= -google.golang.org/genproto v0.0.0-20260128011058-8636f8732409 h1:VQZ/yAbAtjkHgH80teYd2em3xtIkkHd7ZhqfH2N9CsM= -google.golang.org/genproto v0.0.0-20260128011058-8636f8732409/go.mod h1:rxKD3IEILWEu3P44seeNOAwZN4SaoKaQ/2eTg4mM6EM= +google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57 h1:uZSB/r2MjH9IsqpG2vRNSV1Juteix90oHe8oTcLW9tk= +google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:nGuPfp0lnDJcJD0J47StV0Skgnw3qMSQhjsLKiejq5Y= google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 h1:Jr5R2J6F6qWyzINc+4AM8t5pfUz6beZpHp678GNrMbE=