[Yandex Cloud documentation](../../../../../index.md) > [Yandex BareMetal](../../../../index.md) > Concepts > Setup and management > API reference > API v2 > gRPC > [Extend API](../index.md) > [StacklandCluster](index.md) > ListStacklandClusters

# Extend API, gRPC: StacklandClusterService.ListStacklandClusters

List Stackland clusters in the specified folder.


## gRPC request

**rpc ListStacklandClusters ([ListStacklandClustersRequest](#yandex.cloud.baremetal.v2.extend.ListStacklandClustersRequest)) returns ([ListStacklandClustersResponse](#yandex.cloud.baremetal.v2.extend.ListStacklandClustersResponse))**

## ListStacklandClustersRequest {#yandex.cloud.baremetal.v2.extend.ListStacklandClustersRequest}

```json
{
  "cloud_id": "string",
  "folder_id": "string",
  "page_size": "int64",
  "page_token": "string",
  "order_by": "string",
  "filter": "string"
}
```

#|
||Field | Description ||
|| cloud_id | **string**

ID of the parent cloud.

To get the cloud ID, use a [yandex.cloud.resourcemanager.v1.CloudService.List](../../../../../resource-manager/api-ref/grpc/Cloud/list.md#List) request. ||
|| folder_id | **string**

ID of the parent folder.

To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List](../../../../../resource-manager/api-ref/grpc/Folder/list.md#List) request. ||
|| page_size | **int64**

The maximum number of results per page to return. If the number of available
results is greater than `page_size`,
the service returns a [ListStacklandClustersResponse.next_page_token](#yandex.cloud.baremetal.v2.extend.ListStacklandClustersResponse)
that can be used to get the next page of results in subsequent list requests.
Default value is 20.

The maximum value is 1000. ||
|| page_token | **string**

Page token. To get the next page of results, set `page_token` to the
[ListStacklandClustersResponse.next_page_token](#yandex.cloud.baremetal.v2.extend.ListStacklandClustersResponse) returned by a previous list request. ||
|| order_by | **string**

By which column the listing should be ordered and in which direction. ||
|| filter | **string**

A filter expression that filters resources listed in the response. ||
|#

## ListStacklandClustersResponse {#yandex.cloud.baremetal.v2.extend.ListStacklandClustersResponse}

```json
{
  "clusters": [
    {
      "stackland_cluster_id": "string",
      "cloud_id": "string",
      "folder_id": "string",
      "name": "string",
      "description": "string",
      "state": "State",
      "create_time": "google.protobuf.Timestamp",
      "update_time": "google.protobuf.Timestamp",
      "annotations": "map<string, string>",
      "hardware_pool_id": "string",
      "preset": "StacklandPreset",
      "host_roles": {
        "controlplane": [
          {
            "configuration_id": "string",
            "node_count": "int64",
            "nodes": [
              {
                "server_id": "string",
                "configuration_id": "string",
                "management_ip_address": "string",
                "hostname": "string"
              }
            ],
            "server_ids": [
              "string"
            ]
          }
        ],
        "combined": [
          {
            "configuration_id": "string",
            "node_count": "int64",
            "nodes": [
              {
                "server_id": "string",
                "configuration_id": "string",
                "management_ip_address": "string",
                "hostname": "string"
              }
            ],
            "server_ids": [
              "string"
            ]
          }
        ],
        "worker": [
          {
            "configuration_id": "string",
            "node_count": "int64",
            "nodes": [
              {
                "server_id": "string",
                "configuration_id": "string",
                "management_ip_address": "string",
                "hostname": "string"
              }
            ],
            "server_ids": [
              "string"
            ]
          }
        ]
      },
      "bastion_node": {
        "server_id": "string",
        "configuration_id": "string",
        "management_ip_address": "string",
        "hostname": "string"
      },
      "subnet_id": "string",
      "cidr": "string",
      "version": "string",
      "license": "string",
      "credentials_lockbox_secret_id": "string",
      "configuration_url": "string",
      "virtual_ip": "string",
      "cluster_domain": "string",
      "subdomains": {
        "console": "string",
        "dashboard": "string",
        "grafana": "string",
        "prometheus": "string",
        "alertmanager": "string"
      },
      "bastion_spec": {
        // Includes only one of the fields `ssh_public_key_text`, `user_ssh_id`
        "ssh_public_key_text": "string",
        "user_ssh_id": "string",
        // end of the list of possible fields
        // Includes only one of the fields `password_plain_text`, `password_lockbox_secret`
        "password_plain_text": "string",
        "password_lockbox_secret": {
          "secret_id": "string",
          "version_id": "string",
          "key": "string"
        }
        // end of the list of possible fields
      },
      "settings": {
        "public_network_access": "PublicNetworkAccess"
      }
    }
  ],
  "next_page_token": "string"
}
```

#|
||Field | Description ||
|| clusters[] | **[StacklandCluster](#yandex.cloud.baremetal.v2.extend.StacklandCluster)**

List of Cluster resources. ||
|| next_page_token | **string**

Token for getting the next page of the list. If the number of results is greater than
[ListStacklandClustersRequest.page_size](#yandex.cloud.baremetal.v2.extend.ListStacklandClustersRequest), use `next_page_token` as the value
for the [ListStacklandClustersRequest.page_token](#yandex.cloud.baremetal.v2.extend.ListStacklandClustersRequest) parameter in the next list request.

Each subsequent page will have its own `next_page_token` to continue paging through the results. ||
|#

## StacklandCluster {#yandex.cloud.baremetal.v2.extend.StacklandCluster}

#|
||Field | Description ||
|| stackland_cluster_id | **string**

ID of the cluster. ||
|| cloud_id | **string**

ID of the cloud that the cluster belongs to. ||
|| folder_id | **string**

ID of the folder that the cluster belongs to. ||
|| name | **string**

Name of the cluster.
The display name is unique within the folder. ||
|| description | **string**

Description of the server. ||
|| state | enum **State**

State of the cluster.

- `CREATING`: Cluster is being created.
- `UPDATING`: Cluster is being updated.
- `RUNNING`: Cluster is running.
- `DELETING`: Cluster is being deleted.
- `ERROR`: Cluster is in error state. ||
|| create_time | **[google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp)**

Creation timestamp. ||
|| update_time | **[google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp)**

Update timestamp. ||
|| annotations | **object** (map<**string**, **string**>)

Resource labels as `key:value` pairs.

The maximum string length in characters for each value is 63. The string length in characters for each key must be 1-63. Each key must match the regular expression ` [a-z][-_0-9a-z]* `. Each value must match the regular expression ` [-_0-9a-z]* `. No more than 64 per resource. ||
|| hardware_pool_id | **string**

ID of the hardware pool that the cluster belongs to. ||
|| preset | enum **StacklandPreset**

Preset of the cluster.

- `MINIMAL`: Minimal preset.
- `FULL`: Full preset. ||
|| host_roles | **[StacklandHostRoles](#yandex.cloud.baremetal.v2.extend.StacklandHostRoles)**

Which node types are to be used for cluster roles. ||
|| bastion_node | **[Node](#yandex.cloud.baremetal.v2.extend.Node)**

Bastion node. ||
|| subnet_id | **string**

ID of the subnet that the cluster belongs to. ||
|| cidr | **string**

Optional CIDR to preselect in subnet. ||
|| version | **string**

Version of Stackland to be used. ||
|| license | **string**

License to activate Stackland. ||
|| credentials_lockbox_secret_id | **string**

ID of secret with cluster credentials in lockbox. ||
|| configuration_url | **string**

URL in S3 to the cluster configuration. ||
|| virtual_ip | **string**

IP of the cluster control plane. . ||
|| cluster_domain | **string**

Base cluster DNS domain. ||
|| subdomains | **[StacklandSubdomains](#yandex.cloud.baremetal.v2.extend.StacklandSubdomains)**

Cluster component URLs, available once the cluster is active. ||
|| bastion_spec | **[BastionSpec](#yandex.cloud.baremetal.v2.extend.BastionSpec)**

Credentials for access to the bastion node.

Input only field. ||
|| settings | **[StacklandClusterSettings](#yandex.cloud.baremetal.v2.extend.StacklandClusterSettings)**

Cluster settings. Can be set only at cluster creation. ||
|#

## StacklandHostRoles {#yandex.cloud.baremetal.v2.extend.StacklandHostRoles}

#|
||Field | Description ||
|| controlplane[] | **[NodeGroup](#yandex.cloud.baremetal.v2.extend.NodeGroup)**

Node types used as controlplane nodes. ||
|| combined[] | **[NodeGroup](#yandex.cloud.baremetal.v2.extend.NodeGroup)**

Node types used as combined nodes. ||
|| worker[] | **[NodeGroup](#yandex.cloud.baremetal.v2.extend.NodeGroup)**

Node types used as workder nodes. ||
|#

## NodeGroup {#yandex.cloud.baremetal.v2.extend.NodeGroup}

NodeGroup describes a group of nodes with a common role.

A group can be filled in one of three ways:
1. New servers only: `configuration_id` and `node_count` are set, `server_ids` is empty.
`node_count` new servers of the given configuration will be leased.
2. Mixed group with a default configuration: `configuration_id` and `node_count` are set,
`server_ids` is non-empty and `node_count >= len(server_ids)`. Servers listed in
`server_ids` must already match `configuration_id` or be custom servers
(assembled manually, not via a standard configuration). If `node_count == len(server_ids)`,
no new servers are leased; otherwise `node_count - len(server_ids)` new servers of
`configuration_id` are leased in addition to the existing ones.
3. Custom servers only: `configuration_id` is empty, `server_ids`
is non-empty and contains only custom servers, `node_count == len(server_ids)`.

Servers listed in `server_ids` must satisfy (checked synchronously before the
create-cluster operation is created): the server's configuration matches
`configuration_id` or the server is custom; the server's hardware pool matches the
cluster's hardware pool; the server's status is not `QUARANTINED` or `DELETING`.
If a server's status is `UPDATING` or `PROVISIONING`, the request is still accepted
and the cluster-creation operation waits for the server's current operation to
complete before proceeding.

A server listed in `server_ids` can belong to only one group within a single request.

#|
||Field | Description ||
|| configuration_id | **string**

ID of the configuration.

Required when automatically leasing new servers for the group (scenarios 1 and 2).
Left blank when the group consists solely of custom servers (scenario 3). ||
|| node_count | **int64**

Total number of nodes in the group, including both newly leased and
already leased (existing) servers listed in `server_ids`.

Must be greater than or equal to `len(server_ids)`. The number of new
servers leased for the group is `node_count - len(server_ids)`.

Required (non-zero) when automatically leasing new servers for the group; ||
|| nodes[] | **[Node](#yandex.cloud.baremetal.v2.extend.Node)**

Nodes in the group with detailed information. Set after group is filled. ||
|| server_ids[] | **string**

IDs of already leased servers to include in the NodeGroup.

WARNING: the OS on these servers will be reinstalled as part of cluster
creation, just like for newly leased servers. All data on the servers
will be lost. ||
|#

## Node {#yandex.cloud.baremetal.v2.extend.Node}

#|
||Field | Description ||
|| server_id | **string**

ID of the server. ||
|| configuration_id | **string**

ID of the configuration. ||
|| management_ip_address | **string**

IP address of the node in the management network. ||
|| hostname | **string**

Hostname of the node inside the cluster. ||
|#

## StacklandSubdomains {#yandex.cloud.baremetal.v2.extend.StacklandSubdomains}

#|
||Field | Description ||
|| console | **string**

Cluster URL. ||
|| dashboard | **string**

Cluster URL. ||
|| grafana | **string**

Grafana URL. ||
|| prometheus | **string**

Prometheus URL. ||
|| alertmanager | **string**

Alertmanager URL. ||
|#

## BastionSpec {#yandex.cloud.baremetal.v2.extend.BastionSpec}

#|
||Field | Description ||
|| ssh_public_key_text | **string**

Public SSH key for the server.

Input only field.

The maximum string length in characters is 20000.

Includes only one of the fields `ssh_public_key_text`, `user_ssh_id`.

Root user SSH key.

Input only field. One of elements is required. ||
|| user_ssh_id | **string**

ID of the user SSH key to use for the server.

Input only field. To get the user SSH key ID, use a [yandex.cloud.organizationmanager.v1.UserSshKeyService.List](../../../../../organization/api-ref/grpc/UserSshKey/list.md#List) request.

The maximum string length in characters is 50.

Includes only one of the fields `ssh_public_key_text`, `user_ssh_id`.

Root user SSH key.

Input only field. One of elements is required. ||
|| password_plain_text | **string**

Raw password.

Input only field.

The minimum string length in characters is 6.

Includes only one of the fields `password_plain_text`, `password_lockbox_secret`.

Password for the server.

Input only field. One of elements is required. ||
|| password_lockbox_secret | **[LockboxSecret](#yandex.cloud.baremetal.v2.LockboxSecret)**

Reference to the Lockbox secret used to obtain the password.

Input only field.

Includes only one of the fields `password_plain_text`, `password_lockbox_secret`.

Password for the server.

Input only field. One of elements is required. ||
|#

## LockboxSecret {#yandex.cloud.baremetal.v2.LockboxSecret}

#|
||Field | Description ||
|| secret_id | **string**

Required field. The unique identifier for the lockbox secret that contains the user password. ||
|| version_id | **string**

The unique identifier for the lockbox version.
If omitted, the current version of the secret will be used. ||
|| key | **string**

Required field. The key used to access a specific secret entry. ||
|#

## StacklandClusterSettings {#yandex.cloud.baremetal.v2.extend.StacklandClusterSettings}

Settings of the Stackland cluster.

#|
||Field | Description ||
|| public_network_access | enum **PublicNetworkAccess**

Access of the cluster to the public network. Disabled by default.
Can be set only at cluster creation.

- `ENABLED`: Cluster is accessible from the public network.
- `DISABLED`: Cluster is not accessible from the public network. ||
|#