Skip to content

Commit 7e6c7be

Browse files
feat: [recommender] Support utilization insights and cloud hub (#8375)
* feat: Support utilization insights and cloud hub docs: Add identifier annotation for field name PiperOrigin-RevId: 922901240 Source-Link: googleapis/googleapis@1676bd0 Source-Link: googleapis/googleapis-gen@422deb2 Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLWNsb3VkLXJlY29tbWVuZGVyLy5Pd2xCb3QueWFtbCIsImgiOiI0MjJkZWIyZDMyYzBiZDE3NTdkNWU2MThhNTJjNjY4NzY5NTk3NTBmIn0= * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent f5b12cf commit 7e6c7be

8 files changed

Lines changed: 210 additions & 105 deletions

File tree

packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2025 Google LLC
1+
// Copyright 2026 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@ syntax = "proto3";
1616

1717
package google.cloud.recommender.v1;
1818

19+
import "google/api/field_behavior.proto";
1920
import "google/api/resource.proto";
2021
import "google/protobuf/duration.proto";
2122
import "google/protobuf/struct.proto";
@@ -95,8 +96,8 @@ message Insight {
9596
string recommendation = 1;
9697
}
9798

98-
// Name of the insight.
99-
string name = 1;
99+
// Identifier. Name of the insight.
100+
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
100101

101102
// Free-form human readable summary in English. The maximum length is 500
102103
// characters.

packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight_type_config.proto

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2025 Google LLC
1+
// Copyright 2026 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -37,10 +37,10 @@ message InsightTypeConfig {
3737
pattern: "billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/config"
3838
};
3939

40-
// Name of insight type config.
40+
// Identifier. Name of insight type config.
4141
// Eg,
4242
// projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config
43-
string name = 1;
43+
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
4444

4545
// InsightTypeGenerationConfig which configures the generation of
4646
// insights for this insight type.

packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2025 Google LLC
1+
// Copyright 2026 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@ syntax = "proto3";
1616

1717
package google.cloud.recommender.v1;
1818

19+
import "google/api/field_behavior.proto";
1920
import "google/api/resource.proto";
2021
import "google/protobuf/duration.proto";
2122
import "google/protobuf/struct.proto";
@@ -71,8 +72,8 @@ message Recommendation {
7172
string insight = 1;
7273
}
7374

74-
// Name of recommendation.
75-
string name = 1;
75+
// Identifier. Name of recommendation.
76+
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
7677

7778
// Free-form human readable summary in English. The maximum length is 500
7879
// characters.
@@ -123,6 +124,9 @@ message Recommendation {
123124
// exclusive group. This means that only one recommendation within the group
124125
// is suggested to be applied.
125126
string xor_group_id = 18;
127+
128+
// Fully qualified resource names that this recommendation is targeting.
129+
repeated string target_resources = 19;
126130
}
127131

128132
// Contains what resources are changing and how they are changing.
@@ -236,6 +240,7 @@ message Operation {
236240

237241
// Contains various matching options for values for a GCP resource field.
238242
message ValueMatcher {
243+
// To be used for full regex matching.
239244
oneof match_variant {
240245
// To be used for full regex matching. The regular expression is using the
241246
// Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
@@ -346,6 +351,9 @@ message Impact {
346351
// Use with CategoryType.RELIABILITY
347352
ReliabilityProjection reliability_projection = 103;
348353
}
354+
355+
// The service that this impact is associated with.
356+
string service = 3;
349357
}
350358

351359
// Information for state. Contains state and metadata.

packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_config.proto

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2025 Google LLC
1+
// Copyright 2026 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -37,10 +37,10 @@ message RecommenderConfig {
3737
pattern: "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/config"
3838
};
3939

40-
// Name of recommender config.
40+
// Identifier. Name of recommender config.
4141
// Eg,
4242
// projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config
43-
string name = 1;
43+
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
4444

4545
// RecommenderGenerationConfig which configures the Generation of
4646
// recommendations for this recommender.

packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2025 Google LLC
1+
// Copyright 2026 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.

packages/google-cloud-recommender/protos/protos.d.ts

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,9 @@ export namespace google {
691691

692692
/** Recommendation xorGroupId */
693693
xorGroupId?: (string|null);
694+
695+
/** Recommendation targetResources */
696+
targetResources?: (string[]|null);
694697
}
695698

696699
/** Represents a Recommendation. */
@@ -738,6 +741,9 @@ export namespace google {
738741
/** Recommendation xorGroupId. */
739742
public xorGroupId: string;
740743

744+
/** Recommendation targetResources. */
745+
public targetResources: string[];
746+
741747
/**
742748
* Creates a new Recommendation instance using the specified properties.
743749
* @param [properties] Properties to set
@@ -1819,6 +1825,9 @@ export namespace google {
18191825

18201826
/** Impact reliabilityProjection */
18211827
reliabilityProjection?: (google.cloud.recommender.v1.IReliabilityProjection|null);
1828+
1829+
/** Impact service */
1830+
service?: (string|null);
18221831
}
18231832

18241833
/** Represents an Impact. */
@@ -1845,6 +1854,9 @@ export namespace google {
18451854
/** Impact reliabilityProjection. */
18461855
public reliabilityProjection?: (google.cloud.recommender.v1.IReliabilityProjection|null);
18471856

1857+
/** Impact service. */
1858+
public service: string;
1859+
18481860
/** Impact projection. */
18491861
public projection?: ("costProjection"|"securityProjection"|"sustainabilityProjection"|"reliabilityProjection");
18501862

@@ -8707,6 +8719,19 @@ export namespace google {
87078719
/** Namespace api. */
87088720
namespace api {
87098721

8722+
/** FieldBehavior enum. */
8723+
enum FieldBehavior {
8724+
FIELD_BEHAVIOR_UNSPECIFIED = 0,
8725+
OPTIONAL = 1,
8726+
REQUIRED = 2,
8727+
OUTPUT_ONLY = 3,
8728+
INPUT_ONLY = 4,
8729+
IMMUTABLE = 5,
8730+
UNORDERED_LIST = 6,
8731+
NON_EMPTY_DEFAULT = 7,
8732+
IDENTIFIER = 8
8733+
}
8734+
87108735
/** Properties of a ResourceDescriptor. */
87118736
interface IResourceDescriptor {
87128737

@@ -8959,19 +8984,6 @@ export namespace google {
89598984
public static getTypeUrl(typeUrlPrefix?: string): string;
89608985
}
89618986

8962-
/** FieldBehavior enum. */
8963-
enum FieldBehavior {
8964-
FIELD_BEHAVIOR_UNSPECIFIED = 0,
8965-
OPTIONAL = 1,
8966-
REQUIRED = 2,
8967-
OUTPUT_ONLY = 3,
8968-
INPUT_ONLY = 4,
8969-
IMMUTABLE = 5,
8970-
UNORDERED_LIST = 6,
8971-
NON_EMPTY_DEFAULT = 7,
8972-
IDENTIFIER = 8
8973-
}
8974-
89758987
/** Properties of a Http. */
89768988
interface IHttp {
89778989

@@ -13248,11 +13260,11 @@ export namespace google {
1324813260
/** FieldOptions uninterpretedOption */
1324913261
uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
1325013262

13251-
/** FieldOptions .google.api.resourceReference */
13252-
".google.api.resourceReference"?: (google.api.IResourceReference|null);
13253-
1325413263
/** FieldOptions .google.api.fieldBehavior */
1325513264
".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null);
13265+
13266+
/** FieldOptions .google.api.resourceReference */
13267+
".google.api.resourceReference"?: (google.api.IResourceReference|null);
1325613268
}
1325713269

1325813270
/** Represents a FieldOptions. */

0 commit comments

Comments
 (0)