@@ -16,6 +16,7 @@ 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" ;
@@ -247,6 +248,64 @@ service StorageControl {
247
248
};
248
249
option (google.api.method_signature ) = "parent" ;
249
250
}
251
+
252
+ // Returns the Project scoped singleton IntelligenceConfig resource.
253
+ rpc GetProjectIntelligenceConfig (GetProjectIntelligenceConfigRequest )
254
+ returns (IntelligenceConfig ) {
255
+ option (google.api.http ) = {
256
+ get : "/v2/{name=projects/*/locations/*/intelligenceConfig}"
257
+ };
258
+ option (google.api.method_signature ) = "name" ;
259
+ }
260
+
261
+ // Updates the Project scoped singleton IntelligenceConfig resource.
262
+ rpc UpdateProjectIntelligenceConfig (UpdateProjectIntelligenceConfigRequest )
263
+ returns (IntelligenceConfig ) {
264
+ option (google.api.http ) = {
265
+ patch : "/v2/{intelligence_config.name=projects/*/locations/*/intelligenceConfig}"
266
+ body : "intelligence_config"
267
+ };
268
+ option (google.api.method_signature ) = "intelligence_config,update_mask" ;
269
+ }
270
+
271
+ // Returns the Folder scoped singleton IntelligenceConfig resource.
272
+ rpc GetFolderIntelligenceConfig (GetFolderIntelligenceConfigRequest )
273
+ returns (IntelligenceConfig ) {
274
+ option (google.api.http ) = {
275
+ get : "/v2/{name=folders/*/locations/*/intelligenceConfig}"
276
+ };
277
+ option (google.api.method_signature ) = "name" ;
278
+ }
279
+
280
+ // Updates the Folder scoped singleton IntelligenceConfig resource.
281
+ rpc UpdateFolderIntelligenceConfig (UpdateFolderIntelligenceConfigRequest )
282
+ returns (IntelligenceConfig ) {
283
+ option (google.api.http ) = {
284
+ patch : "/v2/{intelligence_config.name=folders/*/locations/*/intelligenceConfig}"
285
+ body : "intelligence_config"
286
+ };
287
+ option (google.api.method_signature ) = "intelligence_config,update_mask" ;
288
+ }
289
+
290
+ // Returns the Organization scoped singleton IntelligenceConfig resource.
291
+ rpc GetOrganizationIntelligenceConfig (
292
+ GetOrganizationIntelligenceConfigRequest ) returns (IntelligenceConfig ) {
293
+ option (google.api.http ) = {
294
+ get : "/v2/{name=organizations/*/locations/*/intelligenceConfig}"
295
+ };
296
+ option (google.api.method_signature ) = "name" ;
297
+ }
298
+
299
+ // Updates the Organization scoped singleton IntelligenceConfig resource.
300
+ rpc UpdateOrganizationIntelligenceConfig (
301
+ UpdateOrganizationIntelligenceConfigRequest )
302
+ returns (IntelligenceConfig ) {
303
+ option (google.api.http ) = {
304
+ patch : "/v2/{intelligence_config.name=organizations/*/locations/*/intelligenceConfig}"
305
+ body : "intelligence_config"
306
+ };
307
+ option (google.api.method_signature ) = "intelligence_config,update_mask" ;
308
+ }
250
309
}
251
310
252
311
// Contains information about a pending rename operation.
@@ -996,3 +1055,296 @@ message ListAnywhereCachesResponse {
996
1055
// If this field is omitted, there are no subsequent pages.
997
1056
string next_page_token = 2 ;
998
1057
}
1058
+
1059
+ // The `IntelligenceConfig` resource associated with your organization, folder,
1060
+ // or project.
1061
+ message IntelligenceConfig {
1062
+ option (google.api.resource ) = {
1063
+ type : "storage.googleapis.com/IntelligenceConfig"
1064
+ pattern : "folders/{folder}/locations/{location}/intelligenceConfig"
1065
+ pattern : "organizations/{org}/locations/{location}/intelligenceConfig"
1066
+ pattern : "projects/{project}/locations/{location}/intelligenceConfig"
1067
+ plural : "intelligenceConfigs"
1068
+ singular : "intelligenceConfig"
1069
+ };
1070
+
1071
+ // The edition configuration of the `IntelligenceConfig` resource. This
1072
+ // signifies the edition used for configuring the `IntelligenceConfig`
1073
+ // resource and can only take the following values:
1074
+ // `EDITION_CONFIG_UNSPECIFIED`, `INHERIT`, `DISABLED`, `STANDARD` and
1075
+ // `TRIAL`.
1076
+ enum EditionConfig {
1077
+ // This is an unknown edition of the resource.
1078
+ EDITION_CONFIG_UNSPECIFIED = 0 ;
1079
+
1080
+ // The inherited edition from the parent and filters. This is the default
1081
+ // edition when there is no `IntelligenceConfig` setup for a GCP resource.
1082
+ INHERIT = 1 ;
1083
+
1084
+ // The edition configuration is disabled for the `IntelligenceConfig`
1085
+ // resource and its children. Filters are not applicable.
1086
+ DISABLED = 2 ;
1087
+
1088
+ // The `IntelligenceConfig` resource is of STANDARD edition.
1089
+ STANDARD = 3 ;
1090
+
1091
+ // The `IntelligenceConfig` resource is available in `TRIAL` edition. During
1092
+ // the trial period, Cloud Storage does not charge for Storage Intelligence
1093
+ // usage. You can specify the buckets to include in the trial period by
1094
+ // using filters. At the end of the trial period, the `IntelligenceConfig`
1095
+ // resource is upgraded to `STANDARD` edition.
1096
+ TRIAL = 5 ;
1097
+ }
1098
+
1099
+ // Filter over location and bucket using include or exclude semantics.
1100
+ // Resources that match the include or exclude filter are exclusively included
1101
+ // or excluded from the Storage Intelligence plan.
1102
+ message Filter {
1103
+ // Collection of bucket locations.
1104
+ message CloudStorageLocations {
1105
+ // Optional. Bucket locations. Location can be any of the Cloud Storage
1106
+ // regions specified in lower case format. For example, `us-east1`,
1107
+ // `us-west1`.
1108
+ repeated string locations = 1 [(google.api.field_behavior ) = OPTIONAL ];
1109
+ }
1110
+
1111
+ // Collection of buckets.
1112
+ message CloudStorageBuckets {
1113
+ // Optional. A regex pattern for matching bucket names. Regex should
1114
+ // follow the syntax specified in
1115
+ // [google/re2](https://github.com/google/re2). For example,
1116
+ // `^sample_.*` matches all buckets of the form
1117
+ // `gs://sample_bucket-1`, `gs://sample_bucket-2`,
1118
10000
+ // `gs://sample_bucket-n` but not `gs://test_sample_bucket`.
1119
+ // If you want to match a single bucket, say `gs://sample_bucket`,
1120
+ // use `sample_bucket`.
1121
+ repeated string bucket_id_regexes = 1
1122
+ [(google.api.field_behavior ) = OPTIONAL ];
1123
+ }
1124
+
1125
+ // Bucket locations to include or exclude.
1126
+ oneof cloud_storage_locations {
1127
+ // Bucket locations to include.
1128
+ CloudStorageLocations included_cloud_storage_locations = 1 ;
1129
+
1130
+ // Bucket locations to exclude.
1131
+ CloudStorageLocations excluded_cloud_storage_locations = 2 ;
1132
+ }
1133
+
1134
+ // Buckets to include or exclude.
1135
+ oneof cloud_storage_buckets {
1136
+ // Buckets to include.
1137
+ CloudStorageBuckets included_cloud_storage_buckets = 3 ;
1138
+
1139
+ // Buckets to exclude.
1140
+ CloudStorageBuckets excluded_cloud_storage_buckets = 4 ;
1141
+ }
1142
+ }
1143
+
1144
+ // The effective `IntelligenceConfig` for the resource.
1145
+ message EffectiveIntelligenceConfig {
1146
+ // The effective edition of the `IntelligenceConfig` resource.
1147
+ enum EffectiveEdition {
1148
+ // This is an unknown edition of the resource.
1149
+ EFFECTIVE_EDITION_UNSPECIFIED = 0 ;
1150
+
1151
+ // No edition.
1152
+ NONE = 1 ;
1153
+
1154
+ // The `IntelligenceConfig` resource is of STANDARD edition.
1155
+ STANDARD = 2 ;
1156
+ }
1157
+
1158
+ // Output only. The `IntelligenceConfig` edition that is applicable for the
1159
+ // resource.
1160
+ EffectiveEdition effective_edition = 1
1161
+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
1162
+
1163
+ // Output only. The `IntelligenceConfig` resource that is applied for the
1164
+ // target resource. Format:
1165
+ // `{organizations|folders|projects}/{id}/locations/{location}/intelligenceConfig`
1166
+ string intelligence_config = 2 [(google.api.field_behavior ) = OUTPUT_ONLY ];
1167
+ }
1168
+
1169
+ // The trial configuration of the `IntelligenceConfig` resource.
1170
+ message TrialConfig {
1171
+ // Output only. The time at which the trial expires.
1172
+ google.protobuf.Timestamp expire_time = 3
1173
+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
1174
+ }
1175
+
1176
+ // Identifier. The name of the `IntelligenceConfig` resource associated with
1177
+ // your organization, folder, or project.
1178
+ //
1179
+ // The name format varies based on the GCP resource hierarchy as follows:
1180
+ //
1181
+ // * For project:
1182
+ // `projects/{project_number}/locations/global/intelligenceConfig`
1183
+ // * For organization:
1184
+ // `organizations/{org_id}/locations/global/intelligenceConfig`
1185
+ // * For folder: `folders/{folder_id}/locations/global/intelligenceConfig`
1186
+ string name = 1 [(google.api.field_behavior ) = IDENTIFIER ];
1187
+
1188
+ // Optional. The edition configuration of the `IntelligenceConfig` resource.
1189
+ EditionConfig edition_config = 2 [(google.api.field_behavior ) = OPTIONAL ];
1190
+
1191
+ // Output only. The time at which the `IntelligenceConfig` resource is last
1192
+ // updated.
1193
+ google.protobuf.Timestamp update_time = 3
1194
+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
1195
+
1196
+ // Optional. Filter over location and bucket.
1197
+ Filter filter = 4 [(google.api.field_behavior ) = OPTIONAL ];
1198
+
1199
+ // Output only. The `IntelligenceConfig` resource that is applicable for the
1200
+ // resource.
1201
+ EffectiveIntelligenceConfig effective_intelligence_config = 5
1202
+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
1203
+
1204
+ // The trial configuration of the `IntelligenceConfig` resource.
1205
+ TrialConfig trial_config = 7 ;
1206
+ }
1207
+
1208
+ // Request message to update the `IntelligenceConfig` resource associated with
1209
+ // your organization.
1210
+ //
1211
+ // **IAM Permissions**:
1212
+ //
1213
+ // Requires `storage.intelligenceConfigs.update`
1214
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1215
+ // the organization.
1216
+ message UpdateOrganizationIntelligenceConfigRequest {
1217
+ // Required. The `IntelligenceConfig` resource to be updated.
1218
+ IntelligenceConfig intelligence_config = 1
1219
+ [(google.api.field_behavior ) = REQUIRED ];
1220
+
1221
+ // Required. The `update_mask` that specifies the fields within the
1222
+ // `IntelligenceConfig` resource that should be modified by this update. Only
1223
+ // the listed fields are updated.
1224
+ google.protobuf.FieldMask update_mask = 2
1225
+ [(google.api.field_behavior ) = REQUIRED ];
1226
+
1227
+ // Optional. The ID that uniquely identifies the request, preventing duplicate
1228
+ // processing.
1229
+ string request_id = 3 [
1230
+ (google.api.field_info ).format = UUID4 ,
1231
+ (google.api.field_behavior ) = OPTIONAL
1232
+ ];
1233
+ }
1234
+
1235
+ // Request message to update the `IntelligenceConfig` resource associated with
1236
+ // your folder.
1237
+ //
1238
+ // **IAM Permissions**:
1239
+ //
1240
+ // Requires `storage.intelligenceConfigs.update`
1241
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1242
+ // the folder.
1243
+ message UpdateFolderIntelligenceConfigRequest {
1244
+ // Required. The `IntelligenceConfig` resource to be updated.
1245
+ IntelligenceConfig intelligence_config = 1
1246
+ [(google.api.field_behavior ) = REQUIRED ];
1247
+
1248
+ // Required. The `update_mask` that specifies the fields within the
1249
+ // `IntelligenceConfig` resource that should be modified by this update. Only
1250
+ // the listed fields are updated.
1251
+ google.protobuf.FieldMask update_mask = 2
1252
+ [(google.api.field_behavior ) = REQUIRED ];
1253
+
1254
+ // Optional. The ID that uniquely identifies the request, preventing duplicate
1255
+ // processing.
1256
+ string request_id = 3 [
1257
+ (google.api.field_info ).format = UUID4 ,
1258
+ (google.api.field_behavior ) = OPTIONAL
1259
+ ];
1260
+ }
1261
+
1262
+ // Request message to update the `IntelligenceConfig` resource associated with
1263
+ // your project.
1264
+ //
1265
+ // **IAM Permissions**:
1266
+ //
1267
+ // Requires `storage.intelligenceConfigs.update`
1268
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1269
+ // the folder.
1270
+ message UpdateProjectIntelligenceConfigRequest {
1271
+ // Required. The `IntelligenceConfig` resource to be updated.
1272
+ IntelligenceConfig intelligence_config = 1
1273
+ [(google.api.field_behavior ) = REQUIRED ];
1274
+
1275
+ // Required. The `update_mask` that specifies the fields within the
1276
+ // `IntelligenceConfig` resource that should be modified by this update. Only
1277
+ // the listed fields are updated.
1278
+ google.protobuf.FieldMask update_mask = 2
1279
+ [(google.api.field_behavior ) = REQUIRED ];
1280
+
1281
+ // Optional. The ID that uniquely identifies the request, preventing duplicate
1282
+ // processing.
1283
+ string request_id = 3 [
1284
+ (google.api.field_info ).format = UUID4 ,
1285
+ (google.api.field_behavior ) = OPTIONAL
1286
+ ];
1287
+ }
1288
+
1289
+ // Request message to get the `IntelligenceConfig` resource associated with your
1290
+ // organization.
1291
+ //
1292
+ // **IAM Permissions**
1293
+ //
1294
+ // Requires `storage.intelligenceConfigs.get`
1295
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1296
+ // the organization.
1297
+ message GetOrganizationIntelligenceConfigRequest {
1298
+ // Required. The name of the `IntelligenceConfig` resource associated with
1299
+ // your organization.
1300
+ //
1301
+ // Format: `organizations/{org_id}/locations/global/intelligenceConfig`
1302
+ string name = 1 [
1303
+ (google.api.field_behavior ) = REQUIRED ,
1304
+ (google.api.resource_reference ) = {
1305
+ type : "storage.googleapis.com/IntelligenceConfig"
1306
+ }
1307
+ ];
1308
+ }
1309
+
1310
+ // Request message to get the `IntelligenceConfig` resource associated with your
1311
+ // folder.
1312
+ //
1313
+ // **IAM Permissions**
1314
+ //
1315
+ // Requires `storage.intelligenceConfigs.get`
1316
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission on
1317
+ // the folder.
1318
+ message GetFolderIntelligenceConfigRequest {
1319
+ // Required. The name of the `IntelligenceConfig` resource associated with
1320
+ // your folder.
1321
+ //
1322
+ // Format: `folders/{id}/locations/global/intelligenceConfig`
1323
+ string name = 1 [
1324
+ (google.api.field_behavior ) = REQUIRED ,
1325
+ (google.api.resource_reference ) = {
1326
+ type : "storage.googleapis.com/IntelligenceConfig"
1327
+ }
1328
+ ];
1329
+ }
1330
+
1331
+ // Request message to get the `IntelligenceConfig` resource associated with your
1332
+ // project.
1333
+ //
1334
+ // **IAM Permissions**:
1335
+ //
1336
+ // Requires `storage.intelligenceConfigs.get`
1337
+ // [IAM](https://cloud.google.com/iam/docs/overview#permissions) permission
1338
+ // on the project.
1339
+ message GetProjectIntelligenceConfigRequest {
1340
+ // Required. The name of the `IntelligenceConfig` resource associated with
1341
+ // your project.
1342
+ //
1343
+ // Format: `projects/{id}/locations/global/intelligenceConfig`
1344
+ string name = 1 [
1345
+ (google.api.field_behavior ) = REQUIRED ,
1346
+ (google.api.resource_reference ) = {
1347
+ type : "storage.googleapis.com/IntelligenceConfig"
1348
+ }
1349
+ ];
1350
+ }
0 commit comments