diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto
index 690ded1d7e08..97da81c7af6e 100644
--- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto
+++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@ syntax = "proto3";
 
 package google.cloud.recommender.v1;
 
+import "google/api/field_behavior.proto";
 import "google/api/resource.proto";
 import "google/protobuf/duration.proto";
 import "google/protobuf/struct.proto";
@@ -95,8 +96,8 @@ message Insight {
     string recommendation = 1;
   }
 
-  // Name of the insight.
-  string name = 1;
+  // Identifier. Name of the insight.
+  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
 
   // Free-form human readable summary in English. The maximum length is 500
   // characters.
diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight_type_config.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight_type_config.proto
index fe2d65022728..6f540acdb229 100644
--- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight_type_config.proto
+++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/insight_type_config.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -37,10 +37,10 @@ message InsightTypeConfig {
     pattern: "billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/config"
   };
 
-  // Name of insight type config.
+  // Identifier. Name of insight type config.
   // Eg,
   // projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config
-  string name = 1;
+  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
 
   // InsightTypeGenerationConfig which configures the generation of
   // insights for this insight type.
diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto
index 28baac67e420..441aad5c2d91 100644
--- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto
+++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommendation.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@ syntax = "proto3";
 
 package google.cloud.recommender.v1;
 
+import "google/api/field_behavior.proto";
 import "google/api/resource.proto";
 import "google/protobuf/duration.proto";
 import "google/protobuf/struct.proto";
@@ -71,8 +72,8 @@ message Recommendation {
     string insight = 1;
   }
 
-  // Name of recommendation.
-  string name = 1;
+  // Identifier. Name of recommendation.
+  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
 
   // Free-form human readable summary in English. The maximum length is 500
   // characters.
@@ -123,6 +124,9 @@ message Recommendation {
   // exclusive group. This means that only one recommendation within the group
   // is suggested to be applied.
   string xor_group_id = 18;
+
+  // Fully qualified resource names that this recommendation is targeting.
+  repeated string target_resources = 19;
 }
 
 // Contains what resources are changing and how they are changing.
@@ -236,6 +240,7 @@ message Operation {
 
 // Contains various matching options for values for a GCP resource field.
 message ValueMatcher {
+  // To be used for full regex matching.
   oneof match_variant {
     // To be used for full regex matching. The regular expression is using the
     // Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
@@ -346,6 +351,9 @@ message Impact {
     // Use with CategoryType.RELIABILITY
     ReliabilityProjection reliability_projection = 103;
   }
+
+  // The service that this impact is associated with.
+  string service = 3;
 }
 
 // Information for state. Contains state and metadata.
diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_config.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_config.proto
index f1b662753048..c64e7035c99a 100644
--- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_config.proto
+++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_config.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -37,10 +37,10 @@ message RecommenderConfig {
     pattern: "billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/config"
   };
 
-  // Name of recommender config.
+  // Identifier. Name of recommender config.
   // Eg,
   // projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config
-  string name = 1;
+  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
 
   // RecommenderGenerationConfig which configures the Generation of
   // recommendations for this recommender.
diff --git a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto
index 05bbba213ca3..a5b31ef6852d 100644
--- a/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto
+++ b/packages/google-cloud-recommender/protos/google/cloud/recommender/v1/recommender_service.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/packages/google-cloud-recommender/protos/protos.d.ts b/packages/google-cloud-recommender/protos/protos.d.ts
index ad961b63dd4c..c8de95715ee6 100644
--- a/packages/google-cloud-recommender/protos/protos.d.ts
+++ b/packages/google-cloud-recommender/protos/protos.d.ts
@@ -691,6 +691,9 @@ export namespace google {
 
                     /** Recommendation xorGroupId */
                     xorGroupId?: (string|null);
+
+                    /** Recommendation targetResources */
+                    targetResources?: (string[]|null);
                 }
 
                 /** Represents a Recommendation. */
@@ -738,6 +741,9 @@ export namespace google {
                     /** Recommendation xorGroupId. */
                     public xorGroupId: string;
 
+                    /** Recommendation targetResources. */
+                    public targetResources: string[];
+
                     /**
                      * Creates a new Recommendation instance using the specified properties.
                      * @param [properties] Properties to set
@@ -1819,6 +1825,9 @@ export namespace google {
 
                     /** Impact reliabilityProjection */
                     reliabilityProjection?: (google.cloud.recommender.v1.IReliabilityProjection|null);
+
+                    /** Impact service */
+                    service?: (string|null);
                 }
 
                 /** Represents an Impact. */
@@ -1845,6 +1854,9 @@ export namespace google {
                     /** Impact reliabilityProjection. */
                     public reliabilityProjection?: (google.cloud.recommender.v1.IReliabilityProjection|null);
 
+                    /** Impact service. */
+                    public service: string;
+
                     /** Impact projection. */
                     public projection?: ("costProjection"|"securityProjection"|"sustainabilityProjection"|"reliabilityProjection");
 
@@ -8707,6 +8719,19 @@ export namespace google {
     /** Namespace api. */
     namespace api {
 
+        /** FieldBehavior enum. */
+        enum FieldBehavior {
+            FIELD_BEHAVIOR_UNSPECIFIED = 0,
+            OPTIONAL = 1,
+            REQUIRED = 2,
+            OUTPUT_ONLY = 3,
+            INPUT_ONLY = 4,
+            IMMUTABLE = 5,
+            UNORDERED_LIST = 6,
+            NON_EMPTY_DEFAULT = 7,
+            IDENTIFIER = 8
+        }
+
         /** Properties of a ResourceDescriptor. */
         interface IResourceDescriptor {
 
@@ -8959,19 +8984,6 @@ export namespace google {
             public static getTypeUrl(typeUrlPrefix?: string): string;
         }
 
-        /** FieldBehavior enum. */
-        enum FieldBehavior {
-            FIELD_BEHAVIOR_UNSPECIFIED = 0,
-            OPTIONAL = 1,
-            REQUIRED = 2,
-            OUTPUT_ONLY = 3,
-            INPUT_ONLY = 4,
-            IMMUTABLE = 5,
-            UNORDERED_LIST = 6,
-            NON_EMPTY_DEFAULT = 7,
-            IDENTIFIER = 8
-        }
-
         /** Properties of a Http. */
         interface IHttp {
 
@@ -13248,11 +13260,11 @@ export namespace google {
             /** FieldOptions uninterpretedOption */
             uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
 
-            /** FieldOptions .google.api.resourceReference */
-            ".google.api.resourceReference"?: (google.api.IResourceReference|null);
-
             /** FieldOptions .google.api.fieldBehavior */
             ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null);
+
+            /** FieldOptions .google.api.resourceReference */
+            ".google.api.resourceReference"?: (google.api.IResourceReference|null);
         }
 
         /** Represents a FieldOptions. */
diff --git a/packages/google-cloud-recommender/protos/protos.js b/packages/google-cloud-recommender/protos/protos.js
index ec5c6528a48f..b26b89befa43 100644
--- a/packages/google-cloud-recommender/protos/protos.js
+++ b/packages/google-cloud-recommender/protos/protos.js
@@ -1840,6 +1840,7 @@
                          * @property {string|null} [etag] Recommendation etag
                          * @property {Array.<google.cloud.recommender.v1.Recommendation.IInsightReference>|null} [associatedInsights] Recommendation associatedInsights
                          * @property {string|null} [xorGroupId] Recommendation xorGroupId
+                         * @property {Array.<string>|null} [targetResources] Recommendation targetResources
                          */
     
                         /**
@@ -1853,6 +1854,7 @@
                         function Recommendation(properties) {
                             this.additionalImpact = [];
                             this.associatedInsights = [];
+                            this.targetResources = [];
                             if (properties)
                                 for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                                     if (properties[keys[i]] != null)
@@ -1955,6 +1957,14 @@
                          */
                         Recommendation.prototype.xorGroupId = "";
     
+                        /**
+                         * Recommendation targetResources.
+                         * @member {Array.<string>} targetResources
+                         * @memberof google.cloud.recommender.v1.Recommendation
+                         * @instance
+                         */
+                        Recommendation.prototype.targetResources = $util.emptyArray;
+    
                         /**
                          * Creates a new Recommendation instance using the specified properties.
                          * @function create
@@ -2005,6 +2015,9 @@
                                 writer.uint32(/* id 17, wireType 0 =*/136).int32(message.priority);
                             if (message.xorGroupId != null && Object.hasOwnProperty.call(message, "xorGroupId"))
                                 writer.uint32(/* id 18, wireType 2 =*/146).string(message.xorGroupId);
+                            if (message.targetResources != null && message.targetResources.length)
+                                for (var i = 0; i < message.targetResources.length; ++i)
+                                    writer.uint32(/* id 19, wireType 2 =*/154).string(message.targetResources[i]);
                             return writer;
                         };
     
@@ -2093,6 +2106,12 @@
                                         message.xorGroupId = reader.string();
                                         break;
                                     }
+                                case 19: {
+                                        if (!(message.targetResources && message.targetResources.length))
+                                            message.targetResources = [];
+                                        message.targetResources.push(reader.string());
+                                        break;
+                                    }
                                 default:
                                     reader.skipType(tag & 7);
                                     break;
@@ -2192,6 +2211,13 @@
                             if (message.xorGroupId != null && message.hasOwnProperty("xorGroupId"))
                                 if (!$util.isString(message.xorGroupId))
                                     return "xorGroupId: string expected";
+                            if (message.targetResources != null && message.hasOwnProperty("targetResources")) {
+                                if (!Array.isArray(message.targetResources))
+                                    return "targetResources: array expected";
+                                for (var i = 0; i < message.targetResources.length; ++i)
+                                    if (!$util.isString(message.targetResources[i]))
+                                        return "targetResources: string[] expected";
+                            }
                             return null;
                         };
     
@@ -2285,6 +2311,13 @@
                             }
                             if (object.xorGroupId != null)
                                 message.xorGroupId = String(object.xorGroupId);
+                            if (object.targetResources) {
+                                if (!Array.isArray(object.targetResources))
+                                    throw TypeError(".google.cloud.recommender.v1.Recommendation.targetResources: array expected");
+                                message.targetResources = [];
+                                for (var i = 0; i < object.targetResources.length; ++i)
+                                    message.targetResources[i] = String(object.targetResources[i]);
+                            }
                             return message;
                         };
     
@@ -2304,6 +2337,7 @@
                             if (options.arrays || options.defaults) {
                                 object.additionalImpact = [];
                                 object.associatedInsights = [];
+                                object.targetResources = [];
                             }
                             if (options.defaults) {
                                 object.name = "";
@@ -2347,6 +2381,11 @@
                                 object.priority = options.enums === String ? $root.google.cloud.recommender.v1.Recommendation.Priority[message.priority] === undefined ? message.priority : $root.google.cloud.recommender.v1.Recommendation.Priority[message.priority] : message.priority;
                             if (message.xorGroupId != null && message.hasOwnProperty("xorGroupId"))
                                 object.xorGroupId = message.xorGroupId;
+                            if (message.targetResources && message.targetResources.length) {
+                                object.targetResources = [];
+                                for (var j = 0; j < message.targetResources.length; ++j)
+                                    object.targetResources[j] = message.targetResources[j];
+                            }
                             return object;
                         };
     
@@ -4870,6 +4909,7 @@
                          * @property {google.cloud.recommender.v1.ISecurityProjection|null} [securityProjection] Impact securityProjection
                          * @property {google.cloud.recommender.v1.ISustainabilityProjection|null} [sustainabilityProjection] Impact sustainabilityProjection
                          * @property {google.cloud.recommender.v1.IReliabilityProjection|null} [reliabilityProjection] Impact reliabilityProjection
+                         * @property {string|null} [service] Impact service
                          */
     
                         /**
@@ -4927,6 +4967,14 @@
                          */
                         Impact.prototype.reliabilityProjection = null;
     
+                        /**
+                         * Impact service.
+                         * @member {string} service
+                         * @memberof google.cloud.recommender.v1.Impact
+                         * @instance
+                         */
+                        Impact.prototype.service = "";
+    
                         // OneOf field names bound to virtual getters and setters
                         var $oneOfFields;
     
@@ -4967,6 +5015,8 @@
                                 writer = $Writer.create();
                             if (message.category != null && Object.hasOwnProperty.call(message, "category"))
                                 writer.uint32(/* id 1, wireType 0 =*/8).int32(message.category);
+                            if (message.service != null && Object.hasOwnProperty.call(message, "service"))
+                                writer.uint32(/* id 3, wireType 2 =*/26).string(message.service);
                             if (message.costProjection != null && Object.hasOwnProperty.call(message, "costProjection"))
                                 $root.google.cloud.recommender.v1.CostProjection.encode(message.costProjection, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim();
                             if (message.securityProjection != null && Object.hasOwnProperty.call(message, "securityProjection"))
@@ -5031,6 +5081,10 @@
                                         message.reliabilityProjection = $root.google.cloud.recommender.v1.ReliabilityProjection.decode(reader, reader.uint32());
                                         break;
                                     }
+                                case 3: {
+                                        message.service = reader.string();
+                                        break;
+                                    }
                                 default:
                                     reader.skipType(tag & 7);
                                     break;
@@ -5118,6 +5172,9 @@
                                         return "reliabilityProjection." + error;
                                 }
                             }
+                            if (message.service != null && message.hasOwnProperty("service"))
+                                if (!$util.isString(message.service))
+                                    return "service: string expected";
                             return null;
                         };
     
@@ -5189,6 +5246,8 @@
                                     throw TypeError(".google.cloud.recommender.v1.Impact.reliabilityProjection: object expected");
                                 message.reliabilityProjection = $root.google.cloud.recommender.v1.ReliabilityProjection.fromObject(object.reliabilityProjection);
                             }
+                            if (object.service != null)
+                                message.service = String(object.service);
                             return message;
                         };
     
@@ -5205,10 +5264,14 @@
                             if (!options)
                                 options = {};
                             var object = {};
-                            if (options.defaults)
+                            if (options.defaults) {
                                 object.category = options.enums === String ? "CATEGORY_UNSPECIFIED" : 0;
+                                object.service = "";
+                            }
                             if (message.category != null && message.hasOwnProperty("category"))
                                 object.category = options.enums === String ? $root.google.cloud.recommender.v1.Impact.Category[message.category] === undefined ? message.category : $root.google.cloud.recommender.v1.Impact.Category[message.category] : message.category;
+                            if (message.service != null && message.hasOwnProperty("service"))
+                                object.service = message.service;
                             if (message.costProjection != null && message.hasOwnProperty("costProjection")) {
                                 object.costProjection = $root.google.cloud.recommender.v1.CostProjection.toObject(message.costProjection, options);
                                 if (options.oneofs)
@@ -21645,6 +21708,34 @@
              */
             var api = {};
     
+            /**
+             * FieldBehavior enum.
+             * @name google.api.FieldBehavior
+             * @enum {number}
+             * @property {number} FIELD_BEHAVIOR_UNSPECIFIED=0 FIELD_BEHAVIOR_UNSPECIFIED value
+             * @property {number} OPTIONAL=1 OPTIONAL value
+             * @property {number} REQUIRED=2 REQUIRED value
+             * @property {number} OUTPUT_ONLY=3 OUTPUT_ONLY value
+             * @property {number} INPUT_ONLY=4 INPUT_ONLY value
+             * @property {number} IMMUTABLE=5 IMMUTABLE value
+             * @property {number} UNORDERED_LIST=6 UNORDERED_LIST value
+             * @property {number} NON_EMPTY_DEFAULT=7 NON_EMPTY_DEFAULT value
+             * @property {number} IDENTIFIER=8 IDENTIFIER value
+             */
+            api.FieldBehavior = (function() {
+                var valuesById = {}, values = Object.create(valuesById);
+                values[valuesById[0] = "FIELD_BEHAVIOR_UNSPECIFIED"] = 0;
+                values[valuesById[1] = "OPTIONAL"] = 1;
+                values[valuesById[2] = "REQUIRED"] = 2;
+                values[valuesById[3] = "OUTPUT_ONLY"] = 3;
+                values[valuesById[4] = "INPUT_ONLY"] = 4;
+                values[valuesById[5] = "IMMUTABLE"] = 5;
+                values[valuesById[6] = "UNORDERED_LIST"] = 6;
+                values[valuesById[7] = "NON_EMPTY_DEFAULT"] = 7;
+                values[valuesById[8] = "IDENTIFIER"] = 8;
+                return values;
+            })();
+    
             api.ResourceDescriptor = (function() {
     
                 /**
@@ -22333,34 +22424,6 @@
                 return ResourceReference;
             })();
     
-            /**
-             * FieldBehavior enum.
-             * @name google.api.FieldBehavior
-             * @enum {number}
-             * @property {number} FIELD_BEHAVIOR_UNSPECIFIED=0 FIELD_BEHAVIOR_UNSPECIFIED value
-             * @property {number} OPTIONAL=1 OPTIONAL value
-             * @property {number} REQUIRED=2 REQUIRED value
-             * @property {number} OUTPUT_ONLY=3 OUTPUT_ONLY value
-             * @property {number} INPUT_ONLY=4 INPUT_ONLY value
-             * @property {number} IMMUTABLE=5 IMMUTABLE value
-             * @property {number} UNORDERED_LIST=6 UNORDERED_LIST value
-             * @property {number} NON_EMPTY_DEFAULT=7 NON_EMPTY_DEFAULT value
-             * @property {number} IDENTIFIER=8 IDENTIFIER value
-             */
-            api.FieldBehavior = (function() {
-                var valuesById = {}, values = Object.create(valuesById);
-                values[valuesById[0] = "FIELD_BEHAVIOR_UNSPECIFIED"] = 0;
-                values[valuesById[1] = "OPTIONAL"] = 1;
-                values[valuesById[2] = "REQUIRED"] = 2;
-                values[valuesById[3] = "OUTPUT_ONLY"] = 3;
-                values[valuesById[4] = "INPUT_ONLY"] = 4;
-                values[valuesById[5] = "IMMUTABLE"] = 5;
-                values[valuesById[6] = "UNORDERED_LIST"] = 6;
-                values[valuesById[7] = "NON_EMPTY_DEFAULT"] = 7;
-                values[valuesById[8] = "IDENTIFIER"] = 8;
-                return values;
-            })();
-    
             api.Http = (function() {
     
                 /**
@@ -34267,8 +34330,8 @@
                  * @property {google.protobuf.IFeatureSet|null} [features] FieldOptions features
                  * @property {google.protobuf.FieldOptions.IFeatureSupport|null} [featureSupport] FieldOptions featureSupport
                  * @property {Array.<google.protobuf.IUninterpretedOption>|null} [uninterpretedOption] FieldOptions uninterpretedOption
-                 * @property {google.api.IResourceReference|null} [".google.api.resourceReference"] FieldOptions .google.api.resourceReference
                  * @property {Array.<google.api.FieldBehavior>|null} [".google.api.fieldBehavior"] FieldOptions .google.api.fieldBehavior
+                 * @property {google.api.IResourceReference|null} [".google.api.resourceReference"] FieldOptions .google.api.resourceReference
                  */
     
                 /**
@@ -34403,20 +34466,20 @@
                 FieldOptions.prototype.uninterpretedOption = $util.emptyArray;
     
                 /**
-                 * FieldOptions .google.api.resourceReference.
-                 * @member {google.api.IResourceReference|null|undefined} .google.api.resourceReference
+                 * FieldOptions .google.api.fieldBehavior.
+                 * @member {Array.<google.api.FieldBehavior>} .google.api.fieldBehavior
                  * @memberof google.protobuf.FieldOptions
                  * @instance
                  */
-                FieldOptions.prototype[".google.api.resourceReference"] = null;
+                FieldOptions.prototype[".google.api.fieldBehavior"] = $util.emptyArray;
     
                 /**
-                 * FieldOptions .google.api.fieldBehavior.
-                 * @member {Array.<google.api.FieldBehavior>} .google.api.fieldBehavior
+                 * FieldOptions .google.api.resourceReference.
+                 * @member {google.api.IResourceReference|null|undefined} .google.api.resourceReference
                  * @memberof google.protobuf.FieldOptions
                  * @instance
                  */
-                FieldOptions.prototype[".google.api.fieldBehavior"] = $util.emptyArray;
+                FieldOptions.prototype[".google.api.resourceReference"] = null;
     
                 /**
                  * Creates a new FieldOptions instance using the specified properties.
@@ -34581,10 +34644,6 @@
                                 message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader, reader.uint32()));
                                 break;
                             }
-                        case 1055: {
-                                message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32());
-                                break;
-                            }
                         case 1052: {
                                 if (!(message[".google.api.fieldBehavior"] && message[".google.api.fieldBehavior"].length))
                                     message[".google.api.fieldBehavior"] = [];
@@ -34596,6 +34655,10 @@
                                     message[".google.api.fieldBehavior"].push(reader.int32());
                                 break;
                             }
+                        case 1055: {
+                                message[".google.api.resourceReference"] = $root.google.api.ResourceReference.decode(reader, reader.uint32());
+                                break;
+                            }
                         default:
                             reader.skipType(tag & 7);
                             break;
@@ -34724,11 +34787,6 @@
                                 return "uninterpretedOption." + error;
                         }
                     }
-                    if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) {
-                        var error = $root.google.api.ResourceReference.verify(message[".google.api.resourceReference"]);
-                        if (error)
-                            return ".google.api.resourceReference." + error;
-                    }
                     if (message[".google.api.fieldBehavior"] != null && message.hasOwnProperty(".google.api.fieldBehavior")) {
                         if (!Array.isArray(message[".google.api.fieldBehavior"]))
                             return ".google.api.fieldBehavior: array expected";
@@ -34748,6 +34806,11 @@
                                 break;
                             }
                     }
+                    if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) {
+                        var error = $root.google.api.ResourceReference.verify(message[".google.api.resourceReference"]);
+                        if (error)
+                            return ".google.api.resourceReference." + error;
+                    }
                     return null;
                 };
     
@@ -34918,11 +34981,6 @@
                             message.uninterpretedOption[i] = $root.google.protobuf.UninterpretedOption.fromObject(object.uninterpretedOption[i]);
                         }
                     }
-                    if (object[".google.api.resourceReference"] != null) {
-                        if (typeof object[".google.api.resourceReference"] !== "object")
-                            throw TypeError(".google.protobuf.FieldOptions..google.api.resourceReference: object expected");
-                        message[".google.api.resourceReference"] = $root.google.api.ResourceReference.fromObject(object[".google.api.resourceReference"]);
-                    }
                     if (object[".google.api.fieldBehavior"]) {
                         if (!Array.isArray(object[".google.api.fieldBehavior"]))
                             throw TypeError(".google.protobuf.FieldOptions..google.api.fieldBehavior: array expected");
@@ -34972,6 +35030,11 @@
                                 break;
                             }
                     }
+                    if (object[".google.api.resourceReference"] != null) {
+                        if (typeof object[".google.api.resourceReference"] !== "object")
+                            throw TypeError(".google.protobuf.FieldOptions..google.api.resourceReference: object expected");
+                        message[".google.api.resourceReference"] = $root.google.api.ResourceReference.fromObject(object[".google.api.resourceReference"]);
+                    }
                     return message;
                 };
     
diff --git a/packages/google-cloud-recommender/protos/protos.json b/packages/google-cloud-recommender/protos/protos.json
index c71c924eef64..5d69986a7a8f 100644
--- a/packages/google-cloud-recommender/protos/protos.json
+++ b/packages/google-cloud-recommender/protos/protos.json
@@ -26,7 +26,10 @@
                       "fields": {
                         "name": {
                           "type": "string",
-                          "id": 1
+                          "id": 1,
+                          "options": {
+                            "(google.api.field_behavior)": "IDENTIFIER"
+                          }
                         },
                         "description": {
                           "type": "string",
@@ -137,7 +140,10 @@
                       "fields": {
                         "name": {
                           "type": "string",
-                          "id": 1
+                          "id": 1,
+                          "options": {
+                            "(google.api.field_behavior)": "IDENTIFIER"
+                          }
                         },
                         "insightTypeGenerationConfig": {
                           "type": "InsightTypeGenerationConfig",
@@ -185,7 +191,10 @@
                       "fields": {
                         "name": {
                           "type": "string",
-                          "id": 1
+                          "id": 1,
+                          "options": {
+                            "(google.api.field_behavior)": "IDENTIFIER"
+                          }
                         },
                         "description": {
                           "type": "string",
@@ -232,6 +241,11 @@
                         "xorGroupId": {
                           "type": "string",
                           "id": 18
+                        },
+                        "targetResources": {
+                          "rule": "repeated",
+                          "type": "string",
+                          "id": 19
                         }
                       },
                       "nested": {
@@ -435,6 +449,10 @@
                         "reliabilityProjection": {
                           "type": "ReliabilityProjection",
                           "id": 103
+                        },
+                        "service": {
+                          "type": "string",
+                          "id": 3
                         }
                       },
                       "nested": {
@@ -484,7 +502,10 @@
                       "fields": {
                         "name": {
                           "type": "string",
-                          "id": 1
+                          "id": 1,
+                          "options": {
+                            "(google.api.field_behavior)": "IDENTIFIER"
+                          }
                         },
                         "recommenderGenerationConfig": {
                           "type": "RecommenderGenerationConfig",
@@ -2493,6 +2514,28 @@
             "objc_class_prefix": "GAPI"
           },
           "nested": {
+            "fieldBehavior": {
+              "rule": "repeated",
+              "type": "google.api.FieldBehavior",
+              "id": 1052,
+              "extend": "google.protobuf.FieldOptions",
+              "options": {
+                "packed": false
+              }
+            },
+            "FieldBehavior": {
+              "values": {
+                "FIELD_BEHAVIOR_UNSPECIFIED": 0,
+                "OPTIONAL": 1,
+                "REQUIRED": 2,
+                "OUTPUT_ONLY": 3,
+                "INPUT_ONLY": 4,
+                "IMMUTABLE": 5,
+                "UNORDERED_LIST": 6,
+                "NON_EMPTY_DEFAULT": 7,
+                "IDENTIFIER": 8
+              }
+            },
             "resourceReference": {
               "type": "google.api.ResourceReference",
               "id": 1055,
@@ -2570,28 +2613,6 @@
                 }
               }
             },
-            "fieldBehavior": {
-              "rule": "repeated",
-              "type": "google.api.FieldBehavior",
-              "id": 1052,
-              "extend": "google.protobuf.FieldOptions",
-              "options": {
-                "packed": false
-              }
-            },
-            "FieldBehavior": {
-              "values": {
-                "FIELD_BEHAVIOR_UNSPECIFIED": 0,
-                "OPTIONAL": 1,
-                "REQUIRED": 2,
-                "OUTPUT_ONLY": 3,
-                "INPUT_ONLY": 4,
-                "IMMUTABLE": 5,
-                "UNORDERED_LIST": 6,
-                "NON_EMPTY_DEFAULT": 7,
-                "IDENTIFIER": 8
-              }
-            },
             "http": {
               "type": "HttpRule",
               "id": 72295728,
