diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageOptions.java b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageOptions.java index 88faf51da57c..8973e6da7abd 100644 --- a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageOptions.java +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageOptions.java @@ -282,7 +282,8 @@ public interface FileSetOrBuilder extends /** *
      * The Cloud Storage url of the file(s) to scan, in the format
-     * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed.
+     * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. Exactly
+     * one of `url` or `regex_file_set` must be set.
      * 
* * string url = 1; @@ -291,13 +292,42 @@ public interface FileSetOrBuilder extends /** *
      * The Cloud Storage url of the file(s) to scan, in the format
-     * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed.
+     * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. Exactly
+     * one of `url` or `regex_file_set` must be set.
      * 
* * string url = 1; */ com.google.protobuf.ByteString getUrlBytes(); + + /** + *
+     * The regex-filtered set of files to scan. Exactly one of `url` or
+     * `regex_file_set` must be set.
+     * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + boolean hasRegexFileSet(); + /** + *
+     * The regex-filtered set of files to scan. Exactly one of `url` or
+     * `regex_file_set` must be set.
+     * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + com.google.privacy.dlp.v2.CloudStorageRegexFileSet getRegexFileSet(); + /** + *
+     * The regex-filtered set of files to scan. Exactly one of `url` or
+     * `regex_file_set` must be set.
+     * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + com.google.privacy.dlp.v2.CloudStorageRegexFileSetOrBuilder getRegexFileSetOrBuilder(); } /** *
@@ -349,6 +379,19 @@ private FileSet(
               url_ = s;
               break;
             }
+            case 18: {
+              com.google.privacy.dlp.v2.CloudStorageRegexFileSet.Builder subBuilder = null;
+              if (regexFileSet_ != null) {
+                subBuilder = regexFileSet_.toBuilder();
+              }
+              regexFileSet_ = input.readMessage(com.google.privacy.dlp.v2.CloudStorageRegexFileSet.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(regexFileSet_);
+                regexFileSet_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
             default: {
               if (!parseUnknownFieldProto3(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -386,7 +429,8 @@ private FileSet(
     /**
      * 
      * The Cloud Storage url of the file(s) to scan, in the format
-     * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed.
+     * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. Exactly
+     * one of `url` or `regex_file_set` must be set.
      * 
* * string url = 1; @@ -406,7 +450,8 @@ public java.lang.String getUrl() { /** *
      * The Cloud Storage url of the file(s) to scan, in the format
-     * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed.
+     * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. Exactly
+     * one of `url` or `regex_file_set` must be set.
      * 
* * string url = 1; @@ -425,6 +470,42 @@ public java.lang.String getUrl() { } } + public static final int REGEX_FILE_SET_FIELD_NUMBER = 2; + private com.google.privacy.dlp.v2.CloudStorageRegexFileSet regexFileSet_; + /** + *
+     * The regex-filtered set of files to scan. Exactly one of `url` or
+     * `regex_file_set` must be set.
+     * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public boolean hasRegexFileSet() { + return regexFileSet_ != null; + } + /** + *
+     * The regex-filtered set of files to scan. Exactly one of `url` or
+     * `regex_file_set` must be set.
+     * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public com.google.privacy.dlp.v2.CloudStorageRegexFileSet getRegexFileSet() { + return regexFileSet_ == null ? com.google.privacy.dlp.v2.CloudStorageRegexFileSet.getDefaultInstance() : regexFileSet_; + } + /** + *
+     * The regex-filtered set of files to scan. Exactly one of `url` or
+     * `regex_file_set` must be set.
+     * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public com.google.privacy.dlp.v2.CloudStorageRegexFileSetOrBuilder getRegexFileSetOrBuilder() { + return getRegexFileSet(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -442,6 +523,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getUrlBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, url_); } + if (regexFileSet_ != null) { + output.writeMessage(2, getRegexFileSet()); + } unknownFields.writeTo(output); } @@ -454,6 +538,10 @@ public int getSerializedSize() { if (!getUrlBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, url_); } + if (regexFileSet_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getRegexFileSet()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -472,6 +560,11 @@ public boolean equals(final java.lang.Object obj) { boolean result = true; result = result && getUrl() .equals(other.getUrl()); + result = result && (hasRegexFileSet() == other.hasRegexFileSet()); + if (hasRegexFileSet()) { + result = result && getRegexFileSet() + .equals(other.getRegexFileSet()); + } result = result && unknownFields.equals(other.unknownFields); return result; } @@ -485,6 +578,10 @@ public int hashCode() { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + URL_FIELD_NUMBER; hash = (53 * hash) + getUrl().hashCode(); + if (hasRegexFileSet()) { + hash = (37 * hash) + REGEX_FILE_SET_FIELD_NUMBER; + hash = (53 * hash) + getRegexFileSet().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -624,6 +721,12 @@ public Builder clear() { super.clear(); url_ = ""; + if (regexFileSetBuilder_ == null) { + regexFileSet_ = null; + } else { + regexFileSet_ = null; + regexFileSetBuilder_ = null; + } return this; } @@ -651,6 +754,11 @@ public com.google.privacy.dlp.v2.CloudStorageOptions.FileSet build() { public com.google.privacy.dlp.v2.CloudStorageOptions.FileSet buildPartial() { com.google.privacy.dlp.v2.CloudStorageOptions.FileSet result = new com.google.privacy.dlp.v2.CloudStorageOptions.FileSet(this); result.url_ = url_; + if (regexFileSetBuilder_ == null) { + result.regexFileSet_ = regexFileSet_; + } else { + result.regexFileSet_ = regexFileSetBuilder_.build(); + } onBuilt(); return result; } @@ -703,6 +811,9 @@ public Builder mergeFrom(com.google.privacy.dlp.v2.CloudStorageOptions.FileSet o url_ = other.url_; onChanged(); } + if (other.hasRegexFileSet()) { + mergeRegexFileSet(other.getRegexFileSet()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -736,7 +847,8 @@ public Builder mergeFrom( /** *
        * The Cloud Storage url of the file(s) to scan, in the format
-       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed.
+       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. Exactly
+       * one of `url` or `regex_file_set` must be set.
        * 
* * string url = 1; @@ -756,7 +868,8 @@ public java.lang.String getUrl() { /** *
        * The Cloud Storage url of the file(s) to scan, in the format
-       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed.
+       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. Exactly
+       * one of `url` or `regex_file_set` must be set.
        * 
* * string url = 1; @@ -777,7 +890,8 @@ public java.lang.String getUrl() { /** *
        * The Cloud Storage url of the file(s) to scan, in the format
-       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed.
+       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. Exactly
+       * one of `url` or `regex_file_set` must be set.
        * 
* * string url = 1; @@ -795,7 +909,8 @@ public Builder setUrl( /** *
        * The Cloud Storage url of the file(s) to scan, in the format
-       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed.
+       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. Exactly
+       * one of `url` or `regex_file_set` must be set.
        * 
* * string url = 1; @@ -809,7 +924,8 @@ public Builder clearUrl() { /** *
        * The Cloud Storage url of the file(s) to scan, in the format
-       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed.
+       * `gs://<bucket>/<path>`. Trailing wildcard in the path is allowed. Exactly
+       * one of `url` or `regex_file_set` must be set.
        * 
* * string url = 1; @@ -825,6 +941,168 @@ public Builder setUrlBytes( onChanged(); return this; } + + private com.google.privacy.dlp.v2.CloudStorageRegexFileSet regexFileSet_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.privacy.dlp.v2.CloudStorageRegexFileSet, com.google.privacy.dlp.v2.CloudStorageRegexFileSet.Builder, com.google.privacy.dlp.v2.CloudStorageRegexFileSetOrBuilder> regexFileSetBuilder_; + /** + *
+       * The regex-filtered set of files to scan. Exactly one of `url` or
+       * `regex_file_set` must be set.
+       * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public boolean hasRegexFileSet() { + return regexFileSetBuilder_ != null || regexFileSet_ != null; + } + /** + *
+       * The regex-filtered set of files to scan. Exactly one of `url` or
+       * `regex_file_set` must be set.
+       * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public com.google.privacy.dlp.v2.CloudStorageRegexFileSet getRegexFileSet() { + if (regexFileSetBuilder_ == null) { + return regexFileSet_ == null ? com.google.privacy.dlp.v2.CloudStorageRegexFileSet.getDefaultInstance() : regexFileSet_; + } else { + return regexFileSetBuilder_.getMessage(); + } + } + /** + *
+       * The regex-filtered set of files to scan. Exactly one of `url` or
+       * `regex_file_set` must be set.
+       * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public Builder setRegexFileSet(com.google.privacy.dlp.v2.CloudStorageRegexFileSet value) { + if (regexFileSetBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + regexFileSet_ = value; + onChanged(); + } else { + regexFileSetBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * The regex-filtered set of files to scan. Exactly one of `url` or
+       * `regex_file_set` must be set.
+       * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public Builder setRegexFileSet( + com.google.privacy.dlp.v2.CloudStorageRegexFileSet.Builder builderForValue) { + if (regexFileSetBuilder_ == null) { + regexFileSet_ = builderForValue.build(); + onChanged(); + } else { + regexFileSetBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * The regex-filtered set of files to scan. Exactly one of `url` or
+       * `regex_file_set` must be set.
+       * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public Builder mergeRegexFileSet(com.google.privacy.dlp.v2.CloudStorageRegexFileSet value) { + if (regexFileSetBuilder_ == null) { + if (regexFileSet_ != null) { + regexFileSet_ = + com.google.privacy.dlp.v2.CloudStorageRegexFileSet.newBuilder(regexFileSet_).mergeFrom(value).buildPartial(); + } else { + regexFileSet_ = value; + } + onChanged(); + } else { + regexFileSetBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * The regex-filtered set of files to scan. Exactly one of `url` or
+       * `regex_file_set` must be set.
+       * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public Builder clearRegexFileSet() { + if (regexFileSetBuilder_ == null) { + regexFileSet_ = null; + onChanged(); + } else { + regexFileSet_ = null; + regexFileSetBuilder_ = null; + } + + return this; + } + /** + *
+       * The regex-filtered set of files to scan. Exactly one of `url` or
+       * `regex_file_set` must be set.
+       * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public com.google.privacy.dlp.v2.CloudStorageRegexFileSet.Builder getRegexFileSetBuilder() { + + onChanged(); + return getRegexFileSetFieldBuilder().getBuilder(); + } + /** + *
+       * The regex-filtered set of files to scan. Exactly one of `url` or
+       * `regex_file_set` must be set.
+       * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + public com.google.privacy.dlp.v2.CloudStorageRegexFileSetOrBuilder getRegexFileSetOrBuilder() { + if (regexFileSetBuilder_ != null) { + return regexFileSetBuilder_.getMessageOrBuilder(); + } else { + return regexFileSet_ == null ? + com.google.privacy.dlp.v2.CloudStorageRegexFileSet.getDefaultInstance() : regexFileSet_; + } + } + /** + *
+       * The regex-filtered set of files to scan. Exactly one of `url` or
+       * `regex_file_set` must be set.
+       * 
+ * + * .google.privacy.dlp.v2.CloudStorageRegexFileSet regex_file_set = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.privacy.dlp.v2.CloudStorageRegexFileSet, com.google.privacy.dlp.v2.CloudStorageRegexFileSet.Builder, com.google.privacy.dlp.v2.CloudStorageRegexFileSetOrBuilder> + getRegexFileSetFieldBuilder() { + if (regexFileSetBuilder_ == null) { + regexFileSetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.privacy.dlp.v2.CloudStorageRegexFileSet, com.google.privacy.dlp.v2.CloudStorageRegexFileSet.Builder, com.google.privacy.dlp.v2.CloudStorageRegexFileSetOrBuilder>( + getRegexFileSet(), + getParentForChildren(), + isClean()); + regexFileSet_ = null; + } + return regexFileSetBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageRegexFileSet.java b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageRegexFileSet.java new file mode 100644 index 000000000000..1b04af68b225 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageRegexFileSet.java @@ -0,0 +1,1232 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/privacy/dlp/v2/storage.proto + +package com.google.privacy.dlp.v2; + +/** + *
+ * Message representing a set of files in a Cloud Storage bucket. Regular
+ * expressions are used to allow fine-grained control over which files in the
+ * bucket to include.
+ * Included files are those that match at least one item in `include_regex` and
+ * do not match any items in `exclude_regex`. Note that a file that matches
+ * items from both lists will _not_ be included. For a match to occur, the
+ * entire file path (i.e., everything in the url after the bucket name) must
+ * match the regular expression.
+ * For example, given the input `{bucket_name: "mybucket", include_regex:
+ * ["directory1/.*"], exclude_regex:
+ * ["directory1/excluded.*"]}`:
+ * * `gs://mybucket/directory1/myfile` will be included
+ * * `gs://mybucket/directory1/directory2/myfile` will be included (`.*` matches
+ * across `/`)
+ * * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the
+ * full path doesn't match any items in `include_regex`)
+ * * `gs://mybucket/directory1/excludedfile` will _not_ be included (the path
+ * matches an item in `exclude_regex`)
+ * If `include_regex` is left empty, it will match all files by default
+ * (this is equivalent to setting `include_regex: [".*"]`).
+ * Some other common use cases:
+ * * `{bucket_name: "mybucket", exclude_regex: [".*\.pdf"]}` will include all
+ * files in `mybucket` except for .pdf files
+ * * `{bucket_name: "mybucket", include_regex: ["directory/[^/]+"]}` will
+ * include all files directly under `gs://mybucket/directory/`, without matching
+ * across `/`
+ * 
+ * + * Protobuf type {@code google.privacy.dlp.v2.CloudStorageRegexFileSet} + */ +public final class CloudStorageRegexFileSet extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.privacy.dlp.v2.CloudStorageRegexFileSet) + CloudStorageRegexFileSetOrBuilder { +private static final long serialVersionUID = 0L; + // Use CloudStorageRegexFileSet.newBuilder() to construct. + private CloudStorageRegexFileSet(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private CloudStorageRegexFileSet() { + bucketName_ = ""; + includeRegex_ = com.google.protobuf.LazyStringArrayList.EMPTY; + excludeRegex_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private CloudStorageRegexFileSet( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + bucketName_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + includeRegex_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000002; + } + includeRegex_.add(s); + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + excludeRegex_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000004; + } + excludeRegex_.add(s); + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + includeRegex_ = includeRegex_.getUnmodifiableView(); + } + if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + excludeRegex_ = excludeRegex_.getUnmodifiableView(); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.privacy.dlp.v2.DlpStorage.internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.privacy.dlp.v2.DlpStorage.internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.privacy.dlp.v2.CloudStorageRegexFileSet.class, com.google.privacy.dlp.v2.CloudStorageRegexFileSet.Builder.class); + } + + private int bitField0_; + public static final int BUCKET_NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object bucketName_; + /** + *
+   * The name of a Cloud Storage bucket. Required.
+   * 
+ * + * string bucket_name = 1; + */ + public java.lang.String getBucketName() { + java.lang.Object ref = bucketName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bucketName_ = s; + return s; + } + } + /** + *
+   * The name of a Cloud Storage bucket. Required.
+   * 
+ * + * string bucket_name = 1; + */ + public com.google.protobuf.ByteString + getBucketNameBytes() { + java.lang.Object ref = bucketName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + bucketName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int INCLUDE_REGEX_FIELD_NUMBER = 2; + private com.google.protobuf.LazyStringList includeRegex_; + /** + *
+   * A list of regular expressions matching file paths to include. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * included in the set of files, except for those that also match an item in
+   * `exclude_regex`. Leaving this field empty will match all files by default
+   * (this is equivalent to including `.*` in the list).
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string include_regex = 2; + */ + public com.google.protobuf.ProtocolStringList + getIncludeRegexList() { + return includeRegex_; + } + /** + *
+   * A list of regular expressions matching file paths to include. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * included in the set of files, except for those that also match an item in
+   * `exclude_regex`. Leaving this field empty will match all files by default
+   * (this is equivalent to including `.*` in the list).
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string include_regex = 2; + */ + public int getIncludeRegexCount() { + return includeRegex_.size(); + } + /** + *
+   * A list of regular expressions matching file paths to include. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * included in the set of files, except for those that also match an item in
+   * `exclude_regex`. Leaving this field empty will match all files by default
+   * (this is equivalent to including `.*` in the list).
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string include_regex = 2; + */ + public java.lang.String getIncludeRegex(int index) { + return includeRegex_.get(index); + } + /** + *
+   * A list of regular expressions matching file paths to include. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * included in the set of files, except for those that also match an item in
+   * `exclude_regex`. Leaving this field empty will match all files by default
+   * (this is equivalent to including `.*` in the list).
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string include_regex = 2; + */ + public com.google.protobuf.ByteString + getIncludeRegexBytes(int index) { + return includeRegex_.getByteString(index); + } + + public static final int EXCLUDE_REGEX_FIELD_NUMBER = 3; + private com.google.protobuf.LazyStringList excludeRegex_; + /** + *
+   * A list of regular expressions matching file paths to exclude. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * excluded from the scan.
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string exclude_regex = 3; + */ + public com.google.protobuf.ProtocolStringList + getExcludeRegexList() { + return excludeRegex_; + } + /** + *
+   * A list of regular expressions matching file paths to exclude. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * excluded from the scan.
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string exclude_regex = 3; + */ + public int getExcludeRegexCount() { + return excludeRegex_.size(); + } + /** + *
+   * A list of regular expressions matching file paths to exclude. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * excluded from the scan.
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string exclude_regex = 3; + */ + public java.lang.String getExcludeRegex(int index) { + return excludeRegex_.get(index); + } + /** + *
+   * A list of regular expressions matching file paths to exclude. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * excluded from the scan.
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string exclude_regex = 3; + */ + public com.google.protobuf.ByteString + getExcludeRegexBytes(int index) { + return excludeRegex_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getBucketNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, bucketName_); + } + for (int i = 0; i < includeRegex_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, includeRegex_.getRaw(i)); + } + for (int i = 0; i < excludeRegex_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, excludeRegex_.getRaw(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getBucketNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, bucketName_); + } + { + int dataSize = 0; + for (int i = 0; i < includeRegex_.size(); i++) { + dataSize += computeStringSizeNoTag(includeRegex_.getRaw(i)); + } + size += dataSize; + size += 1 * getIncludeRegexList().size(); + } + { + int dataSize = 0; + for (int i = 0; i < excludeRegex_.size(); i++) { + dataSize += computeStringSizeNoTag(excludeRegex_.getRaw(i)); + } + size += dataSize; + size += 1 * getExcludeRegexList().size(); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.privacy.dlp.v2.CloudStorageRegexFileSet)) { + return super.equals(obj); + } + com.google.privacy.dlp.v2.CloudStorageRegexFileSet other = (com.google.privacy.dlp.v2.CloudStorageRegexFileSet) obj; + + boolean result = true; + result = result && getBucketName() + .equals(other.getBucketName()); + result = result && getIncludeRegexList() + .equals(other.getIncludeRegexList()); + result = result && getExcludeRegexList() + .equals(other.getExcludeRegexList()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + BUCKET_NAME_FIELD_NUMBER; + hash = (53 * hash) + getBucketName().hashCode(); + if (getIncludeRegexCount() > 0) { + hash = (37 * hash) + INCLUDE_REGEX_FIELD_NUMBER; + hash = (53 * hash) + getIncludeRegexList().hashCode(); + } + if (getExcludeRegexCount() > 0) { + hash = (37 * hash) + EXCLUDE_REGEX_FIELD_NUMBER; + hash = (53 * hash) + getExcludeRegexList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.privacy.dlp.v2.CloudStorageRegexFileSet prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Message representing a set of files in a Cloud Storage bucket. Regular
+   * expressions are used to allow fine-grained control over which files in the
+   * bucket to include.
+   * Included files are those that match at least one item in `include_regex` and
+   * do not match any items in `exclude_regex`. Note that a file that matches
+   * items from both lists will _not_ be included. For a match to occur, the
+   * entire file path (i.e., everything in the url after the bucket name) must
+   * match the regular expression.
+   * For example, given the input `{bucket_name: "mybucket", include_regex:
+   * ["directory1/.*"], exclude_regex:
+   * ["directory1/excluded.*"]}`:
+   * * `gs://mybucket/directory1/myfile` will be included
+   * * `gs://mybucket/directory1/directory2/myfile` will be included (`.*` matches
+   * across `/`)
+   * * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the
+   * full path doesn't match any items in `include_regex`)
+   * * `gs://mybucket/directory1/excludedfile` will _not_ be included (the path
+   * matches an item in `exclude_regex`)
+   * If `include_regex` is left empty, it will match all files by default
+   * (this is equivalent to setting `include_regex: [".*"]`).
+   * Some other common use cases:
+   * * `{bucket_name: "mybucket", exclude_regex: [".*\.pdf"]}` will include all
+   * files in `mybucket` except for .pdf files
+   * * `{bucket_name: "mybucket", include_regex: ["directory/[^/]+"]}` will
+   * include all files directly under `gs://mybucket/directory/`, without matching
+   * across `/`
+   * 
+ * + * Protobuf type {@code google.privacy.dlp.v2.CloudStorageRegexFileSet} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.privacy.dlp.v2.CloudStorageRegexFileSet) + com.google.privacy.dlp.v2.CloudStorageRegexFileSetOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.privacy.dlp.v2.DlpStorage.internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.privacy.dlp.v2.DlpStorage.internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.privacy.dlp.v2.CloudStorageRegexFileSet.class, com.google.privacy.dlp.v2.CloudStorageRegexFileSet.Builder.class); + } + + // Construct using com.google.privacy.dlp.v2.CloudStorageRegexFileSet.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bucketName_ = ""; + + includeRegex_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + excludeRegex_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.privacy.dlp.v2.DlpStorage.internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_descriptor; + } + + @java.lang.Override + public com.google.privacy.dlp.v2.CloudStorageRegexFileSet getDefaultInstanceForType() { + return com.google.privacy.dlp.v2.CloudStorageRegexFileSet.getDefaultInstance(); + } + + @java.lang.Override + public com.google.privacy.dlp.v2.CloudStorageRegexFileSet build() { + com.google.privacy.dlp.v2.CloudStorageRegexFileSet result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.privacy.dlp.v2.CloudStorageRegexFileSet buildPartial() { + com.google.privacy.dlp.v2.CloudStorageRegexFileSet result = new com.google.privacy.dlp.v2.CloudStorageRegexFileSet(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + result.bucketName_ = bucketName_; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + includeRegex_ = includeRegex_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.includeRegex_ = includeRegex_; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + excludeRegex_ = excludeRegex_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.excludeRegex_ = excludeRegex_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.privacy.dlp.v2.CloudStorageRegexFileSet) { + return mergeFrom((com.google.privacy.dlp.v2.CloudStorageRegexFileSet)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.privacy.dlp.v2.CloudStorageRegexFileSet other) { + if (other == com.google.privacy.dlp.v2.CloudStorageRegexFileSet.getDefaultInstance()) return this; + if (!other.getBucketName().isEmpty()) { + bucketName_ = other.bucketName_; + onChanged(); + } + if (!other.includeRegex_.isEmpty()) { + if (includeRegex_.isEmpty()) { + includeRegex_ = other.includeRegex_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureIncludeRegexIsMutable(); + includeRegex_.addAll(other.includeRegex_); + } + onChanged(); + } + if (!other.excludeRegex_.isEmpty()) { + if (excludeRegex_.isEmpty()) { + excludeRegex_ = other.excludeRegex_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureExcludeRegexIsMutable(); + excludeRegex_.addAll(other.excludeRegex_); + } + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.privacy.dlp.v2.CloudStorageRegexFileSet parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.privacy.dlp.v2.CloudStorageRegexFileSet) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.lang.Object bucketName_ = ""; + /** + *
+     * The name of a Cloud Storage bucket. Required.
+     * 
+ * + * string bucket_name = 1; + */ + public java.lang.String getBucketName() { + java.lang.Object ref = bucketName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bucketName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The name of a Cloud Storage bucket. Required.
+     * 
+ * + * string bucket_name = 1; + */ + public com.google.protobuf.ByteString + getBucketNameBytes() { + java.lang.Object ref = bucketName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + bucketName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The name of a Cloud Storage bucket. Required.
+     * 
+ * + * string bucket_name = 1; + */ + public Builder setBucketName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + bucketName_ = value; + onChanged(); + return this; + } + /** + *
+     * The name of a Cloud Storage bucket. Required.
+     * 
+ * + * string bucket_name = 1; + */ + public Builder clearBucketName() { + + bucketName_ = getDefaultInstance().getBucketName(); + onChanged(); + return this; + } + /** + *
+     * The name of a Cloud Storage bucket. Required.
+     * 
+ * + * string bucket_name = 1; + */ + public Builder setBucketNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + bucketName_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList includeRegex_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureIncludeRegexIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + includeRegex_ = new com.google.protobuf.LazyStringArrayList(includeRegex_); + bitField0_ |= 0x00000002; + } + } + /** + *
+     * A list of regular expressions matching file paths to include. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * included in the set of files, except for those that also match an item in
+     * `exclude_regex`. Leaving this field empty will match all files by default
+     * (this is equivalent to including `.*` in the list).
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string include_regex = 2; + */ + public com.google.protobuf.ProtocolStringList + getIncludeRegexList() { + return includeRegex_.getUnmodifiableView(); + } + /** + *
+     * A list of regular expressions matching file paths to include. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * included in the set of files, except for those that also match an item in
+     * `exclude_regex`. Leaving this field empty will match all files by default
+     * (this is equivalent to including `.*` in the list).
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string include_regex = 2; + */ + public int getIncludeRegexCount() { + return includeRegex_.size(); + } + /** + *
+     * A list of regular expressions matching file paths to include. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * included in the set of files, except for those that also match an item in
+     * `exclude_regex`. Leaving this field empty will match all files by default
+     * (this is equivalent to including `.*` in the list).
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string include_regex = 2; + */ + public java.lang.String getIncludeRegex(int index) { + return includeRegex_.get(index); + } + /** + *
+     * A list of regular expressions matching file paths to include. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * included in the set of files, except for those that also match an item in
+     * `exclude_regex`. Leaving this field empty will match all files by default
+     * (this is equivalent to including `.*` in the list).
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string include_regex = 2; + */ + public com.google.protobuf.ByteString + getIncludeRegexBytes(int index) { + return includeRegex_.getByteString(index); + } + /** + *
+     * A list of regular expressions matching file paths to include. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * included in the set of files, except for those that also match an item in
+     * `exclude_regex`. Leaving this field empty will match all files by default
+     * (this is equivalent to including `.*` in the list).
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string include_regex = 2; + */ + public Builder setIncludeRegex( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureIncludeRegexIsMutable(); + includeRegex_.set(index, value); + onChanged(); + return this; + } + /** + *
+     * A list of regular expressions matching file paths to include. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * included in the set of files, except for those that also match an item in
+     * `exclude_regex`. Leaving this field empty will match all files by default
+     * (this is equivalent to including `.*` in the list).
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string include_regex = 2; + */ + public Builder addIncludeRegex( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureIncludeRegexIsMutable(); + includeRegex_.add(value); + onChanged(); + return this; + } + /** + *
+     * A list of regular expressions matching file paths to include. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * included in the set of files, except for those that also match an item in
+     * `exclude_regex`. Leaving this field empty will match all files by default
+     * (this is equivalent to including `.*` in the list).
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string include_regex = 2; + */ + public Builder addAllIncludeRegex( + java.lang.Iterable values) { + ensureIncludeRegexIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, includeRegex_); + onChanged(); + return this; + } + /** + *
+     * A list of regular expressions matching file paths to include. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * included in the set of files, except for those that also match an item in
+     * `exclude_regex`. Leaving this field empty will match all files by default
+     * (this is equivalent to including `.*` in the list).
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string include_regex = 2; + */ + public Builder clearIncludeRegex() { + includeRegex_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+     * A list of regular expressions matching file paths to include. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * included in the set of files, except for those that also match an item in
+     * `exclude_regex`. Leaving this field empty will match all files by default
+     * (this is equivalent to including `.*` in the list).
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string include_regex = 2; + */ + public Builder addIncludeRegexBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureIncludeRegexIsMutable(); + includeRegex_.add(value); + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList excludeRegex_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureExcludeRegexIsMutable() { + if (!((bitField0_ & 0x00000004) == 0x00000004)) { + excludeRegex_ = new com.google.protobuf.LazyStringArrayList(excludeRegex_); + bitField0_ |= 0x00000004; + } + } + /** + *
+     * A list of regular expressions matching file paths to exclude. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * excluded from the scan.
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string exclude_regex = 3; + */ + public com.google.protobuf.ProtocolStringList + getExcludeRegexList() { + return excludeRegex_.getUnmodifiableView(); + } + /** + *
+     * A list of regular expressions matching file paths to exclude. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * excluded from the scan.
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string exclude_regex = 3; + */ + public int getExcludeRegexCount() { + return excludeRegex_.size(); + } + /** + *
+     * A list of regular expressions matching file paths to exclude. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * excluded from the scan.
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string exclude_regex = 3; + */ + public java.lang.String getExcludeRegex(int index) { + return excludeRegex_.get(index); + } + /** + *
+     * A list of regular expressions matching file paths to exclude. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * excluded from the scan.
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string exclude_regex = 3; + */ + public com.google.protobuf.ByteString + getExcludeRegexBytes(int index) { + return excludeRegex_.getByteString(index); + } + /** + *
+     * A list of regular expressions matching file paths to exclude. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * excluded from the scan.
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string exclude_regex = 3; + */ + public Builder setExcludeRegex( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureExcludeRegexIsMutable(); + excludeRegex_.set(index, value); + onChanged(); + return this; + } + /** + *
+     * A list of regular expressions matching file paths to exclude. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * excluded from the scan.
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string exclude_regex = 3; + */ + public Builder addExcludeRegex( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureExcludeRegexIsMutable(); + excludeRegex_.add(value); + onChanged(); + return this; + } + /** + *
+     * A list of regular expressions matching file paths to exclude. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * excluded from the scan.
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string exclude_regex = 3; + */ + public Builder addAllExcludeRegex( + java.lang.Iterable values) { + ensureExcludeRegexIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, excludeRegex_); + onChanged(); + return this; + } + /** + *
+     * A list of regular expressions matching file paths to exclude. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * excluded from the scan.
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string exclude_regex = 3; + */ + public Builder clearExcludeRegex() { + excludeRegex_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+     * A list of regular expressions matching file paths to exclude. All files in
+     * the bucket that match at least one of these regular expressions will be
+     * excluded from the scan.
+     * Regular expressions use RE2
+     * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+     * under the google/re2 repository on GitHub.
+     * 
+ * + * repeated string exclude_regex = 3; + */ + public Builder addExcludeRegexBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureExcludeRegexIsMutable(); + excludeRegex_.add(value); + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.privacy.dlp.v2.CloudStorageRegexFileSet) + } + + // @@protoc_insertion_point(class_scope:google.privacy.dlp.v2.CloudStorageRegexFileSet) + private static final com.google.privacy.dlp.v2.CloudStorageRegexFileSet DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.privacy.dlp.v2.CloudStorageRegexFileSet(); + } + + public static com.google.privacy.dlp.v2.CloudStorageRegexFileSet getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CloudStorageRegexFileSet parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new CloudStorageRegexFileSet(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.privacy.dlp.v2.CloudStorageRegexFileSet getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageRegexFileSetOrBuilder.java b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageRegexFileSetOrBuilder.java new file mode 100644 index 000000000000..96a63cfbea4b --- /dev/null +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/CloudStorageRegexFileSetOrBuilder.java @@ -0,0 +1,145 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/privacy/dlp/v2/storage.proto + +package com.google.privacy.dlp.v2; + +public interface CloudStorageRegexFileSetOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.privacy.dlp.v2.CloudStorageRegexFileSet) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * The name of a Cloud Storage bucket. Required.
+   * 
+ * + * string bucket_name = 1; + */ + java.lang.String getBucketName(); + /** + *
+   * The name of a Cloud Storage bucket. Required.
+   * 
+ * + * string bucket_name = 1; + */ + com.google.protobuf.ByteString + getBucketNameBytes(); + + /** + *
+   * A list of regular expressions matching file paths to include. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * included in the set of files, except for those that also match an item in
+   * `exclude_regex`. Leaving this field empty will match all files by default
+   * (this is equivalent to including `.*` in the list).
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string include_regex = 2; + */ + java.util.List + getIncludeRegexList(); + /** + *
+   * A list of regular expressions matching file paths to include. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * included in the set of files, except for those that also match an item in
+   * `exclude_regex`. Leaving this field empty will match all files by default
+   * (this is equivalent to including `.*` in the list).
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string include_regex = 2; + */ + int getIncludeRegexCount(); + /** + *
+   * A list of regular expressions matching file paths to include. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * included in the set of files, except for those that also match an item in
+   * `exclude_regex`. Leaving this field empty will match all files by default
+   * (this is equivalent to including `.*` in the list).
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string include_regex = 2; + */ + java.lang.String getIncludeRegex(int index); + /** + *
+   * A list of regular expressions matching file paths to include. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * included in the set of files, except for those that also match an item in
+   * `exclude_regex`. Leaving this field empty will match all files by default
+   * (this is equivalent to including `.*` in the list).
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string include_regex = 2; + */ + com.google.protobuf.ByteString + getIncludeRegexBytes(int index); + + /** + *
+   * A list of regular expressions matching file paths to exclude. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * excluded from the scan.
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string exclude_regex = 3; + */ + java.util.List + getExcludeRegexList(); + /** + *
+   * A list of regular expressions matching file paths to exclude. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * excluded from the scan.
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string exclude_regex = 3; + */ + int getExcludeRegexCount(); + /** + *
+   * A list of regular expressions matching file paths to exclude. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * excluded from the scan.
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string exclude_regex = 3; + */ + java.lang.String getExcludeRegex(int index); + /** + *
+   * A list of regular expressions matching file paths to exclude. All files in
+   * the bucket that match at least one of these regular expressions will be
+   * excluded from the scan.
+   * Regular expressions use RE2
+   * [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
+   * under the google/re2 repository on GitHub.
+   * 
+ * + * repeated string exclude_regex = 3; + */ + com.google.protobuf.ByteString + getExcludeRegexBytes(int index); +} diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ContentLocation.java b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ContentLocation.java index 153aa189d410..07514588833e 100644 --- a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ContentLocation.java +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ContentLocation.java @@ -192,9 +192,13 @@ public int getNumber() { /** *
    * Name of the container where the finding is located.
-   * The top level name is the source file name or table name. Nested names
-   * could be absent if the embedded object has no string identifier
-   * (for an example an image contained within a document).
+   * The top level name is the source file name or table name. Names of some
+   * common storage containers are formatted as follows:
+   * * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
+   * * Cloud Storage files: `gs://<bucket>/<path>`
+   * * Datastore namespace: <namespace>
+   * Nested names could be absent if the embedded object has no string
+   * identifier (for an example an image contained within a document).
    * 
* * string container_name = 1; @@ -214,9 +218,13 @@ public java.lang.String getContainerName() { /** *
    * Name of the container where the finding is located.
-   * The top level name is the source file name or table name. Nested names
-   * could be absent if the embedded object has no string identifier
-   * (for an example an image contained within a document).
+   * The top level name is the source file name or table name. Names of some
+   * common storage containers are formatted as follows:
+   * * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
+   * * Cloud Storage files: `gs://<bucket>/<path>`
+   * * Datastore namespace: <namespace>
+   * Nested names could be absent if the embedded object has no string
+   * identifier (for an example an image contained within a document).
    * 
* * string container_name = 1; @@ -905,9 +913,13 @@ public Builder clearLocation() { /** *
      * Name of the container where the finding is located.
-     * The top level name is the source file name or table name. Nested names
-     * could be absent if the embedded object has no string identifier
-     * (for an example an image contained within a document).
+     * The top level name is the source file name or table name. Names of some
+     * common storage containers are formatted as follows:
+     * * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
+     * * Cloud Storage files: `gs://<bucket>/<path>`
+     * * Datastore namespace: <namespace>
+     * Nested names could be absent if the embedded object has no string
+     * identifier (for an example an image contained within a document).
      * 
* * string container_name = 1; @@ -927,9 +939,13 @@ public java.lang.String getContainerName() { /** *
      * Name of the container where the finding is located.
-     * The top level name is the source file name or table name. Nested names
-     * could be absent if the embedded object has no string identifier
-     * (for an example an image contained within a document).
+     * The top level name is the source file name or table name. Names of some
+     * common storage containers are formatted as follows:
+     * * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
+     * * Cloud Storage files: `gs://<bucket>/<path>`
+     * * Datastore namespace: <namespace>
+     * Nested names could be absent if the embedded object has no string
+     * identifier (for an example an image contained within a document).
      * 
* * string container_name = 1; @@ -950,9 +966,13 @@ public java.lang.String getContainerName() { /** *
      * Name of the container where the finding is located.
-     * The top level name is the source file name or table name. Nested names
-     * could be absent if the embedded object has no string identifier
-     * (for an example an image contained within a document).
+     * The top level name is the source file name or table name. Names of some
+     * common storage containers are formatted as follows:
+     * * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
+     * * Cloud Storage files: `gs://<bucket>/<path>`
+     * * Datastore namespace: <namespace>
+     * Nested names could be absent if the embedded object has no string
+     * identifier (for an example an image contained within a document).
      * 
* * string container_name = 1; @@ -970,9 +990,13 @@ public Builder setContainerName( /** *
      * Name of the container where the finding is located.
-     * The top level name is the source file name or table name. Nested names
-     * could be absent if the embedded object has no string identifier
-     * (for an example an image contained within a document).
+     * The top level name is the source file name or table name. Names of some
+     * common storage containers are formatted as follows:
+     * * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
+     * * Cloud Storage files: `gs://<bucket>/<path>`
+     * * Datastore namespace: <namespace>
+     * Nested names could be absent if the embedded object has no string
+     * identifier (for an example an image contained within a document).
      * 
* * string container_name = 1; @@ -986,9 +1010,13 @@ public Builder clearContainerName() { /** *
      * Name of the container where the finding is located.
-     * The top level name is the source file name or table name. Nested names
-     * could be absent if the embedded object has no string identifier
-     * (for an example an image contained within a document).
+     * The top level name is the source file name or table name. Names of some
+     * common storage containers are formatted as follows:
+     * * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
+     * * Cloud Storage files: `gs://<bucket>/<path>`
+     * * Datastore namespace: <namespace>
+     * Nested names could be absent if the embedded object has no string
+     * identifier (for an example an image contained within a document).
      * 
* * string container_name = 1; diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ContentLocationOrBuilder.java b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ContentLocationOrBuilder.java index 2c6f92c368ba..28b6ea5b28d1 100644 --- a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ContentLocationOrBuilder.java +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ContentLocationOrBuilder.java @@ -10,9 +10,13 @@ public interface ContentLocationOrBuilder extends /** *
    * Name of the container where the finding is located.
-   * The top level name is the source file name or table name. Nested names
-   * could be absent if the embedded object has no string identifier
-   * (for an example an image contained within a document).
+   * The top level name is the source file name or table name. Names of some
+   * common storage containers are formatted as follows:
+   * * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
+   * * Cloud Storage files: `gs://<bucket>/<path>`
+   * * Datastore namespace: <namespace>
+   * Nested names could be absent if the embedded object has no string
+   * identifier (for an example an image contained within a document).
    * 
* * string container_name = 1; @@ -21,9 +25,13 @@ public interface ContentLocationOrBuilder extends /** *
    * Name of the container where the finding is located.
-   * The top level name is the source file name or table name. Nested names
-   * could be absent if the embedded object has no string identifier
-   * (for an example an image contained within a document).
+   * The top level name is the source file name or table name. Names of some
+   * common storage containers are formatted as follows:
+   * * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
+   * * Cloud Storage files: `gs://<bucket>/<path>`
+   * * Datastore namespace: <namespace>
+   * Nested names could be absent if the embedded object has no string
+   * identifier (for an example an image contained within a document).
    * 
* * string container_name = 1; diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/DlpProto.java b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/DlpProto.java index 84dfac3468ff..e2dbab3e77af 100644 --- a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/DlpProto.java +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/DlpProto.java @@ -1352,226 +1352,227 @@ public static void registerAllExtensions( "\031\n\025JOB_STATE_UNSPECIFIED\020\000\022\013\n\007PENDING\020\001\022" + "\013\n\007RUNNING\020\002\022\010\n\004DONE\020\003\022\014\n\010CANCELED\020\004\022\n\n\006" + "FAILED\020\005B\t\n\007details\" \n\020GetDlpJobRequest\022" + - "\014\n\004name\030\001 \001(\t\"\214\001\n\022ListDlpJobsRequest\022\016\n\006" + + "\014\n\004name\030\001 \001(\t\"\236\001\n\022ListDlpJobsRequest\022\016\n\006" + "parent\030\004 \001(\t\022\016\n\006filter\030\001 \001(\t\022\021\n\tpage_siz" + "e\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\022/\n\004type\030\005 \001(" + - "\0162!.google.privacy.dlp.v2.DlpJobType\"[\n\023" + - "ListDlpJobsResponse\022+\n\004jobs\030\001 \003(\0132\035.goog" + - "le.privacy.dlp.v2.DlpJob\022\027\n\017next_page_to" + - "ken\030\002 \001(\t\"#\n\023CancelDlpJobRequest\022\014\n\004name" + - "\030\001 \001(\t\"#\n\023DeleteDlpJobRequest\022\014\n\004name\030\001 " + - "\001(\t\"\216\001\n\037CreateDeidentifyTemplateRequest\022" + - "\016\n\006parent\030\001 \001(\t\022F\n\023deidentify_template\030\002" + - " \001(\0132).google.privacy.dlp.v2.DeidentifyT" + - "emplate\022\023\n\013template_id\030\003 \001(\t\"\250\001\n\037UpdateD" + - "eidentifyTemplateRequest\022\014\n\004name\030\001 \001(\t\022F" + - "\n\023deidentify_template\030\002 \001(\0132).google.pri" + - "vacy.dlp.v2.DeidentifyTemplate\022/\n\013update" + - "_mask\030\003 \001(\0132\032.google.protobuf.FieldMask\"" + - ",\n\034GetDeidentifyTemplateRequest\022\014\n\004name\030" + - "\001 \001(\t\"i\n\036ListDeidentifyTemplatesRequest\022" + - "\016\n\006parent\030\001 \001(\t\022\022\n\npage_token\030\002 \001(\t\022\021\n\tp" + - "age_size\030\003 \001(\005\022\020\n\010order_by\030\004 \001(\t\"\203\001\n\037Lis" + - "tDeidentifyTemplatesResponse\022G\n\024deidenti" + - "fy_templates\030\001 \003(\0132).google.privacy.dlp." + - "v2.DeidentifyTemplate\022\027\n\017next_page_token" + - "\030\002 \001(\t\"/\n\037DeleteDeidentifyTemplateReques" + - "t\022\014\n\004name\030\001 \001(\t\"\364\001\n\033LargeCustomDictionar" + - "yConfig\022<\n\013output_path\030\001 \001(\0132\'.google.pr" + - "ivacy.dlp.v2.CloudStoragePath\022L\n\026cloud_s" + - "torage_file_set\030\002 \001(\0132*.google.privacy.d" + - "lp.v2.CloudStorageFileSetH\000\022?\n\017big_query" + - "_field\030\003 \001(\0132$.google.privacy.dlp.v2.Big" + - "QueryFieldH\000B\010\n\006source\"\240\001\n\024StoredInfoTyp" + - "eConfig\022\024\n\014display_name\030\001 \001(\t\022\023\n\013descrip" + - "tion\030\002 \001(\t\022U\n\027large_custom_dictionary\030\003 " + - "\001(\01322.google.privacy.dlp.v2.LargeCustomD" + - "ictionaryConfigH\000B\006\n\004type\"\356\001\n\025StoredInfo" + - "TypeVersion\022;\n\006config\030\001 \001(\0132+.google.pri" + - "vacy.dlp.v2.StoredInfoTypeConfig\022/\n\013crea" + - "te_time\030\002 \001(\0132\032.google.protobuf.Timestam" + - "p\0229\n\005state\030\003 \001(\0162*.google.privacy.dlp.v2" + - ".StoredInfoTypeState\022,\n\006errors\030\004 \003(\0132\034.g" + - "oogle.privacy.dlp.v2.Error\"\255\001\n\016StoredInf" + - "oType\022\014\n\004name\030\001 \001(\t\022E\n\017current_version\030\002" + - " \001(\0132,.google.privacy.dlp.v2.StoredInfoT" + - "ypeVersion\022F\n\020pending_versions\030\003 \003(\0132,.g" + - "oogle.privacy.dlp.v2.StoredInfoTypeVersi" + - "on\"\207\001\n\033CreateStoredInfoTypeRequest\022\016\n\006pa" + - "rent\030\001 \001(\t\022;\n\006config\030\002 \001(\0132+.google.priv" + - "acy.dlp.v2.StoredInfoTypeConfig\022\033\n\023store" + - "d_info_type_id\030\003 \001(\t\"\231\001\n\033UpdateStoredInf" + - "oTypeRequest\022\014\n\004name\030\001 \001(\t\022;\n\006config\030\002 \001" + - "(\0132+.google.privacy.dlp.v2.StoredInfoTyp" + - "eConfig\022/\n\013update_mask\030\003 \001(\0132\032.google.pr" + - "otobuf.FieldMask\"(\n\030GetStoredInfoTypeReq" + - "uest\022\014\n\004name\030\001 \001(\t\"e\n\032ListStoredInfoType" + - "sRequest\022\016\n\006parent\030\001 \001(\t\022\022\n\npage_token\030\002" + - " \001(\t\022\021\n\tpage_size\030\003 \001(\005\022\020\n\010order_by\030\004 \001(" + - "\t\"x\n\033ListStoredInfoTypesResponse\022@\n\021stor" + - "ed_info_types\030\001 \003(\0132%.google.privacy.dlp" + - ".v2.StoredInfoType\022\027\n\017next_page_token\030\002 " + - "\001(\t\"+\n\033DeleteStoredInfoTypeRequest\022\014\n\004na" + - "me\030\001 \001(\t*M\n\rContentOption\022\027\n\023CONTENT_UNS" + - "PECIFIED\020\000\022\020\n\014CONTENT_TEXT\020\001\022\021\n\rCONTENT_" + - "IMAGE\020\002*\215\001\n\014MatchingType\022\035\n\031MATCHING_TYP" + - "E_UNSPECIFIED\020\000\022\034\n\030MATCHING_TYPE_FULL_MA" + - "TCH\020\001\022\037\n\033MATCHING_TYPE_PARTIAL_MATCH\020\002\022\037" + - "\n\033MATCHING_TYPE_INVERSE_MATCH\020\003*P\n\023InfoT" + - "ypeSupportedBy\022\031\n\025ENUM_TYPE_UNSPECIFIED\020" + - "\000\022\013\n\007INSPECT\020\001\022\021\n\rRISK_ANALYSIS\020\002*\273\001\n\022Re" + - "lationalOperator\022#\n\037RELATIONAL_OPERATOR_" + - "UNSPECIFIED\020\000\022\014\n\010EQUAL_TO\020\001\022\020\n\014NOT_EQUAL" + - "_TO\020\002\022\020\n\014GREATER_THAN\020\003\022\r\n\tLESS_THAN\020\004\022\032" + - "\n\026GREATER_THAN_OR_EQUALS\020\005\022\027\n\023LESS_THAN_" + - "OR_EQUALS\020\006\022\n\n\006EXISTS\020\007*R\n\nDlpJobType\022\034\n" + - "\030DLP_JOB_TYPE_UNSPECIFIED\020\000\022\017\n\013INSPECT_J" + - "OB\020\001\022\025\n\021RISK_ANALYSIS_JOB\020\002*n\n\023StoredInf" + - "oTypeState\022&\n\"STORED_INFO_TYPE_STATE_UNS" + - "PECIFIED\020\000\022\013\n\007PENDING\020\001\022\t\n\005READY\020\002\022\n\n\006FA" + - "ILED\020\003\022\013\n\007INVALID\020\0042\251+\n\nDlpService\022\241\001\n\016I" + - "nspectContent\022,.google.privacy.dlp.v2.In" + - "spectContentRequest\032-.google.privacy.dlp" + - ".v2.InspectContentResponse\"2\202\323\344\223\002,\"\'/v2/" + - "{parent=projects/*}/content:inspect:\001*\022\225" + - "\001\n\013RedactImage\022).google.privacy.dlp.v2.R" + - "edactImageRequest\032*.google.privacy.dlp.v" + - "2.RedactImageResponse\"/\202\323\344\223\002)\"$/v2/{pare" + - "nt=projects/*}/image:redact:\001*\022\255\001\n\021Deide" + - "ntifyContent\022/.google.privacy.dlp.v2.Dei" + - "dentifyContentRequest\0320.google.privacy.d" + - "lp.v2.DeidentifyContentResponse\"5\202\323\344\223\002/\"" + - "*/v2/{parent=projects/*}/content:deident" + - "ify:\001*\022\255\001\n\021ReidentifyContent\022/.google.pr" + - "ivacy.dlp.v2.ReidentifyContentRequest\0320." + - "google.privacy.dlp.v2.ReidentifyContentR" + - "esponse\"5\202\323\344\223\002/\"*/v2/{parent=projects/*}" + - "/content:reidentify:\001*\022\201\001\n\rListInfoTypes" + - "\022+.google.privacy.dlp.v2.ListInfoTypesRe" + - "quest\032,.google.privacy.dlp.v2.ListInfoTy" + - "pesResponse\"\025\202\323\344\223\002\017\022\r/v2/infoTypes\022\335\001\n\025C" + - "reateInspectTemplate\0223.google.privacy.dl" + - "p.v2.CreateInspectTemplateRequest\032&.goog" + - "le.privacy.dlp.v2.InspectTemplate\"g\202\323\344\223\002" + - "a\"-/v2/{parent=organizations/*}/inspectT" + - "emplates:\001*Z-\"(/v2/{parent=projects/*}/i" + - "nspectTemplates:\001*\022\335\001\n\025UpdateInspectTemp" + - "late\0223.google.privacy.dlp.v2.UpdateInspe" + - "ctTemplateRequest\032&.google.privacy.dlp.v" + - "2.InspectTemplate\"g\202\323\344\223\002a2-/v2/{name=org" + - "anizations/*/inspectTemplates/*}:\001*Z-2(/" + - "v2/{name=projects/*/inspectTemplates/*}:" + - "\001*\022\321\001\n\022GetInspectTemplate\0220.google.priva" + - "cy.dlp.v2.GetInspectTemplateRequest\032&.go" + - "ogle.privacy.dlp.v2.InspectTemplate\"a\202\323\344" + - "\223\002[\022-/v2/{name=organizations/*/inspectTe" + - "mplates/*}Z*\022(/v2/{name=projects/*/inspe" + - "ctTemplates/*}\022\342\001\n\024ListInspectTemplates\022" + - "2.google.privacy.dlp.v2.ListInspectTempl" + - "atesRequest\0323.google.privacy.dlp.v2.List" + - "InspectTemplatesResponse\"a\202\323\344\223\002[\022-/v2/{p" + - "arent=organizations/*}/inspectTemplatesZ" + - "*\022(/v2/{parent=projects/*}/inspectTempla" + - "tes\022\307\001\n\025DeleteInspectTemplate\0223.google.p" + - "rivacy.dlp.v2.DeleteInspectTemplateReque" + - "st\032\026.google.protobuf.Empty\"a\202\323\344\223\002[*-/v2/" + - "{name=organizations/*/inspectTemplates/*" + - "}Z**(/v2/{name=projects/*/inspectTemplat" + - "es/*}\022\354\001\n\030CreateDeidentifyTemplate\0226.goo" + - "gle.privacy.dlp.v2.CreateDeidentifyTempl" + - "ateRequest\032).google.privacy.dlp.v2.Deide" + - "ntifyTemplate\"m\202\323\344\223\002g\"0/v2/{parent=organ" + - "izations/*}/deidentifyTemplates:\001*Z0\"+/v" + - "2/{parent=projects/*}/deidentifyTemplate" + - "s:\001*\022\354\001\n\030UpdateDeidentifyTemplate\0226.goog" + - "le.privacy.dlp.v2.UpdateDeidentifyTempla" + - "teRequest\032).google.privacy.dlp.v2.Deiden" + - "tifyTemplate\"m\202\323\344\223\002g20/v2/{name=organiza" + - "tions/*/deidentifyTemplates/*}:\001*Z02+/v2" + - "/{name=projects/*/deidentifyTemplates/*}" + - ":\001*\022\340\001\n\025GetDeidentifyTemplate\0223.google.p" + - "rivacy.dlp.v2.GetDeidentifyTemplateReque" + - "st\032).google.privacy.dlp.v2.DeidentifyTem" + - "plate\"g\202\323\344\223\002a\0220/v2/{name=organizations/*" + - "/deidentifyTemplates/*}Z-\022+/v2/{name=pro" + - "jects/*/deidentifyTemplates/*}\022\361\001\n\027ListD" + - "eidentifyTemplates\0225.google.privacy.dlp." + - "v2.ListDeidentifyTemplatesRequest\0326.goog" + - "le.privacy.dlp.v2.ListDeidentifyTemplate" + - "sResponse\"g\202\323\344\223\002a\0220/v2/{parent=organizat" + - "ions/*}/deidentifyTemplatesZ-\022+/v2/{pare" + - "nt=projects/*}/deidentifyTemplates\022\323\001\n\030D" + - "eleteDeidentifyTemplate\0226.google.privacy" + - ".dlp.v2.DeleteDeidentifyTemplateRequest\032" + - "\026.google.protobuf.Empty\"g\202\323\344\223\002a*0/v2/{na" + + "\0162!.google.privacy.dlp.v2.DlpJobType\022\020\n\010" + + "order_by\030\006 \001(\t\"[\n\023ListDlpJobsResponse\022+\n" + + "\004jobs\030\001 \003(\0132\035.google.privacy.dlp.v2.DlpJ" + + "ob\022\027\n\017next_page_token\030\002 \001(\t\"#\n\023CancelDlp" + + "JobRequest\022\014\n\004name\030\001 \001(\t\"#\n\023DeleteDlpJob" + + "Request\022\014\n\004name\030\001 \001(\t\"\216\001\n\037CreateDeidenti" + + "fyTemplateRequest\022\016\n\006parent\030\001 \001(\t\022F\n\023dei" + + "dentify_template\030\002 \001(\0132).google.privacy." + + "dlp.v2.DeidentifyTemplate\022\023\n\013template_id" + + "\030\003 \001(\t\"\250\001\n\037UpdateDeidentifyTemplateReque" + + "st\022\014\n\004name\030\001 \001(\t\022F\n\023deidentify_template\030" + + "\002 \001(\0132).google.privacy.dlp.v2.Deidentify" + + "Template\022/\n\013update_mask\030\003 \001(\0132\032.google.p" + + "rotobuf.FieldMask\",\n\034GetDeidentifyTempla" + + "teRequest\022\014\n\004name\030\001 \001(\t\"i\n\036ListDeidentif" + + "yTemplatesRequest\022\016\n\006parent\030\001 \001(\t\022\022\n\npag" + + "e_token\030\002 \001(\t\022\021\n\tpage_size\030\003 \001(\005\022\020\n\010orde" + + "r_by\030\004 \001(\t\"\203\001\n\037ListDeidentifyTemplatesRe" + + "sponse\022G\n\024deidentify_templates\030\001 \003(\0132).g" + + "oogle.privacy.dlp.v2.DeidentifyTemplate\022" + + "\027\n\017next_page_token\030\002 \001(\t\"/\n\037DeleteDeiden" + + "tifyTemplateRequest\022\014\n\004name\030\001 \001(\t\"\364\001\n\033La" + + "rgeCustomDictionaryConfig\022<\n\013output_path" + + "\030\001 \001(\0132\'.google.privacy.dlp.v2.CloudStor" + + "agePath\022L\n\026cloud_storage_file_set\030\002 \001(\0132" + + "*.google.privacy.dlp.v2.CloudStorageFile" + + "SetH\000\022?\n\017big_query_field\030\003 \001(\0132$.google." + + "privacy.dlp.v2.BigQueryFieldH\000B\010\n\006source" + + "\"\240\001\n\024StoredInfoTypeConfig\022\024\n\014display_nam" + + "e\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\022U\n\027large_cu" + + "stom_dictionary\030\003 \001(\01322.google.privacy.d" + + "lp.v2.LargeCustomDictionaryConfigH\000B\006\n\004t" + + "ype\"\356\001\n\025StoredInfoTypeVersion\022;\n\006config\030" + + "\001 \001(\0132+.google.privacy.dlp.v2.StoredInfo" + + "TypeConfig\022/\n\013create_time\030\002 \001(\0132\032.google" + + ".protobuf.Timestamp\0229\n\005state\030\003 \001(\0162*.goo" + + "gle.privacy.dlp.v2.StoredInfoTypeState\022," + + "\n\006errors\030\004 \003(\0132\034.google.privacy.dlp.v2.E" + + "rror\"\255\001\n\016StoredInfoType\022\014\n\004name\030\001 \001(\t\022E\n" + + "\017current_version\030\002 \001(\0132,.google.privacy." + + "dlp.v2.StoredInfoTypeVersion\022F\n\020pending_" + + "versions\030\003 \003(\0132,.google.privacy.dlp.v2.S" + + "toredInfoTypeVersion\"\207\001\n\033CreateStoredInf" + + "oTypeRequest\022\016\n\006parent\030\001 \001(\t\022;\n\006config\030\002" + + " \001(\0132+.google.privacy.dlp.v2.StoredInfoT" + + "ypeConfig\022\033\n\023stored_info_type_id\030\003 \001(\t\"\231" + + "\001\n\033UpdateStoredInfoTypeRequest\022\014\n\004name\030\001" + + " \001(\t\022;\n\006config\030\002 \001(\0132+.google.privacy.dl" + + "p.v2.StoredInfoTypeConfig\022/\n\013update_mask" + + "\030\003 \001(\0132\032.google.protobuf.FieldMask\"(\n\030Ge" + + "tStoredInfoTypeRequest\022\014\n\004name\030\001 \001(\t\"e\n\032" + + "ListStoredInfoTypesRequest\022\016\n\006parent\030\001 \001" + + "(\t\022\022\n\npage_token\030\002 \001(\t\022\021\n\tpage_size\030\003 \001(" + + "\005\022\020\n\010order_by\030\004 \001(\t\"x\n\033ListStoredInfoTyp" + + "esResponse\022@\n\021stored_info_types\030\001 \003(\0132%." + + "google.privacy.dlp.v2.StoredInfoType\022\027\n\017" + + "next_page_token\030\002 \001(\t\"+\n\033DeleteStoredInf" + + "oTypeRequest\022\014\n\004name\030\001 \001(\t*M\n\rContentOpt" + + "ion\022\027\n\023CONTENT_UNSPECIFIED\020\000\022\020\n\014CONTENT_" + + "TEXT\020\001\022\021\n\rCONTENT_IMAGE\020\002*\215\001\n\014MatchingTy" + + "pe\022\035\n\031MATCHING_TYPE_UNSPECIFIED\020\000\022\034\n\030MAT" + + "CHING_TYPE_FULL_MATCH\020\001\022\037\n\033MATCHING_TYPE" + + "_PARTIAL_MATCH\020\002\022\037\n\033MATCHING_TYPE_INVERS" + + "E_MATCH\020\003*P\n\023InfoTypeSupportedBy\022\031\n\025ENUM" + + "_TYPE_UNSPECIFIED\020\000\022\013\n\007INSPECT\020\001\022\021\n\rRISK" + + "_ANALYSIS\020\002*\273\001\n\022RelationalOperator\022#\n\037RE" + + "LATIONAL_OPERATOR_UNSPECIFIED\020\000\022\014\n\010EQUAL" + + "_TO\020\001\022\020\n\014NOT_EQUAL_TO\020\002\022\020\n\014GREATER_THAN\020" + + "\003\022\r\n\tLESS_THAN\020\004\022\032\n\026GREATER_THAN_OR_EQUA" + + "LS\020\005\022\027\n\023LESS_THAN_OR_EQUALS\020\006\022\n\n\006EXISTS\020" + + "\007*R\n\nDlpJobType\022\034\n\030DLP_JOB_TYPE_UNSPECIF" + + "IED\020\000\022\017\n\013INSPECT_JOB\020\001\022\025\n\021RISK_ANALYSIS_" + + "JOB\020\002*n\n\023StoredInfoTypeState\022&\n\"STORED_I" + + "NFO_TYPE_STATE_UNSPECIFIED\020\000\022\013\n\007PENDING\020" + + "\001\022\t\n\005READY\020\002\022\n\n\006FAILED\020\003\022\013\n\007INVALID\020\0042\251+" + + "\n\nDlpService\022\241\001\n\016InspectContent\022,.google" + + ".privacy.dlp.v2.InspectContentRequest\032-." + + "google.privacy.dlp.v2.InspectContentResp" + + "onse\"2\202\323\344\223\002,\"\'/v2/{parent=projects/*}/co" + + "ntent:inspect:\001*\022\225\001\n\013RedactImage\022).googl" + + "e.privacy.dlp.v2.RedactImageRequest\032*.go" + + "ogle.privacy.dlp.v2.RedactImageResponse\"" + + "/\202\323\344\223\002)\"$/v2/{parent=projects/*}/image:r" + + "edact:\001*\022\255\001\n\021DeidentifyContent\022/.google." + + "privacy.dlp.v2.DeidentifyContentRequest\032" + + "0.google.privacy.dlp.v2.DeidentifyConten" + + "tResponse\"5\202\323\344\223\002/\"*/v2/{parent=projects/" + + "*}/content:deidentify:\001*\022\255\001\n\021ReidentifyC" + + "ontent\022/.google.privacy.dlp.v2.Reidentif" + + "yContentRequest\0320.google.privacy.dlp.v2." + + "ReidentifyContentResponse\"5\202\323\344\223\002/\"*/v2/{" + + "parent=projects/*}/content:reidentify:\001*" + + "\022\201\001\n\rListInfoTypes\022+.google.privacy.dlp." + + "v2.ListInfoTypesRequest\032,.google.privacy" + + ".dlp.v2.ListInfoTypesResponse\"\025\202\323\344\223\002\017\022\r/" + + "v2/infoTypes\022\335\001\n\025CreateInspectTemplate\0223" + + ".google.privacy.dlp.v2.CreateInspectTemp" + + "lateRequest\032&.google.privacy.dlp.v2.Insp" + + "ectTemplate\"g\202\323\344\223\002a\"-/v2/{parent=organiz" + + "ations/*}/inspectTemplates:\001*Z-\"(/v2/{pa" + + "rent=projects/*}/inspectTemplates:\001*\022\335\001\n" + + "\025UpdateInspectTemplate\0223.google.privacy." + + "dlp.v2.UpdateInspectTemplateRequest\032&.go" + + "ogle.privacy.dlp.v2.InspectTemplate\"g\202\323\344" + + "\223\002a2-/v2/{name=organizations/*/inspectTe" + + "mplates/*}:\001*Z-2(/v2/{name=projects/*/in" + + "spectTemplates/*}:\001*\022\321\001\n\022GetInspectTempl" + + "ate\0220.google.privacy.dlp.v2.GetInspectTe" + + "mplateRequest\032&.google.privacy.dlp.v2.In" + + "spectTemplate\"a\202\323\344\223\002[\022-/v2/{name=organiz" + + "ations/*/inspectTemplates/*}Z*\022(/v2/{nam" + + "e=projects/*/inspectTemplates/*}\022\342\001\n\024Lis" + + "tInspectTemplates\0222.google.privacy.dlp.v" + + "2.ListInspectTemplatesRequest\0323.google.p" + + "rivacy.dlp.v2.ListInspectTemplatesRespon" + + "se\"a\202\323\344\223\002[\022-/v2/{parent=organizations/*}" + + "/inspectTemplatesZ*\022(/v2/{parent=project" + + "s/*}/inspectTemplates\022\307\001\n\025DeleteInspectT" + + "emplate\0223.google.privacy.dlp.v2.DeleteIn" + + "spectTemplateRequest\032\026.google.protobuf.E" + + "mpty\"a\202\323\344\223\002[*-/v2/{name=organizations/*/" + + "inspectTemplates/*}Z**(/v2/{name=project" + + "s/*/inspectTemplates/*}\022\354\001\n\030CreateDeiden" + + "tifyTemplate\0226.google.privacy.dlp.v2.Cre" + + "ateDeidentifyTemplateRequest\032).google.pr" + + "ivacy.dlp.v2.DeidentifyTemplate\"m\202\323\344\223\002g\"" + + "0/v2/{parent=organizations/*}/deidentify" + + "Templates:\001*Z0\"+/v2/{parent=projects/*}/" + + "deidentifyTemplates:\001*\022\354\001\n\030UpdateDeident" + + "ifyTemplate\0226.google.privacy.dlp.v2.Upda" + + "teDeidentifyTemplateRequest\032).google.pri" + + "vacy.dlp.v2.DeidentifyTemplate\"m\202\323\344\223\002g20" + + "/v2/{name=organizations/*/deidentifyTemp" + + "lates/*}:\001*Z02+/v2/{name=projects/*/deid" + + "entifyTemplates/*}:\001*\022\340\001\n\025GetDeidentifyT" + + "emplate\0223.google.privacy.dlp.v2.GetDeide" + + "ntifyTemplateRequest\032).google.privacy.dl" + + "p.v2.DeidentifyTemplate\"g\202\323\344\223\002a\0220/v2/{na" + "me=organizations/*/deidentifyTemplates/*" + - "}Z-*+/v2/{name=projects/*/deidentifyTemp" + - "lates/*}\022\225\001\n\020CreateJobTrigger\022..google.p" + - "rivacy.dlp.v2.CreateJobTriggerRequest\032!." + - "google.privacy.dlp.v2.JobTrigger\".\202\323\344\223\002(" + - "\"#/v2/{parent=projects/*}/jobTriggers:\001*" + - "\022\225\001\n\020UpdateJobTrigger\022..google.privacy.d" + - "lp.v2.UpdateJobTriggerRequest\032!.google.p" + - "rivacy.dlp.v2.JobTrigger\".\202\323\344\223\002(2#/v2/{n" + - "ame=projects/*/jobTriggers/*}:\001*\022\214\001\n\rGet" + - "JobTrigger\022+.google.privacy.dlp.v2.GetJo" + + "}Z-\022+/v2/{name=projects/*/deidentifyTemp" + + "lates/*}\022\361\001\n\027ListDeidentifyTemplates\0225.g" + + "oogle.privacy.dlp.v2.ListDeidentifyTempl" + + "atesRequest\0326.google.privacy.dlp.v2.List" + + "DeidentifyTemplatesResponse\"g\202\323\344\223\002a\0220/v2" + + "/{parent=organizations/*}/deidentifyTemp" + + "latesZ-\022+/v2/{parent=projects/*}/deident" + + "ifyTemplates\022\323\001\n\030DeleteDeidentifyTemplat" + + "e\0226.google.privacy.dlp.v2.DeleteDeidenti" + + "fyTemplateRequest\032\026.google.protobuf.Empt" + + "y\"g\202\323\344\223\002a*0/v2/{name=organizations/*/dei" + + "dentifyTemplates/*}Z-*+/v2/{name=project" + + "s/*/deidentifyTemplates/*}\022\225\001\n\020CreateJob" + + "Trigger\022..google.privacy.dlp.v2.CreateJo" + "bTriggerRequest\032!.google.privacy.dlp.v2." + - "JobTrigger\"+\202\323\344\223\002%\022#/v2/{name=projects/*" + - "/jobTriggers/*}\022\235\001\n\017ListJobTriggers\022-.go" + - "ogle.privacy.dlp.v2.ListJobTriggersReque" + - "st\032..google.privacy.dlp.v2.ListJobTrigge" + - "rsResponse\"+\202\323\344\223\002%\022#/v2/{parent=projects" + - "/*}/jobTriggers\022\207\001\n\020DeleteJobTrigger\022..g" + - "oogle.privacy.dlp.v2.DeleteJobTriggerReq" + - "uest\032\026.google.protobuf.Empty\"+\202\323\344\223\002%*#/v" + - "2/{name=projects/*/jobTriggers/*}\022\205\001\n\014Cr" + - "eateDlpJob\022*.google.privacy.dlp.v2.Creat" + - "eDlpJobRequest\032\035.google.privacy.dlp.v2.D" + - "lpJob\"*\202\323\344\223\002$\"\037/v2/{parent=projects/*}/d" + - "lpJobs:\001*\022\215\001\n\013ListDlpJobs\022).google.priva" + - "cy.dlp.v2.ListDlpJobsRequest\032*.google.pr" + - "ivacy.dlp.v2.ListDlpJobsResponse\"\'\202\323\344\223\002!" + - "\022\037/v2/{parent=projects/*}/dlpJobs\022|\n\tGet" + - "DlpJob\022\'.google.privacy.dlp.v2.GetDlpJob" + - "Request\032\035.google.privacy.dlp.v2.DlpJob\"\'" + - "\202\323\344\223\002!\022\037/v2/{name=projects/*/dlpJobs/*}\022" + - "{\n\014DeleteDlpJob\022*.google.privacy.dlp.v2." + - "DeleteDlpJobRequest\032\026.google.protobuf.Em" + - "pty\"\'\202\323\344\223\002!*\037/v2/{name=projects/*/dlpJob" + - "s/*}\022\205\001\n\014CancelDlpJob\022*.google.privacy.d" + - "lp.v2.CancelDlpJobRequest\032\026.google.proto" + - "buf.Empty\"1\202\323\344\223\002+\"&/v2/{name=projects/*/" + - "dlpJobs/*}:cancel:\001*\022\330\001\n\024CreateStoredInf" + - "oType\0222.google.privacy.dlp.v2.CreateStor" + - "edInfoTypeRequest\032%.google.privacy.dlp.v" + - "2.StoredInfoType\"e\202\323\344\223\002_\",/v2/{parent=or" + - "ganizations/*}/storedInfoTypes:\001*Z,\"\'/v2" + - "/{parent=projects/*}/storedInfoTypes:\001*\022" + - "\330\001\n\024UpdateStoredInfoType\0222.google.privac" + - "y.dlp.v2.UpdateStoredInfoTypeRequest\032%.g" + - "oogle.privacy.dlp.v2.StoredInfoType\"e\202\323\344" + - "\223\002_2,/v2/{name=organizations/*/storedInf" + - "oTypes/*}:\001*Z,2\'/v2/{name=projects/*/sto" + - "redInfoTypes/*}:\001*\022\314\001\n\021GetStoredInfoType" + - "\022/.google.privacy.dlp.v2.GetStoredInfoTy" + - "peRequest\032%.google.privacy.dlp.v2.Stored" + - "InfoType\"_\202\323\344\223\002Y\022,/v2/{name=organization" + - "s/*/storedInfoTypes/*}Z)\022\'/v2/{name=proj" + - "ects/*/storedInfoTypes/*}\022\335\001\n\023ListStored" + - "InfoTypes\0221.google.privacy.dlp.v2.ListSt" + - "oredInfoTypesRequest\0322.google.privacy.dl" + - "p.v2.ListStoredInfoTypesResponse\"_\202\323\344\223\002Y" + - "\022,/v2/{parent=organizations/*}/storedInf" + - "oTypesZ)\022\'/v2/{parent=projects/*}/stored" + - "InfoTypes\022\303\001\n\024DeleteStoredInfoType\0222.goo" + - "gle.privacy.dlp.v2.DeleteStoredInfoTypeR" + - "equest\032\026.google.protobuf.Empty\"_\202\323\344\223\002Y*," + - "/v2/{name=organizations/*/storedInfoType" + - "s/*}Z)*\'/v2/{name=projects/*/storedInfoT" + - "ypes/*}B\215\001\n\031com.google.privacy.dlp.v2B\010D" + - "lpProtoP\001Z8google.golang.org/genproto/go" + - "ogleapis/privacy/dlp/v2;dlp\252\002\023Google.Clo" + - "ud.Dlp.V2\312\002\023Google\\Cloud\\Dlp\\V2b\006proto3" + "JobTrigger\".\202\323\344\223\002(\"#/v2/{parent=projects" + + "/*}/jobTriggers:\001*\022\225\001\n\020UpdateJobTrigger\022" + + "..google.privacy.dlp.v2.UpdateJobTrigger" + + "Request\032!.google.privacy.dlp.v2.JobTrigg" + + "er\".\202\323\344\223\002(2#/v2/{name=projects/*/jobTrig" + + "gers/*}:\001*\022\214\001\n\rGetJobTrigger\022+.google.pr" + + "ivacy.dlp.v2.GetJobTriggerRequest\032!.goog" + + "le.privacy.dlp.v2.JobTrigger\"+\202\323\344\223\002%\022#/v" + + "2/{name=projects/*/jobTriggers/*}\022\235\001\n\017Li" + + "stJobTriggers\022-.google.privacy.dlp.v2.Li" + + "stJobTriggersRequest\032..google.privacy.dl" + + "p.v2.ListJobTriggersResponse\"+\202\323\344\223\002%\022#/v" + + "2/{parent=projects/*}/jobTriggers\022\207\001\n\020De" + + "leteJobTrigger\022..google.privacy.dlp.v2.D" + + "eleteJobTriggerRequest\032\026.google.protobuf" + + ".Empty\"+\202\323\344\223\002%*#/v2/{name=projects/*/job" + + "Triggers/*}\022\205\001\n\014CreateDlpJob\022*.google.pr" + + "ivacy.dlp.v2.CreateDlpJobRequest\032\035.googl" + + "e.privacy.dlp.v2.DlpJob\"*\202\323\344\223\002$\"\037/v2/{pa" + + "rent=projects/*}/dlpJobs:\001*\022\215\001\n\013ListDlpJ" + + "obs\022).google.privacy.dlp.v2.ListDlpJobsR" + + "equest\032*.google.privacy.dlp.v2.ListDlpJo" + + "bsResponse\"\'\202\323\344\223\002!\022\037/v2/{parent=projects" + + "/*}/dlpJobs\022|\n\tGetDlpJob\022\'.google.privac" + + "y.dlp.v2.GetDlpJobRequest\032\035.google.priva" + + "cy.dlp.v2.DlpJob\"\'\202\323\344\223\002!\022\037/v2/{name=proj" + + "ects/*/dlpJobs/*}\022{\n\014DeleteDlpJob\022*.goog" + + "le.privacy.dlp.v2.DeleteDlpJobRequest\032\026." + + "google.protobuf.Empty\"\'\202\323\344\223\002!*\037/v2/{name" + + "=projects/*/dlpJobs/*}\022\205\001\n\014CancelDlpJob\022" + + "*.google.privacy.dlp.v2.CancelDlpJobRequ" + + "est\032\026.google.protobuf.Empty\"1\202\323\344\223\002+\"&/v2" + + "/{name=projects/*/dlpJobs/*}:cancel:\001*\022\330" + + "\001\n\024CreateStoredInfoType\0222.google.privacy" + + ".dlp.v2.CreateStoredInfoTypeRequest\032%.go" + + "ogle.privacy.dlp.v2.StoredInfoType\"e\202\323\344\223" + + "\002_\",/v2/{parent=organizations/*}/storedI" + + "nfoTypes:\001*Z,\"\'/v2/{parent=projects/*}/s" + + "toredInfoTypes:\001*\022\330\001\n\024UpdateStoredInfoTy" + + "pe\0222.google.privacy.dlp.v2.UpdateStoredI" + + "nfoTypeRequest\032%.google.privacy.dlp.v2.S" + + "toredInfoType\"e\202\323\344\223\002_2,/v2/{name=organiz" + + "ations/*/storedInfoTypes/*}:\001*Z,2\'/v2/{n" + + "ame=projects/*/storedInfoTypes/*}:\001*\022\314\001\n" + + "\021GetStoredInfoType\022/.google.privacy.dlp." + + "v2.GetStoredInfoTypeRequest\032%.google.pri" + + "vacy.dlp.v2.StoredInfoType\"_\202\323\344\223\002Y\022,/v2/" + + "{name=organizations/*/storedInfoTypes/*}" + + "Z)\022\'/v2/{name=projects/*/storedInfoTypes" + + "/*}\022\335\001\n\023ListStoredInfoTypes\0221.google.pri" + + "vacy.dlp.v2.ListStoredInfoTypesRequest\0322" + + ".google.privacy.dlp.v2.ListStoredInfoTyp" + + "esResponse\"_\202\323\344\223\002Y\022,/v2/{parent=organiza" + + "tions/*}/storedInfoTypesZ)\022\'/v2/{parent=" + + "projects/*}/storedInfoTypes\022\303\001\n\024DeleteSt" + + "oredInfoType\0222.google.privacy.dlp.v2.Del" + + "eteStoredInfoTypeRequest\032\026.google.protob" + + "uf.Empty\"_\202\323\344\223\002Y*,/v2/{name=organization" + + "s/*/storedInfoTypes/*}Z)*\'/v2/{name=proj" + + "ects/*/storedInfoTypes/*}B\215\001\n\031com.google" + + ".privacy.dlp.v2B\010DlpProtoP\001Z8google.gola" + + "ng.org/genproto/googleapis/privacy/dlp/v" + + "2;dlp\252\002\023Google.Cloud.Dlp.V2\312\002\023Google\\Clo" + + "ud\\Dlp\\V2b\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -2380,7 +2381,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_google_privacy_dlp_v2_ListDlpJobsRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_ListDlpJobsRequest_descriptor, - new java.lang.String[] { "Parent", "Filter", "PageSize", "PageToken", "Type", }); + new java.lang.String[] { "Parent", "Filter", "PageSize", "PageToken", "Type", "OrderBy", }); internal_static_google_privacy_dlp_v2_ListDlpJobsResponse_descriptor = getDescriptor().getMessageTypes().get(89); internal_static_google_privacy_dlp_v2_ListDlpJobsResponse_fieldAccessorTable = new diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/DlpStorage.java b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/DlpStorage.java index 56b1579e9d15..6147ebda4afe 100644 --- a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/DlpStorage.java +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/DlpStorage.java @@ -89,6 +89,11 @@ public static void registerAllExtensions( static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_privacy_dlp_v2_DatastoreOptions_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_privacy_dlp_v2_CloudStorageOptions_descriptor; static final @@ -221,68 +226,73 @@ public static void registerAllExtensions( "\"\201\001\n\020DatastoreOptions\0228\n\014partition_id\030\001 " + "\001(\0132\".google.privacy.dlp.v2.PartitionId\022" + "3\n\004kind\030\002 \001(\0132%.google.privacy.dlp.v2.Ki" + - "ndExpression\"\243\003\n\023CloudStorageOptions\022D\n\010" + - "file_set\030\001 \001(\01322.google.privacy.dlp.v2.C" + - "loudStorageOptions.FileSet\022\034\n\024bytes_limi" + - "t_per_file\030\004 \001(\003\022$\n\034bytes_limit_per_file" + - "_percent\030\010 \001(\005\0223\n\nfile_types\030\005 \003(\0162\037.goo" + - "gle.privacy.dlp.v2.FileType\022N\n\rsample_me" + - "thod\030\006 \001(\01627.google.privacy.dlp.v2.Cloud" + - "StorageOptions.SampleMethod\022\033\n\023files_lim" + - "it_percent\030\007 \001(\005\032\026\n\007FileSet\022\013\n\003url\030\001 \001(\t" + - "\"H\n\014SampleMethod\022\035\n\031SAMPLE_METHOD_UNSPEC" + - "IFIED\020\000\022\007\n\003TOP\020\001\022\020\n\014RANDOM_START\020\002\"\"\n\023Cl" + - "oudStorageFileSet\022\013\n\003url\030\001 \001(\t\" \n\020CloudS" + - "toragePath\022\014\n\004path\030\001 \001(\t\"\322\002\n\017BigQueryOpt" + - "ions\022=\n\017table_reference\030\001 \001(\0132$.google.p" + - "rivacy.dlp.v2.BigQueryTable\022:\n\022identifyi" + - "ng_fields\030\002 \003(\0132\036.google.privacy.dlp.v2." + - "FieldId\022\022\n\nrows_limit\030\003 \001(\003\022\032\n\022rows_limi" + - "t_percent\030\006 \001(\005\022J\n\rsample_method\030\004 \001(\01623" + - ".google.privacy.dlp.v2.BigQueryOptions.S" + - "ampleMethod\"H\n\014SampleMethod\022\035\n\031SAMPLE_ME" + - "THOD_UNSPECIFIED\020\000\022\007\n\003TOP\020\001\022\020\n\014RANDOM_ST" + - "ART\020\002\"\232\004\n\rStorageConfig\022D\n\021datastore_opt" + - "ions\030\002 \001(\0132\'.google.privacy.dlp.v2.Datas" + - "toreOptionsH\000\022K\n\025cloud_storage_options\030\003" + - " \001(\0132*.google.privacy.dlp.v2.CloudStorag" + - "eOptionsH\000\022C\n\021big_query_options\030\004 \001(\0132&." + - "google.privacy.dlp.v2.BigQueryOptionsH\000\022" + - "L\n\017timespan_config\030\006 \001(\01323.google.privac" + - "y.dlp.v2.StorageConfig.TimespanConfig\032\332\001" + - "\n\016TimespanConfig\022.\n\nstart_time\030\001 \001(\0132\032.g" + - "oogle.protobuf.Timestamp\022,\n\010end_time\030\002 \001" + - "(\0132\032.google.protobuf.Timestamp\0227\n\017timest" + - "amp_field\030\003 \001(\0132\036.google.privacy.dlp.v2." + - "FieldId\0221\n)enable_auto_population_of_tim" + - "espan_config\030\004 \001(\010B\006\n\004type\"`\n\013BigQueryKe" + - "y\022=\n\017table_reference\030\001 \001(\0132$.google.priv" + - "acy.dlp.v2.BigQueryTable\022\022\n\nrow_number\030\002" + - " \001(\003\">\n\014DatastoreKey\022.\n\nentity_key\030\001 \001(\013" + - "2\032.google.privacy.dlp.v2.Key\"\273\001\n\003Key\0228\n\014" + - "partition_id\030\001 \001(\0132\".google.privacy.dlp." + - "v2.PartitionId\0224\n\004path\030\002 \003(\0132&.google.pr" + - "ivacy.dlp.v2.Key.PathElement\032D\n\013PathElem" + - "ent\022\014\n\004kind\030\001 \001(\t\022\014\n\002id\030\002 \001(\003H\000\022\016\n\004name\030" + - "\003 \001(\tH\000B\t\n\007id_type\"\216\001\n\tRecordKey\022<\n\rdata" + - "store_key\030\002 \001(\0132#.google.privacy.dlp.v2." + - "DatastoreKeyH\000\022;\n\rbig_query_key\030\003 \001(\0132\"." + - "google.privacy.dlp.v2.BigQueryKeyH\000B\006\n\004t" + - "ype\"I\n\rBigQueryTable\022\022\n\nproject_id\030\001 \001(\t" + - "\022\022\n\ndataset_id\030\002 \001(\t\022\020\n\010table_id\030\003 \001(\t\"s" + - "\n\rBigQueryField\0223\n\005table\030\001 \001(\0132$.google." + - "privacy.dlp.v2.BigQueryTable\022-\n\005field\030\002 " + - "\001(\0132\036.google.privacy.dlp.v2.FieldId\"9\n\010E" + - "ntityId\022-\n\005field\030\001 \001(\0132\036.google.privacy." + - "dlp.v2.FieldId*t\n\nLikelihood\022\032\n\026LIKELIHO" + - "OD_UNSPECIFIED\020\000\022\021\n\rVERY_UNLIKELY\020\001\022\014\n\010U" + - "NLIKELY\020\002\022\014\n\010POSSIBLE\020\003\022\n\n\006LIKELY\020\004\022\017\n\013V" + - "ERY_LIKELY\020\005*E\n\010FileType\022\031\n\025FILE_TYPE_UN" + - "SPECIFIED\020\000\022\017\n\013BINARY_FILE\020\001\022\r\n\tTEXT_FIL" + - "E\020\002B\217\001\n\031com.google.privacy.dlp.v2B\nDlpSt" + - "orageP\001Z8google.golang.org/genproto/goog" + - "leapis/privacy/dlp/v2;dlp\252\002\023Google.Cloud" + - ".Dlp.V2\312\002\023Google\\Cloud\\Dlp\\V2b\006proto3" + "ndExpression\"]\n\030CloudStorageRegexFileSet" + + "\022\023\n\013bucket_name\030\001 \001(\t\022\025\n\rinclude_regex\030\002" + + " \003(\t\022\025\n\rexclude_regex\030\003 \003(\t\"\354\003\n\023CloudSto" + + "rageOptions\022D\n\010file_set\030\001 \001(\01322.google.p" + + "rivacy.dlp.v2.CloudStorageOptions.FileSe" + + "t\022\034\n\024bytes_limit_per_file\030\004 \001(\003\022$\n\034bytes" + + "_limit_per_file_percent\030\010 \001(\005\0223\n\nfile_ty" + + "pes\030\005 \003(\0162\037.google.privacy.dlp.v2.FileTy" + + "pe\022N\n\rsample_method\030\006 \001(\01627.google.priva" + + "cy.dlp.v2.CloudStorageOptions.SampleMeth" + + "od\022\033\n\023files_limit_percent\030\007 \001(\005\032_\n\007FileS" + + "et\022\013\n\003url\030\001 \001(\t\022G\n\016regex_file_set\030\002 \001(\0132" + + "/.google.privacy.dlp.v2.CloudStorageRege" + + "xFileSet\"H\n\014SampleMethod\022\035\n\031SAMPLE_METHO" + + "D_UNSPECIFIED\020\000\022\007\n\003TOP\020\001\022\020\n\014RANDOM_START" + + "\020\002\"\"\n\023CloudStorageFileSet\022\013\n\003url\030\001 \001(\t\" " + + "\n\020CloudStoragePath\022\014\n\004path\030\001 \001(\t\"\322\002\n\017Big" + + "QueryOptions\022=\n\017table_reference\030\001 \001(\0132$." + + "google.privacy.dlp.v2.BigQueryTable\022:\n\022i" + + "dentifying_fields\030\002 \003(\0132\036.google.privacy" + + ".dlp.v2.FieldId\022\022\n\nrows_limit\030\003 \001(\003\022\032\n\022r" + + "ows_limit_percent\030\006 \001(\005\022J\n\rsample_method" + + "\030\004 \001(\01623.google.privacy.dlp.v2.BigQueryO" + + "ptions.SampleMethod\"H\n\014SampleMethod\022\035\n\031S" + + "AMPLE_METHOD_UNSPECIFIED\020\000\022\007\n\003TOP\020\001\022\020\n\014R" + + "ANDOM_START\020\002\"\232\004\n\rStorageConfig\022D\n\021datas" + + "tore_options\030\002 \001(\0132\'.google.privacy.dlp." + + "v2.DatastoreOptionsH\000\022K\n\025cloud_storage_o" + + "ptions\030\003 \001(\0132*.google.privacy.dlp.v2.Clo" + + "udStorageOptionsH\000\022C\n\021big_query_options\030" + + "\004 \001(\0132&.google.privacy.dlp.v2.BigQueryOp" + + "tionsH\000\022L\n\017timespan_config\030\006 \001(\01323.googl" + + "e.privacy.dlp.v2.StorageConfig.TimespanC" + + "onfig\032\332\001\n\016TimespanConfig\022.\n\nstart_time\030\001" + + " \001(\0132\032.google.protobuf.Timestamp\022,\n\010end_" + + "time\030\002 \001(\0132\032.google.protobuf.Timestamp\0227" + + "\n\017timestamp_field\030\003 \001(\0132\036.google.privacy" + + ".dlp.v2.FieldId\0221\n)enable_auto_populatio" + + "n_of_timespan_config\030\004 \001(\010B\006\n\004type\"`\n\013Bi" + + "gQueryKey\022=\n\017table_reference\030\001 \001(\0132$.goo" + + "gle.privacy.dlp.v2.BigQueryTable\022\022\n\nrow_" + + "number\030\002 \001(\003\">\n\014DatastoreKey\022.\n\nentity_k" + + "ey\030\001 \001(\0132\032.google.privacy.dlp.v2.Key\"\273\001\n" + + "\003Key\0228\n\014partition_id\030\001 \001(\0132\".google.priv" + + "acy.dlp.v2.PartitionId\0224\n\004path\030\002 \003(\0132&.g" + + "oogle.privacy.dlp.v2.Key.PathElement\032D\n\013" + + "PathElement\022\014\n\004kind\030\001 \001(\t\022\014\n\002id\030\002 \001(\003H\000\022" + + "\016\n\004name\030\003 \001(\tH\000B\t\n\007id_type\"\216\001\n\tRecordKey" + + "\022<\n\rdatastore_key\030\002 \001(\0132#.google.privacy" + + ".dlp.v2.DatastoreKeyH\000\022;\n\rbig_query_key\030" + + "\003 \001(\0132\".google.privacy.dlp.v2.BigQueryKe" + + "yH\000B\006\n\004type\"I\n\rBigQueryTable\022\022\n\nproject_" + + "id\030\001 \001(\t\022\022\n\ndataset_id\030\002 \001(\t\022\020\n\010table_id" + + "\030\003 \001(\t\"s\n\rBigQueryField\0223\n\005table\030\001 \001(\0132$" + + ".google.privacy.dlp.v2.BigQueryTable\022-\n\005" + + "field\030\002 \001(\0132\036.google.privacy.dlp.v2.Fiel" + + "dId\"9\n\010EntityId\022-\n\005field\030\001 \001(\0132\036.google." + + "privacy.dlp.v2.FieldId*t\n\nLikelihood\022\032\n\026" + + "LIKELIHOOD_UNSPECIFIED\020\000\022\021\n\rVERY_UNLIKEL" + + "Y\020\001\022\014\n\010UNLIKELY\020\002\022\014\n\010POSSIBLE\020\003\022\n\n\006LIKEL" + + "Y\020\004\022\017\n\013VERY_LIKELY\020\005*E\n\010FileType\022\031\n\025FILE" + + "_TYPE_UNSPECIFIED\020\000\022\017\n\013BINARY_FILE\020\001\022\r\n\t" + + "TEXT_FILE\020\002B\217\001\n\031com.google.privacy.dlp.v" + + "2B\nDlpStorageP\001Z8google.golang.org/genpr" + + "oto/googleapis/privacy/dlp/v2;dlp\252\002\023Goog" + + "le.Cloud.Dlp.V2\312\002\023Google\\Cloud\\Dlp\\V2b\006p" + + "roto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -388,8 +398,14 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_DatastoreOptions_descriptor, new java.lang.String[] { "PartitionId", "Kind", }); - internal_static_google_privacy_dlp_v2_CloudStorageOptions_descriptor = + internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_descriptor = getDescriptor().getMessageTypes().get(7); + internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_privacy_dlp_v2_CloudStorageRegexFileSet_descriptor, + new java.lang.String[] { "BucketName", "IncludeRegex", "ExcludeRegex", }); + internal_static_google_privacy_dlp_v2_CloudStorageOptions_descriptor = + getDescriptor().getMessageTypes().get(8); internal_static_google_privacy_dlp_v2_CloudStorageOptions_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_CloudStorageOptions_descriptor, @@ -399,27 +415,27 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_google_privacy_dlp_v2_CloudStorageOptions_FileSet_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_CloudStorageOptions_FileSet_descriptor, - new java.lang.String[] { "Url", }); + new java.lang.String[] { "Url", "RegexFileSet", }); internal_static_google_privacy_dlp_v2_CloudStorageFileSet_descriptor = - getDescriptor().getMessageTypes().get(8); + getDescriptor().getMessageTypes().get(9); internal_static_google_privacy_dlp_v2_CloudStorageFileSet_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_CloudStorageFileSet_descriptor, new java.lang.String[] { "Url", }); internal_static_google_privacy_dlp_v2_CloudStoragePath_descriptor = - getDescriptor().getMessageTypes().get(9); + getDescriptor().getMessageTypes().get(10); internal_static_google_privacy_dlp_v2_CloudStoragePath_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_CloudStoragePath_descriptor, new java.lang.String[] { "Path", }); internal_static_google_privacy_dlp_v2_BigQueryOptions_descriptor = - getDescriptor().getMessageTypes().get(10); + getDescriptor().getMessageTypes().get(11); internal_static_google_privacy_dlp_v2_BigQueryOptions_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_BigQueryOptions_descriptor, new java.lang.String[] { "TableReference", "IdentifyingFields", "RowsLimit", "RowsLimitPercent", "SampleMethod", }); internal_static_google_privacy_dlp_v2_StorageConfig_descriptor = - getDescriptor().getMessageTypes().get(11); + getDescriptor().getMessageTypes().get(12); internal_static_google_privacy_dlp_v2_StorageConfig_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_StorageConfig_descriptor, @@ -431,19 +447,19 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_google_privacy_dlp_v2_StorageConfig_TimespanConfig_descriptor, new java.lang.String[] { "StartTime", "EndTime", "TimestampField", "EnableAutoPopulationOfTimespanConfig", }); internal_static_google_privacy_dlp_v2_BigQueryKey_descriptor = - getDescriptor().getMessageTypes().get(12); + getDescriptor().getMessageTypes().get(13); internal_static_google_privacy_dlp_v2_BigQueryKey_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_BigQueryKey_descriptor, new java.lang.String[] { "TableReference", "RowNumber", }); internal_static_google_privacy_dlp_v2_DatastoreKey_descriptor = - getDescriptor().getMessageTypes().get(13); + getDescriptor().getMessageTypes().get(14); internal_static_google_privacy_dlp_v2_DatastoreKey_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_DatastoreKey_descriptor, new java.lang.String[] { "EntityKey", }); internal_static_google_privacy_dlp_v2_Key_descriptor = - getDescriptor().getMessageTypes().get(14); + getDescriptor().getMessageTypes().get(15); internal_static_google_privacy_dlp_v2_Key_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_Key_descriptor, @@ -455,25 +471,25 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_google_privacy_dlp_v2_Key_PathElement_descriptor, new java.lang.String[] { "Kind", "Id", "Name", "IdType", }); internal_static_google_privacy_dlp_v2_RecordKey_descriptor = - getDescriptor().getMessageTypes().get(15); + getDescriptor().getMessageTypes().get(16); internal_static_google_privacy_dlp_v2_RecordKey_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_RecordKey_descriptor, new java.lang.String[] { "DatastoreKey", "BigQueryKey", "Type", }); internal_static_google_privacy_dlp_v2_BigQueryTable_descriptor = - getDescriptor().getMessageTypes().get(16); + getDescriptor().getMessageTypes().get(17); internal_static_google_privacy_dlp_v2_BigQueryTable_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_BigQueryTable_descriptor, new java.lang.String[] { "ProjectId", "DatasetId", "TableId", }); internal_static_google_privacy_dlp_v2_BigQueryField_descriptor = - getDescriptor().getMessageTypes().get(17); + getDescriptor().getMessageTypes().get(18); internal_static_google_privacy_dlp_v2_BigQueryField_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_BigQueryField_descriptor, new java.lang.String[] { "Table", "Field", }); internal_static_google_privacy_dlp_v2_EntityId_descriptor = - getDescriptor().getMessageTypes().get(18); + getDescriptor().getMessageTypes().get(19); internal_static_google_privacy_dlp_v2_EntityId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_privacy_dlp_v2_EntityId_descriptor, diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ListDlpJobsRequest.java b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ListDlpJobsRequest.java index c65836ff349d..278ae0b95dde 100644 --- a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ListDlpJobsRequest.java +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ListDlpJobsRequest.java @@ -25,6 +25,7 @@ private ListDlpJobsRequest() { pageSize_ = 0; pageToken_ = ""; type_ = 0; + orderBy_ = ""; } @java.lang.Override @@ -80,6 +81,12 @@ private ListDlpJobsRequest( type_ = rawValue; break; } + case 50: { + java.lang.String s = input.readStringRequireUtf8(); + + orderBy_ = s; + break; + } default: { if (!parseUnknownFieldProto3( input, unknownFields, extensionRegistry, tag)) { @@ -310,6 +317,66 @@ public com.google.privacy.dlp.v2.DlpJobType getType() { return result == null ? com.google.privacy.dlp.v2.DlpJobType.UNRECOGNIZED : result; } + public static final int ORDER_BY_FIELD_NUMBER = 6; + private volatile java.lang.Object orderBy_; + /** + *
+   * Optional comma separated list of fields to order by,
+   * followed by `asc` or `desc` postfix. This list is case-insensitive,
+   * default sorting order is ascending, redundant space characters are
+   * insignificant.
+   * Example: `name asc, end_time asc, create_time desc`
+   * Supported fields are:
+   * - `create_time`: corresponds to time the job was created.
+   * - `end_time`: corresponds to time the job ended.
+   * - `name`: corresponds to job's name.
+   * - `state`: corresponds to `state`
+   * 
+ * + * string order_by = 6; + */ + public java.lang.String getOrderBy() { + java.lang.Object ref = orderBy_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + orderBy_ = s; + return s; + } + } + /** + *
+   * Optional comma separated list of fields to order by,
+   * followed by `asc` or `desc` postfix. This list is case-insensitive,
+   * default sorting order is ascending, redundant space characters are
+   * insignificant.
+   * Example: `name asc, end_time asc, create_time desc`
+   * Supported fields are:
+   * - `create_time`: corresponds to time the job was created.
+   * - `end_time`: corresponds to time the job ended.
+   * - `name`: corresponds to job's name.
+   * - `state`: corresponds to `state`
+   * 
+ * + * string order_by = 6; + */ + public com.google.protobuf.ByteString + getOrderByBytes() { + java.lang.Object ref = orderBy_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + orderBy_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -339,6 +406,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (type_ != com.google.privacy.dlp.v2.DlpJobType.DLP_JOB_TYPE_UNSPECIFIED.getNumber()) { output.writeEnum(5, type_); } + if (!getOrderByBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, orderBy_); + } unknownFields.writeTo(output); } @@ -365,6 +435,9 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeEnumSize(5, type_); } + if (!getOrderByBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, orderBy_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -390,6 +463,8 @@ public boolean equals(final java.lang.Object obj) { result = result && getPageToken() .equals(other.getPageToken()); result = result && type_ == other.type_; + result = result && getOrderBy() + .equals(other.getOrderBy()); result = result && unknownFields.equals(other.unknownFields); return result; } @@ -411,6 +486,8 @@ public int hashCode() { hash = (53 * hash) + getPageToken().hashCode(); hash = (37 * hash) + TYPE_FIELD_NUMBER; hash = (53 * hash) + type_; + hash = (37 * hash) + ORDER_BY_FIELD_NUMBER; + hash = (53 * hash) + getOrderBy().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -558,6 +635,8 @@ public Builder clear() { type_ = 0; + orderBy_ = ""; + return this; } @@ -589,6 +668,7 @@ public com.google.privacy.dlp.v2.ListDlpJobsRequest buildPartial() { result.pageSize_ = pageSize_; result.pageToken_ = pageToken_; result.type_ = type_; + result.orderBy_ = orderBy_; onBuilt(); return result; } @@ -655,6 +735,10 @@ public Builder mergeFrom(com.google.privacy.dlp.v2.ListDlpJobsRequest other) { if (other.type_ != 0) { setTypeValue(other.getTypeValue()); } + if (!other.getOrderBy().isEmpty()) { + orderBy_ = other.orderBy_; + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -1138,6 +1222,140 @@ public Builder clearType() { onChanged(); return this; } + + private java.lang.Object orderBy_ = ""; + /** + *
+     * Optional comma separated list of fields to order by,
+     * followed by `asc` or `desc` postfix. This list is case-insensitive,
+     * default sorting order is ascending, redundant space characters are
+     * insignificant.
+     * Example: `name asc, end_time asc, create_time desc`
+     * Supported fields are:
+     * - `create_time`: corresponds to time the job was created.
+     * - `end_time`: corresponds to time the job ended.
+     * - `name`: corresponds to job's name.
+     * - `state`: corresponds to `state`
+     * 
+ * + * string order_by = 6; + */ + public java.lang.String getOrderBy() { + java.lang.Object ref = orderBy_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + orderBy_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * Optional comma separated list of fields to order by,
+     * followed by `asc` or `desc` postfix. This list is case-insensitive,
+     * default sorting order is ascending, redundant space characters are
+     * insignificant.
+     * Example: `name asc, end_time asc, create_time desc`
+     * Supported fields are:
+     * - `create_time`: corresponds to time the job was created.
+     * - `end_time`: corresponds to time the job ended.
+     * - `name`: corresponds to job's name.
+     * - `state`: corresponds to `state`
+     * 
+ * + * string order_by = 6; + */ + public com.google.protobuf.ByteString + getOrderByBytes() { + java.lang.Object ref = orderBy_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + orderBy_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * Optional comma separated list of fields to order by,
+     * followed by `asc` or `desc` postfix. This list is case-insensitive,
+     * default sorting order is ascending, redundant space characters are
+     * insignificant.
+     * Example: `name asc, end_time asc, create_time desc`
+     * Supported fields are:
+     * - `create_time`: corresponds to time the job was created.
+     * - `end_time`: corresponds to time the job ended.
+     * - `name`: corresponds to job's name.
+     * - `state`: corresponds to `state`
+     * 
+ * + * string order_by = 6; + */ + public Builder setOrderBy( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + orderBy_ = value; + onChanged(); + return this; + } + /** + *
+     * Optional comma separated list of fields to order by,
+     * followed by `asc` or `desc` postfix. This list is case-insensitive,
+     * default sorting order is ascending, redundant space characters are
+     * insignificant.
+     * Example: `name asc, end_time asc, create_time desc`
+     * Supported fields are:
+     * - `create_time`: corresponds to time the job was created.
+     * - `end_time`: corresponds to time the job ended.
+     * - `name`: corresponds to job's name.
+     * - `state`: corresponds to `state`
+     * 
+ * + * string order_by = 6; + */ + public Builder clearOrderBy() { + + orderBy_ = getDefaultInstance().getOrderBy(); + onChanged(); + return this; + } + /** + *
+     * Optional comma separated list of fields to order by,
+     * followed by `asc` or `desc` postfix. This list is case-insensitive,
+     * default sorting order is ascending, redundant space characters are
+     * insignificant.
+     * Example: `name asc, end_time asc, create_time desc`
+     * Supported fields are:
+     * - `create_time`: corresponds to time the job was created.
+     * - `end_time`: corresponds to time the job ended.
+     * - `name`: corresponds to job's name.
+     * - `state`: corresponds to `state`
+     * 
+ * + * string order_by = 6; + */ + public Builder setOrderByBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + orderBy_ = value; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ListDlpJobsRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ListDlpJobsRequestOrBuilder.java index ecb1ed8a65b7..6c56331f7678 100644 --- a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ListDlpJobsRequestOrBuilder.java +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/java/com/google/privacy/dlp/v2/ListDlpJobsRequestOrBuilder.java @@ -120,4 +120,40 @@ public interface ListDlpJobsRequestOrBuilder extends * .google.privacy.dlp.v2.DlpJobType type = 5; */ com.google.privacy.dlp.v2.DlpJobType getType(); + + /** + *
+   * Optional comma separated list of fields to order by,
+   * followed by `asc` or `desc` postfix. This list is case-insensitive,
+   * default sorting order is ascending, redundant space characters are
+   * insignificant.
+   * Example: `name asc, end_time asc, create_time desc`
+   * Supported fields are:
+   * - `create_time`: corresponds to time the job was created.
+   * - `end_time`: corresponds to time the job ended.
+   * - `name`: corresponds to job's name.
+   * - `state`: corresponds to `state`
+   * 
+ * + * string order_by = 6; + */ + java.lang.String getOrderBy(); + /** + *
+   * Optional comma separated list of fields to order by,
+   * followed by `asc` or `desc` postfix. This list is case-insensitive,
+   * default sorting order is ascending, redundant space characters are
+   * insignificant.
+   * Example: `name asc, end_time asc, create_time desc`
+   * Supported fields are:
+   * - `create_time`: corresponds to time the job was created.
+   * - `end_time`: corresponds to time the job ended.
+   * - `name`: corresponds to job's name.
+   * - `state`: corresponds to `state`
+   * 
+ * + * string order_by = 6; + */ + com.google.protobuf.ByteString + getOrderByBytes(); } diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/proto/google/privacy/dlp/v2/dlp.proto b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/proto/google/privacy/dlp/v2/dlp.proto index 0e3931e74e12..a23eef6147d7 100644 --- a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/proto/google/privacy/dlp/v2/dlp.proto +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/proto/google/privacy/dlp/v2/dlp.proto @@ -648,9 +648,15 @@ message Location { // Findings container location data. message ContentLocation { // Name of the container where the finding is located. - // The top level name is the source file name or table name. Nested names - // could be absent if the embedded object has no string identifier - // (for an example an image contained within a document). + // The top level name is the source file name or table name. Names of some + // common storage containers are formatted as follows: + // + // * BigQuery tables: `:.` + // * Cloud Storage files: `gs:///` + // * Datastore namespace: + // + // Nested names could be absent if the embedded object has no string + // identifier (for an example an image contained within a document). string container_name = 1; // Type of the container within the file with location of the finding. @@ -2648,6 +2654,21 @@ message ListDlpJobsRequest { // The type of job. Defaults to `DlpJobType.INSPECT` DlpJobType type = 5; + + // Optional comma separated list of fields to order by, + // followed by `asc` or `desc` postfix. This list is case-insensitive, + // default sorting order is ascending, redundant space characters are + // insignificant. + // + // Example: `name asc, end_time asc, create_time desc` + // + // Supported fields are: + // + // - `create_time`: corresponds to time the job was created. + // - `end_time`: corresponds to time the job ended. + // - `name`: corresponds to job's name. + // - `state`: corresponds to `state` + string order_by = 6; } // The response message for listing DLP jobs. diff --git a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/proto/google/privacy/dlp/v2/storage.proto b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/proto/google/privacy/dlp/v2/storage.proto index c86a6dd57a31..f17ca6f15f7e 100644 --- a/google-api-grpc/proto-google-cloud-dlp-v2/src/main/proto/google/privacy/dlp/v2/storage.proto +++ b/google-api-grpc/proto-google-cloud-dlp-v2/src/main/proto/google/privacy/dlp/v2/storage.proto @@ -257,14 +257,76 @@ message DatastoreOptions { KindExpression kind = 2; } +// Message representing a set of files in a Cloud Storage bucket. Regular +// expressions are used to allow fine-grained control over which files in the +// bucket to include. +// +// Included files are those that match at least one item in `include_regex` and +// do not match any items in `exclude_regex`. Note that a file that matches +// items from both lists will _not_ be included. For a match to occur, the +// entire file path (i.e., everything in the url after the bucket name) must +// match the regular expression. +// +// For example, given the input `{bucket_name: "mybucket", include_regex: +// ["directory1/.*"], exclude_regex: +// ["directory1/excluded.*"]}`: +// +// * `gs://mybucket/directory1/myfile` will be included +// * `gs://mybucket/directory1/directory2/myfile` will be included (`.*` matches +// across `/`) +// * `gs://mybucket/directory0/directory1/myfile` will _not_ be included (the +// full path doesn't match any items in `include_regex`) +// * `gs://mybucket/directory1/excludedfile` will _not_ be included (the path +// matches an item in `exclude_regex`) +// +// If `include_regex` is left empty, it will match all files by default +// (this is equivalent to setting `include_regex: [".*"]`). +// +// Some other common use cases: +// +// * `{bucket_name: "mybucket", exclude_regex: [".*\.pdf"]}` will include all +// files in `mybucket` except for .pdf files +// * `{bucket_name: "mybucket", include_regex: ["directory/[^/]+"]}` will +// include all files directly under `gs://mybucket/directory/`, without matching +// across `/` +message CloudStorageRegexFileSet { + // The name of a Cloud Storage bucket. Required. + string bucket_name = 1; + + // A list of regular expressions matching file paths to include. All files in + // the bucket that match at least one of these regular expressions will be + // included in the set of files, except for those that also match an item in + // `exclude_regex`. Leaving this field empty will match all files by default + // (this is equivalent to including `.*` in the list). + // + // Regular expressions use RE2 + // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found + // under the google/re2 repository on GitHub. + repeated string include_regex = 2; + + // A list of regular expressions matching file paths to exclude. All files in + // the bucket that match at least one of these regular expressions will be + // excluded from the scan. + // + // Regular expressions use RE2 + // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found + // under the google/re2 repository on GitHub. + repeated string exclude_regex = 3; +} + // Options defining a file or a set of files within a Google Cloud Storage // bucket. message CloudStorageOptions { // Set of files to scan. message FileSet { // The Cloud Storage url of the file(s) to scan, in the format - // `gs:///`. Trailing wildcard in the path is allowed. + // `gs:///`. Trailing wildcard in the path is allowed. Exactly + // one of `url` or `regex_file_set` must be set. string url = 1; + + // The regex-filtered set of files to scan. Exactly one of `url` or + // `regex_file_set` must be set. + CloudStorageRegexFileSet regex_file_set = 2; } // How to sample bytes if not all bytes are scanned. Meaningful only when used