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