1// Copyright 2019 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 gapic-generator. DO NOT EDIT. 16 17package datatransfer 18 19import ( 20 "context" 21 "fmt" 22 "math" 23 "net/url" 24 "time" 25 26 "github.com/golang/protobuf/proto" 27 gax "github.com/googleapis/gax-go/v2" 28 "google.golang.org/api/iterator" 29 "google.golang.org/api/option" 30 "google.golang.org/api/transport" 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) 36 37// CallOptions contains the retry settings for each method of Client. 38type CallOptions struct { 39 GetDataSource []gax.CallOption 40 ListDataSources []gax.CallOption 41 CreateTransferConfig []gax.CallOption 42 UpdateTransferConfig []gax.CallOption 43 DeleteTransferConfig []gax.CallOption 44 GetTransferConfig []gax.CallOption 45 ListTransferConfigs []gax.CallOption 46 ScheduleTransferRuns []gax.CallOption 47 GetTransferRun []gax.CallOption 48 DeleteTransferRun []gax.CallOption 49 ListTransferRuns []gax.CallOption 50 ListTransferLogs []gax.CallOption 51 CheckValidCreds []gax.CallOption 52 StartManualTransferRuns []gax.CallOption 53} 54 55func defaultClientOptions() []option.ClientOption { 56 return []option.ClientOption{ 57 option.WithEndpoint("bigquerydatatransfer.googleapis.com:443"), 58 option.WithScopes(DefaultAuthScopes()...), 59 option.WithGRPCDialOption(grpc.WithDefaultCallOptions( 60 grpc.MaxCallRecvMsgSize(math.MaxInt32))), 61 } 62} 63 64func defaultCallOptions() *CallOptions { 65 retry := map[[2]string][]gax.CallOption{ 66 {"default", "idempotent"}: { 67 gax.WithRetry(func() gax.Retryer { 68 return gax.OnCodes([]codes.Code{ 69 codes.DeadlineExceeded, 70 codes.Unavailable, 71 }, gax.Backoff{ 72 Initial: 100 * time.Millisecond, 73 Max: 60000 * time.Millisecond, 74 Multiplier: 1.3, 75 }) 76 }), 77 }, 78 } 79 return &CallOptions{ 80 GetDataSource: retry[[2]string{"default", "idempotent"}], 81 ListDataSources: retry[[2]string{"default", "idempotent"}], 82 CreateTransferConfig: retry[[2]string{"default", "non_idempotent"}], 83 UpdateTransferConfig: retry[[2]string{"default", "non_idempotent"}], 84 DeleteTransferConfig: retry[[2]string{"default", "idempotent"}], 85 GetTransferConfig: retry[[2]string{"default", "idempotent"}], 86 ListTransferConfigs: retry[[2]string{"default", "idempotent"}], 87 ScheduleTransferRuns: retry[[2]string{"default", "non_idempotent"}], 88 GetTransferRun: retry[[2]string{"default", "idempotent"}], 89 DeleteTransferRun: retry[[2]string{"default", "idempotent"}], 90 ListTransferRuns: retry[[2]string{"default", "idempotent"}], 91 ListTransferLogs: retry[[2]string{"default", "idempotent"}], 92 CheckValidCreds: retry[[2]string{"default", "idempotent"}], 93 StartManualTransferRuns: retry[[2]string{"default", "non_idempotent"}], 94 } 95} 96 97// Client is a client for interacting with BigQuery Data Transfer API. 98// 99// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. 100type Client struct { 101 // The connection to the service. 102 conn *grpc.ClientConn 103 104 // The gRPC API client. 105 client datatransferpb.DataTransferServiceClient 106 107 // The call options for this service. 108 CallOptions *CallOptions 109 110 // The x-goog-* metadata to be sent with each request. 111 xGoogMetadata metadata.MD 112} 113 114// NewClient creates a new data transfer service client. 115// 116// The Google BigQuery Data Transfer Service API enables BigQuery users to 117// configure the transfer of their data from other Google Products into 118// BigQuery. This service contains methods that are end user exposed. It backs 119// up the frontend. 120func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { 121 conn, err := transport.DialGRPC(ctx, append(defaultClientOptions(), opts...)...) 122 if err != nil { 123 return nil, err 124 } 125 c := &Client{ 126 conn: conn, 127 CallOptions: defaultCallOptions(), 128 129 client: datatransferpb.NewDataTransferServiceClient(conn), 130 } 131 c.setGoogleClientInfo() 132 return c, nil 133} 134 135// Connection returns the client's connection to the API service. 136func (c *Client) Connection() *grpc.ClientConn { 137 return c.conn 138} 139 140// Close closes the connection to the API service. The user should invoke this when 141// the client is no longer required. 142func (c *Client) Close() error { 143 return c.conn.Close() 144} 145 146// setGoogleClientInfo sets the name and version of the application in 147// the `x-goog-api-client` header passed on each request. Intended for 148// use by Google-written clients. 149func (c *Client) setGoogleClientInfo(keyval ...string) { 150 kv := append([]string{"gl-go", versionGo()}, keyval...) 151 kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) 152 c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) 153} 154 155// GetDataSource retrieves a supported data source and returns its settings, 156// which can be used for UI rendering. 157func (c *Client) GetDataSource(ctx context.Context, req *datatransferpb.GetDataSourceRequest, opts ...gax.CallOption) (*datatransferpb.DataSource, error) { 158 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 159 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 160 opts = append(c.CallOptions.GetDataSource[0:len(c.CallOptions.GetDataSource):len(c.CallOptions.GetDataSource)], opts...) 161 var resp *datatransferpb.DataSource 162 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 163 var err error 164 resp, err = c.client.GetDataSource(ctx, req, settings.GRPC...) 165 return err 166 }, opts...) 167 if err != nil { 168 return nil, err 169 } 170 return resp, nil 171} 172 173// ListDataSources lists supported data sources and returns their settings, 174// which can be used for UI rendering. 175func (c *Client) ListDataSources(ctx context.Context, req *datatransferpb.ListDataSourcesRequest, opts ...gax.CallOption) *DataSourceIterator { 176 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 177 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 178 opts = append(c.CallOptions.ListDataSources[0:len(c.CallOptions.ListDataSources):len(c.CallOptions.ListDataSources)], opts...) 179 it := &DataSourceIterator{} 180 req = proto.Clone(req).(*datatransferpb.ListDataSourcesRequest) 181 it.InternalFetch = func(pageSize int, pageToken string) ([]*datatransferpb.DataSource, string, error) { 182 var resp *datatransferpb.ListDataSourcesResponse 183 req.PageToken = pageToken 184 if pageSize > math.MaxInt32 { 185 req.PageSize = math.MaxInt32 186 } else { 187 req.PageSize = int32(pageSize) 188 } 189 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 190 var err error 191 resp, err = c.client.ListDataSources(ctx, req, settings.GRPC...) 192 return err 193 }, opts...) 194 if err != nil { 195 return nil, "", err 196 } 197 return resp.DataSources, resp.NextPageToken, nil 198 } 199 fetch := func(pageSize int, pageToken string) (string, error) { 200 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 201 if err != nil { 202 return "", err 203 } 204 it.items = append(it.items, items...) 205 return nextPageToken, nil 206 } 207 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 208 it.pageInfo.MaxSize = int(req.PageSize) 209 it.pageInfo.Token = req.PageToken 210 return it 211} 212 213// CreateTransferConfig creates a new data transfer configuration. 214func (c *Client) CreateTransferConfig(ctx context.Context, req *datatransferpb.CreateTransferConfigRequest, opts ...gax.CallOption) (*datatransferpb.TransferConfig, error) { 215 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 216 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 217 opts = append(c.CallOptions.CreateTransferConfig[0:len(c.CallOptions.CreateTransferConfig):len(c.CallOptions.CreateTransferConfig)], opts...) 218 var resp *datatransferpb.TransferConfig 219 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 220 var err error 221 resp, err = c.client.CreateTransferConfig(ctx, req, settings.GRPC...) 222 return err 223 }, opts...) 224 if err != nil { 225 return nil, err 226 } 227 return resp, nil 228} 229 230// UpdateTransferConfig updates a data transfer configuration. 231// All fields must be set, even if they are not updated. 232func (c *Client) UpdateTransferConfig(ctx context.Context, req *datatransferpb.UpdateTransferConfigRequest, opts ...gax.CallOption) (*datatransferpb.TransferConfig, error) { 233 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "transfer_config.name", url.QueryEscape(req.GetTransferConfig().GetName()))) 234 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 235 opts = append(c.CallOptions.UpdateTransferConfig[0:len(c.CallOptions.UpdateTransferConfig):len(c.CallOptions.UpdateTransferConfig)], opts...) 236 var resp *datatransferpb.TransferConfig 237 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 238 var err error 239 resp, err = c.client.UpdateTransferConfig(ctx, req, settings.GRPC...) 240 return err 241 }, opts...) 242 if err != nil { 243 return nil, err 244 } 245 return resp, nil 246} 247 248// DeleteTransferConfig deletes a data transfer configuration, 249// including any associated transfer runs and logs. 250func (c *Client) DeleteTransferConfig(ctx context.Context, req *datatransferpb.DeleteTransferConfigRequest, opts ...gax.CallOption) error { 251 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 252 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 253 opts = append(c.CallOptions.DeleteTransferConfig[0:len(c.CallOptions.DeleteTransferConfig):len(c.CallOptions.DeleteTransferConfig)], opts...) 254 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 255 var err error 256 _, err = c.client.DeleteTransferConfig(ctx, req, settings.GRPC...) 257 return err 258 }, opts...) 259 return err 260} 261 262// GetTransferConfig returns information about a data transfer config. 263func (c *Client) GetTransferConfig(ctx context.Context, req *datatransferpb.GetTransferConfigRequest, opts ...gax.CallOption) (*datatransferpb.TransferConfig, error) { 264 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 265 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 266 opts = append(c.CallOptions.GetTransferConfig[0:len(c.CallOptions.GetTransferConfig):len(c.CallOptions.GetTransferConfig)], opts...) 267 var resp *datatransferpb.TransferConfig 268 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 269 var err error 270 resp, err = c.client.GetTransferConfig(ctx, req, settings.GRPC...) 271 return err 272 }, opts...) 273 if err != nil { 274 return nil, err 275 } 276 return resp, nil 277} 278 279// ListTransferConfigs returns information about all data transfers in the project. 280func (c *Client) ListTransferConfigs(ctx context.Context, req *datatransferpb.ListTransferConfigsRequest, opts ...gax.CallOption) *TransferConfigIterator { 281 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 282 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 283 opts = append(c.CallOptions.ListTransferConfigs[0:len(c.CallOptions.ListTransferConfigs):len(c.CallOptions.ListTransferConfigs)], opts...) 284 it := &TransferConfigIterator{} 285 req = proto.Clone(req).(*datatransferpb.ListTransferConfigsRequest) 286 it.InternalFetch = func(pageSize int, pageToken string) ([]*datatransferpb.TransferConfig, string, error) { 287 var resp *datatransferpb.ListTransferConfigsResponse 288 req.PageToken = pageToken 289 if pageSize > math.MaxInt32 { 290 req.PageSize = math.MaxInt32 291 } else { 292 req.PageSize = int32(pageSize) 293 } 294 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 295 var err error 296 resp, err = c.client.ListTransferConfigs(ctx, req, settings.GRPC...) 297 return err 298 }, opts...) 299 if err != nil { 300 return nil, "", err 301 } 302 return resp.TransferConfigs, resp.NextPageToken, nil 303 } 304 fetch := func(pageSize int, pageToken string) (string, error) { 305 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 306 if err != nil { 307 return "", err 308 } 309 it.items = append(it.items, items...) 310 return nextPageToken, nil 311 } 312 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 313 it.pageInfo.MaxSize = int(req.PageSize) 314 it.pageInfo.Token = req.PageToken 315 return it 316} 317 318// ScheduleTransferRuns creates transfer runs for a time range [start_time, end_time]. 319// For each date - or whatever granularity the data source supports - in the 320// range, one transfer run is created. 321// Note that runs are created per UTC time in the time range. 322// DEPRECATED: use StartManualTransferRuns instead. 323func (c *Client) ScheduleTransferRuns(ctx context.Context, req *datatransferpb.ScheduleTransferRunsRequest, opts ...gax.CallOption) (*datatransferpb.ScheduleTransferRunsResponse, error) { 324 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 325 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 326 opts = append(c.CallOptions.ScheduleTransferRuns[0:len(c.CallOptions.ScheduleTransferRuns):len(c.CallOptions.ScheduleTransferRuns)], opts...) 327 var resp *datatransferpb.ScheduleTransferRunsResponse 328 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 329 var err error 330 resp, err = c.client.ScheduleTransferRuns(ctx, req, settings.GRPC...) 331 return err 332 }, opts...) 333 if err != nil { 334 return nil, err 335 } 336 return resp, nil 337} 338 339// GetTransferRun returns information about the particular transfer run. 340func (c *Client) GetTransferRun(ctx context.Context, req *datatransferpb.GetTransferRunRequest, opts ...gax.CallOption) (*datatransferpb.TransferRun, error) { 341 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 342 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 343 opts = append(c.CallOptions.GetTransferRun[0:len(c.CallOptions.GetTransferRun):len(c.CallOptions.GetTransferRun)], opts...) 344 var resp *datatransferpb.TransferRun 345 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 346 var err error 347 resp, err = c.client.GetTransferRun(ctx, req, settings.GRPC...) 348 return err 349 }, opts...) 350 if err != nil { 351 return nil, err 352 } 353 return resp, nil 354} 355 356// DeleteTransferRun deletes the specified transfer run. 357func (c *Client) DeleteTransferRun(ctx context.Context, req *datatransferpb.DeleteTransferRunRequest, opts ...gax.CallOption) error { 358 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 359 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 360 opts = append(c.CallOptions.DeleteTransferRun[0:len(c.CallOptions.DeleteTransferRun):len(c.CallOptions.DeleteTransferRun)], opts...) 361 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 362 var err error 363 _, err = c.client.DeleteTransferRun(ctx, req, settings.GRPC...) 364 return err 365 }, opts...) 366 return err 367} 368 369// ListTransferRuns returns information about running and completed jobs. 370func (c *Client) ListTransferRuns(ctx context.Context, req *datatransferpb.ListTransferRunsRequest, opts ...gax.CallOption) *TransferRunIterator { 371 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 372 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 373 opts = append(c.CallOptions.ListTransferRuns[0:len(c.CallOptions.ListTransferRuns):len(c.CallOptions.ListTransferRuns)], opts...) 374 it := &TransferRunIterator{} 375 req = proto.Clone(req).(*datatransferpb.ListTransferRunsRequest) 376 it.InternalFetch = func(pageSize int, pageToken string) ([]*datatransferpb.TransferRun, string, error) { 377 var resp *datatransferpb.ListTransferRunsResponse 378 req.PageToken = pageToken 379 if pageSize > math.MaxInt32 { 380 req.PageSize = math.MaxInt32 381 } else { 382 req.PageSize = int32(pageSize) 383 } 384 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 385 var err error 386 resp, err = c.client.ListTransferRuns(ctx, req, settings.GRPC...) 387 return err 388 }, opts...) 389 if err != nil { 390 return nil, "", err 391 } 392 return resp.TransferRuns, resp.NextPageToken, nil 393 } 394 fetch := func(pageSize int, pageToken string) (string, error) { 395 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 396 if err != nil { 397 return "", err 398 } 399 it.items = append(it.items, items...) 400 return nextPageToken, nil 401 } 402 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 403 it.pageInfo.MaxSize = int(req.PageSize) 404 it.pageInfo.Token = req.PageToken 405 return it 406} 407 408// ListTransferLogs returns user facing log messages for the data transfer run. 409func (c *Client) ListTransferLogs(ctx context.Context, req *datatransferpb.ListTransferLogsRequest, opts ...gax.CallOption) *TransferMessageIterator { 410 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 411 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 412 opts = append(c.CallOptions.ListTransferLogs[0:len(c.CallOptions.ListTransferLogs):len(c.CallOptions.ListTransferLogs)], opts...) 413 it := &TransferMessageIterator{} 414 req = proto.Clone(req).(*datatransferpb.ListTransferLogsRequest) 415 it.InternalFetch = func(pageSize int, pageToken string) ([]*datatransferpb.TransferMessage, string, error) { 416 var resp *datatransferpb.ListTransferLogsResponse 417 req.PageToken = pageToken 418 if pageSize > math.MaxInt32 { 419 req.PageSize = math.MaxInt32 420 } else { 421 req.PageSize = int32(pageSize) 422 } 423 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 424 var err error 425 resp, err = c.client.ListTransferLogs(ctx, req, settings.GRPC...) 426 return err 427 }, opts...) 428 if err != nil { 429 return nil, "", err 430 } 431 return resp.TransferMessages, resp.NextPageToken, nil 432 } 433 fetch := func(pageSize int, pageToken string) (string, error) { 434 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 435 if err != nil { 436 return "", err 437 } 438 it.items = append(it.items, items...) 439 return nextPageToken, nil 440 } 441 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 442 it.pageInfo.MaxSize = int(req.PageSize) 443 it.pageInfo.Token = req.PageToken 444 return it 445} 446 447// CheckValidCreds returns true if valid credentials exist for the given data source and 448// requesting user. 449// Some data sources doesn't support service account, so we need to talk to 450// them on behalf of the end user. This API just checks whether we have OAuth 451// token for the particular user, which is a pre-requisite before user can 452// create a transfer config. 453func (c *Client) CheckValidCreds(ctx context.Context, req *datatransferpb.CheckValidCredsRequest, opts ...gax.CallOption) (*datatransferpb.CheckValidCredsResponse, error) { 454 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 455 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 456 opts = append(c.CallOptions.CheckValidCreds[0:len(c.CallOptions.CheckValidCreds):len(c.CallOptions.CheckValidCreds)], opts...) 457 var resp *datatransferpb.CheckValidCredsResponse 458 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 459 var err error 460 resp, err = c.client.CheckValidCreds(ctx, req, settings.GRPC...) 461 return err 462 }, opts...) 463 if err != nil { 464 return nil, err 465 } 466 return resp, nil 467} 468 469// StartManualTransferRuns start manual transfer runs to be executed now with schedule_time equal to 470// current time. The transfer runs can be created for a time range where the 471// run_time is between start_time (inclusive) and end_time (exclusive), or for 472// a specific run_time. 473func (c *Client) StartManualTransferRuns(ctx context.Context, req *datatransferpb.StartManualTransferRunsRequest, opts ...gax.CallOption) (*datatransferpb.StartManualTransferRunsResponse, error) { 474 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 475 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 476 opts = append(c.CallOptions.StartManualTransferRuns[0:len(c.CallOptions.StartManualTransferRuns):len(c.CallOptions.StartManualTransferRuns)], opts...) 477 var resp *datatransferpb.StartManualTransferRunsResponse 478 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 479 var err error 480 resp, err = c.client.StartManualTransferRuns(ctx, req, settings.GRPC...) 481 return err 482 }, opts...) 483 if err != nil { 484 return nil, err 485 } 486 return resp, nil 487} 488 489// DataSourceIterator manages a stream of *datatransferpb.DataSource. 490type DataSourceIterator struct { 491 items []*datatransferpb.DataSource 492 pageInfo *iterator.PageInfo 493 nextFunc func() error 494 495 // InternalFetch is for use by the Google Cloud Libraries only. 496 // It is not part of the stable interface of this package. 497 // 498 // InternalFetch returns results from a single call to the underlying RPC. 499 // The number of results is no greater than pageSize. 500 // If there are no more results, nextPageToken is empty and err is nil. 501 InternalFetch func(pageSize int, pageToken string) (results []*datatransferpb.DataSource, nextPageToken string, err error) 502} 503 504// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 505func (it *DataSourceIterator) PageInfo() *iterator.PageInfo { 506 return it.pageInfo 507} 508 509// Next returns the next result. Its second return value is iterator.Done if there are no more 510// results. Once Next returns Done, all subsequent calls will return Done. 511func (it *DataSourceIterator) Next() (*datatransferpb.DataSource, error) { 512 var item *datatransferpb.DataSource 513 if err := it.nextFunc(); err != nil { 514 return item, err 515 } 516 item = it.items[0] 517 it.items = it.items[1:] 518 return item, nil 519} 520 521func (it *DataSourceIterator) bufLen() int { 522 return len(it.items) 523} 524 525func (it *DataSourceIterator) takeBuf() interface{} { 526 b := it.items 527 it.items = nil 528 return b 529} 530 531// TransferConfigIterator manages a stream of *datatransferpb.TransferConfig. 532type TransferConfigIterator struct { 533 items []*datatransferpb.TransferConfig 534 pageInfo *iterator.PageInfo 535 nextFunc func() error 536 537 // InternalFetch is for use by the Google Cloud Libraries only. 538 // It is not part of the stable interface of this package. 539 // 540 // InternalFetch returns results from a single call to the underlying RPC. 541 // The number of results is no greater than pageSize. 542 // If there are no more results, nextPageToken is empty and err is nil. 543 InternalFetch func(pageSize int, pageToken string) (results []*datatransferpb.TransferConfig, nextPageToken string, err error) 544} 545 546// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 547func (it *TransferConfigIterator) PageInfo() *iterator.PageInfo { 548 return it.pageInfo 549} 550 551// Next returns the next result. Its second return value is iterator.Done if there are no more 552// results. Once Next returns Done, all subsequent calls will return Done. 553func (it *TransferConfigIterator) Next() (*datatransferpb.TransferConfig, error) { 554 var item *datatransferpb.TransferConfig 555 if err := it.nextFunc(); err != nil { 556 return item, err 557 } 558 item = it.items[0] 559 it.items = it.items[1:] 560 return item, nil 561} 562 563func (it *TransferConfigIterator) bufLen() int { 564 return len(it.items) 565} 566 567func (it *TransferConfigIterator) takeBuf() interface{} { 568 b := it.items 569 it.items = nil 570 return b 571} 572 573// TransferMessageIterator manages a stream of *datatransferpb.TransferMessage. 574type TransferMessageIterator struct { 575 items []*datatransferpb.TransferMessage 576 pageInfo *iterator.PageInfo 577 nextFunc func() error 578 579 // InternalFetch is for use by the Google Cloud Libraries only. 580 // It is not part of the stable interface of this package. 581 // 582 // InternalFetch returns results from a single call to the underlying RPC. 583 // The number of results is no greater than pageSize. 584 // If there are no more results, nextPageToken is empty and err is nil. 585 InternalFetch func(pageSize int, pageToken string) (results []*datatransferpb.TransferMessage, nextPageToken string, err error) 586} 587 588// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 589func (it *TransferMessageIterator) PageInfo() *iterator.PageInfo { 590 return it.pageInfo 591} 592 593// Next returns the next result. Its second return value is iterator.Done if there are no more 594// results. Once Next returns Done, all subsequent calls will return Done. 595func (it *TransferMessageIterator) Next() (*datatransferpb.TransferMessage, error) { 596 var item *datatransferpb.TransferMessage 597 if err := it.nextFunc(); err != nil { 598 return item, err 599 } 600 item = it.items[0] 601 it.items = it.items[1:] 602 return item, nil 603} 604 605func (it *TransferMessageIterator) bufLen() int { 606 return len(it.items) 607} 608 609func (it *TransferMessageIterator) takeBuf() interface{} { 610 b := it.items 611 it.items = nil 612 return b 613} 614 615// TransferRunIterator manages a stream of *datatransferpb.TransferRun. 616type TransferRunIterator struct { 617 items []*datatransferpb.TransferRun 618 pageInfo *iterator.PageInfo 619 nextFunc func() error 620 621 // InternalFetch is for use by the Google Cloud Libraries only. 622 // It is not part of the stable interface of this package. 623 // 624 // InternalFetch returns results from a single call to the underlying RPC. 625 // The number of results is no greater than pageSize. 626 // If there are no more results, nextPageToken is empty and err is nil. 627 InternalFetch func(pageSize int, pageToken string) (results []*datatransferpb.TransferRun, nextPageToken string, err error) 628} 629 630// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 631func (it *TransferRunIterator) PageInfo() *iterator.PageInfo { 632 return it.pageInfo 633} 634 635// Next returns the next result. Its second return value is iterator.Done if there are no more 636// results. Once Next returns Done, all subsequent calls will return Done. 637func (it *TransferRunIterator) Next() (*datatransferpb.TransferRun, error) { 638 var item *datatransferpb.TransferRun 639 if err := it.nextFunc(); err != nil { 640 return item, err 641 } 642 item = it.items[0] 643 it.items = it.items[1:] 644 return item, nil 645} 646 647func (it *TransferRunIterator) bufLen() int { 648 return len(it.items) 649} 650 651func (it *TransferRunIterator) takeBuf() interface{} { 652 b := it.items 653 it.items = nil 654 return b 655} 656