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.
 
 
 

815 lines
32 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 dlp
  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. dlppb "google.golang.org/genproto/googleapis/privacy/dlp/v2"
  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. InspectContent []gax.CallOption
  33. RedactImage []gax.CallOption
  34. DeidentifyContent []gax.CallOption
  35. ReidentifyContent []gax.CallOption
  36. ListInfoTypes []gax.CallOption
  37. CreateInspectTemplate []gax.CallOption
  38. UpdateInspectTemplate []gax.CallOption
  39. GetInspectTemplate []gax.CallOption
  40. ListInspectTemplates []gax.CallOption
  41. DeleteInspectTemplate []gax.CallOption
  42. CreateDeidentifyTemplate []gax.CallOption
  43. UpdateDeidentifyTemplate []gax.CallOption
  44. GetDeidentifyTemplate []gax.CallOption
  45. ListDeidentifyTemplates []gax.CallOption
  46. DeleteDeidentifyTemplate []gax.CallOption
  47. CreateDlpJob []gax.CallOption
  48. ListDlpJobs []gax.CallOption
  49. GetDlpJob []gax.CallOption
  50. DeleteDlpJob []gax.CallOption
  51. CancelDlpJob []gax.CallOption
  52. ListJobTriggers []gax.CallOption
  53. GetJobTrigger []gax.CallOption
  54. DeleteJobTrigger []gax.CallOption
  55. UpdateJobTrigger []gax.CallOption
  56. CreateJobTrigger []gax.CallOption
  57. }
  58. func defaultClientOptions() []option.ClientOption {
  59. return []option.ClientOption{
  60. option.WithEndpoint("dlp.googleapis.com:443"),
  61. option.WithScopes(DefaultAuthScopes()...),
  62. }
  63. }
  64. func 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. InspectContent: retry[[2]string{"default", "idempotent"}],
  81. RedactImage: retry[[2]string{"default", "idempotent"}],
  82. DeidentifyContent: retry[[2]string{"default", "idempotent"}],
  83. ReidentifyContent: retry[[2]string{"default", "idempotent"}],
  84. ListInfoTypes: retry[[2]string{"default", "idempotent"}],
  85. CreateInspectTemplate: retry[[2]string{"default", "non_idempotent"}],
  86. UpdateInspectTemplate: retry[[2]string{"default", "non_idempotent"}],
  87. GetInspectTemplate: retry[[2]string{"default", "idempotent"}],
  88. ListInspectTemplates: retry[[2]string{"default", "idempotent"}],
  89. DeleteInspectTemplate: retry[[2]string{"default", "idempotent"}],
  90. CreateDeidentifyTemplate: retry[[2]string{"default", "non_idempotent"}],
  91. UpdateDeidentifyTemplate: retry[[2]string{"default", "non_idempotent"}],
  92. GetDeidentifyTemplate: retry[[2]string{"default", "idempotent"}],
  93. ListDeidentifyTemplates: retry[[2]string{"default", "idempotent"}],
  94. DeleteDeidentifyTemplate: retry[[2]string{"default", "idempotent"}],
  95. CreateDlpJob: retry[[2]string{"default", "non_idempotent"}],
  96. ListDlpJobs: retry[[2]string{"default", "idempotent"}],
  97. GetDlpJob: retry[[2]string{"default", "idempotent"}],
  98. DeleteDlpJob: retry[[2]string{"default", "idempotent"}],
  99. CancelDlpJob: retry[[2]string{"default", "non_idempotent"}],
  100. ListJobTriggers: retry[[2]string{"default", "idempotent"}],
  101. GetJobTrigger: retry[[2]string{"default", "idempotent"}],
  102. DeleteJobTrigger: retry[[2]string{"default", "idempotent"}],
  103. UpdateJobTrigger: retry[[2]string{"default", "non_idempotent"}],
  104. CreateJobTrigger: retry[[2]string{"default", "non_idempotent"}],
  105. }
  106. }
  107. // Client is a client for interacting with Cloud Data Loss Prevention (DLP) API.
  108. //
  109. // Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
  110. type Client struct {
  111. // The connection to the service.
  112. conn *grpc.ClientConn
  113. // The gRPC API client.
  114. client dlppb.DlpServiceClient
  115. // The call options for this service.
  116. CallOptions *CallOptions
  117. // The x-goog-* metadata to be sent with each request.
  118. xGoogMetadata metadata.MD
  119. }
  120. // NewClient creates a new dlp service client.
  121. //
  122. // The Cloud Data Loss Prevention (DLP) API is a service that allows clients
  123. // to detect the presence of Personally Identifiable Information (PII) and other
  124. // privacy-sensitive data in user-supplied, unstructured data streams, like text
  125. // blocks or images.
  126. // The service also includes methods for sensitive data redaction and
  127. // scheduling of data scans on Google Cloud Platform based data sets.
  128. func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) {
  129. conn, err := transport.DialGRPC(ctx, append(defaultClientOptions(), opts...)...)
  130. if err != nil {
  131. return nil, err
  132. }
  133. c := &Client{
  134. conn: conn,
  135. CallOptions: defaultCallOptions(),
  136. client: dlppb.NewDlpServiceClient(conn),
  137. }
  138. c.setGoogleClientInfo()
  139. return c, nil
  140. }
  141. // Connection returns the client's connection to the API service.
  142. func (c *Client) Connection() *grpc.ClientConn {
  143. return c.conn
  144. }
  145. // Close closes the connection to the API service. The user should invoke this when
  146. // the client is no longer required.
  147. func (c *Client) Close() error {
  148. return c.conn.Close()
  149. }
  150. // setGoogleClientInfo sets the name and version of the application in
  151. // the `x-goog-api-client` header passed on each request. Intended for
  152. // use by Google-written clients.
  153. func (c *Client) setGoogleClientInfo(keyval ...string) {
  154. kv := append([]string{"gl-go", version.Go()}, keyval...)
  155. kv = append(kv, "gapic", version.Repo, "gax", gax.Version, "grpc", grpc.Version)
  156. c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
  157. }
  158. // InspectContent finds potentially sensitive info in content.
  159. // This method has limits on input size, processing time, and output size.
  160. // How-to guide for text (at /dlp/docs/inspecting-text), How-to guide for
  161. // images (at /dlp/docs/inspecting-images)
  162. func (c *Client) InspectContent(ctx context.Context, req *dlppb.InspectContentRequest, opts ...gax.CallOption) (*dlppb.InspectContentResponse, error) {
  163. ctx = insertMetadata(ctx, c.xGoogMetadata)
  164. opts = append(c.CallOptions.InspectContent[0:len(c.CallOptions.InspectContent):len(c.CallOptions.InspectContent)], opts...)
  165. var resp *dlppb.InspectContentResponse
  166. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  167. var err error
  168. resp, err = c.client.InspectContent(ctx, req, settings.GRPC...)
  169. return err
  170. }, opts...)
  171. if err != nil {
  172. return nil, err
  173. }
  174. return resp, nil
  175. }
  176. // RedactImage redacts potentially sensitive info from an image.
  177. // This method has limits on input size, processing time, and output size.
  178. // How-to guide (at /dlp/docs/redacting-sensitive-data-images)
  179. func (c *Client) RedactImage(ctx context.Context, req *dlppb.RedactImageRequest, opts ...gax.CallOption) (*dlppb.RedactImageResponse, error) {
  180. ctx = insertMetadata(ctx, c.xGoogMetadata)
  181. opts = append(c.CallOptions.RedactImage[0:len(c.CallOptions.RedactImage):len(c.CallOptions.RedactImage)], opts...)
  182. var resp *dlppb.RedactImageResponse
  183. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  184. var err error
  185. resp, err = c.client.RedactImage(ctx, req, settings.GRPC...)
  186. return err
  187. }, opts...)
  188. if err != nil {
  189. return nil, err
  190. }
  191. return resp, nil
  192. }
  193. // DeidentifyContent de-identifies potentially sensitive info from a ContentItem.
  194. // This method has limits on input size and output size.
  195. // How-to guide (at /dlp/docs/deidentify-sensitive-data)
  196. func (c *Client) DeidentifyContent(ctx context.Context, req *dlppb.DeidentifyContentRequest, opts ...gax.CallOption) (*dlppb.DeidentifyContentResponse, error) {
  197. ctx = insertMetadata(ctx, c.xGoogMetadata)
  198. opts = append(c.CallOptions.DeidentifyContent[0:len(c.CallOptions.DeidentifyContent):len(c.CallOptions.DeidentifyContent)], opts...)
  199. var resp *dlppb.DeidentifyContentResponse
  200. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  201. var err error
  202. resp, err = c.client.DeidentifyContent(ctx, req, settings.GRPC...)
  203. return err
  204. }, opts...)
  205. if err != nil {
  206. return nil, err
  207. }
  208. return resp, nil
  209. }
  210. // ReidentifyContent re-identifies content that has been de-identified.
  211. func (c *Client) ReidentifyContent(ctx context.Context, req *dlppb.ReidentifyContentRequest, opts ...gax.CallOption) (*dlppb.ReidentifyContentResponse, error) {
  212. ctx = insertMetadata(ctx, c.xGoogMetadata)
  213. opts = append(c.CallOptions.ReidentifyContent[0:len(c.CallOptions.ReidentifyContent):len(c.CallOptions.ReidentifyContent)], opts...)
  214. var resp *dlppb.ReidentifyContentResponse
  215. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  216. var err error
  217. resp, err = c.client.ReidentifyContent(ctx, req, settings.GRPC...)
  218. return err
  219. }, opts...)
  220. if err != nil {
  221. return nil, err
  222. }
  223. return resp, nil
  224. }
  225. // ListInfoTypes returns a list of the sensitive information types that the DLP API
  226. // supports. For more information, see Listing supported predefined
  227. // infoTypes (at /dlp/docs/listing-infotypes).
  228. func (c *Client) ListInfoTypes(ctx context.Context, req *dlppb.ListInfoTypesRequest, opts ...gax.CallOption) (*dlppb.ListInfoTypesResponse, error) {
  229. ctx = insertMetadata(ctx, c.xGoogMetadata)
  230. opts = append(c.CallOptions.ListInfoTypes[0:len(c.CallOptions.ListInfoTypes):len(c.CallOptions.ListInfoTypes)], opts...)
  231. var resp *dlppb.ListInfoTypesResponse
  232. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  233. var err error
  234. resp, err = c.client.ListInfoTypes(ctx, req, settings.GRPC...)
  235. return err
  236. }, opts...)
  237. if err != nil {
  238. return nil, err
  239. }
  240. return resp, nil
  241. }
  242. // CreateInspectTemplate creates an InspectTemplate for re-using frequently used configuration
  243. // for inspecting content, images, and storage.
  244. func (c *Client) CreateInspectTemplate(ctx context.Context, req *dlppb.CreateInspectTemplateRequest, opts ...gax.CallOption) (*dlppb.InspectTemplate, error) {
  245. ctx = insertMetadata(ctx, c.xGoogMetadata)
  246. opts = append(c.CallOptions.CreateInspectTemplate[0:len(c.CallOptions.CreateInspectTemplate):len(c.CallOptions.CreateInspectTemplate)], opts...)
  247. var resp *dlppb.InspectTemplate
  248. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  249. var err error
  250. resp, err = c.client.CreateInspectTemplate(ctx, req, settings.GRPC...)
  251. return err
  252. }, opts...)
  253. if err != nil {
  254. return nil, err
  255. }
  256. return resp, nil
  257. }
  258. // UpdateInspectTemplate updates the InspectTemplate.
  259. func (c *Client) UpdateInspectTemplate(ctx context.Context, req *dlppb.UpdateInspectTemplateRequest, opts ...gax.CallOption) (*dlppb.InspectTemplate, error) {
  260. ctx = insertMetadata(ctx, c.xGoogMetadata)
  261. opts = append(c.CallOptions.UpdateInspectTemplate[0:len(c.CallOptions.UpdateInspectTemplate):len(c.CallOptions.UpdateInspectTemplate)], opts...)
  262. var resp *dlppb.InspectTemplate
  263. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  264. var err error
  265. resp, err = c.client.UpdateInspectTemplate(ctx, req, settings.GRPC...)
  266. return err
  267. }, opts...)
  268. if err != nil {
  269. return nil, err
  270. }
  271. return resp, nil
  272. }
  273. // GetInspectTemplate gets an InspectTemplate.
  274. func (c *Client) GetInspectTemplate(ctx context.Context, req *dlppb.GetInspectTemplateRequest, opts ...gax.CallOption) (*dlppb.InspectTemplate, error) {
  275. ctx = insertMetadata(ctx, c.xGoogMetadata)
  276. opts = append(c.CallOptions.GetInspectTemplate[0:len(c.CallOptions.GetInspectTemplate):len(c.CallOptions.GetInspectTemplate)], opts...)
  277. var resp *dlppb.InspectTemplate
  278. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  279. var err error
  280. resp, err = c.client.GetInspectTemplate(ctx, req, settings.GRPC...)
  281. return err
  282. }, opts...)
  283. if err != nil {
  284. return nil, err
  285. }
  286. return resp, nil
  287. }
  288. // ListInspectTemplates lists InspectTemplates.
  289. func (c *Client) ListInspectTemplates(ctx context.Context, req *dlppb.ListInspectTemplatesRequest, opts ...gax.CallOption) *InspectTemplateIterator {
  290. ctx = insertMetadata(ctx, c.xGoogMetadata)
  291. opts = append(c.CallOptions.ListInspectTemplates[0:len(c.CallOptions.ListInspectTemplates):len(c.CallOptions.ListInspectTemplates)], opts...)
  292. it := &InspectTemplateIterator{}
  293. it.InternalFetch = func(pageSize int, pageToken string) ([]*dlppb.InspectTemplate, string, error) {
  294. var resp *dlppb.ListInspectTemplatesResponse
  295. req.PageToken = pageToken
  296. if pageSize > math.MaxInt32 {
  297. req.PageSize = math.MaxInt32
  298. } else {
  299. req.PageSize = int32(pageSize)
  300. }
  301. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  302. var err error
  303. resp, err = c.client.ListInspectTemplates(ctx, req, settings.GRPC...)
  304. return err
  305. }, opts...)
  306. if err != nil {
  307. return nil, "", err
  308. }
  309. return resp.InspectTemplates, resp.NextPageToken, nil
  310. }
  311. fetch := func(pageSize int, pageToken string) (string, error) {
  312. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  313. if err != nil {
  314. return "", err
  315. }
  316. it.items = append(it.items, items...)
  317. return nextPageToken, nil
  318. }
  319. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  320. return it
  321. }
  322. // DeleteInspectTemplate deletes an InspectTemplate.
  323. func (c *Client) DeleteInspectTemplate(ctx context.Context, req *dlppb.DeleteInspectTemplateRequest, opts ...gax.CallOption) error {
  324. ctx = insertMetadata(ctx, c.xGoogMetadata)
  325. opts = append(c.CallOptions.DeleteInspectTemplate[0:len(c.CallOptions.DeleteInspectTemplate):len(c.CallOptions.DeleteInspectTemplate)], opts...)
  326. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  327. var err error
  328. _, err = c.client.DeleteInspectTemplate(ctx, req, settings.GRPC...)
  329. return err
  330. }, opts...)
  331. return err
  332. }
  333. // CreateDeidentifyTemplate creates a DeidentifyTemplate for re-using frequently used configuration
  334. // for de-identifying content, images, and storage.
  335. func (c *Client) CreateDeidentifyTemplate(ctx context.Context, req *dlppb.CreateDeidentifyTemplateRequest, opts ...gax.CallOption) (*dlppb.DeidentifyTemplate, error) {
  336. ctx = insertMetadata(ctx, c.xGoogMetadata)
  337. opts = append(c.CallOptions.CreateDeidentifyTemplate[0:len(c.CallOptions.CreateDeidentifyTemplate):len(c.CallOptions.CreateDeidentifyTemplate)], opts...)
  338. var resp *dlppb.DeidentifyTemplate
  339. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  340. var err error
  341. resp, err = c.client.CreateDeidentifyTemplate(ctx, req, settings.GRPC...)
  342. return err
  343. }, opts...)
  344. if err != nil {
  345. return nil, err
  346. }
  347. return resp, nil
  348. }
  349. // UpdateDeidentifyTemplate updates the DeidentifyTemplate.
  350. func (c *Client) UpdateDeidentifyTemplate(ctx context.Context, req *dlppb.UpdateDeidentifyTemplateRequest, opts ...gax.CallOption) (*dlppb.DeidentifyTemplate, error) {
  351. ctx = insertMetadata(ctx, c.xGoogMetadata)
  352. opts = append(c.CallOptions.UpdateDeidentifyTemplate[0:len(c.CallOptions.UpdateDeidentifyTemplate):len(c.CallOptions.UpdateDeidentifyTemplate)], opts...)
  353. var resp *dlppb.DeidentifyTemplate
  354. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  355. var err error
  356. resp, err = c.client.UpdateDeidentifyTemplate(ctx, req, settings.GRPC...)
  357. return err
  358. }, opts...)
  359. if err != nil {
  360. return nil, err
  361. }
  362. return resp, nil
  363. }
  364. // GetDeidentifyTemplate gets a DeidentifyTemplate.
  365. func (c *Client) GetDeidentifyTemplate(ctx context.Context, req *dlppb.GetDeidentifyTemplateRequest, opts ...gax.CallOption) (*dlppb.DeidentifyTemplate, error) {
  366. ctx = insertMetadata(ctx, c.xGoogMetadata)
  367. opts = append(c.CallOptions.GetDeidentifyTemplate[0:len(c.CallOptions.GetDeidentifyTemplate):len(c.CallOptions.GetDeidentifyTemplate)], opts...)
  368. var resp *dlppb.DeidentifyTemplate
  369. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  370. var err error
  371. resp, err = c.client.GetDeidentifyTemplate(ctx, req, settings.GRPC...)
  372. return err
  373. }, opts...)
  374. if err != nil {
  375. return nil, err
  376. }
  377. return resp, nil
  378. }
  379. // ListDeidentifyTemplates lists DeidentifyTemplates.
  380. func (c *Client) ListDeidentifyTemplates(ctx context.Context, req *dlppb.ListDeidentifyTemplatesRequest, opts ...gax.CallOption) *DeidentifyTemplateIterator {
  381. ctx = insertMetadata(ctx, c.xGoogMetadata)
  382. opts = append(c.CallOptions.ListDeidentifyTemplates[0:len(c.CallOptions.ListDeidentifyTemplates):len(c.CallOptions.ListDeidentifyTemplates)], opts...)
  383. it := &DeidentifyTemplateIterator{}
  384. it.InternalFetch = func(pageSize int, pageToken string) ([]*dlppb.DeidentifyTemplate, string, error) {
  385. var resp *dlppb.ListDeidentifyTemplatesResponse
  386. req.PageToken = pageToken
  387. if pageSize > math.MaxInt32 {
  388. req.PageSize = math.MaxInt32
  389. } else {
  390. req.PageSize = int32(pageSize)
  391. }
  392. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  393. var err error
  394. resp, err = c.client.ListDeidentifyTemplates(ctx, req, settings.GRPC...)
  395. return err
  396. }, opts...)
  397. if err != nil {
  398. return nil, "", err
  399. }
  400. return resp.DeidentifyTemplates, resp.NextPageToken, nil
  401. }
  402. fetch := func(pageSize int, pageToken string) (string, error) {
  403. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  404. if err != nil {
  405. return "", err
  406. }
  407. it.items = append(it.items, items...)
  408. return nextPageToken, nil
  409. }
  410. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  411. return it
  412. }
  413. // DeleteDeidentifyTemplate deletes a DeidentifyTemplate.
  414. func (c *Client) DeleteDeidentifyTemplate(ctx context.Context, req *dlppb.DeleteDeidentifyTemplateRequest, opts ...gax.CallOption) error {
  415. ctx = insertMetadata(ctx, c.xGoogMetadata)
  416. opts = append(c.CallOptions.DeleteDeidentifyTemplate[0:len(c.CallOptions.DeleteDeidentifyTemplate):len(c.CallOptions.DeleteDeidentifyTemplate)], opts...)
  417. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  418. var err error
  419. _, err = c.client.DeleteDeidentifyTemplate(ctx, req, settings.GRPC...)
  420. return err
  421. }, opts...)
  422. return err
  423. }
  424. // CreateDlpJob creates a new job to inspect storage or calculate risk metrics.
  425. // How-to guide (at /dlp/docs/compute-risk-analysis).
  426. func (c *Client) CreateDlpJob(ctx context.Context, req *dlppb.CreateDlpJobRequest, opts ...gax.CallOption) (*dlppb.DlpJob, error) {
  427. ctx = insertMetadata(ctx, c.xGoogMetadata)
  428. opts = append(c.CallOptions.CreateDlpJob[0:len(c.CallOptions.CreateDlpJob):len(c.CallOptions.CreateDlpJob)], opts...)
  429. var resp *dlppb.DlpJob
  430. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  431. var err error
  432. resp, err = c.client.CreateDlpJob(ctx, req, settings.GRPC...)
  433. return err
  434. }, opts...)
  435. if err != nil {
  436. return nil, err
  437. }
  438. return resp, nil
  439. }
  440. // ListDlpJobs lists DlpJobs that match the specified filter in the request.
  441. func (c *Client) ListDlpJobs(ctx context.Context, req *dlppb.ListDlpJobsRequest, opts ...gax.CallOption) *DlpJobIterator {
  442. ctx = insertMetadata(ctx, c.xGoogMetadata)
  443. opts = append(c.CallOptions.ListDlpJobs[0:len(c.CallOptions.ListDlpJobs):len(c.CallOptions.ListDlpJobs)], opts...)
  444. it := &DlpJobIterator{}
  445. it.InternalFetch = func(pageSize int, pageToken string) ([]*dlppb.DlpJob, string, error) {
  446. var resp *dlppb.ListDlpJobsResponse
  447. req.PageToken = pageToken
  448. if pageSize > math.MaxInt32 {
  449. req.PageSize = math.MaxInt32
  450. } else {
  451. req.PageSize = int32(pageSize)
  452. }
  453. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  454. var err error
  455. resp, err = c.client.ListDlpJobs(ctx, req, settings.GRPC...)
  456. return err
  457. }, opts...)
  458. if err != nil {
  459. return nil, "", err
  460. }
  461. return resp.Jobs, resp.NextPageToken, nil
  462. }
  463. fetch := func(pageSize int, pageToken string) (string, error) {
  464. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  465. if err != nil {
  466. return "", err
  467. }
  468. it.items = append(it.items, items...)
  469. return nextPageToken, nil
  470. }
  471. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  472. return it
  473. }
  474. // GetDlpJob gets the latest state of a long-running DlpJob.
  475. func (c *Client) GetDlpJob(ctx context.Context, req *dlppb.GetDlpJobRequest, opts ...gax.CallOption) (*dlppb.DlpJob, error) {
  476. ctx = insertMetadata(ctx, c.xGoogMetadata)
  477. opts = append(c.CallOptions.GetDlpJob[0:len(c.CallOptions.GetDlpJob):len(c.CallOptions.GetDlpJob)], opts...)
  478. var resp *dlppb.DlpJob
  479. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  480. var err error
  481. resp, err = c.client.GetDlpJob(ctx, req, settings.GRPC...)
  482. return err
  483. }, opts...)
  484. if err != nil {
  485. return nil, err
  486. }
  487. return resp, nil
  488. }
  489. // DeleteDlpJob deletes a long-running DlpJob. This method indicates that the client is
  490. // no longer interested in the DlpJob result. The job will be cancelled if
  491. // possible.
  492. func (c *Client) DeleteDlpJob(ctx context.Context, req *dlppb.DeleteDlpJobRequest, opts ...gax.CallOption) error {
  493. ctx = insertMetadata(ctx, c.xGoogMetadata)
  494. opts = append(c.CallOptions.DeleteDlpJob[0:len(c.CallOptions.DeleteDlpJob):len(c.CallOptions.DeleteDlpJob)], opts...)
  495. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  496. var err error
  497. _, err = c.client.DeleteDlpJob(ctx, req, settings.GRPC...)
  498. return err
  499. }, opts...)
  500. return err
  501. }
  502. // CancelDlpJob starts asynchronous cancellation on a long-running DlpJob. The server
  503. // makes a best effort to cancel the DlpJob, but success is not
  504. // guaranteed.
  505. func (c *Client) CancelDlpJob(ctx context.Context, req *dlppb.CancelDlpJobRequest, opts ...gax.CallOption) error {
  506. ctx = insertMetadata(ctx, c.xGoogMetadata)
  507. opts = append(c.CallOptions.CancelDlpJob[0:len(c.CallOptions.CancelDlpJob):len(c.CallOptions.CancelDlpJob)], opts...)
  508. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  509. var err error
  510. _, err = c.client.CancelDlpJob(ctx, req, settings.GRPC...)
  511. return err
  512. }, opts...)
  513. return err
  514. }
  515. // ListJobTriggers lists job triggers.
  516. func (c *Client) ListJobTriggers(ctx context.Context, req *dlppb.ListJobTriggersRequest, opts ...gax.CallOption) *JobTriggerIterator {
  517. ctx = insertMetadata(ctx, c.xGoogMetadata)
  518. opts = append(c.CallOptions.ListJobTriggers[0:len(c.CallOptions.ListJobTriggers):len(c.CallOptions.ListJobTriggers)], opts...)
  519. it := &JobTriggerIterator{}
  520. it.InternalFetch = func(pageSize int, pageToken string) ([]*dlppb.JobTrigger, string, error) {
  521. var resp *dlppb.ListJobTriggersResponse
  522. req.PageToken = pageToken
  523. if pageSize > math.MaxInt32 {
  524. req.PageSize = math.MaxInt32
  525. } else {
  526. req.PageSize = int32(pageSize)
  527. }
  528. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  529. var err error
  530. resp, err = c.client.ListJobTriggers(ctx, req, settings.GRPC...)
  531. return err
  532. }, opts...)
  533. if err != nil {
  534. return nil, "", err
  535. }
  536. return resp.JobTriggers, resp.NextPageToken, nil
  537. }
  538. fetch := func(pageSize int, pageToken string) (string, error) {
  539. items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
  540. if err != nil {
  541. return "", err
  542. }
  543. it.items = append(it.items, items...)
  544. return nextPageToken, nil
  545. }
  546. it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
  547. return it
  548. }
  549. // GetJobTrigger gets a job trigger.
  550. func (c *Client) GetJobTrigger(ctx context.Context, req *dlppb.GetJobTriggerRequest, opts ...gax.CallOption) (*dlppb.JobTrigger, error) {
  551. ctx = insertMetadata(ctx, c.xGoogMetadata)
  552. opts = append(c.CallOptions.GetJobTrigger[0:len(c.CallOptions.GetJobTrigger):len(c.CallOptions.GetJobTrigger)], opts...)
  553. var resp *dlppb.JobTrigger
  554. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  555. var err error
  556. resp, err = c.client.GetJobTrigger(ctx, req, settings.GRPC...)
  557. return err
  558. }, opts...)
  559. if err != nil {
  560. return nil, err
  561. }
  562. return resp, nil
  563. }
  564. // DeleteJobTrigger deletes a job trigger.
  565. func (c *Client) DeleteJobTrigger(ctx context.Context, req *dlppb.DeleteJobTriggerRequest, opts ...gax.CallOption) error {
  566. ctx = insertMetadata(ctx, c.xGoogMetadata)
  567. opts = append(c.CallOptions.DeleteJobTrigger[0:len(c.CallOptions.DeleteJobTrigger):len(c.CallOptions.DeleteJobTrigger)], opts...)
  568. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  569. var err error
  570. _, err = c.client.DeleteJobTrigger(ctx, req, settings.GRPC...)
  571. return err
  572. }, opts...)
  573. return err
  574. }
  575. // UpdateJobTrigger updates a job trigger.
  576. func (c *Client) UpdateJobTrigger(ctx context.Context, req *dlppb.UpdateJobTriggerRequest, opts ...gax.CallOption) (*dlppb.JobTrigger, error) {
  577. ctx = insertMetadata(ctx, c.xGoogMetadata)
  578. opts = append(c.CallOptions.UpdateJobTrigger[0:len(c.CallOptions.UpdateJobTrigger):len(c.CallOptions.UpdateJobTrigger)], opts...)
  579. var resp *dlppb.JobTrigger
  580. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  581. var err error
  582. resp, err = c.client.UpdateJobTrigger(ctx, req, settings.GRPC...)
  583. return err
  584. }, opts...)
  585. if err != nil {
  586. return nil, err
  587. }
  588. return resp, nil
  589. }
  590. // CreateJobTrigger creates a job trigger to run DLP actions such as scanning storage for
  591. // sensitive information on a set schedule.
  592. func (c *Client) CreateJobTrigger(ctx context.Context, req *dlppb.CreateJobTriggerRequest, opts ...gax.CallOption) (*dlppb.JobTrigger, error) {
  593. ctx = insertMetadata(ctx, c.xGoogMetadata)
  594. opts = append(c.CallOptions.CreateJobTrigger[0:len(c.CallOptions.CreateJobTrigger):len(c.CallOptions.CreateJobTrigger)], opts...)
  595. var resp *dlppb.JobTrigger
  596. err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
  597. var err error
  598. resp, err = c.client.CreateJobTrigger(ctx, req, settings.GRPC...)
  599. return err
  600. }, opts...)
  601. if err != nil {
  602. return nil, err
  603. }
  604. return resp, nil
  605. }
  606. // DeidentifyTemplateIterator manages a stream of *dlppb.DeidentifyTemplate.
  607. type DeidentifyTemplateIterator struct {
  608. items []*dlppb.DeidentifyTemplate
  609. pageInfo *iterator.PageInfo
  610. nextFunc func() error
  611. // InternalFetch is for use by the Google Cloud Libraries only.
  612. // It is not part of the stable interface of this package.
  613. //
  614. // InternalFetch returns results from a single call to the underlying RPC.
  615. // The number of results is no greater than pageSize.
  616. // If there are no more results, nextPageToken is empty and err is nil.
  617. InternalFetch func(pageSize int, pageToken string) (results []*dlppb.DeidentifyTemplate, nextPageToken string, err error)
  618. }
  619. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  620. func (it *DeidentifyTemplateIterator) PageInfo() *iterator.PageInfo {
  621. return it.pageInfo
  622. }
  623. // Next returns the next result. Its second return value is iterator.Done if there are no more
  624. // results. Once Next returns Done, all subsequent calls will return Done.
  625. func (it *DeidentifyTemplateIterator) Next() (*dlppb.DeidentifyTemplate, error) {
  626. var item *dlppb.DeidentifyTemplate
  627. if err := it.nextFunc(); err != nil {
  628. return item, err
  629. }
  630. item = it.items[0]
  631. it.items = it.items[1:]
  632. return item, nil
  633. }
  634. func (it *DeidentifyTemplateIterator) bufLen() int {
  635. return len(it.items)
  636. }
  637. func (it *DeidentifyTemplateIterator) takeBuf() interface{} {
  638. b := it.items
  639. it.items = nil
  640. return b
  641. }
  642. // DlpJobIterator manages a stream of *dlppb.DlpJob.
  643. type DlpJobIterator struct {
  644. items []*dlppb.DlpJob
  645. pageInfo *iterator.PageInfo
  646. nextFunc func() error
  647. // InternalFetch is for use by the Google Cloud Libraries only.
  648. // It is not part of the stable interface of this package.
  649. //
  650. // InternalFetch returns results from a single call to the underlying RPC.
  651. // The number of results is no greater than pageSize.
  652. // If there are no more results, nextPageToken is empty and err is nil.
  653. InternalFetch func(pageSize int, pageToken string) (results []*dlppb.DlpJob, nextPageToken string, err error)
  654. }
  655. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  656. func (it *DlpJobIterator) PageInfo() *iterator.PageInfo {
  657. return it.pageInfo
  658. }
  659. // Next returns the next result. Its second return value is iterator.Done if there are no more
  660. // results. Once Next returns Done, all subsequent calls will return Done.
  661. func (it *DlpJobIterator) Next() (*dlppb.DlpJob, error) {
  662. var item *dlppb.DlpJob
  663. if err := it.nextFunc(); err != nil {
  664. return item, err
  665. }
  666. item = it.items[0]
  667. it.items = it.items[1:]
  668. return item, nil
  669. }
  670. func (it *DlpJobIterator) bufLen() int {
  671. return len(it.items)
  672. }
  673. func (it *DlpJobIterator) takeBuf() interface{} {
  674. b := it.items
  675. it.items = nil
  676. return b
  677. }
  678. // InspectTemplateIterator manages a stream of *dlppb.InspectTemplate.
  679. type InspectTemplateIterator struct {
  680. items []*dlppb.InspectTemplate
  681. pageInfo *iterator.PageInfo
  682. nextFunc func() error
  683. // InternalFetch is for use by the Google Cloud Libraries only.
  684. // It is not part of the stable interface of this package.
  685. //
  686. // InternalFetch returns results from a single call to the underlying RPC.
  687. // The number of results is no greater than pageSize.
  688. // If there are no more results, nextPageToken is empty and err is nil.
  689. InternalFetch func(pageSize int, pageToken string) (results []*dlppb.InspectTemplate, nextPageToken string, err error)
  690. }
  691. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  692. func (it *InspectTemplateIterator) PageInfo() *iterator.PageInfo {
  693. return it.pageInfo
  694. }
  695. // Next returns the next result. Its second return value is iterator.Done if there are no more
  696. // results. Once Next returns Done, all subsequent calls will return Done.
  697. func (it *InspectTemplateIterator) Next() (*dlppb.InspectTemplate, error) {
  698. var item *dlppb.InspectTemplate
  699. if err := it.nextFunc(); err != nil {
  700. return item, err
  701. }
  702. item = it.items[0]
  703. it.items = it.items[1:]
  704. return item, nil
  705. }
  706. func (it *InspectTemplateIterator) bufLen() int {
  707. return len(it.items)
  708. }
  709. func (it *InspectTemplateIterator) takeBuf() interface{} {
  710. b := it.items
  711. it.items = nil
  712. return b
  713. }
  714. // JobTriggerIterator manages a stream of *dlppb.JobTrigger.
  715. type JobTriggerIterator struct {
  716. items []*dlppb.JobTrigger
  717. pageInfo *iterator.PageInfo
  718. nextFunc func() error
  719. // InternalFetch is for use by the Google Cloud Libraries only.
  720. // It is not part of the stable interface of this package.
  721. //
  722. // InternalFetch returns results from a single call to the underlying RPC.
  723. // The number of results is no greater than pageSize.
  724. // If there are no more results, nextPageToken is empty and err is nil.
  725. InternalFetch func(pageSize int, pageToken string) (results []*dlppb.JobTrigger, nextPageToken string, err error)
  726. }
  727. // PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
  728. func (it *JobTriggerIterator) PageInfo() *iterator.PageInfo {
  729. return it.pageInfo
  730. }
  731. // Next returns the next result. Its second return value is iterator.Done if there are no more
  732. // results. Once Next returns Done, all subsequent calls will return Done.
  733. func (it *JobTriggerIterator) Next() (*dlppb.JobTrigger, error) {
  734. var item *dlppb.JobTrigger
  735. if err := it.nextFunc(); err != nil {
  736. return item, err
  737. }
  738. item = it.items[0]
  739. it.items = it.items[1:]
  740. return item, nil
  741. }
  742. func (it *JobTriggerIterator) bufLen() int {
  743. return len(it.items)
  744. }
  745. func (it *JobTriggerIterator) takeBuf() interface{} {
  746. b := it.items
  747. it.items = nil
  748. return b
  749. }