public RepeatedField<Impact> AdditionalImpact { get; }
Optional set of additional impact that this recommendation may have when
trying to optimize for the primary category. These may be positive
or negative.
Contains an identifier for a subtype of recommendations produced for the
same recommender. Subtype is a function of content and impact, meaning a
new subtype might be added when significant changes to content or
primary_impact.category are introduced. See the Recommenders section
to see a list of subtypes for a given Recommender.
Examples:
For recommender = "google.iam.policy.Recommender",
recommender_subtype can be one of "REMOVE_ROLE"/"REPLACE_ROLE"
Corresponds to a mutually exclusive group ID within a recommender.
A non-empty ID indicates that the recommendation belongs to a mutually
exclusive group. This means that only one recommendation within the group
is suggested to be applied.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe latest version of the Google Cloud Recommender v1 API class Recommendation is 3.7.0, with older versions ranging down to 2.5.0 also available for reference.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRecommendation\u003c/code\u003e class, part of the \u003ccode\u003eGoogle.Cloud.Recommender.V1\u003c/code\u003e namespace, is designed to provide suggestions, such as rightsizing underutilized VMs or offering IAM role recommendations.\u003c/p\u003e\n"],["\u003cp\u003eThis class includes properties like \u003ccode\u003eName\u003c/code\u003e, \u003ccode\u003eDescription\u003c/code\u003e, \u003ccode\u003ePriority\u003c/code\u003e, \u003ccode\u003eContent\u003c/code\u003e, and \u003ccode\u003eStateInfo\u003c/code\u003e to give key information regarding a recommendation, as well as \u003ccode\u003ePrimaryImpact\u003c/code\u003e and \u003ccode\u003eAdditionalImpact\u003c/code\u003e for potential effects.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRecommendation\u003c/code\u003e class also implements interfaces such as \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, and \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and has constructors for both a default initialization and one that takes another \u003ccode\u003eRecommendation\u003c/code\u003e object.\u003c/p\u003e\n"],["\u003cp\u003eThe class contains a \u003ccode\u003eRecommenderSubtype\u003c/code\u003e property that is an identifier for a subtype of recommendations, and \u003ccode\u003eXorGroupId\u003c/code\u003e property to allow for exclusive recommendation groups.\u003c/p\u003e\n"]]],[],null,["# Google Cloud Recommender v1 API - Class Recommendation (3.7.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.7.0 (latest)](/dotnet/docs/reference/Google.Cloud.Recommender.V1/latest/Google.Cloud.Recommender.V1.Recommendation)\n- [3.6.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/3.6.0/Google.Cloud.Recommender.V1.Recommendation)\n- [3.5.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/3.5.0/Google.Cloud.Recommender.V1.Recommendation)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/3.4.0/Google.Cloud.Recommender.V1.Recommendation)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/3.3.0/Google.Cloud.Recommender.V1.Recommendation)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/3.2.0/Google.Cloud.Recommender.V1.Recommendation)\n- [3.1.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/3.1.0/Google.Cloud.Recommender.V1.Recommendation)\n- [3.0.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/3.0.0/Google.Cloud.Recommender.V1.Recommendation)\n- [2.8.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/2.8.0/Google.Cloud.Recommender.V1.Recommendation)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/2.7.0/Google.Cloud.Recommender.V1.Recommendation)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/2.6.0/Google.Cloud.Recommender.V1.Recommendation)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Recommender.V1/2.5.0/Google.Cloud.Recommender.V1.Recommendation) \n\n public sealed class Recommendation : IMessage\u003cRecommendation\u003e, IEquatable\u003cRecommendation\u003e, IDeepCloneable\u003cRecommendation\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Cloud Recommender v1 API class Recommendation.\n\nA recommendation along with a suggested action. E.g., a rightsizing\nrecommendation for an underutilized VM, IAM role recommendations, etc \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Recommendation \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Recommendation](/dotnet/docs/reference/Google.Cloud.Recommender.V1/latest/Google.Cloud.Recommender.V1.Recommendation), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Recommendation](/dotnet/docs/reference/Google.Cloud.Recommender.V1/latest/Google.Cloud.Recommender.V1.Recommendation), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Recommendation](/dotnet/docs/reference/Google.Cloud.Recommender.V1/latest/Google.Cloud.Recommender.V1.Recommendation), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Recommender.V1](/dotnet/docs/reference/Google.Cloud.Recommender.V1/latest/Google.Cloud.Recommender.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Recommender.V1.dll\n\nConstructors\n------------\n\n### Recommendation()\n\n public Recommendation()\n\n### Recommendation(Recommendation)\n\n public Recommendation(Recommendation other)\n\nProperties\n----------\n\n### AdditionalImpact\n\n public RepeatedField\u003cImpact\u003e AdditionalImpact { get; }\n\nOptional set of additional impact that this recommendation may have when\ntrying to optimize for the primary category. These may be positive\nor negative.\n\n### AssociatedInsights\n\n public RepeatedField\u003cRecommendation.Types.InsightReference\u003e AssociatedInsights { get; }\n\nInsights that led to this recommendation.\n\n### Content\n\n public RecommendationContent Content { get; set; }\n\nContent of the recommendation describing recommended changes to resources.\n\n### Description\n\n public string Description { get; set; }\n\nFree-form human readable summary in English. The maximum length is 500\ncharacters.\n\n### Etag\n\n public string Etag { get; set; }\n\nFingerprint of the Recommendation. Provides optimistic locking when\nupdating states.\n\n### LastRefreshTime\n\n public Timestamp LastRefreshTime { get; set; }\n\nLast time this recommendation was refreshed by the system that created it\nin the first place.\n\n### Name\n\n public string Name { get; set; }\n\nName of recommendation.\n\n### PrimaryImpact\n\n public Impact PrimaryImpact { get; set; }\n\nThe primary impact that this recommendation can have while trying to\noptimize for one category.\n\n### Priority\n\n public Recommendation.Types.Priority Priority { get; set; }\n\nRecommendation's priority.\n\n### RecommendationName\n\n public RecommendationName RecommendationName { get; set; }\n\n[RecommendationName](/dotnet/docs/reference/Google.Cloud.Recommender.V1/latest/Google.Cloud.Recommender.V1.RecommendationName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.Recommender.V1/latest/Google.Cloud.Recommender.V1.Recommendation#Google_Cloud_Recommender_V1_Recommendation_Name) resource name property.\n\n### RecommenderSubtype\n\n public string RecommenderSubtype { get; set; }\n\nContains an identifier for a subtype of recommendations produced for the\nsame recommender. Subtype is a function of content and impact, meaning a\nnew subtype might be added when significant changes to `content` or\n`primary_impact.category` are introduced. See the Recommenders section\nto see a list of subtypes for a given Recommender.\n\nExamples:\nFor recommender = \"google.iam.policy.Recommender\",\nrecommender_subtype can be one of \"REMOVE_ROLE\"/\"REPLACE_ROLE\"\n\n### StateInfo\n\n public RecommendationStateInfo StateInfo { get; set; }\n\nInformation for state. Contains state and metadata.\n\n### XorGroupId\n\n public string XorGroupId { get; set; }\n\nCorresponds to a mutually exclusive group ID within a recommender.\nA non-empty ID indicates that the recommendation belongs to a mutually\nexclusive group. This means that only one recommendation within the group\nis suggested to be applied."]]