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 dlp 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 dlppb "google.golang.org/genproto/googleapis/privacy/dlp/v2" 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 InspectContent []gax.CallOption 40 RedactImage []gax.CallOption 41 DeidentifyContent []gax.CallOption 42 ReidentifyContent []gax.CallOption 43 ListInfoTypes []gax.CallOption 44 CreateInspectTemplate []gax.CallOption 45 UpdateInspectTemplate []gax.CallOption 46 GetInspectTemplate []gax.CallOption 47 ListInspectTemplates []gax.CallOption 48 DeleteInspectTemplate []gax.CallOption 49 CreateDeidentifyTemplate []gax.CallOption 50 UpdateDeidentifyTemplate []gax.CallOption 51 GetDeidentifyTemplate []gax.CallOption 52 ListDeidentifyTemplates []gax.CallOption 53 DeleteDeidentifyTemplate []gax.CallOption 54 CreateDlpJob []gax.CallOption 55 ListDlpJobs []gax.CallOption 56 GetDlpJob []gax.CallOption 57 DeleteDlpJob []gax.CallOption 58 CancelDlpJob []gax.CallOption 59 ListJobTriggers []gax.CallOption 60 GetJobTrigger []gax.CallOption 61 DeleteJobTrigger []gax.CallOption 62 UpdateJobTrigger []gax.CallOption 63 CreateJobTrigger []gax.CallOption 64 CreateStoredInfoType []gax.CallOption 65 UpdateStoredInfoType []gax.CallOption 66 GetStoredInfoType []gax.CallOption 67 ListStoredInfoTypes []gax.CallOption 68 DeleteStoredInfoType []gax.CallOption 69} 70 71func defaultClientOptions() []option.ClientOption { 72 return []option.ClientOption{ 73 option.WithEndpoint("dlp.googleapis.com:443"), 74 option.WithScopes(DefaultAuthScopes()...), 75 option.WithGRPCDialOption(grpc.WithDefaultCallOptions( 76 grpc.MaxCallRecvMsgSize(math.MaxInt32))), 77 } 78} 79 80func defaultCallOptions() *CallOptions { 81 retry := map[[2]string][]gax.CallOption{ 82 {"default", "idempotent"}: { 83 gax.WithRetry(func() gax.Retryer { 84 return gax.OnCodes([]codes.Code{ 85 codes.DeadlineExceeded, 86 codes.Unavailable, 87 }, gax.Backoff{ 88 Initial: 100 * time.Millisecond, 89 Max: 60000 * time.Millisecond, 90 Multiplier: 1.3, 91 }) 92 }), 93 }, 94 } 95 return &CallOptions{ 96 InspectContent: retry[[2]string{"default", "idempotent"}], 97 RedactImage: retry[[2]string{"default", "idempotent"}], 98 DeidentifyContent: retry[[2]string{"default", "idempotent"}], 99 ReidentifyContent: retry[[2]string{"default", "idempotent"}], 100 ListInfoTypes: retry[[2]string{"default", "idempotent"}], 101 CreateInspectTemplate: retry[[2]string{"default", "non_idempotent"}], 102 UpdateInspectTemplate: retry[[2]string{"default", "non_idempotent"}], 103 GetInspectTemplate: retry[[2]string{"default", "idempotent"}], 104 ListInspectTemplates: retry[[2]string{"default", "idempotent"}], 105 DeleteInspectTemplate: retry[[2]string{"default", "idempotent"}], 106 CreateDeidentifyTemplate: retry[[2]string{"default", "non_idempotent"}], 107 UpdateDeidentifyTemplate: retry[[2]string{"default", "non_idempotent"}], 108 GetDeidentifyTemplate: retry[[2]string{"default", "idempotent"}], 109 ListDeidentifyTemplates: retry[[2]string{"default", "idempotent"}], 110 DeleteDeidentifyTemplate: retry[[2]string{"default", "idempotent"}], 111 CreateDlpJob: retry[[2]string{"default", "non_idempotent"}], 112 ListDlpJobs: retry[[2]string{"default", "idempotent"}], 113 GetDlpJob: retry[[2]string{"default", "idempotent"}], 114 DeleteDlpJob: retry[[2]string{"default", "idempotent"}], 115 CancelDlpJob: retry[[2]string{"default", "non_idempotent"}], 116 ListJobTriggers: retry[[2]string{"default", "idempotent"}], 117 GetJobTrigger: retry[[2]string{"default", "idempotent"}], 118 DeleteJobTrigger: retry[[2]string{"default", "idempotent"}], 119 UpdateJobTrigger: retry[[2]string{"default", "non_idempotent"}], 120 CreateJobTrigger: retry[[2]string{"default", "non_idempotent"}], 121 CreateStoredInfoType: retry[[2]string{"default", "non_idempotent"}], 122 UpdateStoredInfoType: retry[[2]string{"default", "non_idempotent"}], 123 GetStoredInfoType: retry[[2]string{"default", "idempotent"}], 124 ListStoredInfoTypes: retry[[2]string{"default", "idempotent"}], 125 DeleteStoredInfoType: retry[[2]string{"default", "idempotent"}], 126 } 127} 128 129// Client is a client for interacting with Cloud Data Loss Prevention (DLP) API. 130// 131// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. 132type Client struct { 133 // The connection to the service. 134 conn *grpc.ClientConn 135 136 // The gRPC API client. 137 client dlppb.DlpServiceClient 138 139 // The call options for this service. 140 CallOptions *CallOptions 141 142 // The x-goog-* metadata to be sent with each request. 143 xGoogMetadata metadata.MD 144} 145 146// NewClient creates a new dlp service client. 147// 148// The Cloud Data Loss Prevention (DLP) API is a service that allows clients 149// to detect the presence of Personally Identifiable Information (PII) and other 150// privacy-sensitive data in user-supplied, unstructured data streams, like text 151// blocks or images. 152// The service also includes methods for sensitive data redaction and 153// scheduling of data scans on Google Cloud Platform based data sets. 154// 155// To learn more about concepts and find how-to guides see 156// https://cloud.google.com/dlp/docs/. 157func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { 158 conn, err := transport.DialGRPC(ctx, append(defaultClientOptions(), opts...)...) 159 if err != nil { 160 return nil, err 161 } 162 c := &Client{ 163 conn: conn, 164 CallOptions: defaultCallOptions(), 165 166 client: dlppb.NewDlpServiceClient(conn), 167 } 168 c.setGoogleClientInfo() 169 return c, nil 170} 171 172// Connection returns the client's connection to the API service. 173func (c *Client) Connection() *grpc.ClientConn { 174 return c.conn 175} 176 177// Close closes the connection to the API service. The user should invoke this when 178// the client is no longer required. 179func (c *Client) Close() error { 180 return c.conn.Close() 181} 182 183// setGoogleClientInfo sets the name and version of the application in 184// the `x-goog-api-client` header passed on each request. Intended for 185// use by Google-written clients. 186func (c *Client) setGoogleClientInfo(keyval ...string) { 187 kv := append([]string{"gl-go", versionGo()}, keyval...) 188 kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) 189 c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) 190} 191 192// InspectContent finds potentially sensitive info in content. 193// This method has limits on input size, processing time, and output size. 194// 195// When no InfoTypes or CustomInfoTypes are specified in this request, the 196// system will automatically choose what detectors to run. By default this may 197// be all types, but may change over time as detectors are updated. 198// 199// For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images 200// and https://cloud.google.com/dlp/docs/inspecting-text, 201func (c *Client) InspectContent(ctx context.Context, req *dlppb.InspectContentRequest, opts ...gax.CallOption) (*dlppb.InspectContentResponse, error) { 202 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 203 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 204 opts = append(c.CallOptions.InspectContent[0:len(c.CallOptions.InspectContent):len(c.CallOptions.InspectContent)], opts...) 205 var resp *dlppb.InspectContentResponse 206 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 207 var err error 208 resp, err = c.client.InspectContent(ctx, req, settings.GRPC...) 209 return err 210 }, opts...) 211 if err != nil { 212 return nil, err 213 } 214 return resp, nil 215} 216 217// RedactImage redacts potentially sensitive info from an image. 218// This method has limits on input size, processing time, and output size. 219// See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to 220// learn more. 221// 222// When no InfoTypes or CustomInfoTypes are specified in this request, the 223// system will automatically choose what detectors to run. By default this may 224// be all types, but may change over time as detectors are updated. 225func (c *Client) RedactImage(ctx context.Context, req *dlppb.RedactImageRequest, opts ...gax.CallOption) (*dlppb.RedactImageResponse, error) { 226 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 227 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 228 opts = append(c.CallOptions.RedactImage[0:len(c.CallOptions.RedactImage):len(c.CallOptions.RedactImage)], opts...) 229 var resp *dlppb.RedactImageResponse 230 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 231 var err error 232 resp, err = c.client.RedactImage(ctx, req, settings.GRPC...) 233 return err 234 }, opts...) 235 if err != nil { 236 return nil, err 237 } 238 return resp, nil 239} 240 241// DeidentifyContent de-identifies potentially sensitive info from a ContentItem. 242// This method has limits on input size and output size. 243// See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to 244// learn more. 245// 246// When no InfoTypes or CustomInfoTypes are specified in this request, the 247// system will automatically choose what detectors to run. By default this may 248// be all types, but may change over time as detectors are updated. 249func (c *Client) DeidentifyContent(ctx context.Context, req *dlppb.DeidentifyContentRequest, opts ...gax.CallOption) (*dlppb.DeidentifyContentResponse, error) { 250 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 251 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 252 opts = append(c.CallOptions.DeidentifyContent[0:len(c.CallOptions.DeidentifyContent):len(c.CallOptions.DeidentifyContent)], opts...) 253 var resp *dlppb.DeidentifyContentResponse 254 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 255 var err error 256 resp, err = c.client.DeidentifyContent(ctx, req, settings.GRPC...) 257 return err 258 }, opts...) 259 if err != nil { 260 return nil, err 261 } 262 return resp, nil 263} 264 265// ReidentifyContent re-identifies content that has been de-identified. 266// See 267// https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example 268// to learn more. 269func (c *Client) ReidentifyContent(ctx context.Context, req *dlppb.ReidentifyContentRequest, opts ...gax.CallOption) (*dlppb.ReidentifyContentResponse, error) { 270 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 271 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 272 opts = append(c.CallOptions.ReidentifyContent[0:len(c.CallOptions.ReidentifyContent):len(c.CallOptions.ReidentifyContent)], opts...) 273 var resp *dlppb.ReidentifyContentResponse 274 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 275 var err error 276 resp, err = c.client.ReidentifyContent(ctx, req, settings.GRPC...) 277 return err 278 }, opts...) 279 if err != nil { 280 return nil, err 281 } 282 return resp, nil 283} 284 285// ListInfoTypes returns a list of the sensitive information types that the DLP API 286// supports. See https://cloud.google.com/dlp/docs/infotypes-reference to 287// learn more. 288func (c *Client) ListInfoTypes(ctx context.Context, req *dlppb.ListInfoTypesRequest, opts ...gax.CallOption) (*dlppb.ListInfoTypesResponse, error) { 289 ctx = insertMetadata(ctx, c.xGoogMetadata) 290 opts = append(c.CallOptions.ListInfoTypes[0:len(c.CallOptions.ListInfoTypes):len(c.CallOptions.ListInfoTypes)], opts...) 291 var resp *dlppb.ListInfoTypesResponse 292 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 293 var err error 294 resp, err = c.client.ListInfoTypes(ctx, req, settings.GRPC...) 295 return err 296 }, opts...) 297 if err != nil { 298 return nil, err 299 } 300 return resp, nil 301} 302 303// CreateInspectTemplate creates an InspectTemplate for re-using frequently used configuration 304// for inspecting content, images, and storage. 305// See https://cloud.google.com/dlp/docs/creating-templates to learn more. 306func (c *Client) CreateInspectTemplate(ctx context.Context, req *dlppb.CreateInspectTemplateRequest, opts ...gax.CallOption) (*dlppb.InspectTemplate, error) { 307 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 308 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 309 opts = append(c.CallOptions.CreateInspectTemplate[0:len(c.CallOptions.CreateInspectTemplate):len(c.CallOptions.CreateInspectTemplate)], opts...) 310 var resp *dlppb.InspectTemplate 311 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 312 var err error 313 resp, err = c.client.CreateInspectTemplate(ctx, req, settings.GRPC...) 314 return err 315 }, opts...) 316 if err != nil { 317 return nil, err 318 } 319 return resp, nil 320} 321 322// UpdateInspectTemplate updates the InspectTemplate. 323// See https://cloud.google.com/dlp/docs/creating-templates to learn more. 324func (c *Client) UpdateInspectTemplate(ctx context.Context, req *dlppb.UpdateInspectTemplateRequest, opts ...gax.CallOption) (*dlppb.InspectTemplate, error) { 325 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 326 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 327 opts = append(c.CallOptions.UpdateInspectTemplate[0:len(c.CallOptions.UpdateInspectTemplate):len(c.CallOptions.UpdateInspectTemplate)], opts...) 328 var resp *dlppb.InspectTemplate 329 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 330 var err error 331 resp, err = c.client.UpdateInspectTemplate(ctx, req, settings.GRPC...) 332 return err 333 }, opts...) 334 if err != nil { 335 return nil, err 336 } 337 return resp, nil 338} 339 340// GetInspectTemplate gets an InspectTemplate. 341// See https://cloud.google.com/dlp/docs/creating-templates to learn more. 342func (c *Client) GetInspectTemplate(ctx context.Context, req *dlppb.GetInspectTemplateRequest, opts ...gax.CallOption) (*dlppb.InspectTemplate, error) { 343 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 344 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 345 opts = append(c.CallOptions.GetInspectTemplate[0:len(c.CallOptions.GetInspectTemplate):len(c.CallOptions.GetInspectTemplate)], opts...) 346 var resp *dlppb.InspectTemplate 347 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 348 var err error 349 resp, err = c.client.GetInspectTemplate(ctx, req, settings.GRPC...) 350 return err 351 }, opts...) 352 if err != nil { 353 return nil, err 354 } 355 return resp, nil 356} 357 358// ListInspectTemplates lists InspectTemplates. 359// See https://cloud.google.com/dlp/docs/creating-templates to learn more. 360func (c *Client) ListInspectTemplates(ctx context.Context, req *dlppb.ListInspectTemplatesRequest, opts ...gax.CallOption) *InspectTemplateIterator { 361 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 362 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 363 opts = append(c.CallOptions.ListInspectTemplates[0:len(c.CallOptions.ListInspectTemplates):len(c.CallOptions.ListInspectTemplates)], opts...) 364 it := &InspectTemplateIterator{} 365 req = proto.Clone(req).(*dlppb.ListInspectTemplatesRequest) 366 it.InternalFetch = func(pageSize int, pageToken string) ([]*dlppb.InspectTemplate, string, error) { 367 var resp *dlppb.ListInspectTemplatesResponse 368 req.PageToken = pageToken 369 if pageSize > math.MaxInt32 { 370 req.PageSize = math.MaxInt32 371 } else { 372 req.PageSize = int32(pageSize) 373 } 374 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 375 var err error 376 resp, err = c.client.ListInspectTemplates(ctx, req, settings.GRPC...) 377 return err 378 }, opts...) 379 if err != nil { 380 return nil, "", err 381 } 382 return resp.InspectTemplates, resp.NextPageToken, nil 383 } 384 fetch := func(pageSize int, pageToken string) (string, error) { 385 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 386 if err != nil { 387 return "", err 388 } 389 it.items = append(it.items, items...) 390 return nextPageToken, nil 391 } 392 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 393 it.pageInfo.MaxSize = int(req.PageSize) 394 it.pageInfo.Token = req.PageToken 395 return it 396} 397 398// DeleteInspectTemplate deletes an InspectTemplate. 399// See https://cloud.google.com/dlp/docs/creating-templates to learn more. 400func (c *Client) DeleteInspectTemplate(ctx context.Context, req *dlppb.DeleteInspectTemplateRequest, opts ...gax.CallOption) error { 401 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 402 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 403 opts = append(c.CallOptions.DeleteInspectTemplate[0:len(c.CallOptions.DeleteInspectTemplate):len(c.CallOptions.DeleteInspectTemplate)], opts...) 404 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 405 var err error 406 _, err = c.client.DeleteInspectTemplate(ctx, req, settings.GRPC...) 407 return err 408 }, opts...) 409 return err 410} 411 412// CreateDeidentifyTemplate creates a DeidentifyTemplate for re-using frequently used configuration 413// for de-identifying content, images, and storage. 414// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 415// more. 416func (c *Client) CreateDeidentifyTemplate(ctx context.Context, req *dlppb.CreateDeidentifyTemplateRequest, opts ...gax.CallOption) (*dlppb.DeidentifyTemplate, error) { 417 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 418 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 419 opts = append(c.CallOptions.CreateDeidentifyTemplate[0:len(c.CallOptions.CreateDeidentifyTemplate):len(c.CallOptions.CreateDeidentifyTemplate)], opts...) 420 var resp *dlppb.DeidentifyTemplate 421 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 422 var err error 423 resp, err = c.client.CreateDeidentifyTemplate(ctx, req, settings.GRPC...) 424 return err 425 }, opts...) 426 if err != nil { 427 return nil, err 428 } 429 return resp, nil 430} 431 432// UpdateDeidentifyTemplate updates the DeidentifyTemplate. 433// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 434// more. 435func (c *Client) UpdateDeidentifyTemplate(ctx context.Context, req *dlppb.UpdateDeidentifyTemplateRequest, opts ...gax.CallOption) (*dlppb.DeidentifyTemplate, error) { 436 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 437 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 438 opts = append(c.CallOptions.UpdateDeidentifyTemplate[0:len(c.CallOptions.UpdateDeidentifyTemplate):len(c.CallOptions.UpdateDeidentifyTemplate)], opts...) 439 var resp *dlppb.DeidentifyTemplate 440 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 441 var err error 442 resp, err = c.client.UpdateDeidentifyTemplate(ctx, req, settings.GRPC...) 443 return err 444 }, opts...) 445 if err != nil { 446 return nil, err 447 } 448 return resp, nil 449} 450 451// GetDeidentifyTemplate gets a DeidentifyTemplate. 452// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 453// more. 454func (c *Client) GetDeidentifyTemplate(ctx context.Context, req *dlppb.GetDeidentifyTemplateRequest, opts ...gax.CallOption) (*dlppb.DeidentifyTemplate, error) { 455 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 456 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 457 opts = append(c.CallOptions.GetDeidentifyTemplate[0:len(c.CallOptions.GetDeidentifyTemplate):len(c.CallOptions.GetDeidentifyTemplate)], opts...) 458 var resp *dlppb.DeidentifyTemplate 459 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 460 var err error 461 resp, err = c.client.GetDeidentifyTemplate(ctx, req, settings.GRPC...) 462 return err 463 }, opts...) 464 if err != nil { 465 return nil, err 466 } 467 return resp, nil 468} 469 470// ListDeidentifyTemplates lists DeidentifyTemplates. 471// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 472// more. 473func (c *Client) ListDeidentifyTemplates(ctx context.Context, req *dlppb.ListDeidentifyTemplatesRequest, opts ...gax.CallOption) *DeidentifyTemplateIterator { 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.ListDeidentifyTemplates[0:len(c.CallOptions.ListDeidentifyTemplates):len(c.CallOptions.ListDeidentifyTemplates)], opts...) 477 it := &DeidentifyTemplateIterator{} 478 req = proto.Clone(req).(*dlppb.ListDeidentifyTemplatesRequest) 479 it.InternalFetch = func(pageSize int, pageToken string) ([]*dlppb.DeidentifyTemplate, string, error) { 480 var resp *dlppb.ListDeidentifyTemplatesResponse 481 req.PageToken = pageToken 482 if pageSize > math.MaxInt32 { 483 req.PageSize = math.MaxInt32 484 } else { 485 req.PageSize = int32(pageSize) 486 } 487 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 488 var err error 489 resp, err = c.client.ListDeidentifyTemplates(ctx, req, settings.GRPC...) 490 return err 491 }, opts...) 492 if err != nil { 493 return nil, "", err 494 } 495 return resp.DeidentifyTemplates, resp.NextPageToken, nil 496 } 497 fetch := func(pageSize int, pageToken string) (string, error) { 498 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 499 if err != nil { 500 return "", err 501 } 502 it.items = append(it.items, items...) 503 return nextPageToken, nil 504 } 505 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 506 it.pageInfo.MaxSize = int(req.PageSize) 507 it.pageInfo.Token = req.PageToken 508 return it 509} 510 511// DeleteDeidentifyTemplate deletes a DeidentifyTemplate. 512// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn 513// more. 514func (c *Client) DeleteDeidentifyTemplate(ctx context.Context, req *dlppb.DeleteDeidentifyTemplateRequest, opts ...gax.CallOption) error { 515 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 516 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 517 opts = append(c.CallOptions.DeleteDeidentifyTemplate[0:len(c.CallOptions.DeleteDeidentifyTemplate):len(c.CallOptions.DeleteDeidentifyTemplate)], opts...) 518 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 519 var err error 520 _, err = c.client.DeleteDeidentifyTemplate(ctx, req, settings.GRPC...) 521 return err 522 }, opts...) 523 return err 524} 525 526// CreateDlpJob creates a new job to inspect storage or calculate risk metrics. 527// See https://cloud.google.com/dlp/docs/inspecting-storage and 528// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 529// 530// When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the 531// system will automatically choose what detectors to run. By default this may 532// be all types, but may change over time as detectors are updated. 533func (c *Client) CreateDlpJob(ctx context.Context, req *dlppb.CreateDlpJobRequest, opts ...gax.CallOption) (*dlppb.DlpJob, error) { 534 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 535 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 536 opts = append(c.CallOptions.CreateDlpJob[0:len(c.CallOptions.CreateDlpJob):len(c.CallOptions.CreateDlpJob)], opts...) 537 var resp *dlppb.DlpJob 538 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 539 var err error 540 resp, err = c.client.CreateDlpJob(ctx, req, settings.GRPC...) 541 return err 542 }, opts...) 543 if err != nil { 544 return nil, err 545 } 546 return resp, nil 547} 548 549// ListDlpJobs lists DlpJobs that match the specified filter in the request. 550// See https://cloud.google.com/dlp/docs/inspecting-storage and 551// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 552func (c *Client) ListDlpJobs(ctx context.Context, req *dlppb.ListDlpJobsRequest, opts ...gax.CallOption) *DlpJobIterator { 553 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 554 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 555 opts = append(c.CallOptions.ListDlpJobs[0:len(c.CallOptions.ListDlpJobs):len(c.CallOptions.ListDlpJobs)], opts...) 556 it := &DlpJobIterator{} 557 req = proto.Clone(req).(*dlppb.ListDlpJobsRequest) 558 it.InternalFetch = func(pageSize int, pageToken string) ([]*dlppb.DlpJob, string, error) { 559 var resp *dlppb.ListDlpJobsResponse 560 req.PageToken = pageToken 561 if pageSize > math.MaxInt32 { 562 req.PageSize = math.MaxInt32 563 } else { 564 req.PageSize = int32(pageSize) 565 } 566 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 567 var err error 568 resp, err = c.client.ListDlpJobs(ctx, req, settings.GRPC...) 569 return err 570 }, opts...) 571 if err != nil { 572 return nil, "", err 573 } 574 return resp.Jobs, resp.NextPageToken, nil 575 } 576 fetch := func(pageSize int, pageToken string) (string, error) { 577 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 578 if err != nil { 579 return "", err 580 } 581 it.items = append(it.items, items...) 582 return nextPageToken, nil 583 } 584 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 585 it.pageInfo.MaxSize = int(req.PageSize) 586 it.pageInfo.Token = req.PageToken 587 return it 588} 589 590// GetDlpJob gets the latest state of a long-running DlpJob. 591// See https://cloud.google.com/dlp/docs/inspecting-storage and 592// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 593func (c *Client) GetDlpJob(ctx context.Context, req *dlppb.GetDlpJobRequest, opts ...gax.CallOption) (*dlppb.DlpJob, error) { 594 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 595 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 596 opts = append(c.CallOptions.GetDlpJob[0:len(c.CallOptions.GetDlpJob):len(c.CallOptions.GetDlpJob)], opts...) 597 var resp *dlppb.DlpJob 598 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 599 var err error 600 resp, err = c.client.GetDlpJob(ctx, req, settings.GRPC...) 601 return err 602 }, opts...) 603 if err != nil { 604 return nil, err 605 } 606 return resp, nil 607} 608 609// DeleteDlpJob deletes a long-running DlpJob. This method indicates that the client is 610// no longer interested in the DlpJob result. The job will be cancelled if 611// possible. 612// See https://cloud.google.com/dlp/docs/inspecting-storage and 613// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 614func (c *Client) DeleteDlpJob(ctx context.Context, req *dlppb.DeleteDlpJobRequest, opts ...gax.CallOption) error { 615 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 616 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 617 opts = append(c.CallOptions.DeleteDlpJob[0:len(c.CallOptions.DeleteDlpJob):len(c.CallOptions.DeleteDlpJob)], opts...) 618 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 619 var err error 620 _, err = c.client.DeleteDlpJob(ctx, req, settings.GRPC...) 621 return err 622 }, opts...) 623 return err 624} 625 626// CancelDlpJob starts asynchronous cancellation on a long-running DlpJob. The server 627// makes a best effort to cancel the DlpJob, but success is not 628// guaranteed. 629// See https://cloud.google.com/dlp/docs/inspecting-storage and 630// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more. 631func (c *Client) CancelDlpJob(ctx context.Context, req *dlppb.CancelDlpJobRequest, opts ...gax.CallOption) error { 632 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 633 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 634 opts = append(c.CallOptions.CancelDlpJob[0:len(c.CallOptions.CancelDlpJob):len(c.CallOptions.CancelDlpJob)], opts...) 635 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 636 var err error 637 _, err = c.client.CancelDlpJob(ctx, req, settings.GRPC...) 638 return err 639 }, opts...) 640 return err 641} 642 643// ListJobTriggers lists job triggers. 644// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 645func (c *Client) ListJobTriggers(ctx context.Context, req *dlppb.ListJobTriggersRequest, opts ...gax.CallOption) *JobTriggerIterator { 646 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 647 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 648 opts = append(c.CallOptions.ListJobTriggers[0:len(c.CallOptions.ListJobTriggers):len(c.CallOptions.ListJobTriggers)], opts...) 649 it := &JobTriggerIterator{} 650 req = proto.Clone(req).(*dlppb.ListJobTriggersRequest) 651 it.InternalFetch = func(pageSize int, pageToken string) ([]*dlppb.JobTrigger, string, error) { 652 var resp *dlppb.ListJobTriggersResponse 653 req.PageToken = pageToken 654 if pageSize > math.MaxInt32 { 655 req.PageSize = math.MaxInt32 656 } else { 657 req.PageSize = int32(pageSize) 658 } 659 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 660 var err error 661 resp, err = c.client.ListJobTriggers(ctx, req, settings.GRPC...) 662 return err 663 }, opts...) 664 if err != nil { 665 return nil, "", err 666 } 667 return resp.JobTriggers, resp.NextPageToken, nil 668 } 669 fetch := func(pageSize int, pageToken string) (string, error) { 670 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 671 if err != nil { 672 return "", err 673 } 674 it.items = append(it.items, items...) 675 return nextPageToken, nil 676 } 677 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 678 it.pageInfo.MaxSize = int(req.PageSize) 679 it.pageInfo.Token = req.PageToken 680 return it 681} 682 683// GetJobTrigger gets a job trigger. 684// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 685func (c *Client) GetJobTrigger(ctx context.Context, req *dlppb.GetJobTriggerRequest, opts ...gax.CallOption) (*dlppb.JobTrigger, error) { 686 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 687 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 688 opts = append(c.CallOptions.GetJobTrigger[0:len(c.CallOptions.GetJobTrigger):len(c.CallOptions.GetJobTrigger)], opts...) 689 var resp *dlppb.JobTrigger 690 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 691 var err error 692 resp, err = c.client.GetJobTrigger(ctx, req, settings.GRPC...) 693 return err 694 }, opts...) 695 if err != nil { 696 return nil, err 697 } 698 return resp, nil 699} 700 701// DeleteJobTrigger deletes a job trigger. 702// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 703func (c *Client) DeleteJobTrigger(ctx context.Context, req *dlppb.DeleteJobTriggerRequest, opts ...gax.CallOption) error { 704 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 705 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 706 opts = append(c.CallOptions.DeleteJobTrigger[0:len(c.CallOptions.DeleteJobTrigger):len(c.CallOptions.DeleteJobTrigger)], opts...) 707 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 708 var err error 709 _, err = c.client.DeleteJobTrigger(ctx, req, settings.GRPC...) 710 return err 711 }, opts...) 712 return err 713} 714 715// UpdateJobTrigger updates a job trigger. 716// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 717func (c *Client) UpdateJobTrigger(ctx context.Context, req *dlppb.UpdateJobTriggerRequest, opts ...gax.CallOption) (*dlppb.JobTrigger, error) { 718 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 719 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 720 opts = append(c.CallOptions.UpdateJobTrigger[0:len(c.CallOptions.UpdateJobTrigger):len(c.CallOptions.UpdateJobTrigger)], opts...) 721 var resp *dlppb.JobTrigger 722 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 723 var err error 724 resp, err = c.client.UpdateJobTrigger(ctx, req, settings.GRPC...) 725 return err 726 }, opts...) 727 if err != nil { 728 return nil, err 729 } 730 return resp, nil 731} 732 733// CreateJobTrigger creates a job trigger to run DLP actions such as scanning storage for 734// sensitive information on a set schedule. 735// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. 736func (c *Client) CreateJobTrigger(ctx context.Context, req *dlppb.CreateJobTriggerRequest, opts ...gax.CallOption) (*dlppb.JobTrigger, error) { 737 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 738 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 739 opts = append(c.CallOptions.CreateJobTrigger[0:len(c.CallOptions.CreateJobTrigger):len(c.CallOptions.CreateJobTrigger)], opts...) 740 var resp *dlppb.JobTrigger 741 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 742 var err error 743 resp, err = c.client.CreateJobTrigger(ctx, req, settings.GRPC...) 744 return err 745 }, opts...) 746 if err != nil { 747 return nil, err 748 } 749 return resp, nil 750} 751 752// CreateStoredInfoType creates a pre-built stored infoType to be used for inspection. 753// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 754// learn more. 755func (c *Client) CreateStoredInfoType(ctx context.Context, req *dlppb.CreateStoredInfoTypeRequest, opts ...gax.CallOption) (*dlppb.StoredInfoType, error) { 756 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 757 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 758 opts = append(c.CallOptions.CreateStoredInfoType[0:len(c.CallOptions.CreateStoredInfoType):len(c.CallOptions.CreateStoredInfoType)], opts...) 759 var resp *dlppb.StoredInfoType 760 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 761 var err error 762 resp, err = c.client.CreateStoredInfoType(ctx, req, settings.GRPC...) 763 return err 764 }, opts...) 765 if err != nil { 766 return nil, err 767 } 768 return resp, nil 769} 770 771// UpdateStoredInfoType updates the stored infoType by creating a new version. The existing version 772// will continue to be used until the new version is ready. 773// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 774// learn more. 775func (c *Client) UpdateStoredInfoType(ctx context.Context, req *dlppb.UpdateStoredInfoTypeRequest, opts ...gax.CallOption) (*dlppb.StoredInfoType, error) { 776 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 777 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 778 opts = append(c.CallOptions.UpdateStoredInfoType[0:len(c.CallOptions.UpdateStoredInfoType):len(c.CallOptions.UpdateStoredInfoType)], opts...) 779 var resp *dlppb.StoredInfoType 780 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 781 var err error 782 resp, err = c.client.UpdateStoredInfoType(ctx, req, settings.GRPC...) 783 return err 784 }, opts...) 785 if err != nil { 786 return nil, err 787 } 788 return resp, nil 789} 790 791// GetStoredInfoType gets a stored infoType. 792// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 793// learn more. 794func (c *Client) GetStoredInfoType(ctx context.Context, req *dlppb.GetStoredInfoTypeRequest, opts ...gax.CallOption) (*dlppb.StoredInfoType, error) { 795 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 796 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 797 opts = append(c.CallOptions.GetStoredInfoType[0:len(c.CallOptions.GetStoredInfoType):len(c.CallOptions.GetStoredInfoType)], opts...) 798 var resp *dlppb.StoredInfoType 799 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 800 var err error 801 resp, err = c.client.GetStoredInfoType(ctx, req, settings.GRPC...) 802 return err 803 }, opts...) 804 if err != nil { 805 return nil, err 806 } 807 return resp, nil 808} 809 810// ListStoredInfoTypes lists stored infoTypes. 811// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 812// learn more. 813func (c *Client) ListStoredInfoTypes(ctx context.Context, req *dlppb.ListStoredInfoTypesRequest, opts ...gax.CallOption) *StoredInfoTypeIterator { 814 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) 815 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 816 opts = append(c.CallOptions.ListStoredInfoTypes[0:len(c.CallOptions.ListStoredInfoTypes):len(c.CallOptions.ListStoredInfoTypes)], opts...) 817 it := &StoredInfoTypeIterator{} 818 req = proto.Clone(req).(*dlppb.ListStoredInfoTypesRequest) 819 it.InternalFetch = func(pageSize int, pageToken string) ([]*dlppb.StoredInfoType, string, error) { 820 var resp *dlppb.ListStoredInfoTypesResponse 821 req.PageToken = pageToken 822 if pageSize > math.MaxInt32 { 823 req.PageSize = math.MaxInt32 824 } else { 825 req.PageSize = int32(pageSize) 826 } 827 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 828 var err error 829 resp, err = c.client.ListStoredInfoTypes(ctx, req, settings.GRPC...) 830 return err 831 }, opts...) 832 if err != nil { 833 return nil, "", err 834 } 835 return resp.StoredInfoTypes, resp.NextPageToken, nil 836 } 837 fetch := func(pageSize int, pageToken string) (string, error) { 838 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) 839 if err != nil { 840 return "", err 841 } 842 it.items = append(it.items, items...) 843 return nextPageToken, nil 844 } 845 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) 846 it.pageInfo.MaxSize = int(req.PageSize) 847 it.pageInfo.Token = req.PageToken 848 return it 849} 850 851// DeleteStoredInfoType deletes a stored infoType. 852// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to 853// learn more. 854func (c *Client) DeleteStoredInfoType(ctx context.Context, req *dlppb.DeleteStoredInfoTypeRequest, opts ...gax.CallOption) error { 855 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) 856 ctx = insertMetadata(ctx, c.xGoogMetadata, md) 857 opts = append(c.CallOptions.DeleteStoredInfoType[0:len(c.CallOptions.DeleteStoredInfoType):len(c.CallOptions.DeleteStoredInfoType)], opts...) 858 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { 859 var err error 860 _, err = c.client.DeleteStoredInfoType(ctx, req, settings.GRPC...) 861 return err 862 }, opts...) 863 return err 864} 865 866// DeidentifyTemplateIterator manages a stream of *dlppb.DeidentifyTemplate. 867type DeidentifyTemplateIterator struct { 868 items []*dlppb.DeidentifyTemplate 869 pageInfo *iterator.PageInfo 870 nextFunc func() error 871 872 // InternalFetch is for use by the Google Cloud Libraries only. 873 // It is not part of the stable interface of this package. 874 // 875 // InternalFetch returns results from a single call to the underlying RPC. 876 // The number of results is no greater than pageSize. 877 // If there are no more results, nextPageToken is empty and err is nil. 878 InternalFetch func(pageSize int, pageToken string) (results []*dlppb.DeidentifyTemplate, nextPageToken string, err error) 879} 880 881// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 882func (it *DeidentifyTemplateIterator) PageInfo() *iterator.PageInfo { 883 return it.pageInfo 884} 885 886// Next returns the next result. Its second return value is iterator.Done if there are no more 887// results. Once Next returns Done, all subsequent calls will return Done. 888func (it *DeidentifyTemplateIterator) Next() (*dlppb.DeidentifyTemplate, error) { 889 var item *dlppb.DeidentifyTemplate 890 if err := it.nextFunc(); err != nil { 891 return item, err 892 } 893 item = it.items[0] 894 it.items = it.items[1:] 895 return item, nil 896} 897 898func (it *DeidentifyTemplateIterator) bufLen() int { 899 return len(it.items) 900} 901 902func (it *DeidentifyTemplateIterator) takeBuf() interface{} { 903 b := it.items 904 it.items = nil 905 return b 906} 907 908// DlpJobIterator manages a stream of *dlppb.DlpJob. 909type DlpJobIterator struct { 910 items []*dlppb.DlpJob 911 pageInfo *iterator.PageInfo 912 nextFunc func() error 913 914 // InternalFetch is for use by the Google Cloud Libraries only. 915 // It is not part of the stable interface of this package. 916 // 917 // InternalFetch returns results from a single call to the underlying RPC. 918 // The number of results is no greater than pageSize. 919 // If there are no more results, nextPageToken is empty and err is nil. 920 InternalFetch func(pageSize int, pageToken string) (results []*dlppb.DlpJob, nextPageToken string, err error) 921} 922 923// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 924func (it *DlpJobIterator) PageInfo() *iterator.PageInfo { 925 return it.pageInfo 926} 927 928// Next returns the next result. Its second return value is iterator.Done if there are no more 929// results. Once Next returns Done, all subsequent calls will return Done. 930func (it *DlpJobIterator) Next() (*dlppb.DlpJob, error) { 931 var item *dlppb.DlpJob 932 if err := it.nextFunc(); err != nil { 933 return item, err 934 } 935 item = it.items[0] 936 it.items = it.items[1:] 937 return item, nil 938} 939 940func (it *DlpJobIterator) bufLen() int { 941 return len(it.items) 942} 943 944func (it *DlpJobIterator) takeBuf() interface{} { 945 b := it.items 946 it.items = nil 947 return b 948} 949 950// InspectTemplateIterator manages a stream of *dlppb.InspectTemplate. 951type InspectTemplateIterator struct { 952 items []*dlppb.InspectTemplate 953 pageInfo *iterator.PageInfo 954 nextFunc func() error 955 956 // InternalFetch is for use by the Google Cloud Libraries only. 957 // It is not part of the stable interface of this package. 958 // 959 // InternalFetch returns results from a single call to the underlying RPC. 960 // The number of results is no greater than pageSize. 961 // If there are no more results, nextPageToken is empty and err is nil. 962 InternalFetch func(pageSize int, pageToken string) (results []*dlppb.InspectTemplate, nextPageToken string, err error) 963} 964 965// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 966func (it *InspectTemplateIterator) PageInfo() *iterator.PageInfo { 967 return it.pageInfo 968} 969 970// Next returns the next result. Its second return value is iterator.Done if there are no more 971// results. Once Next returns Done, all subsequent calls will return Done. 972func (it *InspectTemplateIterator) Next() (*dlppb.InspectTemplate, error) { 973 var item *dlppb.InspectTemplate 974 if err := it.nextFunc(); err != nil { 975 return item, err 976 } 977 item = it.items[0] 978 it.items = it.items[1:] 979 return item, nil 980} 981 982func (it *InspectTemplateIterator) bufLen() int { 983 return len(it.items) 984} 985 986func (it *InspectTemplateIterator) takeBuf() interface{} { 987 b := it.items 988 it.items = nil 989 return b 990} 991 992// JobTriggerIterator manages a stream of *dlppb.JobTrigger. 993type JobTriggerIterator struct { 994 items []*dlppb.JobTrigger 995 pageInfo *iterator.PageInfo 996 nextFunc func() error 997 998 // InternalFetch is for use by the Google Cloud Libraries only. 999 // It is not part of the stable interface of this package. 1000 // 1001 // InternalFetch returns results from a single call to the underlying RPC. 1002 // The number of results is no greater than pageSize. 1003 // If there are no more results, nextPageToken is empty and err is nil. 1004 InternalFetch func(pageSize int, pageToken string) (results []*dlppb.JobTrigger, nextPageToken string, err error) 1005} 1006 1007// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 1008func (it *JobTriggerIterator) PageInfo() *iterator.PageInfo { 1009 return it.pageInfo 1010} 1011 1012// Next returns the next result. Its second return value is iterator.Done if there are no more 1013// results. Once Next returns Done, all subsequent calls will return Done. 1014func (it *JobTriggerIterator) Next() (*dlppb.JobTrigger, error) { 1015 var item *dlppb.JobTrigger 1016 if err := it.nextFunc(); err != nil { 1017 return item, err 1018 } 1019 item = it.items[0] 1020 it.items = it.items[1:] 1021 return item, nil 1022} 1023 1024func (it *JobTriggerIterator) bufLen() int { 1025 return len(it.items) 1026} 1027 1028func (it *JobTriggerIterator) takeBuf() interface{} { 1029 b := it.items 1030 it.items = nil 1031 return b 1032} 1033 1034// StoredInfoTypeIterator manages a stream of *dlppb.StoredInfoType. 1035type StoredInfoTypeIterator struct { 1036 items []*dlppb.StoredInfoType 1037 pageInfo *iterator.PageInfo 1038 nextFunc func() error 1039 1040 // InternalFetch is for use by the Google Cloud Libraries only. 1041 // It is not part of the stable interface of this package. 1042 // 1043 // InternalFetch returns results from a single call to the underlying RPC. 1044 // The number of results is no greater than pageSize. 1045 // If there are no more results, nextPageToken is empty and err is nil. 1046 InternalFetch func(pageSize int, pageToken string) (results []*dlppb.StoredInfoType, nextPageToken string, err error) 1047} 1048 1049// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. 1050func (it *StoredInfoTypeIterator) PageInfo() *iterator.PageInfo { 1051 return it.pageInfo 1052} 1053 1054// Next returns the next result. Its second return value is iterator.Done if there are no more 1055// results. Once Next returns Done, all subsequent calls will return Done. 1056func (it *StoredInfoTypeIterator) Next() (*dlppb.StoredInfoType, error) { 1057 var item *dlppb.StoredInfoType 1058 if err := it.nextFunc(); err != nil { 1059 return item, err 1060 } 1061 item = it.items[0] 1062 it.items = it.items[1:] 1063 return item, nil 1064} 1065 1066func (it *StoredInfoTypeIterator) bufLen() int { 1067 return len(it.items) 1068} 1069 1070func (it *StoredInfoTypeIterator) takeBuf() interface{} { 1071 b := it.items 1072 it.items = nil 1073 return b 1074} 1075