8000 feat: Add Client Libraries Storage IntelligenceConfig · googleapis/googleapis@e6c5fab · GitHub
[go: up one dir, main page]

Skip to content

Commit e6c5fab

Browse files
Google APIscopybara-github
authored andcommitted
feat: Add Client Libraries Storage IntelligenceConfig
This includes addition of the following client libraries - GetProjectIntelligenceConfig - UpdateProjectIntelligenceConfig - GetFolderIntelligenceConfig - UpdateFolderIntelligenceConfig - GetOrganizationIntelligenceConfig - UpdateOrganizationIntelligenceConfig PiperOrigin-RevId: 758498764
1 parent 295a170 commit e6c5fab

File tree

3 files changed

+377
-0
lines changed

3 files changed

+377
-0
lines changed

google/storage/control/v2/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ proto_library(
2424
"storage_control.proto",
2525
],
2626
deps = [
27+
"//google/api:annotations_proto",
2728
"//google/api:client_proto",
2829
"//google/api:field_behavior_proto",
2930
"//google/api:field_info_proto",

google/storage/control/v2/storage_control.proto

Lines changed: 352 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ syntax = "proto3";
1616

1717
package google.storage.control.v2;
1818

19+
import "google/api/annotations.proto";
1920
import "google/api/client.proto";
2021
import "google/api/field_behavior.proto";
2122
import "google/api/field_info.proto";
@@ -247,6 +248,64 @@ service StorageControl {
247248
};
248249
option (google.api.method_signature) = "parent";
249250
}
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+
}
250309
}
251310

252311
// Contains information about a pending rename operation.
@@ -996,3 +1055,296 @@ message ListAnywhereCachesResponse {
9961055
// If this field is omitted, there are no subsequent pages.
9971056
string next_page_token = 2;
9981057
}
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

Comments
 (0)
0