mirror of
https://github.com/moby/moby.git
synced 2026-01-11 02:31:44 +00:00
3902 lines
140 KiB
Go
3902 lines
140 KiB
Go
// Copyright 2025 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 logging
|
||
|
||
import (
|
||
"bytes"
|
||
"context"
|
||
"fmt"
|
||
"log/slog"
|
||
"math"
|
||
"net/http"
|
||
"net/url"
|
||
"time"
|
||
|
||
loggingpb "cloud.google.com/go/logging/apiv2/loggingpb"
|
||
"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"
|
||
"google.golang.org/grpc"
|
||
"google.golang.org/grpc/codes"
|
||
"google.golang.org/protobuf/encoding/protojson"
|
||
"google.golang.org/protobuf/proto"
|
||
)
|
||
|
||
var newConfigClientHook clientHook
|
||
|
||
// ConfigCallOptions contains the retry settings for each method of ConfigClient.
|
||
type ConfigCallOptions struct {
|
||
ListBuckets []gax.CallOption
|
||
GetBucket []gax.CallOption
|
||
CreateBucketAsync []gax.CallOption
|
||
UpdateBucketAsync []gax.CallOption
|
||
CreateBucket []gax.CallOption
|
||
UpdateBucket []gax.CallOption
|
||
DeleteBucket []gax.CallOption
|
||
UndeleteBucket []gax.CallOption
|
||
ListViews []gax.CallOption
|
||
GetView []gax.CallOption
|
||
CreateView []gax.CallOption
|
||
UpdateView []gax.CallOption
|
||
DeleteView []gax.CallOption
|
||
ListSinks []gax.CallOption
|
||
GetSink []gax.CallOption
|
||
CreateSink []gax.CallOption
|
||
UpdateSink []gax.CallOption
|
||
DeleteSink []gax.CallOption
|
||
CreateLink []gax.CallOption
|
||
DeleteLink []gax.CallOption
|
||
ListLinks []gax.CallOption
|
||
GetLink []gax.CallOption
|
||
ListExclusions []gax.CallOption
|
||
GetExclusion []gax.CallOption
|
||
CreateExclusion []gax.CallOption
|
||
UpdateExclusion []gax.CallOption
|
||
DeleteExclusion []gax.CallOption
|
||
GetCmekSettings []gax.CallOption
|
||
UpdateCmekSettings []gax.CallOption
|
||
GetSettings []gax.CallOption
|
||
UpdateSettings []gax.CallOption
|
||
CopyLogEntries []gax.CallOption
|
||
CancelOperation []gax.CallOption
|
||
GetOperation []gax.CallOption
|
||
ListOperations []gax.CallOption
|
||
}
|
||
|
||
func defaultConfigGRPCClientOptions() []option.ClientOption {
|
||
return []option.ClientOption{
|
||
internaloption.WithDefaultEndpoint("logging.googleapis.com:443"),
|
||
internaloption.WithDefaultEndpointTemplate("logging.UNIVERSE_DOMAIN:443"),
|
||
internaloption.WithDefaultMTLSEndpoint("logging.mtls.googleapis.com:443"),
|
||
internaloption.WithDefaultUniverseDomain("googleapis.com"),
|
||
internaloption.WithDefaultAudience("https://logging.googleapis.com/"),
|
||
internaloption.WithDefaultScopes(DefaultAuthScopes()...),
|
||
internaloption.EnableJwtWithScope(),
|
||
internaloption.EnableNewAuthLibrary(),
|
||
option.WithGRPCDialOption(grpc.WithDefaultCallOptions(
|
||
grpc.MaxCallRecvMsgSize(math.MaxInt32))),
|
||
}
|
||
}
|
||
|
||
func defaultConfigCallOptions() *ConfigCallOptions {
|
||
return &ConfigCallOptions{
|
||
ListBuckets: []gax.CallOption{},
|
||
GetBucket: []gax.CallOption{},
|
||
CreateBucketAsync: []gax.CallOption{},
|
||
UpdateBucketAsync: []gax.CallOption{},
|
||
CreateBucket: []gax.CallOption{},
|
||
UpdateBucket: []gax.CallOption{},
|
||
DeleteBucket: []gax.CallOption{},
|
||
UndeleteBucket: []gax.CallOption{},
|
||
ListViews: []gax.CallOption{},
|
||
GetView: []gax.CallOption{},
|
||
CreateView: []gax.CallOption{},
|
||
UpdateView: []gax.CallOption{},
|
||
DeleteView: []gax.CallOption{},
|
||
ListSinks: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnCodes([]codes.Code{
|
||
codes.DeadlineExceeded,
|
||
codes.Internal,
|
||
codes.Unavailable,
|
||
}, gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
})
|
||
}),
|
||
},
|
||
GetSink: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnCodes([]codes.Code{
|
||
codes.DeadlineExceeded,
|
||
codes.Internal,
|
||
codes.Unavailable,
|
||
}, gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
})
|
||
}),
|
||
},
|
||
CreateSink: []gax.CallOption{
|
||
gax.WithTimeout(120000 * time.Millisecond),
|
||
},
|
||
UpdateSink: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnCodes([]codes.Code{
|
||
codes.DeadlineExceeded,
|
||
codes.Internal,
|
||
codes.Unavailable,
|
||
}, gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
})
|
||
}),
|
||
},
|
||
DeleteSink: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnCodes([]codes.Code{
|
||
codes.DeadlineExceeded,
|
||
codes.Internal,
|
||
codes.Unavailable,
|
||
}, gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
})
|
||
}),
|
||
},
|
||
CreateLink: []gax.CallOption{},
|
||
DeleteLink: []gax.CallOption{},
|
||
ListLinks: []gax.CallOption{},
|
||
GetLink: []gax.CallOption{},
|
||
ListExclusions: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnCodes([]codes.Code{
|
||
codes.DeadlineExceeded,
|
||
codes.Internal,
|
||
codes.Unavailable,
|
||
}, gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
})
|
||
}),
|
||
},
|
||
GetExclusion: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnCodes([]codes.Code{
|
||
codes.DeadlineExceeded,
|
||
codes.Internal,
|
||
codes.Unavailable,
|
||
}, gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
})
|
||
}),
|
||
},
|
||
CreateExclusion: []gax.CallOption{
|
||
gax.WithTimeout(120000 * time.Millisecond),
|
||
},
|
||
UpdateExclusion: []gax.CallOption{
|
||
gax.WithTimeout(120000 * time.Millisecond),
|
||
},
|
||
DeleteExclusion: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnCodes([]codes.Code{
|
||
codes.DeadlineExceeded,
|
||
codes.Internal,
|
||
codes.Unavailable,
|
||
}, gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
})
|
||
}),
|
||
},
|
||
GetCmekSettings: []gax.CallOption{},
|
||
UpdateCmekSettings: []gax.CallOption{},
|
||
GetSettings: []gax.CallOption{},
|
||
UpdateSettings: []gax.CallOption{},
|
||
CopyLogEntries: []gax.CallOption{},
|
||
CancelOperation: []gax.CallOption{},
|
||
GetOperation: []gax.CallOption{},
|
||
ListOperations: []gax.CallOption{},
|
||
}
|
||
}
|
||
|
||
func defaultConfigRESTCallOptions() *ConfigCallOptions {
|
||
return &ConfigCallOptions{
|
||
ListBuckets: []gax.CallOption{},
|
||
GetBucket: []gax.CallOption{},
|
||
CreateBucketAsync: []gax.CallOption{},
|
||
UpdateBucketAsync: []gax.CallOption{},
|
||
CreateBucket: []gax.CallOption{},
|
||
UpdateBucket: []gax.CallOption{},
|
||
DeleteBucket: []gax.CallOption{},
|
||
UndeleteBucket: []gax.CallOption{},
|
||
ListViews: []gax.CallOption{},
|
||
GetView: []gax.CallOption{},
|
||
CreateView: []gax.CallOption{},
|
||
UpdateView: []gax.CallOption{},
|
||
DeleteView: []gax.CallOption{},
|
||
ListSinks: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnHTTPCodes(gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
},
|
||
http.StatusGatewayTimeout,
|
||
http.StatusInternalServerError,
|
||
http.StatusServiceUnavailable)
|
||
}),
|
||
},
|
||
GetSink: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnHTTPCodes(gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
},
|
||
http.StatusGatewayTimeout,
|
||
http.StatusInternalServerError,
|
||
http.StatusServiceUnavailable)
|
||
}),
|
||
},
|
||
CreateSink: []gax.CallOption{
|
||
gax.WithTimeout(120000 * time.Millisecond),
|
||
},
|
||
UpdateSink: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnHTTPCodes(gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
},
|
||
http.StatusGatewayTimeout,
|
||
http.StatusInternalServerError,
|
||
http.StatusServiceUnavailable)
|
||
}),
|
||
},
|
||
DeleteSink: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnHTTPCodes(gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
},
|
||
http.StatusGatewayTimeout,
|
||
http.StatusInternalServerError,
|
||
http.StatusServiceUnavailable)
|
||
}),
|
||
},
|
||
CreateLink: []gax.CallOption{},
|
||
DeleteLink: []gax.CallOption{},
|
||
ListLinks: []gax.CallOption{},
|
||
GetLink: []gax.CallOption{},
|
||
ListExclusions: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnHTTPCodes(gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
},
|
||
http.StatusGatewayTimeout,
|
||
http.StatusInternalServerError,
|
||
http.StatusServiceUnavailable)
|
||
}),
|
||
},
|
||
GetExclusion: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnHTTPCodes(gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
},
|
||
http.StatusGatewayTimeout,
|
||
http.StatusInternalServerError,
|
||
http.StatusServiceUnavailable)
|
||
}),
|
||
},
|
||
CreateExclusion: []gax.CallOption{
|
||
gax.WithTimeout(120000 * time.Millisecond),
|
||
},
|
||
UpdateExclusion: []gax.CallOption{
|
||
gax.WithTimeout(120000 * time.Millisecond),
|
||
},
|
||
DeleteExclusion: []gax.CallOption{
|
||
gax.WithTimeout(60000 * time.Millisecond),
|
||
gax.WithRetry(func() gax.Retryer {
|
||
return gax.OnHTTPCodes(gax.Backoff{
|
||
Initial: 100 * time.Millisecond,
|
||
Max: 60000 * time.Millisecond,
|
||
Multiplier: 1.30,
|
||
},
|
||
http.StatusGatewayTimeout,
|
||
http.StatusInternalServerError,
|
||
http.StatusServiceUnavailable)
|
||
}),
|
||
},
|
||
GetCmekSettings: []gax.CallOption{},
|
||
UpdateCmekSettings: []gax.CallOption{},
|
||
GetSettings: []gax.CallOption{},
|
||
UpdateSettings: []gax.CallOption{},
|
||
CopyLogEntries: []gax.CallOption{},
|
||
CancelOperation: []gax.CallOption{},
|
||
GetOperation: []gax.CallOption{},
|
||
ListOperations: []gax.CallOption{},
|
||
}
|
||
}
|
||
|
||
// internalConfigClient is an interface that defines the methods available from Cloud Logging API.
|
||
type internalConfigClient interface {
|
||
Close() error
|
||
setGoogleClientInfo(...string)
|
||
Connection() *grpc.ClientConn
|
||
ListBuckets(context.Context, *loggingpb.ListBucketsRequest, ...gax.CallOption) *LogBucketIterator
|
||
GetBucket(context.Context, *loggingpb.GetBucketRequest, ...gax.CallOption) (*loggingpb.LogBucket, error)
|
||
CreateBucketAsync(context.Context, *loggingpb.CreateBucketRequest, ...gax.CallOption) (*CreateBucketAsyncOperation, error)
|
||
CreateBucketAsyncOperation(name string) *CreateBucketAsyncOperation
|
||
UpdateBucketAsync(context.Context, *loggingpb.UpdateBucketRequest, ...gax.CallOption) (*UpdateBucketAsyncOperation, error)
|
||
UpdateBucketAsyncOperation(name string) *UpdateBucketAsyncOperation
|
||
CreateBucket(context.Context, *loggingpb.CreateBucketRequest, ...gax.CallOption) (*loggingpb.LogBucket, error)
|
||
UpdateBucket(context.Context, *loggingpb.UpdateBucketRequest, ...gax.CallOption) (*loggingpb.LogBucket, error)
|
||
DeleteBucket(context.Context, *loggingpb.DeleteBucketRequest, ...gax.CallOption) error
|
||
UndeleteBucket(context.Context, *loggingpb.UndeleteBucketRequest, ...gax.CallOption) error
|
||
ListViews(context.Context, *loggingpb.ListViewsRequest, ...gax.CallOption) *LogViewIterator
|
||
GetView(context.Context, *loggingpb.GetViewRequest, ...gax.CallOption) (*loggingpb.LogView, error)
|
||
CreateView(context.Context, *loggingpb.CreateViewRequest, ...gax.CallOption) (*loggingpb.LogView, error)
|
||
UpdateView(context.Context, *loggingpb.UpdateViewRequest, ...gax.CallOption) (*loggingpb.LogView, error)
|
||
DeleteView(context.Context, *loggingpb.DeleteViewRequest, ...gax.CallOption) error
|
||
ListSinks(context.Context, *loggingpb.ListSinksRequest, ...gax.CallOption) *LogSinkIterator
|
||
GetSink(context.Context, *loggingpb.GetSinkRequest, ...gax.CallOption) (*loggingpb.LogSink, error)
|
||
CreateSink(context.Context, *loggingpb.CreateSinkRequest, ...gax.CallOption) (*loggingpb.LogSink, error)
|
||
UpdateSink(context.Context, *loggingpb.UpdateSinkRequest, ...gax.CallOption) (*loggingpb.LogSink, error)
|
||
DeleteSink(context.Context, *loggingpb.DeleteSinkRequest, ...gax.CallOption) error
|
||
CreateLink(context.Context, *loggingpb.CreateLinkRequest, ...gax.CallOption) (*CreateLinkOperation, error)
|
||
CreateLinkOperation(name string) *CreateLinkOperation
|
||
DeleteLink(context.Context, *loggingpb.DeleteLinkRequest, ...gax.CallOption) (*DeleteLinkOperation, error)
|
||
DeleteLinkOperation(name string) *DeleteLinkOperation
|
||
ListLinks(context.Context, *loggingpb.ListLinksRequest, ...gax.CallOption) *LinkIterator
|
||
GetLink(context.Context, *loggingpb.GetLinkRequest, ...gax.CallOption) (*loggingpb.Link, error)
|
||
ListExclusions(context.Context, *loggingpb.ListExclusionsRequest, ...gax.CallOption) *LogExclusionIterator
|
||
GetExclusion(context.Context, *loggingpb.GetExclusionRequest, ...gax.CallOption) (*loggingpb.LogExclusion, error)
|
||
CreateExclusion(context.Context, *loggingpb.CreateExclusionRequest, ...gax.CallOption) (*loggingpb.LogExclusion, error)
|
||
UpdateExclusion(context.Context, *loggingpb.UpdateExclusionRequest, ...gax.CallOption) (*loggingpb.LogExclusion, error)
|
||
DeleteExclusion(context.Context, *loggingpb.DeleteExclusionRequest, ...gax.CallOption) error
|
||
GetCmekSettings(context.Context, *loggingpb.GetCmekSettingsRequest, ...gax.CallOption) (*loggingpb.CmekSettings, error)
|
||
UpdateCmekSettings(context.Context, *loggingpb.UpdateCmekSettingsRequest, ...gax.CallOption) (*loggingpb.CmekSettings, error)
|
||
GetSettings(context.Context, *loggingpb.GetSettingsRequest, ...gax.CallOption) (*loggingpb.Settings, error)
|
||
UpdateSettings(context.Context, *loggingpb.UpdateSettingsRequest, ...gax.CallOption) (*loggingpb.Settings, error)
|
||
CopyLogEntries(context.Context, *loggingpb.CopyLogEntriesRequest, ...gax.CallOption) (*CopyLogEntriesOperation, error)
|
||
CopyLogEntriesOperation(name string) *CopyLogEntriesOperation
|
||
CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error
|
||
GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error)
|
||
ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator
|
||
}
|
||
|
||
// ConfigClient is a client for interacting with Cloud Logging API.
|
||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||
//
|
||
// Service for configuring sinks used to route log entries.
|
||
type ConfigClient struct {
|
||
// The internal transport-dependent client.
|
||
internalClient internalConfigClient
|
||
|
||
// The call options for this service.
|
||
CallOptions *ConfigCallOptions
|
||
|
||
// 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 *ConfigClient) 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 *ConfigClient) 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 *ConfigClient) Connection() *grpc.ClientConn {
|
||
return c.internalClient.Connection()
|
||
}
|
||
|
||
// ListBuckets lists log buckets.
|
||
func (c *ConfigClient) ListBuckets(ctx context.Context, req *loggingpb.ListBucketsRequest, opts ...gax.CallOption) *LogBucketIterator {
|
||
return c.internalClient.ListBuckets(ctx, req, opts...)
|
||
}
|
||
|
||
// GetBucket gets a log bucket.
|
||
func (c *ConfigClient) GetBucket(ctx context.Context, req *loggingpb.GetBucketRequest, opts ...gax.CallOption) (*loggingpb.LogBucket, error) {
|
||
return c.internalClient.GetBucket(ctx, req, opts...)
|
||
}
|
||
|
||
// CreateBucketAsync creates a log bucket asynchronously that can be used to store log entries.
|
||
//
|
||
// After a bucket has been created, the bucket’s location cannot be changed.
|
||
func (c *ConfigClient) CreateBucketAsync(ctx context.Context, req *loggingpb.CreateBucketRequest, opts ...gax.CallOption) (*CreateBucketAsyncOperation, error) {
|
||
return c.internalClient.CreateBucketAsync(ctx, req, opts...)
|
||
}
|
||
|
||
// CreateBucketAsyncOperation returns a new CreateBucketAsyncOperation from a given name.
|
||
// The name must be that of a previously created CreateBucketAsyncOperation, possibly from a different process.
|
||
func (c *ConfigClient) CreateBucketAsyncOperation(name string) *CreateBucketAsyncOperation {
|
||
return c.internalClient.CreateBucketAsyncOperation(name)
|
||
}
|
||
|
||
// UpdateBucketAsync updates a log bucket asynchronously.
|
||
//
|
||
// If the bucket has a lifecycle_state of DELETE_REQUESTED, then
|
||
// FAILED_PRECONDITION will be returned.
|
||
//
|
||
// After a bucket has been created, the bucket’s location cannot be changed.
|
||
func (c *ConfigClient) UpdateBucketAsync(ctx context.Context, req *loggingpb.UpdateBucketRequest, opts ...gax.CallOption) (*UpdateBucketAsyncOperation, error) {
|
||
return c.internalClient.UpdateBucketAsync(ctx, req, opts...)
|
||
}
|
||
|
||
// UpdateBucketAsyncOperation returns a new UpdateBucketAsyncOperation from a given name.
|
||
// The name must be that of a previously created UpdateBucketAsyncOperation, possibly from a different process.
|
||
func (c *ConfigClient) UpdateBucketAsyncOperation(name string) *UpdateBucketAsyncOperation {
|
||
return c.internalClient.UpdateBucketAsyncOperation(name)
|
||
}
|
||
|
||
// CreateBucket creates a log bucket that can be used to store log entries. After a bucket
|
||
// has been created, the bucket’s location cannot be changed.
|
||
func (c *ConfigClient) CreateBucket(ctx context.Context, req *loggingpb.CreateBucketRequest, opts ...gax.CallOption) (*loggingpb.LogBucket, error) {
|
||
return c.internalClient.CreateBucket(ctx, req, opts...)
|
||
}
|
||
|
||
// UpdateBucket updates a log bucket.
|
||
//
|
||
// If the bucket has a lifecycle_state of DELETE_REQUESTED, then
|
||
// FAILED_PRECONDITION will be returned.
|
||
//
|
||
// After a bucket has been created, the bucket’s location cannot be changed.
|
||
func (c *ConfigClient) UpdateBucket(ctx context.Context, req *loggingpb.UpdateBucketRequest, opts ...gax.CallOption) (*loggingpb.LogBucket, error) {
|
||
return c.internalClient.UpdateBucket(ctx, req, opts...)
|
||
}
|
||
|
||
// DeleteBucket deletes a log bucket.
|
||
//
|
||
// Changes the bucket’s lifecycle_state to the DELETE_REQUESTED state.
|
||
// After 7 days, the bucket will be purged and all log entries in the bucket
|
||
// will be permanently deleted.
|
||
func (c *ConfigClient) DeleteBucket(ctx context.Context, req *loggingpb.DeleteBucketRequest, opts ...gax.CallOption) error {
|
||
return c.internalClient.DeleteBucket(ctx, req, opts...)
|
||
}
|
||
|
||
// UndeleteBucket undeletes a log bucket. A bucket that has been deleted can be undeleted
|
||
// within the grace period of 7 days.
|
||
func (c *ConfigClient) UndeleteBucket(ctx context.Context, req *loggingpb.UndeleteBucketRequest, opts ...gax.CallOption) error {
|
||
return c.internalClient.UndeleteBucket(ctx, req, opts...)
|
||
}
|
||
|
||
// ListViews lists views on a log bucket.
|
||
func (c *ConfigClient) ListViews(ctx context.Context, req *loggingpb.ListViewsRequest, opts ...gax.CallOption) *LogViewIterator {
|
||
return c.internalClient.ListViews(ctx, req, opts...)
|
||
}
|
||
|
||
// GetView gets a view on a log bucket…
|
||
func (c *ConfigClient) GetView(ctx context.Context, req *loggingpb.GetViewRequest, opts ...gax.CallOption) (*loggingpb.LogView, error) {
|
||
return c.internalClient.GetView(ctx, req, opts...)
|
||
}
|
||
|
||
// CreateView creates a view over log entries in a log bucket. A bucket may contain a
|
||
// maximum of 30 views.
|
||
func (c *ConfigClient) CreateView(ctx context.Context, req *loggingpb.CreateViewRequest, opts ...gax.CallOption) (*loggingpb.LogView, error) {
|
||
return c.internalClient.CreateView(ctx, req, opts...)
|
||
}
|
||
|
||
// UpdateView updates a view on a log bucket. This method replaces the following fields
|
||
// in the existing view with values from the new view: filter.
|
||
// If an UNAVAILABLE error is returned, this indicates that system is not in
|
||
// a state where it can update the view. If this occurs, please try again in a
|
||
// few minutes.
|
||
func (c *ConfigClient) UpdateView(ctx context.Context, req *loggingpb.UpdateViewRequest, opts ...gax.CallOption) (*loggingpb.LogView, error) {
|
||
return c.internalClient.UpdateView(ctx, req, opts...)
|
||
}
|
||
|
||
// DeleteView deletes a view on a log bucket.
|
||
// If an UNAVAILABLE error is returned, this indicates that system is not in
|
||
// a state where it can delete the view. If this occurs, please try again in a
|
||
// few minutes.
|
||
func (c *ConfigClient) DeleteView(ctx context.Context, req *loggingpb.DeleteViewRequest, opts ...gax.CallOption) error {
|
||
return c.internalClient.DeleteView(ctx, req, opts...)
|
||
}
|
||
|
||
// ListSinks lists sinks.
|
||
func (c *ConfigClient) ListSinks(ctx context.Context, req *loggingpb.ListSinksRequest, opts ...gax.CallOption) *LogSinkIterator {
|
||
return c.internalClient.ListSinks(ctx, req, opts...)
|
||
}
|
||
|
||
// GetSink gets a sink.
|
||
func (c *ConfigClient) GetSink(ctx context.Context, req *loggingpb.GetSinkRequest, opts ...gax.CallOption) (*loggingpb.LogSink, error) {
|
||
return c.internalClient.GetSink(ctx, req, opts...)
|
||
}
|
||
|
||
// CreateSink creates a sink that exports specified log entries to a destination. The
|
||
// export of newly-ingested log entries begins immediately, unless the sink’s
|
||
// writer_identity is not permitted to write to the destination. A sink can
|
||
// export log entries only from the resource owning the sink.
|
||
func (c *ConfigClient) CreateSink(ctx context.Context, req *loggingpb.CreateSinkRequest, opts ...gax.CallOption) (*loggingpb.LogSink, error) {
|
||
return c.internalClient.CreateSink(ctx, req, opts...)
|
||
}
|
||
|
||
// UpdateSink updates a sink. This method replaces the following fields in the existing
|
||
// sink with values from the new sink: destination, and filter.
|
||
//
|
||
// The updated sink might also have a new writer_identity; see the
|
||
// unique_writer_identity field.
|
||
func (c *ConfigClient) UpdateSink(ctx context.Context, req *loggingpb.UpdateSinkRequest, opts ...gax.CallOption) (*loggingpb.LogSink, error) {
|
||
return c.internalClient.UpdateSink(ctx, req, opts...)
|
||
}
|
||
|
||
// DeleteSink deletes a sink. If the sink has a unique writer_identity, then that
|
||
// service account is also deleted.
|
||
func (c *ConfigClient) DeleteSink(ctx context.Context, req *loggingpb.DeleteSinkRequest, opts ...gax.CallOption) error {
|
||
return c.internalClient.DeleteSink(ctx, req, opts...)
|
||
}
|
||
|
||
// CreateLink asynchronously creates a linked dataset in BigQuery which makes it possible
|
||
// to use BigQuery to read the logs stored in the log bucket. A log bucket may
|
||
// currently only contain one link.
|
||
func (c *ConfigClient) CreateLink(ctx context.Context, req *loggingpb.CreateLinkRequest, opts ...gax.CallOption) (*CreateLinkOperation, error) {
|
||
return c.internalClient.CreateLink(ctx, req, opts...)
|
||
}
|
||
|
||
// CreateLinkOperation returns a new CreateLinkOperation from a given name.
|
||
// The name must be that of a previously created CreateLinkOperation, possibly from a different process.
|
||
func (c *ConfigClient) CreateLinkOperation(name string) *CreateLinkOperation {
|
||
return c.internalClient.CreateLinkOperation(name)
|
||
}
|
||
|
||
// DeleteLink deletes a link. This will also delete the corresponding BigQuery linked
|
||
// dataset.
|
||
func (c *ConfigClient) DeleteLink(ctx context.Context, req *loggingpb.DeleteLinkRequest, opts ...gax.CallOption) (*DeleteLinkOperation, error) {
|
||
return c.internalClient.DeleteLink(ctx, req, opts...)
|
||
}
|
||
|
||
// DeleteLinkOperation returns a new DeleteLinkOperation from a given name.
|
||
// The name must be that of a previously created DeleteLinkOperation, possibly from a different process.
|
||
func (c *ConfigClient) DeleteLinkOperation(name string) *DeleteLinkOperation {
|
||
return c.internalClient.DeleteLinkOperation(name)
|
||
}
|
||
|
||
// ListLinks lists links.
|
||
func (c *ConfigClient) ListLinks(ctx context.Context, req *loggingpb.ListLinksRequest, opts ...gax.CallOption) *LinkIterator {
|
||
return c.internalClient.ListLinks(ctx, req, opts...)
|
||
}
|
||
|
||
// GetLink gets a link.
|
||
func (c *ConfigClient) GetLink(ctx context.Context, req *loggingpb.GetLinkRequest, opts ...gax.CallOption) (*loggingpb.Link, error) {
|
||
return c.internalClient.GetLink(ctx, req, opts...)
|
||
}
|
||
|
||
// ListExclusions lists all the exclusions on the _Default sink in a parent resource.
|
||
func (c *ConfigClient) ListExclusions(ctx context.Context, req *loggingpb.ListExclusionsRequest, opts ...gax.CallOption) *LogExclusionIterator {
|
||
return c.internalClient.ListExclusions(ctx, req, opts...)
|
||
}
|
||
|
||
// GetExclusion gets the description of an exclusion in the _Default sink.
|
||
func (c *ConfigClient) GetExclusion(ctx context.Context, req *loggingpb.GetExclusionRequest, opts ...gax.CallOption) (*loggingpb.LogExclusion, error) {
|
||
return c.internalClient.GetExclusion(ctx, req, opts...)
|
||
}
|
||
|
||
// CreateExclusion creates a new exclusion in the _Default sink in a specified parent
|
||
// resource. Only log entries belonging to that resource can be excluded. You
|
||
// can have up to 10 exclusions in a resource.
|
||
func (c *ConfigClient) CreateExclusion(ctx context.Context, req *loggingpb.CreateExclusionRequest, opts ...gax.CallOption) (*loggingpb.LogExclusion, error) {
|
||
return c.internalClient.CreateExclusion(ctx, req, opts...)
|
||
}
|
||
|
||
// UpdateExclusion changes one or more properties of an existing exclusion in the _Default
|
||
// sink.
|
||
func (c *ConfigClient) UpdateExclusion(ctx context.Context, req *loggingpb.UpdateExclusionRequest, opts ...gax.CallOption) (*loggingpb.LogExclusion, error) {
|
||
return c.internalClient.UpdateExclusion(ctx, req, opts...)
|
||
}
|
||
|
||
// DeleteExclusion deletes an exclusion in the _Default sink.
|
||
func (c *ConfigClient) DeleteExclusion(ctx context.Context, req *loggingpb.DeleteExclusionRequest, opts ...gax.CallOption) error {
|
||
return c.internalClient.DeleteExclusion(ctx, req, opts...)
|
||
}
|
||
|
||
// GetCmekSettings gets the Logging CMEK settings for the given resource.
|
||
//
|
||
// Note: CMEK for the Log Router can be configured for Google Cloud projects,
|
||
// folders, organizations and billing accounts. Once configured for an
|
||
// organization, it applies to all projects and folders in the Google Cloud
|
||
// organization.
|
||
//
|
||
// See Enabling CMEK for Log
|
||
// Router (at https://cloud.google.com/logging/docs/routing/managed-encryption)
|
||
// for more information.
|
||
func (c *ConfigClient) GetCmekSettings(ctx context.Context, req *loggingpb.GetCmekSettingsRequest, opts ...gax.CallOption) (*loggingpb.CmekSettings, error) {
|
||
return c.internalClient.GetCmekSettings(ctx, req, opts...)
|
||
}
|
||
|
||
// UpdateCmekSettings updates the Log Router CMEK settings for the given resource.
|
||
//
|
||
// Note: CMEK for the Log Router can currently only be configured for Google
|
||
// Cloud organizations. Once configured, it applies to all projects and
|
||
// folders in the Google Cloud organization.
|
||
//
|
||
// UpdateCmekSettings
|
||
// will fail if 1) kms_key_name is invalid, or 2) the associated service
|
||
// account does not have the required
|
||
// roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key, or
|
||
// 3) access to the key is disabled.
|
||
//
|
||
// See Enabling CMEK for Log
|
||
// Router (at https://cloud.google.com/logging/docs/routing/managed-encryption)
|
||
// for more information.
|
||
func (c *ConfigClient) UpdateCmekSettings(ctx context.Context, req *loggingpb.UpdateCmekSettingsRequest, opts ...gax.CallOption) (*loggingpb.CmekSettings, error) {
|
||
return c.internalClient.UpdateCmekSettings(ctx, req, opts...)
|
||
}
|
||
|
||
// GetSettings gets the Log Router settings for the given resource.
|
||
//
|
||
// Note: Settings for the Log Router can be get for Google Cloud projects,
|
||
// folders, organizations and billing accounts. Currently it can only be
|
||
// configured for organizations. Once configured for an organization, it
|
||
// applies to all projects and folders in the Google Cloud organization.
|
||
//
|
||
// See Enabling CMEK for Log
|
||
// Router (at https://cloud.google.com/logging/docs/routing/managed-encryption)
|
||
// for more information.
|
||
func (c *ConfigClient) GetSettings(ctx context.Context, req *loggingpb.GetSettingsRequest, opts ...gax.CallOption) (*loggingpb.Settings, error) {
|
||
return c.internalClient.GetSettings(ctx, req, opts...)
|
||
}
|
||
|
||
// UpdateSettings updates the Log Router settings for the given resource.
|
||
//
|
||
// Note: Settings for the Log Router can currently only be configured for
|
||
// Google Cloud organizations. Once configured, it applies to all projects and
|
||
// folders in the Google Cloud organization.
|
||
//
|
||
// UpdateSettings
|
||
// will fail if 1) kms_key_name is invalid, or 2) the associated service
|
||
// account does not have the required
|
||
// roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key, or
|
||
// 3) access to the key is disabled. 4) location_id is not supported by
|
||
// Logging. 5) location_id violate OrgPolicy.
|
||
//
|
||
// See Enabling CMEK for Log
|
||
// Router (at https://cloud.google.com/logging/docs/routing/managed-encryption)
|
||
// for more information.
|
||
func (c *ConfigClient) UpdateSettings(ctx context.Context, req *loggingpb.UpdateSettingsRequest, opts ...gax.CallOption) (*loggingpb.Settings, error) {
|
||
return c.internalClient.UpdateSettings(ctx, req, opts...)
|
||
}
|
||
|
||
// CopyLogEntries copies a set of log entries from a log bucket to a Cloud Storage bucket.
|
||
func (c *ConfigClient) CopyLogEntries(ctx context.Context, req *loggingpb.CopyLogEntriesRequest, opts ...gax.CallOption) (*CopyLogEntriesOperation, error) {
|
||
return c.internalClient.CopyLogEntries(ctx, req, opts...)
|
||
}
|
||
|
||
// CopyLogEntriesOperation returns a new CopyLogEntriesOperation from a given name.
|
||
// The name must be that of a previously created CopyLogEntriesOperation, possibly from a different process.
|
||
func (c *ConfigClient) CopyLogEntriesOperation(name string) *CopyLogEntriesOperation {
|
||
return c.internalClient.CopyLogEntriesOperation(name)
|
||
}
|
||
|
||
// CancelOperation is a utility method from google.longrunning.Operations.
|
||
func (c *ConfigClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error {
|
||
return c.internalClient.CancelOperation(ctx, req, opts...)
|
||
}
|
||
|
||
// GetOperation is a utility method from google.longrunning.Operations.
|
||
func (c *ConfigClient) 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 *ConfigClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator {
|
||
return c.internalClient.ListOperations(ctx, req, opts...)
|
||
}
|
||
|
||
// configGRPCClient is a client for interacting with Cloud Logging API over gRPC transport.
|
||
//
|
||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||
type configGRPCClient struct {
|
||
// Connection pool of gRPC connections to the service.
|
||
connPool gtransport.ConnPool
|
||
|
||
// Points back to the CallOptions field of the containing ConfigClient
|
||
CallOptions **ConfigCallOptions
|
||
|
||
// The gRPC API client.
|
||
configClient loggingpb.ConfigServiceV2Client
|
||
|
||
// 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
|
||
|
||
// The x-goog-* metadata to be sent with each request.
|
||
xGoogHeaders []string
|
||
|
||
logger *slog.Logger
|
||
}
|
||
|
||
// NewConfigClient creates a new config service v2 client based on gRPC.
|
||
// The returned client must be Closed when it is done being used to clean up its underlying connections.
|
||
//
|
||
// Service for configuring sinks used to route log entries.
|
||
func NewConfigClient(ctx context.Context, opts ...option.ClientOption) (*ConfigClient, error) {
|
||
clientOpts := defaultConfigGRPCClientOptions()
|
||
if newConfigClientHook != nil {
|
||
hookOpts, err := newConfigClientHook(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 := ConfigClient{CallOptions: defaultConfigCallOptions()}
|
||
|
||
c := &configGRPCClient{
|
||
connPool: connPool,
|
||
configClient: loggingpb.NewConfigServiceV2Client(connPool),
|
||
CallOptions: &client.CallOptions,
|
||
logger: internaloption.GetLogger(opts),
|
||
operationsClient: longrunningpb.NewOperationsClient(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 *configGRPCClient) 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 *configGRPCClient) 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 *configGRPCClient) Close() error {
|
||
return c.connPool.Close()
|
||
}
|
||
|
||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||
type configRESTClient 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 ConfigClient
|
||
CallOptions **ConfigCallOptions
|
||
|
||
logger *slog.Logger
|
||
}
|
||
|
||
// NewConfigRESTClient creates a new config service v2 rest client.
|
||
//
|
||
// Service for configuring sinks used to route log entries.
|
||
func NewConfigRESTClient(ctx context.Context, opts ...option.ClientOption) (*ConfigClient, error) {
|
||
clientOpts := append(defaultConfigRESTClientOptions(), opts...)
|
||
httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
callOpts := defaultConfigRESTCallOptions()
|
||
c := &configRESTClient{
|
||
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 &ConfigClient{internalClient: c, CallOptions: callOpts}, nil
|
||
}
|
||
|
||
func defaultConfigRESTClientOptions() []option.ClientOption {
|
||
return []option.ClientOption{
|
||
internaloption.WithDefaultEndpoint("https://logging.googleapis.com"),
|
||
internaloption.WithDefaultEndpointTemplate("https://logging.UNIVERSE_DOMAIN"),
|
||
internaloption.WithDefaultMTLSEndpoint("https://logging.mtls.googleapis.com"),
|
||
internaloption.WithDefaultUniverseDomain("googleapis.com"),
|
||
internaloption.WithDefaultAudience("https://logging.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 *configRESTClient) 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 *configRESTClient) 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 *configRESTClient) Connection() *grpc.ClientConn {
|
||
return nil
|
||
}
|
||
func (c *configGRPCClient) ListBuckets(ctx context.Context, req *loggingpb.ListBucketsRequest, opts ...gax.CallOption) *LogBucketIterator {
|
||
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).ListBuckets[0:len((*c.CallOptions).ListBuckets):len((*c.CallOptions).ListBuckets)], opts...)
|
||
it := &LogBucketIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListBucketsRequest)
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogBucket, string, error) {
|
||
resp := &loggingpb.ListBucketsResponse{}
|
||
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.configClient.ListBuckets, req, settings.GRPC, c.logger, "ListBuckets")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, "", err
|
||
}
|
||
|
||
it.Response = resp
|
||
return resp.GetBuckets(), 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 *configGRPCClient) GetBucket(ctx context.Context, req *loggingpb.GetBucketRequest, opts ...gax.CallOption) (*loggingpb.LogBucket, 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).GetBucket[0:len((*c.CallOptions).GetBucket):len((*c.CallOptions).GetBucket)], opts...)
|
||
var resp *loggingpb.LogBucket
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.GetBucket, req, settings.GRPC, c.logger, "GetBucket")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) CreateBucketAsync(ctx context.Context, req *loggingpb.CreateBucketRequest, opts ...gax.CallOption) (*CreateBucketAsyncOperation, error) {
|
||
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).CreateBucketAsync[0:len((*c.CallOptions).CreateBucketAsync):len((*c.CallOptions).CreateBucketAsync)], 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.configClient.CreateBucketAsync, req, settings.GRPC, c.logger, "CreateBucketAsync")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return &CreateBucketAsyncOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
}, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) UpdateBucketAsync(ctx context.Context, req *loggingpb.UpdateBucketRequest, opts ...gax.CallOption) (*UpdateBucketAsyncOperation, 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).UpdateBucketAsync[0:len((*c.CallOptions).UpdateBucketAsync):len((*c.CallOptions).UpdateBucketAsync)], 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.configClient.UpdateBucketAsync, req, settings.GRPC, c.logger, "UpdateBucketAsync")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return &UpdateBucketAsyncOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
}, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) CreateBucket(ctx context.Context, req *loggingpb.CreateBucketRequest, opts ...gax.CallOption) (*loggingpb.LogBucket, error) {
|
||
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).CreateBucket[0:len((*c.CallOptions).CreateBucket):len((*c.CallOptions).CreateBucket)], opts...)
|
||
var resp *loggingpb.LogBucket
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.CreateBucket, req, settings.GRPC, c.logger, "CreateBucket")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) UpdateBucket(ctx context.Context, req *loggingpb.UpdateBucketRequest, opts ...gax.CallOption) (*loggingpb.LogBucket, 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).UpdateBucket[0:len((*c.CallOptions).UpdateBucket):len((*c.CallOptions).UpdateBucket)], opts...)
|
||
var resp *loggingpb.LogBucket
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.UpdateBucket, req, settings.GRPC, c.logger, "UpdateBucket")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) DeleteBucket(ctx context.Context, req *loggingpb.DeleteBucketRequest, 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).DeleteBucket[0:len((*c.CallOptions).DeleteBucket):len((*c.CallOptions).DeleteBucket)], opts...)
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
_, err = executeRPC(ctx, c.configClient.DeleteBucket, req, settings.GRPC, c.logger, "DeleteBucket")
|
||
return err
|
||
}, opts...)
|
||
return err
|
||
}
|
||
|
||
func (c *configGRPCClient) UndeleteBucket(ctx context.Context, req *loggingpb.UndeleteBucketRequest, 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).UndeleteBucket[0:len((*c.CallOptions).UndeleteBucket):len((*c.CallOptions).UndeleteBucket)], opts...)
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
_, err = executeRPC(ctx, c.configClient.UndeleteBucket, req, settings.GRPC, c.logger, "UndeleteBucket")
|
||
return err
|
||
}, opts...)
|
||
return err
|
||
}
|
||
|
||
func (c *configGRPCClient) ListViews(ctx context.Context, req *loggingpb.ListViewsRequest, opts ...gax.CallOption) *LogViewIterator {
|
||
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).ListViews[0:len((*c.CallOptions).ListViews):len((*c.CallOptions).ListViews)], opts...)
|
||
it := &LogViewIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListViewsRequest)
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogView, string, error) {
|
||
resp := &loggingpb.ListViewsResponse{}
|
||
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.configClient.ListViews, req, settings.GRPC, c.logger, "ListViews")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, "", err
|
||
}
|
||
|
||
it.Response = resp
|
||
return resp.GetViews(), 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 *configGRPCClient) GetView(ctx context.Context, req *loggingpb.GetViewRequest, opts ...gax.CallOption) (*loggingpb.LogView, 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).GetView[0:len((*c.CallOptions).GetView):len((*c.CallOptions).GetView)], opts...)
|
||
var resp *loggingpb.LogView
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.GetView, req, settings.GRPC, c.logger, "GetView")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) CreateView(ctx context.Context, req *loggingpb.CreateViewRequest, opts ...gax.CallOption) (*loggingpb.LogView, error) {
|
||
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).CreateView[0:len((*c.CallOptions).CreateView):len((*c.CallOptions).CreateView)], opts...)
|
||
var resp *loggingpb.LogView
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.CreateView, req, settings.GRPC, c.logger, "CreateView")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) UpdateView(ctx context.Context, req *loggingpb.UpdateViewRequest, opts ...gax.CallOption) (*loggingpb.LogView, 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).UpdateView[0:len((*c.CallOptions).UpdateView):len((*c.CallOptions).UpdateView)], opts...)
|
||
var resp *loggingpb.LogView
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.UpdateView, req, settings.GRPC, c.logger, "UpdateView")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) DeleteView(ctx context.Context, req *loggingpb.DeleteViewRequest, 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).DeleteView[0:len((*c.CallOptions).DeleteView):len((*c.CallOptions).DeleteView)], opts...)
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
_, err = executeRPC(ctx, c.configClient.DeleteView, req, settings.GRPC, c.logger, "DeleteView")
|
||
return err
|
||
}, opts...)
|
||
return err
|
||
}
|
||
|
||
func (c *configGRPCClient) ListSinks(ctx context.Context, req *loggingpb.ListSinksRequest, opts ...gax.CallOption) *LogSinkIterator {
|
||
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).ListSinks[0:len((*c.CallOptions).ListSinks):len((*c.CallOptions).ListSinks)], opts...)
|
||
it := &LogSinkIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListSinksRequest)
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogSink, string, error) {
|
||
resp := &loggingpb.ListSinksResponse{}
|
||
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.configClient.ListSinks, req, settings.GRPC, c.logger, "ListSinks")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, "", err
|
||
}
|
||
|
||
it.Response = resp
|
||
return resp.GetSinks(), 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 *configGRPCClient) GetSink(ctx context.Context, req *loggingpb.GetSinkRequest, opts ...gax.CallOption) (*loggingpb.LogSink, error) {
|
||
hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "sink_name", url.QueryEscape(req.GetSinkName()))}
|
||
|
||
hds = append(c.xGoogHeaders, hds...)
|
||
ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...)
|
||
opts = append((*c.CallOptions).GetSink[0:len((*c.CallOptions).GetSink):len((*c.CallOptions).GetSink)], opts...)
|
||
var resp *loggingpb.LogSink
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.GetSink, req, settings.GRPC, c.logger, "GetSink")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) CreateSink(ctx context.Context, req *loggingpb.CreateSinkRequest, opts ...gax.CallOption) (*loggingpb.LogSink, error) {
|
||
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).CreateSink[0:len((*c.CallOptions).CreateSink):len((*c.CallOptions).CreateSink)], opts...)
|
||
var resp *loggingpb.LogSink
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.CreateSink, req, settings.GRPC, c.logger, "CreateSink")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) UpdateSink(ctx context.Context, req *loggingpb.UpdateSinkRequest, opts ...gax.CallOption) (*loggingpb.LogSink, error) {
|
||
hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "sink_name", url.QueryEscape(req.GetSinkName()))}
|
||
|
||
hds = append(c.xGoogHeaders, hds...)
|
||
ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...)
|
||
opts = append((*c.CallOptions).UpdateSink[0:len((*c.CallOptions).UpdateSink):len((*c.CallOptions).UpdateSink)], opts...)
|
||
var resp *loggingpb.LogSink
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.UpdateSink, req, settings.GRPC, c.logger, "UpdateSink")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) DeleteSink(ctx context.Context, req *loggingpb.DeleteSinkRequest, opts ...gax.CallOption) error {
|
||
hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "sink_name", url.QueryEscape(req.GetSinkName()))}
|
||
|
||
hds = append(c.xGoogHeaders, hds...)
|
||
ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...)
|
||
opts = append((*c.CallOptions).DeleteSink[0:len((*c.CallOptions).DeleteSink):len((*c.CallOptions).DeleteSink)], opts...)
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
_, err = executeRPC(ctx, c.configClient.DeleteSink, req, settings.GRPC, c.logger, "DeleteSink")
|
||
return err
|
||
}, opts...)
|
||
return err
|
||
}
|
||
|
||
func (c *configGRPCClient) CreateLink(ctx context.Context, req *loggingpb.CreateLinkRequest, opts ...gax.CallOption) (*CreateLinkOperation, error) {
|
||
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).CreateLink[0:len((*c.CallOptions).CreateLink):len((*c.CallOptions).CreateLink)], 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.configClient.CreateLink, req, settings.GRPC, c.logger, "CreateLink")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return &CreateLinkOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
}, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) DeleteLink(ctx context.Context, req *loggingpb.DeleteLinkRequest, opts ...gax.CallOption) (*DeleteLinkOperation, 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).DeleteLink[0:len((*c.CallOptions).DeleteLink):len((*c.CallOptions).DeleteLink)], 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.configClient.DeleteLink, req, settings.GRPC, c.logger, "DeleteLink")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return &DeleteLinkOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
}, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) ListLinks(ctx context.Context, req *loggingpb.ListLinksRequest, opts ...gax.CallOption) *LinkIterator {
|
||
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).ListLinks[0:len((*c.CallOptions).ListLinks):len((*c.CallOptions).ListLinks)], opts...)
|
||
it := &LinkIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListLinksRequest)
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.Link, string, error) {
|
||
resp := &loggingpb.ListLinksResponse{}
|
||
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.configClient.ListLinks, req, settings.GRPC, c.logger, "ListLinks")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, "", err
|
||
}
|
||
|
||
it.Response = resp
|
||
return resp.GetLinks(), 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 *configGRPCClient) GetLink(ctx context.Context, req *loggingpb.GetLinkRequest, opts ...gax.CallOption) (*loggingpb.Link, 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).GetLink[0:len((*c.CallOptions).GetLink):len((*c.CallOptions).GetLink)], opts...)
|
||
var resp *loggingpb.Link
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.GetLink, req, settings.GRPC, c.logger, "GetLink")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) ListExclusions(ctx context.Context, req *loggingpb.ListExclusionsRequest, opts ...gax.CallOption) *LogExclusionIterator {
|
||
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).ListExclusions[0:len((*c.CallOptions).ListExclusions):len((*c.CallOptions).ListExclusions)], opts...)
|
||
it := &LogExclusionIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListExclusionsRequest)
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogExclusion, string, error) {
|
||
resp := &loggingpb.ListExclusionsResponse{}
|
||
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.configClient.ListExclusions, req, settings.GRPC, c.logger, "ListExclusions")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, "", err
|
||
}
|
||
|
||
it.Response = resp
|
||
return resp.GetExclusions(), 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 *configGRPCClient) GetExclusion(ctx context.Context, req *loggingpb.GetExclusionRequest, opts ...gax.CallOption) (*loggingpb.LogExclusion, 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).GetExclusion[0:len((*c.CallOptions).GetExclusion):len((*c.CallOptions).GetExclusion)], opts...)
|
||
var resp *loggingpb.LogExclusion
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.GetExclusion, req, settings.GRPC, c.logger, "GetExclusion")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) CreateExclusion(ctx context.Context, req *loggingpb.CreateExclusionRequest, opts ...gax.CallOption) (*loggingpb.LogExclusion, error) {
|
||
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).CreateExclusion[0:len((*c.CallOptions).CreateExclusion):len((*c.CallOptions).CreateExclusion)], opts...)
|
||
var resp *loggingpb.LogExclusion
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.CreateExclusion, req, settings.GRPC, c.logger, "CreateExclusion")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) UpdateExclusion(ctx context.Context, req *loggingpb.UpdateExclusionRequest, opts ...gax.CallOption) (*loggingpb.LogExclusion, 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).UpdateExclusion[0:len((*c.CallOptions).UpdateExclusion):len((*c.CallOptions).UpdateExclusion)], opts...)
|
||
var resp *loggingpb.LogExclusion
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.UpdateExclusion, req, settings.GRPC, c.logger, "UpdateExclusion")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) DeleteExclusion(ctx context.Context, req *loggingpb.DeleteExclusionRequest, 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).DeleteExclusion[0:len((*c.CallOptions).DeleteExclusion):len((*c.CallOptions).DeleteExclusion)], opts...)
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
_, err = executeRPC(ctx, c.configClient.DeleteExclusion, req, settings.GRPC, c.logger, "DeleteExclusion")
|
||
return err
|
||
}, opts...)
|
||
return err
|
||
}
|
||
|
||
func (c *configGRPCClient) GetCmekSettings(ctx context.Context, req *loggingpb.GetCmekSettingsRequest, opts ...gax.CallOption) (*loggingpb.CmekSettings, 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).GetCmekSettings[0:len((*c.CallOptions).GetCmekSettings):len((*c.CallOptions).GetCmekSettings)], opts...)
|
||
var resp *loggingpb.CmekSettings
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.GetCmekSettings, req, settings.GRPC, c.logger, "GetCmekSettings")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) UpdateCmekSettings(ctx context.Context, req *loggingpb.UpdateCmekSettingsRequest, opts ...gax.CallOption) (*loggingpb.CmekSettings, 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).UpdateCmekSettings[0:len((*c.CallOptions).UpdateCmekSettings):len((*c.CallOptions).UpdateCmekSettings)], opts...)
|
||
var resp *loggingpb.CmekSettings
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.UpdateCmekSettings, req, settings.GRPC, c.logger, "UpdateCmekSettings")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) GetSettings(ctx context.Context, req *loggingpb.GetSettingsRequest, opts ...gax.CallOption) (*loggingpb.Settings, 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).GetSettings[0:len((*c.CallOptions).GetSettings):len((*c.CallOptions).GetSettings)], opts...)
|
||
var resp *loggingpb.Settings
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.GetSettings, req, settings.GRPC, c.logger, "GetSettings")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) UpdateSettings(ctx context.Context, req *loggingpb.UpdateSettingsRequest, opts ...gax.CallOption) (*loggingpb.Settings, 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).UpdateSettings[0:len((*c.CallOptions).UpdateSettings):len((*c.CallOptions).UpdateSettings)], opts...)
|
||
var resp *loggingpb.Settings
|
||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
var err error
|
||
resp, err = executeRPC(ctx, c.configClient.UpdateSettings, req, settings.GRPC, c.logger, "UpdateSettings")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return resp, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) CopyLogEntries(ctx context.Context, req *loggingpb.CopyLogEntriesRequest, opts ...gax.CallOption) (*CopyLogEntriesOperation, error) {
|
||
ctx = gax.InsertMetadataIntoOutgoingContext(ctx, c.xGoogHeaders...)
|
||
opts = append((*c.CallOptions).CopyLogEntries[0:len((*c.CallOptions).CopyLogEntries):len((*c.CallOptions).CopyLogEntries)], 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.configClient.CopyLogEntries, req, settings.GRPC, c.logger, "CopyLogEntries")
|
||
return err
|
||
}, opts...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return &CopyLogEntriesOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
}, nil
|
||
}
|
||
|
||
func (c *configGRPCClient) 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 *configGRPCClient) 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 *configGRPCClient) 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
|
||
}
|
||
|
||
// ListBuckets lists log buckets.
|
||
func (c *configRESTClient) ListBuckets(ctx context.Context, req *loggingpb.ListBucketsRequest, opts ...gax.CallOption) *LogBucketIterator {
|
||
it := &LogBucketIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListBucketsRequest)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogBucket, string, error) {
|
||
resp := &loggingpb.ListBucketsResponse{}
|
||
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("/v2/%v/buckets", 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, "ListBuckets")
|
||
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.GetBuckets(), 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
|
||
}
|
||
|
||
// GetBucket gets a log bucket.
|
||
func (c *configRESTClient) GetBucket(ctx context.Context, req *loggingpb.GetBucketRequest, opts ...gax.CallOption) (*loggingpb.LogBucket, error) {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%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).GetBucket[0:len((*c.CallOptions).GetBucket):len((*c.CallOptions).GetBucket)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogBucket{}
|
||
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, "GetBucket")
|
||
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
|
||
}
|
||
|
||
// CreateBucketAsync creates a log bucket asynchronously that can be used to store log entries.
|
||
//
|
||
// After a bucket has been created, the bucket’s location cannot be changed.
|
||
func (c *configRESTClient) CreateBucketAsync(ctx context.Context, req *loggingpb.CreateBucketRequest, opts ...gax.CallOption) (*CreateBucketAsyncOperation, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetBucket()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/buckets:createAsync", req.GetParent())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
params.Add("bucketId", fmt.Sprintf("%v", req.GetBucketId()))
|
||
|
||
baseUrl.RawQuery = params.Encode()
|
||
|
||
// Build HTTP headers from client and context metadata.
|
||
hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))}
|
||
|
||
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, "CreateBucketAsync")
|
||
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("/v2/%s", resp.GetName())
|
||
return &CreateBucketAsyncOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
pollPath: override,
|
||
}, nil
|
||
}
|
||
|
||
// UpdateBucketAsync updates a log bucket asynchronously.
|
||
//
|
||
// If the bucket has a lifecycle_state of DELETE_REQUESTED, then
|
||
// FAILED_PRECONDITION will be returned.
|
||
//
|
||
// After a bucket has been created, the bucket’s location cannot be changed.
|
||
func (c *configRESTClient) UpdateBucketAsync(ctx context.Context, req *loggingpb.UpdateBucketRequest, opts ...gax.CallOption) (*UpdateBucketAsyncOperation, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetBucket()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v:updateAsync", req.GetName())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
if req.GetUpdateMask() != nil {
|
||
field, err := protojson.Marshal(req.GetUpdateMask())
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
params.Add("updateMask", string(field[1:len(field)-1]))
|
||
}
|
||
|
||
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...)
|
||
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, "UpdateBucketAsync")
|
||
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("/v2/%s", resp.GetName())
|
||
return &UpdateBucketAsyncOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
pollPath: override,
|
||
}, nil
|
||
}
|
||
|
||
// CreateBucket creates a log bucket that can be used to store log entries. After a bucket
|
||
// has been created, the bucket’s location cannot be changed.
|
||
func (c *configRESTClient) CreateBucket(ctx context.Context, req *loggingpb.CreateBucketRequest, opts ...gax.CallOption) (*loggingpb.LogBucket, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetBucket()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/buckets", req.GetParent())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
params.Add("bucketId", fmt.Sprintf("%v", req.GetBucketId()))
|
||
|
||
baseUrl.RawQuery = params.Encode()
|
||
|
||
// Build HTTP headers from client and context metadata.
|
||
hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))}
|
||
|
||
hds = append(c.xGoogHeaders, hds...)
|
||
hds = append(hds, "Content-Type", "application/json")
|
||
headers := gax.BuildHeaders(ctx, hds...)
|
||
opts = append((*c.CallOptions).CreateBucket[0:len((*c.CallOptions).CreateBucket):len((*c.CallOptions).CreateBucket)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogBucket{}
|
||
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, "CreateBucket")
|
||
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
|
||
}
|
||
|
||
// UpdateBucket updates a log bucket.
|
||
//
|
||
// If the bucket has a lifecycle_state of DELETE_REQUESTED, then
|
||
// FAILED_PRECONDITION will be returned.
|
||
//
|
||
// After a bucket has been created, the bucket’s location cannot be changed.
|
||
func (c *configRESTClient) UpdateBucket(ctx context.Context, req *loggingpb.UpdateBucketRequest, opts ...gax.CallOption) (*loggingpb.LogBucket, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetBucket()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v", req.GetName())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
if req.GetUpdateMask() != nil {
|
||
field, err := protojson.Marshal(req.GetUpdateMask())
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
params.Add("updateMask", string(field[1:len(field)-1]))
|
||
}
|
||
|
||
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).UpdateBucket[0:len((*c.CallOptions).UpdateBucket):len((*c.CallOptions).UpdateBucket)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogBucket{}
|
||
e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
if settings.Path != "" {
|
||
baseUrl.Path = settings.Path
|
||
}
|
||
httpReq, err := http.NewRequest("PATCH", 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, "UpdateBucket")
|
||
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
|
||
}
|
||
|
||
// DeleteBucket deletes a log bucket.
|
||
//
|
||
// Changes the bucket’s lifecycle_state to the DELETE_REQUESTED state.
|
||
// After 7 days, the bucket will be purged and all log entries in the bucket
|
||
// will be permanently deleted.
|
||
func (c *configRESTClient) DeleteBucket(ctx context.Context, req *loggingpb.DeleteBucketRequest, opts ...gax.CallOption) error {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%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, "DeleteBucket")
|
||
return err
|
||
}, opts...)
|
||
}
|
||
|
||
// UndeleteBucket undeletes a log bucket. A bucket that has been deleted can be undeleted
|
||
// within the grace period of 7 days.
|
||
func (c *configRESTClient) UndeleteBucket(ctx context.Context, req *loggingpb.UndeleteBucketRequest, 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("/v2/%v:undelete", 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, "UndeleteBucket")
|
||
return err
|
||
}, opts...)
|
||
}
|
||
|
||
// ListViews lists views on a log bucket.
|
||
func (c *configRESTClient) ListViews(ctx context.Context, req *loggingpb.ListViewsRequest, opts ...gax.CallOption) *LogViewIterator {
|
||
it := &LogViewIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListViewsRequest)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogView, string, error) {
|
||
resp := &loggingpb.ListViewsResponse{}
|
||
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("/v2/%v/views", 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, "ListViews")
|
||
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.GetViews(), 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
|
||
}
|
||
|
||
// GetView gets a view on a log bucket…
|
||
func (c *configRESTClient) GetView(ctx context.Context, req *loggingpb.GetViewRequest, opts ...gax.CallOption) (*loggingpb.LogView, error) {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%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).GetView[0:len((*c.CallOptions).GetView):len((*c.CallOptions).GetView)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogView{}
|
||
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, "GetView")
|
||
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
|
||
}
|
||
|
||
// CreateView creates a view over log entries in a log bucket. A bucket may contain a
|
||
// maximum of 30 views.
|
||
func (c *configRESTClient) CreateView(ctx context.Context, req *loggingpb.CreateViewRequest, opts ...gax.CallOption) (*loggingpb.LogView, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetView()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/views", req.GetParent())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
params.Add("viewId", fmt.Sprintf("%v", req.GetViewId()))
|
||
|
||
baseUrl.RawQuery = params.Encode()
|
||
|
||
// Build HTTP headers from client and context metadata.
|
||
hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))}
|
||
|
||
hds = append(c.xGoogHeaders, hds...)
|
||
hds = append(hds, "Content-Type", "application/json")
|
||
headers := gax.BuildHeaders(ctx, hds...)
|
||
opts = append((*c.CallOptions).CreateView[0:len((*c.CallOptions).CreateView):len((*c.CallOptions).CreateView)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogView{}
|
||
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, "CreateView")
|
||
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
|
||
}
|
||
|
||
// UpdateView updates a view on a log bucket. This method replaces the following fields
|
||
// in the existing view with values from the new view: filter.
|
||
// If an UNAVAILABLE error is returned, this indicates that system is not in
|
||
// a state where it can update the view. If this occurs, please try again in a
|
||
// few minutes.
|
||
func (c *configRESTClient) UpdateView(ctx context.Context, req *loggingpb.UpdateViewRequest, opts ...gax.CallOption) (*loggingpb.LogView, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetView()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v", req.GetName())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
if req.GetUpdateMask() != nil {
|
||
field, err := protojson.Marshal(req.GetUpdateMask())
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
params.Add("updateMask", string(field[1:len(field)-1]))
|
||
}
|
||
|
||
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).UpdateView[0:len((*c.CallOptions).UpdateView):len((*c.CallOptions).UpdateView)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogView{}
|
||
e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
if settings.Path != "" {
|
||
baseUrl.Path = settings.Path
|
||
}
|
||
httpReq, err := http.NewRequest("PATCH", 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, "UpdateView")
|
||
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
|
||
}
|
||
|
||
// DeleteView deletes a view on a log bucket.
|
||
// If an UNAVAILABLE error is returned, this indicates that system is not in
|
||
// a state where it can delete the view. If this occurs, please try again in a
|
||
// few minutes.
|
||
func (c *configRESTClient) DeleteView(ctx context.Context, req *loggingpb.DeleteViewRequest, opts ...gax.CallOption) error {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%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, "DeleteView")
|
||
return err
|
||
}, opts...)
|
||
}
|
||
|
||
// ListSinks lists sinks.
|
||
func (c *configRESTClient) ListSinks(ctx context.Context, req *loggingpb.ListSinksRequest, opts ...gax.CallOption) *LogSinkIterator {
|
||
it := &LogSinkIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListSinksRequest)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogSink, string, error) {
|
||
resp := &loggingpb.ListSinksResponse{}
|
||
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("/v2/%v/sinks", 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, "ListSinks")
|
||
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.GetSinks(), 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
|
||
}
|
||
|
||
// GetSink gets a sink.
|
||
func (c *configRESTClient) GetSink(ctx context.Context, req *loggingpb.GetSinkRequest, opts ...gax.CallOption) (*loggingpb.LogSink, error) {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v", req.GetSinkName())
|
||
|
||
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", "sink_name", url.QueryEscape(req.GetSinkName()))}
|
||
|
||
hds = append(c.xGoogHeaders, hds...)
|
||
hds = append(hds, "Content-Type", "application/json")
|
||
headers := gax.BuildHeaders(ctx, hds...)
|
||
opts = append((*c.CallOptions).GetSink[0:len((*c.CallOptions).GetSink):len((*c.CallOptions).GetSink)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogSink{}
|
||
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, "GetSink")
|
||
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
|
||
}
|
||
|
||
// CreateSink creates a sink that exports specified log entries to a destination. The
|
||
// export of newly-ingested log entries begins immediately, unless the sink’s
|
||
// writer_identity is not permitted to write to the destination. A sink can
|
||
// export log entries only from the resource owning the sink.
|
||
func (c *configRESTClient) CreateSink(ctx context.Context, req *loggingpb.CreateSinkRequest, opts ...gax.CallOption) (*loggingpb.LogSink, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetSink()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/sinks", req.GetParent())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
if req.GetUniqueWriterIdentity() {
|
||
params.Add("uniqueWriterIdentity", fmt.Sprintf("%v", req.GetUniqueWriterIdentity()))
|
||
}
|
||
|
||
baseUrl.RawQuery = params.Encode()
|
||
|
||
// Build HTTP headers from client and context metadata.
|
||
hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))}
|
||
|
||
hds = append(c.xGoogHeaders, hds...)
|
||
hds = append(hds, "Content-Type", "application/json")
|
||
headers := gax.BuildHeaders(ctx, hds...)
|
||
opts = append((*c.CallOptions).CreateSink[0:len((*c.CallOptions).CreateSink):len((*c.CallOptions).CreateSink)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogSink{}
|
||
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, "CreateSink")
|
||
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
|
||
}
|
||
|
||
// UpdateSink updates a sink. This method replaces the following fields in the existing
|
||
// sink with values from the new sink: destination, and filter.
|
||
//
|
||
// The updated sink might also have a new writer_identity; see the
|
||
// unique_writer_identity field.
|
||
func (c *configRESTClient) UpdateSink(ctx context.Context, req *loggingpb.UpdateSinkRequest, opts ...gax.CallOption) (*loggingpb.LogSink, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetSink()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v", req.GetSinkName())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
if req.GetUniqueWriterIdentity() {
|
||
params.Add("uniqueWriterIdentity", fmt.Sprintf("%v", req.GetUniqueWriterIdentity()))
|
||
}
|
||
if req.GetUpdateMask() != nil {
|
||
field, err := protojson.Marshal(req.GetUpdateMask())
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
params.Add("updateMask", string(field[1:len(field)-1]))
|
||
}
|
||
|
||
baseUrl.RawQuery = params.Encode()
|
||
|
||
// Build HTTP headers from client and context metadata.
|
||
hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "sink_name", url.QueryEscape(req.GetSinkName()))}
|
||
|
||
hds = append(c.xGoogHeaders, hds...)
|
||
hds = append(hds, "Content-Type", "application/json")
|
||
headers := gax.BuildHeaders(ctx, hds...)
|
||
opts = append((*c.CallOptions).UpdateSink[0:len((*c.CallOptions).UpdateSink):len((*c.CallOptions).UpdateSink)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogSink{}
|
||
e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
if settings.Path != "" {
|
||
baseUrl.Path = settings.Path
|
||
}
|
||
httpReq, err := http.NewRequest("PUT", 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, "UpdateSink")
|
||
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
|
||
}
|
||
|
||
// DeleteSink deletes a sink. If the sink has a unique writer_identity, then that
|
||
// service account is also deleted.
|
||
func (c *configRESTClient) DeleteSink(ctx context.Context, req *loggingpb.DeleteSinkRequest, opts ...gax.CallOption) error {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v", req.GetSinkName())
|
||
|
||
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", "sink_name", url.QueryEscape(req.GetSinkName()))}
|
||
|
||
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, "DeleteSink")
|
||
return err
|
||
}, opts...)
|
||
}
|
||
|
||
// CreateLink asynchronously creates a linked dataset in BigQuery which makes it possible
|
||
// to use BigQuery to read the logs stored in the log bucket. A log bucket may
|
||
// currently only contain one link.
|
||
func (c *configRESTClient) CreateLink(ctx context.Context, req *loggingpb.CreateLinkRequest, opts ...gax.CallOption) (*CreateLinkOperation, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetLink()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/links", req.GetParent())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
params.Add("linkId", fmt.Sprintf("%v", req.GetLinkId()))
|
||
|
||
baseUrl.RawQuery = params.Encode()
|
||
|
||
// Build HTTP headers from client and context metadata.
|
||
hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))}
|
||
|
||
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, "CreateLink")
|
||
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("/v2/%s", resp.GetName())
|
||
return &CreateLinkOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
pollPath: override,
|
||
}, nil
|
||
}
|
||
|
||
// DeleteLink deletes a link. This will also delete the corresponding BigQuery linked
|
||
// dataset.
|
||
func (c *configRESTClient) DeleteLink(ctx context.Context, req *loggingpb.DeleteLinkRequest, opts ...gax.CallOption) (*DeleteLinkOperation, error) {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%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...)
|
||
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("DELETE", 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, "DeleteLink")
|
||
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("/v2/%s", resp.GetName())
|
||
return &DeleteLinkOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
pollPath: override,
|
||
}, nil
|
||
}
|
||
|
||
// ListLinks lists links.
|
||
func (c *configRESTClient) ListLinks(ctx context.Context, req *loggingpb.ListLinksRequest, opts ...gax.CallOption) *LinkIterator {
|
||
it := &LinkIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListLinksRequest)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.Link, string, error) {
|
||
resp := &loggingpb.ListLinksResponse{}
|
||
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("/v2/%v/links", 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, "ListLinks")
|
||
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.GetLinks(), 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
|
||
}
|
||
|
||
// GetLink gets a link.
|
||
func (c *configRESTClient) GetLink(ctx context.Context, req *loggingpb.GetLinkRequest, opts ...gax.CallOption) (*loggingpb.Link, error) {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%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).GetLink[0:len((*c.CallOptions).GetLink):len((*c.CallOptions).GetLink)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.Link{}
|
||
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, "GetLink")
|
||
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
|
||
}
|
||
|
||
// ListExclusions lists all the exclusions on the _Default sink in a parent resource.
|
||
func (c *configRESTClient) ListExclusions(ctx context.Context, req *loggingpb.ListExclusionsRequest, opts ...gax.CallOption) *LogExclusionIterator {
|
||
it := &LogExclusionIterator{}
|
||
req = proto.Clone(req).(*loggingpb.ListExclusionsRequest)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogExclusion, string, error) {
|
||
resp := &loggingpb.ListExclusionsResponse{}
|
||
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("/v2/%v/exclusions", 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, "ListExclusions")
|
||
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.GetExclusions(), 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
|
||
}
|
||
|
||
// GetExclusion gets the description of an exclusion in the _Default sink.
|
||
func (c *configRESTClient) GetExclusion(ctx context.Context, req *loggingpb.GetExclusionRequest, opts ...gax.CallOption) (*loggingpb.LogExclusion, error) {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%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).GetExclusion[0:len((*c.CallOptions).GetExclusion):len((*c.CallOptions).GetExclusion)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogExclusion{}
|
||
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, "GetExclusion")
|
||
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
|
||
}
|
||
|
||
// CreateExclusion creates a new exclusion in the _Default sink in a specified parent
|
||
// resource. Only log entries belonging to that resource can be excluded. You
|
||
// can have up to 10 exclusions in a resource.
|
||
func (c *configRESTClient) CreateExclusion(ctx context.Context, req *loggingpb.CreateExclusionRequest, opts ...gax.CallOption) (*loggingpb.LogExclusion, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetExclusion()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/exclusions", req.GetParent())
|
||
|
||
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", "parent", url.QueryEscape(req.GetParent()))}
|
||
|
||
hds = append(c.xGoogHeaders, hds...)
|
||
hds = append(hds, "Content-Type", "application/json")
|
||
headers := gax.BuildHeaders(ctx, hds...)
|
||
opts = append((*c.CallOptions).CreateExclusion[0:len((*c.CallOptions).CreateExclusion):len((*c.CallOptions).CreateExclusion)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogExclusion{}
|
||
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, "CreateExclusion")
|
||
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
|
||
}
|
||
|
||
// UpdateExclusion changes one or more properties of an existing exclusion in the _Default
|
||
// sink.
|
||
func (c *configRESTClient) UpdateExclusion(ctx context.Context, req *loggingpb.UpdateExclusionRequest, opts ...gax.CallOption) (*loggingpb.LogExclusion, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetExclusion()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v", req.GetName())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
if req.GetUpdateMask() != nil {
|
||
field, err := protojson.Marshal(req.GetUpdateMask())
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
params.Add("updateMask", string(field[1:len(field)-1]))
|
||
}
|
||
|
||
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).UpdateExclusion[0:len((*c.CallOptions).UpdateExclusion):len((*c.CallOptions).UpdateExclusion)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.LogExclusion{}
|
||
e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
if settings.Path != "" {
|
||
baseUrl.Path = settings.Path
|
||
}
|
||
httpReq, err := http.NewRequest("PATCH", 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, "UpdateExclusion")
|
||
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
|
||
}
|
||
|
||
// DeleteExclusion deletes an exclusion in the _Default sink.
|
||
func (c *configRESTClient) DeleteExclusion(ctx context.Context, req *loggingpb.DeleteExclusionRequest, opts ...gax.CallOption) error {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%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, "DeleteExclusion")
|
||
return err
|
||
}, opts...)
|
||
}
|
||
|
||
// GetCmekSettings gets the Logging CMEK settings for the given resource.
|
||
//
|
||
// Note: CMEK for the Log Router can be configured for Google Cloud projects,
|
||
// folders, organizations and billing accounts. Once configured for an
|
||
// organization, it applies to all projects and folders in the Google Cloud
|
||
// organization.
|
||
//
|
||
// See Enabling CMEK for Log
|
||
// Router (at https://cloud.google.com/logging/docs/routing/managed-encryption)
|
||
// for more information.
|
||
func (c *configRESTClient) GetCmekSettings(ctx context.Context, req *loggingpb.GetCmekSettingsRequest, opts ...gax.CallOption) (*loggingpb.CmekSettings, error) {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/cmekSettings", 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).GetCmekSettings[0:len((*c.CallOptions).GetCmekSettings):len((*c.CallOptions).GetCmekSettings)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.CmekSettings{}
|
||
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, "GetCmekSettings")
|
||
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
|
||
}
|
||
|
||
// UpdateCmekSettings updates the Log Router CMEK settings for the given resource.
|
||
//
|
||
// Note: CMEK for the Log Router can currently only be configured for Google
|
||
// Cloud organizations. Once configured, it applies to all projects and
|
||
// folders in the Google Cloud organization.
|
||
//
|
||
// UpdateCmekSettings
|
||
// will fail if 1) kms_key_name is invalid, or 2) the associated service
|
||
// account does not have the required
|
||
// roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key, or
|
||
// 3) access to the key is disabled.
|
||
//
|
||
// See Enabling CMEK for Log
|
||
// Router (at https://cloud.google.com/logging/docs/routing/managed-encryption)
|
||
// for more information.
|
||
func (c *configRESTClient) UpdateCmekSettings(ctx context.Context, req *loggingpb.UpdateCmekSettingsRequest, opts ...gax.CallOption) (*loggingpb.CmekSettings, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetCmekSettings()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/cmekSettings", req.GetName())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
if req.GetUpdateMask() != nil {
|
||
field, err := protojson.Marshal(req.GetUpdateMask())
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
params.Add("updateMask", string(field[1:len(field)-1]))
|
||
}
|
||
|
||
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).UpdateCmekSettings[0:len((*c.CallOptions).UpdateCmekSettings):len((*c.CallOptions).UpdateCmekSettings)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.CmekSettings{}
|
||
e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
if settings.Path != "" {
|
||
baseUrl.Path = settings.Path
|
||
}
|
||
httpReq, err := http.NewRequest("PATCH", 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, "UpdateCmekSettings")
|
||
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
|
||
}
|
||
|
||
// GetSettings gets the Log Router settings for the given resource.
|
||
//
|
||
// Note: Settings for the Log Router can be get for Google Cloud projects,
|
||
// folders, organizations and billing accounts. Currently it can only be
|
||
// configured for organizations. Once configured for an organization, it
|
||
// applies to all projects and folders in the Google Cloud organization.
|
||
//
|
||
// See Enabling CMEK for Log
|
||
// Router (at https://cloud.google.com/logging/docs/routing/managed-encryption)
|
||
// for more information.
|
||
func (c *configRESTClient) GetSettings(ctx context.Context, req *loggingpb.GetSettingsRequest, opts ...gax.CallOption) (*loggingpb.Settings, error) {
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/settings", 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).GetSettings[0:len((*c.CallOptions).GetSettings):len((*c.CallOptions).GetSettings)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.Settings{}
|
||
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, "GetSettings")
|
||
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
|
||
}
|
||
|
||
// UpdateSettings updates the Log Router settings for the given resource.
|
||
//
|
||
// Note: Settings for the Log Router can currently only be configured for
|
||
// Google Cloud organizations. Once configured, it applies to all projects and
|
||
// folders in the Google Cloud organization.
|
||
//
|
||
// UpdateSettings
|
||
// will fail if 1) kms_key_name is invalid, or 2) the associated service
|
||
// account does not have the required
|
||
// roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key, or
|
||
// 3) access to the key is disabled. 4) location_id is not supported by
|
||
// Logging. 5) location_id violate OrgPolicy.
|
||
//
|
||
// See Enabling CMEK for Log
|
||
// Router (at https://cloud.google.com/logging/docs/routing/managed-encryption)
|
||
// for more information.
|
||
func (c *configRESTClient) UpdateSettings(ctx context.Context, req *loggingpb.UpdateSettingsRequest, opts ...gax.CallOption) (*loggingpb.Settings, error) {
|
||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||
body := req.GetSettings()
|
||
jsonReq, err := m.Marshal(body)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
baseUrl, err := url.Parse(c.endpoint)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
baseUrl.Path += fmt.Sprintf("/v2/%v/settings", req.GetName())
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
if req.GetUpdateMask() != nil {
|
||
field, err := protojson.Marshal(req.GetUpdateMask())
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
params.Add("updateMask", string(field[1:len(field)-1]))
|
||
}
|
||
|
||
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).UpdateSettings[0:len((*c.CallOptions).UpdateSettings):len((*c.CallOptions).UpdateSettings)], opts...)
|
||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||
resp := &loggingpb.Settings{}
|
||
e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||
if settings.Path != "" {
|
||
baseUrl.Path = settings.Path
|
||
}
|
||
httpReq, err := http.NewRequest("PATCH", 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, "UpdateSettings")
|
||
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
|
||
}
|
||
|
||
// CopyLogEntries copies a set of log entries from a log bucket to a Cloud Storage bucket.
|
||
func (c *configRESTClient) CopyLogEntries(ctx context.Context, req *loggingpb.CopyLogEntriesRequest, opts ...gax.CallOption) (*CopyLogEntriesOperation, 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("/v2/entries:copy")
|
||
|
||
params := url.Values{}
|
||
params.Add("$alt", "json;enum-encoding=int")
|
||
|
||
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...)
|
||
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, "CopyLogEntries")
|
||
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("/v2/%s", resp.GetName())
|
||
return &CopyLogEntriesOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, resp),
|
||
pollPath: override,
|
||
}, nil
|
||
}
|
||
|
||
// CancelOperation is a utility method from google.longrunning.Operations.
|
||
func (c *configRESTClient) 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("/v2/%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...)
|
||
}
|
||
|
||
// GetOperation is a utility method from google.longrunning.Operations.
|
||
func (c *configRESTClient) 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("/v2/%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 *configRESTClient) 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("/v2/%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()))
|
||
}
|
||
|
||
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
|
||
}
|
||
|
||
// CopyLogEntriesOperation returns a new CopyLogEntriesOperation from a given name.
|
||
// The name must be that of a previously created CopyLogEntriesOperation, possibly from a different process.
|
||
func (c *configGRPCClient) CopyLogEntriesOperation(name string) *CopyLogEntriesOperation {
|
||
return &CopyLogEntriesOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
}
|
||
}
|
||
|
||
// CopyLogEntriesOperation returns a new CopyLogEntriesOperation from a given name.
|
||
// The name must be that of a previously created CopyLogEntriesOperation, possibly from a different process.
|
||
func (c *configRESTClient) CopyLogEntriesOperation(name string) *CopyLogEntriesOperation {
|
||
override := fmt.Sprintf("/v2/%s", name)
|
||
return &CopyLogEntriesOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
pollPath: override,
|
||
}
|
||
}
|
||
|
||
// CreateBucketAsyncOperation returns a new CreateBucketAsyncOperation from a given name.
|
||
// The name must be that of a previously created CreateBucketAsyncOperation, possibly from a different process.
|
||
func (c *configGRPCClient) CreateBucketAsyncOperation(name string) *CreateBucketAsyncOperation {
|
||
return &CreateBucketAsyncOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
}
|
||
}
|
||
|
||
// CreateBucketAsyncOperation returns a new CreateBucketAsyncOperation from a given name.
|
||
// The name must be that of a previously created CreateBucketAsyncOperation, possibly from a different process.
|
||
func (c *configRESTClient) CreateBucketAsyncOperation(name string) *CreateBucketAsyncOperation {
|
||
override := fmt.Sprintf("/v2/%s", name)
|
||
return &CreateBucketAsyncOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
pollPath: override,
|
||
}
|
||
}
|
||
|
||
// CreateLinkOperation returns a new CreateLinkOperation from a given name.
|
||
// The name must be that of a previously created CreateLinkOperation, possibly from a different process.
|
||
func (c *configGRPCClient) CreateLinkOperation(name string) *CreateLinkOperation {
|
||
return &CreateLinkOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
}
|
||
}
|
||
|
||
// CreateLinkOperation returns a new CreateLinkOperation from a given name.
|
||
// The name must be that of a previously created CreateLinkOperation, possibly from a different process.
|
||
func (c *configRESTClient) CreateLinkOperation(name string) *CreateLinkOperation {
|
||
override := fmt.Sprintf("/v2/%s", name)
|
||
return &CreateLinkOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
pollPath: override,
|
||
}
|
||
}
|
||
|
||
// DeleteLinkOperation returns a new DeleteLinkOperation from a given name.
|
||
// The name must be that of a previously created DeleteLinkOperation, possibly from a different process.
|
||
func (c *configGRPCClient) DeleteLinkOperation(name string) *DeleteLinkOperation {
|
||
return &DeleteLinkOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
}
|
||
}
|
||
|
||
// DeleteLinkOperation returns a new DeleteLinkOperation from a given name.
|
||
// The name must be that of a previously created DeleteLinkOperation, possibly from a different process.
|
||
func (c *configRESTClient) DeleteLinkOperation(name string) *DeleteLinkOperation {
|
||
override := fmt.Sprintf("/v2/%s", name)
|
||
return &DeleteLinkOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
pollPath: override,
|
||
}
|
||
}
|
||
|
||
// UpdateBucketAsyncOperation returns a new UpdateBucketAsyncOperation from a given name.
|
||
// The name must be that of a previously created UpdateBucketAsyncOperation, possibly from a different process.
|
||
func (c *configGRPCClient) UpdateBucketAsyncOperation(name string) *UpdateBucketAsyncOperation {
|
||
return &UpdateBucketAsyncOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
}
|
||
}
|
||
|
||
// UpdateBucketAsyncOperation returns a new UpdateBucketAsyncOperation from a given name.
|
||
// The name must be that of a previously created UpdateBucketAsyncOperation, possibly from a different process.
|
||
func (c *configRESTClient) UpdateBucketAsyncOperation(name string) *UpdateBucketAsyncOperation {
|
||
override := fmt.Sprintf("/v2/%s", name)
|
||
return &UpdateBucketAsyncOperation{
|
||
lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}),
|
||
pollPath: override,
|
||
}
|
||
}
|