# NKS

# Kubernetes Versions

## List NKS Kubernetes Versions

`$ nirvana nks:kubernetes-versions list`

**get** `/v1/nks/kubernetes_versions`

List all supported Kubernetes versions for NKS clusters

### Parameters

- `--cursor: optional string`

  Pagination cursor returned by a previous request

- `--limit: optional number`

  Maximum number of items to return

### Returns

- `List-NKSKubernetesVersion: object { items, pagination }`

  - `items: array of KubernetesVersion`

    - `created_at: string`

      When the Kubernetes version was created.

    - `display_name: string`

      Display name of the Kubernetes version.

    - `name: string`

      Name of the Kubernetes version.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```cli
nirvana nks:kubernetes-versions list \
  --api-key 'My API Key'
```

#### Response

```json
{
  "items": [
    {
      "created_at": "2025-01-01T00:00:00Z",
      "display_name": "Kubernetes v1.34.4",
      "name": "v1.34.4"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### Kubernetes Version

- `kubernetes_version: object { created_at, display_name, name }`

  NKS Kubernetes version details.

  - `created_at: string`

    When the Kubernetes version was created.

  - `display_name: string`

    Display name of the Kubernetes version.

  - `name: string`

    Name of the Kubernetes version.

# Clusters

## Create NKS Cluster

`$ nirvana nks:clusters create`

**post** `/v1/nks/clusters`

Create an NKS Cluster

### Parameters

- `--autoscaling: boolean`

  Whether to enable autoscaling for the Cluster.

- `--kubernetes-version: string`

  Kubernetes version for the Cluster.

- `--name: string`

  Name of the Cluster.

- `--project-id: string`

  Project ID to create the Cluster in.

- `--region: "us-sva-2"`

  Region the resource is in.

- `--vpc-id: string`

  ID of the VPC to use for the Cluster.

- `--tag: optional array of string`

  Tags to attach to the Cluster.

### Returns

- `operation: object { id, created_at, details, 6 more }`

  Operation details.

  - `id: string`

    Unique identifier for the Operation.

  - `created_at: string`

    When the Operation was created.

  - `details: object { changes }`

    Structured details about what an operation is changing.

    - `changes: map[OperationFieldDiff]`

      Map of changed field names to their from/to diffs. Keys depend on the parent operation's kind+type.

      - `from: string or number or boolean or array of string`

        Previous value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

      - `to: string or number or boolean or array of string`

        New value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

  - `kind: "vm" or "volume" or "vpc" or 3 more`

    Kind of Operation.

    - `"vm"`

    - `"volume"`

    - `"vpc"`

    - `"firewall_rule"`

    - `"nks_cluster"`

    - `"nks_node_pool"`

  - `project_id: string`

    Project ID the Operation belongs to.

  - `resource_id: string`

    ID of the resource that the Operation is acting on.

  - `status: "pending" or "running" or "done" or 2 more`

    Status of the Operation.

    - `"pending"`

    - `"running"`

    - `"done"`

    - `"failed"`

    - `"unknown"`

  - `type: "create" or "update" or "delete" or "restart"`

    Type of Operation.

    - `"create"`

    - `"update"`

    - `"delete"`

    - `"restart"`

  - `updated_at: string`

    When the Operation was updated.

### Example

```cli
nirvana nks:clusters create \
  --api-key 'My API Key' \
  --autoscaling \
  --kubernetes-version v1.34.4 \
  --name my-cluster \
  --project-id 123e4567-e89b-12d3-a456-426614174000 \
  --region us-sva-2 \
  --vpc-id 123e4567-e89b-12d3-a456-426614174000
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Get NKS Cluster Details

`$ nirvana nks:clusters get`

**get** `/v1/nks/clusters/{cluster_id}`

Get details about an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

### Returns

- `nks_cluster: object { id, autoscaling, created_at, 11 more }`

  NKS Cluster details.

  - `id: string`

    Unique identifier for the Cluster.

  - `autoscaling: boolean`

    Whether autoscaling is enabled for the Cluster.

  - `created_at: string`

    When the Cluster was created.

  - `kubernetes_version: string`

    Kubernetes version of the Cluster.

  - `name: string`

    Name of the Cluster.

  - `pool_ids: array of string`

    IDs of pools belonging to this Cluster.

  - `private_ip: string`

    Private IP (VIP) of the Cluster.

  - `project_id: string`

    Project ID the Cluster belongs to.

  - `public_ip: string`

    Public IP of the Cluster.

  - `region: "us-sva-2"`

    Region the resource is in.

    - `"us-sva-2"`

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `tags: array of string`

    Tags attached to the Cluster.

  - `updated_at: string`

    When the Cluster was last updated.

  - `vpc_id: string`

    ID of the VPC the Cluster is in.

### Example

```cli
nirvana nks:clusters get \
  --api-key 'My API Key' \
  --cluster-id cluster_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "autoscaling": true,
  "created_at": "2025-01-01T00:00:00Z",
  "kubernetes_version": "v1.34.4",
  "name": "my-cluster",
  "pool_ids": [
    "123e4567-e89b-12d3-a456-426614174000"
  ],
  "private_ip": "10.0.0.254",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "public_ip": "198.51.100.1",
  "region": "us-sva-2",
  "status": "ready",
  "tags": [
    "production",
    "ethereum"
  ],
  "updated_at": "2025-01-01T00:00:00Z",
  "vpc_id": "123e4567-e89b-12d3-a456-426614174000"
}
```

## Update NKS Cluster

`$ nirvana nks:clusters update`

**patch** `/v1/nks/clusters/{cluster_id}`

Update an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--autoscaling: optional boolean`

  Whether to enable autoscaling for the Cluster.

- `--name: optional string`

  Name of the Cluster.

- `--tag: optional array of string`

  Tags to attach to the Cluster.

### Returns

- `operation: object { id, created_at, details, 6 more }`

  Operation details.

  - `id: string`

    Unique identifier for the Operation.

  - `created_at: string`

    When the Operation was created.

  - `details: object { changes }`

    Structured details about what an operation is changing.

    - `changes: map[OperationFieldDiff]`

      Map of changed field names to their from/to diffs. Keys depend on the parent operation's kind+type.

      - `from: string or number or boolean or array of string`

        Previous value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

      - `to: string or number or boolean or array of string`

        New value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

  - `kind: "vm" or "volume" or "vpc" or 3 more`

    Kind of Operation.

    - `"vm"`

    - `"volume"`

    - `"vpc"`

    - `"firewall_rule"`

    - `"nks_cluster"`

    - `"nks_node_pool"`

  - `project_id: string`

    Project ID the Operation belongs to.

  - `resource_id: string`

    ID of the resource that the Operation is acting on.

  - `status: "pending" or "running" or "done" or 2 more`

    Status of the Operation.

    - `"pending"`

    - `"running"`

    - `"done"`

    - `"failed"`

    - `"unknown"`

  - `type: "create" or "update" or "delete" or "restart"`

    Type of Operation.

    - `"create"`

    - `"update"`

    - `"delete"`

    - `"restart"`

  - `updated_at: string`

    When the Operation was updated.

### Example

```cli
nirvana nks:clusters update \
  --api-key 'My API Key' \
  --cluster-id cluster_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Delete NKS Cluster

`$ nirvana nks:clusters delete`

**delete** `/v1/nks/clusters/{cluster_id}`

Delete an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

### Returns

- `operation: object { id, created_at, details, 6 more }`

  Operation details.

  - `id: string`

    Unique identifier for the Operation.

  - `created_at: string`

    When the Operation was created.

  - `details: object { changes }`

    Structured details about what an operation is changing.

    - `changes: map[OperationFieldDiff]`

      Map of changed field names to their from/to diffs. Keys depend on the parent operation's kind+type.

      - `from: string or number or boolean or array of string`

        Previous value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

      - `to: string or number or boolean or array of string`

        New value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

  - `kind: "vm" or "volume" or "vpc" or 3 more`

    Kind of Operation.

    - `"vm"`

    - `"volume"`

    - `"vpc"`

    - `"firewall_rule"`

    - `"nks_cluster"`

    - `"nks_node_pool"`

  - `project_id: string`

    Project ID the Operation belongs to.

  - `resource_id: string`

    ID of the resource that the Operation is acting on.

  - `status: "pending" or "running" or "done" or 2 more`

    Status of the Operation.

    - `"pending"`

    - `"running"`

    - `"done"`

    - `"failed"`

    - `"unknown"`

  - `type: "create" or "update" or "delete" or "restart"`

    Type of Operation.

    - `"create"`

    - `"update"`

    - `"delete"`

    - `"restart"`

  - `updated_at: string`

    When the Operation was updated.

### Example

```cli
nirvana nks:clusters delete \
  --api-key 'My API Key' \
  --cluster-id cluster_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## List NKS Clusters

`$ nirvana nks:clusters list`

**get** `/v1/nks/clusters`

List all NKS clusters

### Parameters

- `--project-id: string`

  Project ID of resources to request

- `--cursor: optional string`

  Pagination cursor returned by a previous request

- `--limit: optional number`

  Maximum number of items to return

### Returns

- `nks_cluster_list: object { items, pagination }`

  - `items: array of NKSCluster`

    - `id: string`

      Unique identifier for the Cluster.

    - `autoscaling: boolean`

      Whether autoscaling is enabled for the Cluster.

    - `created_at: string`

      When the Cluster was created.

    - `kubernetes_version: string`

      Kubernetes version of the Cluster.

    - `name: string`

      Name of the Cluster.

    - `pool_ids: array of string`

      IDs of pools belonging to this Cluster.

    - `private_ip: string`

      Private IP (VIP) of the Cluster.

    - `project_id: string`

      Project ID the Cluster belongs to.

    - `public_ip: string`

      Public IP of the Cluster.

    - `region: "us-sva-2"`

      Region the resource is in.

      - `"us-sva-2"`

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `tags: array of string`

      Tags attached to the Cluster.

    - `updated_at: string`

      When the Cluster was last updated.

    - `vpc_id: string`

      ID of the VPC the Cluster is in.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```cli
nirvana nks:clusters list \
  --api-key 'My API Key' \
  --project-id project_id
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "autoscaling": true,
      "created_at": "2025-01-01T00:00:00Z",
      "kubernetes_version": "v1.34.4",
      "name": "my-cluster",
      "pool_ids": [
        "123e4567-e89b-12d3-a456-426614174000"
      ],
      "private_ip": "10.0.0.254",
      "project_id": "123e4567-e89b-12d3-a456-426614174000",
      "public_ip": "198.51.100.1",
      "region": "us-sva-2",
      "status": "ready",
      "tags": [
        "production",
        "ethereum"
      ],
      "updated_at": "2025-01-01T00:00:00Z",
      "vpc_id": "123e4567-e89b-12d3-a456-426614174000"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### NKS Cluster

- `nks_cluster: object { id, autoscaling, created_at, 11 more }`

  NKS Cluster details.

  - `id: string`

    Unique identifier for the Cluster.

  - `autoscaling: boolean`

    Whether autoscaling is enabled for the Cluster.

  - `created_at: string`

    When the Cluster was created.

  - `kubernetes_version: string`

    Kubernetes version of the Cluster.

  - `name: string`

    Name of the Cluster.

  - `pool_ids: array of string`

    IDs of pools belonging to this Cluster.

  - `private_ip: string`

    Private IP (VIP) of the Cluster.

  - `project_id: string`

    Project ID the Cluster belongs to.

  - `public_ip: string`

    Public IP of the Cluster.

  - `region: "us-sva-2"`

    Region the resource is in.

    - `"us-sva-2"`

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `tags: array of string`

    Tags attached to the Cluster.

  - `updated_at: string`

    When the Cluster was last updated.

  - `vpc_id: string`

    ID of the VPC the Cluster is in.

### NKS Cluster List

- `nks_cluster_list: object { items, pagination }`

  - `items: array of NKSCluster`

    - `id: string`

      Unique identifier for the Cluster.

    - `autoscaling: boolean`

      Whether autoscaling is enabled for the Cluster.

    - `created_at: string`

      When the Cluster was created.

    - `kubernetes_version: string`

      Kubernetes version of the Cluster.

    - `name: string`

      Name of the Cluster.

    - `pool_ids: array of string`

      IDs of pools belonging to this Cluster.

    - `private_ip: string`

      Private IP (VIP) of the Cluster.

    - `project_id: string`

      Project ID the Cluster belongs to.

    - `public_ip: string`

      Public IP of the Cluster.

    - `region: "us-sva-2"`

      Region the resource is in.

      - `"us-sva-2"`

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `tags: array of string`

      Tags attached to the Cluster.

    - `updated_at: string`

      When the Cluster was last updated.

    - `vpc_id: string`

      ID of the VPC the Cluster is in.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

# Availability

## Check Create NKS Cluster Availability

`$ nirvana nks:clusters:availability create`

**post** `/v1/nks/clusters/availability`

Check if an NKS cluster can be created

### Parameters

- `--autoscaling: boolean`

  Whether to enable autoscaling for the Cluster.

- `--kubernetes-version: string`

  Kubernetes version for the Cluster.

- `--name: string`

  Name of the Cluster.

- `--project-id: string`

  Project ID to create the Cluster in.

- `--region: "us-sva-2"`

  Region the resource is in.

- `--vpc-id: string`

  ID of the VPC to use for the Cluster.

- `--tag: optional array of string`

  Tags to attach to the Cluster.

### Example

```cli
nirvana nks:clusters:availability create \
  --api-key 'My API Key' \
  --autoscaling \
  --kubernetes-version v1.34.4 \
  --name my-cluster \
  --project-id 123e4567-e89b-12d3-a456-426614174000 \
  --region us-sva-2 \
  --vpc-id 123e4567-e89b-12d3-a456-426614174000
```

## Check Update NKS Cluster Availability

`$ nirvana nks:clusters:availability update`

**patch** `/v1/nks/clusters/{cluster_id}/availability`

Check if an NKS cluster can be updated

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--autoscaling: optional boolean`

  Whether to enable autoscaling for the Cluster.

- `--name: optional string`

  Name of the Cluster.

- `--tag: optional array of string`

  Tags to attach to the Cluster.

### Example

```cli
nirvana nks:clusters:availability update \
  --api-key 'My API Key' \
  --cluster-id cluster_id
```

# Persistent Volume Claims

## Get NKS Persistent Volume Claim Details

`$ nirvana nks:clusters:persistent-volume-claims get`

**get** `/v1/nks/clusters/{cluster_id}/persistent_volume_claims/{persistent_volume_claim_id}`

Get details about an NKS persistent volume claim

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--persistent-volume-claim-id: string`

  Persistent Volume Claim ID

### Returns

- `persistent_volume_claim: object { id, cluster_id, created_at, 5 more }`

  NKS persistent volume claim details.

  - `id: string`

    Unique identifier for the persistent volume claim.

  - `cluster_id: string`

    Cluster this persistent volume claim belongs to.

  - `created_at: string`

    When the persistent volume claim was first discovered.

  - `name: string`

    Name of the persistent volume claim.

  - `size: number`

    Size of the persistent volume claim in GB.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `type: "nvme" or "abs"`

    Type of the Volume.

    - `"nvme"`

    - `"abs"`

  - `updated_at: string`

    When the persistent volume claim was last updated.

### Example

```cli
nirvana nks:clusters:persistent-volume-claims get \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --persistent-volume-claim-id persistent_volume_claim_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cluster_id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "name": "my-volume",
  "size": 100,
  "status": "ready",
  "type": "abs",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## List NKS Persistent Volume Claims

`$ nirvana nks:clusters:persistent-volume-claims list`

**get** `/v1/nks/clusters/{cluster_id}/persistent_volume_claims`

List all persistent volume claims in an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--cursor: optional string`

  Pagination cursor returned by a previous request

- `--limit: optional number`

  Maximum number of items to return

### Returns

- `persistent_volume_claim_list: object { items, pagination }`

  - `items: array of PersistentVolumeClaim`

    - `id: string`

      Unique identifier for the persistent volume claim.

    - `cluster_id: string`

      Cluster this persistent volume claim belongs to.

    - `created_at: string`

      When the persistent volume claim was first discovered.

    - `name: string`

      Name of the persistent volume claim.

    - `size: number`

      Size of the persistent volume claim in GB.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `type: "nvme" or "abs"`

      Type of the Volume.

      - `"nvme"`

      - `"abs"`

    - `updated_at: string`

      When the persistent volume claim was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```cli
nirvana nks:clusters:persistent-volume-claims list \
  --api-key 'My API Key' \
  --cluster-id cluster_id
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "cluster_id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "name": "my-volume",
      "size": 100,
      "status": "ready",
      "type": "abs",
      "updated_at": "2025-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### Persistent Volume Claim

- `persistent_volume_claim: object { id, cluster_id, created_at, 5 more }`

  NKS persistent volume claim details.

  - `id: string`

    Unique identifier for the persistent volume claim.

  - `cluster_id: string`

    Cluster this persistent volume claim belongs to.

  - `created_at: string`

    When the persistent volume claim was first discovered.

  - `name: string`

    Name of the persistent volume claim.

  - `size: number`

    Size of the persistent volume claim in GB.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `type: "nvme" or "abs"`

    Type of the Volume.

    - `"nvme"`

    - `"abs"`

  - `updated_at: string`

    When the persistent volume claim was last updated.

### Persistent Volume Claim List

- `persistent_volume_claim_list: object { items, pagination }`

  - `items: array of PersistentVolumeClaim`

    - `id: string`

      Unique identifier for the persistent volume claim.

    - `cluster_id: string`

      Cluster this persistent volume claim belongs to.

    - `created_at: string`

      When the persistent volume claim was first discovered.

    - `name: string`

      Name of the persistent volume claim.

    - `size: number`

      Size of the persistent volume claim in GB.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `type: "nvme" or "abs"`

      Type of the Volume.

      - `"nvme"`

      - `"abs"`

    - `updated_at: string`

      When the persistent volume claim was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

# Kubeconfig

## Get NKS Cluster Kubeconfig

`$ nirvana nks:clusters:kubeconfig get`

**get** `/v1/nks/clusters/{cluster_id}/kubeconfig`

Get the kubeconfig for an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

### Returns

- `kubeconfig: object { kubeconfig }`

  Kubeconfig for an NKS Cluster.

  - `kubeconfig: string`

    Kubeconfig content for the Cluster.

### Example

```cli
nirvana nks:clusters:kubeconfig get \
  --api-key 'My API Key' \
  --cluster-id cluster_id
```

#### Response

```json
{
  "kubeconfig": "kubeconfig"
}
```

## Domain Types

### Kubeconfig

- `kubeconfig: object { kubeconfig }`

  Kubeconfig for an NKS Cluster.

  - `kubeconfig: string`

    Kubeconfig content for the Cluster.

# Controllers

## Get NKS Controller Details

`$ nirvana nks:clusters:controllers get`

**get** `/v1/nks/clusters/{cluster_id}/controllers/{controller_id}`

Get details about an NKS controller

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--controller-id: string`

  Controller ID

### Returns

- `nks_controller: object { id, created_at, instance_type, 4 more }`

  NKS controller details.

  - `id: string`

    Unique identifier for the controller.

  - `created_at: string`

    When the controller was created.

  - `instance_type: string`

    Instance type name.

  - `name: string`

    Name of the controller.

  - `private_ip: string`

    Private IP address of the controller.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `updated_at: string`

    When the controller was last updated.

### Example

```cli
nirvana nks:clusters:controllers get \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --controller-id controller_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "instance_type": "n1-standard-8",
  "name": "my-controller-0",
  "private_ip": "10.0.0.10",
  "status": "ready",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## List NKS Controllers

`$ nirvana nks:clusters:controllers list`

**get** `/v1/nks/clusters/{cluster_id}/controllers`

List all controllers in an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--cursor: optional string`

  Pagination cursor returned by a previous request

- `--limit: optional number`

  Maximum number of items to return

### Returns

- `nks_controller_list: object { items, pagination }`

  - `items: array of NKSController`

    - `id: string`

      Unique identifier for the controller.

    - `created_at: string`

      When the controller was created.

    - `instance_type: string`

      Instance type name.

    - `name: string`

      Name of the controller.

    - `private_ip: string`

      Private IP address of the controller.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `updated_at: string`

      When the controller was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```cli
nirvana nks:clusters:controllers list \
  --api-key 'My API Key' \
  --cluster-id cluster_id
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "instance_type": "n1-standard-8",
      "name": "my-controller-0",
      "private_ip": "10.0.0.10",
      "status": "ready",
      "updated_at": "2025-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### NKS Controller

- `nks_controller: object { id, created_at, instance_type, 4 more }`

  NKS controller details.

  - `id: string`

    Unique identifier for the controller.

  - `created_at: string`

    When the controller was created.

  - `instance_type: string`

    Instance type name.

  - `name: string`

    Name of the controller.

  - `private_ip: string`

    Private IP address of the controller.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `updated_at: string`

    When the controller was last updated.

### NKS Controller List

- `nks_controller_list: object { items, pagination }`

  - `items: array of NKSController`

    - `id: string`

      Unique identifier for the controller.

    - `created_at: string`

      When the controller was created.

    - `instance_type: string`

      Instance type name.

    - `name: string`

      Name of the controller.

    - `private_ip: string`

      Private IP address of the controller.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `updated_at: string`

      When the controller was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

# Volumes

## Get NKS Controller Volume Details

`$ nirvana nks:clusters:controllers:volumes get`

**get** `/v1/nks/clusters/{cluster_id}/controllers/{controller_id}/volumes/{volume_id}`

Get details about a volume attached to an NKS controller

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--controller-id: string`

  Controller ID

- `--volume-id: string`

  Volume ID

### Returns

- `nks_controller_volume: object { id, created_at, kind, 5 more }`

  NKS controller volume details.

  - `id: string`

    Unique identifier for the volume.

  - `created_at: string`

    When the volume was created.

  - `kind: "boot" or "data"`

    Volume kind.

    - `"boot"`

    - `"data"`

  - `name: string`

    Name of the volume.

  - `size: number`

    Size of the volume in GB.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `type: "nvme" or "abs"`

    Type of the Volume.

    - `"nvme"`

    - `"abs"`

  - `updated_at: string`

    When the volume was last updated.

### Example

```cli
nirvana nks:clusters:controllers:volumes get \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --controller-id controller_id \
  --volume-id volume_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "kind": "boot",
  "name": "my-volume",
  "size": 100,
  "status": "ready",
  "type": "abs",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## List NKS Controller Volumes

`$ nirvana nks:clusters:controllers:volumes list`

**get** `/v1/nks/clusters/{cluster_id}/controllers/{controller_id}/volumes`

List all volumes attached to an NKS controller

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--controller-id: string`

  Controller ID

- `--cursor: optional string`

  Pagination cursor returned by a previous request

- `--limit: optional number`

  Maximum number of items to return

### Returns

- `nks_controller_volume_list: object { items, pagination }`

  - `items: array of NKSControllerVolume`

    - `id: string`

      Unique identifier for the volume.

    - `created_at: string`

      When the volume was created.

    - `kind: "boot" or "data"`

      Volume kind.

      - `"boot"`

      - `"data"`

    - `name: string`

      Name of the volume.

    - `size: number`

      Size of the volume in GB.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `type: "nvme" or "abs"`

      Type of the Volume.

      - `"nvme"`

      - `"abs"`

    - `updated_at: string`

      When the volume was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```cli
nirvana nks:clusters:controllers:volumes list \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --controller-id controller_id
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "kind": "boot",
      "name": "my-volume",
      "size": 100,
      "status": "ready",
      "type": "abs",
      "updated_at": "2025-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### NKS Controller Volume

- `nks_controller_volume: object { id, created_at, kind, 5 more }`

  NKS controller volume details.

  - `id: string`

    Unique identifier for the volume.

  - `created_at: string`

    When the volume was created.

  - `kind: "boot" or "data"`

    Volume kind.

    - `"boot"`

    - `"data"`

  - `name: string`

    Name of the volume.

  - `size: number`

    Size of the volume in GB.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `type: "nvme" or "abs"`

    Type of the Volume.

    - `"nvme"`

    - `"abs"`

  - `updated_at: string`

    When the volume was last updated.

### NKS Controller Volume List

- `nks_controller_volume_list: object { items, pagination }`

  - `items: array of NKSControllerVolume`

    - `id: string`

      Unique identifier for the volume.

    - `created_at: string`

      When the volume was created.

    - `kind: "boot" or "data"`

      Volume kind.

      - `"boot"`

      - `"data"`

    - `name: string`

      Name of the volume.

    - `size: number`

      Size of the volume in GB.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `type: "nvme" or "abs"`

      Type of the Volume.

      - `"nvme"`

      - `"abs"`

    - `updated_at: string`

      When the volume was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

# Load Balancers

## Get NKS Load Balancer Details

`$ nirvana nks:clusters:load-balancers get`

**get** `/v1/nks/clusters/{cluster_id}/load_balancers/{load_balancer_id}`

Get details about an NKS load balancer

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--load-balancer-id: string`

  Load Balancer ID

### Returns

- `nks_load_balancer: object { id, cluster_id, created_at, 7 more }`

  NKS load balancer details.

  - `id: string`

    Unique identifier for the load balancer.

  - `cluster_id: string`

    Cluster this load balancer belongs to.

  - `created_at: string`

    When the load balancer was first discovered.

  - `namespace: string`

    Kubernetes namespace of the load balancer.

  - `private_ip: string`

    Private IP address of the load balancer.

  - `public_ip: string`

    Public IP address assigned to this load balancer.

  - `public_ip_enabled: boolean`

    Whether a public IP is enabled for this load balancer.

  - `service_name: string`

    Kubernetes service name of the load balancer.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `updated_at: string`

    When the load balancer was last updated.

### Example

```cli
nirvana nks:clusters:load-balancers get \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --load-balancer-id load_balancer_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cluster_id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "namespace": "default",
  "private_ip": "10.0.0.50",
  "public_ip": "198.51.100.10",
  "public_ip_enabled": false,
  "service_name": "my-service",
  "status": "ready",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Update NKS Load Balancer

`$ nirvana nks:clusters:load-balancers update`

**patch** `/v1/nks/clusters/{cluster_id}/load_balancers/{load_balancer_id}`

Update an NKS load balancer

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--load-balancer-id: string`

  Load Balancer ID

- `--public-ip-enabled: boolean`

  Whether to enable a public IP for this load balancer.

### Returns

- `operation: object { id, created_at, details, 6 more }`

  Operation details.

  - `id: string`

    Unique identifier for the Operation.

  - `created_at: string`

    When the Operation was created.

  - `details: object { changes }`

    Structured details about what an operation is changing.

    - `changes: map[OperationFieldDiff]`

      Map of changed field names to their from/to diffs. Keys depend on the parent operation's kind+type.

      - `from: string or number or boolean or array of string`

        Previous value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

      - `to: string or number or boolean or array of string`

        New value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

  - `kind: "vm" or "volume" or "vpc" or 3 more`

    Kind of Operation.

    - `"vm"`

    - `"volume"`

    - `"vpc"`

    - `"firewall_rule"`

    - `"nks_cluster"`

    - `"nks_node_pool"`

  - `project_id: string`

    Project ID the Operation belongs to.

  - `resource_id: string`

    ID of the resource that the Operation is acting on.

  - `status: "pending" or "running" or "done" or 2 more`

    Status of the Operation.

    - `"pending"`

    - `"running"`

    - `"done"`

    - `"failed"`

    - `"unknown"`

  - `type: "create" or "update" or "delete" or "restart"`

    Type of Operation.

    - `"create"`

    - `"update"`

    - `"delete"`

    - `"restart"`

  - `updated_at: string`

    When the Operation was updated.

### Example

```cli
nirvana nks:clusters:load-balancers update \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --load-balancer-id load_balancer_id \
  --public-ip-enabled
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## List NKS Load Balancers

`$ nirvana nks:clusters:load-balancers list`

**get** `/v1/nks/clusters/{cluster_id}/load_balancers`

List all load balancers in an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--cursor: optional string`

  Pagination cursor returned by a previous request

- `--limit: optional number`

  Maximum number of items to return

### Returns

- `nks_load_balancer_list: object { items, pagination }`

  - `items: array of NKSLoadBalancer`

    - `id: string`

      Unique identifier for the load balancer.

    - `cluster_id: string`

      Cluster this load balancer belongs to.

    - `created_at: string`

      When the load balancer was first discovered.

    - `namespace: string`

      Kubernetes namespace of the load balancer.

    - `private_ip: string`

      Private IP address of the load balancer.

    - `public_ip: string`

      Public IP address assigned to this load balancer.

    - `public_ip_enabled: boolean`

      Whether a public IP is enabled for this load balancer.

    - `service_name: string`

      Kubernetes service name of the load balancer.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `updated_at: string`

      When the load balancer was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```cli
nirvana nks:clusters:load-balancers list \
  --api-key 'My API Key' \
  --cluster-id cluster_id
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "cluster_id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "namespace": "default",
      "private_ip": "10.0.0.50",
      "public_ip": "198.51.100.10",
      "public_ip_enabled": false,
      "service_name": "my-service",
      "status": "ready",
      "updated_at": "2025-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### NKS Load Balancer

- `nks_load_balancer: object { id, cluster_id, created_at, 7 more }`

  NKS load balancer details.

  - `id: string`

    Unique identifier for the load balancer.

  - `cluster_id: string`

    Cluster this load balancer belongs to.

  - `created_at: string`

    When the load balancer was first discovered.

  - `namespace: string`

    Kubernetes namespace of the load balancer.

  - `private_ip: string`

    Private IP address of the load balancer.

  - `public_ip: string`

    Public IP address assigned to this load balancer.

  - `public_ip_enabled: boolean`

    Whether a public IP is enabled for this load balancer.

  - `service_name: string`

    Kubernetes service name of the load balancer.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `updated_at: string`

    When the load balancer was last updated.

### NKS Load Balancer List

- `nks_load_balancer_list: object { items, pagination }`

  - `items: array of NKSLoadBalancer`

    - `id: string`

      Unique identifier for the load balancer.

    - `cluster_id: string`

      Cluster this load balancer belongs to.

    - `created_at: string`

      When the load balancer was first discovered.

    - `namespace: string`

      Kubernetes namespace of the load balancer.

    - `private_ip: string`

      Private IP address of the load balancer.

    - `public_ip: string`

      Public IP address assigned to this load balancer.

    - `public_ip_enabled: boolean`

      Whether a public IP is enabled for this load balancer.

    - `service_name: string`

      Kubernetes service name of the load balancer.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `updated_at: string`

      When the load balancer was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

# Pools

## Create NKS Node Pool

`$ nirvana nks:clusters:pools create`

**post** `/v1/nks/clusters/{cluster_id}/pools`

Create a node pool in an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--name: string`

  Name of the node pool.

- `--node-config: object { boot_volume, instance_type, labels }`

  Node configuration.

- `--node-count: number`

  Number of nodes. Must be between 1 and 100.

- `--tag: optional array of string`

  Tags to attach to the node pool.

### Returns

- `operation: object { id, created_at, details, 6 more }`

  Operation details.

  - `id: string`

    Unique identifier for the Operation.

  - `created_at: string`

    When the Operation was created.

  - `details: object { changes }`

    Structured details about what an operation is changing.

    - `changes: map[OperationFieldDiff]`

      Map of changed field names to their from/to diffs. Keys depend on the parent operation's kind+type.

      - `from: string or number or boolean or array of string`

        Previous value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

      - `to: string or number or boolean or array of string`

        New value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

  - `kind: "vm" or "volume" or "vpc" or 3 more`

    Kind of Operation.

    - `"vm"`

    - `"volume"`

    - `"vpc"`

    - `"firewall_rule"`

    - `"nks_cluster"`

    - `"nks_node_pool"`

  - `project_id: string`

    Project ID the Operation belongs to.

  - `resource_id: string`

    ID of the resource that the Operation is acting on.

  - `status: "pending" or "running" or "done" or 2 more`

    Status of the Operation.

    - `"pending"`

    - `"running"`

    - `"done"`

    - `"failed"`

    - `"unknown"`

  - `type: "create" or "update" or "delete" or "restart"`

    Type of Operation.

    - `"create"`

    - `"update"`

    - `"delete"`

    - `"restart"`

  - `updated_at: string`

    When the Operation was updated.

### Example

```cli
nirvana nks:clusters:pools create \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --name my-node-pool \
  --node-config '{boot_volume: {size: 100, type: abs}, instance_type: n1-standard-8}' \
  --node-count 3
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Get NKS Node Pool Details

`$ nirvana nks:clusters:pools get`

**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}`

Get details about an NKS node pool

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--pool-id: string`

  Node Pool ID

### Returns

- `nks_node_pool: object { id, cluster_id, created_at, 6 more }`

  NKS node pool details.

  - `id: string`

    Unique identifier for the node pool.

  - `cluster_id: string`

    ID of the Cluster this node pool belongs to.

  - `created_at: string`

    When the node pool was created.

  - `name: string`

    Name of the node pool.

  - `node_config: object { boot_volume, instance_type, labels }`

    Node configuration.

    - `boot_volume: object { size, type }`

      Boot volume configuration.

      - `size: number`

        Size of the boot volume in GB.

      - `type: "nvme" or "abs"`

        Type of the Volume.

        - `"nvme"`

        - `"abs"`

    - `instance_type: string`

      Instance type name.

    - `labels: array of string`

      Kubernetes labels applied to each node in the pool. Each entry is "key=value".

  - `node_count: number`

    Number of nodes.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `tags: array of string`

    Tags attached to the node pool.

  - `updated_at: string`

    When the node pool was last updated.

### Example

```cli
nirvana nks:clusters:pools get \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --pool-id pool_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "cluster_id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "name": "my-node-pool",
  "node_config": {
    "boot_volume": {
      "size": 100,
      "type": "abs"
    },
    "instance_type": "n1-standard-8",
    "labels": [
      "env=prod",
      "team=platform"
    ]
  },
  "node_count": 3,
  "status": "ready",
  "tags": [
    "production",
    "ethereum"
  ],
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Update NKS Node Pool

`$ nirvana nks:clusters:pools update`

**patch** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}`

Update an NKS node pool

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--pool-id: string`

  Node Pool ID

- `--name: optional string`

  Name of the node pool.

- `--node-config: optional object { labels }`

  Partial node configuration update.

- `--node-count: optional number`

  Number of nodes.

- `--tag: optional array of string`

  Tags to attach to the node pool.

### Returns

- `operation: object { id, created_at, details, 6 more }`

  Operation details.

  - `id: string`

    Unique identifier for the Operation.

  - `created_at: string`

    When the Operation was created.

  - `details: object { changes }`

    Structured details about what an operation is changing.

    - `changes: map[OperationFieldDiff]`

      Map of changed field names to their from/to diffs. Keys depend on the parent operation's kind+type.

      - `from: string or number or boolean or array of string`

        Previous value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

      - `to: string or number or boolean or array of string`

        New value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

  - `kind: "vm" or "volume" or "vpc" or 3 more`

    Kind of Operation.

    - `"vm"`

    - `"volume"`

    - `"vpc"`

    - `"firewall_rule"`

    - `"nks_cluster"`

    - `"nks_node_pool"`

  - `project_id: string`

    Project ID the Operation belongs to.

  - `resource_id: string`

    ID of the resource that the Operation is acting on.

  - `status: "pending" or "running" or "done" or 2 more`

    Status of the Operation.

    - `"pending"`

    - `"running"`

    - `"done"`

    - `"failed"`

    - `"unknown"`

  - `type: "create" or "update" or "delete" or "restart"`

    Type of Operation.

    - `"create"`

    - `"update"`

    - `"delete"`

    - `"restart"`

  - `updated_at: string`

    When the Operation was updated.

### Example

```cli
nirvana nks:clusters:pools update \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --pool-id pool_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Delete NKS Node Pool

`$ nirvana nks:clusters:pools delete`

**delete** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}`

Delete an NKS node pool

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--pool-id: string`

  Node Pool ID

### Returns

- `operation: object { id, created_at, details, 6 more }`

  Operation details.

  - `id: string`

    Unique identifier for the Operation.

  - `created_at: string`

    When the Operation was created.

  - `details: object { changes }`

    Structured details about what an operation is changing.

    - `changes: map[OperationFieldDiff]`

      Map of changed field names to their from/to diffs. Keys depend on the parent operation's kind+type.

      - `from: string or number or boolean or array of string`

        Previous value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

      - `to: string or number or boolean or array of string`

        New value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

  - `kind: "vm" or "volume" or "vpc" or 3 more`

    Kind of Operation.

    - `"vm"`

    - `"volume"`

    - `"vpc"`

    - `"firewall_rule"`

    - `"nks_cluster"`

    - `"nks_node_pool"`

  - `project_id: string`

    Project ID the Operation belongs to.

  - `resource_id: string`

    ID of the resource that the Operation is acting on.

  - `status: "pending" or "running" or "done" or 2 more`

    Status of the Operation.

    - `"pending"`

    - `"running"`

    - `"done"`

    - `"failed"`

    - `"unknown"`

  - `type: "create" or "update" or "delete" or "restart"`

    Type of Operation.

    - `"create"`

    - `"update"`

    - `"delete"`

    - `"restart"`

  - `updated_at: string`

    When the Operation was updated.

### Example

```cli
nirvana nks:clusters:pools delete \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --pool-id pool_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## List NKS Node Pools

`$ nirvana nks:clusters:pools list`

**get** `/v1/nks/clusters/{cluster_id}/pools`

List all node pools in an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--cursor: optional string`

  Pagination cursor returned by a previous request

- `--limit: optional number`

  Maximum number of items to return

### Returns

- `nks_node_pool_list: object { items, pagination }`

  - `items: array of NKSNodePool`

    - `id: string`

      Unique identifier for the node pool.

    - `cluster_id: string`

      ID of the Cluster this node pool belongs to.

    - `created_at: string`

      When the node pool was created.

    - `name: string`

      Name of the node pool.

    - `node_config: object { boot_volume, instance_type, labels }`

      Node configuration.

      - `boot_volume: object { size, type }`

        Boot volume configuration.

        - `size: number`

          Size of the boot volume in GB.

        - `type: "nvme" or "abs"`

          Type of the Volume.

          - `"nvme"`

          - `"abs"`

      - `instance_type: string`

        Instance type name.

      - `labels: array of string`

        Kubernetes labels applied to each node in the pool. Each entry is "key=value".

    - `node_count: number`

      Number of nodes.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `tags: array of string`

      Tags attached to the node pool.

    - `updated_at: string`

      When the node pool was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```cli
nirvana nks:clusters:pools list \
  --api-key 'My API Key' \
  --cluster-id cluster_id
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "cluster_id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "name": "my-node-pool",
      "node_config": {
        "boot_volume": {
          "size": 100,
          "type": "abs"
        },
        "instance_type": "n1-standard-8",
        "labels": [
          "env=prod",
          "team=platform"
        ]
      },
      "node_count": 3,
      "status": "ready",
      "tags": [
        "production",
        "ethereum"
      ],
      "updated_at": "2025-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### NKS Node Pool

- `nks_node_pool: object { id, cluster_id, created_at, 6 more }`

  NKS node pool details.

  - `id: string`

    Unique identifier for the node pool.

  - `cluster_id: string`

    ID of the Cluster this node pool belongs to.

  - `created_at: string`

    When the node pool was created.

  - `name: string`

    Name of the node pool.

  - `node_config: object { boot_volume, instance_type, labels }`

    Node configuration.

    - `boot_volume: object { size, type }`

      Boot volume configuration.

      - `size: number`

        Size of the boot volume in GB.

      - `type: "nvme" or "abs"`

        Type of the Volume.

        - `"nvme"`

        - `"abs"`

    - `instance_type: string`

      Instance type name.

    - `labels: array of string`

      Kubernetes labels applied to each node in the pool. Each entry is "key=value".

  - `node_count: number`

    Number of nodes.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `tags: array of string`

    Tags attached to the node pool.

  - `updated_at: string`

    When the node pool was last updated.

### NKS Node Pool Boot Volume

- `nks_node_pool_boot_volume: object { size, type }`

  Boot volume configuration.

  - `size: number`

    Size of the boot volume in GB.

  - `type: "nvme" or "abs"`

    Type of the Volume.

    - `"nvme"`

    - `"abs"`

### NKS Node Pool Boot Volume Response

- `nks_node_pool_boot_volume_response: object { size, type }`

  Boot volume configuration.

  - `size: number`

    Size of the boot volume in GB.

  - `type: "nvme" or "abs"`

    Type of the Volume.

    - `"nvme"`

    - `"abs"`

### NKS Node Pool List

- `nks_node_pool_list: object { items, pagination }`

  - `items: array of NKSNodePool`

    - `id: string`

      Unique identifier for the node pool.

    - `cluster_id: string`

      ID of the Cluster this node pool belongs to.

    - `created_at: string`

      When the node pool was created.

    - `name: string`

      Name of the node pool.

    - `node_config: object { boot_volume, instance_type, labels }`

      Node configuration.

      - `boot_volume: object { size, type }`

        Boot volume configuration.

        - `size: number`

          Size of the boot volume in GB.

        - `type: "nvme" or "abs"`

          Type of the Volume.

          - `"nvme"`

          - `"abs"`

      - `instance_type: string`

        Instance type name.

      - `labels: array of string`

        Kubernetes labels applied to each node in the pool. Each entry is "key=value".

    - `node_count: number`

      Number of nodes.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `tags: array of string`

      Tags attached to the node pool.

    - `updated_at: string`

      When the node pool was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### NKS Node Pool Node Config

- `nks_node_pool_node_config: object { boot_volume, instance_type, labels }`

  Node configuration.

  - `boot_volume: object { size, type }`

    Boot volume configuration.

    - `size: number`

      Size of the boot volume in GB.

    - `type: "nvme" or "abs"`

      Type of the Volume.

      - `"nvme"`

      - `"abs"`

  - `instance_type: string`

    Instance type name used for worker nodes.

  - `labels: optional array of string`

    Kubernetes labels to apply to each node in the pool. Each entry is "key=value".
    Keys under kubernetes.io, k8s.io, and nirvanalabs.io prefixes are reserved.

### NKS Node Pool Node Config Response

- `nks_node_pool_node_config_response: object { boot_volume, instance_type, labels }`

  Node configuration.

  - `boot_volume: object { size, type }`

    Boot volume configuration.

    - `size: number`

      Size of the boot volume in GB.

    - `type: "nvme" or "abs"`

      Type of the Volume.

      - `"nvme"`

      - `"abs"`

  - `instance_type: string`

    Instance type name.

  - `labels: array of string`

    Kubernetes labels applied to each node in the pool. Each entry is "key=value".

# Availability

## Check Create NKS Node Pool Availability

`$ nirvana nks:clusters:pools:availability create`

**post** `/v1/nks/clusters/{cluster_id}/pools/availability`

Check if a node pool can be created in an NKS cluster

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--name: string`

  Name of the node pool.

- `--node-config: object { boot_volume, instance_type, labels }`

  Node configuration.

- `--node-count: number`

  Number of nodes. Must be between 1 and 100.

- `--tag: optional array of string`

  Tags to attach to the node pool.

### Example

```cli
nirvana nks:clusters:pools:availability create \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --name my-node-pool \
  --node-config '{boot_volume: {size: 100, type: abs}, instance_type: n1-standard-8}' \
  --node-count 3
```

## Check Update NKS Node Pool Availability

`$ nirvana nks:clusters:pools:availability update`

**patch** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/availability`

Check if an NKS node pool can be updated

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--pool-id: string`

  Node Pool ID

- `--name: optional string`

  Name of the node pool.

- `--node-config: optional object { labels }`

  Partial node configuration update.

- `--node-count: optional number`

  Number of nodes.

- `--tag: optional array of string`

  Tags to attach to the node pool.

### Example

```cli
nirvana nks:clusters:pools:availability update \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --pool-id pool_id
```

# Nodes

## Get NKS Node Details

`$ nirvana nks:clusters:pools:nodes get`

**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/nodes/{node_id}`

Get details about an NKS node

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--pool-id: string`

  Node Pool ID

- `--node-id: string`

  Node ID

### Returns

- `nks_node: object { id, created_at, name, 3 more }`

  NKS node details.

  - `id: string`

    Unique identifier for the node.

  - `created_at: string`

    When the node was created.

  - `name: string`

    Name of the node.

  - `private_ip: string`

    Private IP address of the node.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `updated_at: string`

    When the node was last updated.

### Example

```cli
nirvana nks:clusters:pools:nodes get \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --pool-id pool_id \
  --node-id node_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "name": "my-node-0",
  "private_ip": "10.0.0.10",
  "status": "ready",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Delete NKS Node

`$ nirvana nks:clusters:pools:nodes delete`

**delete** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/nodes/{node_id}`

Delete a single node from an NKS node pool

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--pool-id: string`

  Node Pool ID

- `--node-id: string`

  Node ID

### Returns

- `operation: object { id, created_at, details, 6 more }`

  Operation details.

  - `id: string`

    Unique identifier for the Operation.

  - `created_at: string`

    When the Operation was created.

  - `details: object { changes }`

    Structured details about what an operation is changing.

    - `changes: map[OperationFieldDiff]`

      Map of changed field names to their from/to diffs. Keys depend on the parent operation's kind+type.

      - `from: string or number or boolean or array of string`

        Previous value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

      - `to: string or number or boolean or array of string`

        New value.

        - `union_member_0: string`

        - `union_member_1: number`

        - `union_member_2: boolean`

        - `union_member_3: array of string`

  - `kind: "vm" or "volume" or "vpc" or 3 more`

    Kind of Operation.

    - `"vm"`

    - `"volume"`

    - `"vpc"`

    - `"firewall_rule"`

    - `"nks_cluster"`

    - `"nks_node_pool"`

  - `project_id: string`

    Project ID the Operation belongs to.

  - `resource_id: string`

    ID of the resource that the Operation is acting on.

  - `status: "pending" or "running" or "done" or 2 more`

    Status of the Operation.

    - `"pending"`

    - `"running"`

    - `"done"`

    - `"failed"`

    - `"unknown"`

  - `type: "create" or "update" or "delete" or "restart"`

    Type of Operation.

    - `"create"`

    - `"update"`

    - `"delete"`

    - `"restart"`

  - `updated_at: string`

    When the Operation was updated.

### Example

```cli
nirvana nks:clusters:pools:nodes delete \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --pool-id pool_id \
  --node-id node_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## List NKS Nodes

`$ nirvana nks:clusters:pools:nodes list`

**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/nodes`

List all nodes in an NKS node pool

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--pool-id: string`

  Node Pool ID

- `--cursor: optional string`

  Pagination cursor returned by a previous request

- `--limit: optional number`

  Maximum number of items to return

### Returns

- `nks_node_list: object { items, pagination }`

  - `items: array of NKSNode`

    - `id: string`

      Unique identifier for the node.

    - `created_at: string`

      When the node was created.

    - `name: string`

      Name of the node.

    - `private_ip: string`

      Private IP address of the node.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `updated_at: string`

      When the node was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```cli
nirvana nks:clusters:pools:nodes list \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --pool-id pool_id
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "name": "my-node-0",
      "private_ip": "10.0.0.10",
      "status": "ready",
      "updated_at": "2025-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### NKS Node

- `nks_node: object { id, created_at, name, 3 more }`

  NKS node details.

  - `id: string`

    Unique identifier for the node.

  - `created_at: string`

    When the node was created.

  - `name: string`

    Name of the node.

  - `private_ip: string`

    Private IP address of the node.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `updated_at: string`

    When the node was last updated.

### NKS Node List

- `nks_node_list: object { items, pagination }`

  - `items: array of NKSNode`

    - `id: string`

      Unique identifier for the node.

    - `created_at: string`

      When the node was created.

    - `name: string`

      Name of the node.

    - `private_ip: string`

      Private IP address of the node.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `updated_at: string`

      When the node was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

# Volumes

## Get NKS Node Volume Details

`$ nirvana nks:clusters:pools:nodes:volumes get`

**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/nodes/{node_id}/volumes/{volume_id}`

Get details about a volume attached to an NKS node

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--pool-id: string`

  Node Pool ID

- `--node-id: string`

  Node ID

- `--volume-id: string`

  Volume ID

### Returns

- `nks_node_volume: object { id, created_at, kind, 5 more }`

  NKS node volume details.

  - `id: string`

    Unique identifier for the volume.

  - `created_at: string`

    When the volume was created.

  - `kind: "boot" or "data"`

    Volume kind.

    - `"boot"`

    - `"data"`

  - `name: string`

    Name of the volume.

  - `size: number`

    Size of the volume in GB.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `type: "nvme" or "abs"`

    Type of the Volume.

    - `"nvme"`

    - `"abs"`

  - `updated_at: string`

    When the volume was last updated.

### Example

```cli
nirvana nks:clusters:pools:nodes:volumes get \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --pool-id pool_id \
  --node-id node_id \
  --volume-id volume_id
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "kind": "boot",
  "name": "my-volume",
  "size": 100,
  "status": "ready",
  "type": "abs",
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## List NKS Node Volumes

`$ nirvana nks:clusters:pools:nodes:volumes list`

**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/nodes/{node_id}/volumes`

List all volumes attached to an NKS node

### Parameters

- `--cluster-id: string`

  Cluster ID

- `--pool-id: string`

  Node Pool ID

- `--node-id: string`

  Node ID

- `--cursor: optional string`

  Pagination cursor returned by a previous request

- `--limit: optional number`

  Maximum number of items to return

### Returns

- `nks_node_volume_list: object { items, pagination }`

  - `items: array of NKSNodeVolume`

    - `id: string`

      Unique identifier for the volume.

    - `created_at: string`

      When the volume was created.

    - `kind: "boot" or "data"`

      Volume kind.

      - `"boot"`

      - `"data"`

    - `name: string`

      Name of the volume.

    - `size: number`

      Size of the volume in GB.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `type: "nvme" or "abs"`

      Type of the Volume.

      - `"nvme"`

      - `"abs"`

    - `updated_at: string`

      When the volume was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```cli
nirvana nks:clusters:pools:nodes:volumes list \
  --api-key 'My API Key' \
  --cluster-id cluster_id \
  --pool-id pool_id \
  --node-id node_id
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "kind": "boot",
      "name": "my-volume",
      "size": 100,
      "status": "ready",
      "type": "abs",
      "updated_at": "2025-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### NKS Node Volume

- `nks_node_volume: object { id, created_at, kind, 5 more }`

  NKS node volume details.

  - `id: string`

    Unique identifier for the volume.

  - `created_at: string`

    When the volume was created.

  - `kind: "boot" or "data"`

    Volume kind.

    - `"boot"`

    - `"data"`

  - `name: string`

    Name of the volume.

  - `size: number`

    Size of the volume in GB.

  - `status: "pending" or "creating" or "updating" or 4 more`

    Status of the resource.

    - `"pending"`

    - `"creating"`

    - `"updating"`

    - `"ready"`

    - `"deleting"`

    - `"deleted"`

    - `"error"`

  - `type: "nvme" or "abs"`

    Type of the Volume.

    - `"nvme"`

    - `"abs"`

  - `updated_at: string`

    When the volume was last updated.

### NKS Node Volume List

- `nks_node_volume_list: object { items, pagination }`

  - `items: array of NKSNodeVolume`

    - `id: string`

      Unique identifier for the volume.

    - `created_at: string`

      When the volume was created.

    - `kind: "boot" or "data"`

      Volume kind.

      - `"boot"`

      - `"data"`

    - `name: string`

      Name of the volume.

    - `size: number`

      Size of the volume in GB.

    - `status: "pending" or "creating" or "updating" or 4 more`

      Status of the resource.

      - `"pending"`

      - `"creating"`

      - `"updating"`

      - `"ready"`

      - `"deleting"`

      - `"deleted"`

      - `"error"`

    - `type: "nvme" or "abs"`

      Type of the Volume.

      - `"nvme"`

      - `"abs"`

    - `updated_at: string`

      When the volume was last updated.

  - `pagination: object { next_cursor, previous_cursor, total_count }`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`
