You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

604 lines
23 KiB

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