1// Copyright 2021 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// https://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go_gapic. DO NOT EDIT. 16 17package datatransfer 18 19import ( 20 "context" 21 "fmt" 22 "math" 23 "net/url" 24 "time" 25 26 gax "github.com/googleapis/gax-go/v2" 27 "google.golang.org/api/iterator" 28 "google.golang.org/api/option" 29 "google.golang.org/api/option/internaloption" 30 gtransport "google.golang.org/api/transport/grpc" 31 datatransferpb "google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1" 32 "google.golang.org/grpc" 33 "google.golang.org/grpc/codes" 34 "google.golang.org/grpc/metadata" 35 "google.golang.org/protobuf/proto" 36) 37 38var newClientHook clientHook 39 40// CallOptions contains the retry settings for each method of Client. 41type CallOptions struct { 42 GetDataSource []gax.CallOption 43 ListDataSources []gax.CallOption 44 CreateTransferConfig []gax.CallOption 45 UpdateTransferConfig []gax.CallOption 46 DeleteTransferConfig []gax.CallOption 47 GetTransferConfig []gax.CallOption 48 ListTransferConfigs []gax.CallOption 49 ScheduleTransferRuns []gax.CallOption 50 StartManualTransferRuns []gax.CallOption 51 GetTransferRun []gax.CallOption 52 DeleteTransferRun []gax.CallOption 53 ListTransferRuns []gax.CallOption 54 ListTransferLogs []gax.CallOption 55 CheckValidCreds []gax.CallOption 56} 57 58func defaultGRPCClientOptions() []option.ClientOption { 59 return []option.ClientOption{ 60 internaloption.WithDefaultEndpoint("bigquerydatatransfer.googleapis.com:443"), 61 internaloption.WithDefaultMTLSEndpoint("bigquerydatatransfer.mtls.googleapis.com:443"), 62 internaloption.WithDefaultAudience("https://bigquerydatatransfer.googleapis.com/"), 63 internaloption.WithDefaultScopes(DefaultAuthScopes()...), 64 internaloption.EnableJwtWithScope(), 65 option.WithGRPCDialOption(grpc.WithDisableServiceConfig()), 66 option.WithGRPCDialOption(grpc.WithDefaultCallOptions( 67 grpc.MaxCallRecvMsgSize(math.MaxInt32))), 68 } 69} 70 71func defaultCallOptions() *CallOptions { 72 return &CallOptions{ 73 GetDataSource: []gax.CallOption{ 74 gax.WithRetry(func() gax.Retryer { 75 return gax.OnCodes([]codes.Code{ 76 codes.Unavailable, 77 codes.DeadlineExceeded, 78 }, gax.Backoff{ 79 Initial: 100 * time.Millisecond, 80 Max: 60000 * time.Millisecond, 81 Multiplier: 1.30, 82 }) 83 }), 84 }, 85 ListDataSources: []gax.CallOption{ 86 gax.WithRetry(func() gax.Retryer { 87 return gax.OnCodes([]codes.Code{ 88 codes.Unavailable, 89 codes.DeadlineExceeded, 90 }, gax.Backoff{ 91 Initial: 100 * time.Millisecond, 92 Max: 60000 * time.Millisecond, 93 Multiplier: 1.30, 94 }) 95 }), 96 }, 97 CreateTransferConfig: []gax.CallOption{}, 98 UpdateTransferConfig: []gax.CallOption{}, 99 DeleteTransferConfig: []gax.CallOption{ 100 gax.WithRetry(func() gax.Retryer { 101 return gax.OnCodes([]codes.Code{ 102 codes.Unavailable, 103 codes.DeadlineExceeded, 104 }, gax.Backoff{ 105 Initial: 100 * time.Millisecond, 106 Max: 60000 * time.Millisecond, 107 Multiplier: 1.30, 108 }) 109 }), 110 }, 111 GetTransferConfig: []gax.CallOption{ 112 gax.WithRetry(func() gax.Retryer { 113 return gax.OnCodes([]codes.Code{ 114 codes.Unavailable, 115 codes.DeadlineExceeded, 116 }, gax.Backoff{ 117 Initial: 100 * time.Millisecond, 118 Max: 60000 * time.Millisecond, 119 Multiplier: 1.30, 120 }) 121 }), 122 }, 123 ListTransferConfigs: []gax.CallOption{ 124 gax.WithRetry(func() gax.Retryer { 125 return gax.OnCodes([]codes.Code{ 126 codes.Unavailable, 127 codes.DeadlineExceeded, 128 }, gax.Backoff{ 129 Initial: 100 * time.Millisecond, 130 Max: 60000 * time.Millisecond, 131 Multiplier: 1.30, 132 }) 133 }), 134 }, 135 ScheduleTransferRuns: []gax.CallOption{}, 136 StartManualTransferRuns: []gax.CallOption{}, 137 GetTransferRun: []gax.CallOption{ 138 gax.WithRetry(func() gax.Retryer { 139 return gax.OnCodes([]codes.Code{ 140 codes.Unavailable, 141 codes.DeadlineExceeded, 142 }, gax.Backoff{ 143 Initial: 100 * time.Millisecond, 144 Max: 60000 * time.Millisecond, 145 Multiplier: 1.30, 146 }) 147 }), 148 }, 149 DeleteTransferRun: []gax.CallOption{ 150 gax.WithRetry(func() gax.Retryer { 151 return gax.OnCodes([]codes.Code{ 152 codes.Unavailable, 153 codes.DeadlineExceeded, 154 }, gax.Backoff{ 155 Initial: 100 * time.Millisecond, 156 Max: 60000 * time.Millisecond, 157 Multiplier: 1.30, 158 }) 159 }), 160 }, 161 ListTransferRuns: []gax.CallOption{ 162 gax.WithRetry(func() gax.Retryer { 163 return gax.OnCodes([]codes.Code{ 164 codes.Unavailable, 165 codes.DeadlineExceeded, 166 }, gax.Backoff{ 167 Initial: 100 * time.Millisecond, 168 Max: 60000 * time.Millisecond, 169 Multiplier: 1.30, 170 }) 171 }), 172 }, 173 ListTransferLogs: []gax.CallOption{ 174 gax.WithRetry(func() gax.Retryer { 175 return gax.OnCodes([]codes.Code{ 176 codes.Unavailable, 177 codes.DeadlineExceeded, 178 }, gax.Backoff{ 179 Initial: 100 * time.Millisecond, 180 Max: 60000 * time.Millisecond, 181 Multiplier: 1.30, 182 }) 183 }), 184 }, 185 CheckValidCreds: []gax.CallOption{ 186 gax.WithRetry(func() gax.Retryer { 187 return gax.OnCodes([]codes.Code{ 188 codes.Unavailable, 189 codes.DeadlineExceeded, 190 }, gax.Backoff{ 191 Initial: 100 * time.Millisecond, 192 Max: 60000 * time.Millisecond, 193 Multiplier: 1.30, 194 }) 195 }), 196 }, 197 } 198} 199 200// internalClient is an interface that defines the methods availaible from BigQuery Data Transfer API. 201type internalClient interface { 202 Close() error 203 setGoogleClientInfo(...string) 204 Connection() *grpc.ClientConn 205 GetDataSource(context.Context, *datatransferpb.GetDataSourceRequest, ...gax.CallOption) (*datatransferpb.DataSource, error) 206 ListDataSources(context.Context, *datatransferpb.ListDataSourcesRequest, ...gax.CallOption) *DataSourceIterator 207 CreateTransferConfig(context.Context, *datatransferpb.CreateTransferConfigRequest, ...gax.CallOption) (*datatransferpb.TransferConfig, error) 208 UpdateTransferConfig(context.Context, *datatransferpb.UpdateTransferConfigRequest, ...gax.CallOption) (*datatransferpb.TransferConfig, error) 209 DeleteTransferConfig(context.Context, *datatransferpb.DeleteTransferConfigRequest, ...gax.CallOption) error 210 GetTransferConfig(context.Context, *datatransferpb.GetTransferConfigRequest, ...gax.CallOption) (*datatransferpb.TransferConfig, error) 211 ListTransferConfigs(context.Context, *datatransferpb.ListTransferConfigsRequest, ...gax.CallOption) *TransferConfigIterator 212 ScheduleTransferRuns(context.Context, *datatransferpb.ScheduleTransferRunsRequest, ...gax.CallOption) (*datatransferpb.ScheduleTransferRunsResponse, error) 213 StartManualTransferRuns(context.Context, *datatransferpb.StartManualTransferRunsRequest, ...gax.CallOption) (*datatransferpb.StartManualTransferRunsResponse, error) 214 GetTransferRun(context.Context, *datatransferpb.GetTransferRunRequest, ...gax.CallOption) (*datatransferpb.TransferRun, error) 215 DeleteTransferRun(context.Context, *datatransferpb.DeleteTransferRunRequest, ...gax.CallOption) error 216 ListTransferRuns(context.Context, *datatransferpb.ListTransferRunsRequest, ...gax.CallOption) *TransferRunIterator 217 ListTransferLogs(context.Context, *datatransferpb.ListTransferLogsRequest, ...gax.CallOption) *TransferMessageIterator 218 CheckValidCreds(context.Context, *datatransferpb.CheckValidCredsRequest, ...gax.CallOption) (*datatransferpb.CheckValidCredsResponse, error) 219} 220 221// Client is a client for interacting with BigQuery Data Transfer API. 222// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. 223// 224// The Google BigQuery Data Transfer Service API enables BigQuery users to 225// configure the transfer of their data from other Google Products into 226// BigQuery. This service contains methods that are end user exposed. It backs 227// up the frontend. 228type Client struct { 229 // The internal transport-dependent client. 230 internalClient internalClient 231 232 // The call options for this service. 233 CallOptions *CallOptions 234} 235 236// Wrapper methods routed to the internal client. 237 238// Close closes the connection to the API service. The user should invoke this when 239// the client is no longer required. 240func (c *Client) Close() error { 241 return c.internalClient.Close() 242} 243 244// setGoogleClientInfo sets the name and version of the application in 245// the `x-goog-api-client` header passed on each request. Intended for 246// use by Google-written clients. 247func (c *Client) setGoogleClientInfo(keyval ...string) { 248 c.internalClient.setGoogleClientInfo(keyval...) 249} 250 251// Connection returns a connection to the API service. 252// 253// Deprecated. 254func (c *Client) Connection() *grpc.ClientConn { 255 return c.internalClient.Connection() 256} 257 258// GetDataSource retrieves a supported data source and returns its settings, 259// which can be used for UI rendering. 260func (c *Client) GetDataSource(ctx context.Context, req *datatransferpb.GetDataSourceRequest, opts ...gax.CallOption) (*datatransferpb.DataSource, error) { 261 return c.internalClient.GetDataSource(ctx, req, opts...) 262} 263 264// ListDataSources lists supported data sources and returns their settings, 265// which can be used for UI rendering. 266func (c *Client) ListDataSources(ctx context.Context, req *datatransferpb.ListDataSourcesRequest, opts ...gax.CallOption) *DataSourceIterator { 267 return c.internalClient.ListDataSources(ctx, req, opts...) 268} 269 270// CreateTransferConfig creates a new data transfer configuration. 271func (c *Client) CreateTransferConfig(ctx context.Context, req *datatransferpb.CreateTransferConfigRequest, opts ...gax.CallOption) (*datatransferpb.TransferConfig, error) { 272 return c.internalClient.CreateTransferConfig(ctx, req, opts...) 273} 274 275// UpdateTransferConfig updates a data transfer configuration. 276// All fields must be set, even if they are not updated. 277func (c *Client) UpdateTransferConfig(ctx context.Context, req *datatransferpb.UpdateTransferConfigRequest, opts ...gax.CallOption) (*datatransferpb.TransferConfig, error) { 278 return c.internalClient.UpdateTransferConfig(ctx, req, opts...) 279} 280 281// DeleteTransferConfig deletes a data transfer configuration, 282// including any associated transfer runs and logs. 283func (c *Client) DeleteTransferConfig(ctx context.Context, req *datatransferpb.DeleteTransferConfigRequest, opts ...gax.CallOption) error { 284 return c.internalClient.DeleteTransferConfig(ctx, req, opts...) 285} 286 287// GetTransferConfig returns information about a data transfer config. 288func (c *Client) GetTransferConfig(ctx context.Context, req *datatransferpb.GetTransferConfigRequest, opts ...gax.CallOption) (*datatransferpb.TransferConfig, error) { 289 return c.internalClient.GetTransferConfig(ctx, req, opts...) 290} 291 292// ListTransferConfigs returns information about all transfer configs owned by a project in the 293// specified location. 294func (c *Client) ListTransferConfigs(ctx context.Context, req *datatransferpb.ListTransferConfigsRequest, opts ...gax.CallOption) *TransferConfigIterator { 295 return c.internalClient.ListTransferConfigs(ctx, req, opts...) 296} 297 298// ScheduleTransferRuns creates transfer runs for a time range [start_time, end_time]. 299// For each date - or whatever granularity the data source supports - in the 300// range, one transfer run is created. 301// Note that runs are created per UTC time in the time range. 302// DEPRECATED: use StartManualTransferRuns instead. 303// 304// Deprecated: ScheduleTransferRuns may be removed in a future version. 305func (c *Client) ScheduleTransferRuns(ctx context.Context, req *datatransferpb.ScheduleTransferRunsRequest, opts ...gax.CallOption) (*datatransferpb.ScheduleTransferRunsResponse, error) { 306 return c.internalClient.ScheduleTransferRuns(ctx, req, opts...) 307} 308 309// StartManualTransferRuns start manual transfer runs to be executed now with schedule_time equal to 310// current time. The transfer runs can be created for a time range where the 311// run_time is between start_time (inclusive) and end_time (exclusive), or for 312// a specific run_time. 313func (c *Client) StartManualTransferRuns(ctx context.Context, req *datatransferpb.StartManualTransferRunsRequest, opts ...gax.CallOption) (*datatransferpb.StartManualTransferRunsResponse, error) { 314 return c.internalClient.StartManualTransferRuns(ctx, req, opts...) 315} 316 317// GetTransferRun returns information about the particular transfer run. 318func (c *Client) GetTransferRun(ctx context.Context, req *datatransferpb.GetTransferRunRequest, opts ...gax.CallOption) (*datatransferpb.TransferRun, error) { 319 return c.internalClient.GetTransferRun(ctx, req, opts...) 320} 321 322// DeleteTransferRun deletes the specified transfer run. 323func (c *Client) DeleteTransferRun(ctx context.Context, req *datatransferpb.DeleteTransferRunRequest, opts ...gax.CallOption) error { 324 return c.internalClient.DeleteTransferRun(ctx, req, opts...) 325} 326 327// ListTransferRuns returns information about running and completed jobs. 328func (c *Client) ListTransferRuns(ctx context.Context, req *datatransferpb.ListTransferRunsRequest, opts ...gax.CallOption) *TransferRunIterator { 329 return c.internalClient.ListTransferRuns(ctx, req, opts...) 330} 331 332// ListTransferLogs returns user facing log messages for the data transfer run. 333func (c *Client) ListTransferLogs(ctx context.Context, req *datatransferpb.ListTransferLogsRequest, opts ...gax.CallOption) *TransferMessageIterator { 334 return c.internalClient.ListTransferLogs(ctx, req, opts...) 335} 336 337// CheckValidCreds returns true if valid credentials exist for the given data source and 338// requesting user. 339// Some data sources doesn’t support service account, so we need to talk to 340// them on behalf of the end user. This API just checks whether we have OAuth 341// token for the particular user, which is a pre-requisite before user can 342// create a transfer config. 343func (c *Client) CheckValidCreds(ctx context.Context, req *datatransferpb.CheckValidCredsRequest, opts ...gax.CallOption) (*datatransferpb.CheckValidCredsResponse, error) { 344 return c.internalClient.CheckValidCreds(ctx, req, opts...) 345} 346 347// gRPCClient is a client for interacting with BigQuery Data Transfer API over gRPC transport. 348// 349// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. 350type gRPCClient struct { 351 // Connection pool of gRPC connections to the service. 352 connPool gtransport.ConnPool 353 354 // flag to opt out of default deadlines via GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE 355 disableDeadlines bool 356 357 // Points back to the CallOptions field of the containing Client 358 CallOptions **CallOptions 359 360 // The gRPC API client. 361 client datatransferpb.DataTransferServiceClient 362 363 // The x-goog-* metadata to be sent with each request. 364 xGoogMetadata metadata.MD 365} 366 367// NewClient creates a new data transfer service client based on gRPC. 368// The returned client must be Closed when it is done being used to clean up its underlying connections. 369// 370// The Google BigQuery Data Transfer Service API enables BigQuery users to 371// configure the transfer of their data from other Google Products into 372// BigQuery. This service contains methods that are end user exposed. It backs 373// up the frontend. 374func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { 375 clientOpts := defaultGRPCClientOptions() 376 if newClientHook != nil { 377 hookOpts, err := newClientHook(ctx, clientHookParams{}) 378 if err != nil { 379 return nil, err 380 } 381 clientOpts = append(clientOpts, hookOpts...) 382 } 383 384 disableDeadlines, err := checkDisableDeadlines() 385 if err != nil { 386 return nil, err 387 } 388 389 connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) 390 if err != nil { 391 return nil, err 392 } 393 client := Client{CallOptions: defaultCallOptions()} 394 395 c := &gRPCClient{ 396 connPool: connPool, 397 disableDeadlines: disableDeadlines, 398 client: datatransferpb.NewDataTransferServiceClient(connPool), 399 CallOptions: &client.CallOptions, 400 } 401 c.setGoogleClientInfo() 402 403 client.internalClient = c 404 405 return &client, nil 406} 407 408// Connection returns a connection to the API service. 409// 410// Deprecated. 411func (c *gRPCClient) Connection() *grpc.ClientConn { 412 return c.connPool.Conn() 413} 414 415// setGoogleClientInfo sets the name and version of the application in 416// the `x-goog-api-client` header passed on each request. Intended for 417// use by Google-written clients. 418func (c *gRPCClient) setGoogleClientInfo(keyval ...string) { 419 kv := append([]string{"gl-go", versionGo()}, keyval...) 420 kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) 421 c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) 422} 423 424// Close closes the connection to the API service. The user should invoke this when 425// the client is no longer required. 426func (c *gRPCClient) Close() error { 427 return c.connPool.Close() 428} 429 430func (c *gRPCClient) GetDataSource(ctx context.Context, req *datatransferpb.GetDataSourceRequest, opts ...gax.CallOption) (*datatransferpb.DataSource, error) { 431 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 432 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 433 defer cancel() 434 ctx = cctx 435 } 436 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 437 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 438 opts = append((*c.CallOptions).GetDataSource[0:len((*c.CallOptions).GetDataSource):len((*c.CallOptions).GetDataSource)], opts...) 439 var resp *datatransferpb.DataSource 440 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 441 var err error 442 resp, err = c.client.GetDataSource(ctx, req, settings.GRPC...) 443 return err 444 }, opts...) 445 if err != nil { 446 return nil, err 447 } 448 return resp, nil 449} 450 451func (c *gRPCClient) ListDataSources(ctx context.Context, req *datatransferpb.ListDataSourcesRequest, opts ...gax.CallOption) *DataSourceIterator { 452 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 453 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 454 opts = append((*c.CallOptions).ListDataSources[0:len((*c.CallOptions).ListDataSources):len((*c.CallOptions).ListDataSources)], opts...) 455 it := &DataSourceIterator{} 456 req = proto.Clone(req).(*datatransferpb.ListDataSourcesRequest) 457 it.InternalFetch = func(pageSize int, pageToken string) ([]*datatransferpb.DataSource, string, error) { 458 resp := &datatransferpb.ListDataSourcesResponse{} 459 if pageToken != "" { 460 req.PageToken = pageToken 461 } 462 if pageSize > math.MaxInt32 { 463 req.PageSize = math.MaxInt32 464 } else if pageSize != 0 { 465 req.PageSize = int32(pageSize) 466 } 467 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 468 var err error 469 resp, err = c.client.ListDataSources(ctx, req, settings.GRPC...) 470 return err 471 }, opts...) 472 if err != nil { 473 return nil, "", err 474 } 475 476 it.Response = resp 477 return resp.GetDataSources(), resp.GetNextPageToken(), nil 478 } 479 fetch := func(pageSize int, pageToken string) (string, error) { 480 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 481 if err != nil { 482 return "", err 483 } 484 it.items = append(it.items, items...) 485 return nextPageToken, nil 486 } 487 488 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 489 it.pageInfo.MaxSize = int(req.GetPageSize()) 490 it.pageInfo.Token = req.GetPageToken() 491 492 return it 493} 494 495func (c *gRPCClient) CreateTransferConfig(ctx context.Context, req *datatransferpb.CreateTransferConfigRequest, opts ...gax.CallOption) (*datatransferpb.TransferConfig, error) { 496 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 497 cctx, cancel := context.WithTimeout(ctx, 30000*time.Millisecond) 498 defer cancel() 499 ctx = cctx 500 } 501 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 502 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 503 opts = append((*c.CallOptions).CreateTransferConfig[0:len((*c.CallOptions).CreateTransferConfig):len((*c.CallOptions).CreateTransferConfig)], opts...) 504 var resp *datatransferpb.TransferConfig 505 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 506 var err error 507 resp, err = c.client.CreateTransferConfig(ctx, req, settings.GRPC...) 508 return err 509 }, opts...) 510 if err != nil { 511 return nil, err 512 } 513 return resp, nil 514} 515 516func (c *gRPCClient) UpdateTransferConfig(ctx context.Context, req *datatransferpb.UpdateTransferConfigRequest, opts ...gax.CallOption) (*datatransferpb.TransferConfig, error) { 517 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 518 cctx, cancel := context.WithTimeout(ctx, 30000*time.Millisecond) 519 defer cancel() 520 ctx = cctx 521 } 522 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "transfer_config.name", url.QueryEscape(req.GetTransferConfig().GetName()))) 523 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 524 opts = append((*c.CallOptions).UpdateTransferConfig[0:len((*c.CallOptions).UpdateTransferConfig):len((*c.CallOptions).UpdateTransferConfig)], opts...) 525 var resp *datatransferpb.TransferConfig 526 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 527 var err error 528 resp, err = c.client.UpdateTransferConfig(ctx, req, settings.GRPC...) 529 return err 530 }, opts...) 531 if err != nil { 532 return nil, err 533 } 534 return resp, nil 535} 536 537func (c *gRPCClient) DeleteTransferConfig(ctx context.Context, req *datatransferpb.DeleteTransferConfigRequest, opts ...gax.CallOption) error { 538 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 539 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 540 defer cancel() 541 ctx = cctx 542 } 543 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 544 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 545 opts = append((*c.CallOptions).DeleteTransferConfig[0:len((*c.CallOptions).DeleteTransferConfig):len((*c.CallOptions).DeleteTransferConfig)], opts...) 546 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 547 var err error 548 _, err = c.client.DeleteTransferConfig(ctx, req, settings.GRPC...) 549 return err 550 }, opts...) 551 return err 552} 553 554func (c *gRPCClient) GetTransferConfig(ctx context.Context, req *datatransferpb.GetTransferConfigRequest, opts ...gax.CallOption) (*datatransferpb.TransferConfig, error) { 555 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 556 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 557 defer cancel() 558 ctx = cctx 559 } 560 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 561 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 562 opts = append((*c.CallOptions).GetTransferConfig[0:len((*c.CallOptions).GetTransferConfig):len((*c.CallOptions).GetTransferConfig)], opts...) 563 var resp *datatransferpb.TransferConfig 564 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 565 var err error 566 resp, err = c.client.GetTransferConfig(ctx, req, settings.GRPC...) 567 return err 568 }, opts...) 569 if err != nil { 570 return nil, err 571 } 572 return resp, nil 573} 574 575func (c *gRPCClient) ListTransferConfigs(ctx context.Context, req *datatransferpb.ListTransferConfigsRequest, opts ...gax.CallOption) *TransferConfigIterator { 576 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 577 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 578 opts = append((*c.CallOptions).ListTransferConfigs[0:len((*c.CallOptions).ListTransferConfigs):len((*c.CallOptions).ListTransferConfigs)], opts...) 579 it := &TransferConfigIterator{} 580 req = proto.Clone(req).(*datatransferpb.ListTransferConfigsRequest) 581 it.InternalFetch = func(pageSize int, pageToken string) ([]*datatransferpb.TransferConfig, string, error) { 582 resp := &datatransferpb.ListTransferConfigsResponse{} 583 if pageToken != "" { 584 req.PageToken = pageToken 585 } 586 if pageSize > math.MaxInt32 { 587 req.PageSize = math.MaxInt32 588 } else if pageSize != 0 { 589 req.PageSize = int32(pageSize) 590 } 591 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 592 var err error 593 resp, err = c.client.ListTransferConfigs(ctx, req, settings.GRPC...) 594 return err 595 }, opts...) 596 if err != nil { 597 return nil, "", err 598 } 599 600 it.Response = resp 601 return resp.GetTransferConfigs(), resp.GetNextPageToken(), nil 602 } 603 fetch := func(pageSize int, pageToken string) (string, error) { 604 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 605 if err != nil { 606 return "", err 607 } 608 it.items = append(it.items, items...) 609 return nextPageToken, nil 610 } 611 612 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 613 it.pageInfo.MaxSize = int(req.GetPageSize()) 614 it.pageInfo.Token = req.GetPageToken() 615 616 return it 617} 618 619func (c *gRPCClient) ScheduleTransferRuns(ctx context.Context, req *datatransferpb.ScheduleTransferRunsRequest, opts ...gax.CallOption) (*datatransferpb.ScheduleTransferRunsResponse, error) { 620 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 621 cctx, cancel := context.WithTimeout(ctx, 30000*time.Millisecond) 622 defer cancel() 623 ctx = cctx 624 } 625 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 626 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 627 opts = append((*c.CallOptions).ScheduleTransferRuns[0:len((*c.CallOptions).ScheduleTransferRuns):len((*c.CallOptions).ScheduleTransferRuns)], opts...) 628 var resp *datatransferpb.ScheduleTransferRunsResponse 629 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 630 var err error 631 resp, err = c.client.ScheduleTransferRuns(ctx, req, settings.GRPC...) 632 return err 633 }, opts...) 634 if err != nil { 635 return nil, err 636 } 637 return resp, nil 638} 639 640func (c *gRPCClient) StartManualTransferRuns(ctx context.Context, req *datatransferpb.StartManualTransferRunsRequest, opts ...gax.CallOption) (*datatransferpb.StartManualTransferRunsResponse, error) { 641 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 642 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 643 opts = append((*c.CallOptions).StartManualTransferRuns[0:len((*c.CallOptions).StartManualTransferRuns):len((*c.CallOptions).StartManualTransferRuns)], opts...) 644 var resp *datatransferpb.StartManualTransferRunsResponse 645 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 646 var err error 647 resp, err = c.client.StartManualTransferRuns(ctx, req, settings.GRPC...) 648 return err 649 }, opts...) 650 if err != nil { 651 return nil, err 652 } 653 return resp, nil 654} 655 656func (c *gRPCClient) GetTransferRun(ctx context.Context, req *datatransferpb.GetTransferRunRequest, opts ...gax.CallOption) (*datatransferpb.TransferRun, error) { 657 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 658 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 659 defer cancel() 660 ctx = cctx 661 } 662 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 663 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 664 opts = append((*c.CallOptions).GetTransferRun[0:len((*c.CallOptions).GetTransferRun):len((*c.CallOptions).GetTransferRun)], opts...) 665 var resp *datatransferpb.TransferRun 666 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 667 var err error 668 resp, err = c.client.GetTransferRun(ctx, req, settings.GRPC...) 669 return err 670 }, opts...) 671 if err != nil { 672 return nil, err 673 } 674 return resp, nil 675} 676 677func (c *gRPCClient) DeleteTransferRun(ctx context.Context, req *datatransferpb.DeleteTransferRunRequest, opts ...gax.CallOption) error { 678 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 679 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 680 defer cancel() 681 ctx = cctx 682 } 683 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 684 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 685 opts = append((*c.CallOptions).DeleteTransferRun[0:len((*c.CallOptions).DeleteTransferRun):len((*c.CallOptions).DeleteTransferRun)], opts...) 686 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 687 var err error 688 _, err = c.client.DeleteTransferRun(ctx, req, settings.GRPC...) 689 return err 690 }, opts...) 691 return err 692} 693 694func (c *gRPCClient) ListTransferRuns(ctx context.Context, req *datatransferpb.ListTransferRunsRequest, opts ...gax.CallOption) *TransferRunIterator { 695 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 696 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 697 opts = append((*c.CallOptions).ListTransferRuns[0:len((*c.CallOptions).ListTransferRuns):len((*c.CallOptions).ListTransferRuns)], opts...) 698 it := &TransferRunIterator{} 699 req = proto.Clone(req).(*datatransferpb.ListTransferRunsRequest) 700 it.InternalFetch = func(pageSize int, pageToken string) ([]*datatransferpb.TransferRun, string, error) { 701 resp := &datatransferpb.ListTransferRunsResponse{} 702 if pageToken != "" { 703 req.PageToken = pageToken 704 } 705 if pageSize > math.MaxInt32 { 706 req.PageSize = math.MaxInt32 707 } else if pageSize != 0 { 708 req.PageSize = int32(pageSize) 709 } 710 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 711 var err error 712 resp, err = c.client.ListTransferRuns(ctx, req, settings.GRPC...) 713 return err 714 }, opts...) 715 if err != nil { 716 return nil, "", err 717 } 718 719 it.Response = resp 720 return resp.GetTransferRuns(), resp.GetNextPageToken(), nil 721 } 722 fetch := func(pageSize int, pageToken string) (string, error) { 723 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 724 if err != nil { 725 return "", err 726 } 727 it.items = append(it.items, items...) 728 return nextPageToken, nil 729 } 730 731 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 732 it.pageInfo.MaxSize = int(req.GetPageSize()) 733 it.pageInfo.Token = req.GetPageToken() 734 735 return it 736} 737 738func (c *gRPCClient) ListTransferLogs(ctx context.Context, req *datatransferpb.ListTransferLogsRequest, opts ...gax.CallOption) *TransferMessageIterator { 739 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 740 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 741 opts = append((*c.CallOptions).ListTransferLogs[0:len((*c.CallOptions).ListTransferLogs):len((*c.CallOptions).ListTransferLogs)], opts...) 742 it := &TransferMessageIterator{} 743 req = proto.Clone(req).(*datatransferpb.ListTransferLogsRequest) 744 it.InternalFetch = func(pageSize int, pageToken string) ([]*datatransferpb.TransferMessage, string, error) { 745 resp := &datatransferpb.ListTransferLogsResponse{} 746 if pageToken != "" { 747 req.PageToken = pageToken 748 } 749 if pageSize > math.MaxInt32 { 750 req.PageSize = math.MaxInt32 751 } else if pageSize != 0 { 752 req.PageSize = int32(pageSize) 753 } 754 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 755 var err error 756 resp, err = c.client.ListTransferLogs(ctx, req, settings.GRPC...) 757 return err 758 }, opts...) 759 if err != nil { 760 return nil, "", err 761 } 762 763 it.Response = resp 764 return resp.GetTransferMessages(), resp.GetNextPageToken(), nil 765 } 766 fetch := func(pageSize int, pageToken string) (string, error) { 767 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 768 if err != nil { 769 return "", err 770 } 771 it.items = append(it.items, items...) 772 return nextPageToken, nil 773 } 774 775 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 776 it.pageInfo.MaxSize = int(req.GetPageSize()) 777 it.pageInfo.Token = req.GetPageToken() 778 779 return it 780} 781 782func (c *gRPCClient) CheckValidCreds(ctx context.Context, req *datatransferpb.CheckValidCredsRequest, opts ...gax.CallOption) (*datatransferpb.CheckValidCredsResponse, error) { 783 if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { 784 cctx, cancel := context.WithTimeout(ctx, 20000*time.Millisecond) 785 defer cancel() 786 ctx = cctx 787 } 788 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 789 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 790 opts = append((*c.CallOptions).CheckValidCreds[0:len((*c.CallOptions).CheckValidCreds):len((*c.CallOptions).CheckValidCreds)], opts...) 791 var resp *datatransferpb.CheckValidCredsResponse 792 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 793 var err error 794 resp, err = c.client.CheckValidCreds(ctx, req, settings.GRPC...) 795 return err 796 }, opts...) 797 if err != nil { 798 return nil, err 799 } 800 return resp, nil 801} 802 803// DataSourceIterator manages a stream of *datatransferpb.DataSource. 804type DataSourceIterator struct { 805 items []*datatransferpb.DataSource 806 pageInfo *iterator.PageInfo 807 nextFunc func() error 808 809 // Response is the raw response for the current page. 810 // It must be cast to the RPC response type. 811 // Calling Next() or InternalFetch() updates this value. 812 Response interface{} 813 814 // InternalFetch is for use by the Google Cloud Libraries only. 815 // It is not part of the stable interface of this package. 816 // 817 // InternalFetch returns results from a single call to the underlying RPC. 818 // The number of results is no greater than pageSize. 819 // If there are no more results, nextPageToken is empty and err is nil. 820 InternalFetch func(pageSize int, pageToken string) (results []*datatransferpb.DataSource, nextPageToken string, err error) 821} 822 823// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 824func (it *DataSourceIterator) PageInfo() *iterator.PageInfo { 825 return it.pageInfo 826} 827 828// Next returns the next result. Its second return value is iterator.Done if there are no more 829// results. Once Next returns Done, all subsequent calls will return Done. 830func (it *DataSourceIterator) Next() (*datatransferpb.DataSource, error) { 831 var item *datatransferpb.DataSource 832 if err := it.nextFunc(); err != nil { 833 return item, err 834 } 835 item = it.items[0] 836 it.items = it.items[1:] 837 return item, nil 838} 839 840func (it *DataSourceIterator) bufLen() int { 841 return len(it.items) 842} 843 844func (it *DataSourceIterator) takeBuf() interface{} { 845 b := it.items 846 it.items = nil 847 return b 848} 849 850// TransferConfigIterator manages a stream of *datatransferpb.TransferConfig. 851type TransferConfigIterator struct { 852 items []*datatransferpb.TransferConfig 853 pageInfo *iterator.PageInfo 854 nextFunc func() error 855 856 // Response is the raw response for the current page. 857 // It must be cast to the RPC response type. 858 // Calling Next() or InternalFetch() updates this value. 859 Response interface{} 860 861 // InternalFetch is for use by the Google Cloud Libraries only. 862 // It is not part of the stable interface of this package. 863 // 864 // InternalFetch returns results from a single call to the underlying RPC. 865 // The number of results is no greater than pageSize. 866 // If there are no more results, nextPageToken is empty and err is nil. 867 InternalFetch func(pageSize int, pageToken string) (results []*datatransferpb.TransferConfig, nextPageToken string, err error) 868} 869 870// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 871func (it *TransferConfigIterator) PageInfo() *iterator.PageInfo { 872 return it.pageInfo 873} 874 875// Next returns the next result. Its second return value is iterator.Done if there are no more 876// results. Once Next returns Done, all subsequent calls will return Done. 877func (it *TransferConfigIterator) Next() (*datatransferpb.TransferConfig, error) { 878 var item *datatransferpb.TransferConfig 879 if err := it.nextFunc(); err != nil { 880 return item, err 881 } 882 item = it.items[0] 883 it.items = it.items[1:] 884 return item, nil 885} 886 887func (it *TransferConfigIterator) bufLen() int { 888 return len(it.items) 889} 890 891func (it *TransferConfigIterator) takeBuf() interface{} { 892 b := it.items 893 it.items = nil 894 return b 895} 896 897// TransferMessageIterator manages a stream of *datatransferpb.TransferMessage. 898type TransferMessageIterator struct { 899 items []*datatransferpb.TransferMessage 900 pageInfo *iterator.PageInfo 901 nextFunc func() error 902 903 // Response is the raw response for the current page. 904 // It must be cast to the RPC response type. 905 // Calling Next() or InternalFetch() updates this value. 906 Response interface{} 907 908 // InternalFetch is for use by the Google Cloud Libraries only. 909 // It is not part of the stable interface of this package. 910 // 911 // InternalFetch returns results from a single call to the underlying RPC. 912 // The number of results is no greater than pageSize. 913 // If there are no more results, nextPageToken is empty and err is nil. 914 InternalFetch func(pageSize int, pageToken string) (results []*datatransferpb.TransferMessage, nextPageToken string, err error) 915} 916 917// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 918func (it *TransferMessageIterator) PageInfo() *iterator.PageInfo { 919 return it.pageInfo 920} 921 922// Next returns the next result. Its second return value is iterator.Done if there are no more 923// results. Once Next returns Done, all subsequent calls will return Done. 924func (it *TransferMessageIterator) Next() (*datatransferpb.TransferMessage, error) { 925 var item *datatransferpb.TransferMessage 926 if err := it.nextFunc(); err != nil { 927 return item, err 928 } 929 item = it.items[0] 930 it.items = it.items[1:] 931 return item, nil 932} 933 934func (it *TransferMessageIterator) bufLen() int { 935 return len(it.items) 936} 937 938func (it *TransferMessageIterator) takeBuf() interface{} { 939 b := it.items 940 it.items = nil 941 return b 942} 943 944// TransferRunIterator manages a stream of *datatransferpb.TransferRun. 945type TransferRunIterator struct { 946 items []*datatransferpb.TransferRun 947 pageInfo *iterator.PageInfo 948 nextFunc func() error 949 950 // Response is the raw response for the current page. 951 // It must be cast to the RPC response type. 952 // Calling Next() or InternalFetch() updates this value. 953 Response interface{} 954 955 // InternalFetch is for use by the Google Cloud Libraries only. 956 // It is not part of the stable interface of this package. 957 // 958 // InternalFetch returns results from a single call to the underlying RPC. 959 // The number of results is no greater than pageSize. 960 // If there are no more results, nextPageToken is empty and err is nil. 961 InternalFetch func(pageSize int, pageToken string) (results []*datatransferpb.TransferRun, nextPageToken string, err error) 962} 963 964// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 965func (it *TransferRunIterator) PageInfo() *iterator.PageInfo { 966 return it.pageInfo 967} 968 969// Next returns the next result. Its second return value is iterator.Done if there are no more 970// results. Once Next returns Done, all subsequent calls will return Done. 971func (it *TransferRunIterator) Next() (*datatransferpb.TransferRun, error) { 972 var item *datatransferpb.TransferRun 973 if err := it.nextFunc(); err != nil { 974 return item, err 975 } 976 item = it.items[0] 977 it.items = it.items[1:] 978 return item, nil 979} 980 981func (it *TransferRunIterator) bufLen() int { 982 return len(it.items) 983} 984 985func (it *TransferRunIterator) takeBuf() interface{} { 986 b := it.items 987 it.items = nil 988 return b 989} 990