public MapField<string, MembershipFeatureSpec> MembershipSpecs { get; }
Optional. Membership-specific configuration for this Feature. If this Feature does
not support any per-Membership configuration, this field may be unused.
The keys indicate which Membership the configuration is for, in the form:
projects/{p}/locations/{l}/memberships/{m}
Where {p} is the project, {l} is a valid location and {m} is a valid
Membership in this project at that location. {p} WILL match the Feature's
project.
{p} will always be returned as the project number, but the project ID is
also accepted during input. If the same Membership is specified in the map
twice (using the project ID form, and the project number form), exactly
ONE of the entries will be saved, with no guarantees as to which. For this
reason, it is recommended the same format be used for all entries when
mutating a Feature.
public MapField<string, MembershipFeatureState> MembershipStates { get; }
Output only. Membership-specific Feature status. If this Feature does
report any per-Membership status, this field may be unused.
The keys indicate which Membership the state is for, in the form:
projects/{p}/locations/{l}/memberships/{m}
Where {p} is the project number, {l} is a valid location and {m} is a valid
Membership in this project at that location. {p} MUST match the Feature's
project number.
[[["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\u003eThis webpage provides documentation for the \u003ccode\u003eFeature\u003c/code\u003e class within the Google Cloud GKE Hub v1 API, with the latest version being 2.5.0.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eFeature\u003c/code\u003e class represents the configuration and status of a Hub Feature, and it implements interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt allows for setting membership-specific configurations and states, with unique keys that help to indicate which membership the information is for.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eFeature\u003c/code\u003e class has properties to track the creation, deletion, and update times, as well as labels, a resource state, and hub-wide feature specification and state.\u003c/p\u003e\n"],["\u003cp\u003eThe full, unique name of each Feature resource is stored in the format \u003ccode\u003eprojects/*/locations/*/features/*\u003c/code\u003e in the name property.\u003c/p\u003e\n"]]],[],null,["# GKE Hub v1 API - Class Feature (2.5.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.5.0 (latest)](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/latest/Google.Cloud.GkeHub.V1.Feature)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/2.4.0/Google.Cloud.GkeHub.V1.Feature)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/2.3.0/Google.Cloud.GkeHub.V1.Feature)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/2.2.0/Google.Cloud.GkeHub.V1.Feature)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/2.1.0/Google.Cloud.GkeHub.V1.Feature)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/2.0.0/Google.Cloud.GkeHub.V1.Feature)\n- [1.2.0](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/1.2.0/Google.Cloud.GkeHub.V1.Feature)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/1.1.0/Google.Cloud.GkeHub.V1.Feature)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/1.0.0/Google.Cloud.GkeHub.V1.Feature) \n\n public sealed class Feature : IMessage\u003cFeature\u003e, IEquatable\u003cFeature\u003e, IDeepCloneable\u003cFeature\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the GKE Hub v1 API class Feature.\n\nFeature represents the settings and status of any Hub Feature. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Feature \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Feature](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/latest/Google.Cloud.GkeHub.V1.Feature), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Feature](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/latest/Google.Cloud.GkeHub.V1.Feature), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Feature](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/latest/Google.Cloud.GkeHub.V1.Feature), [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.GkeHub.V1](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/latest/Google.Cloud.GkeHub.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.GkeHub.V1.dll\n\nConstructors\n------------\n\n### Feature()\n\n public Feature()\n\n### Feature(Feature)\n\n public Feature(Feature other)\n\nProperties\n----------\n\n### CreateTime\n\n public Timestamp CreateTime { get; set; }\n\nOutput only. When the Feature resource was created.\n\n### DeleteTime\n\n public Timestamp DeleteTime { get; set; }\n\nOutput only. When the Feature resource was deleted.\n\n### FeatureName\n\n public FeatureName FeatureName { get; set; }\n\n[FeatureName](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/latest/Google.Cloud.GkeHub.V1.FeatureName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.GkeHub.V1/latest/Google.Cloud.GkeHub.V1.Feature#Google_Cloud_GkeHub_V1_Feature_Name) resource name property.\n\n### Labels\n\n public MapField\u003cstring, string\u003e Labels { get; }\n\nGCP labels for this Feature.\n\n### MembershipSpecs\n\n public MapField\u003cstring, MembershipFeatureSpec\u003e MembershipSpecs { get; }\n\nOptional. Membership-specific configuration for this Feature. If this Feature does\nnot support any per-Membership configuration, this field may be unused.\n\nThe keys indicate which Membership the configuration is for, in the form: \n\n projects/{p}/locations/{l}/memberships/{m}\n\nWhere {p} is the project, {l} is a valid location and {m} is a valid\nMembership in this project at that location. {p} WILL match the Feature's\nproject.\n\n{p} will always be returned as the project number, but the project ID is\nalso accepted during input. If the same Membership is specified in the map\ntwice (using the project ID form, and the project number form), exactly\nONE of the entries will be saved, with no guarantees as to which. For this\nreason, it is recommended the same format be used for all entries when\nmutating a Feature.\n\n### MembershipStates\n\n public MapField\u003cstring, MembershipFeatureState\u003e MembershipStates { get; }\n\nOutput only. Membership-specific Feature status. If this Feature does\nreport any per-Membership status, this field may be unused.\n\nThe keys indicate which Membership the state is for, in the form: \n\n projects/{p}/locations/{l}/memberships/{m}\n\nWhere {p} is the project number, {l} is a valid location and {m} is a valid\nMembership in this project at that location. {p} MUST match the Feature's\nproject number.\n\n### Name\n\n public string Name { get; set; }\n\nOutput only. The full, unique name of this Feature resource in the format\n`projects/*/locations/*/features/*`.\n\n### ResourceState\n\n public FeatureResourceState ResourceState { get; set; }\n\nOutput only. State of the Feature resource itself.\n\n### Spec\n\n public CommonFeatureSpec Spec { get; set; }\n\nOptional. Hub-wide Feature configuration. If this Feature does not support any\nHub-wide configuration, this field may be unused.\n\n### State\n\n public CommonFeatureState State { get; set; }\n\nOutput only. The Hub-wide Feature state.\n\n### UpdateTime\n\n public Timestamp UpdateTime { get; set; }\n\nOutput only. When the Feature resource was last updated."]]