Optional. An externally-generated and managed ID for this Membership. This
ID may be modified after creation, but this is not recommended. For GKE
clusters, external_id is managed by the Hub API and updates will be
ignored.
The ID must match the regex: [a-zA-Z0-9][a-zA-Z0-9_\-\.]*
If this Membership represents a Kubernetes cluster, this value should be
set to the UID of the kube-system namespace object.
Output only. For clusters using Connect, the timestamp of the most recent
connection established with Google Cloud. This time is updated every
several minutes, not continuously. For clusters that do not use GKE
Connect, or that have never connected successfully, this field will be
unset.
Output only. Google-generated UUID for this resource. This is unique across
all Membership resources. If a Membership resource is deleted and another
resource with the same name is created, it gets a different unique_id.
[[["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 \u003ccode\u003eMembership\u003c/code\u003e class in the GKE Hub v1beta1 API represents a member cluster and is the latest version at 2.0.0-beta07.\u003c/p\u003e\n"],["\u003cp\u003eThis class implements interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, and inherits from \u003ccode\u003eobject\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt includes properties like \u003ccode\u003eAuthority\u003c/code\u003e, \u003ccode\u003eCreateTime\u003c/code\u003e, \u003ccode\u003eDeleteTime\u003c/code\u003e, \u003ccode\u003eDescription\u003c/code\u003e, \u003ccode\u003eEndpoint\u003c/code\u003e, and others to manage and describe member cluster details.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMembership\u003c/code\u003e class also tracks timestamps such as \u003ccode\u003eCreateTime\u003c/code\u003e, \u003ccode\u003eDeleteTime\u003c/code\u003e, \u003ccode\u003eLastConnectionTime\u003c/code\u003e, and \u003ccode\u003eUpdateTime\u003c/code\u003e to monitor the cluster's lifecycle and connectivity.\u003c/p\u003e\n"],["\u003cp\u003eIt contains information to use to identify workloads from the membership through the \u003ccode\u003eAuthority\u003c/code\u003e property.\u003c/p\u003e\n"]]],[],null,["# GKE Hub v1beta1 API - Class Membership (2.0.0-beta07)\n\nVersion latestkeyboard_arrow_down\n\n- [2.0.0-beta07 (latest)](/dotnet/docs/reference/Google.Cloud.GkeHub.V1Beta1/latest/Google.Cloud.GkeHub.V1Beta1.Membership)\n- [2.0.0-beta06](/dotnet/docs/reference/Google.Cloud.GkeHub.V1Beta1/2.0.0-beta06/Google.Cloud.GkeHub.V1Beta1.Membership)\n- [1.0.0-beta04](/dotnet/docs/reference/Google.Cloud.GkeHub.V1Beta1/1.0.0-beta04/Google.Cloud.GkeHub.V1Beta1.Membership) \n\n public sealed class Membership : IMessage\u003cMembership\u003e, IEquatable\u003cMembership\u003e, IDeepCloneable\u003cMembership\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the GKE Hub v1beta1 API class Membership.\n\nMembership contains information about a member cluster. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Membership \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Membership](/dotnet/docs/reference/Google.Cloud.GkeHub.V1Beta1/latest/Google.Cloud.GkeHub.V1Beta1.Membership), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Membership](/dotnet/docs/reference/Google.Cloud.GkeHub.V1Beta1/latest/Google.Cloud.GkeHub.V1Beta1.Membership), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Membership](/dotnet/docs/reference/Google.Cloud.GkeHub.V1Beta1/latest/Google.Cloud.GkeHub.V1Beta1.Membership), [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.V1Beta1](/dotnet/docs/reference/Google.Cloud.GkeHub.V1Beta1/latest/Google.Cloud.GkeHub.V1Beta1)\n\nAssembly\n--------\n\nGoogle.Cloud.GkeHub.V1Beta1.dll\n\nConstructors\n------------\n\n### Membership()\n\n public Membership()\n\n### Membership(Membership)\n\n public Membership(Membership other)\n\nProperties\n----------\n\n### Authority\n\n public Authority Authority { get; set; }\n\nOptional. How to identify workloads from this Membership.\nSee the documentation on Workload Identity for more details:\n\u003chttps://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity\u003e\n\n### CreateTime\n\n public Timestamp CreateTime { get; set; }\n\nOutput only. When the Membership was created.\n\n### DeleteTime\n\n public Timestamp DeleteTime { get; set; }\n\nOutput only. When the Membership was deleted.\n\n### Description\n\n public string Description { get; set; }\n\nOptional. Description of this membership, limited to 63 characters.\nMust match the regex: `[a-zA-Z0-9][a-zA-Z0-9_\\-\\.\\ ]*`\n\n### Endpoint\n\n public MembershipEndpoint Endpoint { get; set; }\n\nOptional. Endpoint information to reach this member.\n\n### ExternalId\n\n public string ExternalId { get; set; }\n\nOptional. An externally-generated and managed ID for this Membership. This\nID may be modified after creation, but this is not recommended. For GKE\nclusters, external_id is managed by the Hub API and updates will be\nignored.\n\nThe ID must match the regex: `[a-zA-Z0-9][a-zA-Z0-9_\\-\\.]*`\n\nIf this Membership represents a Kubernetes cluster, this value should be\nset to the UID of the `kube-system` namespace object.\n\n### InfrastructureType\n\n public Membership.Types.InfrastructureType InfrastructureType { get; set; }\n\nOptional. The infrastructure type this Membership is running on.\n\n### Labels\n\n public MapField\u003cstring, string\u003e Labels { get; }\n\nOptional. GCP labels for this membership.\n\n### LastConnectionTime\n\n public Timestamp LastConnectionTime { get; set; }\n\nOutput only. For clusters using Connect, the timestamp of the most recent\nconnection established with Google Cloud. This time is updated every\nseveral minutes, not continuously. For clusters that do not use GKE\nConnect, or that have never connected successfully, this field will be\nunset.\n\n### MembershipName\n\n public MembershipName MembershipName { get; set; }\n\n[MembershipName](/dotnet/docs/reference/Google.Cloud.GkeHub.V1Beta1/latest/Google.Cloud.GkeHub.V1Beta1.MembershipName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.GkeHub.V1Beta1/latest/Google.Cloud.GkeHub.V1Beta1.Membership#Google_Cloud_GkeHub_V1Beta1_Membership_Name) resource name property.\n\n### MonitoringConfig\n\n public MonitoringConfig MonitoringConfig { get; set; }\n\nOptional. The monitoring config information for this membership.\n\n### Name\n\n public string Name { get; set; }\n\nOutput only. The full, unique name of this Membership resource in the\nformat `projects/*/locations/*/memberships/{membership_id}`, set during\ncreation.\n\n`membership_id` must be a valid RFC 1123 compliant DNS label:\n\n1. At most 63 characters in length\n2. It must consist of lower case alphanumeric characters or `-`\n3. It must start and end with an alphanumeric character\n\nWhich can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`,\nwith a maximum length of 63 characters.\n\n### State\n\n public MembershipState State { get; set; }\n\nOutput only. State of the Membership resource.\n\n### TypeCase\n\n public Membership.TypeOneofCase TypeCase { get; }\n\n### UniqueId\n\n public string UniqueId { get; set; }\n\nOutput only. Google-generated UUID for this resource. This is unique across\nall Membership resources. If a Membership resource is deleted and another\nresource with the same name is created, it gets a different unique_id.\n\n### UpdateTime\n\n public Timestamp UpdateTime { get; set; }\n\nOutput only. When the Membership was last updated."]]