---
title: Getting Started with Datadog
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > Infrastructure > Datadog Resource Catalog
---

# gcp_gkehub_membership{% #gcp_gkehub_membership %}

## `ancestors`{% #ancestors %}

**Type**: `UNORDERED_LIST_STRING`

## `authority`{% #authority %}

**Type**: `STRUCT`**Provider name**: `authority`**Description**: Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: [https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity](https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity)

- `identity_provider`**Type**: `STRING`**Provider name**: `identityProvider`**Description**: Output only. An identity provider that reflects the `issuer` in the workload identity pool.
- `issuer`**Type**: `STRING`**Provider name**: `issuer`**Description**: Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters, it must use `location` rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
- `scope_tenancy_identity_provider`**Type**: `STRING`**Provider name**: `scopeTenancyIdentityProvider`**Description**: Optional. Output only. The identity provider for the scope-tenancy workload identity pool.
- `scope_tenancy_workload_identity_pool`**Type**: `STRING`**Provider name**: `scopeTenancyWorkloadIdentityPool`**Description**: Optional. Output only. The name of the scope-tenancy workload identity pool. This pool is set in the fleet-level feature.
- `workload_identity_pool`**Type**: `STRING`**Provider name**: `workloadIdentityPool`**Description**: Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.

## `cluster_tier`{% #cluster_tier %}

**Type**: `STRING`**Provider name**: `clusterTier`**Description**: Output only. The tier of the cluster.**Possible values**:

- `CLUSTER_TIER_UNSPECIFIED` - The ClusterTier is not set.
- `STANDARD` - The ClusterTier is standard.
- `ENTERPRISE` - The ClusterTier is enterprise.

## `create_time`{% #create_time %}

**Type**: `TIMESTAMP`**Provider name**: `createTime`**Description**: Output only. When the Membership was created.

## `delete_time`{% #delete_time %}

**Type**: `TIMESTAMP`**Provider name**: `deleteTime`**Description**: Output only. When the Membership was deleted.

## `description`{% #description %}

**Type**: `STRING`**Provider name**: `description`**Description**: Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.

## `endpoint`{% #endpoint %}

**Type**: `STRUCT`**Provider name**: `endpoint`**Description**: Optional. Endpoint information to reach this member.

- `appliance_cluster`**Type**: `STRUCT`**Provider name**: `applianceCluster`**Description**: Optional. Specific information for a GDC Edge Appliance cluster.
  - `resource_link`**Type**: `STRING`**Provider name**: `resourceLink`**Description**: Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance
- `edge_cluster`**Type**: `STRUCT`**Provider name**: `edgeCluster`**Description**: Optional. Specific information for a Google Edge cluster.
  - `resource_link`**Type**: `STRING`**Provider name**: `resourceLink`**Description**: Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster
- `gke_cluster`**Type**: `STRUCT`**Provider name**: `gkeCluster`**Description**: Optional. Specific information for a GKE-on-GCP cluster.
  - `cluster_missing`**Type**: `BOOLEAN`**Provider name**: `clusterMissing`**Description**: Output only. If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane.
  - `resource_link`**Type**: `STRING`**Provider name**: `resourceLink`**Description**: Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
- `google_managed`**Type**: `BOOLEAN`**Provider name**: `googleManaged`**Description**: Output only. Whether the lifecycle of this membership is managed by a google cluster platform service.
- `kubernetes_metadata`**Type**: `STRUCT`**Provider name**: `kubernetesMetadata`**Description**: Output only. Useful Kubernetes-specific metadata.
  - `kubernetes_api_server_version`**Type**: `STRING`**Provider name**: `kubernetesApiServerVersion`**Description**: Output only. Kubernetes API server version string as reported by `/version`.
  - `memory_mb`**Type**: `INT32`**Provider name**: `memoryMb`**Description**: Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
  - `node_count`**Type**: `INT32`**Provider name**: `nodeCount`**Description**: Output only. Node count as reported by Kubernetes nodes resources.
  - `node_provider_id`**Type**: `STRING`**Provider name**: `nodeProviderId`**Description**: Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
  - `update_time`**Type**: `TIMESTAMP`**Provider name**: `updateTime`**Description**: Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
  - `vcpu_count`**Type**: `INT32`**Provider name**: `vcpuCount`**Description**: Output only. vCPU count as reported by Kubernetes nodes resources.
- `kubernetes_resource`**Type**: `STRUCT`**Provider name**: `kubernetesResource`**Description**: Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features.
  - `connect_resources`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `connectResources`**Description**: Output only. The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
    - `cluster_scoped`**Type**: `BOOLEAN`**Provider name**: `clusterScoped`**Description**: Output only. Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
    - `manifest`**Type**: `STRING`**Provider name**: `manifest`**Description**: Output only. YAML manifest of the resource.
  - `membership_cr_manifest`**Type**: `STRING`**Provider name**: `membershipCrManifest`**Description**: Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.
  - `membership_resources`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `membershipResources`**Description**: Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
    - `cluster_scoped`**Type**: `BOOLEAN`**Provider name**: `clusterScoped`**Description**: Output only. Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
    - `manifest`**Type**: `STRING`**Provider name**: `manifest`**Description**: Output only. YAML manifest of the resource.
  - `resource_options`**Type**: `STRUCT`**Provider name**: `resourceOptions`**Description**: Optional. Options for Kubernetes resource generation.
    - `connect_version`**Type**: `STRING`**Provider name**: `connectVersion`**Description**: Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.
    - `k8s_version`**Type**: `STRING`**Provider name**: `k8sVersion`**Description**: Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`.
    - `v1beta1_crd`**Type**: `BOOLEAN`**Provider name**: `v1beta1Crd`**Description**: Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions <1.16.
- `multi_cloud_cluster`**Type**: `STRUCT`**Provider name**: `multiCloudCluster`**Description**: Optional. Specific information for a GKE Multi-Cloud cluster.
  - `cluster_missing`**Type**: `BOOLEAN`**Provider name**: `clusterMissing`**Description**: Output only. If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.
  - `resource_link`**Type**: `STRING`**Provider name**: `resourceLink`**Description**: Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster
- `on_prem_cluster`**Type**: `STRUCT`**Provider name**: `onPremCluster`**Description**: Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil "type" instead.
  - `admin_cluster`**Type**: `BOOLEAN`**Provider name**: `adminCluster`**Description**: Immutable. Whether the cluster is an admin cluster.
  - `cluster_missing`**Type**: `BOOLEAN`**Provider name**: `clusterMissing`**Description**: Output only. If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists.
  - `cluster_type`**Type**: `STRING`**Provider name**: `clusterType`**Description**: Immutable. The on prem cluster's type.**Possible values**:
    - `CLUSTERTYPE_UNSPECIFIED` - The ClusterType is not set.
    - `BOOTSTRAP` - The ClusterType is bootstrap cluster.
    - `HYBRID` - The ClusterType is baremetal hybrid cluster.
    - `STANDALONE` - The ClusterType is baremetal standalone cluster.
    - `USER` - The ClusterType is user cluster.
  - `resource_link`**Type**: `STRING`**Provider name**: `resourceLink`**Description**: Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster

## `gcp_external_id`{% #gcp_external_id %}

**Type**: `STRING`**Provider name**: `externalId`**Description**: Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. The ID must match the regex: `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.

## `labels`{% #labels %}

**Type**: `UNORDERED_LIST_STRING`

## `last_connection_time`{% #last_connection_time %}

**Type**: `TIMESTAMP`**Provider name**: `lastConnectionTime`**Description**: 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.

## `membership_type`{% #membership_type %}

**Type**: `STRING`**Provider name**: `membershipType`**Description**: Output only. The type of the membership.**Possible values**:

- `MEMBERSHIP_TYPE_UNSPECIFIED` - The MembershipType is not set.
- `LIGHTWEIGHT` - The membership supports only lightweight compatible features.

## `monitoring_config`{% #monitoring_config %}

**Type**: `STRUCT`**Provider name**: `monitoringConfig`**Description**: Optional. The monitoring config information for this membership.

- `cluster`**Type**: `STRING`**Provider name**: `cluster`**Description**: Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., "awsClusters/cluster_1".
- `cluster_hash`**Type**: `STRING`**Provider name**: `clusterHash`**Description**: Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID.
- `kubernetes_metrics_prefix`**Type**: `STRING`**Provider name**: `kubernetesMetricsPrefix`**Description**: Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos.
- `location`**Type**: `STRING`**Provider name**: `location`**Description**: Optional. Location used to report Metrics
- `project_id`**Type**: `STRING`**Provider name**: `projectId`**Description**: Optional. Project used to report Metrics

## `name`{% #name %}

**Type**: `STRING`**Provider name**: `name`**Description**: Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.

## `organization_id`{% #organization_id %}

**Type**: `STRING`

## `parent`{% #parent %}

**Type**: `STRING`

## `project_id`{% #project_id %}

**Type**: `STRING`

## `project_number`{% #project_number %}

**Type**: `STRING`

## `region_id`{% #region_id %}

**Type**: `STRING`

## `resource_name`{% #resource_name %}

**Type**: `STRING`

## `state`{% #state %}

**Type**: `STRUCT`**Provider name**: `state`**Description**: Output only. State of the Membership resource.

- `code`**Type**: `STRING`**Provider name**: `code`**Description**: Output only. The current state of the Membership resource.**Possible values**:
  - `CODE_UNSPECIFIED` - The code is not set.
  - `CREATING` - The cluster is being registered.
  - `READY` - The cluster is registered.
  - `DELETING` - The cluster is being unregistered.
  - `UPDATING` - The Membership is being updated.
  - `SERVICE_UPDATING` - The Membership is being updated by the Hub Service.

## `tags`{% #tags %}

**Type**: `UNORDERED_LIST_STRING`

## `unique_id`{% #unique_id %}

**Type**: `STRING`**Provider name**: `uniqueId`**Description**: 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.

## `update_time`{% #update_time %}

**Type**: `TIMESTAMP`**Provider name**: `updateTime`**Description**: Output only. When the Membership was last updated.

## `zone_id`{% #zone_id %}

**Type**: `STRING`
