@nirvana-labs/nirvana-mcp 1.91.0 → 1.91.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/code-tool-worker.d.mts.map +1 -1
- package/code-tool-worker.d.ts.map +1 -1
- package/code-tool-worker.js +3 -0
- package/code-tool-worker.js.map +1 -1
- package/code-tool-worker.mjs +3 -0
- package/code-tool-worker.mjs.map +1 -1
- package/code-tool.d.mts.map +1 -1
- package/code-tool.d.ts.map +1 -1
- package/code-tool.js +2 -53
- package/code-tool.js.map +1 -1
- package/code-tool.mjs +3 -54
- package/code-tool.mjs.map +1 -1
- package/docs-search-tool.d.mts.map +1 -1
- package/docs-search-tool.d.ts.map +1 -1
- package/docs-search-tool.js +1 -41
- package/docs-search-tool.js.map +1 -1
- package/docs-search-tool.mjs +1 -41
- package/docs-search-tool.mjs.map +1 -1
- package/instructions.d.mts.map +1 -1
- package/instructions.d.ts.map +1 -1
- package/instructions.js +2 -18
- package/instructions.js.map +1 -1
- package/instructions.mjs +2 -18
- package/instructions.mjs.map +1 -1
- package/local-docs-search.d.mts.map +1 -1
- package/local-docs-search.d.ts.map +1 -1
- package/local-docs-search.js +437 -330
- package/local-docs-search.js.map +1 -1
- package/local-docs-search.mjs +437 -330
- package/local-docs-search.mjs.map +1 -1
- package/methods.d.mts.map +1 -1
- package/methods.d.ts.map +1 -1
- package/methods.js +187 -169
- package/methods.js.map +1 -1
- package/methods.mjs +187 -169
- package/methods.mjs.map +1 -1
- package/options.d.mts +2 -2
- package/options.d.mts.map +1 -1
- package/options.d.ts +2 -2
- package/options.d.ts.map +1 -1
- package/options.js +6 -6
- package/options.js.map +1 -1
- package/options.mjs +6 -6
- package/options.mjs.map +1 -1
- package/package.json +2 -2
- package/server.js +2 -2
- package/server.js.map +1 -1
- package/server.mjs +2 -2
- package/server.mjs.map +1 -1
- package/src/code-tool-worker.ts +3 -0
- package/src/code-tool.ts +4 -83
- package/src/docs-search-tool.ts +2 -61
- package/src/instructions.ts +2 -28
- package/src/local-docs-search.ts +560 -435
- package/src/methods.ts +187 -169
- package/src/options.ts +9 -9
- package/src/server.ts +2 -2
package/src/local-docs-search.ts
CHANGED
|
@@ -67,6 +67,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
67
67
|
example:
|
|
68
68
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst user = await client.user.get();\n\nconsole.log(user.id);",
|
|
69
69
|
},
|
|
70
|
+
http: {
|
|
71
|
+
example:
|
|
72
|
+
'curl https://api.nirvanalabs.io/v1/user \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
73
|
+
},
|
|
70
74
|
go: {
|
|
71
75
|
method: 'client.User.Get',
|
|
72
76
|
example:
|
|
@@ -76,10 +80,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
76
80
|
method: 'user get',
|
|
77
81
|
example: "nirvana user get \\\n --api-key 'My API Key'",
|
|
78
82
|
},
|
|
79
|
-
http: {
|
|
80
|
-
example:
|
|
81
|
-
'curl https://api.nirvanalabs.io/v1/user \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
82
|
-
},
|
|
83
83
|
},
|
|
84
84
|
},
|
|
85
85
|
{
|
|
@@ -100,6 +100,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
100
100
|
example:
|
|
101
101
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst userSecurity = await client.user.security.get();\n\nconsole.log(userSecurity.source_ip_rule);",
|
|
102
102
|
},
|
|
103
|
+
http: {
|
|
104
|
+
example:
|
|
105
|
+
'curl https://api.nirvanalabs.io/v1/user/security \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
106
|
+
},
|
|
103
107
|
go: {
|
|
104
108
|
method: 'client.User.Security.Get',
|
|
105
109
|
example:
|
|
@@ -109,10 +113,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
109
113
|
method: 'security get',
|
|
110
114
|
example: "nirvana user:security get \\\n --api-key 'My API Key'",
|
|
111
115
|
},
|
|
112
|
-
http: {
|
|
113
|
-
example:
|
|
114
|
-
'curl https://api.nirvanalabs.io/v1/user/security \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
115
|
-
},
|
|
116
116
|
},
|
|
117
117
|
},
|
|
118
118
|
{
|
|
@@ -134,6 +134,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
134
134
|
example:
|
|
135
135
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst userSecurity = await client.user.security.update();\n\nconsole.log(userSecurity.source_ip_rule);",
|
|
136
136
|
},
|
|
137
|
+
http: {
|
|
138
|
+
example:
|
|
139
|
+
"curl https://api.nirvanalabs.io/v1/user/security \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: Bearer $NIRVANA_LABS_API_KEY\" \\\n -d '{}'",
|
|
140
|
+
},
|
|
137
141
|
go: {
|
|
138
142
|
method: 'client.User.Security.Update',
|
|
139
143
|
example:
|
|
@@ -143,10 +147,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
143
147
|
method: 'security update',
|
|
144
148
|
example: "nirvana user:security update \\\n --api-key 'My API Key'",
|
|
145
149
|
},
|
|
146
|
-
http: {
|
|
147
|
-
example:
|
|
148
|
-
"curl https://api.nirvanalabs.io/v1/user/security \\\n -X PATCH \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: Bearer $NIRVANA_LABS_API_KEY\" \\\n -d '{}'",
|
|
149
|
-
},
|
|
150
150
|
},
|
|
151
151
|
},
|
|
152
152
|
{
|
|
@@ -176,6 +176,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
176
176
|
example:
|
|
177
177
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst apiKey = await client.apiKeys.create({\n expires_at: '2025-12-31T23:59:59Z',\n name: 'My API Key',\n permissions: [{ permission: 'edit', resource_type: 'vm' }],\n project_ids: ['123e4567-e89b-12d3-a456-426614174000', '123e4567-e89b-12d3-a456-426614174001'],\n});\n\nconsole.log(apiKey.id);",
|
|
178
178
|
},
|
|
179
|
+
http: {
|
|
180
|
+
example:
|
|
181
|
+
'curl https://api.nirvanalabs.io/v1/api_keys \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "expires_at": "2025-12-31T23:59:59Z",\n "name": "My API Key",\n "permissions": [\n {\n "permission": "edit",\n "resource_type": "vm"\n }\n ],\n "project_ids": [\n "123e4567-e89b-12d3-a456-426614174000",\n "123e4567-e89b-12d3-a456-426614174001"\n ],\n "starts_at": "2025-01-01T00:00:00Z",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
182
|
+
},
|
|
179
183
|
go: {
|
|
180
184
|
method: 'client.APIKeys.New',
|
|
181
185
|
example:
|
|
@@ -186,10 +190,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
186
190
|
example:
|
|
187
191
|
"nirvana api-keys create \\\n --api-key 'My API Key' \\\n --expires-at \"'2025-12-31T23:59:59Z'\" \\\n --name 'My API Key' \\\n --permission '{permission: edit, resource_type: vm}' \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --project-id 123e4567-e89b-12d3-a456-426614174001",
|
|
188
192
|
},
|
|
189
|
-
http: {
|
|
190
|
-
example:
|
|
191
|
-
'curl https://api.nirvanalabs.io/v1/api_keys \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "expires_at": "2025-12-31T23:59:59Z",\n "name": "My API Key",\n "permissions": [\n {\n "permission": "edit",\n "resource_type": "vm"\n }\n ],\n "project_ids": [\n "123e4567-e89b-12d3-a456-426614174000",\n "123e4567-e89b-12d3-a456-426614174001"\n ],\n "starts_at": "2025-01-01T00:00:00Z",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
192
|
-
},
|
|
193
193
|
},
|
|
194
194
|
},
|
|
195
195
|
{
|
|
@@ -211,6 +211,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
211
211
|
example:
|
|
212
212
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst apiKey = await client.apiKeys.get('api_key_id');\n\nconsole.log(apiKey.id);",
|
|
213
213
|
},
|
|
214
|
+
http: {
|
|
215
|
+
example:
|
|
216
|
+
'curl https://api.nirvanalabs.io/v1/api_keys/$API_KEY_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
217
|
+
},
|
|
214
218
|
go: {
|
|
215
219
|
method: 'client.APIKeys.Get',
|
|
216
220
|
example:
|
|
@@ -220,10 +224,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
220
224
|
method: 'api_keys get',
|
|
221
225
|
example: "nirvana api-keys get \\\n --api-key 'My API Key' \\\n --api-key-id api_key_id",
|
|
222
226
|
},
|
|
223
|
-
http: {
|
|
224
|
-
example:
|
|
225
|
-
'curl https://api.nirvanalabs.io/v1/api_keys/$API_KEY_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
226
|
-
},
|
|
227
227
|
},
|
|
228
228
|
},
|
|
229
229
|
{
|
|
@@ -252,6 +252,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
252
252
|
example:
|
|
253
253
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst apiKey = await client.apiKeys.update('api_key_id');\n\nconsole.log(apiKey.id);",
|
|
254
254
|
},
|
|
255
|
+
http: {
|
|
256
|
+
example:
|
|
257
|
+
'curl https://api.nirvanalabs.io/v1/api_keys/$API_KEY_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "My Updated API Key",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
258
|
+
},
|
|
255
259
|
go: {
|
|
256
260
|
method: 'client.APIKeys.Update',
|
|
257
261
|
example:
|
|
@@ -261,10 +265,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
261
265
|
method: 'api_keys update',
|
|
262
266
|
example: "nirvana api-keys update \\\n --api-key 'My API Key' \\\n --api-key-id api_key_id",
|
|
263
267
|
},
|
|
264
|
-
http: {
|
|
265
|
-
example:
|
|
266
|
-
'curl https://api.nirvanalabs.io/v1/api_keys/$API_KEY_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "My Updated API Key",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
267
|
-
},
|
|
268
268
|
},
|
|
269
269
|
},
|
|
270
270
|
{
|
|
@@ -284,6 +284,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
284
284
|
example:
|
|
285
285
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.apiKeys.delete('api_key_id');",
|
|
286
286
|
},
|
|
287
|
+
http: {
|
|
288
|
+
example:
|
|
289
|
+
'curl https://api.nirvanalabs.io/v1/api_keys/$API_KEY_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
290
|
+
},
|
|
287
291
|
go: {
|
|
288
292
|
method: 'client.APIKeys.Delete',
|
|
289
293
|
example:
|
|
@@ -293,10 +297,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
293
297
|
method: 'api_keys delete',
|
|
294
298
|
example: "nirvana api-keys delete \\\n --api-key 'My API Key' \\\n --api-key-id api_key_id",
|
|
295
299
|
},
|
|
296
|
-
http: {
|
|
297
|
-
example:
|
|
298
|
-
'curl https://api.nirvanalabs.io/v1/api_keys/$API_KEY_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
299
|
-
},
|
|
300
300
|
},
|
|
301
301
|
},
|
|
302
302
|
{
|
|
@@ -318,6 +318,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
318
318
|
example:
|
|
319
319
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const apiKey of client.apiKeys.list()) {\n console.log(apiKey.id);\n}",
|
|
320
320
|
},
|
|
321
|
+
http: {
|
|
322
|
+
example:
|
|
323
|
+
'curl https://api.nirvanalabs.io/v1/api_keys \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
324
|
+
},
|
|
321
325
|
go: {
|
|
322
326
|
method: 'client.APIKeys.List',
|
|
323
327
|
example:
|
|
@@ -327,10 +331,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
327
331
|
method: 'api_keys list',
|
|
328
332
|
example: "nirvana api-keys list \\\n --api-key 'My API Key'",
|
|
329
333
|
},
|
|
330
|
-
http: {
|
|
331
|
-
example:
|
|
332
|
-
'curl https://api.nirvanalabs.io/v1/api_keys \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
333
|
-
},
|
|
334
334
|
},
|
|
335
335
|
},
|
|
336
336
|
{
|
|
@@ -352,6 +352,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
352
352
|
example:
|
|
353
353
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.operations.get('operation_id');\n\nconsole.log(operation.id);",
|
|
354
354
|
},
|
|
355
|
+
http: {
|
|
356
|
+
example:
|
|
357
|
+
'curl https://api.nirvanalabs.io/v1/operations/$OPERATION_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
358
|
+
},
|
|
355
359
|
go: {
|
|
356
360
|
method: 'client.Operations.Get',
|
|
357
361
|
example:
|
|
@@ -361,10 +365,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
361
365
|
method: 'operations get',
|
|
362
366
|
example: "nirvana operations get \\\n --api-key 'My API Key' \\\n --operation-id operation_id",
|
|
363
367
|
},
|
|
364
|
-
http: {
|
|
365
|
-
example:
|
|
366
|
-
'curl https://api.nirvanalabs.io/v1/operations/$OPERATION_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
367
|
-
},
|
|
368
368
|
},
|
|
369
369
|
},
|
|
370
370
|
{
|
|
@@ -386,6 +386,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
386
386
|
example:
|
|
387
387
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const operation of client.operations.list({ project_id: 'project_id' })) {\n console.log(operation.id);\n}",
|
|
388
388
|
},
|
|
389
|
+
http: {
|
|
390
|
+
example:
|
|
391
|
+
'curl https://api.nirvanalabs.io/v1/operations \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
392
|
+
},
|
|
389
393
|
go: {
|
|
390
394
|
method: 'client.Operations.List',
|
|
391
395
|
example:
|
|
@@ -395,10 +399,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
395
399
|
method: 'operations list',
|
|
396
400
|
example: "nirvana operations list \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
397
401
|
},
|
|
398
|
-
http: {
|
|
399
|
-
example:
|
|
400
|
-
'curl https://api.nirvanalabs.io/v1/operations \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
401
|
-
},
|
|
402
402
|
},
|
|
403
403
|
},
|
|
404
404
|
{
|
|
@@ -420,6 +420,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
420
420
|
example:
|
|
421
421
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst organization = await client.organizations.create({ name: 'My Organization' });\n\nconsole.log(organization.id);",
|
|
422
422
|
},
|
|
423
|
+
http: {
|
|
424
|
+
example:
|
|
425
|
+
'curl https://api.nirvanalabs.io/v1/organizations \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "My Organization",\n "billing_email": "billing@example.com"\n }\'',
|
|
426
|
+
},
|
|
423
427
|
go: {
|
|
424
428
|
method: 'client.Organizations.New',
|
|
425
429
|
example:
|
|
@@ -429,10 +433,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
429
433
|
method: 'organizations create',
|
|
430
434
|
example: "nirvana organizations create \\\n --api-key 'My API Key' \\\n --name 'My Organization'",
|
|
431
435
|
},
|
|
432
|
-
http: {
|
|
433
|
-
example:
|
|
434
|
-
'curl https://api.nirvanalabs.io/v1/organizations \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "My Organization",\n "billing_email": "billing@example.com"\n }\'',
|
|
435
|
-
},
|
|
436
436
|
},
|
|
437
437
|
},
|
|
438
438
|
{
|
|
@@ -454,6 +454,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
454
454
|
example:
|
|
455
455
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst organization = await client.organizations.get('organization_id');\n\nconsole.log(organization.id);",
|
|
456
456
|
},
|
|
457
|
+
http: {
|
|
458
|
+
example:
|
|
459
|
+
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
460
|
+
},
|
|
457
461
|
go: {
|
|
458
462
|
method: 'client.Organizations.Get',
|
|
459
463
|
example:
|
|
@@ -464,10 +468,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
464
468
|
example:
|
|
465
469
|
"nirvana organizations get \\\n --api-key 'My API Key' \\\n --organization-id organization_id",
|
|
466
470
|
},
|
|
467
|
-
http: {
|
|
468
|
-
example:
|
|
469
|
-
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
470
|
-
},
|
|
471
471
|
},
|
|
472
472
|
},
|
|
473
473
|
{
|
|
@@ -489,6 +489,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
489
489
|
example:
|
|
490
490
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst organization = await client.organizations.update('organization_id');\n\nconsole.log(organization.id);",
|
|
491
491
|
},
|
|
492
|
+
http: {
|
|
493
|
+
example:
|
|
494
|
+
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "billing_email": "billing@example.com",\n "name": "My Updated Organization"\n }\'',
|
|
495
|
+
},
|
|
492
496
|
go: {
|
|
493
497
|
method: 'client.Organizations.Update',
|
|
494
498
|
example:
|
|
@@ -499,10 +503,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
499
503
|
example:
|
|
500
504
|
"nirvana organizations update \\\n --api-key 'My API Key' \\\n --organization-id organization_id",
|
|
501
505
|
},
|
|
502
|
-
http: {
|
|
503
|
-
example:
|
|
504
|
-
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "billing_email": "billing@example.com",\n "name": "My Updated Organization"\n }\'',
|
|
505
|
-
},
|
|
506
506
|
},
|
|
507
507
|
},
|
|
508
508
|
{
|
|
@@ -524,6 +524,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
524
524
|
example:
|
|
525
525
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const organization of client.organizations.list()) {\n console.log(organization.id);\n}",
|
|
526
526
|
},
|
|
527
|
+
http: {
|
|
528
|
+
example:
|
|
529
|
+
'curl https://api.nirvanalabs.io/v1/organizations \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
530
|
+
},
|
|
527
531
|
go: {
|
|
528
532
|
method: 'client.Organizations.List',
|
|
529
533
|
example:
|
|
@@ -533,10 +537,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
533
537
|
method: 'organizations list',
|
|
534
538
|
example: "nirvana organizations list \\\n --api-key 'My API Key'",
|
|
535
539
|
},
|
|
536
|
-
http: {
|
|
537
|
-
example:
|
|
538
|
-
'curl https://api.nirvanalabs.io/v1/organizations \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
539
|
-
},
|
|
540
540
|
},
|
|
541
541
|
},
|
|
542
542
|
{
|
|
@@ -556,6 +556,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
556
556
|
example:
|
|
557
557
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.organizations.leave('organization_id');",
|
|
558
558
|
},
|
|
559
|
+
http: {
|
|
560
|
+
example:
|
|
561
|
+
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/leave \\\n -X POST \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
562
|
+
},
|
|
559
563
|
go: {
|
|
560
564
|
method: 'client.Organizations.Leave',
|
|
561
565
|
example:
|
|
@@ -566,10 +570,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
566
570
|
example:
|
|
567
571
|
"nirvana organizations leave \\\n --api-key 'My API Key' \\\n --organization-id organization_id",
|
|
568
572
|
},
|
|
569
|
-
http: {
|
|
570
|
-
example:
|
|
571
|
-
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/leave \\\n -X POST \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
572
|
-
},
|
|
573
573
|
},
|
|
574
574
|
},
|
|
575
575
|
{
|
|
@@ -591,6 +591,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
591
591
|
example:
|
|
592
592
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst organizationMembership = await client.organizations.memberships.get('membership_id', {\n organization_id: 'organization_id',\n});\n\nconsole.log(organizationMembership.id);",
|
|
593
593
|
},
|
|
594
|
+
http: {
|
|
595
|
+
example:
|
|
596
|
+
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/memberships/$MEMBERSHIP_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
597
|
+
},
|
|
594
598
|
go: {
|
|
595
599
|
method: 'client.Organizations.Memberships.Get',
|
|
596
600
|
example:
|
|
@@ -601,10 +605,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
601
605
|
example:
|
|
602
606
|
"nirvana organizations:memberships get \\\n --api-key 'My API Key' \\\n --organization-id organization_id \\\n --membership-id membership_id",
|
|
603
607
|
},
|
|
604
|
-
http: {
|
|
605
|
-
example:
|
|
606
|
-
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/memberships/$MEMBERSHIP_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
607
|
-
},
|
|
608
608
|
},
|
|
609
609
|
},
|
|
610
610
|
{
|
|
@@ -626,6 +626,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
626
626
|
example:
|
|
627
627
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const organizationMembership of client.organizations.memberships.list(\n 'organization_id',\n)) {\n console.log(organizationMembership.id);\n}",
|
|
628
628
|
},
|
|
629
|
+
http: {
|
|
630
|
+
example:
|
|
631
|
+
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/memberships \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
632
|
+
},
|
|
629
633
|
go: {
|
|
630
634
|
method: 'client.Organizations.Memberships.List',
|
|
631
635
|
example:
|
|
@@ -636,9 +640,130 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
636
640
|
example:
|
|
637
641
|
"nirvana organizations:memberships list \\\n --api-key 'My API Key' \\\n --organization-id organization_id",
|
|
638
642
|
},
|
|
643
|
+
},
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
name: 'create',
|
|
647
|
+
endpoint: '/v1/organizations/{organization_id}/address',
|
|
648
|
+
httpMethod: 'post',
|
|
649
|
+
summary: 'Create Organization Address',
|
|
650
|
+
description: 'Create the address for an organization',
|
|
651
|
+
stainlessPath: '(resource) organizations.address > (method) create',
|
|
652
|
+
qualified: 'client.organizations.address.create',
|
|
653
|
+
params: [
|
|
654
|
+
'organization_id: string;',
|
|
655
|
+
'city: string;',
|
|
656
|
+
'country: string;',
|
|
657
|
+
'line1: string;',
|
|
658
|
+
'postal_code: string;',
|
|
659
|
+
'line2?: string;',
|
|
660
|
+
'state?: string;',
|
|
661
|
+
'tax_id?: string;',
|
|
662
|
+
'tax_id_type?: string;',
|
|
663
|
+
],
|
|
664
|
+
response:
|
|
665
|
+
'{ id: string; city: string; country: string; created_at: string; line1: string; line2: string; organization_id: string; postal_code: string; state: string; tax_id: string; tax_id_type: string; updated_at: string; }',
|
|
666
|
+
markdown:
|
|
667
|
+
"## create\n\n`client.organizations.address.create(organization_id: string, city: string, country: string, line1: string, postal_code: string, line2?: string, state?: string, tax_id?: string, tax_id_type?: string): { id: string; city: string; country: string; created_at: string; line1: string; line2: string; organization_id: string; postal_code: string; state: string; tax_id: string; tax_id_type: string; updated_at: string; }`\n\n**post** `/v1/organizations/{organization_id}/address`\n\nCreate the address for an organization\n\n### Parameters\n\n- `organization_id: string`\n\n- `city: string`\n City or locality.\n\n- `country: string`\n Two-letter ISO 3166-1 alpha-2 country code.\n\n- `line1: string`\n First line of the street address.\n\n- `postal_code: string`\n Postal or ZIP code.\n\n- `line2?: string`\n Second line of the street address (suite, unit, building).\n\n- `state?: string`\n State, province, or region. Required by some tax jurisdictions (e.g. US, CA).\n\n- `tax_id?: string`\n Tax identification number (e.g. VAT, EIN, ABN). Optional.\n\n- `tax_id_type?: string`\n Type of the tax identification number (e.g. eu_vat, us_ein, gb_vat, au_abn). Optional.\n\n### Returns\n\n- `{ id: string; city: string; country: string; created_at: string; line1: string; line2: string; organization_id: string; postal_code: string; state: string; tax_id: string; tax_id_type: string; updated_at: string; }`\n Organization address details.\n\n - `id: string`\n - `city: string`\n - `country: string`\n - `created_at: string`\n - `line1: string`\n - `line2: string`\n - `organization_id: string`\n - `postal_code: string`\n - `state: string`\n - `tax_id: string`\n - `tax_id_type: string`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst organizationAddress = await client.organizations.address.create('organization_id', {\n city: 'San Francisco',\n country: 'US',\n line1: '123 Main St',\n postal_code: '94105',\n});\n\nconsole.log(organizationAddress);\n```",
|
|
668
|
+
perLanguage: {
|
|
669
|
+
typescript: {
|
|
670
|
+
method: 'client.organizations.address.create',
|
|
671
|
+
example:
|
|
672
|
+
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst organizationAddress = await client.organizations.address.create('organization_id', {\n city: 'San Francisco',\n country: 'US',\n line1: '123 Main St',\n postal_code: '94105',\n});\n\nconsole.log(organizationAddress.id);",
|
|
673
|
+
},
|
|
639
674
|
http: {
|
|
640
675
|
example:
|
|
641
|
-
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/
|
|
676
|
+
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/address \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "city": "San Francisco",\n "country": "US",\n "line1": "123 Main St",\n "postal_code": "94105",\n "line2": "Suite 400",\n "state": "CA",\n "tax_id": "EU372000000",\n "tax_id_type": "eu_vat"\n }\'',
|
|
677
|
+
},
|
|
678
|
+
go: {
|
|
679
|
+
method: 'client.Organizations.Address.New',
|
|
680
|
+
example:
|
|
681
|
+
'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/nirvana-labs/nirvana-go"\n\t"github.com/nirvana-labs/nirvana-go/option"\n\t"github.com/nirvana-labs/nirvana-go/organizations"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"),\n\t)\n\torganizationAddress, err := client.Organizations.Address.New(\n\t\tcontext.TODO(),\n\t\t"organization_id",\n\t\torganizations.AddressNewParams{\n\t\t\tCity: "San Francisco",\n\t\t\tCountry: "US",\n\t\t\tLine1: "123 Main St",\n\t\t\tPostalCode: "94105",\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", organizationAddress.ID)\n}\n',
|
|
682
|
+
},
|
|
683
|
+
cli: {
|
|
684
|
+
method: 'address create',
|
|
685
|
+
example:
|
|
686
|
+
"nirvana organizations:address create \\\n --api-key 'My API Key' \\\n --organization-id organization_id \\\n --city 'San Francisco' \\\n --country US \\\n --line1 '123 Main St' \\\n --postal-code 94105",
|
|
687
|
+
},
|
|
688
|
+
},
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
name: 'get',
|
|
692
|
+
endpoint: '/v1/organizations/{organization_id}/address',
|
|
693
|
+
httpMethod: 'get',
|
|
694
|
+
summary: 'Get Organization Address',
|
|
695
|
+
description: 'Get the address for an organization',
|
|
696
|
+
stainlessPath: '(resource) organizations.address > (method) get',
|
|
697
|
+
qualified: 'client.organizations.address.get',
|
|
698
|
+
params: ['organization_id: string;'],
|
|
699
|
+
response:
|
|
700
|
+
'{ id: string; city: string; country: string; created_at: string; line1: string; line2: string; organization_id: string; postal_code: string; state: string; tax_id: string; tax_id_type: string; updated_at: string; }',
|
|
701
|
+
markdown:
|
|
702
|
+
"## get\n\n`client.organizations.address.get(organization_id: string): { id: string; city: string; country: string; created_at: string; line1: string; line2: string; organization_id: string; postal_code: string; state: string; tax_id: string; tax_id_type: string; updated_at: string; }`\n\n**get** `/v1/organizations/{organization_id}/address`\n\nGet the address for an organization\n\n### Parameters\n\n- `organization_id: string`\n\n### Returns\n\n- `{ id: string; city: string; country: string; created_at: string; line1: string; line2: string; organization_id: string; postal_code: string; state: string; tax_id: string; tax_id_type: string; updated_at: string; }`\n Organization address details.\n\n - `id: string`\n - `city: string`\n - `country: string`\n - `created_at: string`\n - `line1: string`\n - `line2: string`\n - `organization_id: string`\n - `postal_code: string`\n - `state: string`\n - `tax_id: string`\n - `tax_id_type: string`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst organizationAddress = await client.organizations.address.get('organization_id');\n\nconsole.log(organizationAddress);\n```",
|
|
703
|
+
perLanguage: {
|
|
704
|
+
typescript: {
|
|
705
|
+
method: 'client.organizations.address.get',
|
|
706
|
+
example:
|
|
707
|
+
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst organizationAddress = await client.organizations.address.get('organization_id');\n\nconsole.log(organizationAddress.id);",
|
|
708
|
+
},
|
|
709
|
+
http: {
|
|
710
|
+
example:
|
|
711
|
+
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/address \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
712
|
+
},
|
|
713
|
+
go: {
|
|
714
|
+
method: 'client.Organizations.Address.Get',
|
|
715
|
+
example:
|
|
716
|
+
'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/nirvana-labs/nirvana-go"\n\t"github.com/nirvana-labs/nirvana-go/option"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"),\n\t)\n\torganizationAddress, err := client.Organizations.Address.Get(context.TODO(), "organization_id")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", organizationAddress.ID)\n}\n',
|
|
717
|
+
},
|
|
718
|
+
cli: {
|
|
719
|
+
method: 'address get',
|
|
720
|
+
example:
|
|
721
|
+
"nirvana organizations:address get \\\n --api-key 'My API Key' \\\n --organization-id organization_id",
|
|
722
|
+
},
|
|
723
|
+
},
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
name: 'update',
|
|
727
|
+
endpoint: '/v1/organizations/{organization_id}/address',
|
|
728
|
+
httpMethod: 'patch',
|
|
729
|
+
summary: 'Update Organization Address',
|
|
730
|
+
description: 'Update the address for an organization',
|
|
731
|
+
stainlessPath: '(resource) organizations.address > (method) update',
|
|
732
|
+
qualified: 'client.organizations.address.update',
|
|
733
|
+
params: [
|
|
734
|
+
'organization_id: string;',
|
|
735
|
+
'city?: string;',
|
|
736
|
+
'country?: string;',
|
|
737
|
+
'line1?: string;',
|
|
738
|
+
'line2?: string;',
|
|
739
|
+
'postal_code?: string;',
|
|
740
|
+
'state?: string;',
|
|
741
|
+
'tax_id?: string;',
|
|
742
|
+
'tax_id_type?: string;',
|
|
743
|
+
],
|
|
744
|
+
response:
|
|
745
|
+
'{ id: string; city: string; country: string; created_at: string; line1: string; line2: string; organization_id: string; postal_code: string; state: string; tax_id: string; tax_id_type: string; updated_at: string; }',
|
|
746
|
+
markdown:
|
|
747
|
+
"## update\n\n`client.organizations.address.update(organization_id: string, city?: string, country?: string, line1?: string, line2?: string, postal_code?: string, state?: string, tax_id?: string, tax_id_type?: string): { id: string; city: string; country: string; created_at: string; line1: string; line2: string; organization_id: string; postal_code: string; state: string; tax_id: string; tax_id_type: string; updated_at: string; }`\n\n**patch** `/v1/organizations/{organization_id}/address`\n\nUpdate the address for an organization\n\n### Parameters\n\n- `organization_id: string`\n\n- `city?: string`\n City or locality.\n\n- `country?: string`\n Two-letter ISO 3166-1 alpha-2 country code.\n\n- `line1?: string`\n First line of the street address.\n\n- `line2?: string`\n Second line of the street address (suite, unit, building). Omit to leave\nunchanged, send null to clear, or send a value to set it.\n\n- `postal_code?: string`\n Postal or ZIP code.\n\n- `state?: string`\n State, province, or region. Omit to leave unchanged, send null to clear,\nor send a value to set it.\n\n- `tax_id?: string`\n Tax identification number (e.g. VAT, EIN, ABN). Omit to leave unchanged,\nsend null to clear, or send a value to set it.\n\n- `tax_id_type?: string`\n Type of the tax identification number (e.g. eu_vat, us_ein, gb_vat, au_abn).\nOmit to leave unchanged, send null to clear, or send a value to set it.\n\n### Returns\n\n- `{ id: string; city: string; country: string; created_at: string; line1: string; line2: string; organization_id: string; postal_code: string; state: string; tax_id: string; tax_id_type: string; updated_at: string; }`\n Organization address details.\n\n - `id: string`\n - `city: string`\n - `country: string`\n - `created_at: string`\n - `line1: string`\n - `line2: string`\n - `organization_id: string`\n - `postal_code: string`\n - `state: string`\n - `tax_id: string`\n - `tax_id_type: string`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst organizationAddress = await client.organizations.address.update('organization_id');\n\nconsole.log(organizationAddress);\n```",
|
|
748
|
+
perLanguage: {
|
|
749
|
+
typescript: {
|
|
750
|
+
method: 'client.organizations.address.update',
|
|
751
|
+
example:
|
|
752
|
+
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst organizationAddress = await client.organizations.address.update('organization_id');\n\nconsole.log(organizationAddress.id);",
|
|
753
|
+
},
|
|
754
|
+
http: {
|
|
755
|
+
example:
|
|
756
|
+
'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/address \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "city": "San Francisco",\n "country": "US",\n "line1": "123 Main St",\n "line2": "Suite 400",\n "postal_code": "94105",\n "state": "CA",\n "tax_id": "EU372000000",\n "tax_id_type": "eu_vat"\n }\'',
|
|
757
|
+
},
|
|
758
|
+
go: {
|
|
759
|
+
method: 'client.Organizations.Address.Update',
|
|
760
|
+
example:
|
|
761
|
+
'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/nirvana-labs/nirvana-go"\n\t"github.com/nirvana-labs/nirvana-go/option"\n\t"github.com/nirvana-labs/nirvana-go/organizations"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"),\n\t)\n\torganizationAddress, err := client.Organizations.Address.Update(\n\t\tcontext.TODO(),\n\t\t"organization_id",\n\t\torganizations.AddressUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", organizationAddress.ID)\n}\n',
|
|
762
|
+
},
|
|
763
|
+
cli: {
|
|
764
|
+
method: 'address update',
|
|
765
|
+
example:
|
|
766
|
+
"nirvana organizations:address update \\\n --api-key 'My API Key' \\\n --organization-id organization_id",
|
|
642
767
|
},
|
|
643
768
|
},
|
|
644
769
|
},
|
|
@@ -661,6 +786,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
661
786
|
example:
|
|
662
787
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst quota = await client.quotas.get('us-sva-2');\n\nconsole.log(quota.compute);",
|
|
663
788
|
},
|
|
789
|
+
http: {
|
|
790
|
+
example:
|
|
791
|
+
'curl https://api.nirvanalabs.io/v1/quotas/$REGION \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
792
|
+
},
|
|
664
793
|
go: {
|
|
665
794
|
method: 'client.Quotas.Get',
|
|
666
795
|
example:
|
|
@@ -670,10 +799,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
670
799
|
method: 'quotas get',
|
|
671
800
|
example: "nirvana quotas get \\\n --api-key 'My API Key' \\\n --region us-sva-2",
|
|
672
801
|
},
|
|
673
|
-
http: {
|
|
674
|
-
example:
|
|
675
|
-
'curl https://api.nirvanalabs.io/v1/quotas/$REGION \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
676
|
-
},
|
|
677
802
|
},
|
|
678
803
|
},
|
|
679
804
|
{
|
|
@@ -694,6 +819,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
694
819
|
example:
|
|
695
820
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst quotaList = await client.quotas.list();\n\nconsole.log(quotaList.items);",
|
|
696
821
|
},
|
|
822
|
+
http: {
|
|
823
|
+
example:
|
|
824
|
+
'curl https://api.nirvanalabs.io/v1/quotas \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
825
|
+
},
|
|
697
826
|
go: {
|
|
698
827
|
method: 'client.Quotas.List',
|
|
699
828
|
example:
|
|
@@ -703,10 +832,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
703
832
|
method: 'quotas list',
|
|
704
833
|
example: "nirvana quotas list \\\n --api-key 'My API Key'",
|
|
705
834
|
},
|
|
706
|
-
http: {
|
|
707
|
-
example:
|
|
708
|
-
'curl https://api.nirvanalabs.io/v1/quotas \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
709
|
-
},
|
|
710
835
|
},
|
|
711
836
|
},
|
|
712
837
|
{
|
|
@@ -729,6 +854,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
729
854
|
example:
|
|
730
855
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst usage = await client.usage.get('123e4567-e89b-12d3-a456-426614174000');\n\nconsole.log(usage.project_id);",
|
|
731
856
|
},
|
|
857
|
+
http: {
|
|
858
|
+
example:
|
|
859
|
+
'curl https://api.nirvanalabs.io/v1/usage/$RESOURCE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
860
|
+
},
|
|
732
861
|
go: {
|
|
733
862
|
method: 'client.Usage.Get',
|
|
734
863
|
example:
|
|
@@ -739,10 +868,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
739
868
|
example:
|
|
740
869
|
"nirvana usage get \\\n --api-key 'My API Key' \\\n --resource-id 123e4567-e89b-12d3-a456-426614174000",
|
|
741
870
|
},
|
|
742
|
-
http: {
|
|
743
|
-
example:
|
|
744
|
-
'curl https://api.nirvanalabs.io/v1/usage/$RESOURCE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
745
|
-
},
|
|
746
871
|
},
|
|
747
872
|
},
|
|
748
873
|
{
|
|
@@ -765,6 +890,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
765
890
|
example:
|
|
766
891
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const usage of client.usage.list()) {\n console.log(usage.project_id);\n}",
|
|
767
892
|
},
|
|
893
|
+
http: {
|
|
894
|
+
example:
|
|
895
|
+
'curl https://api.nirvanalabs.io/v1/usage \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
896
|
+
},
|
|
768
897
|
go: {
|
|
769
898
|
method: 'client.Usage.List',
|
|
770
899
|
example:
|
|
@@ -774,10 +903,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
774
903
|
method: 'usage list',
|
|
775
904
|
example: "nirvana usage list \\\n --api-key 'My API Key'",
|
|
776
905
|
},
|
|
777
|
-
http: {
|
|
778
|
-
example:
|
|
779
|
-
'curl https://api.nirvanalabs.io/v1/usage \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
780
|
-
},
|
|
781
906
|
},
|
|
782
907
|
},
|
|
783
908
|
{
|
|
@@ -799,6 +924,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
799
924
|
example:
|
|
800
925
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst auditLog = await client.auditLogs.get('audit_log_id');\n\nconsole.log(auditLog.id);",
|
|
801
926
|
},
|
|
927
|
+
http: {
|
|
928
|
+
example:
|
|
929
|
+
'curl https://api.nirvanalabs.io/v1/audit_logs/$AUDIT_LOG_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
930
|
+
},
|
|
802
931
|
go: {
|
|
803
932
|
method: 'client.AuditLogs.Get',
|
|
804
933
|
example:
|
|
@@ -808,10 +937,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
808
937
|
method: 'audit_logs get',
|
|
809
938
|
example: "nirvana audit-logs get \\\n --api-key 'My API Key' \\\n --audit-log-id audit_log_id",
|
|
810
939
|
},
|
|
811
|
-
http: {
|
|
812
|
-
example:
|
|
813
|
-
'curl https://api.nirvanalabs.io/v1/audit_logs/$AUDIT_LOG_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
814
|
-
},
|
|
815
940
|
},
|
|
816
941
|
},
|
|
817
942
|
{
|
|
@@ -833,6 +958,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
833
958
|
example:
|
|
834
959
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const auditLog of client.auditLogs.list()) {\n console.log(auditLog.id);\n}",
|
|
835
960
|
},
|
|
961
|
+
http: {
|
|
962
|
+
example:
|
|
963
|
+
'curl https://api.nirvanalabs.io/v1/audit_logs \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
964
|
+
},
|
|
836
965
|
go: {
|
|
837
966
|
method: 'client.AuditLogs.List',
|
|
838
967
|
example:
|
|
@@ -842,10 +971,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
842
971
|
method: 'audit_logs list',
|
|
843
972
|
example: "nirvana audit-logs list \\\n --api-key 'My API Key'",
|
|
844
973
|
},
|
|
845
|
-
http: {
|
|
846
|
-
example:
|
|
847
|
-
'curl https://api.nirvanalabs.io/v1/audit_logs \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
848
|
-
},
|
|
849
974
|
},
|
|
850
975
|
},
|
|
851
976
|
{
|
|
@@ -867,6 +992,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
867
992
|
example:
|
|
868
993
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst project = await client.projects.create({ name: 'My Project' });\n\nconsole.log(project.id);",
|
|
869
994
|
},
|
|
995
|
+
http: {
|
|
996
|
+
example:
|
|
997
|
+
'curl https://api.nirvanalabs.io/v1/projects \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "My Project",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
998
|
+
},
|
|
870
999
|
go: {
|
|
871
1000
|
method: 'client.Projects.New',
|
|
872
1001
|
example:
|
|
@@ -876,10 +1005,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
876
1005
|
method: 'projects create',
|
|
877
1006
|
example: "nirvana projects create \\\n --api-key 'My API Key' \\\n --name 'My Project'",
|
|
878
1007
|
},
|
|
879
|
-
http: {
|
|
880
|
-
example:
|
|
881
|
-
'curl https://api.nirvanalabs.io/v1/projects \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "My Project",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
882
|
-
},
|
|
883
1008
|
},
|
|
884
1009
|
},
|
|
885
1010
|
{
|
|
@@ -901,6 +1026,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
901
1026
|
example:
|
|
902
1027
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst project = await client.projects.get('project_id');\n\nconsole.log(project.id);",
|
|
903
1028
|
},
|
|
1029
|
+
http: {
|
|
1030
|
+
example:
|
|
1031
|
+
'curl https://api.nirvanalabs.io/v1/projects/$PROJECT_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1032
|
+
},
|
|
904
1033
|
go: {
|
|
905
1034
|
method: 'client.Projects.Get',
|
|
906
1035
|
example:
|
|
@@ -910,10 +1039,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
910
1039
|
method: 'projects get',
|
|
911
1040
|
example: "nirvana projects get \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
912
1041
|
},
|
|
913
|
-
http: {
|
|
914
|
-
example:
|
|
915
|
-
'curl https://api.nirvanalabs.io/v1/projects/$PROJECT_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
916
|
-
},
|
|
917
1042
|
},
|
|
918
1043
|
},
|
|
919
1044
|
{
|
|
@@ -935,6 +1060,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
935
1060
|
example:
|
|
936
1061
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst project = await client.projects.update('project_id');\n\nconsole.log(project.id);",
|
|
937
1062
|
},
|
|
1063
|
+
http: {
|
|
1064
|
+
example:
|
|
1065
|
+
'curl https://api.nirvanalabs.io/v1/projects/$PROJECT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "My Updated Project",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1066
|
+
},
|
|
938
1067
|
go: {
|
|
939
1068
|
method: 'client.Projects.Update',
|
|
940
1069
|
example:
|
|
@@ -944,10 +1073,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
944
1073
|
method: 'projects update',
|
|
945
1074
|
example: "nirvana projects update \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
946
1075
|
},
|
|
947
|
-
http: {
|
|
948
|
-
example:
|
|
949
|
-
'curl https://api.nirvanalabs.io/v1/projects/$PROJECT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "My Updated Project",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
950
|
-
},
|
|
951
1076
|
},
|
|
952
1077
|
},
|
|
953
1078
|
{
|
|
@@ -967,6 +1092,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
967
1092
|
example:
|
|
968
1093
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.projects.delete('project_id');",
|
|
969
1094
|
},
|
|
1095
|
+
http: {
|
|
1096
|
+
example:
|
|
1097
|
+
'curl https://api.nirvanalabs.io/v1/projects/$PROJECT_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1098
|
+
},
|
|
970
1099
|
go: {
|
|
971
1100
|
method: 'client.Projects.Delete',
|
|
972
1101
|
example:
|
|
@@ -976,10 +1105,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
976
1105
|
method: 'projects delete',
|
|
977
1106
|
example: "nirvana projects delete \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
978
1107
|
},
|
|
979
|
-
http: {
|
|
980
|
-
example:
|
|
981
|
-
'curl https://api.nirvanalabs.io/v1/projects/$PROJECT_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
982
|
-
},
|
|
983
1108
|
},
|
|
984
1109
|
},
|
|
985
1110
|
{
|
|
@@ -1001,6 +1126,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1001
1126
|
example:
|
|
1002
1127
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const project of client.projects.list()) {\n console.log(project.id);\n}",
|
|
1003
1128
|
},
|
|
1129
|
+
http: {
|
|
1130
|
+
example:
|
|
1131
|
+
'curl https://api.nirvanalabs.io/v1/projects \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1132
|
+
},
|
|
1004
1133
|
go: {
|
|
1005
1134
|
method: 'client.Projects.List',
|
|
1006
1135
|
example:
|
|
@@ -1010,10 +1139,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1010
1139
|
method: 'projects list',
|
|
1011
1140
|
example: "nirvana projects list \\\n --api-key 'My API Key'",
|
|
1012
1141
|
},
|
|
1013
|
-
http: {
|
|
1014
|
-
example:
|
|
1015
|
-
'curl https://api.nirvanalabs.io/v1/projects \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1016
|
-
},
|
|
1017
1142
|
},
|
|
1018
1143
|
},
|
|
1019
1144
|
{
|
|
@@ -1035,6 +1160,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1035
1160
|
example:
|
|
1036
1161
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst region = await client.regions.get('us-sva-2');\n\nconsole.log(region.availability);",
|
|
1037
1162
|
},
|
|
1163
|
+
http: {
|
|
1164
|
+
example:
|
|
1165
|
+
'curl https://api.nirvanalabs.io/v1/regions/$NAME \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1166
|
+
},
|
|
1038
1167
|
go: {
|
|
1039
1168
|
method: 'client.Regions.Get',
|
|
1040
1169
|
example:
|
|
@@ -1044,10 +1173,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1044
1173
|
method: 'regions get',
|
|
1045
1174
|
example: "nirvana regions get \\\n --api-key 'My API Key' \\\n --name us-sva-2",
|
|
1046
1175
|
},
|
|
1047
|
-
http: {
|
|
1048
|
-
example:
|
|
1049
|
-
'curl https://api.nirvanalabs.io/v1/regions/$NAME \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1050
|
-
},
|
|
1051
1176
|
},
|
|
1052
1177
|
},
|
|
1053
1178
|
{
|
|
@@ -1069,6 +1194,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1069
1194
|
example:
|
|
1070
1195
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const region of client.regions.list()) {\n console.log(region.availability);\n}",
|
|
1071
1196
|
},
|
|
1197
|
+
http: {
|
|
1198
|
+
example:
|
|
1199
|
+
'curl https://api.nirvanalabs.io/v1/regions \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1200
|
+
},
|
|
1072
1201
|
go: {
|
|
1073
1202
|
method: 'client.Regions.List',
|
|
1074
1203
|
example:
|
|
@@ -1078,10 +1207,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1078
1207
|
method: 'regions list',
|
|
1079
1208
|
example: "nirvana regions list \\\n --api-key 'My API Key'",
|
|
1080
1209
|
},
|
|
1081
|
-
http: {
|
|
1082
|
-
example:
|
|
1083
|
-
'curl https://api.nirvanalabs.io/v1/regions \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1084
|
-
},
|
|
1085
1210
|
},
|
|
1086
1211
|
},
|
|
1087
1212
|
{
|
|
@@ -1103,6 +1228,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1103
1228
|
example:
|
|
1104
1229
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst instanceType = await client.instanceTypes.get('n1-standard-8', { region: 'us-sva-2' });\n\nconsole.log(instanceType.network_bandwidth_gbps);",
|
|
1105
1230
|
},
|
|
1231
|
+
http: {
|
|
1232
|
+
example:
|
|
1233
|
+
'curl https://api.nirvanalabs.io/v1/instance_types/$REGION/$NAME \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1234
|
+
},
|
|
1106
1235
|
go: {
|
|
1107
1236
|
method: 'client.InstanceTypes.Get',
|
|
1108
1237
|
example:
|
|
@@ -1113,10 +1242,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1113
1242
|
example:
|
|
1114
1243
|
"nirvana instance-types get \\\n --api-key 'My API Key' \\\n --region us-sva-2 \\\n --name n1-standard-8",
|
|
1115
1244
|
},
|
|
1116
|
-
http: {
|
|
1117
|
-
example:
|
|
1118
|
-
'curl https://api.nirvanalabs.io/v1/instance_types/$REGION/$NAME \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1119
|
-
},
|
|
1120
1245
|
},
|
|
1121
1246
|
},
|
|
1122
1247
|
{
|
|
@@ -1138,6 +1263,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1138
1263
|
example:
|
|
1139
1264
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const instanceType of client.instanceTypes.list()) {\n console.log(instanceType.network_bandwidth_gbps);\n}",
|
|
1140
1265
|
},
|
|
1266
|
+
http: {
|
|
1267
|
+
example:
|
|
1268
|
+
'curl https://api.nirvanalabs.io/v1/instance_types \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1269
|
+
},
|
|
1141
1270
|
go: {
|
|
1142
1271
|
method: 'client.InstanceTypes.List',
|
|
1143
1272
|
example:
|
|
@@ -1147,10 +1276,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1147
1276
|
method: 'instance_types list',
|
|
1148
1277
|
example: "nirvana instance-types list \\\n --api-key 'My API Key'",
|
|
1149
1278
|
},
|
|
1150
|
-
http: {
|
|
1151
|
-
example:
|
|
1152
|
-
'curl https://api.nirvanalabs.io/v1/instance_types \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1153
|
-
},
|
|
1154
1279
|
},
|
|
1155
1280
|
},
|
|
1156
1281
|
{
|
|
@@ -1184,6 +1309,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1184
1309
|
example:
|
|
1185
1310
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.vms.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-8',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n});\n\nconsole.log(operation.id);",
|
|
1186
1311
|
},
|
|
1312
|
+
http: {
|
|
1313
|
+
example:
|
|
1314
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "boot_volume": {\n "size": 100,\n "type": "abs"\n },\n "instance_type": "n1-standard-8",\n "name": "my-vm",\n "os_image_name": "ubuntu-noble-2025-10-01",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "public_ip_enabled": true,\n "region": "us-sva-2",\n "ssh_key": {\n "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2"\n },\n "subnet_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1315
|
+
},
|
|
1187
1316
|
go: {
|
|
1188
1317
|
method: 'client.Compute.VMs.New',
|
|
1189
1318
|
example:
|
|
@@ -1194,10 +1323,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1194
1323
|
example:
|
|
1195
1324
|
"nirvana compute:vms create \\\n --api-key 'My API Key' \\\n --boot-volume '{size: 100, type: abs}' \\\n --instance-type n1-standard-8 \\\n --name my-vm \\\n --os-image-name ubuntu-noble-2025-10-01 \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --public-ip-enabled \\\n --region us-sva-2 \\\n --ssh-key '{public_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2}' \\\n --subnet-id 123e4567-e89b-12d3-a456-426614174000",
|
|
1196
1325
|
},
|
|
1197
|
-
http: {
|
|
1198
|
-
example:
|
|
1199
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "boot_volume": {\n "size": 100,\n "type": "abs"\n },\n "instance_type": "n1-standard-8",\n "name": "my-vm",\n "os_image_name": "ubuntu-noble-2025-10-01",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "public_ip_enabled": true,\n "region": "us-sva-2",\n "ssh_key": {\n "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2"\n },\n "subnet_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1200
|
-
},
|
|
1201
1326
|
},
|
|
1202
1327
|
},
|
|
1203
1328
|
{
|
|
@@ -1219,6 +1344,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1219
1344
|
example:
|
|
1220
1345
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst vm = await client.compute.vms.get('vm_id');\n\nconsole.log(vm.id);",
|
|
1221
1346
|
},
|
|
1347
|
+
http: {
|
|
1348
|
+
example:
|
|
1349
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1350
|
+
},
|
|
1222
1351
|
go: {
|
|
1223
1352
|
method: 'client.Compute.VMs.Get',
|
|
1224
1353
|
example:
|
|
@@ -1228,10 +1357,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1228
1357
|
method: 'vms get',
|
|
1229
1358
|
example: "nirvana compute:vms get \\\n --api-key 'My API Key' \\\n --vm-id vm_id",
|
|
1230
1359
|
},
|
|
1231
|
-
http: {
|
|
1232
|
-
example:
|
|
1233
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1234
|
-
},
|
|
1235
1360
|
},
|
|
1236
1361
|
},
|
|
1237
1362
|
{
|
|
@@ -1259,6 +1384,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1259
1384
|
example:
|
|
1260
1385
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.vms.update('vm_id');\n\nconsole.log(operation.id);",
|
|
1261
1386
|
},
|
|
1387
|
+
http: {
|
|
1388
|
+
example:
|
|
1389
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "instance_type": "n1-standard-8",\n "name": "my-vm",\n "public_ip_enabled": true,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1390
|
+
},
|
|
1262
1391
|
go: {
|
|
1263
1392
|
method: 'client.Compute.VMs.Update',
|
|
1264
1393
|
example:
|
|
@@ -1268,10 +1397,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1268
1397
|
method: 'vms update',
|
|
1269
1398
|
example: "nirvana compute:vms update \\\n --api-key 'My API Key' \\\n --vm-id vm_id",
|
|
1270
1399
|
},
|
|
1271
|
-
http: {
|
|
1272
|
-
example:
|
|
1273
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "instance_type": "n1-standard-8",\n "name": "my-vm",\n "public_ip_enabled": true,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1274
|
-
},
|
|
1275
1400
|
},
|
|
1276
1401
|
},
|
|
1277
1402
|
{
|
|
@@ -1293,6 +1418,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1293
1418
|
example:
|
|
1294
1419
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.vms.delete('vm_id');\n\nconsole.log(operation.id);",
|
|
1295
1420
|
},
|
|
1421
|
+
http: {
|
|
1422
|
+
example:
|
|
1423
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1424
|
+
},
|
|
1296
1425
|
go: {
|
|
1297
1426
|
method: 'client.Compute.VMs.Delete',
|
|
1298
1427
|
example:
|
|
@@ -1302,10 +1431,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1302
1431
|
method: 'vms delete',
|
|
1303
1432
|
example: "nirvana compute:vms delete \\\n --api-key 'My API Key' \\\n --vm-id vm_id",
|
|
1304
1433
|
},
|
|
1305
|
-
http: {
|
|
1306
|
-
example:
|
|
1307
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1308
|
-
},
|
|
1309
1434
|
},
|
|
1310
1435
|
},
|
|
1311
1436
|
{
|
|
@@ -1327,6 +1452,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1327
1452
|
example:
|
|
1328
1453
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const vm of client.compute.vms.list({ project_id: 'project_id' })) {\n console.log(vm.id);\n}",
|
|
1329
1454
|
},
|
|
1455
|
+
http: {
|
|
1456
|
+
example:
|
|
1457
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1458
|
+
},
|
|
1330
1459
|
go: {
|
|
1331
1460
|
method: 'client.Compute.VMs.List',
|
|
1332
1461
|
example:
|
|
@@ -1336,10 +1465,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1336
1465
|
method: 'vms list',
|
|
1337
1466
|
example: "nirvana compute:vms list \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
1338
1467
|
},
|
|
1339
|
-
http: {
|
|
1340
|
-
example:
|
|
1341
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1342
|
-
},
|
|
1343
1468
|
},
|
|
1344
1469
|
},
|
|
1345
1470
|
{
|
|
@@ -1361,6 +1486,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1361
1486
|
example:
|
|
1362
1487
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.vms.restart('vm_id');\n\nconsole.log(operation.id);",
|
|
1363
1488
|
},
|
|
1489
|
+
http: {
|
|
1490
|
+
example:
|
|
1491
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID/restart \\\n -X POST \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1492
|
+
},
|
|
1364
1493
|
go: {
|
|
1365
1494
|
method: 'client.Compute.VMs.Restart',
|
|
1366
1495
|
example:
|
|
@@ -1370,10 +1499,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1370
1499
|
method: 'vms restart',
|
|
1371
1500
|
example: "nirvana compute:vms restart \\\n --api-key 'My API Key' \\\n --vm-id vm_id",
|
|
1372
1501
|
},
|
|
1373
|
-
http: {
|
|
1374
|
-
example:
|
|
1375
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID/restart \\\n -X POST \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1376
|
-
},
|
|
1377
1502
|
},
|
|
1378
1503
|
},
|
|
1379
1504
|
{
|
|
@@ -1405,6 +1530,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1405
1530
|
example:
|
|
1406
1531
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.compute.vms.availability.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-8',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n});",
|
|
1407
1532
|
},
|
|
1533
|
+
http: {
|
|
1534
|
+
example:
|
|
1535
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "boot_volume": {\n "size": 100,\n "type": "abs"\n },\n "instance_type": "n1-standard-8",\n "name": "my-vm",\n "os_image_name": "ubuntu-noble-2025-10-01",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "public_ip_enabled": true,\n "region": "us-sva-2",\n "ssh_key": {\n "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2"\n },\n "subnet_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1536
|
+
},
|
|
1408
1537
|
go: {
|
|
1409
1538
|
method: 'client.Compute.VMs.Availability.New',
|
|
1410
1539
|
example:
|
|
@@ -1415,10 +1544,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1415
1544
|
example:
|
|
1416
1545
|
"nirvana compute:vms:availability create \\\n --api-key 'My API Key' \\\n --boot-volume '{size: 100, type: abs}' \\\n --instance-type n1-standard-8 \\\n --name my-vm \\\n --os-image-name ubuntu-noble-2025-10-01 \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --public-ip-enabled \\\n --region us-sva-2 \\\n --ssh-key '{public_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2}' \\\n --subnet-id 123e4567-e89b-12d3-a456-426614174000",
|
|
1417
1546
|
},
|
|
1418
|
-
http: {
|
|
1419
|
-
example:
|
|
1420
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "boot_volume": {\n "size": 100,\n "type": "abs"\n },\n "instance_type": "n1-standard-8",\n "name": "my-vm",\n "os_image_name": "ubuntu-noble-2025-10-01",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "public_ip_enabled": true,\n "region": "us-sva-2",\n "ssh_key": {\n "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2"\n },\n "subnet_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1421
|
-
},
|
|
1422
1547
|
},
|
|
1423
1548
|
},
|
|
1424
1549
|
{
|
|
@@ -1444,6 +1569,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1444
1569
|
example:
|
|
1445
1570
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.compute.vms.availability.update('vm_id');",
|
|
1446
1571
|
},
|
|
1572
|
+
http: {
|
|
1573
|
+
example:
|
|
1574
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "instance_type": "n1-standard-8",\n "name": "my-vm",\n "public_ip_enabled": true,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1575
|
+
},
|
|
1447
1576
|
go: {
|
|
1448
1577
|
method: 'client.Compute.VMs.Availability.Update',
|
|
1449
1578
|
example:
|
|
@@ -1453,10 +1582,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1453
1582
|
method: 'availability update',
|
|
1454
1583
|
example: "nirvana compute:vms:availability update \\\n --api-key 'My API Key' \\\n --vm-id vm_id",
|
|
1455
1584
|
},
|
|
1456
|
-
http: {
|
|
1457
|
-
example:
|
|
1458
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "instance_type": "n1-standard-8",\n "name": "my-vm",\n "public_ip_enabled": true,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1459
|
-
},
|
|
1460
1585
|
},
|
|
1461
1586
|
},
|
|
1462
1587
|
{
|
|
@@ -1478,6 +1603,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1478
1603
|
example:
|
|
1479
1604
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const volume of client.compute.vms.volumes.list('vm_id')) {\n console.log(volume.id);\n}",
|
|
1480
1605
|
},
|
|
1606
|
+
http: {
|
|
1607
|
+
example:
|
|
1608
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID/volumes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1609
|
+
},
|
|
1481
1610
|
go: {
|
|
1482
1611
|
method: 'client.Compute.VMs.Volumes.List',
|
|
1483
1612
|
example:
|
|
@@ -1487,10 +1616,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1487
1616
|
method: 'volumes list',
|
|
1488
1617
|
example: "nirvana compute:vms:volumes list \\\n --api-key 'My API Key' \\\n --vm-id vm_id",
|
|
1489
1618
|
},
|
|
1490
|
-
http: {
|
|
1491
|
-
example:
|
|
1492
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms/$VM_ID/volumes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1493
|
-
},
|
|
1494
1619
|
},
|
|
1495
1620
|
},
|
|
1496
1621
|
{
|
|
@@ -1511,6 +1636,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1511
1636
|
example:
|
|
1512
1637
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const osImage of client.compute.vms.osImages.list()) {\n console.log(osImage.created_at);\n}",
|
|
1513
1638
|
},
|
|
1639
|
+
http: {
|
|
1640
|
+
example:
|
|
1641
|
+
'curl https://api.nirvanalabs.io/v1/compute/vms/os_images \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1642
|
+
},
|
|
1514
1643
|
go: {
|
|
1515
1644
|
method: 'client.Compute.VMs.OSImages.List',
|
|
1516
1645
|
example:
|
|
@@ -1520,10 +1649,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1520
1649
|
method: 'os_images list',
|
|
1521
1650
|
example: "nirvana compute:vms:os-images list \\\n --api-key 'My API Key'",
|
|
1522
1651
|
},
|
|
1523
|
-
http: {
|
|
1524
|
-
example:
|
|
1525
|
-
'curl https://api.nirvanalabs.io/v1/compute/vms/os_images \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1526
|
-
},
|
|
1527
1652
|
},
|
|
1528
1653
|
},
|
|
1529
1654
|
{
|
|
@@ -1553,6 +1678,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1553
1678
|
example:
|
|
1554
1679
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.volumes.create({\n name: 'my-data-volume',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n region: 'us-sva-2',\n size: 100,\n type: 'abs',\n});\n\nconsole.log(operation.id);",
|
|
1555
1680
|
},
|
|
1681
|
+
http: {
|
|
1682
|
+
example:
|
|
1683
|
+
'curl https://api.nirvanalabs.io/v1/compute/volumes \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-data-volume",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "size": 100,\n "type": "abs",\n "tags": [\n "production",\n "ethereum"\n ],\n "vm_id": "123e4567-e89b-12d3-a456-426614174000"\n }\'',
|
|
1684
|
+
},
|
|
1556
1685
|
go: {
|
|
1557
1686
|
method: 'client.Compute.Volumes.New',
|
|
1558
1687
|
example:
|
|
@@ -1563,10 +1692,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1563
1692
|
example:
|
|
1564
1693
|
"nirvana compute:volumes create \\\n --api-key 'My API Key' \\\n --name my-data-volume \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --region us-sva-2 \\\n --size 100 \\\n --type abs",
|
|
1565
1694
|
},
|
|
1566
|
-
http: {
|
|
1567
|
-
example:
|
|
1568
|
-
'curl https://api.nirvanalabs.io/v1/compute/volumes \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-data-volume",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "size": 100,\n "type": "abs",\n "tags": [\n "production",\n "ethereum"\n ],\n "vm_id": "123e4567-e89b-12d3-a456-426614174000"\n }\'',
|
|
1569
|
-
},
|
|
1570
1695
|
},
|
|
1571
1696
|
},
|
|
1572
1697
|
{
|
|
@@ -1588,6 +1713,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1588
1713
|
example:
|
|
1589
1714
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst volume = await client.compute.volumes.get('volume_id');\n\nconsole.log(volume.id);",
|
|
1590
1715
|
},
|
|
1716
|
+
http: {
|
|
1717
|
+
example:
|
|
1718
|
+
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1719
|
+
},
|
|
1591
1720
|
go: {
|
|
1592
1721
|
method: 'client.Compute.Volumes.Get',
|
|
1593
1722
|
example:
|
|
@@ -1597,10 +1726,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1597
1726
|
method: 'volumes get',
|
|
1598
1727
|
example: "nirvana compute:volumes get \\\n --api-key 'My API Key' \\\n --volume-id volume_id",
|
|
1599
1728
|
},
|
|
1600
|
-
http: {
|
|
1601
|
-
example:
|
|
1602
|
-
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1603
|
-
},
|
|
1604
1729
|
},
|
|
1605
1730
|
},
|
|
1606
1731
|
{
|
|
@@ -1622,6 +1747,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1622
1747
|
example:
|
|
1623
1748
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.volumes.update('volume_id');\n\nconsole.log(operation.id);",
|
|
1624
1749
|
},
|
|
1750
|
+
http: {
|
|
1751
|
+
example:
|
|
1752
|
+
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-data-volume",\n "size": 100,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1753
|
+
},
|
|
1625
1754
|
go: {
|
|
1626
1755
|
method: 'client.Compute.Volumes.Update',
|
|
1627
1756
|
example:
|
|
@@ -1631,10 +1760,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1631
1760
|
method: 'volumes update',
|
|
1632
1761
|
example: "nirvana compute:volumes update \\\n --api-key 'My API Key' \\\n --volume-id volume_id",
|
|
1633
1762
|
},
|
|
1634
|
-
http: {
|
|
1635
|
-
example:
|
|
1636
|
-
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-data-volume",\n "size": 100,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1637
|
-
},
|
|
1638
1763
|
},
|
|
1639
1764
|
},
|
|
1640
1765
|
{
|
|
@@ -1656,6 +1781,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1656
1781
|
example:
|
|
1657
1782
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.volumes.delete('volume_id');\n\nconsole.log(operation.id);",
|
|
1658
1783
|
},
|
|
1784
|
+
http: {
|
|
1785
|
+
example:
|
|
1786
|
+
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1787
|
+
},
|
|
1659
1788
|
go: {
|
|
1660
1789
|
method: 'client.Compute.Volumes.Delete',
|
|
1661
1790
|
example:
|
|
@@ -1665,10 +1794,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1665
1794
|
method: 'volumes delete',
|
|
1666
1795
|
example: "nirvana compute:volumes delete \\\n --api-key 'My API Key' \\\n --volume-id volume_id",
|
|
1667
1796
|
},
|
|
1668
|
-
http: {
|
|
1669
|
-
example:
|
|
1670
|
-
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1671
|
-
},
|
|
1672
1797
|
},
|
|
1673
1798
|
},
|
|
1674
1799
|
{
|
|
@@ -1690,6 +1815,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1690
1815
|
example:
|
|
1691
1816
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const volume of client.compute.volumes.list({ project_id: 'project_id' })) {\n console.log(volume.id);\n}",
|
|
1692
1817
|
},
|
|
1818
|
+
http: {
|
|
1819
|
+
example:
|
|
1820
|
+
'curl https://api.nirvanalabs.io/v1/compute/volumes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1821
|
+
},
|
|
1693
1822
|
go: {
|
|
1694
1823
|
method: 'client.Compute.Volumes.List',
|
|
1695
1824
|
example:
|
|
@@ -1699,10 +1828,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1699
1828
|
method: 'volumes list',
|
|
1700
1829
|
example: "nirvana compute:volumes list \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
1701
1830
|
},
|
|
1702
|
-
http: {
|
|
1703
|
-
example:
|
|
1704
|
-
'curl https://api.nirvanalabs.io/v1/compute/volumes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1705
|
-
},
|
|
1706
1831
|
},
|
|
1707
1832
|
},
|
|
1708
1833
|
{
|
|
@@ -1724,6 +1849,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1724
1849
|
example:
|
|
1725
1850
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.volumes.attach('volume_id', {\n vm_id: '123e4567-e89b-12d3-a456-426614174000',\n});\n\nconsole.log(operation.id);",
|
|
1726
1851
|
},
|
|
1852
|
+
http: {
|
|
1853
|
+
example:
|
|
1854
|
+
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID/attach \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "vm_id": "123e4567-e89b-12d3-a456-426614174000"\n }\'',
|
|
1855
|
+
},
|
|
1727
1856
|
go: {
|
|
1728
1857
|
method: 'client.Compute.Volumes.Attach',
|
|
1729
1858
|
example:
|
|
@@ -1734,10 +1863,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1734
1863
|
example:
|
|
1735
1864
|
"nirvana compute:volumes attach \\\n --api-key 'My API Key' \\\n --volume-id volume_id \\\n --vm-id 123e4567-e89b-12d3-a456-426614174000",
|
|
1736
1865
|
},
|
|
1737
|
-
http: {
|
|
1738
|
-
example:
|
|
1739
|
-
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID/attach \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "vm_id": "123e4567-e89b-12d3-a456-426614174000"\n }\'',
|
|
1740
|
-
},
|
|
1741
1866
|
},
|
|
1742
1867
|
},
|
|
1743
1868
|
{
|
|
@@ -1759,6 +1884,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1759
1884
|
example:
|
|
1760
1885
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.volumes.detach('volume_id');\n\nconsole.log(operation.id);",
|
|
1761
1886
|
},
|
|
1887
|
+
http: {
|
|
1888
|
+
example:
|
|
1889
|
+
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID/detach \\\n -X POST \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1890
|
+
},
|
|
1762
1891
|
go: {
|
|
1763
1892
|
method: 'client.Compute.Volumes.Detach',
|
|
1764
1893
|
example:
|
|
@@ -1768,10 +1897,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1768
1897
|
method: 'volumes detach',
|
|
1769
1898
|
example: "nirvana compute:volumes detach \\\n --api-key 'My API Key' \\\n --volume-id volume_id",
|
|
1770
1899
|
},
|
|
1771
|
-
http: {
|
|
1772
|
-
example:
|
|
1773
|
-
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID/detach \\\n -X POST \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1774
|
-
},
|
|
1775
1900
|
},
|
|
1776
1901
|
},
|
|
1777
1902
|
{
|
|
@@ -1799,6 +1924,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1799
1924
|
example:
|
|
1800
1925
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.compute.volumes.availability.create({\n name: 'my-data-volume',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n region: 'us-sva-2',\n size: 100,\n type: 'abs',\n});",
|
|
1801
1926
|
},
|
|
1927
|
+
http: {
|
|
1928
|
+
example:
|
|
1929
|
+
'curl https://api.nirvanalabs.io/v1/compute/volumes/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-data-volume",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "size": 100,\n "type": "abs",\n "tags": [\n "production",\n "ethereum"\n ],\n "vm_id": "123e4567-e89b-12d3-a456-426614174000"\n }\'',
|
|
1930
|
+
},
|
|
1802
1931
|
go: {
|
|
1803
1932
|
method: 'client.Compute.Volumes.Availability.New',
|
|
1804
1933
|
example:
|
|
@@ -1809,10 +1938,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1809
1938
|
example:
|
|
1810
1939
|
"nirvana compute:volumes:availability create \\\n --api-key 'My API Key' \\\n --name my-data-volume \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --region us-sva-2 \\\n --size 100 \\\n --type abs",
|
|
1811
1940
|
},
|
|
1812
|
-
http: {
|
|
1813
|
-
example:
|
|
1814
|
-
'curl https://api.nirvanalabs.io/v1/compute/volumes/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-data-volume",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "size": 100,\n "type": "abs",\n "tags": [\n "production",\n "ethereum"\n ],\n "vm_id": "123e4567-e89b-12d3-a456-426614174000"\n }\'',
|
|
1815
|
-
},
|
|
1816
1941
|
},
|
|
1817
1942
|
},
|
|
1818
1943
|
{
|
|
@@ -1832,6 +1957,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1832
1957
|
example:
|
|
1833
1958
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.compute.volumes.availability.update('volume_id');",
|
|
1834
1959
|
},
|
|
1960
|
+
http: {
|
|
1961
|
+
example:
|
|
1962
|
+
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-data-volume",\n "size": 100,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1963
|
+
},
|
|
1835
1964
|
go: {
|
|
1836
1965
|
method: 'client.Compute.Volumes.Availability.Update',
|
|
1837
1966
|
example:
|
|
@@ -1842,10 +1971,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1842
1971
|
example:
|
|
1843
1972
|
"nirvana compute:volumes:availability update \\\n --api-key 'My API Key' \\\n --volume-id volume_id",
|
|
1844
1973
|
},
|
|
1845
|
-
http: {
|
|
1846
|
-
example:
|
|
1847
|
-
'curl https://api.nirvanalabs.io/v1/compute/volumes/$VOLUME_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-data-volume",\n "size": 100,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1848
|
-
},
|
|
1849
1974
|
},
|
|
1850
1975
|
},
|
|
1851
1976
|
{
|
|
@@ -1873,6 +1998,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1873
1998
|
example:
|
|
1874
1999
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.networking.vpcs.create({\n name: 'my-vpc',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n region: 'us-sva-2',\n subnet_name: 'my-subnet',\n});\n\nconsole.log(operation.id);",
|
|
1875
2000
|
},
|
|
2001
|
+
http: {
|
|
2002
|
+
example:
|
|
2003
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-vpc",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "subnet_name": "my-subnet",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2004
|
+
},
|
|
1876
2005
|
go: {
|
|
1877
2006
|
method: 'client.Networking.VPCs.New',
|
|
1878
2007
|
example:
|
|
@@ -1883,10 +2012,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1883
2012
|
example:
|
|
1884
2013
|
"nirvana networking:vpcs create \\\n --api-key 'My API Key' \\\n --name my-vpc \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --region us-sva-2 \\\n --subnet-name my-subnet",
|
|
1885
2014
|
},
|
|
1886
|
-
http: {
|
|
1887
|
-
example:
|
|
1888
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-vpc",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "subnet_name": "my-subnet",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1889
|
-
},
|
|
1890
2015
|
},
|
|
1891
2016
|
},
|
|
1892
2017
|
{
|
|
@@ -1908,6 +2033,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1908
2033
|
example:
|
|
1909
2034
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst vpc = await client.networking.vpcs.get('vpc_id');\n\nconsole.log(vpc.id);",
|
|
1910
2035
|
},
|
|
2036
|
+
http: {
|
|
2037
|
+
example:
|
|
2038
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2039
|
+
},
|
|
1911
2040
|
go: {
|
|
1912
2041
|
method: 'client.Networking.VPCs.Get',
|
|
1913
2042
|
example:
|
|
@@ -1917,10 +2046,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1917
2046
|
method: 'vpcs get',
|
|
1918
2047
|
example: "nirvana networking:vpcs get \\\n --api-key 'My API Key' \\\n --vpc-id vpc_id",
|
|
1919
2048
|
},
|
|
1920
|
-
http: {
|
|
1921
|
-
example:
|
|
1922
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1923
|
-
},
|
|
1924
2049
|
},
|
|
1925
2050
|
},
|
|
1926
2051
|
{
|
|
@@ -1942,6 +2067,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1942
2067
|
example:
|
|
1943
2068
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.networking.vpcs.update('vpc_id');\n\nconsole.log(operation.id);",
|
|
1944
2069
|
},
|
|
2070
|
+
http: {
|
|
2071
|
+
example:
|
|
2072
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-vpc",\n "subnet_name": "my-subnet",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2073
|
+
},
|
|
1945
2074
|
go: {
|
|
1946
2075
|
method: 'client.Networking.VPCs.Update',
|
|
1947
2076
|
example:
|
|
@@ -1951,10 +2080,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1951
2080
|
method: 'vpcs update',
|
|
1952
2081
|
example: "nirvana networking:vpcs update \\\n --api-key 'My API Key' \\\n --vpc-id vpc_id",
|
|
1953
2082
|
},
|
|
1954
|
-
http: {
|
|
1955
|
-
example:
|
|
1956
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-vpc",\n "subnet_name": "my-subnet",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
1957
|
-
},
|
|
1958
2083
|
},
|
|
1959
2084
|
},
|
|
1960
2085
|
{
|
|
@@ -1976,6 +2101,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1976
2101
|
example:
|
|
1977
2102
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.networking.vpcs.delete('vpc_id');\n\nconsole.log(operation.id);",
|
|
1978
2103
|
},
|
|
2104
|
+
http: {
|
|
2105
|
+
example:
|
|
2106
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2107
|
+
},
|
|
1979
2108
|
go: {
|
|
1980
2109
|
method: 'client.Networking.VPCs.Delete',
|
|
1981
2110
|
example:
|
|
@@ -1985,10 +2114,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
1985
2114
|
method: 'vpcs delete',
|
|
1986
2115
|
example: "nirvana networking:vpcs delete \\\n --api-key 'My API Key' \\\n --vpc-id vpc_id",
|
|
1987
2116
|
},
|
|
1988
|
-
http: {
|
|
1989
|
-
example:
|
|
1990
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
1991
|
-
},
|
|
1992
2117
|
},
|
|
1993
2118
|
},
|
|
1994
2119
|
{
|
|
@@ -2010,6 +2135,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2010
2135
|
example:
|
|
2011
2136
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const vpc of client.networking.vpcs.list({ project_id: 'project_id' })) {\n console.log(vpc.id);\n}",
|
|
2012
2137
|
},
|
|
2138
|
+
http: {
|
|
2139
|
+
example:
|
|
2140
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2141
|
+
},
|
|
2013
2142
|
go: {
|
|
2014
2143
|
method: 'client.Networking.VPCs.List',
|
|
2015
2144
|
example:
|
|
@@ -2019,10 +2148,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2019
2148
|
method: 'vpcs list',
|
|
2020
2149
|
example: "nirvana networking:vpcs list \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
2021
2150
|
},
|
|
2022
|
-
http: {
|
|
2023
|
-
example:
|
|
2024
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2025
|
-
},
|
|
2026
2151
|
},
|
|
2027
2152
|
},
|
|
2028
2153
|
{
|
|
@@ -2048,6 +2173,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2048
2173
|
example:
|
|
2049
2174
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.networking.vpcs.availability.create({\n name: 'my-vpc',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n region: 'us-sva-2',\n subnet_name: 'my-subnet',\n});",
|
|
2050
2175
|
},
|
|
2176
|
+
http: {
|
|
2177
|
+
example:
|
|
2178
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-vpc",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "subnet_name": "my-subnet",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2179
|
+
},
|
|
2051
2180
|
go: {
|
|
2052
2181
|
method: 'client.Networking.VPCs.Availability.New',
|
|
2053
2182
|
example:
|
|
@@ -2058,10 +2187,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2058
2187
|
example:
|
|
2059
2188
|
"nirvana networking:vpcs:availability create \\\n --api-key 'My API Key' \\\n --name my-vpc \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --region us-sva-2 \\\n --subnet-name my-subnet",
|
|
2060
2189
|
},
|
|
2061
|
-
http: {
|
|
2062
|
-
example:
|
|
2063
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-vpc",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "subnet_name": "my-subnet",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2064
|
-
},
|
|
2065
2190
|
},
|
|
2066
2191
|
},
|
|
2067
2192
|
{
|
|
@@ -2081,6 +2206,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2081
2206
|
example:
|
|
2082
2207
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.networking.vpcs.availability.update('vpc_id');",
|
|
2083
2208
|
},
|
|
2209
|
+
http: {
|
|
2210
|
+
example:
|
|
2211
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-vpc",\n "subnet_name": "my-subnet",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2212
|
+
},
|
|
2084
2213
|
go: {
|
|
2085
2214
|
method: 'client.Networking.VPCs.Availability.Update',
|
|
2086
2215
|
example:
|
|
@@ -2091,10 +2220,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2091
2220
|
example:
|
|
2092
2221
|
"nirvana networking:vpcs:availability update \\\n --api-key 'My API Key' \\\n --vpc-id vpc_id",
|
|
2093
2222
|
},
|
|
2094
|
-
http: {
|
|
2095
|
-
example:
|
|
2096
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-vpc",\n "subnet_name": "my-subnet",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2097
|
-
},
|
|
2098
2223
|
},
|
|
2099
2224
|
},
|
|
2100
2225
|
{
|
|
@@ -2124,6 +2249,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2124
2249
|
example:
|
|
2125
2250
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.networking.firewallRules.create('vpc_id', {\n destination_address: '10.0.0.0/25',\n destination_ports: ['22', '80', '443'],\n name: 'my-firewall-rule',\n protocol: 'tcp',\n source_address: '0.0.0.0/0',\n});\n\nconsole.log(operation.id);",
|
|
2126
2251
|
},
|
|
2252
|
+
http: {
|
|
2253
|
+
example:
|
|
2254
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "destination_address": "10.0.0.0/25",\n "destination_ports": [\n "22",\n "80",\n "443"\n ],\n "name": "my-firewall-rule",\n "protocol": "tcp",\n "source_address": "0.0.0.0/0",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2255
|
+
},
|
|
2127
2256
|
go: {
|
|
2128
2257
|
method: 'client.Networking.FirewallRules.New',
|
|
2129
2258
|
example:
|
|
@@ -2134,10 +2263,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2134
2263
|
example:
|
|
2135
2264
|
"nirvana networking:firewall-rules create \\\n --api-key 'My API Key' \\\n --vpc-id vpc_id \\\n --destination-address 10.0.0.0/25 \\\n --destination-port \"'22'\" \\\n --destination-port \"'80'\" \\\n --destination-port \"'443'\" \\\n --name my-firewall-rule \\\n --protocol tcp \\\n --source-address 0.0.0.0/0",
|
|
2136
2265
|
},
|
|
2137
|
-
http: {
|
|
2138
|
-
example:
|
|
2139
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "destination_address": "10.0.0.0/25",\n "destination_ports": [\n "22",\n "80",\n "443"\n ],\n "name": "my-firewall-rule",\n "protocol": "tcp",\n "source_address": "0.0.0.0/0",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2140
|
-
},
|
|
2141
2266
|
},
|
|
2142
2267
|
},
|
|
2143
2268
|
{
|
|
@@ -2159,6 +2284,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2159
2284
|
example:
|
|
2160
2285
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst firewallRule = await client.networking.firewallRules.get('firewall_rule_id', {\n vpc_id: 'vpc_id',\n});\n\nconsole.log(firewallRule.id);",
|
|
2161
2286
|
},
|
|
2287
|
+
http: {
|
|
2288
|
+
example:
|
|
2289
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules/$FIREWALL_RULE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2290
|
+
},
|
|
2162
2291
|
go: {
|
|
2163
2292
|
method: 'client.Networking.FirewallRules.Get',
|
|
2164
2293
|
example:
|
|
@@ -2169,10 +2298,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2169
2298
|
example:
|
|
2170
2299
|
"nirvana networking:firewall-rules get \\\n --api-key 'My API Key' \\\n --vpc-id vpc_id \\\n --firewall-rule-id firewall_rule_id",
|
|
2171
2300
|
},
|
|
2172
|
-
http: {
|
|
2173
|
-
example:
|
|
2174
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules/$FIREWALL_RULE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2175
|
-
},
|
|
2176
2301
|
},
|
|
2177
2302
|
},
|
|
2178
2303
|
{
|
|
@@ -2203,6 +2328,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2203
2328
|
example:
|
|
2204
2329
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.networking.firewallRules.update('firewall_rule_id', {\n vpc_id: 'vpc_id',\n});\n\nconsole.log(operation.id);",
|
|
2205
2330
|
},
|
|
2331
|
+
http: {
|
|
2332
|
+
example:
|
|
2333
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules/$FIREWALL_RULE_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "destination_address": "10.0.0.0/25",\n "destination_ports": [\n "22",\n "80",\n "443"\n ],\n "name": "my-firewall-rule",\n "protocol": "tcp",\n "source_address": "0.0.0.0/0",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2334
|
+
},
|
|
2206
2335
|
go: {
|
|
2207
2336
|
method: 'client.Networking.FirewallRules.Update',
|
|
2208
2337
|
example:
|
|
@@ -2213,10 +2342,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2213
2342
|
example:
|
|
2214
2343
|
"nirvana networking:firewall-rules update \\\n --api-key 'My API Key' \\\n --vpc-id vpc_id \\\n --firewall-rule-id firewall_rule_id",
|
|
2215
2344
|
},
|
|
2216
|
-
http: {
|
|
2217
|
-
example:
|
|
2218
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules/$FIREWALL_RULE_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "destination_address": "10.0.0.0/25",\n "destination_ports": [\n "22",\n "80",\n "443"\n ],\n "name": "my-firewall-rule",\n "protocol": "tcp",\n "source_address": "0.0.0.0/0",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2219
|
-
},
|
|
2220
2345
|
},
|
|
2221
2346
|
},
|
|
2222
2347
|
{
|
|
@@ -2238,6 +2363,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2238
2363
|
example:
|
|
2239
2364
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.networking.firewallRules.delete('firewall_rule_id', {\n vpc_id: 'vpc_id',\n});\n\nconsole.log(operation.id);",
|
|
2240
2365
|
},
|
|
2366
|
+
http: {
|
|
2367
|
+
example:
|
|
2368
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules/$FIREWALL_RULE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2369
|
+
},
|
|
2241
2370
|
go: {
|
|
2242
2371
|
method: 'client.Networking.FirewallRules.Delete',
|
|
2243
2372
|
example:
|
|
@@ -2248,10 +2377,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2248
2377
|
example:
|
|
2249
2378
|
"nirvana networking:firewall-rules delete \\\n --api-key 'My API Key' \\\n --vpc-id vpc_id \\\n --firewall-rule-id firewall_rule_id",
|
|
2250
2379
|
},
|
|
2251
|
-
http: {
|
|
2252
|
-
example:
|
|
2253
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules/$FIREWALL_RULE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2254
|
-
},
|
|
2255
2380
|
},
|
|
2256
2381
|
},
|
|
2257
2382
|
{
|
|
@@ -2273,6 +2398,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2273
2398
|
example:
|
|
2274
2399
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const firewallRule of client.networking.firewallRules.list('vpc_id')) {\n console.log(firewallRule.id);\n}",
|
|
2275
2400
|
},
|
|
2401
|
+
http: {
|
|
2402
|
+
example:
|
|
2403
|
+
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2404
|
+
},
|
|
2276
2405
|
go: {
|
|
2277
2406
|
method: 'client.Networking.FirewallRules.List',
|
|
2278
2407
|
example:
|
|
@@ -2282,10 +2411,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2282
2411
|
method: 'firewall_rules list',
|
|
2283
2412
|
example: "nirvana networking:firewall-rules list \\\n --api-key 'My API Key' \\\n --vpc-id vpc_id",
|
|
2284
2413
|
},
|
|
2285
|
-
http: {
|
|
2286
|
-
example:
|
|
2287
|
-
'curl https://api.nirvanalabs.io/v1/networking/vpcs/$VPC_ID/firewall_rules \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2288
|
-
},
|
|
2289
2414
|
},
|
|
2290
2415
|
},
|
|
2291
2416
|
{
|
|
@@ -2316,6 +2441,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2316
2441
|
example:
|
|
2317
2442
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.networking.connect.connections.create({\n bandwidth_mbps: 50,\n cidrs: ['10.0.0.0/16'],\n name: 'my-connect-connection',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n provider_cidrs: ['172.16.0.0/16'],\n region: 'us-sva-2',\n});\n\nconsole.log(operation.id);",
|
|
2318
2443
|
},
|
|
2444
|
+
http: {
|
|
2445
|
+
example:
|
|
2446
|
+
'curl https://api.nirvanalabs.io/v1/networking/connect/connections \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "bandwidth_mbps": 50,\n "cidrs": [\n "10.0.0.0/16"\n ],\n "name": "my-connect-connection",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "provider_cidrs": [\n "172.16.0.0/16"\n ],\n "region": "us-sva-2",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2447
|
+
},
|
|
2319
2448
|
go: {
|
|
2320
2449
|
method: 'client.Networking.Connect.Connections.New',
|
|
2321
2450
|
example:
|
|
@@ -2326,10 +2455,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2326
2455
|
example:
|
|
2327
2456
|
"nirvana networking:connect:connections create \\\n --api-key 'My API Key' \\\n --bandwidth-mbps 50 \\\n --cidr 10.0.0.0/16 \\\n --name my-connect-connection \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --provider-cidr 172.16.0.0/16 \\\n --region us-sva-2",
|
|
2328
2457
|
},
|
|
2329
|
-
http: {
|
|
2330
|
-
example:
|
|
2331
|
-
'curl https://api.nirvanalabs.io/v1/networking/connect/connections \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "bandwidth_mbps": 50,\n "cidrs": [\n "10.0.0.0/16"\n ],\n "name": "my-connect-connection",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "provider_cidrs": [\n "172.16.0.0/16"\n ],\n "region": "us-sva-2",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2332
|
-
},
|
|
2333
2458
|
},
|
|
2334
2459
|
},
|
|
2335
2460
|
{
|
|
@@ -2351,6 +2476,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2351
2476
|
example:
|
|
2352
2477
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst connectConnection = await client.networking.connect.connections.get('connection_id');\n\nconsole.log(connectConnection.id);",
|
|
2353
2478
|
},
|
|
2479
|
+
http: {
|
|
2480
|
+
example:
|
|
2481
|
+
'curl https://api.nirvanalabs.io/v1/networking/connect/connections/$CONNECTION_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2482
|
+
},
|
|
2354
2483
|
go: {
|
|
2355
2484
|
method: 'client.Networking.Connect.Connections.Get',
|
|
2356
2485
|
example:
|
|
@@ -2361,10 +2490,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2361
2490
|
example:
|
|
2362
2491
|
"nirvana networking:connect:connections get \\\n --api-key 'My API Key' \\\n --connection-id connection_id",
|
|
2363
2492
|
},
|
|
2364
|
-
http: {
|
|
2365
|
-
example:
|
|
2366
|
-
'curl https://api.nirvanalabs.io/v1/networking/connect/connections/$CONNECTION_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2367
|
-
},
|
|
2368
2493
|
},
|
|
2369
2494
|
},
|
|
2370
2495
|
{
|
|
@@ -2386,6 +2511,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2386
2511
|
example:
|
|
2387
2512
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.networking.connect.connections.update('connection_id');\n\nconsole.log(operation.id);",
|
|
2388
2513
|
},
|
|
2514
|
+
http: {
|
|
2515
|
+
example:
|
|
2516
|
+
'curl https://api.nirvanalabs.io/v1/networking/connect/connections/$CONNECTION_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-connect-connection",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2517
|
+
},
|
|
2389
2518
|
go: {
|
|
2390
2519
|
method: 'client.Networking.Connect.Connections.Update',
|
|
2391
2520
|
example:
|
|
@@ -2396,10 +2525,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2396
2525
|
example:
|
|
2397
2526
|
"nirvana networking:connect:connections update \\\n --api-key 'My API Key' \\\n --connection-id connection_id",
|
|
2398
2527
|
},
|
|
2399
|
-
http: {
|
|
2400
|
-
example:
|
|
2401
|
-
'curl https://api.nirvanalabs.io/v1/networking/connect/connections/$CONNECTION_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-connect-connection",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2402
|
-
},
|
|
2403
2528
|
},
|
|
2404
2529
|
},
|
|
2405
2530
|
{
|
|
@@ -2421,6 +2546,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2421
2546
|
example:
|
|
2422
2547
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.networking.connect.connections.delete('connection_id');\n\nconsole.log(operation.id);",
|
|
2423
2548
|
},
|
|
2549
|
+
http: {
|
|
2550
|
+
example:
|
|
2551
|
+
'curl https://api.nirvanalabs.io/v1/networking/connect/connections/$CONNECTION_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2552
|
+
},
|
|
2424
2553
|
go: {
|
|
2425
2554
|
method: 'client.Networking.Connect.Connections.Delete',
|
|
2426
2555
|
example:
|
|
@@ -2431,10 +2560,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2431
2560
|
example:
|
|
2432
2561
|
"nirvana networking:connect:connections delete \\\n --api-key 'My API Key' \\\n --connection-id connection_id",
|
|
2433
2562
|
},
|
|
2434
|
-
http: {
|
|
2435
|
-
example:
|
|
2436
|
-
'curl https://api.nirvanalabs.io/v1/networking/connect/connections/$CONNECTION_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2437
|
-
},
|
|
2438
2563
|
},
|
|
2439
2564
|
},
|
|
2440
2565
|
{
|
|
@@ -2456,6 +2581,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2456
2581
|
example:
|
|
2457
2582
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const connectConnection of client.networking.connect.connections.list({\n project_id: 'project_id',\n})) {\n console.log(connectConnection.id);\n}",
|
|
2458
2583
|
},
|
|
2584
|
+
http: {
|
|
2585
|
+
example:
|
|
2586
|
+
'curl https://api.nirvanalabs.io/v1/networking/connect/connections \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2587
|
+
},
|
|
2459
2588
|
go: {
|
|
2460
2589
|
method: 'client.Networking.Connect.Connections.List',
|
|
2461
2590
|
example:
|
|
@@ -2466,10 +2595,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2466
2595
|
example:
|
|
2467
2596
|
"nirvana networking:connect:connections list \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
2468
2597
|
},
|
|
2469
|
-
http: {
|
|
2470
|
-
example:
|
|
2471
|
-
'curl https://api.nirvanalabs.io/v1/networking/connect/connections \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2472
|
-
},
|
|
2473
2598
|
},
|
|
2474
2599
|
},
|
|
2475
2600
|
{
|
|
@@ -2490,6 +2615,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2490
2615
|
example:
|
|
2491
2616
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const connectRoute of client.networking.connect.routes.list()) {\n console.log(connectRoute.provider);\n}",
|
|
2492
2617
|
},
|
|
2618
|
+
http: {
|
|
2619
|
+
example:
|
|
2620
|
+
'curl https://api.nirvanalabs.io/v1/networking/connect/routes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2621
|
+
},
|
|
2493
2622
|
go: {
|
|
2494
2623
|
method: 'client.Networking.Connect.Routes.List',
|
|
2495
2624
|
example:
|
|
@@ -2499,10 +2628,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2499
2628
|
method: 'routes list',
|
|
2500
2629
|
example: "nirvana networking:connect:routes list \\\n --api-key 'My API Key'",
|
|
2501
2630
|
},
|
|
2502
|
-
http: {
|
|
2503
|
-
example:
|
|
2504
|
-
'curl https://api.nirvanalabs.io/v1/networking/connect/routes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2505
|
-
},
|
|
2506
2631
|
},
|
|
2507
2632
|
},
|
|
2508
2633
|
{
|
|
@@ -2530,6 +2655,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2530
2655
|
example:
|
|
2531
2656
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst flex = await client.rpcNodes.flex.create({\n blockchain: 'ethereum',\n name: 'my-ethereum-node',\n network: 'mainnet',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n});\n\nconsole.log(flex.id);",
|
|
2532
2657
|
},
|
|
2658
|
+
http: {
|
|
2659
|
+
example:
|
|
2660
|
+
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "blockchain": "ethereum",\n "name": "my-ethereum-node",\n "network": "mainnet",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2661
|
+
},
|
|
2533
2662
|
go: {
|
|
2534
2663
|
method: 'client.RPCNodes.Flex.New',
|
|
2535
2664
|
example:
|
|
@@ -2540,10 +2669,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2540
2669
|
example:
|
|
2541
2670
|
"nirvana rpc-nodes:flex create \\\n --api-key 'My API Key' \\\n --blockchain ethereum \\\n --name my-ethereum-node \\\n --network mainnet \\\n --project-id 123e4567-e89b-12d3-a456-426614174000",
|
|
2542
2671
|
},
|
|
2543
|
-
http: {
|
|
2544
|
-
example:
|
|
2545
|
-
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "blockchain": "ethereum",\n "name": "my-ethereum-node",\n "network": "mainnet",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2546
|
-
},
|
|
2547
2672
|
},
|
|
2548
2673
|
},
|
|
2549
2674
|
{
|
|
@@ -2565,6 +2690,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2565
2690
|
example:
|
|
2566
2691
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst flex = await client.rpcNodes.flex.get('node_id');\n\nconsole.log(flex.id);",
|
|
2567
2692
|
},
|
|
2693
|
+
http: {
|
|
2694
|
+
example:
|
|
2695
|
+
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/$NODE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2696
|
+
},
|
|
2568
2697
|
go: {
|
|
2569
2698
|
method: 'client.RPCNodes.Flex.Get',
|
|
2570
2699
|
example:
|
|
@@ -2574,10 +2703,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2574
2703
|
method: 'flex get',
|
|
2575
2704
|
example: "nirvana rpc-nodes:flex get \\\n --api-key 'My API Key' \\\n --node-id node_id",
|
|
2576
2705
|
},
|
|
2577
|
-
http: {
|
|
2578
|
-
example:
|
|
2579
|
-
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/$NODE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2580
|
-
},
|
|
2581
2706
|
},
|
|
2582
2707
|
},
|
|
2583
2708
|
{
|
|
@@ -2599,6 +2724,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2599
2724
|
example:
|
|
2600
2725
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst flex = await client.rpcNodes.flex.update('node_id');\n\nconsole.log(flex.id);",
|
|
2601
2726
|
},
|
|
2727
|
+
http: {
|
|
2728
|
+
example:
|
|
2729
|
+
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/$NODE_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-ethereum-node",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2730
|
+
},
|
|
2602
2731
|
go: {
|
|
2603
2732
|
method: 'client.RPCNodes.Flex.Update',
|
|
2604
2733
|
example:
|
|
@@ -2608,10 +2737,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2608
2737
|
method: 'flex update',
|
|
2609
2738
|
example: "nirvana rpc-nodes:flex update \\\n --api-key 'My API Key' \\\n --node-id node_id",
|
|
2610
2739
|
},
|
|
2611
|
-
http: {
|
|
2612
|
-
example:
|
|
2613
|
-
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/$NODE_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-ethereum-node",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2614
|
-
},
|
|
2615
2740
|
},
|
|
2616
2741
|
},
|
|
2617
2742
|
{
|
|
@@ -2631,6 +2756,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2631
2756
|
example:
|
|
2632
2757
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.rpcNodes.flex.delete('node_id');",
|
|
2633
2758
|
},
|
|
2759
|
+
http: {
|
|
2760
|
+
example:
|
|
2761
|
+
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/$NODE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2762
|
+
},
|
|
2634
2763
|
go: {
|
|
2635
2764
|
method: 'client.RPCNodes.Flex.Delete',
|
|
2636
2765
|
example:
|
|
@@ -2640,10 +2769,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2640
2769
|
method: 'flex delete',
|
|
2641
2770
|
example: "nirvana rpc-nodes:flex delete \\\n --api-key 'My API Key' \\\n --node-id node_id",
|
|
2642
2771
|
},
|
|
2643
|
-
http: {
|
|
2644
|
-
example:
|
|
2645
|
-
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/$NODE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2646
|
-
},
|
|
2647
2772
|
},
|
|
2648
2773
|
},
|
|
2649
2774
|
{
|
|
@@ -2665,6 +2790,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2665
2790
|
example:
|
|
2666
2791
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const flex of client.rpcNodes.flex.list({ project_id: 'project_id' })) {\n console.log(flex.id);\n}",
|
|
2667
2792
|
},
|
|
2793
|
+
http: {
|
|
2794
|
+
example:
|
|
2795
|
+
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2796
|
+
},
|
|
2668
2797
|
go: {
|
|
2669
2798
|
method: 'client.RPCNodes.Flex.List',
|
|
2670
2799
|
example:
|
|
@@ -2674,10 +2803,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2674
2803
|
method: 'flex list',
|
|
2675
2804
|
example: "nirvana rpc-nodes:flex list \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
2676
2805
|
},
|
|
2677
|
-
http: {
|
|
2678
|
-
example:
|
|
2679
|
-
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2680
|
-
},
|
|
2681
2806
|
},
|
|
2682
2807
|
},
|
|
2683
2808
|
{
|
|
@@ -2698,6 +2823,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2698
2823
|
example:
|
|
2699
2824
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const flexBlockchain of client.rpcNodes.flex.blockchains.list()) {\n console.log(flexBlockchain.blockchain);\n}",
|
|
2700
2825
|
},
|
|
2826
|
+
http: {
|
|
2827
|
+
example:
|
|
2828
|
+
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/blockchains \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2829
|
+
},
|
|
2701
2830
|
go: {
|
|
2702
2831
|
method: 'client.RPCNodes.Flex.Blockchains.List',
|
|
2703
2832
|
example:
|
|
@@ -2707,10 +2836,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2707
2836
|
method: 'blockchains list',
|
|
2708
2837
|
example: "nirvana rpc-nodes:flex:blockchains list \\\n --api-key 'My API Key'",
|
|
2709
2838
|
},
|
|
2710
|
-
http: {
|
|
2711
|
-
example:
|
|
2712
|
-
'curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/blockchains \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2713
|
-
},
|
|
2714
2839
|
},
|
|
2715
2840
|
},
|
|
2716
2841
|
{
|
|
@@ -2732,6 +2857,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2732
2857
|
example:
|
|
2733
2858
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst dedicated = await client.rpcNodes.dedicated.get('node_id');\n\nconsole.log(dedicated.id);",
|
|
2734
2859
|
},
|
|
2860
|
+
http: {
|
|
2861
|
+
example:
|
|
2862
|
+
'curl https://api.nirvanalabs.io/v1/rpc_nodes/dedicated/$NODE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2863
|
+
},
|
|
2735
2864
|
go: {
|
|
2736
2865
|
method: 'client.RPCNodes.Dedicated.Get',
|
|
2737
2866
|
example:
|
|
@@ -2741,10 +2870,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2741
2870
|
method: 'dedicated get',
|
|
2742
2871
|
example: "nirvana rpc-nodes:dedicated get \\\n --api-key 'My API Key' \\\n --node-id node_id",
|
|
2743
2872
|
},
|
|
2744
|
-
http: {
|
|
2745
|
-
example:
|
|
2746
|
-
'curl https://api.nirvanalabs.io/v1/rpc_nodes/dedicated/$NODE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2747
|
-
},
|
|
2748
2873
|
},
|
|
2749
2874
|
},
|
|
2750
2875
|
{
|
|
@@ -2766,6 +2891,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2766
2891
|
example:
|
|
2767
2892
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const dedicated of client.rpcNodes.dedicated.list({ project_id: 'project_id' })) {\n console.log(dedicated.id);\n}",
|
|
2768
2893
|
},
|
|
2894
|
+
http: {
|
|
2895
|
+
example:
|
|
2896
|
+
'curl https://api.nirvanalabs.io/v1/rpc_nodes/dedicated \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2897
|
+
},
|
|
2769
2898
|
go: {
|
|
2770
2899
|
method: 'client.RPCNodes.Dedicated.List',
|
|
2771
2900
|
example:
|
|
@@ -2776,10 +2905,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2776
2905
|
example:
|
|
2777
2906
|
"nirvana rpc-nodes:dedicated list \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
2778
2907
|
},
|
|
2779
|
-
http: {
|
|
2780
|
-
example:
|
|
2781
|
-
'curl https://api.nirvanalabs.io/v1/rpc_nodes/dedicated \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2782
|
-
},
|
|
2783
2908
|
},
|
|
2784
2909
|
},
|
|
2785
2910
|
{
|
|
@@ -2800,6 +2925,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2800
2925
|
example:
|
|
2801
2926
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const dedicatedBlockchain of client.rpcNodes.dedicated.blockchains.list()) {\n console.log(dedicatedBlockchain.blockchain);\n}",
|
|
2802
2927
|
},
|
|
2928
|
+
http: {
|
|
2929
|
+
example:
|
|
2930
|
+
'curl https://api.nirvanalabs.io/v1/rpc_nodes/dedicated/blockchains \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2931
|
+
},
|
|
2803
2932
|
go: {
|
|
2804
2933
|
method: 'client.RPCNodes.Dedicated.Blockchains.List',
|
|
2805
2934
|
example:
|
|
@@ -2809,10 +2938,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2809
2938
|
method: 'blockchains list',
|
|
2810
2939
|
example: "nirvana rpc-nodes:dedicated:blockchains list \\\n --api-key 'My API Key'",
|
|
2811
2940
|
},
|
|
2812
|
-
http: {
|
|
2813
|
-
example:
|
|
2814
|
-
'curl https://api.nirvanalabs.io/v1/rpc_nodes/dedicated/blockchains \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2815
|
-
},
|
|
2816
2941
|
},
|
|
2817
2942
|
},
|
|
2818
2943
|
{
|
|
@@ -2833,6 +2958,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2833
2958
|
example:
|
|
2834
2959
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const kubernetesVersion of client.nks.kubernetesVersions.list()) {\n console.log(kubernetesVersion.created_at);\n}",
|
|
2835
2960
|
},
|
|
2961
|
+
http: {
|
|
2962
|
+
example:
|
|
2963
|
+
'curl https://api.nirvanalabs.io/v1/nks/kubernetes_versions \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2964
|
+
},
|
|
2836
2965
|
go: {
|
|
2837
2966
|
method: 'client.NKS.KubernetesVersions.List',
|
|
2838
2967
|
example:
|
|
@@ -2842,10 +2971,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2842
2971
|
method: 'kubernetes_versions list',
|
|
2843
2972
|
example: "nirvana nks:kubernetes-versions list \\\n --api-key 'My API Key'",
|
|
2844
2973
|
},
|
|
2845
|
-
http: {
|
|
2846
|
-
example:
|
|
2847
|
-
'curl https://api.nirvanalabs.io/v1/nks/kubernetes_versions \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2848
|
-
},
|
|
2849
2974
|
},
|
|
2850
2975
|
},
|
|
2851
2976
|
{
|
|
@@ -2875,6 +3000,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2875
3000
|
example:
|
|
2876
3001
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.nks.clusters.create({\n autoscaling: true,\n kubernetes_version: 'v1.34.4',\n name: 'my-cluster',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n region: 'us-sva-2',\n vpc_id: '123e4567-e89b-12d3-a456-426614174000',\n});\n\nconsole.log(operation.id);",
|
|
2877
3002
|
},
|
|
3003
|
+
http: {
|
|
3004
|
+
example:
|
|
3005
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "autoscaling": true,\n "kubernetes_version": "v1.34.4",\n "name": "my-cluster",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "vpc_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3006
|
+
},
|
|
2878
3007
|
go: {
|
|
2879
3008
|
method: 'client.NKS.Clusters.New',
|
|
2880
3009
|
example:
|
|
@@ -2885,10 +3014,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2885
3014
|
example:
|
|
2886
3015
|
"nirvana nks:clusters create \\\n --api-key 'My API Key' \\\n --autoscaling \\\n --kubernetes-version v1.34.4 \\\n --name my-cluster \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --region us-sva-2 \\\n --vpc-id 123e4567-e89b-12d3-a456-426614174000",
|
|
2887
3016
|
},
|
|
2888
|
-
http: {
|
|
2889
|
-
example:
|
|
2890
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "autoscaling": true,\n "kubernetes_version": "v1.34.4",\n "name": "my-cluster",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "vpc_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2891
|
-
},
|
|
2892
3017
|
},
|
|
2893
3018
|
},
|
|
2894
3019
|
{
|
|
@@ -2910,6 +3035,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2910
3035
|
example:
|
|
2911
3036
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst nksCluster = await client.nks.clusters.get('cluster_id');\n\nconsole.log(nksCluster.id);",
|
|
2912
3037
|
},
|
|
3038
|
+
http: {
|
|
3039
|
+
example:
|
|
3040
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3041
|
+
},
|
|
2913
3042
|
go: {
|
|
2914
3043
|
method: 'client.NKS.Clusters.Get',
|
|
2915
3044
|
example:
|
|
@@ -2919,10 +3048,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2919
3048
|
method: 'clusters get',
|
|
2920
3049
|
example: "nirvana nks:clusters get \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id",
|
|
2921
3050
|
},
|
|
2922
|
-
http: {
|
|
2923
|
-
example:
|
|
2924
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2925
|
-
},
|
|
2926
3051
|
},
|
|
2927
3052
|
},
|
|
2928
3053
|
{
|
|
@@ -2944,6 +3069,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2944
3069
|
example:
|
|
2945
3070
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.nks.clusters.update('cluster_id');\n\nconsole.log(operation.id);",
|
|
2946
3071
|
},
|
|
3072
|
+
http: {
|
|
3073
|
+
example:
|
|
3074
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "autoscaling": true,\n "name": "my-cluster",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3075
|
+
},
|
|
2947
3076
|
go: {
|
|
2948
3077
|
method: 'client.NKS.Clusters.Update',
|
|
2949
3078
|
example:
|
|
@@ -2953,10 +3082,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2953
3082
|
method: 'clusters update',
|
|
2954
3083
|
example: "nirvana nks:clusters update \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id",
|
|
2955
3084
|
},
|
|
2956
|
-
http: {
|
|
2957
|
-
example:
|
|
2958
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "autoscaling": true,\n "name": "my-cluster",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
2959
|
-
},
|
|
2960
3085
|
},
|
|
2961
3086
|
},
|
|
2962
3087
|
{
|
|
@@ -2978,6 +3103,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2978
3103
|
example:
|
|
2979
3104
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.nks.clusters.delete('cluster_id');\n\nconsole.log(operation.id);",
|
|
2980
3105
|
},
|
|
3106
|
+
http: {
|
|
3107
|
+
example:
|
|
3108
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3109
|
+
},
|
|
2981
3110
|
go: {
|
|
2982
3111
|
method: 'client.NKS.Clusters.Delete',
|
|
2983
3112
|
example:
|
|
@@ -2987,10 +3116,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
2987
3116
|
method: 'clusters delete',
|
|
2988
3117
|
example: "nirvana nks:clusters delete \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id",
|
|
2989
3118
|
},
|
|
2990
|
-
http: {
|
|
2991
|
-
example:
|
|
2992
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
2993
|
-
},
|
|
2994
3119
|
},
|
|
2995
3120
|
},
|
|
2996
3121
|
{
|
|
@@ -3012,6 +3137,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3012
3137
|
example:
|
|
3013
3138
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nksCluster of client.nks.clusters.list({ project_id: 'project_id' })) {\n console.log(nksCluster.id);\n}",
|
|
3014
3139
|
},
|
|
3140
|
+
http: {
|
|
3141
|
+
example:
|
|
3142
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3143
|
+
},
|
|
3015
3144
|
go: {
|
|
3016
3145
|
method: 'client.NKS.Clusters.List',
|
|
3017
3146
|
example:
|
|
@@ -3021,10 +3150,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3021
3150
|
method: 'clusters list',
|
|
3022
3151
|
example: "nirvana nks:clusters list \\\n --api-key 'My API Key' \\\n --project-id project_id",
|
|
3023
3152
|
},
|
|
3024
|
-
http: {
|
|
3025
|
-
example:
|
|
3026
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3027
|
-
},
|
|
3028
3153
|
},
|
|
3029
3154
|
},
|
|
3030
3155
|
{
|
|
@@ -3052,6 +3177,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3052
3177
|
example:
|
|
3053
3178
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.nks.clusters.availability.create({\n autoscaling: true,\n kubernetes_version: 'v1.34.4',\n name: 'my-cluster',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n region: 'us-sva-2',\n vpc_id: '123e4567-e89b-12d3-a456-426614174000',\n});",
|
|
3054
3179
|
},
|
|
3180
|
+
http: {
|
|
3181
|
+
example:
|
|
3182
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "autoscaling": true,\n "kubernetes_version": "v1.34.4",\n "name": "my-cluster",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "vpc_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3183
|
+
},
|
|
3055
3184
|
go: {
|
|
3056
3185
|
method: 'client.NKS.Clusters.Availability.New',
|
|
3057
3186
|
example:
|
|
@@ -3062,10 +3191,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3062
3191
|
example:
|
|
3063
3192
|
"nirvana nks:clusters:availability create \\\n --api-key 'My API Key' \\\n --autoscaling \\\n --kubernetes-version v1.34.4 \\\n --name my-cluster \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --region us-sva-2 \\\n --vpc-id 123e4567-e89b-12d3-a456-426614174000",
|
|
3064
3193
|
},
|
|
3065
|
-
http: {
|
|
3066
|
-
example:
|
|
3067
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "autoscaling": true,\n "kubernetes_version": "v1.34.4",\n "name": "my-cluster",\n "project_id": "123e4567-e89b-12d3-a456-426614174000",\n "region": "us-sva-2",\n "vpc_id": "123e4567-e89b-12d3-a456-426614174000",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3068
|
-
},
|
|
3069
3194
|
},
|
|
3070
3195
|
},
|
|
3071
3196
|
{
|
|
@@ -3085,6 +3210,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3085
3210
|
example:
|
|
3086
3211
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.nks.clusters.availability.update('cluster_id');",
|
|
3087
3212
|
},
|
|
3213
|
+
http: {
|
|
3214
|
+
example:
|
|
3215
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "autoscaling": true,\n "name": "my-cluster",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3216
|
+
},
|
|
3088
3217
|
go: {
|
|
3089
3218
|
method: 'client.NKS.Clusters.Availability.Update',
|
|
3090
3219
|
example:
|
|
@@ -3095,10 +3224,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3095
3224
|
example:
|
|
3096
3225
|
"nirvana nks:clusters:availability update \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id",
|
|
3097
3226
|
},
|
|
3098
|
-
http: {
|
|
3099
|
-
example:
|
|
3100
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "autoscaling": true,\n "name": "my-cluster",\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3101
|
-
},
|
|
3102
3227
|
},
|
|
3103
3228
|
},
|
|
3104
3229
|
{
|
|
@@ -3120,6 +3245,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3120
3245
|
example:
|
|
3121
3246
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst persistentVolumeClaim = await client.nks.clusters.persistentVolumeClaims.get(\n 'persistent_volume_claim_id',\n { cluster_id: 'cluster_id' },\n);\n\nconsole.log(persistentVolumeClaim.id);",
|
|
3122
3247
|
},
|
|
3248
|
+
http: {
|
|
3249
|
+
example:
|
|
3250
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/persistent_volume_claims/$PERSISTENT_VOLUME_CLAIM_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3251
|
+
},
|
|
3123
3252
|
go: {
|
|
3124
3253
|
method: 'client.NKS.Clusters.PersistentVolumeClaims.Get',
|
|
3125
3254
|
example:
|
|
@@ -3130,10 +3259,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3130
3259
|
example:
|
|
3131
3260
|
"nirvana nks:clusters:persistent-volume-claims get \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --persistent-volume-claim-id persistent_volume_claim_id",
|
|
3132
3261
|
},
|
|
3133
|
-
http: {
|
|
3134
|
-
example:
|
|
3135
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/persistent_volume_claims/$PERSISTENT_VOLUME_CLAIM_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3136
|
-
},
|
|
3137
3262
|
},
|
|
3138
3263
|
},
|
|
3139
3264
|
{
|
|
@@ -3155,6 +3280,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3155
3280
|
example:
|
|
3156
3281
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const persistentVolumeClaim of client.nks.clusters.persistentVolumeClaims.list(\n 'cluster_id',\n)) {\n console.log(persistentVolumeClaim.id);\n}",
|
|
3157
3282
|
},
|
|
3283
|
+
http: {
|
|
3284
|
+
example:
|
|
3285
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/persistent_volume_claims \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3286
|
+
},
|
|
3158
3287
|
go: {
|
|
3159
3288
|
method: 'client.NKS.Clusters.PersistentVolumeClaims.List',
|
|
3160
3289
|
example:
|
|
@@ -3165,10 +3294,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3165
3294
|
example:
|
|
3166
3295
|
"nirvana nks:clusters:persistent-volume-claims list \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id",
|
|
3167
3296
|
},
|
|
3168
|
-
http: {
|
|
3169
|
-
example:
|
|
3170
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/persistent_volume_claims \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3171
|
-
},
|
|
3172
3297
|
},
|
|
3173
3298
|
},
|
|
3174
3299
|
{
|
|
@@ -3189,6 +3314,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3189
3314
|
example:
|
|
3190
3315
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst kubeconfig = await client.nks.clusters.kubeconfig.get('cluster_id');\n\nconsole.log(kubeconfig.kubeconfig);",
|
|
3191
3316
|
},
|
|
3317
|
+
http: {
|
|
3318
|
+
example:
|
|
3319
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/kubeconfig \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3320
|
+
},
|
|
3192
3321
|
go: {
|
|
3193
3322
|
method: 'client.NKS.Clusters.Kubeconfig.Get',
|
|
3194
3323
|
example:
|
|
@@ -3199,10 +3328,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3199
3328
|
example:
|
|
3200
3329
|
"nirvana nks:clusters:kubeconfig get \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id",
|
|
3201
3330
|
},
|
|
3202
|
-
http: {
|
|
3203
|
-
example:
|
|
3204
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/kubeconfig \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3205
|
-
},
|
|
3206
3331
|
},
|
|
3207
3332
|
},
|
|
3208
3333
|
{
|
|
@@ -3224,6 +3349,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3224
3349
|
example:
|
|
3225
3350
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst nksController = await client.nks.clusters.controllers.get('controller_id', {\n cluster_id: 'cluster_id',\n});\n\nconsole.log(nksController.id);",
|
|
3226
3351
|
},
|
|
3352
|
+
http: {
|
|
3353
|
+
example:
|
|
3354
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/controllers/$CONTROLLER_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3355
|
+
},
|
|
3227
3356
|
go: {
|
|
3228
3357
|
method: 'client.NKS.Clusters.Controllers.Get',
|
|
3229
3358
|
example:
|
|
@@ -3234,10 +3363,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3234
3363
|
example:
|
|
3235
3364
|
"nirvana nks:clusters:controllers get \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --controller-id controller_id",
|
|
3236
3365
|
},
|
|
3237
|
-
http: {
|
|
3238
|
-
example:
|
|
3239
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/controllers/$CONTROLLER_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3240
|
-
},
|
|
3241
3366
|
},
|
|
3242
3367
|
},
|
|
3243
3368
|
{
|
|
@@ -3259,6 +3384,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3259
3384
|
example:
|
|
3260
3385
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nksController of client.nks.clusters.controllers.list('cluster_id')) {\n console.log(nksController.id);\n}",
|
|
3261
3386
|
},
|
|
3387
|
+
http: {
|
|
3388
|
+
example:
|
|
3389
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/controllers \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3390
|
+
},
|
|
3262
3391
|
go: {
|
|
3263
3392
|
method: 'client.NKS.Clusters.Controllers.List',
|
|
3264
3393
|
example:
|
|
@@ -3269,10 +3398,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3269
3398
|
example:
|
|
3270
3399
|
"nirvana nks:clusters:controllers list \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id",
|
|
3271
3400
|
},
|
|
3272
|
-
http: {
|
|
3273
|
-
example:
|
|
3274
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/controllers \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3275
|
-
},
|
|
3276
3401
|
},
|
|
3277
3402
|
},
|
|
3278
3403
|
{
|
|
@@ -3294,6 +3419,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3294
3419
|
example:
|
|
3295
3420
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst nksControllerVolume = await client.nks.clusters.controllers.volumes.get('volume_id', {\n cluster_id: 'cluster_id',\n controller_id: 'controller_id',\n});\n\nconsole.log(nksControllerVolume.id);",
|
|
3296
3421
|
},
|
|
3422
|
+
http: {
|
|
3423
|
+
example:
|
|
3424
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/controllers/$CONTROLLER_ID/volumes/$VOLUME_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3425
|
+
},
|
|
3297
3426
|
go: {
|
|
3298
3427
|
method: 'client.NKS.Clusters.Controllers.Volumes.Get',
|
|
3299
3428
|
example:
|
|
@@ -3304,10 +3433,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3304
3433
|
example:
|
|
3305
3434
|
"nirvana nks:clusters:controllers:volumes get \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --controller-id controller_id \\\n --volume-id volume_id",
|
|
3306
3435
|
},
|
|
3307
|
-
http: {
|
|
3308
|
-
example:
|
|
3309
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/controllers/$CONTROLLER_ID/volumes/$VOLUME_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3310
|
-
},
|
|
3311
3436
|
},
|
|
3312
3437
|
},
|
|
3313
3438
|
{
|
|
@@ -3329,6 +3454,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3329
3454
|
example:
|
|
3330
3455
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nksControllerVolume of client.nks.clusters.controllers.volumes.list(\n 'controller_id',\n { cluster_id: 'cluster_id' },\n)) {\n console.log(nksControllerVolume.id);\n}",
|
|
3331
3456
|
},
|
|
3457
|
+
http: {
|
|
3458
|
+
example:
|
|
3459
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/controllers/$CONTROLLER_ID/volumes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3460
|
+
},
|
|
3332
3461
|
go: {
|
|
3333
3462
|
method: 'client.NKS.Clusters.Controllers.Volumes.List',
|
|
3334
3463
|
example:
|
|
@@ -3339,10 +3468,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3339
3468
|
example:
|
|
3340
3469
|
"nirvana nks:clusters:controllers:volumes list \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --controller-id controller_id",
|
|
3341
3470
|
},
|
|
3342
|
-
http: {
|
|
3343
|
-
example:
|
|
3344
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/controllers/$CONTROLLER_ID/volumes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3345
|
-
},
|
|
3346
3471
|
},
|
|
3347
3472
|
},
|
|
3348
3473
|
{
|
|
@@ -3364,6 +3489,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3364
3489
|
example:
|
|
3365
3490
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst nksLoadBalancer = await client.nks.clusters.loadBalancers.get('load_balancer_id', {\n cluster_id: 'cluster_id',\n});\n\nconsole.log(nksLoadBalancer.id);",
|
|
3366
3491
|
},
|
|
3492
|
+
http: {
|
|
3493
|
+
example:
|
|
3494
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/load_balancers/$LOAD_BALANCER_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3495
|
+
},
|
|
3367
3496
|
go: {
|
|
3368
3497
|
method: 'client.NKS.Clusters.LoadBalancers.Get',
|
|
3369
3498
|
example:
|
|
@@ -3374,10 +3503,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3374
3503
|
example:
|
|
3375
3504
|
"nirvana nks:clusters:load-balancers get \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --load-balancer-id load_balancer_id",
|
|
3376
3505
|
},
|
|
3377
|
-
http: {
|
|
3378
|
-
example:
|
|
3379
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/load_balancers/$LOAD_BALANCER_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3380
|
-
},
|
|
3381
3506
|
},
|
|
3382
3507
|
},
|
|
3383
3508
|
{
|
|
@@ -3399,6 +3524,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3399
3524
|
example:
|
|
3400
3525
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.nks.clusters.loadBalancers.update('load_balancer_id', {\n cluster_id: 'cluster_id',\n public_ip_enabled: true,\n});\n\nconsole.log(operation.id);",
|
|
3401
3526
|
},
|
|
3527
|
+
http: {
|
|
3528
|
+
example:
|
|
3529
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/load_balancers/$LOAD_BALANCER_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "public_ip_enabled": true\n }\'',
|
|
3530
|
+
},
|
|
3402
3531
|
go: {
|
|
3403
3532
|
method: 'client.NKS.Clusters.LoadBalancers.Update',
|
|
3404
3533
|
example:
|
|
@@ -3409,10 +3538,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3409
3538
|
example:
|
|
3410
3539
|
"nirvana nks:clusters:load-balancers update \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --load-balancer-id load_balancer_id \\\n --public-ip-enabled",
|
|
3411
3540
|
},
|
|
3412
|
-
http: {
|
|
3413
|
-
example:
|
|
3414
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/load_balancers/$LOAD_BALANCER_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "public_ip_enabled": true\n }\'',
|
|
3415
|
-
},
|
|
3416
3541
|
},
|
|
3417
3542
|
},
|
|
3418
3543
|
{
|
|
@@ -3434,6 +3559,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3434
3559
|
example:
|
|
3435
3560
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nksLoadBalancer of client.nks.clusters.loadBalancers.list('cluster_id')) {\n console.log(nksLoadBalancer.id);\n}",
|
|
3436
3561
|
},
|
|
3562
|
+
http: {
|
|
3563
|
+
example:
|
|
3564
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/load_balancers \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3565
|
+
},
|
|
3437
3566
|
go: {
|
|
3438
3567
|
method: 'client.NKS.Clusters.LoadBalancers.List',
|
|
3439
3568
|
example:
|
|
@@ -3444,10 +3573,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3444
3573
|
example:
|
|
3445
3574
|
"nirvana nks:clusters:load-balancers list \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id",
|
|
3446
3575
|
},
|
|
3447
|
-
http: {
|
|
3448
|
-
example:
|
|
3449
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/load_balancers \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3450
|
-
},
|
|
3451
3576
|
},
|
|
3452
3577
|
},
|
|
3453
3578
|
{
|
|
@@ -3475,6 +3600,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3475
3600
|
example:
|
|
3476
3601
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.nks.clusters.pools.create('cluster_id', {\n name: 'my-node-pool',\n node_config: {\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-8',\n },\n node_count: 3,\n});\n\nconsole.log(operation.id);",
|
|
3477
3602
|
},
|
|
3603
|
+
http: {
|
|
3604
|
+
example:
|
|
3605
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-node-pool",\n "node_config": {\n "boot_volume": {\n "size": 100,\n "type": "abs"\n },\n "instance_type": "n1-standard-8"\n },\n "node_count": 3,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3606
|
+
},
|
|
3478
3607
|
go: {
|
|
3479
3608
|
method: 'client.NKS.Clusters.Pools.New',
|
|
3480
3609
|
example:
|
|
@@ -3485,10 +3614,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3485
3614
|
example:
|
|
3486
3615
|
"nirvana nks:clusters:pools create \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --name my-node-pool \\\n --node-config '{boot_volume: {size: 100, type: abs}, instance_type: n1-standard-8}' \\\n --node-count 3",
|
|
3487
3616
|
},
|
|
3488
|
-
http: {
|
|
3489
|
-
example:
|
|
3490
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-node-pool",\n "node_config": {\n "boot_volume": {\n "size": 100,\n "type": "abs"\n },\n "instance_type": "n1-standard-8"\n },\n "node_count": 3,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3491
|
-
},
|
|
3492
3617
|
},
|
|
3493
3618
|
},
|
|
3494
3619
|
{
|
|
@@ -3510,6 +3635,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3510
3635
|
example:
|
|
3511
3636
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst nksNodePool = await client.nks.clusters.pools.get('pool_id', { cluster_id: 'cluster_id' });\n\nconsole.log(nksNodePool.id);",
|
|
3512
3637
|
},
|
|
3638
|
+
http: {
|
|
3639
|
+
example:
|
|
3640
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3641
|
+
},
|
|
3513
3642
|
go: {
|
|
3514
3643
|
method: 'client.NKS.Clusters.Pools.Get',
|
|
3515
3644
|
example:
|
|
@@ -3520,10 +3649,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3520
3649
|
example:
|
|
3521
3650
|
"nirvana nks:clusters:pools get \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --pool-id pool_id",
|
|
3522
3651
|
},
|
|
3523
|
-
http: {
|
|
3524
|
-
example:
|
|
3525
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3526
|
-
},
|
|
3527
3652
|
},
|
|
3528
3653
|
},
|
|
3529
3654
|
{
|
|
@@ -3552,6 +3677,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3552
3677
|
example:
|
|
3553
3678
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.nks.clusters.pools.update('pool_id', { cluster_id: 'cluster_id' });\n\nconsole.log(operation.id);",
|
|
3554
3679
|
},
|
|
3680
|
+
http: {
|
|
3681
|
+
example:
|
|
3682
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-node-pool",\n "node_count": 5,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3683
|
+
},
|
|
3555
3684
|
go: {
|
|
3556
3685
|
method: 'client.NKS.Clusters.Pools.Update',
|
|
3557
3686
|
example:
|
|
@@ -3562,10 +3691,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3562
3691
|
example:
|
|
3563
3692
|
"nirvana nks:clusters:pools update \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --pool-id pool_id",
|
|
3564
3693
|
},
|
|
3565
|
-
http: {
|
|
3566
|
-
example:
|
|
3567
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-node-pool",\n "node_count": 5,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3568
|
-
},
|
|
3569
3694
|
},
|
|
3570
3695
|
},
|
|
3571
3696
|
{
|
|
@@ -3587,6 +3712,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3587
3712
|
example:
|
|
3588
3713
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.nks.clusters.pools.delete('pool_id', { cluster_id: 'cluster_id' });\n\nconsole.log(operation.id);",
|
|
3589
3714
|
},
|
|
3715
|
+
http: {
|
|
3716
|
+
example:
|
|
3717
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3718
|
+
},
|
|
3590
3719
|
go: {
|
|
3591
3720
|
method: 'client.NKS.Clusters.Pools.Delete',
|
|
3592
3721
|
example:
|
|
@@ -3597,10 +3726,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3597
3726
|
example:
|
|
3598
3727
|
"nirvana nks:clusters:pools delete \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --pool-id pool_id",
|
|
3599
3728
|
},
|
|
3600
|
-
http: {
|
|
3601
|
-
example:
|
|
3602
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3603
|
-
},
|
|
3604
3729
|
},
|
|
3605
3730
|
},
|
|
3606
3731
|
{
|
|
@@ -3622,6 +3747,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3622
3747
|
example:
|
|
3623
3748
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nksNodePool of client.nks.clusters.pools.list('cluster_id')) {\n console.log(nksNodePool.id);\n}",
|
|
3624
3749
|
},
|
|
3750
|
+
http: {
|
|
3751
|
+
example:
|
|
3752
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3753
|
+
},
|
|
3625
3754
|
go: {
|
|
3626
3755
|
method: 'client.NKS.Clusters.Pools.List',
|
|
3627
3756
|
example:
|
|
@@ -3631,10 +3760,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3631
3760
|
method: 'pools list',
|
|
3632
3761
|
example: "nirvana nks:clusters:pools list \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id",
|
|
3633
3762
|
},
|
|
3634
|
-
http: {
|
|
3635
|
-
example:
|
|
3636
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3637
|
-
},
|
|
3638
3763
|
},
|
|
3639
3764
|
},
|
|
3640
3765
|
{
|
|
@@ -3660,6 +3785,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3660
3785
|
example:
|
|
3661
3786
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.nks.clusters.pools.availability.create('cluster_id', {\n name: 'my-node-pool',\n node_config: {\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-8',\n },\n node_count: 3,\n});",
|
|
3662
3787
|
},
|
|
3788
|
+
http: {
|
|
3789
|
+
example:
|
|
3790
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-node-pool",\n "node_config": {\n "boot_volume": {\n "size": 100,\n "type": "abs"\n },\n "instance_type": "n1-standard-8"\n },\n "node_count": 3,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3791
|
+
},
|
|
3663
3792
|
go: {
|
|
3664
3793
|
method: 'client.NKS.Clusters.Pools.Availability.New',
|
|
3665
3794
|
example:
|
|
@@ -3670,10 +3799,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3670
3799
|
example:
|
|
3671
3800
|
"nirvana nks:clusters:pools:availability create \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --name my-node-pool \\\n --node-config '{boot_volume: {size: 100, type: abs}, instance_type: n1-standard-8}' \\\n --node-count 3",
|
|
3672
3801
|
},
|
|
3673
|
-
http: {
|
|
3674
|
-
example:
|
|
3675
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/availability \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-node-pool",\n "node_config": {\n "boot_volume": {\n "size": 100,\n "type": "abs"\n },\n "instance_type": "n1-standard-8"\n },\n "node_count": 3,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3676
|
-
},
|
|
3677
3802
|
},
|
|
3678
3803
|
},
|
|
3679
3804
|
{
|
|
@@ -3700,6 +3825,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3700
3825
|
example:
|
|
3701
3826
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.nks.clusters.pools.availability.update('pool_id', { cluster_id: 'cluster_id' });",
|
|
3702
3827
|
},
|
|
3828
|
+
http: {
|
|
3829
|
+
example:
|
|
3830
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-node-pool",\n "node_count": 5,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3831
|
+
},
|
|
3703
3832
|
go: {
|
|
3704
3833
|
method: 'client.NKS.Clusters.Pools.Availability.Update',
|
|
3705
3834
|
example:
|
|
@@ -3710,10 +3839,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3710
3839
|
example:
|
|
3711
3840
|
"nirvana nks:clusters:pools:availability update \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --pool-id pool_id",
|
|
3712
3841
|
},
|
|
3713
|
-
http: {
|
|
3714
|
-
example:
|
|
3715
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/availability \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "name": "my-node-pool",\n "node_count": 5,\n "tags": [\n "production",\n "ethereum"\n ]\n }\'',
|
|
3716
|
-
},
|
|
3717
3842
|
},
|
|
3718
3843
|
},
|
|
3719
3844
|
{
|
|
@@ -3735,6 +3860,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3735
3860
|
example:
|
|
3736
3861
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst nksNode = await client.nks.clusters.pools.nodes.get('node_id', {\n cluster_id: 'cluster_id',\n pool_id: 'pool_id',\n});\n\nconsole.log(nksNode.id);",
|
|
3737
3862
|
},
|
|
3863
|
+
http: {
|
|
3864
|
+
example:
|
|
3865
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes/$NODE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3866
|
+
},
|
|
3738
3867
|
go: {
|
|
3739
3868
|
method: 'client.NKS.Clusters.Pools.Nodes.Get',
|
|
3740
3869
|
example:
|
|
@@ -3745,10 +3874,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3745
3874
|
example:
|
|
3746
3875
|
"nirvana nks:clusters:pools:nodes get \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --pool-id pool_id \\\n --node-id node_id",
|
|
3747
3876
|
},
|
|
3748
|
-
http: {
|
|
3749
|
-
example:
|
|
3750
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes/$NODE_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3751
|
-
},
|
|
3752
3877
|
},
|
|
3753
3878
|
},
|
|
3754
3879
|
{
|
|
@@ -3770,6 +3895,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3770
3895
|
example:
|
|
3771
3896
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.nks.clusters.pools.nodes.delete('node_id', {\n cluster_id: 'cluster_id',\n pool_id: 'pool_id',\n});\n\nconsole.log(operation.id);",
|
|
3772
3897
|
},
|
|
3898
|
+
http: {
|
|
3899
|
+
example:
|
|
3900
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes/$NODE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3901
|
+
},
|
|
3773
3902
|
go: {
|
|
3774
3903
|
method: 'client.NKS.Clusters.Pools.Nodes.Delete',
|
|
3775
3904
|
example:
|
|
@@ -3780,10 +3909,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3780
3909
|
example:
|
|
3781
3910
|
"nirvana nks:clusters:pools:nodes delete \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --pool-id pool_id \\\n --node-id node_id",
|
|
3782
3911
|
},
|
|
3783
|
-
http: {
|
|
3784
|
-
example:
|
|
3785
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes/$NODE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3786
|
-
},
|
|
3787
3912
|
},
|
|
3788
3913
|
},
|
|
3789
3914
|
{
|
|
@@ -3805,6 +3930,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3805
3930
|
example:
|
|
3806
3931
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nksNode of client.nks.clusters.pools.nodes.list('pool_id', {\n cluster_id: 'cluster_id',\n})) {\n console.log(nksNode.id);\n}",
|
|
3807
3932
|
},
|
|
3933
|
+
http: {
|
|
3934
|
+
example:
|
|
3935
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3936
|
+
},
|
|
3808
3937
|
go: {
|
|
3809
3938
|
method: 'client.NKS.Clusters.Pools.Nodes.List',
|
|
3810
3939
|
example:
|
|
@@ -3815,10 +3944,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3815
3944
|
example:
|
|
3816
3945
|
"nirvana nks:clusters:pools:nodes list \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --pool-id pool_id",
|
|
3817
3946
|
},
|
|
3818
|
-
http: {
|
|
3819
|
-
example:
|
|
3820
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3821
|
-
},
|
|
3822
3947
|
},
|
|
3823
3948
|
},
|
|
3824
3949
|
{
|
|
@@ -3840,6 +3965,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3840
3965
|
example:
|
|
3841
3966
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst nksNodeVolume = await client.nks.clusters.pools.nodes.volumes.get('volume_id', {\n cluster_id: 'cluster_id',\n pool_id: 'pool_id',\n node_id: 'node_id',\n});\n\nconsole.log(nksNodeVolume.id);",
|
|
3842
3967
|
},
|
|
3968
|
+
http: {
|
|
3969
|
+
example:
|
|
3970
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes/$NODE_ID/volumes/$VOLUME_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3971
|
+
},
|
|
3843
3972
|
go: {
|
|
3844
3973
|
method: 'client.NKS.Clusters.Pools.Nodes.Volumes.Get',
|
|
3845
3974
|
example:
|
|
@@ -3850,10 +3979,6 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3850
3979
|
example:
|
|
3851
3980
|
"nirvana nks:clusters:pools:nodes:volumes get \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --pool-id pool_id \\\n --node-id node_id \\\n --volume-id volume_id",
|
|
3852
3981
|
},
|
|
3853
|
-
http: {
|
|
3854
|
-
example:
|
|
3855
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes/$NODE_ID/volumes/$VOLUME_ID \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3856
|
-
},
|
|
3857
3982
|
},
|
|
3858
3983
|
},
|
|
3859
3984
|
{
|
|
@@ -3881,6 +4006,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3881
4006
|
example:
|
|
3882
4007
|
"import NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const nksNodeVolume of client.nks.clusters.pools.nodes.volumes.list('node_id', {\n cluster_id: 'cluster_id',\n pool_id: 'pool_id',\n})) {\n console.log(nksNodeVolume.id);\n}",
|
|
3883
4008
|
},
|
|
4009
|
+
http: {
|
|
4010
|
+
example:
|
|
4011
|
+
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes/$NODE_ID/volumes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
4012
|
+
},
|
|
3884
4013
|
go: {
|
|
3885
4014
|
method: 'client.NKS.Clusters.Pools.Nodes.Volumes.List',
|
|
3886
4015
|
example:
|
|
@@ -3891,34 +4020,30 @@ const EMBEDDED_METHODS: MethodEntry[] = [
|
|
|
3891
4020
|
example:
|
|
3892
4021
|
"nirvana nks:clusters:pools:nodes:volumes list \\\n --api-key 'My API Key' \\\n --cluster-id cluster_id \\\n --pool-id pool_id \\\n --node-id node_id",
|
|
3893
4022
|
},
|
|
3894
|
-
http: {
|
|
3895
|
-
example:
|
|
3896
|
-
'curl https://api.nirvanalabs.io/v1/nks/clusters/$CLUSTER_ID/pools/$POOL_ID/nodes/$NODE_ID/volumes \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
3897
|
-
},
|
|
3898
4023
|
},
|
|
3899
4024
|
},
|
|
3900
4025
|
];
|
|
3901
4026
|
|
|
3902
4027
|
const EMBEDDED_READMES: { language: string; content: string }[] = [
|
|
3903
4028
|
{
|
|
3904
|
-
language: '
|
|
4029
|
+
language: 'typescript',
|
|
3905
4030
|
content:
|
|
3906
|
-
"# Nirvana Labs CLI\n\nThe official CLI for the [Nirvana Labs REST API](https://docs.nirvanalabs.io).\n\n<!-- x-release-please-start-version -->\n\n## Installation\n\n### Installing with Homebrew\n\n~~~sh\nbrew install nirvana-labs/tap/nirvana\n~~~\n\n### Installing with Go\n\nTo test or install the CLI locally, you need [Go](https://go.dev/doc/install) version 1.22 or later installed.\n\n~~~sh\ngo install 'github.com/nirvana-labs/nirvana-cli/cmd/nirvana@latest'\n~~~\n\nOnce you have run `go install`, the binary is placed in your Go bin directory:\n\n- **Default location**: `$HOME/go/bin` (or `$GOPATH/bin` if GOPATH is set)\n- **Check your path**: Run `go env GOPATH` to see the base directory\n\nIf commands aren't found after installation, add the Go bin directory to your PATH:\n\n~~~sh\n# Add to your shell profile (.zshrc, .bashrc, etc.)\nexport PATH=\"$PATH:$(go env GOPATH)/bin\"\n~~~\n\n<!-- x-release-please-end -->\n\n### Running Locally\n\nAfter cloning the git repository for this project, you can use the\n`scripts/run` script to run the tool locally:\n\n~~~sh\n./scripts/run args...\n~~~\n\n## Usage\n\nThe CLI follows a resource-based command structure:\n\n~~~sh\nnirvana [resource] <command> [flags...]\n~~~\n\n~~~sh\nnirvana compute:vms create \\\n --api-key 'My API Key' \\\n --boot-volume '{size: 100, type: abs}' \\\n --instance-type n1-standard-2 \\\n --name my-vm \\\n --os-image-name ubuntu-noble-2025-10-01 \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --public-ip-enabled \\\n --region us-sva-2 \\\n --ssh-key '{public_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2}' \\\n --subnet-id 123e4567-e89b-12d3-a456-426614174000\n~~~\n\nFor details about specific commands, use the `--help` flag.\n\n### Environment variables\n\n| Environment variable | Required |\n| ---------------------- | -------- |\n| `NIRVANA_LABS_API_KEY` | yes |\n\n### Global flags\n\n- `--api-key` (can also be set with `NIRVANA_LABS_API_KEY` env var)\n- `--help` - Show command line usage\n- `--debug` - Enable debug logging (includes HTTP request/response details)\n- `--version`, `-v` - Show the CLI version\n- `--base-url` - Use a custom API backend URL\n- `--format` - Change the output format (`auto`, `explore`, `json`, `jsonl`, `pretty`, `raw`, `yaml`)\n- `--format-error` - Change the output format for errors (`auto`, `explore`, `json`, `jsonl`, `pretty`, `raw`, `yaml`)\n- `--transform` - Transform the data output using [GJSON syntax](https://github.com/tidwall/gjson/blob/master/SYNTAX.md)\n- `--transform-error` - Transform the error output using [GJSON syntax](https://github.com/tidwall/gjson/blob/master/SYNTAX.md)\n\n### Passing files as arguments\n\nTo pass files to your API, you can use the `@myfile.ext` syntax:\n\n~~~bash\nnirvana <command> --arg @abe.jpg\n~~~\n\nFiles can also be passed inside JSON or YAML blobs:\n\n~~~bash\nnirvana <command> --arg '{image: \"@abe.jpg\"}'\n# Equivalent:\nnirvana <command> <<YAML\narg:\n image: \"@abe.jpg\"\nYAML\n~~~\n\nIf you need to pass a string literal that begins with an `@` sign, you can\nescape the `@` sign to avoid accidentally passing a file.\n\n~~~bash\nnirvana <command> --username '\\@abe'\n~~~\n\n#### Explicit encoding\n\nFor JSON endpoints, the CLI tool does filetype sniffing to determine whether the\nfile contents should be sent as a string literal (for plain text files) or as a\nbase64-encoded string literal (for binary files). If you need to explicitly send\nthe file as either plain text or base64-encoded data, you can use\n`@file://myfile.txt` (for string encoding) or `@data://myfile.dat` (for\nbase64-encoding). Note that absolute paths will begin with `@file://` or\n`@data://`, followed by a third `/` (for example, `@file:///tmp/file.txt`).\n\n~~~bash\nnirvana <command> --arg @data://file.txt\n~~~\n\n## Linking different Go SDK versions\n\nYou can link the CLI against a different version of the Nirvana Labs Go SDK\nfor development purposes using the `./scripts/link` script.\n\nTo link to a specific version from a repository (version can be a branch,\ngit tag, or commit hash):\n\n~~~bash\n./scripts/link github.com/org/repo@version\n~~~\n\nTo link to a local copy of the SDK:\n\n~~~bash\n./scripts/link ../path/to/nirvana-go\n~~~\n\nIf you run the link script without any arguments, it will default to `../nirvana-go`.\n",
|
|
4031
|
+
"# Nirvana Labs TypeScript API Library\n\n[)](https://npmjs.org/package/@nirvana-labs/nirvana) \n\nThis library provides convenient access to the Nirvana Labs REST API from server-side TypeScript or JavaScript.\n\n\n\nThe REST API documentation can be found on [docs.nirvanalabs.io](https://docs.nirvanalabs.io). The full API of this library can be found in [api.md](api.md).\n\n\n\n## MCP Server\n\nUse the Nirvana Labs MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=%40nirvana-labs%2Fnirvana-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBuaXJ2YW5hLWxhYnMvbmlydmFuYS1tY3AiXSwiZW52Ijp7Ik5JUlZBTkFfTEFCU19BUElfS0VZIjoiTXkgQVBJIEtleSJ9fQ)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40nirvana-labs%2Fnirvana-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40nirvana-labs%2Fnirvana-mcp%22%5D%2C%22env%22%3A%7B%22NIRVANA_LABS_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n```sh\nnpm install @nirvana-labs/nirvana\n```\n\n\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n<!-- prettier-ignore -->\n```js\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.vms.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n});\n\nconsole.log(operation.id);\n```\n\n\n\n### Request & Response types\n\nThis library includes TypeScript definitions for all request params and response fields. You may import and use them like so:\n\n<!-- prettier-ignore -->\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst params: NirvanaLabs.Compute.VMCreateParams = {\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n};\nconst operation: NirvanaLabs.Operation = await client.compute.vms.create(params);\n```\n\nDocumentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.\n\n\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API,\nor if the API returns a non-success status code (i.e., 4xx or 5xx response),\na subclass of `APIError` will be thrown:\n\n<!-- prettier-ignore -->\n```ts\nconst operation = await client.compute.vms\n .create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key:\n 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n })\n .catch(async (err) => {\n if (err instanceof NirvanaLabs.APIError) {\n console.log(err.status); // 400\n console.log(err.name); // BadRequestError\n console.log(err.headers); // {server: 'nginx', ...}\n } else {\n throw err;\n }\n });\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors will all be retried by default.\n\nYou can use the `maxRetries` option to configure or disable this:\n\n<!-- prettier-ignore -->\n```js\n// Configure the default for all requests:\nconst client = new NirvanaLabs({\n maxRetries: 0, // default is 2\n});\n\n// Or, configure per-request:\nawait client.compute.vms.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: { public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2' },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n}, {\n maxRetries: 5,\n});\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default. You can configure this with a `timeout` option:\n\n<!-- prettier-ignore -->\n```ts\n// Configure the default for all requests:\nconst client = new NirvanaLabs({\n timeout: 20 * 1000, // 20 seconds (default is 1 minute)\n});\n\n// Override per-request:\nawait client.compute.vms.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: { public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2' },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n}, {\n timeout: 5 * 1000,\n});\n```\n\nOn timeout, an `APIConnectionTimeoutError` is thrown.\n\nNote that requests which time out will be [retried twice by default](#retries).\n\n## Auto-pagination\n\nList methods in the NirvanaLabs API are paginated.\nYou can use the `for await … of` syntax to iterate through items across all pages:\n\n```ts\nasync function fetchAllVMs(params) {\n const allVMs = [];\n // Automatically fetches more pages as needed.\n for await (const vm of client.compute.vms.list({\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n limit: 10,\n })) {\n allVMs.push(vm);\n }\n return allVMs;\n}\n```\n\nAlternatively, you can request a single page at a time:\n\n```ts\nlet page = await client.compute.vms.list({\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n limit: 10,\n});\nfor (const vm of page.items) {\n console.log(vm);\n}\n\n// Convenience methods are provided for manually paginating:\nwhile (page.hasNextPage()) {\n page = await page.getNextPage();\n // ...\n}\n```\n\n\n\n## Advanced Usage\n\n### Accessing raw Response data (e.g., headers)\n\nThe \"raw\" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.\nThis method returns as soon as the headers for a successful response are received and does not consume the response body, so you are free to write custom parsing or streaming logic.\n\nYou can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.\nUnlike `.asResponse()` this method consumes the body, returning once it is parsed.\n\n<!-- prettier-ignore -->\n```ts\nconst client = new NirvanaLabs();\n\nconst response = await client.compute.vms\n .create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key:\n 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n })\n .asResponse();\nconsole.log(response.headers.get('X-My-Header'));\nconsole.log(response.statusText); // access the underlying Response object\n\nconst { data: operation, response: raw } = await client.compute.vms\n .create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key:\n 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n })\n .withResponse();\nconsole.log(raw.headers.get('X-My-Header'));\nconsole.log(operation.id);\n```\n\n### Logging\n\n> [!IMPORTANT]\n> All log messages are intended for debugging only. The format and content of log messages\n> may change between releases.\n\n#### Log levels\n\nThe log level can be configured in two ways:\n\n1. Via the `NIRVANA_LABS_LOG` environment variable\n2. Using the `logLevel` client option (overrides the environment variable if set)\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n logLevel: 'debug', // Show all log messages\n});\n```\n\nAvailable log levels, from most to least verbose:\n\n- `'debug'` - Show debug messages, info, warnings, and errors\n- `'info'` - Show info messages, warnings, and errors\n- `'warn'` - Show warnings and errors (default)\n- `'error'` - Show only errors\n- `'off'` - Disable all logging\n\nAt the `'debug'` level, all HTTP requests and responses are logged, including headers and bodies.\nSome authentication-related headers are redacted, but sensitive data in request and response bodies\nmay still be visible.\n\n#### Custom logger\n\nBy default, this library logs to `globalThis.console`. You can also provide a custom logger.\nMost logging libraries are supported, including [pino](https://www.npmjs.com/package/pino), [winston](https://www.npmjs.com/package/winston), [bunyan](https://www.npmjs.com/package/bunyan), [consola](https://www.npmjs.com/package/consola), [signale](https://www.npmjs.com/package/signale), and [@std/log](https://jsr.io/@std/log). If your logger doesn't work, please open an issue.\n\nWhen providing a custom logger, the `logLevel` option still controls which messages are emitted, messages\nbelow the configured level will not be sent to your logger.\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\nimport pino from 'pino';\n\nconst logger = pino();\n\nconst client = new NirvanaLabs({\n logger: logger.child({ name: 'NirvanaLabs' }),\n logLevel: 'debug', // Send all messages to pino, allowing it to filter\n});\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.get`, `client.post`, and other HTTP verbs.\nOptions on the client, such as retries, will be respected when making these requests.\n\n```ts\nawait client.post('/some/path', {\n body: { some_prop: 'foo' },\n query: { some_query_arg: 'bar' },\n});\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use `// @ts-expect-error` on the undocumented\nparameter. This library doesn't validate at runtime that the request matches the type, so any extra values you\nsend will be sent as-is.\n\n```ts\nclient.compute.vms.create({\n // ...\n // @ts-expect-error baz is not yet public\n baz: 'undocumented option',\n});\n```\n\nFor requests with the `GET` verb, any extra params will be in the query, all other requests will send the\nextra param in the body.\n\nIf you want to explicitly send an extra argument, you can do so with the `query`, `body`, and `headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may access the response object with `// @ts-expect-error` on\nthe response object, or cast the response object to the requisite type. Like the request params, we do not\nvalidate or strip extra properties from the response from the API.\n\n### Customizing the fetch client\n\nBy default, this library expects a global `fetch` function is defined.\n\nIf you want to use a different `fetch` function, you can either polyfill the global:\n\n```ts\nimport fetch from 'my-fetch';\n\nglobalThis.fetch = fetch;\n```\n\nOr pass it to the client:\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\nimport fetch from 'my-fetch';\n\nconst client = new NirvanaLabs({ fetch });\n```\n\n### Fetch options\n\nIf you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.)\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n fetchOptions: {\n // `RequestInit` options\n },\n});\n```\n\n#### Configuring proxies\n\nTo modify proxy behavior, you can provide custom `fetchOptions` that add runtime-specific proxy\noptions to requests:\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/node.svg\" align=\"top\" width=\"18\" height=\"21\"> **Node** <sup>[[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)]</sup>\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\nimport * as undici from 'undici';\n\nconst proxyAgent = new undici.ProxyAgent('http://localhost:8888');\nconst client = new NirvanaLabs({\n fetchOptions: {\n dispatcher: proxyAgent,\n },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/bun.svg\" align=\"top\" width=\"18\" height=\"21\"> **Bun** <sup>[[docs](https://bun.sh/guides/http/proxy)]</sup>\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n fetchOptions: {\n proxy: 'http://localhost:8888',\n },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/deno.svg\" align=\"top\" width=\"18\" height=\"21\"> **Deno** <sup>[[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)]</sup>\n\n```ts\nimport NirvanaLabs from 'npm:@nirvana-labs/nirvana';\n\nconst httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } });\nconst client = new NirvanaLabs({\n fetchOptions: {\n client: httpClient,\n },\n});\n```\n\n## Frequently Asked Questions\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/nirvana-labs/nirvana-typescript/issues) with questions, bugs, or suggestions.\n\n## Requirements\n\nTypeScript >= 4.9 is supported.\n\nThe following runtimes are supported:\n\n- Web browsers (Up-to-date Chrome, Firefox, Safari, Edge, and more)\n- Node.js 20 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.\n- Deno v1.28.0 or higher.\n- Bun 1.0 or later.\n- Cloudflare Workers.\n- Vercel Edge Runtime.\n- Jest 28 or greater with the `\"node\"` environment (`\"jsdom\"` is not supported at this time).\n- Nitro v2.6 or greater.\n\nNote that React Native is not supported at this time.\n\nIf you are interested in other runtime environments, please open or upvote an issue on GitHub.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n",
|
|
3907
4032
|
},
|
|
3908
4033
|
{
|
|
3909
4034
|
language: 'go',
|
|
3910
4035
|
content:
|
|
3911
|
-
'# Nirvana Labs Go API Library\n\n<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go"><img src="https://pkg.go.dev/badge/github.com/nirvana-labs/nirvana-go.svg" alt="Go Reference"></a>\n\nThe Nirvana Labs Go library provides convenient access to the [Nirvana Labs REST API](https://docs.nirvanalabs.io)\nfrom applications written in Go.\n\n\n\n## MCP Server\n\nUse the Nirvana Labs MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=%40nirvana-labs%2Fnirvana-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBuaXJ2YW5hLWxhYnMvbmlydmFuYS1tY3AiXSwiZW52Ijp7Ik5JUlZBTkFfTEFCU19BUElfS0VZIjoiTXkgQVBJIEtleSJ9fQ)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40nirvana-labs%2Fnirvana-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40nirvana-labs%2Fnirvana-mcp%22%5D%2C%22env%22%3A%7B%22NIRVANA_LABS_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n<!-- x-release-please-start-version -->\n\n```go\nimport (\n\t"github.com/nirvana-labs/nirvana-go" // imported as SDK_PackageName\n)\n```\n\n<!-- x-release-please-end -->\n\nOr to pin the version:\n\n<!-- x-release-please-start-version -->\n\n```sh\ngo get -u \'github.com/nirvana-labs/nirvana-go@v0.0.1\'\n```\n\n<!-- x-release-please-end -->\n\n## Requirements\n\nThis library requires Go 1.22+.\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```go\npackage main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/nirvana-labs/nirvana-go"\n\t"github.com/nirvana-labs/nirvana-go/compute"\n\t"github.com/nirvana-labs/nirvana-go/option"\n\t"github.com/nirvana-labs/nirvana-go/shared"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"), // defaults to os.LookupEnv("NIRVANA_LABS_API_KEY")\n\t)\n\toperation, err := client.Compute.VMs.New(context.TODO(), compute.VMNewParams{\n\t\tBootVolume: compute.VMNewParamsBootVolume{\n\t\t\tSize: 100,\n\t\t\tType: compute.VolumeTypeABS,\n\t\t},\n\t\tInstanceType: "n1-standard-2",\n\t\tName: "my-vm",\n\t\tOSImageName: "ubuntu-noble-2025-10-01",\n\t\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\t\tPublicIPEnabled: true,\n\t\tRegion: shared.RegionNameUsSva2,\n\t\tSSHKey: compute.SSHKeyRequestParam{\n\t\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t\t},\n\t\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", operation.ID)\n}\n\n```\n\n### Request fields\n\nAll request parameters are wrapped in a generic `Field` type,\nwhich we use to distinguish zero values from null or omitted fields.\n\nThis prevents accidentally sending a zero value if you forget a required parameter,\nand enables explicitly sending `null`, `false`, `\'\'`, or `0` on optional parameters.\nAny field not specified is not sent.\n\nTo construct fields with values, use the helpers `String()`, `Int()`, `Float()`, or most commonly, the generic `F[T]()`.\nTo send a null, use `Null[T]()`, and to send a nonconforming value, use `Raw[T](any)`. For example:\n\n```go\nparams := FooParams{\n\tName: SDK_PackageName.F("hello"),\n\n\t// Explicitly send `"description": null`\n\tDescription: SDK_PackageName.Null[string](),\n\n\tPoint: SDK_PackageName.F(SDK_PackageName.Point{\n\t\tX: SDK_PackageName.Int(0),\n\t\tY: SDK_PackageName.Int(1),\n\n\t\t// In cases where the API specifies a given type,\n\t\t// but you want to send something else, use `Raw`:\n\t\tZ: SDK_PackageName.Raw[int64](0.01), // sends a float\n\t}),\n}\n```\n\n### Response objects\n\nAll fields in response structs are value types (not pointers or wrappers).\n\nIf a given field is `null`, not present, or invalid, the corresponding field\nwill simply be its zero value.\n\nAll response structs also include a special `JSON` field, containing more detailed\ninformation about each property, which you can use like so:\n\n```go\nif res.Name == "" {\n\t// true if `"name"` is either not present or explicitly null\n\tres.JSON.Name.IsNull()\n\n\t// true if the `"name"` key was not present in the response JSON at all\n\tres.JSON.Name.IsMissing()\n\n\t// When the API returns data that cannot be coerced to the expected type:\n\tif res.JSON.Name.IsInvalid() {\n\t\traw := res.JSON.Name.Raw()\n\n\t\tlegacyName := struct{\n\t\t\tFirst string `json:"first"`\n\t\t\tLast string `json:"last"`\n\t\t}{}\n\t\tjson.Unmarshal([]byte(raw), &legacyName)\n\t\tname = legacyName.First + " " + legacyName.Last\n\t}\n}\n```\n\nThese `.JSON` structs also include an `Extras` map containing\nany properties in the json response that were not specified\nin the struct. This can be useful for API features not yet\npresent in the SDK.\n\n```go\nbody := res.JSON.ExtraFields["my_unexpected_field"].Raw()\n```\n\n### RequestOptions\n\nThis library uses the functional options pattern. Functions defined in the\n`SDK_PackageOptionName` package return a `RequestOption`, which is a closure that mutates a\n`RequestConfig`. These options can be supplied to the client or at individual\nrequests. For example:\n\n```go\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\t// Adds a header to every request made by the client\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "custom_header_info"),\n)\n\nclient.Compute.VMs.New(context.TODO(), ...,\n\t// Override the header\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "some_other_custom_header_info"),\n\t// Add an undocumented field to the request body, using sjson syntax\n\tSDK_PackageOptionName.WithJSONSet("some.json.path", map[string]string{"my": "object"}),\n)\n```\n\nSee the [full list of request options](https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/SDK_PackageOptionName).\n\n### Pagination\n\nThis library provides some conveniences for working with paginated list endpoints.\n\nYou can use `.ListAutoPaging()` methods to iterate through items across all pages:\n\n```go\niter := client.Compute.VMs.ListAutoPaging(context.TODO(), compute.VMListParams{\n\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\tLimit: nirvana.Int(10),\n})\n// Automatically fetches more pages as needed.\nfor iter.Next() {\n\tvm := iter.Current()\n\tfmt.Printf("%+v\\n", vm)\n}\nif err := iter.Err(); err != nil {\n\tpanic(err.Error())\n}\n```\n\nOr you can use simple `.List()` methods to fetch a single page and receive a standard response object\nwith additional helper methods like `.GetNextPage()`, e.g.:\n\n```go\npage, err := client.Compute.VMs.List(context.TODO(), compute.VMListParams{\n\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\tLimit: nirvana.Int(10),\n})\nfor page != nil {\n\tfor _, vm := range page.Items {\n\t\tfmt.Printf("%+v\\n", vm)\n\t}\n\tpage, err = page.GetNextPage()\n}\nif err != nil {\n\tpanic(err.Error())\n}\n```\n\n### Errors\n\nWhen the API returns a non-success status code, we return an error with type\n`*SDK_PackageName.Error`. This contains the `StatusCode`, `*http.Request`, and\n`*http.Response` values of the request, as well as the JSON of the error body\n(much like other response objects in the SDK).\n\nTo handle errors, we recommend that you use the `errors.As` pattern:\n\n```go\n_, err := client.Compute.VMs.New(context.TODO(), compute.VMNewParams{\n\tBootVolume: compute.VMNewParamsBootVolume{\n\t\tSize: 100,\n\t\tType: compute.VolumeTypeABS,\n\t},\n\tInstanceType: "n1-standard-2",\n\tName: "my-vm",\n\tOSImageName: "ubuntu-noble-2025-10-01",\n\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\tPublicIPEnabled: true,\n\tRegion: shared.RegionNameUsSva2,\n\tSSHKey: compute.SSHKeyRequestParam{\n\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t},\n\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n})\nif err != nil {\n\tvar apierr *nirvana.Error\n\tif errors.As(err, &apierr) {\n\t\tprintln(string(apierr.DumpRequest(true))) // Prints the serialized HTTP request\n\t\tprintln(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response\n\t}\n\tpanic(err.Error()) // GET "/v1/compute/vms": 400 Bad Request { ... }\n}\n```\n\nWhen other errors occur, they are returned unwrapped; for example,\nif HTTP transport fails, you might receive `*url.Error` wrapping `*net.OpError`.\n\n### Timeouts\n\nRequests do not time out by default; use context to configure a timeout for a request lifecycle.\n\nNote that if a request is [retried](#retries), the context timeout does not start over.\nTo set a per-retry timeout, use `SDK_PackageOptionName.WithRequestTimeout()`.\n\n```go\n// This sets the timeout for the request, including all the retries.\nctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)\ndefer cancel()\nclient.Compute.VMs.New(\n\tctx,\n\tcompute.VMNewParams{\n\t\tBootVolume: compute.VMNewParamsBootVolume{\n\t\t\tSize: 100,\n\t\t\tType: compute.VolumeTypeABS,\n\t\t},\n\t\tInstanceType: "n1-standard-2",\n\t\tName: "my-vm",\n\t\tOSImageName: "ubuntu-noble-2025-10-01",\n\t\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\t\tPublicIPEnabled: true,\n\t\tRegion: shared.RegionNameUsSva2,\n\t\tSSHKey: compute.SSHKeyRequestParam{\n\t\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t\t},\n\t\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n\t},\n\t// This sets the per-retry timeout\n\toption.WithRequestTimeout(20*time.Second),\n)\n```\n\n### File uploads\n\nRequest parameters that correspond to file uploads in multipart requests are typed as\n`param.Field[io.Reader]`. The contents of the `io.Reader` will by default be sent as a multipart form\npart with the file name of "anonymous_file" and content-type of "application/octet-stream".\n\nThe file name and content-type can be customized by implementing `Name() string` or `ContentType()\nstring` on the run-time type of `io.Reader`. Note that `os.File` implements `Name() string`, so a\nfile returned by `os.Open` will be sent with the file name on disk.\n\nWe also provide a helper `SDK_PackageName.FileParam(reader io.Reader, filename string, contentType string)`\nwhich can be used to wrap any `io.Reader` with the appropriate file name and content type.\n\n\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nWe retry by default all connection errors, 408 Request Timeout, 409 Conflict, 429 Rate Limit,\nand >=500 Internal errors.\n\nYou can use the `WithMaxRetries` option to configure or disable this:\n\n```go\n// Configure the default for all requests:\nclient := nirvana.NewClient(\n\toption.WithMaxRetries(0), // default is 2\n)\n\n// Override per-request:\nclient.Compute.VMs.New(\n\tcontext.TODO(),\n\tcompute.VMNewParams{\n\t\tBootVolume: compute.VMNewParamsBootVolume{\n\t\t\tSize: 100,\n\t\t\tType: compute.VolumeTypeABS,\n\t\t},\n\t\tInstanceType: "n1-standard-2",\n\t\tName: "my-vm",\n\t\tOSImageName: "ubuntu-noble-2025-10-01",\n\t\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\t\tPublicIPEnabled: true,\n\t\tRegion: shared.RegionNameUsSva2,\n\t\tSSHKey: compute.SSHKeyRequestParam{\n\t\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t\t},\n\t\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n\t},\n\toption.WithMaxRetries(5),\n)\n```\n\n\n### Accessing raw response data (e.g. response headers)\n\nYou can access the raw HTTP response data by using the `option.WithResponseInto()` request option. This is useful when\nyou need to examine response headers, status codes, or other details.\n\n```go\n// Create a variable to store the HTTP response\nvar response *http.Response\noperation, err := client.Compute.VMs.New(\n\tcontext.TODO(),\n\tcompute.VMNewParams{\n\t\tBootVolume: compute.VMNewParamsBootVolume{\n\t\t\tSize: 100,\n\t\t\tType: compute.VolumeTypeABS,\n\t\t},\n\t\tInstanceType: "n1-standard-2",\n\t\tName: "my-vm",\n\t\tOSImageName: "ubuntu-noble-2025-10-01",\n\t\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\t\tPublicIPEnabled: true,\n\t\tRegion: shared.RegionNameUsSva2,\n\t\tSSHKey: compute.SSHKeyRequestParam{\n\t\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t\t},\n\t\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n\t},\n\toption.WithResponseInto(&response),\n)\nif err != nil {\n\t// handle error\n}\nfmt.Printf("%+v\\n", operation)\n\nfmt.Printf("Status Code: %d\\n", response.StatusCode)\nfmt.Printf("Headers: %+#v\\n", response.Header)\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.Get`, `client.Post`, and other HTTP verbs.\n`RequestOptions` on the client, such as retries, will be respected when making these requests.\n\n```go\nvar (\n // params can be an io.Reader, a []byte, an encoding/json serializable object,\n // or a "…Params" struct defined in this library.\n params map[string]interface{}\n\n // result can be an []byte, *http.Response, a encoding/json deserializable object,\n // or a model defined in this library.\n result *http.Response\n)\nerr := client.Post(context.Background(), "/unspecified", params, &result)\nif err != nil {\n …\n}\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use either the `SDK_PackageOptionName.WithQuerySet()`\nor the `SDK_PackageOptionName.WithJSONSet()` methods.\n\n```go\nparams := FooNewParams{\n ID: SDK_PackageName.F("id_xxxx"),\n Data: SDK_PackageName.F(FooNewParamsData{\n FirstName: SDK_PackageName.F("John"),\n }),\n}\nclient.Foo.New(context.Background(), params, SDK_PackageOptionName.WithJSONSet("data.last_name", "Doe"))\n```\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may either access the raw JSON of the response as a string\nwith `result.JSON.RawJSON()`, or get the raw JSON of a particular field on the result with\n`result.JSON.Foo.Raw()`.\n\nAny fields that are not present on the response struct will be saved and can be accessed by `result.JSON.ExtraFields()` which returns the extra fields as a `map[string]Field`.\n\n### Middleware\n\nWe provide `SDK_PackageOptionName.WithMiddleware` which applies the given\nmiddleware to requests.\n\n```go\nfunc Logger(req *http.Request, next SDK_PackageOptionName.MiddlewareNext) (res *http.Response, err error) {\n\t// Before the request\n\tstart := time.Now()\n\tLogReq(req)\n\n\t// Forward the request to the next handler\n\tres, err = next(req)\n\n\t// Handle stuff after the request\n\tend := time.Now()\n\tLogRes(res, err, start - end)\n\n return res, err\n}\n\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\tSDK_PackageOptionName.WithMiddleware(Logger),\n)\n```\n\nWhen multiple middlewares are provided as variadic arguments, the middlewares\nare applied left to right. If `SDK_PackageOptionName.WithMiddleware` is given\nmultiple times, for example first in the client then the method, the\nmiddleware in the client will run first and the middleware given in the method\nwill run next.\n\nYou may also replace the default `http.Client` with\n`SDK_PackageOptionName.WithHTTPClient(client)`. Only one http client is\naccepted (this overwrites any previous client) and receives requests after any\nmiddleware has been applied.\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/nirvana-labs/nirvana-go/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
|
|
4036
|
+
'# Nirvana Labs Go API Library\n\n<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go"><img src="https://pkg.go.dev/badge/github.com/nirvana-labs/nirvana-go.svg" alt="Go Reference"></a>\n\nThe Nirvana Labs Go library provides convenient access to the [Nirvana Labs REST API](https://docs.nirvanalabs.io)\nfrom applications written in Go.\n\n\n\n## MCP Server\n\nUse the Nirvana Labs MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=%40nirvana-labs%2Fnirvana-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBuaXJ2YW5hLWxhYnMvbmlydmFuYS1tY3AiXSwiZW52Ijp7Ik5JUlZBTkFfTEFCU19BUElfS0VZIjoiTXkgQVBJIEtleSJ9fQ)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40nirvana-labs%2Fnirvana-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40nirvana-labs%2Fnirvana-mcp%22%5D%2C%22env%22%3A%7B%22NIRVANA_LABS_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n<!-- x-release-please-start-version -->\n\n```go\nimport (\n\t"github.com/nirvana-labs/nirvana-go" // imported as SDK_PackageName\n)\n```\n\n<!-- x-release-please-end -->\n\nOr to pin the version:\n\n<!-- x-release-please-start-version -->\n\n```sh\ngo get -u \'github.com/nirvana-labs/nirvana-go@v1.91.1\'\n```\n\n<!-- x-release-please-end -->\n\n## Requirements\n\nThis library requires Go 1.22+.\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```go\npackage main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/nirvana-labs/nirvana-go"\n\t"github.com/nirvana-labs/nirvana-go/compute"\n\t"github.com/nirvana-labs/nirvana-go/option"\n\t"github.com/nirvana-labs/nirvana-go/shared"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"), // defaults to os.LookupEnv("NIRVANA_LABS_API_KEY")\n\t)\n\toperation, err := client.Compute.VMs.New(context.TODO(), compute.VMNewParams{\n\t\tBootVolume: compute.VMNewParamsBootVolume{\n\t\t\tSize: 100,\n\t\t\tType: compute.VolumeTypeABS,\n\t\t},\n\t\tInstanceType: "n1-standard-2",\n\t\tName: "my-vm",\n\t\tOSImageName: "ubuntu-noble-2025-10-01",\n\t\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\t\tPublicIPEnabled: true,\n\t\tRegion: shared.RegionNameUsSva2,\n\t\tSSHKey: compute.SSHKeyRequestParam{\n\t\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t\t},\n\t\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", operation.ID)\n}\n\n```\n\n### Request fields\n\nAll request parameters are wrapped in a generic `Field` type,\nwhich we use to distinguish zero values from null or omitted fields.\n\nThis prevents accidentally sending a zero value if you forget a required parameter,\nand enables explicitly sending `null`, `false`, `\'\'`, or `0` on optional parameters.\nAny field not specified is not sent.\n\nTo construct fields with values, use the helpers `String()`, `Int()`, `Float()`, or most commonly, the generic `F[T]()`.\nTo send a null, use `Null[T]()`, and to send a nonconforming value, use `Raw[T](any)`. For example:\n\n```go\nparams := FooParams{\n\tName: SDK_PackageName.F("hello"),\n\n\t// Explicitly send `"description": null`\n\tDescription: SDK_PackageName.Null[string](),\n\n\tPoint: SDK_PackageName.F(SDK_PackageName.Point{\n\t\tX: SDK_PackageName.Int(0),\n\t\tY: SDK_PackageName.Int(1),\n\n\t\t// In cases where the API specifies a given type,\n\t\t// but you want to send something else, use `Raw`:\n\t\tZ: SDK_PackageName.Raw[int64](0.01), // sends a float\n\t}),\n}\n```\n\n### Response objects\n\nAll fields in response structs are value types (not pointers or wrappers).\n\nIf a given field is `null`, not present, or invalid, the corresponding field\nwill simply be its zero value.\n\nAll response structs also include a special `JSON` field, containing more detailed\ninformation about each property, which you can use like so:\n\n```go\nif res.Name == "" {\n\t// true if `"name"` is either not present or explicitly null\n\tres.JSON.Name.IsNull()\n\n\t// true if the `"name"` key was not present in the response JSON at all\n\tres.JSON.Name.IsMissing()\n\n\t// When the API returns data that cannot be coerced to the expected type:\n\tif res.JSON.Name.IsInvalid() {\n\t\traw := res.JSON.Name.Raw()\n\n\t\tlegacyName := struct{\n\t\t\tFirst string `json:"first"`\n\t\t\tLast string `json:"last"`\n\t\t}{}\n\t\tjson.Unmarshal([]byte(raw), &legacyName)\n\t\tname = legacyName.First + " " + legacyName.Last\n\t}\n}\n```\n\nThese `.JSON` structs also include an `Extras` map containing\nany properties in the json response that were not specified\nin the struct. This can be useful for API features not yet\npresent in the SDK.\n\n```go\nbody := res.JSON.ExtraFields["my_unexpected_field"].Raw()\n```\n\n### RequestOptions\n\nThis library uses the functional options pattern. Functions defined in the\n`SDK_PackageOptionName` package return a `RequestOption`, which is a closure that mutates a\n`RequestConfig`. These options can be supplied to the client or at individual\nrequests. For example:\n\n```go\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\t// Adds a header to every request made by the client\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "custom_header_info"),\n)\n\nclient.Compute.VMs.New(context.TODO(), ...,\n\t// Override the header\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "some_other_custom_header_info"),\n\t// Add an undocumented field to the request body, using sjson syntax\n\tSDK_PackageOptionName.WithJSONSet("some.json.path", map[string]string{"my": "object"}),\n)\n```\n\nSee the [full list of request options](https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/SDK_PackageOptionName).\n\n### Pagination\n\nThis library provides some conveniences for working with paginated list endpoints.\n\nYou can use `.ListAutoPaging()` methods to iterate through items across all pages:\n\n```go\niter := client.Compute.VMs.ListAutoPaging(context.TODO(), compute.VMListParams{\n\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\tLimit: nirvana.Int(10),\n})\n// Automatically fetches more pages as needed.\nfor iter.Next() {\n\tvm := iter.Current()\n\tfmt.Printf("%+v\\n", vm)\n}\nif err := iter.Err(); err != nil {\n\tpanic(err.Error())\n}\n```\n\nOr you can use simple `.List()` methods to fetch a single page and receive a standard response object\nwith additional helper methods like `.GetNextPage()`, e.g.:\n\n```go\npage, err := client.Compute.VMs.List(context.TODO(), compute.VMListParams{\n\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\tLimit: nirvana.Int(10),\n})\nfor page != nil {\n\tfor _, vm := range page.Items {\n\t\tfmt.Printf("%+v\\n", vm)\n\t}\n\tpage, err = page.GetNextPage()\n}\nif err != nil {\n\tpanic(err.Error())\n}\n```\n\n### Errors\n\nWhen the API returns a non-success status code, we return an error with type\n`*SDK_PackageName.Error`. This contains the `StatusCode`, `*http.Request`, and\n`*http.Response` values of the request, as well as the JSON of the error body\n(much like other response objects in the SDK).\n\nTo handle errors, we recommend that you use the `errors.As` pattern:\n\n```go\n_, err := client.Compute.VMs.New(context.TODO(), compute.VMNewParams{\n\tBootVolume: compute.VMNewParamsBootVolume{\n\t\tSize: 100,\n\t\tType: compute.VolumeTypeABS,\n\t},\n\tInstanceType: "n1-standard-2",\n\tName: "my-vm",\n\tOSImageName: "ubuntu-noble-2025-10-01",\n\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\tPublicIPEnabled: true,\n\tRegion: shared.RegionNameUsSva2,\n\tSSHKey: compute.SSHKeyRequestParam{\n\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t},\n\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n})\nif err != nil {\n\tvar apierr *nirvana.Error\n\tif errors.As(err, &apierr) {\n\t\tprintln(string(apierr.DumpRequest(true))) // Prints the serialized HTTP request\n\t\tprintln(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response\n\t}\n\tpanic(err.Error()) // GET "/v1/compute/vms": 400 Bad Request { ... }\n}\n```\n\nWhen other errors occur, they are returned unwrapped; for example,\nif HTTP transport fails, you might receive `*url.Error` wrapping `*net.OpError`.\n\n### Timeouts\n\nRequests do not time out by default; use context to configure a timeout for a request lifecycle.\n\nNote that if a request is [retried](#retries), the context timeout does not start over.\nTo set a per-retry timeout, use `SDK_PackageOptionName.WithRequestTimeout()`.\n\n```go\n// This sets the timeout for the request, including all the retries.\nctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)\ndefer cancel()\nclient.Compute.VMs.New(\n\tctx,\n\tcompute.VMNewParams{\n\t\tBootVolume: compute.VMNewParamsBootVolume{\n\t\t\tSize: 100,\n\t\t\tType: compute.VolumeTypeABS,\n\t\t},\n\t\tInstanceType: "n1-standard-2",\n\t\tName: "my-vm",\n\t\tOSImageName: "ubuntu-noble-2025-10-01",\n\t\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\t\tPublicIPEnabled: true,\n\t\tRegion: shared.RegionNameUsSva2,\n\t\tSSHKey: compute.SSHKeyRequestParam{\n\t\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t\t},\n\t\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n\t},\n\t// This sets the per-retry timeout\n\toption.WithRequestTimeout(20*time.Second),\n)\n```\n\n### File uploads\n\nRequest parameters that correspond to file uploads in multipart requests are typed as\n`param.Field[io.Reader]`. The contents of the `io.Reader` will by default be sent as a multipart form\npart with the file name of "anonymous_file" and content-type of "application/octet-stream".\n\nThe file name and content-type can be customized by implementing `Name() string` or `ContentType()\nstring` on the run-time type of `io.Reader`. Note that `os.File` implements `Name() string`, so a\nfile returned by `os.Open` will be sent with the file name on disk.\n\nWe also provide a helper `SDK_PackageName.FileParam(reader io.Reader, filename string, contentType string)`\nwhich can be used to wrap any `io.Reader` with the appropriate file name and content type.\n\n\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nWe retry by default all connection errors, 408 Request Timeout, 409 Conflict, 429 Rate Limit,\nand >=500 Internal errors.\n\nYou can use the `WithMaxRetries` option to configure or disable this:\n\n```go\n// Configure the default for all requests:\nclient := nirvana.NewClient(\n\toption.WithMaxRetries(0), // default is 2\n)\n\n// Override per-request:\nclient.Compute.VMs.New(\n\tcontext.TODO(),\n\tcompute.VMNewParams{\n\t\tBootVolume: compute.VMNewParamsBootVolume{\n\t\t\tSize: 100,\n\t\t\tType: compute.VolumeTypeABS,\n\t\t},\n\t\tInstanceType: "n1-standard-2",\n\t\tName: "my-vm",\n\t\tOSImageName: "ubuntu-noble-2025-10-01",\n\t\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\t\tPublicIPEnabled: true,\n\t\tRegion: shared.RegionNameUsSva2,\n\t\tSSHKey: compute.SSHKeyRequestParam{\n\t\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t\t},\n\t\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n\t},\n\toption.WithMaxRetries(5),\n)\n```\n\n\n### Accessing raw response data (e.g. response headers)\n\nYou can access the raw HTTP response data by using the `option.WithResponseInto()` request option. This is useful when\nyou need to examine response headers, status codes, or other details.\n\n```go\n// Create a variable to store the HTTP response\nvar response *http.Response\noperation, err := client.Compute.VMs.New(\n\tcontext.TODO(),\n\tcompute.VMNewParams{\n\t\tBootVolume: compute.VMNewParamsBootVolume{\n\t\t\tSize: 100,\n\t\t\tType: compute.VolumeTypeABS,\n\t\t},\n\t\tInstanceType: "n1-standard-2",\n\t\tName: "my-vm",\n\t\tOSImageName: "ubuntu-noble-2025-10-01",\n\t\tProjectID: "123e4567-e89b-12d3-a456-426614174000",\n\t\tPublicIPEnabled: true,\n\t\tRegion: shared.RegionNameUsSva2,\n\t\tSSHKey: compute.SSHKeyRequestParam{\n\t\t\tPublicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2",\n\t\t},\n\t\tSubnetID: "123e4567-e89b-12d3-a456-426614174000",\n\t},\n\toption.WithResponseInto(&response),\n)\nif err != nil {\n\t// handle error\n}\nfmt.Printf("%+v\\n", operation)\n\nfmt.Printf("Status Code: %d\\n", response.StatusCode)\nfmt.Printf("Headers: %+#v\\n", response.Header)\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.Get`, `client.Post`, and other HTTP verbs.\n`RequestOptions` on the client, such as retries, will be respected when making these requests.\n\n```go\nvar (\n // params can be an io.Reader, a []byte, an encoding/json serializable object,\n // or a "…Params" struct defined in this library.\n params map[string]interface{}\n\n // result can be an []byte, *http.Response, a encoding/json deserializable object,\n // or a model defined in this library.\n result *http.Response\n)\nerr := client.Post(context.Background(), "/unspecified", params, &result)\nif err != nil {\n …\n}\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use either the `SDK_PackageOptionName.WithQuerySet()`\nor the `SDK_PackageOptionName.WithJSONSet()` methods.\n\n```go\nparams := FooNewParams{\n ID: SDK_PackageName.F("id_xxxx"),\n Data: SDK_PackageName.F(FooNewParamsData{\n FirstName: SDK_PackageName.F("John"),\n }),\n}\nclient.Foo.New(context.Background(), params, SDK_PackageOptionName.WithJSONSet("data.last_name", "Doe"))\n```\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may either access the raw JSON of the response as a string\nwith `result.JSON.RawJSON()`, or get the raw JSON of a particular field on the result with\n`result.JSON.Foo.Raw()`.\n\nAny fields that are not present on the response struct will be saved and can be accessed by `result.JSON.ExtraFields()` which returns the extra fields as a `map[string]Field`.\n\n### Middleware\n\nWe provide `SDK_PackageOptionName.WithMiddleware` which applies the given\nmiddleware to requests.\n\n```go\nfunc Logger(req *http.Request, next SDK_PackageOptionName.MiddlewareNext) (res *http.Response, err error) {\n\t// Before the request\n\tstart := time.Now()\n\tLogReq(req)\n\n\t// Forward the request to the next handler\n\tres, err = next(req)\n\n\t// Handle stuff after the request\n\tend := time.Now()\n\tLogRes(res, err, start - end)\n\n return res, err\n}\n\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\tSDK_PackageOptionName.WithMiddleware(Logger),\n)\n```\n\nWhen multiple middlewares are provided as variadic arguments, the middlewares\nare applied left to right. If `SDK_PackageOptionName.WithMiddleware` is given\nmultiple times, for example first in the client then the method, the\nmiddleware in the client will run first and the middleware given in the method\nwill run next.\n\nYou may also replace the default `http.Client` with\n`SDK_PackageOptionName.WithHTTPClient(client)`. Only one http client is\naccepted (this overwrites any previous client) and receives requests after any\nmiddleware has been applied.\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/nirvana-labs/nirvana-go/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
|
|
3912
4037
|
},
|
|
3913
4038
|
{
|
|
3914
4039
|
language: 'terraform',
|
|
3915
4040
|
content:
|
|
3916
|
-
'# Nirvana Labs Terraform Provider\n\nThe [Nirvana Labs Terraform provider](https://registry.terraform.io/providers/nirvana-labs/nirvana/latest/docs) provides convenient access to\nthe [Nirvana Labs REST API](https://docs.nirvanalabs.io) from Terraform.\n\n\n\n## Requirements\n\nThis provider requires Terraform CLI 1.0 or later. You can [install it for your system](https://developer.hashicorp.com/terraform/install)\non Hashicorp\'s website.\n\n## Usage\n\nAdd the following to your `main.tf` file:\n\n<!-- x-release-please-start-version -->\n\n```hcl\n# Declare the provider and version\nterraform {\n required_providers {\n SDK_ProviderTypeName = {\n source = "nirvana-labs/nirvana"\n version = "~>
|
|
4041
|
+
'# Nirvana Labs Terraform Provider\n\nThe [Nirvana Labs Terraform provider](https://registry.terraform.io/providers/nirvana-labs/nirvana/latest/docs) provides convenient access to\nthe [Nirvana Labs REST API](https://docs.nirvanalabs.io) from Terraform.\n\n\n\n## Requirements\n\nThis provider requires Terraform CLI 1.0 or later. You can [install it for your system](https://developer.hashicorp.com/terraform/install)\non Hashicorp\'s website.\n\n## Usage\n\nAdd the following to your `main.tf` file:\n\n<!-- x-release-please-start-version -->\n\n```hcl\n# Declare the provider and version\nterraform {\n required_providers {\n SDK_ProviderTypeName = {\n source = "nirvana-labs/nirvana"\n version = "~> 1.91.1"\n }\n }\n}\n\n# Initialize the provider\nprovider "nirvana" {\n api_key = "My API Key" # or set NIRVANA_LABS_API_KEY env variable\n}\n\n# Configure a resource\nresource "nirvana_compute_vm" "example_compute_vm" {\n boot_volume = {\n size = 100\n type = "abs"\n tags = ["production", "ethereum"]\n }\n instance_type = "n1-standard-2"\n name = "my-vm"\n os_image_name = "ubuntu-noble-2025-10-01"\n project_id = "123e4567-e89b-12d3-a456-426614174000"\n public_ip_enabled = true\n region = "us-sva-2"\n ssh_key = {\n public_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2"\n }\n subnet_id = "123e4567-e89b-12d3-a456-426614174000"\n data_volumes = [{\n name = "my-data-volume"\n size = 100\n type = "abs"\n tags = ["production", "ethereum"]\n }]\n tags = ["production", "ethereum"]\n}\n```\n\n<!-- x-release-please-end -->\n\nInitialize your project by running `terraform init` in the directory.\n\nAdditional examples can be found in the [./examples](./examples) folder within this repository, and you can\nrefer to the full documentation on [the Terraform Registry](https://registry.terraform.io/providers/nirvana-labs/nirvana/latest/docs).\n\n### Provider Options\nWhen you initialize the provider, the following options are supported. It is recommended to use environment variables for sensitive values like access tokens.\nIf an environment variable is provided, then the option does not need to be set in the terraform source.\n\n| Property | Environment variable | Required | Default value |\n| -------- | ---------------------- | -------- | ------------- |\n| api_key | `NIRVANA_LABS_API_KEY` | true | — |\n\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/nirvana-labs/terraform-provider-nirvana/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
|
|
3917
4042
|
},
|
|
3918
4043
|
{
|
|
3919
|
-
language: '
|
|
4044
|
+
language: 'cli',
|
|
3920
4045
|
content:
|
|
3921
|
-
"# Nirvana Labs TypeScript API Library\n\n[)](https://npmjs.org/package/@nirvana-labs/nirvana) \n\nThis library provides convenient access to the Nirvana Labs REST API from server-side TypeScript or JavaScript.\n\n\n\nThe REST API documentation can be found on [docs.nirvanalabs.io](https://docs.nirvanalabs.io). The full API of this library can be found in [api.md](api.md).\n\n\n\n## MCP Server\n\nUse the Nirvana Labs MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=%40nirvana-labs%2Fnirvana-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBuaXJ2YW5hLWxhYnMvbmlydmFuYS1tY3AiXSwiZW52Ijp7Ik5JUlZBTkFfTEFCU19BUElfS0VZIjoiTXkgQVBJIEtleSJ9fQ)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40nirvana-labs%2Fnirvana-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40nirvana-labs%2Fnirvana-mcp%22%5D%2C%22env%22%3A%7B%22NIRVANA_LABS_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n```sh\nnpm install @nirvana-labs/nirvana\n```\n\n\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n<!-- prettier-ignore -->\n```js\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst operation = await client.compute.vms.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n});\n\nconsole.log(operation.id);\n```\n\n\n\n### Request & Response types\n\nThis library includes TypeScript definitions for all request params and response fields. You may import and use them like so:\n\n<!-- prettier-ignore -->\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted\n});\n\nconst params: NirvanaLabs.Compute.VMCreateParams = {\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n};\nconst operation: NirvanaLabs.Operation = await client.compute.vms.create(params);\n```\n\nDocumentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.\n\n\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API,\nor if the API returns a non-success status code (i.e., 4xx or 5xx response),\na subclass of `APIError` will be thrown:\n\n<!-- prettier-ignore -->\n```ts\nconst operation = await client.compute.vms\n .create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key:\n 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n })\n .catch(async (err) => {\n if (err instanceof NirvanaLabs.APIError) {\n console.log(err.status); // 400\n console.log(err.name); // BadRequestError\n console.log(err.headers); // {server: 'nginx', ...}\n } else {\n throw err;\n }\n });\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors will all be retried by default.\n\nYou can use the `maxRetries` option to configure or disable this:\n\n<!-- prettier-ignore -->\n```js\n// Configure the default for all requests:\nconst client = new NirvanaLabs({\n maxRetries: 0, // default is 2\n});\n\n// Or, configure per-request:\nawait client.compute.vms.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: { public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2' },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n}, {\n maxRetries: 5,\n});\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default. You can configure this with a `timeout` option:\n\n<!-- prettier-ignore -->\n```ts\n// Configure the default for all requests:\nconst client = new NirvanaLabs({\n timeout: 20 * 1000, // 20 seconds (default is 1 minute)\n});\n\n// Override per-request:\nawait client.compute.vms.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: { public_key: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2' },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n}, {\n timeout: 5 * 1000,\n});\n```\n\nOn timeout, an `APIConnectionTimeoutError` is thrown.\n\nNote that requests which time out will be [retried twice by default](#retries).\n\n## Auto-pagination\n\nList methods in the NirvanaLabs API are paginated.\nYou can use the `for await … of` syntax to iterate through items across all pages:\n\n```ts\nasync function fetchAllVMs(params) {\n const allVMs = [];\n // Automatically fetches more pages as needed.\n for await (const vm of client.compute.vms.list({\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n limit: 10,\n })) {\n allVMs.push(vm);\n }\n return allVMs;\n}\n```\n\nAlternatively, you can request a single page at a time:\n\n```ts\nlet page = await client.compute.vms.list({\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n limit: 10,\n});\nfor (const vm of page.items) {\n console.log(vm);\n}\n\n// Convenience methods are provided for manually paginating:\nwhile (page.hasNextPage()) {\n page = await page.getNextPage();\n // ...\n}\n```\n\n\n\n## Advanced Usage\n\n### Accessing raw Response data (e.g., headers)\n\nThe \"raw\" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.\nThis method returns as soon as the headers for a successful response are received and does not consume the response body, so you are free to write custom parsing or streaming logic.\n\nYou can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.\nUnlike `.asResponse()` this method consumes the body, returning once it is parsed.\n\n<!-- prettier-ignore -->\n```ts\nconst client = new NirvanaLabs();\n\nconst response = await client.compute.vms\n .create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key:\n 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n })\n .asResponse();\nconsole.log(response.headers.get('X-My-Header'));\nconsole.log(response.statusText); // access the underlying Response object\n\nconst { data: operation, response: raw } = await client.compute.vms\n .create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-2',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2025-10-01',\n project_id: '123e4567-e89b-12d3-a456-426614174000',\n public_ip_enabled: true,\n region: 'us-sva-2',\n ssh_key: {\n public_key:\n 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2',\n },\n subnet_id: '123e4567-e89b-12d3-a456-426614174000',\n })\n .withResponse();\nconsole.log(raw.headers.get('X-My-Header'));\nconsole.log(operation.id);\n```\n\n### Logging\n\n> [!IMPORTANT]\n> All log messages are intended for debugging only. The format and content of log messages\n> may change between releases.\n\n#### Log levels\n\nThe log level can be configured in two ways:\n\n1. Via the `NIRVANA_LABS_LOG` environment variable\n2. Using the `logLevel` client option (overrides the environment variable if set)\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n logLevel: 'debug', // Show all log messages\n});\n```\n\nAvailable log levels, from most to least verbose:\n\n- `'debug'` - Show debug messages, info, warnings, and errors\n- `'info'` - Show info messages, warnings, and errors\n- `'warn'` - Show warnings and errors (default)\n- `'error'` - Show only errors\n- `'off'` - Disable all logging\n\nAt the `'debug'` level, all HTTP requests and responses are logged, including headers and bodies.\nSome authentication-related headers are redacted, but sensitive data in request and response bodies\nmay still be visible.\n\n#### Custom logger\n\nBy default, this library logs to `globalThis.console`. You can also provide a custom logger.\nMost logging libraries are supported, including [pino](https://www.npmjs.com/package/pino), [winston](https://www.npmjs.com/package/winston), [bunyan](https://www.npmjs.com/package/bunyan), [consola](https://www.npmjs.com/package/consola), [signale](https://www.npmjs.com/package/signale), and [@std/log](https://jsr.io/@std/log). If your logger doesn't work, please open an issue.\n\nWhen providing a custom logger, the `logLevel` option still controls which messages are emitted, messages\nbelow the configured level will not be sent to your logger.\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\nimport pino from 'pino';\n\nconst logger = pino();\n\nconst client = new NirvanaLabs({\n logger: logger.child({ name: 'NirvanaLabs' }),\n logLevel: 'debug', // Send all messages to pino, allowing it to filter\n});\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.get`, `client.post`, and other HTTP verbs.\nOptions on the client, such as retries, will be respected when making these requests.\n\n```ts\nawait client.post('/some/path', {\n body: { some_prop: 'foo' },\n query: { some_query_arg: 'bar' },\n});\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use `// @ts-expect-error` on the undocumented\nparameter. This library doesn't validate at runtime that the request matches the type, so any extra values you\nsend will be sent as-is.\n\n```ts\nclient.compute.vms.create({\n // ...\n // @ts-expect-error baz is not yet public\n baz: 'undocumented option',\n});\n```\n\nFor requests with the `GET` verb, any extra params will be in the query, all other requests will send the\nextra param in the body.\n\nIf you want to explicitly send an extra argument, you can do so with the `query`, `body`, and `headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may access the response object with `// @ts-expect-error` on\nthe response object, or cast the response object to the requisite type. Like the request params, we do not\nvalidate or strip extra properties from the response from the API.\n\n### Customizing the fetch client\n\nBy default, this library expects a global `fetch` function is defined.\n\nIf you want to use a different `fetch` function, you can either polyfill the global:\n\n```ts\nimport fetch from 'my-fetch';\n\nglobalThis.fetch = fetch;\n```\n\nOr pass it to the client:\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\nimport fetch from 'my-fetch';\n\nconst client = new NirvanaLabs({ fetch });\n```\n\n### Fetch options\n\nIf you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.)\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n fetchOptions: {\n // `RequestInit` options\n },\n});\n```\n\n#### Configuring proxies\n\nTo modify proxy behavior, you can provide custom `fetchOptions` that add runtime-specific proxy\noptions to requests:\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/node.svg\" align=\"top\" width=\"18\" height=\"21\"> **Node** <sup>[[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)]</sup>\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\nimport * as undici from 'undici';\n\nconst proxyAgent = new undici.ProxyAgent('http://localhost:8888');\nconst client = new NirvanaLabs({\n fetchOptions: {\n dispatcher: proxyAgent,\n },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/bun.svg\" align=\"top\" width=\"18\" height=\"21\"> **Bun** <sup>[[docs](https://bun.sh/guides/http/proxy)]</sup>\n\n```ts\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs({\n fetchOptions: {\n proxy: 'http://localhost:8888',\n },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/deno.svg\" align=\"top\" width=\"18\" height=\"21\"> **Deno** <sup>[[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)]</sup>\n\n```ts\nimport NirvanaLabs from 'npm:@nirvana-labs/nirvana';\n\nconst httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } });\nconst client = new NirvanaLabs({\n fetchOptions: {\n client: httpClient,\n },\n});\n```\n\n## Frequently Asked Questions\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/nirvana-labs/nirvana-typescript/issues) with questions, bugs, or suggestions.\n\n## Requirements\n\nTypeScript >= 4.9 is supported.\n\nThe following runtimes are supported:\n\n- Web browsers (Up-to-date Chrome, Firefox, Safari, Edge, and more)\n- Node.js 20 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.\n- Deno v1.28.0 or higher.\n- Bun 1.0 or later.\n- Cloudflare Workers.\n- Vercel Edge Runtime.\n- Jest 28 or greater with the `\"node\"` environment (`\"jsdom\"` is not supported at this time).\n- Nitro v2.6 or greater.\n\nNote that React Native is not supported at this time.\n\nIf you are interested in other runtime environments, please open or upvote an issue on GitHub.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n",
|
|
4046
|
+
"# Nirvana Labs CLI\n\nThe official CLI for the [Nirvana Labs REST API](https://docs.nirvanalabs.io).\n\n<!-- x-release-please-start-version -->\n\n## Installation\n\n### Installing with Homebrew\n\n~~~sh\nbrew install nirvana-labs/tap/nirvana\n~~~\n\n### Installing with Go\n\nTo test or install the CLI locally, you need [Go](https://go.dev/doc/install) version 1.22 or later installed.\n\n~~~sh\ngo install 'github.com/nirvana-labs/nirvana-cli/cmd/nirvana@latest'\n~~~\n\nOnce you have run `go install`, the binary is placed in your Go bin directory:\n\n- **Default location**: `$HOME/go/bin` (or `$GOPATH/bin` if GOPATH is set)\n- **Check your path**: Run `go env GOPATH` to see the base directory\n\nIf commands aren't found after installation, add the Go bin directory to your PATH:\n\n~~~sh\n# Add to your shell profile (.zshrc, .bashrc, etc.)\nexport PATH=\"$PATH:$(go env GOPATH)/bin\"\n~~~\n\n<!-- x-release-please-end -->\n\n### Running Locally\n\nAfter cloning the git repository for this project, you can use the\n`scripts/run` script to run the tool locally:\n\n~~~sh\n./scripts/run args...\n~~~\n\n## Usage\n\nThe CLI follows a resource-based command structure:\n\n~~~sh\nnirvana [resource] <command> [flags...]\n~~~\n\n~~~sh\nnirvana compute:vms create \\\n --api-key 'My API Key' \\\n --boot-volume '{size: 100, type: abs}' \\\n --instance-type n1-standard-2 \\\n --name my-vm \\\n --os-image-name ubuntu-noble-2025-10-01 \\\n --project-id 123e4567-e89b-12d3-a456-426614174000 \\\n --public-ip-enabled \\\n --region us-sva-2 \\\n --ssh-key '{public_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2}' \\\n --subnet-id 123e4567-e89b-12d3-a456-426614174000\n~~~\n\nFor details about specific commands, use the `--help` flag.\n\n### Environment variables\n\n| Environment variable | Required |\n| ---------------------- | -------- |\n| `NIRVANA_LABS_API_KEY` | yes |\n\n### Global flags\n\n- `--api-key` (can also be set with `NIRVANA_LABS_API_KEY` env var)\n- `--help` - Show command line usage\n- `--debug` - Enable debug logging (includes HTTP request/response details)\n- `--version`, `-v` - Show the CLI version\n- `--base-url` - Use a custom API backend URL\n- `--format` - Change the output format (`auto`, `explore`, `json`, `jsonl`, `pretty`, `raw`, `yaml`)\n- `--format-error` - Change the output format for errors (`auto`, `explore`, `json`, `jsonl`, `pretty`, `raw`, `yaml`)\n- `--transform` - Transform the data output using [GJSON syntax](https://github.com/tidwall/gjson/blob/master/SYNTAX.md)\n- `--transform-error` - Transform the error output using [GJSON syntax](https://github.com/tidwall/gjson/blob/master/SYNTAX.md)\n\n### Passing files as arguments\n\nTo pass files to your API, you can use the `@myfile.ext` syntax:\n\n~~~bash\nnirvana <command> --arg @abe.jpg\n~~~\n\nFiles can also be passed inside JSON or YAML blobs:\n\n~~~bash\nnirvana <command> --arg '{image: \"@abe.jpg\"}'\n# Equivalent:\nnirvana <command> <<YAML\narg:\n image: \"@abe.jpg\"\nYAML\n~~~\n\nIf you need to pass a string literal that begins with an `@` sign, you can\nescape the `@` sign to avoid accidentally passing a file.\n\n~~~bash\nnirvana <command> --username '\\@abe'\n~~~\n\n#### Explicit encoding\n\nFor JSON endpoints, the CLI tool does filetype sniffing to determine whether the\nfile contents should be sent as a string literal (for plain text files) or as a\nbase64-encoded string literal (for binary files). If you need to explicitly send\nthe file as either plain text or base64-encoded data, you can use\n`@file://myfile.txt` (for string encoding) or `@data://myfile.dat` (for\nbase64-encoding). Note that absolute paths will begin with `@file://` or\n`@data://`, followed by a third `/` (for example, `@file:///tmp/file.txt`).\n\n~~~bash\nnirvana <command> --arg @data://file.txt\n~~~\n\n## Linking different Go SDK versions\n\nYou can link the CLI against a different version of the Nirvana Labs Go SDK\nfor development purposes using the `./scripts/link` script.\n\nTo link to a specific version from a repository (version can be a branch,\ngit tag, or commit hash):\n\n~~~bash\n./scripts/link github.com/org/repo@version\n~~~\n\nTo link to a local copy of the SDK:\n\n~~~bash\n./scripts/link ../path/to/nirvana-go\n~~~\n\nIf you run the link script without any arguments, it will default to `../nirvana-go`.\n",
|
|
3922
4047
|
},
|
|
3923
4048
|
];
|
|
3924
4049
|
|