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.
 
 
 

626 lines
24 KiB

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