@google-cloud/storage-control 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,13 +16,18 @@ syntax = "proto3";
16
16
 
17
17
  package google.storage.control.v2;
18
18
 
19
+ import "google/api/annotations.proto";
19
20
  import "google/api/client.proto";
20
21
  import "google/api/field_behavior.proto";
21
22
  import "google/api/field_info.proto";
22
23
  import "google/api/resource.proto";
23
24
  import "google/api/routing.proto";
25
+ import "google/iam/v1/iam_policy.proto";
26
+ import "google/iam/v1/policy.proto";
24
27
  import "google/longrunning/operations.proto";
28
+ import "google/protobuf/duration.proto";
25
29
  import "google/protobuf/empty.proto";
30
+ import "google/protobuf/field_mask.proto";
26
31
  import "google/protobuf/timestamp.proto";
27
32
 
28
33
  option csharp_namespace = "Google.Cloud.Storage.Control.V2";
@@ -158,6 +163,208 @@ service StorageControl {
158
163
  };
159
164
  option (google.api.method_signature) = "parent";
160
165
  }
166
+
167
+ // Creates an Anywhere Cache instance.
168
+ rpc CreateAnywhereCache(CreateAnywhereCacheRequest)
169
+ returns (google.longrunning.Operation) {
170
+ option (google.api.routing) = {
171
+ routing_parameters { field: "parent" path_template: "{bucket=**}" }
172
+ };
173
+ option (google.api.method_signature) = "parent,anywhere_cache";
174
+ option (google.longrunning.operation_info) = {
175
+ response_type: "AnywhereCache"
176
+ metadata_type: "CreateAnywhereCacheMetadata"
177
+ };
178
+ }
179
+
180
+ // Updates an Anywhere Cache instance. Mutable fields include `ttl` and
181
+ // `admission_policy`.
182
+ rpc UpdateAnywhereCache(UpdateAnywhereCacheRequest)
183
+ returns (google.longrunning.Operation) {
184
+ option (google.api.routing) = {
185
+ routing_parameters {
186
+ field: "anywhere_cache.name"
187
+ path_template: "{bucket=projects/*/buckets/*}/**"
188
+ }
189
+ };
190
+ option (google.api.method_signature) = "anywhere_cache,update_mask";
191
+ option (google.longrunning.operation_info) = {
192
+ response_type: "AnywhereCache"
193
+ metadata_type: "UpdateAnywhereCacheMetadata"
194
+ };
195
+ }
196
+
197
+ // Disables an Anywhere Cache instance. A disabled instance is read-only. The
198
+ // disablement could be revoked by calling ResumeAnywhereCache. The cache
199
+ // instance will be deleted automatically if it remains in the disabled state
200
+ // for at least one hour.
201
+ rpc DisableAnywhereCache(DisableAnywhereCacheRequest)
202
+ returns (AnywhereCache) {
203
+ option (google.api.routing) = {
204
+ routing_parameters {
205
+ field: "name"
206
+ path_template: "{bucket=projects/*/buckets/*}/**"
207
+ }
208
+ };
209
+ option (google.api.method_signature) = "name";
210
+ }
211
+
212
+ // Pauses an Anywhere Cache instance.
213
+ rpc PauseAnywhereCache(PauseAnywhereCacheRequest) returns (AnywhereCache) {
214
+ option (google.api.routing) = {
215
+ routing_parameters {
216
+ field: "name"
217
+ path_template: "{bucket=projects/*/buckets/*}/**"
218
+ }
219
+ };
220
+ option (google.api.method_signature) = "name";
221
+ }
222
+
223
+ // Resumes a disabled or paused Anywhere Cache instance.
224
+ rpc ResumeAnywhereCache(ResumeAnywhereCacheRequest) returns (AnywhereCache) {
225
+ option (google.api.routing) = {
226
+ routing_parameters {
227
+ field: "name"
228
+ path_template: "{bucket=projects/*/buckets/*}/**"
229
+ }
230
+ };
231
+ option (google.api.method_signature) = "name";
232
+ }
233
+
234
+ // Gets an Anywhere Cache instance.
235
+ rpc GetAnywhereCache(GetAnywhereCacheRequest) returns (AnywhereCache) {
236
+ option (google.api.routing) = {
237
+ routing_parameters {
238
+ field: "name"
239
+ path_template: "{bucket=projects/*/buckets/*}/**"
240
+ }
241
+ };
242
+ option (google.api.method_signature) = "name";
243
+ }
244
+
245
+ // Lists Anywhere Cache instances for a given bucket.
246
+ rpc ListAnywhereCaches(ListAnywhereCachesRequest)
247
+ returns (ListAnywhereCachesResponse) {
248
+ option (google.api.routing) = {
249
+ routing_parameters { field: "parent" path_template: "{bucket=**}" }
250
+ };
251
+ option (google.api.method_signature) = "parent";
252
+ }
253
+
254
+ // Returns the Project scoped singleton IntelligenceConfig resource.
255
+ rpc GetProjectIntelligenceConfig(GetProjectIntelligenceConfigRequest)
256
+ returns (IntelligenceConfig) {
257
+ option (google.api.http) = {
258
+ get: "/v2/{name=projects/*/locations/*/intelligenceConfig}"
259
+ };
260
+ option (google.api.method_signature) = "name";
261
+ }
262
+
263
+ // Updates the Project scoped singleton IntelligenceConfig resource.
264
+ rpc UpdateProjectIntelligenceConfig(UpdateProjectIntelligenceConfigRequest)
265
+ returns (IntelligenceConfig) {
266
+ option (google.api.http) = {
267
+ patch: "/v2/{intelligence_config.name=projects/*/locations/*/intelligenceConfig}"
268
+ body: "intelligence_config"
269
+ };
270
+ option (google.api.method_signature) = "intelligence_config,update_mask";
271
+ }
272
+
273
+ // Returns the Folder scoped singleton IntelligenceConfig resource.
274
+ rpc GetFolderIntelligenceConfig(GetFolderIntelligenceConfigRequest)
275
+ returns (IntelligenceConfig) {
276
+ option (google.api.http) = {
277
+ get: "/v2/{name=folders/*/locations/*/intelligenceConfig}"
278
+ };
279
+ option (google.api.method_signature) = "name";
280
+ }
281
+
282
+ // Updates the Folder scoped singleton IntelligenceConfig resource.
283
+ rpc UpdateFolderIntelligenceConfig(UpdateFolderIntelligenceConfigRequest)
284
+ returns (IntelligenceConfig) {
285
+ option (google.api.http) = {
286
+ patch: "/v2/{intelligence_config.name=folders/*/locations/*/intelligenceConfig}"
287
+ body: "intelligence_config"
288
+ };
289
+ option (google.api.method_signature) = "intelligence_config,update_mask";
290
+ }
291
+
292
+ // Returns the Organization scoped singleton IntelligenceConfig resource.
293
+ rpc GetOrganizationIntelligenceConfig(
294
+ GetOrganizationIntelligenceConfigRequest) returns (IntelligenceConfig) {
295
+ option (google.api.http) = {
296
+ get: "/v2/{name=organizations/*/locations/*/intelligenceConfig}"
297
+ };
298
+ option (google.api.method_signature) = "name";
299
+ }
300
+
301
+ // Updates the Organization scoped singleton IntelligenceConfig resource.
302
+ rpc UpdateOrganizationIntelligenceConfig(
303
+ UpdateOrganizationIntelligenceConfigRequest)
304
+ returns (IntelligenceConfig) {
305
+ option (google.api.http) = {
306
+ patch: "/v2/{intelligence_config.name=organizations/*/locations/*/intelligenceConfig}"
307
+ body: "intelligence_config"
308
+ };
309
+ option (google.api.method_signature) = "intelligence_config,update_mask";
310
+ }
311
+
312
+ // Gets the IAM policy for a specified bucket.
313
+ // The `resource` field in the request should be
314
+ // `projects/_/buckets/{bucket}` for a bucket, or
315
+ // `projects/_/buckets/{bucket}/managedFolders/{managedFolder}`
316
+ // for a managed folder.
317
+ rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest)
318
+ returns (google.iam.v1.Policy) {
319
+ option (google.api.routing) = {
320
+ routing_parameters { field: "resource" path_template: "{bucket=**}" }
321
+ routing_parameters {
322
+ field: "resource"
323
+ path_template: "{bucket=projects/*/buckets/*}/**"
324
+ }
325
+ };
326
+ option (google.api.method_signature) = "resource";
327
+ }
328
+
329
+ // Updates an IAM policy for the specified bucket.
330
+ // The `resource` field in the request should be
331
+ // `projects/_/buckets/{bucket}` for a bucket, or
332
+ // `projects/_/buckets/{bucket}/managedFolders/{managedFolder}`
333
+ // for a managed folder.
334
+ rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest)
335
+ returns (google.iam.v1.Policy) {
336
+ option (google.api.routing) = {
337
+ routing_parameters { field: "resource" path_template: "{bucket=**}" }
338
+ routing_parameters {
339
+ field: "resource"
340
+ path_template: "{bucket=projects/*/buckets/*}/**"
341
+ }
342
+ };
343
+ option (google.api.method_signature) = "resource,policy";
344
+ }
345
+
346
+ // Tests a set of permissions on the given bucket, object, or managed folder
347
+ // to see which, if any, are held by the caller.
348
+ // The `resource` field in the request should be
349
+ // `projects/_/buckets/{bucket}` for a bucket,
350
+ // `projects/_/buckets/{bucket}/objects/{object}` for an object, or
351
+ // `projects/_/buckets/{bucket}/managedFolders/{managedFolder}`
352
+ // for a managed folder.
353
+ rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest)
354
+ returns (google.iam.v1.TestIamPermissionsResponse) {
355
+ option (google.api.routing) = {
356
+ routing_parameters { field: "resource" path_template: "{bucket=**}" }
357
+ routing_parameters {
358
+ field: "resource"
359
+ path_template: "{bucket=projects/*/buckets/*}/objects/**"
360
+ }
361
+ routing_parameters {
362
+ field: "resource"
363
+ path_template: "{bucket=projects/*/buckets/*}/managedFolders/**"
364
+ }
365
+ };
366
+ option (google.api.method_signature) = "resource,permissions";
367
+ }
161
368
  }
162
369
 
163
370
  // Contains information about a pending rename operation.
@@ -424,11 +631,13 @@ message StorageLayout {
424
631
  option (google.api.resource) = {
425
632
  type: "storage.googleapis.com/StorageLayout"
426
633
  pattern: "projects/{project}/buckets/{bucket}/storageLayout"
634
+ plural: "storageLayouts"
635
+ singular: "storageLayout"
427
636
  };
428
637
 
429
638
  // Configuration for Custom Dual Regions. It should specify precisely two
430
639
  // eligible regions within the same Multiregion. More information on regions
431
- // may be found [https://cloud.google.com/storage/docs/locations][here].
640
+ // may be found [here](https://cloud.google.com/storage/docs/locations).
432
641
  message CustomPlacementConfig {
433
642
  // List of locations to use for data placement.
434
643
  repeated string data_locations = 1;
@@ -642,3 +851,559 @@ message ListManagedFoldersResponse {
642
851
  // this value in a subsequent request to return the next page of results.
643
852
  string next_page_token = 2;
644
853
  }
854
+
855
+ // Message returned in the metadata field of the Operation resource for
856
+ // CreateAnywhereCache operations.
857
+ message CreateAnywhereCacheMetadata {
858
+ // Generic metadata for the long running operation.
859
+ CommonLongRunningOperationMetadata common_metadata = 1;
860
+
861
+ // Anywhere Cache ID.
862
+ optional string anywhere_cache_id = 2;
863
+
864
+ // The zone in which the cache instance is running. For example,
865
+ // us-central1-a.
866
+ optional string zone = 6;
867
+
868
+ // Anywhere Cache entry's TTL. A cache-level config that is applied to all new
869
+ // cache entries on admission. Default ttl value (24hrs) is applied if not
870
+ // specified in the create request.
871
+ optional google.protobuf.Duration ttl = 3;
872
+
873
+ // Anywhere Cache entry Admission Policy in kebab-case (e.g.,
874
+ // "admit-on-first-miss"). Default admission policy (admit-on-first-miss) is
875
+ // applied if not specified in the create request.
876
+ optional string admission_policy = 5;
877
+ }
878
+
879
+ // Message returned in the metadata field of the Operation resource for
880
+ // UpdateAnywhereCache operation.
881
+ message UpdateAnywhereCacheMetadata {
882
+ // Generic metadata for the long running operation.
883
+ CommonLongRunningOperationMetadata common_metadata = 1;
884
+
885
+ // Anywhere Cache ID.
886
+ optional string anywhere_cache_id = 2;
887
+
888
+ // The zone in which the cache instance is running. For example,
889
+ // us-central1-a.
890
+ optional string zone = 5;
891
+
892
+ // Anywhere Cache entry's TTL between 1h and 7days. A cache-level config that
893
+ // is applied to all new cache entries on admission. If `ttl` is pending
894
+ // update, this field equals to the new value specified in the Update request.
895
+ optional google.protobuf.Duration ttl = 3;
896
+
897
+ // L4 Cache entry Admission Policy in kebab-case (e.g.,
898
+ // "admit-on-first-miss"). If `admission_policy` is pending
899
+ // update, this field equals to the new value specified in the Update request.
900
+ optional string admission_policy = 4;
901
+ }
902
+
903
+ // An Anywhere Cache Instance.
904
+ message AnywhereCache {
905
+ option (google.api.resource) = {
906
+ type: "storage.googleapis.com/AnywhereCache"
907
+ pattern: "projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}"
908
+ plural: "anywhereCaches"
909
+ singular: "anywhereCache"
910
+ };
911
+
912
+ // Immutable. The resource name of this AnywhereCache.
913
+ // Format:
914
+ // `projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}`
915
+ string name = 1 [(google.api.field_behavior) = IMMUTABLE];
916
+
917
+ // Immutable. The zone in which the cache instance is running. For example,
918
+ // us-central1-a.
919
+ string zone = 10 [(google.api.field_behavior) = IMMUTABLE];
920
+
921
+ // Cache entry TTL (ranges between 1h to 7d). This is a cache-level config
922
+ // that defines how long a cache entry can live. Default ttl value (24hrs)
923
+ // is applied if not specified in the create request. TTL must be in whole
924
+ // seconds.
925
+ google.protobuf.Duration ttl = 3;
926
+
927
+ // Cache admission policy. Valid policies includes:
928
+ // `admit-on-first-miss` and `admit-on-second-miss`. Defaults to
929
+ // `admit-on-first-miss`. Default value is applied if not specified in the
930
+ // create request.
931
+ string admission_policy = 9;
932
+
933
+ // Output only. Cache state including RUNNING, CREATING, DISABLED and PAUSED.
934
+ string state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
935
+
936
+ // Output only. Time when Anywhere cache instance is allocated.
937
+ google.protobuf.Timestamp create_time = 6
938
+ [(google.api.field_behavior) = OUTPUT_ONLY];
939
+
940
+ // Output only. Time when Anywhere cache instance is last updated, including
941
+ // creation.
942
+ google.protobuf.Timestamp update_time = 7
943
+ [(google.api.field_behavior) = OUTPUT_ONLY];
944
+
945
+ // Output only. True if there is an active update operation against this cache
946
+ // instance. Subsequential update requests will be rejected if this field is
947
+ // true. Output only.
948
+ bool pending_update = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
949
+ }
950
+
951
+ // Request message for CreateAnywhereCache.
952
+ message CreateAnywhereCacheRequest {
953
+ // Required. The bucket to which this cache belongs.
954
+ // Format: `projects/{project}/buckets/{bucket}`
955
+ string parent = 1 [
956
+ (google.api.field_behavior) = REQUIRED,
957
+ (google.api.resource_reference) = {
958
+ child_type: "storage.googleapis.com/AnywhereCache"
959
+ }
960
+ ];
961
+
962
+ // Required. Properties of the Anywhere Cache instance being created.
963
+ // The parent bucket name is specified in the `parent` field. Server uses the
964
+ // default value of `ttl` or `admission_policy` if not specified in
965
+ // request.
966
+ AnywhereCache anywhere_cache = 3 [(google.api.field_behavior) = REQUIRED];
967
+
968
+ // Optional. A unique identifier for this request. UUID is the recommended
969
+ // format, but other formats are still accepted. This request is only
970
+ // idempotent if a `request_id` is provided.
971
+ string request_id = 4 [
972
+ (google.api.field_info).format = UUID4,
973
+ (google.api.field_behavior) = OPTIONAL
974
+ ];
975
+ }
976
+
977
+ // Request message for UpdateAnywhereCache.
978
+ message UpdateAnywhereCacheRequest {
979
+ // Required. The Anywhere Cache instance to be updated.
980
+ AnywhereCache anywhere_cache = 1 [(google.api.field_behavior) = REQUIRED];
981
+
982
+ // Required. List of fields to be updated. Mutable fields of AnywhereCache
983
+ // include `ttl` and `admission_policy`.
984
+ //
985
+ // To specify ALL fields, specify a single field with the value `*`. Note: We
986
+ // recommend against doing this. If a new field is introduced at a later time,
987
+ // an older client updating with the `*` may accidentally reset the new
988
+ // field's value.
989
+ //
990
+ // Not specifying any fields is an error.
991
+ google.protobuf.FieldMask update_mask = 2
992
+ [(google.api.field_behavior) = REQUIRED];
993
+
994
+ // Optional. A unique identifier for this request. UUID is the recommended
995
+ // format, but other formats are still accepted. This request is only
996
+ // idempotent if a `request_id` is provided.
997
+ string request_id = 3 [
998
+ (google.api.field_info).format = UUID4,
999
+ (google.api.field_behavior) = OPTIONAL
1000
+ ];
1001
+ }
1002
+
1003
+ // Request message for DisableAnywhereCache.
1004
+ message DisableAnywhereCacheRequest {
1005
+ // Required. The name field in the request should be:
1006
+ // `projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}`
1007
+ string name = 1 [
1008
+ (google.api.field_behavior) = REQUIRED,
1009
+ (google.api.resource_reference) = {
1010
+ type: "storage.googleapis.com/AnywhereCache"
1011
+ }
1012
+ ];
1013
+
1014
+ // Optional. A unique identifier for this request. UUID is the recommended
1015
+ // format, but other formats are still accepted. This request is only
1016
+ // idempotent if a `request_id` is provided.
1017
+ string request_id = 2 [
1018
+ (google.api.field_info).format = UUID4,
1019
+ (google.api.field_behavior) = OPTIONAL
1020
+ ];
1021
+ }
1022
+
1023
+ // Request message for PauseAnywhereCache.
1024
+ message PauseAnywhereCacheRequest {
1025
+ // Required. The name field in the request should be:
1026
+ // `projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}`
1027
+ string name = 1 [
1028
+ (google.api.field_behavior) = REQUIRED,
1029
+ (google.api.resource_reference) = {
1030
+ type: "storage.googleapis.com/AnywhereCache"
1031
+ }
1032
+ ];
1033
+
1034
+ // Optional. A unique identifier for this request. UUID is the recommended
1035
+ // format, but other formats are still accepted. This request is only
1036
+ // idempotent if a `request_id` is provided.
1037
+ string request_id = 2 [
1038
+ (google.api.field_info).format = UUID4,
1039
+ (google.api.field_behavior) = OPTIONAL
1040
+ ];
1041
+ }
1042
+
1043
+ // Request message for ResumeAnywhereCache.
1044
+ message ResumeAnywhereCacheRequest {
1045
+ // Required. The name field in the request should be:
1046
+ // `projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}`
1047
+ string name = 1 [
1048
+ (google.api.field_behavior) = REQUIRED,
1049
+ (google.api.resource_reference) = {
1050
+ type: "storage.googleapis.com/AnywhereCache"
1051
+ }
1052
+ ];
1053
+
1054
+ // Optional. A unique identifier for this request. UUID is the recommended
1055
+ // format, but other formats are still accepted. This request is only
1056
+ // idempotent if a `request_id` is provided.
1057
+ string request_id = 2 [
1058
+ (google.api.field_info).format = UUID4,
1059
+ (google.api.field_behavior) = OPTIONAL
1060
+ ];
1061
+ }
1062
+
1063
+ // Request message for GetAnywhereCache.
1064
+ message GetAnywhereCacheRequest {
1065
+ // Required. The name field in the request should be:
1066
+ // `projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}`
1067
+ string name = 1 [
1068
+ (google.api.field_behavior) = REQUIRED,
1069
+ (google.api.resource_reference) = {
1070
+ type: "storage.googleapis.com/AnywhereCache"
1071
+ }
1072
+ ];
1073
+
1074
+ // Optional. A unique identifier for this request. UUID is the recommended
1075
+ // format, but other formats are still accepted.
1076
+ string request_id = 2 [
1077
+ (google.api.field_info).format = UUID4,
1078
+ (google.api.field_behavior) = OPTIONAL
1079
+ ];
1080
+ }
1081
+
1082
+ // Request message for ListAnywhereCaches.
1083
+ message ListAnywhereCachesRequest {
1084
+ // Required. The bucket to which this cache belongs.
1085
+ string parent = 1 [
1086
+ (google.api.field_behavior) = REQUIRED,
1087
+ (google.api.resource_reference) = {
1088
+ child_type: "storage.googleapis.com/AnywhereCache"
1089
+ }
1090
+ ];
1091
+
1092
+ // Maximum number of caches to return in a single response.
1093
+ // The service will use this parameter or 1,000 items, whichever is smaller.
1094
+ int32 page_size = 2;
1095
+
1096
+ // A previously-returned page token representing part of the larger set of
1097
+ // results to view.
1098
+ string page_token = 3;
1099
+
1100
+ // Optional. A unique identifier for this request. UUID is the recommended
1101
+ // format, but other formats are still accepted.
1102
+ string request_id = 4 [
1103
+ (google.api.field_info).format = UUID4,
1104
+ (google.api.field_behavior) = OPTIONAL
1105
+ ];
1106
+ }
1107
+
1108
+ // Response message for ListAnywhereCaches.
1109
+ message ListAnywhereCachesResponse {
1110
+ // The list of items.
1111
+ repeated AnywhereCache anywhere_caches = 1;
1112
+
1113
+ // A token, which can be sent as `page_token` to retrieve the next page.
1114
+ // If this field is omitted, there are no subsequent pages.
1115
+ string next_page_token = 2;
1116
+ }
1117
+
1118
+ // The `IntelligenceConfig` resource associated with your organization, folder,
1119
+ // or project.
1120
+ message IntelligenceConfig {
1121
+ option (google.api.resource) = {
1122
+ type: "storage.googleapis.com/IntelligenceConfig"
1123
+ pattern: "folders/{folder}/locations/{location}/intelligenceConfig"
1124
+ pattern: "organizations/{org}/locations/{location}/intelligenceConfig"
1125
+ pattern: "projects/{project}/locations/{location}/intelligenceConfig"
1126
+ plural: "intelligenceConfigs"
1127
+ singular: "intelligenceConfig"
1128
+ };
1129
+
1130
+ // The edition configuration of the `IntelligenceConfig` resource. This
1131
+ // signifies the edition used for configuring the `IntelligenceConfig`
1132
+ // resource and can only take the following values:
1133
+ // `EDITION_CONFIG_UNSPECIFIED`, `INHERIT`, `DISABLED`, `STANDARD` and
1134
+ // `TRIAL`.
1135
+ enum EditionConfig {
1136
+ // This is an unknown edition of the resource.
1137
+ EDITION_CONFIG_UNSPECIFIED = 0;
1138
+
1139
+ // The inherited edition from the parent and filters. This is the default
1140
+ // edition when there is no `IntelligenceConfig` setup for a GCP resource.
1141
+ INHERIT = 1;
1142
+
1143
+ // The edition configuration is disabled for the `IntelligenceConfig`
1144
+ // resource and its children. Filters are not applicable.
1145
+ DISABLED = 2;
1146
+
1147
+ // The `IntelligenceConfig` resource is of STANDARD edition.
1148
+ STANDARD = 3;
1149
+
1150
+ // The `IntelligenceConfig` resource is available in `TRIAL` edition. During
1151
+ // the trial period, Cloud Storage does not charge for Storage Intelligence
1152
+ // usage. You can specify the buckets to include in the trial period by
1153
+ // using filters. At the end of the trial period, the `IntelligenceConfig`
1154
+ // resource is upgraded to `STANDARD` edition.
1155
+ TRIAL = 5;
1156
+ }
1157
+
1158
+ // Filter over location and bucket using include or exclude semantics.
1159
+ // Resources that match the include or exclude filter are exclusively included
1160
+ // or excluded from the Storage Intelligence plan.
1161
+ message Filter {
1162
+ // Collection of bucket locations.
1163
+ message CloudStorageLocations {
1164
+ // Optional. Bucket locations. Location can be any of the Cloud Storage
1165
+ // regions specified in lower case format. For example, `us-east1`,
1166
+ // `us-west1`.
1167
+ repeated string locations = 1 [(google.api.field_behavior) = OPTIONAL];
1168
+ }
1169
+
1170
+ // Collection of buckets.
1171
+ message CloudStorageBuckets {
1172
+ // Optional. A regex pattern for matching bucket names. Regex should
1173
+ // follow the syntax specified in
1174
+ // [google/re2](https://github.com/google/re2). For example,
1175
+ // `^sample_.*` matches all buckets of the form
1176
+ // `gs://sample_bucket-1`, `gs://sample_bucket-2`,
1177
+ // `gs://sample_bucket-n` but not `gs://test_sample_bucket`.
1178
+ // If you want to match a single bucket, say `gs://sample_bucket`,
1179
+ // use `sample_bucket`.
1180
+ repeated string bucket_id_regexes = 1
1181
+ [(google.api.field_behavior) = OPTIONAL];
1182
+ }
1183
+
1184
+ // Bucket locations to include or exclude.
1185
+ oneof cloud_storage_locations {
1186
+ // Bucket locations to include.
1187
+ CloudStorageLocations included_cloud_storage_locations = 1;
1188
+
1189
+ // Bucket locations to exclude.
1190
+ CloudStorageLocations excluded_cloud_storage_locations = 2;
1191
+ }
1192
+
1193
+ // Buckets to include or exclude.
1194
+ oneof cloud_storage_buckets {
1195
+ // Buckets to include.
1196
+ CloudStorageBuckets included_cloud_storage_buckets = 3;
1197
+
1198
+ // Buckets to exclude.
1199
+ CloudStorageBuckets excluded_cloud_storage_buckets = 4;
1200
+ }
1201
+ }
1202
+
1203
+ // The effective `IntelligenceConfig` for the resource.
1204
+ message EffectiveIntelligenceConfig {
1205
+ // The effective edition of the `IntelligenceConfig` resource.
1206
+ enum EffectiveEdition {
1207
+ // This is an unknown edition of the resource.
1208
+ EFFECTIVE_EDITION_UNSPECIFIED = 0;
1209
+
1210
+ // No edition.
1211
+ NONE = 1;
1212
+
1213
+ // The `IntelligenceConfig` resource is of STANDARD edition.
1214
+ STANDARD = 2;
1215
+ }
1216
+
1217
+ // Output only. The `IntelligenceConfig` edition that is applicable for the
1218
+ // resource.
1219
+ EffectiveEdition effective_edition = 1
1220
+ [(google.api.field_behavior) = OUTPUT_ONLY];
1221
+
1222
+ // Output only. The `IntelligenceConfig` resource that is applied for the
1223
+ // target resource. Format:
1224
+ // `{organizations|folders|projects}/{id}/locations/{location}/intelligenceConfig`
1225
+ string intelligence_config = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
1226
+ }
1227
+
1228
+ // The trial configuration of the `IntelligenceConfig` resource.
1229
+ message TrialConfig {
1230
+ // Output only. The time at which the trial expires.
1231
+ google.protobuf.Timestamp expire_time = 3
1232
+ [(google.api.field_behavior) = OUTPUT_ONLY];
1233
+ }
1234
+
1235
+ // Identifier. The name of the `IntelligenceConfig` resource associated with
1236
+ // your organization, folder, or project.
1237
+ //
1238
+ // The name format varies based on the GCP resource hierarchy as follows:
1239
+ //
1240
+ // * For project:
1241
+ // `projects/{project_number}/locations/global/intelligenceConfig`
1242
+ // * For organization:
1243
+ // `organizations/{org_id}/locations/global/intelligenceConfig`
1244
+ // * For folder: `folders/{folder_id}/locations/global/intelligenceConfig`
1245
+ string name = 1 [(google.api.field_behavior) = IDENTIFIER];
1246
+
1247
+ // Optional. The edition configuration of the `IntelligenceConfig` resource.
1248
+ EditionConfig edition_config = 2 [(google.api.field_behavior) = OPTIONAL];
1249
+
1250
+ // Output only. The time at which the `IntelligenceConfig` resource is last
1251
+ // updated.
1252
+ google.protobuf.Timestamp update_time = 3
1253
+ [(google.api.field_behavior) = OUTPUT_ONLY];
1254
+
1255
+ // Optional. Filter over location and bucket.
1256
+ Filter filter = 4 [(google.api.field_behavior) = OPTIONAL];
1257
+
1258
+ // Output only. The `IntelligenceConfig` resource that is applicable for the
1259
+ // resource.
1260
+ EffectiveIntelligenceConfig effective_intelligence_config = 5
1261
+ [(google.api.field_behavior) = OUTPUT_ONLY];
1262
+
1263
+ // The trial configuration of the `IntelligenceConfig` resource.
1264
+ TrialConfig trial_config = 7;
1265
+ }
1266
+
1267
+ // Request message to update the `IntelligenceConfig` resource associated with
1268
+ // your organization.
1269
+ //
1270
+ // **IAM Permissions**:
1271
+ //
1272
+ // Requires `storage.intelligenceConfigs.update`
1273
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1274
+ // the organization.
1275
+ message UpdateOrganizationIntelligenceConfigRequest {
1276
+ // Required. The `IntelligenceConfig` resource to be updated.
1277
+ IntelligenceConfig intelligence_config = 1
1278
+ [(google.api.field_behavior) = REQUIRED];
1279
+
1280
+ // Required. The `update_mask` that specifies the fields within the
1281
+ // `IntelligenceConfig` resource that should be modified by this update. Only
1282
+ // the listed fields are updated.
1283
+ google.protobuf.FieldMask update_mask = 2
1284
+ [(google.api.field_behavior) = REQUIRED];
1285
+
1286
+ // Optional. The ID that uniquely identifies the request, preventing duplicate
1287
+ // processing.
1288
+ string request_id = 3 [
1289
+ (google.api.field_info).format = UUID4,
1290
+ (google.api.field_behavior) = OPTIONAL
1291
+ ];
1292
+ }
1293
+
1294
+ // Request message to update the `IntelligenceConfig` resource associated with
1295
+ // your folder.
1296
+ //
1297
+ // **IAM Permissions**:
1298
+ //
1299
+ // Requires `storage.intelligenceConfigs.update`
1300
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1301
+ // the folder.
1302
+ message UpdateFolderIntelligenceConfigRequest {
1303
+ // Required. The `IntelligenceConfig` resource to be updated.
1304
+ IntelligenceConfig intelligence_config = 1
1305
+ [(google.api.field_behavior) = REQUIRED];
1306
+
1307
+ // Required. The `update_mask` that specifies the fields within the
1308
+ // `IntelligenceConfig` resource that should be modified by this update. Only
1309
+ // the listed fields are updated.
1310
+ google.protobuf.FieldMask update_mask = 2
1311
+ [(google.api.field_behavior) = REQUIRED];
1312
+
1313
+ // Optional. The ID that uniquely identifies the request, preventing duplicate
1314
+ // processing.
1315
+ string request_id = 3 [
1316
+ (google.api.field_info).format = UUID4,
1317
+ (google.api.field_behavior) = OPTIONAL
1318
+ ];
1319
+ }
1320
+
1321
+ // Request message to update the `IntelligenceConfig` resource associated with
1322
+ // your project.
1323
+ //
1324
+ // **IAM Permissions**:
1325
+ //
1326
+ // Requires `storage.intelligenceConfigs.update`
1327
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1328
+ // the folder.
1329
+ message UpdateProjectIntelligenceConfigRequest {
1330
+ // Required. The `IntelligenceConfig` resource to be updated.
1331
+ IntelligenceConfig intelligence_config = 1
1332
+ [(google.api.field_behavior) = REQUIRED];
1333
+
1334
+ // Required. The `update_mask` that specifies the fields within the
1335
+ // `IntelligenceConfig` resource that should be modified by this update. Only
1336
+ // the listed fields are updated.
1337
+ google.protobuf.FieldMask update_mask = 2
1338
+ [(google.api.field_behavior) = REQUIRED];
1339
+
1340
+ // Optional. The ID that uniquely identifies the request, preventing duplicate
1341
+ // processing.
1342
+ string request_id = 3 [
1343
+ (google.api.field_info).format = UUID4,
1344
+ (google.api.field_behavior) = OPTIONAL
1345
+ ];
1346
+ }
1347
+
1348
+ // Request message to get the `IntelligenceConfig` resource associated with your
1349
+ // organization.
1350
+ //
1351
+ // **IAM Permissions**
1352
+ //
1353
+ // Requires `storage.intelligenceConfigs.get`
1354
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1355
+ // the organization.
1356
+ message GetOrganizationIntelligenceConfigRequest {
1357
+ // Required. The name of the `IntelligenceConfig` resource associated with
1358
+ // your organization.
1359
+ //
1360
+ // Format: `organizations/{org_id}/locations/global/intelligenceConfig`
1361
+ string name = 1 [
1362
+ (google.api.field_behavior) = REQUIRED,
1363
+ (google.api.resource_reference) = {
1364
+ type: "storage.googleapis.com/IntelligenceConfig"
1365
+ }
1366
+ ];
1367
+ }
1368
+
1369
+ // Request message to get the `IntelligenceConfig` resource associated with your
1370
+ // folder.
1371
+ //
1372
+ // **IAM Permissions**
1373
+ //
1374
+ // Requires `storage.intelligenceConfigs.get`
1375
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1376
+ // the folder.
1377
+ message GetFolderIntelligenceConfigRequest {
1378
+ // Required. The name of the `IntelligenceConfig` resource associated with
1379
+ // your folder.
1380
+ //
1381
+ // Format: `folders/{id}/locations/global/intelligenceConfig`
1382
+ string name = 1 [
1383
+ (google.api.field_behavior) = REQUIRED,
1384
+ (google.api.resource_reference) = {
1385
+ type: "storage.googleapis.com/IntelligenceConfig"
1386
+ }
1387
+ ];
1388
+ }
1389
+
1390
+ // Request message to get the `IntelligenceConfig` resource associated with your
1391
+ // project.
1392
+ //
1393
+ // **IAM Permissions**:
1394
+ //
1395
+ // Requires `storage.intelligenceConfigs.get`
1396
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission
1397
+ // on the project.
1398
+ message GetProjectIntelligenceConfigRequest {
1399
+ // Required. The name of the `IntelligenceConfig` resource associated with
1400
+ // your project.
1401
+ //
1402
+ // Format: `projects/{id}/locations/global/intelligenceConfig`
1403
+ string name = 1 [
1404
+ (google.api.field_behavior) = REQUIRED,
1405
+ (google.api.resource_reference) = {
1406
+ type: "storage.googleapis.com/IntelligenceConfig"
1407
+ }
1408
+ ];
1409
+ }