@nirvana-labs/nirvana-mcp 2.1.1 → 2.2.0
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 +6 -0
- package/code-tool-worker.js.map +1 -1
- package/code-tool-worker.mjs +6 -0
- package/code-tool-worker.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 +207 -54
- package/local-docs-search.js.map +1 -1
- package/local-docs-search.mjs +207 -54
- 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 +36 -0
- package/methods.js.map +1 -1
- package/methods.mjs +36 -0
- package/methods.mjs.map +1 -1
- package/package.json +2 -2
- package/server.js +1 -1
- package/server.mjs +1 -1
- package/src/code-tool-worker.ts +6 -0
- package/src/local-docs-search.ts +241 -54
- package/src/methods.ts +36 -0
- package/src/server.ts +1 -1
package/local-docs-search.mjs
CHANGED
|
@@ -539,6 +539,158 @@ const EMBEDDED_METHODS = [
|
|
|
539
539
|
},
|
|
540
540
|
},
|
|
541
541
|
},
|
|
542
|
+
{
|
|
543
|
+
name: 'update',
|
|
544
|
+
endpoint: '/v1/organizations/{organization_id}/memberships/{membership_id}',
|
|
545
|
+
httpMethod: 'patch',
|
|
546
|
+
summary: 'Update Organization Membership',
|
|
547
|
+
description: 'Change the role of a member of an organization. Owners may assign any role. Admins may assign admin, billing or member, and cannot change the role of an owner. The last owner cannot be demoted, and members cannot change their own role except for an owner stepping down while another owner remains.',
|
|
548
|
+
stainlessPath: '(resource) organizations.memberships > (method) update',
|
|
549
|
+
qualified: 'client.organizations.memberships.update',
|
|
550
|
+
params: [
|
|
551
|
+
'organization_id: string;',
|
|
552
|
+
'membership_id: string;',
|
|
553
|
+
"role: 'owner' | 'admin' | 'billing' | 'member';",
|
|
554
|
+
],
|
|
555
|
+
response: "{ id: string; created_at: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; updated_at: string; user_id: string; }",
|
|
556
|
+
markdown: "## update\n\n`client.organizations.memberships.update(organization_id: string, membership_id: string, role: 'owner' | 'admin' | 'billing' | 'member'): { id: string; created_at: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; updated_at: string; user_id: string; }`\n\n**patch** `/v1/organizations/{organization_id}/memberships/{membership_id}`\n\nChange the role of a member of an organization. Owners may assign any role. Admins may assign admin, billing or member, and cannot change the role of an owner. The last owner cannot be demoted, and members cannot change their own role except for an owner stepping down while another owner remains.\n\n### Parameters\n\n- `organization_id: string`\n\n- `membership_id: string`\n\n- `role: 'owner' | 'admin' | 'billing' | 'member'`\n Role of the user in the organization.\n\n### Returns\n\n- `{ id: string; created_at: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; updated_at: string; user_id: string; }`\n Organization membership details.\n\n - `id: string`\n - `created_at: string`\n - `organization_id: string`\n - `role: 'owner' | 'admin' | 'billing' | 'member'`\n - `updated_at: string`\n - `user_id: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst organizationMembership = await client.organizations.memberships.update('membership_id', { organization_id: 'organization_id', role: 'owner' });\n\nconsole.log(organizationMembership);\n```",
|
|
557
|
+
perLanguage: {
|
|
558
|
+
typescript: {
|
|
559
|
+
method: 'client.organizations.memberships.update',
|
|
560
|
+
example: "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.update('membership_id', {\n organization_id: 'organization_id',\n role: 'owner',\n});\n\nconsole.log(organizationMembership.id);",
|
|
561
|
+
},
|
|
562
|
+
http: {
|
|
563
|
+
example: 'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/memberships/$MEMBERSHIP_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "role": "owner"\n }\'',
|
|
564
|
+
},
|
|
565
|
+
go: {
|
|
566
|
+
method: 'client.Organizations.Memberships.Update',
|
|
567
|
+
example: 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/nirvana-labs/nirvana-go/v2"\n\t"github.com/nirvana-labs/nirvana-go/v2/option"\n\t"github.com/nirvana-labs/nirvana-go/v2/organizations"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"),\n\t)\n\torganizationMembership, err := client.Organizations.Memberships.Update(\n\t\tcontext.TODO(),\n\t\t"organization_id",\n\t\t"membership_id",\n\t\torganizations.MembershipUpdateParams{\n\t\t\tRole: organizations.MembershipUpdateParamsRoleOwner,\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", organizationMembership.ID)\n}\n',
|
|
568
|
+
},
|
|
569
|
+
},
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
name: 'delete',
|
|
573
|
+
endpoint: '/v1/organizations/{organization_id}/memberships/{membership_id}',
|
|
574
|
+
httpMethod: 'delete',
|
|
575
|
+
summary: 'Delete Organization Membership',
|
|
576
|
+
description: 'Remove a member from an organization. Admins cannot remove an owner, and the last owner cannot be removed.',
|
|
577
|
+
stainlessPath: '(resource) organizations.memberships > (method) delete',
|
|
578
|
+
qualified: 'client.organizations.memberships.delete',
|
|
579
|
+
params: ['organization_id: string;', 'membership_id: string;'],
|
|
580
|
+
markdown: "## delete\n\n`client.organizations.memberships.delete(organization_id: string, membership_id: string): void`\n\n**delete** `/v1/organizations/{organization_id}/memberships/{membership_id}`\n\nRemove a member from an organization. Admins cannot remove an owner, and the last owner cannot be removed.\n\n### Parameters\n\n- `organization_id: string`\n\n- `membership_id: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nawait client.organizations.memberships.delete('membership_id', { organization_id: 'organization_id' })\n```",
|
|
581
|
+
perLanguage: {
|
|
582
|
+
typescript: {
|
|
583
|
+
method: 'client.organizations.memberships.delete',
|
|
584
|
+
example: "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.memberships.delete('membership_id', {\n organization_id: 'organization_id',\n});",
|
|
585
|
+
},
|
|
586
|
+
http: {
|
|
587
|
+
example: 'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/memberships/$MEMBERSHIP_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
588
|
+
},
|
|
589
|
+
go: {
|
|
590
|
+
method: 'client.Organizations.Memberships.Delete',
|
|
591
|
+
example: 'package main\n\nimport (\n\t"context"\n\n\t"github.com/nirvana-labs/nirvana-go/v2"\n\t"github.com/nirvana-labs/nirvana-go/v2/option"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"),\n\t)\n\terr := client.Organizations.Memberships.Delete(\n\t\tcontext.TODO(),\n\t\t"organization_id",\n\t\t"membership_id",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
|
|
592
|
+
},
|
|
593
|
+
},
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
name: 'create',
|
|
597
|
+
endpoint: '/v1/organizations/{organization_id}/memberships/invitations',
|
|
598
|
+
httpMethod: 'post',
|
|
599
|
+
summary: 'Create Organization Invitation',
|
|
600
|
+
description: 'Invite an email address to join an organization with a role. The membership is created when the invitee accepts. Owners may invite with any role; admins may invite with admin, billing or member.',
|
|
601
|
+
stainlessPath: '(resource) organizations.memberships.invitations > (method) create',
|
|
602
|
+
qualified: 'client.organizations.memberships.invitations.create',
|
|
603
|
+
params: ['organization_id: string;', 'email: string;', "role: 'owner' | 'admin' | 'billing' | 'member';"],
|
|
604
|
+
response: "{ id: string; created_at: string; email: string; expires_at: string; inviter_user_id: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; }",
|
|
605
|
+
markdown: "## create\n\n`client.organizations.memberships.invitations.create(organization_id: string, email: string, role: 'owner' | 'admin' | 'billing' | 'member'): { id: string; created_at: string; email: string; expires_at: string; inviter_user_id: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; }`\n\n**post** `/v1/organizations/{organization_id}/memberships/invitations`\n\nInvite an email address to join an organization with a role. The membership is created when the invitee accepts. Owners may invite with any role; admins may invite with admin, billing or member.\n\n### Parameters\n\n- `organization_id: string`\n\n- `email: string`\n Email address to invite. Inviting an address that already belongs to a member of the organization fails.\n\n- `role: 'owner' | 'admin' | 'billing' | 'member'`\n Role of the user in the organization.\n\n### Returns\n\n- `{ id: string; created_at: string; email: string; expires_at: string; inviter_user_id: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; }`\n Organization invitation details.\n\n - `id: string`\n - `created_at: string`\n - `email: string`\n - `expires_at: string`\n - `inviter_user_id: string`\n - `organization_id: string`\n - `role: 'owner' | 'admin' | 'billing' | 'member'`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst organizationInvitation = await client.organizations.memberships.invitations.create('organization_id', { email: 'jane@example.com', role: 'owner' });\n\nconsole.log(organizationInvitation);\n```",
|
|
606
|
+
perLanguage: {
|
|
607
|
+
typescript: {
|
|
608
|
+
method: 'client.organizations.memberships.invitations.create',
|
|
609
|
+
example: "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 organizationInvitation = await client.organizations.memberships.invitations.create(\n 'organization_id',\n { email: 'jane@example.com', role: 'owner' },\n);\n\nconsole.log(organizationInvitation.id);",
|
|
610
|
+
},
|
|
611
|
+
http: {
|
|
612
|
+
example: 'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/memberships/invitations \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \\\n -d \'{\n "email": "jane@example.com",\n "role": "owner"\n }\'',
|
|
613
|
+
},
|
|
614
|
+
go: {
|
|
615
|
+
method: 'client.Organizations.Memberships.Invitations.New',
|
|
616
|
+
example: 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/nirvana-labs/nirvana-go/v2"\n\t"github.com/nirvana-labs/nirvana-go/v2/option"\n\t"github.com/nirvana-labs/nirvana-go/v2/organizations"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"),\n\t)\n\torganizationInvitation, err := client.Organizations.Memberships.Invitations.New(\n\t\tcontext.TODO(),\n\t\t"organization_id",\n\t\torganizations.MembershipInvitationNewParams{\n\t\t\tEmail: "jane@example.com",\n\t\t\tRole: organizations.MembershipInvitationNewParamsRoleOwner,\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", organizationInvitation.ID)\n}\n',
|
|
617
|
+
},
|
|
618
|
+
},
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
name: 'list',
|
|
622
|
+
endpoint: '/v1/organizations/{organization_id}/memberships/invitations',
|
|
623
|
+
httpMethod: 'get',
|
|
624
|
+
summary: 'List Organization Invitations',
|
|
625
|
+
description: 'List the invitations to an organization that are still pending: not yet accepted, revoked or expired. Only owners and admins may list invitations.',
|
|
626
|
+
stainlessPath: '(resource) organizations.memberships.invitations > (method) list',
|
|
627
|
+
qualified: 'client.organizations.memberships.invitations.list',
|
|
628
|
+
params: ['organization_id: string;'],
|
|
629
|
+
response: "{ items: { id: string; created_at: string; email: string; expires_at: string; inviter_user_id: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; }[]; pagination: { next_cursor: string; previous_cursor: string; total_count: number; }; }",
|
|
630
|
+
markdown: "## list\n\n`client.organizations.memberships.invitations.list(organization_id: string): { items: organization_invitation[]; pagination: pagination; }`\n\n**get** `/v1/organizations/{organization_id}/memberships/invitations`\n\nList the invitations to an organization that are still pending: not yet accepted, revoked or expired. Only owners and admins may list invitations.\n\n### Parameters\n\n- `organization_id: string`\n\n### Returns\n\n- `{ items: { id: string; created_at: string; email: string; expires_at: string; inviter_user_id: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; }[]; pagination: { next_cursor: string; previous_cursor: string; total_count: number; }; }`\n\n - `items: { id: string; created_at: string; email: string; expires_at: string; inviter_user_id: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; }[]`\n - `pagination: { next_cursor: string; previous_cursor: string; total_count: number; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst organizationInvitationList = await client.organizations.memberships.invitations.list('organization_id');\n\nconsole.log(organizationInvitationList);\n```",
|
|
631
|
+
perLanguage: {
|
|
632
|
+
typescript: {
|
|
633
|
+
method: 'client.organizations.memberships.invitations.list',
|
|
634
|
+
example: "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 organizationInvitationList = await client.organizations.memberships.invitations.list(\n 'organization_id',\n);\n\nconsole.log(organizationInvitationList.items);",
|
|
635
|
+
},
|
|
636
|
+
http: {
|
|
637
|
+
example: 'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/memberships/invitations \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
638
|
+
},
|
|
639
|
+
go: {
|
|
640
|
+
method: 'client.Organizations.Memberships.Invitations.List',
|
|
641
|
+
example: 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/nirvana-labs/nirvana-go/v2"\n\t"github.com/nirvana-labs/nirvana-go/v2/option"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"),\n\t)\n\torganizationInvitationList, err := client.Organizations.Memberships.Invitations.List(context.TODO(), "organization_id")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", organizationInvitationList.Items)\n}\n',
|
|
642
|
+
},
|
|
643
|
+
},
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
name: 'resend',
|
|
647
|
+
endpoint: '/v1/organizations/{organization_id}/memberships/invitations/{invitation_id}/resend',
|
|
648
|
+
httpMethod: 'post',
|
|
649
|
+
summary: 'Resend Organization Invitation',
|
|
650
|
+
description: "Send a pending invitation's email again. Owners may resend any invitation; admins may resend invitations with the admin, billing or member role.",
|
|
651
|
+
stainlessPath: '(resource) organizations.memberships.invitations > (method) resend',
|
|
652
|
+
qualified: 'client.organizations.memberships.invitations.resend',
|
|
653
|
+
params: ['organization_id: string;', 'invitation_id: string;'],
|
|
654
|
+
response: "{ id: string; created_at: string; email: string; expires_at: string; inviter_user_id: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; }",
|
|
655
|
+
markdown: "## resend\n\n`client.organizations.memberships.invitations.resend(organization_id: string, invitation_id: string): { id: string; created_at: string; email: string; expires_at: string; inviter_user_id: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; }`\n\n**post** `/v1/organizations/{organization_id}/memberships/invitations/{invitation_id}/resend`\n\nSend a pending invitation's email again. Owners may resend any invitation; admins may resend invitations with the admin, billing or member role.\n\n### Parameters\n\n- `organization_id: string`\n\n- `invitation_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; email: string; expires_at: string; inviter_user_id: string; organization_id: string; role: 'owner' | 'admin' | 'billing' | 'member'; }`\n Organization invitation details.\n\n - `id: string`\n - `created_at: string`\n - `email: string`\n - `expires_at: string`\n - `inviter_user_id: string`\n - `organization_id: string`\n - `role: 'owner' | 'admin' | 'billing' | 'member'`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst organizationInvitation = await client.organizations.memberships.invitations.resend('invitation_id', { organization_id: 'organization_id' });\n\nconsole.log(organizationInvitation);\n```",
|
|
656
|
+
perLanguage: {
|
|
657
|
+
typescript: {
|
|
658
|
+
method: 'client.organizations.memberships.invitations.resend',
|
|
659
|
+
example: "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 organizationInvitation = await client.organizations.memberships.invitations.resend(\n 'invitation_id',\n { organization_id: 'organization_id' },\n);\n\nconsole.log(organizationInvitation.id);",
|
|
660
|
+
},
|
|
661
|
+
http: {
|
|
662
|
+
example: 'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/memberships/invitations/$INVITATION_ID/resend \\\n -X POST \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
663
|
+
},
|
|
664
|
+
go: {
|
|
665
|
+
method: 'client.Organizations.Memberships.Invitations.Resend',
|
|
666
|
+
example: 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/nirvana-labs/nirvana-go/v2"\n\t"github.com/nirvana-labs/nirvana-go/v2/option"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"),\n\t)\n\torganizationInvitation, err := client.Organizations.Memberships.Invitations.Resend(\n\t\tcontext.TODO(),\n\t\t"organization_id",\n\t\t"invitation_id",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", organizationInvitation.ID)\n}\n',
|
|
667
|
+
},
|
|
668
|
+
},
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
name: 'delete',
|
|
672
|
+
endpoint: '/v1/organizations/{organization_id}/memberships/invitations/{invitation_id}',
|
|
673
|
+
httpMethod: 'delete',
|
|
674
|
+
summary: 'Revoke Organization Invitation',
|
|
675
|
+
description: 'Revoke a pending invitation so it can no longer be accepted. Owners may revoke any invitation; admins may revoke invitations with the admin, billing or member role.',
|
|
676
|
+
stainlessPath: '(resource) organizations.memberships.invitations > (method) delete',
|
|
677
|
+
qualified: 'client.organizations.memberships.invitations.delete',
|
|
678
|
+
params: ['organization_id: string;', 'invitation_id: string;'],
|
|
679
|
+
markdown: "## delete\n\n`client.organizations.memberships.invitations.delete(organization_id: string, invitation_id: string): void`\n\n**delete** `/v1/organizations/{organization_id}/memberships/invitations/{invitation_id}`\n\nRevoke a pending invitation so it can no longer be accepted. Owners may revoke any invitation; admins may revoke invitations with the admin, billing or member role.\n\n### Parameters\n\n- `organization_id: string`\n\n- `invitation_id: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nawait client.organizations.memberships.invitations.delete('invitation_id', { organization_id: 'organization_id' })\n```",
|
|
680
|
+
perLanguage: {
|
|
681
|
+
typescript: {
|
|
682
|
+
method: 'client.organizations.memberships.invitations.delete',
|
|
683
|
+
example: "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.memberships.invitations.delete('invitation_id', {\n organization_id: 'organization_id',\n});",
|
|
684
|
+
},
|
|
685
|
+
http: {
|
|
686
|
+
example: 'curl https://api.nirvanalabs.io/v1/organizations/$ORGANIZATION_ID/memberships/invitations/$INVITATION_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"',
|
|
687
|
+
},
|
|
688
|
+
go: {
|
|
689
|
+
method: 'client.Organizations.Memberships.Invitations.Delete',
|
|
690
|
+
example: 'package main\n\nimport (\n\t"context"\n\n\t"github.com/nirvana-labs/nirvana-go/v2"\n\t"github.com/nirvana-labs/nirvana-go/v2/option"\n)\n\nfunc main() {\n\tclient := nirvana.NewClient(\n\t\toption.WithAPIKey("My API Key"),\n\t)\n\terr := client.Organizations.Memberships.Invitations.Delete(\n\t\tcontext.TODO(),\n\t\t"organization_id",\n\t\t"invitation_id",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
|
|
691
|
+
},
|
|
692
|
+
},
|
|
693
|
+
},
|
|
542
694
|
{
|
|
543
695
|
name: 'create',
|
|
544
696
|
endpoint: '/v1/organizations/{organization_id}/address',
|
|
@@ -753,7 +905,7 @@ const EMBEDDED_METHODS = [
|
|
|
753
905
|
qualified: 'client.organizations.billing.topUp',
|
|
754
906
|
params: ['organization_id: string;', 'amount: string;', 'Idempotency-Key: string;'],
|
|
755
907
|
response: '{ daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }',
|
|
756
|
-
markdown: "## top_up\n\n`client.organizations.billing.topUp(organization_id: string, amount: string, Idempotency-Key: string): { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n**post** `/v1/organizations/{organization_id}/billing/topup`\n\nCharge the card on file and credit the prepaid balance. An Idempotency-Key header is\nrequired. Reuse the same key when retrying, so a top-up that timed out isn't charged twice.\n\n### Parameters\n\n- `organization_id: string`\n\n- `amount: string`\n Amount to charge and credit, in USD. Must be
|
|
908
|
+
markdown: "## top_up\n\n`client.organizations.billing.topUp(organization_id: string, amount: string, Idempotency-Key: string): { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n**post** `/v1/organizations/{organization_id}/billing/topup`\n\nCharge the card on file and credit the prepaid balance. An Idempotency-Key header is\nrequired. Reuse the same key when retrying, so a top-up that timed out isn't charged twice.\n\n### Parameters\n\n- `organization_id: string`\n\n- `amount: string`\n Amount to charge and credit, in USD. Must be at least 1.00, at most two decimal places, and at most 10000.\n\n- `Idempotency-Key: string`\n\n### Returns\n\n- `{ daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n Forward-looking billing summary for an organization. All costs are run-rate projections from the organization's current active usage (\"≈ $X/mo at current usage\").\n\n - `daily_cost: string`\n - `effective_balance: string`\n - `monthly_cost: string`\n - `recharge_threshold_days: string`\n - `estimated_next_charge_at?: string`\n - `runway_months?: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst organizationBillingSummary = await client.organizations.billing.topUp('organization_id', { amount: '50.00', 'Idempotency-Key': 'Idempotency-Key' });\n\nconsole.log(organizationBillingSummary);\n```",
|
|
757
909
|
perLanguage: {
|
|
758
910
|
typescript: {
|
|
759
911
|
method: 'client.organizations.billing.topUp',
|
|
@@ -901,8 +1053,8 @@ const EMBEDDED_METHODS = [
|
|
|
901
1053
|
stainlessPath: '(resource) quotas > (method) get',
|
|
902
1054
|
qualified: 'client.quotas.get',
|
|
903
1055
|
params: ["region: 'us-sva-2';"],
|
|
904
|
-
response: "{ compute: { memory_gb: quota_dimension_detail; vcpu: quota_dimension_detail; }; networking: { public_ips: quota_dimension_detail; vpcs: quota_dimension_detail; }; nks: { clusters: quota_dimension_detail; node_pool_memory_gb: quota_dimension_detail; node_pool_vcpu: quota_dimension_detail; public_ips: quota_dimension_detail; }; region: 'us-sva-2'; storage: { abs: quota_dimension_detail; local_nvme: quota_dimension_detail; }; }",
|
|
905
|
-
markdown: "## get\n\n`client.quotas.get(region: 'us-sva-2'): { compute: quota_compute; networking: quota_networking; nks: quota_nks; region: region_name; storage: quota_storage; }`\n\n**get** `/v1/quotas/{region}`\n\nGet quota usage and limits for the current organization in a single region\n\n### Parameters\n\n- `region: 'us-sva-2'`\n\n### Returns\n\n- `{ compute: { memory_gb: quota_dimension_detail; vcpu: quota_dimension_detail; }; networking: { public_ips: quota_dimension_detail; vpcs: quota_dimension_detail; }; nks: { clusters: quota_dimension_detail; node_pool_memory_gb: quota_dimension_detail; node_pool_vcpu: quota_dimension_detail; public_ips: quota_dimension_detail; }; region: 'us-sva-2'; storage: { abs: quota_dimension_detail; local_nvme: quota_dimension_detail; }; }`\n Quota response.\n\n - `compute: { memory_gb: { limit: number; remaining: number; used: number; }; vcpu: { limit: number; remaining: number; used: number; }; }`\n - `networking: { public_ips: { limit: number; remaining: number; used: number; }; vpcs: { limit: number; remaining: number; used: number; }; }`\n - `nks: { clusters: { limit: number; remaining: number; used: number; }; node_pool_memory_gb: { limit: number; remaining: number; used: number; }; node_pool_vcpu: { limit: number; remaining: number; used: number; }; public_ips: { limit: number; remaining: number; used: number; }; }`\n - `region: 'us-sva-2'`\n - `storage: { abs: { limit: number; remaining: number; used: number; }; local_nvme: { limit: number; remaining: number; used: number; }; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst quota = await client.quotas.get('us-sva-2');\n\nconsole.log(quota);\n```",
|
|
1056
|
+
response: "{ compute: { memory_gb: quota_dimension_detail; vcpu: quota_dimension_detail; }; networking: { public_ips: quota_dimension_detail; vpcs: quota_dimension_detail; }; nks: { clusters: quota_dimension_detail; node_pool_memory_gb: quota_dimension_detail; node_pool_vcpu: quota_dimension_detail; public_ips: quota_dimension_detail; }; region: 'us-sva-2'; storage: { abs: quota_dimension_detail; local_nvme: quota_dimension_detail; longhorn: quota_dimension_detail; }; }",
|
|
1057
|
+
markdown: "## get\n\n`client.quotas.get(region: 'us-sva-2'): { compute: quota_compute; networking: quota_networking; nks: quota_nks; region: region_name; storage: quota_storage; }`\n\n**get** `/v1/quotas/{region}`\n\nGet quota usage and limits for the current organization in a single region\n\n### Parameters\n\n- `region: 'us-sva-2'`\n\n### Returns\n\n- `{ compute: { memory_gb: quota_dimension_detail; vcpu: quota_dimension_detail; }; networking: { public_ips: quota_dimension_detail; vpcs: quota_dimension_detail; }; nks: { clusters: quota_dimension_detail; node_pool_memory_gb: quota_dimension_detail; node_pool_vcpu: quota_dimension_detail; public_ips: quota_dimension_detail; }; region: 'us-sva-2'; storage: { abs: quota_dimension_detail; local_nvme: quota_dimension_detail; longhorn: quota_dimension_detail; }; }`\n Quota response.\n\n - `compute: { memory_gb: { limit: number; remaining: number; used: number; }; vcpu: { limit: number; remaining: number; used: number; }; }`\n - `networking: { public_ips: { limit: number; remaining: number; used: number; }; vpcs: { limit: number; remaining: number; used: number; }; }`\n - `nks: { clusters: { limit: number; remaining: number; used: number; }; node_pool_memory_gb: { limit: number; remaining: number; used: number; }; node_pool_vcpu: { limit: number; remaining: number; used: number; }; public_ips: { limit: number; remaining: number; used: number; }; }`\n - `region: 'us-sva-2'`\n - `storage: { abs: { limit: number; remaining: number; used: number; }; local_nvme: { limit: number; remaining: number; used: number; }; longhorn: { limit: number; remaining: number; used: number; }; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst quota = await client.quotas.get('us-sva-2');\n\nconsole.log(quota);\n```",
|
|
906
1058
|
perLanguage: {
|
|
907
1059
|
typescript: {
|
|
908
1060
|
method: 'client.quotas.get',
|
|
@@ -930,8 +1082,8 @@ const EMBEDDED_METHODS = [
|
|
|
930
1082
|
stainlessPath: '(resource) quotas > (method) list',
|
|
931
1083
|
qualified: 'client.quotas.list',
|
|
932
1084
|
params: ['cursor?: string;', 'limit?: number;', 'region?: string;', 'sort?: string;'],
|
|
933
|
-
response: "{ compute: { memory_gb: quota_dimension_detail; vcpu: quota_dimension_detail; }; networking: { public_ips: quota_dimension_detail; vpcs: quota_dimension_detail; }; nks: { clusters: quota_dimension_detail; node_pool_memory_gb: quota_dimension_detail; node_pool_vcpu: quota_dimension_detail; public_ips: quota_dimension_detail; }; region: 'us-sva-2'; storage: { abs: quota_dimension_detail; local_nvme: quota_dimension_detail; }; }",
|
|
934
|
-
markdown: "## list\n\n`client.quotas.list(cursor?: string, limit?: number, region?: string, sort?: string): { compute: quota_compute; networking: quota_networking; nks: quota_nks; region: region_name; storage: quota_storage; }`\n\n**get** `/v1/quotas`\n\nList quota usage and limits for the current organization across all regions\n\n### Parameters\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `limit?: number`\n Maximum number of items to return\n\n- `region?: string`\n Filter by region\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: region\n\n### Returns\n\n- `{ compute: { memory_gb: quota_dimension_detail; vcpu: quota_dimension_detail; }; networking: { public_ips: quota_dimension_detail; vpcs: quota_dimension_detail; }; nks: { clusters: quota_dimension_detail; node_pool_memory_gb: quota_dimension_detail; node_pool_vcpu: quota_dimension_detail; public_ips: quota_dimension_detail; }; region: 'us-sva-2'; storage: { abs: quota_dimension_detail; local_nvme: quota_dimension_detail; }; }`\n Quota response.\n\n - `compute: { memory_gb: { limit: number; remaining: number; used: number; }; vcpu: { limit: number; remaining: number; used: number; }; }`\n - `networking: { public_ips: { limit: number; remaining: number; used: number; }; vpcs: { limit: number; remaining: number; used: number; }; }`\n - `nks: { clusters: { limit: number; remaining: number; used: number; }; node_pool_memory_gb: { limit: number; remaining: number; used: number; }; node_pool_vcpu: { limit: number; remaining: number; used: number; }; public_ips: { limit: number; remaining: number; used: number; }; }`\n - `region: 'us-sva-2'`\n - `storage: { abs: { limit: number; remaining: number; used: number; }; local_nvme: { limit: number; remaining: number; used: number; }; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const quota of client.quotas.list()) {\n console.log(quota);\n}\n```",
|
|
1085
|
+
response: "{ compute: { memory_gb: quota_dimension_detail; vcpu: quota_dimension_detail; }; networking: { public_ips: quota_dimension_detail; vpcs: quota_dimension_detail; }; nks: { clusters: quota_dimension_detail; node_pool_memory_gb: quota_dimension_detail; node_pool_vcpu: quota_dimension_detail; public_ips: quota_dimension_detail; }; region: 'us-sva-2'; storage: { abs: quota_dimension_detail; local_nvme: quota_dimension_detail; longhorn: quota_dimension_detail; }; }",
|
|
1086
|
+
markdown: "## list\n\n`client.quotas.list(cursor?: string, limit?: number, region?: string, sort?: string): { compute: quota_compute; networking: quota_networking; nks: quota_nks; region: region_name; storage: quota_storage; }`\n\n**get** `/v1/quotas`\n\nList quota usage and limits for the current organization across all regions\n\n### Parameters\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `limit?: number`\n Maximum number of items to return\n\n- `region?: string`\n Filter by region\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: region\n\n### Returns\n\n- `{ compute: { memory_gb: quota_dimension_detail; vcpu: quota_dimension_detail; }; networking: { public_ips: quota_dimension_detail; vpcs: quota_dimension_detail; }; nks: { clusters: quota_dimension_detail; node_pool_memory_gb: quota_dimension_detail; node_pool_vcpu: quota_dimension_detail; public_ips: quota_dimension_detail; }; region: 'us-sva-2'; storage: { abs: quota_dimension_detail; local_nvme: quota_dimension_detail; longhorn: quota_dimension_detail; }; }`\n Quota response.\n\n - `compute: { memory_gb: { limit: number; remaining: number; used: number; }; vcpu: { limit: number; remaining: number; used: number; }; }`\n - `networking: { public_ips: { limit: number; remaining: number; used: number; }; vpcs: { limit: number; remaining: number; used: number; }; }`\n - `nks: { clusters: { limit: number; remaining: number; used: number; }; node_pool_memory_gb: { limit: number; remaining: number; used: number; }; node_pool_vcpu: { limit: number; remaining: number; used: number; }; public_ips: { limit: number; remaining: number; used: number; }; }`\n - `region: 'us-sva-2'`\n - `storage: { abs: { limit: number; remaining: number; used: number; }; local_nvme: { limit: number; remaining: number; used: number; }; longhorn: { limit: number; remaining: number; used: number; }; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const quota of client.quotas.list()) {\n console.log(quota);\n}\n```",
|
|
935
1087
|
perLanguage: {
|
|
936
1088
|
typescript: {
|
|
937
1089
|
method: 'client.quotas.list',
|
|
@@ -1245,8 +1397,8 @@ const EMBEDDED_METHODS = [
|
|
|
1245
1397
|
stainlessPath: '(resource) regions > (method) get',
|
|
1246
1398
|
qualified: 'client.regions.get',
|
|
1247
1399
|
params: ['name: string;'],
|
|
1248
|
-
response: "{ availability: 'live' | 'preview' | 'maintenance' | 'sunset'; compute: { vms: boolean; }; name: string; networking: { vpcs: boolean; }; nks: { autoscaling: boolean; clusters: boolean; }; storage: { abs: boolean; local_nvme: boolean; }; }",
|
|
1249
|
-
markdown: "## get\n\n`client.regions.get(name: string): { availability: region_availability; compute: object; name: string; networking: object; nks: object; storage: object; }`\n\n**get** `/v1/regions/{name}`\n\nGet a region by name\n\n### Parameters\n\n- `name: string`\n\n### Returns\n\n- `{ availability: 'live' | 'preview' | 'maintenance' | 'sunset'; compute: { vms: boolean; }; name: string; networking: { vpcs: boolean; }; nks: { autoscaling: boolean; clusters: boolean; }; storage: { abs: boolean; local_nvme: boolean; }; }`\n Region response with product availability.\n\n - `availability: 'live' | 'preview' | 'maintenance' | 'sunset'`\n - `compute: { vms: boolean; }`\n - `name: string`\n - `networking: { vpcs: boolean; }`\n - `nks: { autoscaling: boolean; clusters: boolean; }`\n - `storage: { abs: boolean; local_nvme: boolean; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst region = await client.regions.get('us-sva-2');\n\nconsole.log(region);\n```",
|
|
1400
|
+
response: "{ availability: 'live' | 'preview' | 'maintenance' | 'sunset'; compute: { vms: boolean; }; name: string; networking: { vpcs: boolean; }; nks: { autoscaling: boolean; clusters: boolean; }; storage: { abs: boolean; local_nvme: boolean; longhorn: boolean; }; }",
|
|
1401
|
+
markdown: "## get\n\n`client.regions.get(name: string): { availability: region_availability; compute: object; name: string; networking: object; nks: object; storage: object; }`\n\n**get** `/v1/regions/{name}`\n\nGet a region by name\n\n### Parameters\n\n- `name: string`\n\n### Returns\n\n- `{ availability: 'live' | 'preview' | 'maintenance' | 'sunset'; compute: { vms: boolean; }; name: string; networking: { vpcs: boolean; }; nks: { autoscaling: boolean; clusters: boolean; }; storage: { abs: boolean; local_nvme: boolean; longhorn: boolean; }; }`\n Region response with product availability.\n\n - `availability: 'live' | 'preview' | 'maintenance' | 'sunset'`\n - `compute: { vms: boolean; }`\n - `name: string`\n - `networking: { vpcs: boolean; }`\n - `nks: { autoscaling: boolean; clusters: boolean; }`\n - `storage: { abs: boolean; local_nvme: boolean; longhorn: boolean; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst region = await client.regions.get('us-sva-2');\n\nconsole.log(region);\n```",
|
|
1250
1402
|
perLanguage: {
|
|
1251
1403
|
typescript: {
|
|
1252
1404
|
method: 'client.regions.get',
|
|
@@ -1284,9 +1436,10 @@ const EMBEDDED_METHODS = [
|
|
|
1284
1436
|
'sort?: string;',
|
|
1285
1437
|
'storage_abs?: boolean;',
|
|
1286
1438
|
'storage_local_nvme?: boolean;',
|
|
1439
|
+
'storage_longhorn?: boolean;',
|
|
1287
1440
|
],
|
|
1288
|
-
response: "{ availability: 'live' | 'preview' | 'maintenance' | 'sunset'; compute: { vms: boolean; }; name: string; networking: { vpcs: boolean; }; nks: { autoscaling: boolean; clusters: boolean; }; storage: { abs: boolean; local_nvme: boolean; }; }",
|
|
1289
|
-
markdown: "## list\n\n`client.regions.list(availability?: 'live' | 'preview' | 'maintenance' | 'sunset', compute_vms?: boolean, cursor?: string, limit?: number, networking_vpcs?: boolean, nks_autoscaling?: boolean, nks_clusters?: boolean, sort?: string, storage_abs?: boolean, storage_local_nvme?: boolean): { availability: region_availability; compute: object; name: string; networking: object; nks: object; storage: object; }`\n\n**get** `/v1/regions`\n\nList all regions\n\n### Parameters\n\n- `availability?: 'live' | 'preview' | 'maintenance' | 'sunset'`\n Filter by region availability\n\n- `compute_vms?: boolean`\n Only regions where Virtual Machines are available\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `limit?: number`\n Maximum number of items to return\n\n- `networking_vpcs?: boolean`\n Only regions where VPCs are available\n\n- `nks_autoscaling?: boolean`\n Only regions where NKS node pool autoscaling is available\n\n- `nks_clusters?: boolean`\n Only regions where NKS clusters are available\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: longitude, name, availability\n\n- `storage_abs?: boolean`\n Only regions where Accelerated Block Storage is available\n\n- `storage_local_nvme?: boolean`\n Only regions where locally-attached NVMe storage is available\n\n### Returns\n\n- `{ availability: 'live' | 'preview' | 'maintenance' | 'sunset'; compute: { vms: boolean; }; name: string; networking: { vpcs: boolean; }; nks: { autoscaling: boolean; clusters: boolean; }; storage: { abs: boolean; local_nvme: boolean; }; }`\n Region response with product availability.\n\n - `availability: 'live' | 'preview' | 'maintenance' | 'sunset'`\n - `compute: { vms: boolean; }`\n - `name: string`\n - `networking: { vpcs: boolean; }`\n - `nks: { autoscaling: boolean; clusters: boolean; }`\n - `storage: { abs: boolean; local_nvme: boolean; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const region of client.regions.list()) {\n console.log(region);\n}\n```",
|
|
1441
|
+
response: "{ availability: 'live' | 'preview' | 'maintenance' | 'sunset'; compute: { vms: boolean; }; name: string; networking: { vpcs: boolean; }; nks: { autoscaling: boolean; clusters: boolean; }; storage: { abs: boolean; local_nvme: boolean; longhorn: boolean; }; }",
|
|
1442
|
+
markdown: "## list\n\n`client.regions.list(availability?: 'live' | 'preview' | 'maintenance' | 'sunset', compute_vms?: boolean, cursor?: string, limit?: number, networking_vpcs?: boolean, nks_autoscaling?: boolean, nks_clusters?: boolean, sort?: string, storage_abs?: boolean, storage_local_nvme?: boolean, storage_longhorn?: boolean): { availability: region_availability; compute: object; name: string; networking: object; nks: object; storage: object; }`\n\n**get** `/v1/regions`\n\nList all regions\n\n### Parameters\n\n- `availability?: 'live' | 'preview' | 'maintenance' | 'sunset'`\n Filter by region availability\n\n- `compute_vms?: boolean`\n Only regions where Virtual Machines are available\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `limit?: number`\n Maximum number of items to return\n\n- `networking_vpcs?: boolean`\n Only regions where VPCs are available\n\n- `nks_autoscaling?: boolean`\n Only regions where NKS node pool autoscaling is available\n\n- `nks_clusters?: boolean`\n Only regions where NKS clusters are available\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: longitude, name, availability\n\n- `storage_abs?: boolean`\n Only regions where Accelerated Block Storage is available\n\n- `storage_local_nvme?: boolean`\n Only regions where locally-attached NVMe storage is available\n\n- `storage_longhorn?: boolean`\n Only regions where Longhorn replicated block storage is available\n\n### Returns\n\n- `{ availability: 'live' | 'preview' | 'maintenance' | 'sunset'; compute: { vms: boolean; }; name: string; networking: { vpcs: boolean; }; nks: { autoscaling: boolean; clusters: boolean; }; storage: { abs: boolean; local_nvme: boolean; longhorn: boolean; }; }`\n Region response with product availability.\n\n - `availability: 'live' | 'preview' | 'maintenance' | 'sunset'`\n - `compute: { vms: boolean; }`\n - `name: string`\n - `networking: { vpcs: boolean; }`\n - `nks: { autoscaling: boolean; clusters: boolean; }`\n - `storage: { abs: boolean; local_nvme: boolean; longhorn: boolean; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const region of client.regions.list()) {\n console.log(region);\n}\n```",
|
|
1290
1443
|
perLanguage: {
|
|
1291
1444
|
typescript: {
|
|
1292
1445
|
method: 'client.regions.list',
|
|
@@ -1387,7 +1540,7 @@ const EMBEDDED_METHODS = [
|
|
|
1387
1540
|
stainlessPath: '(resource) compute.vms > (method) create',
|
|
1388
1541
|
qualified: 'client.compute.vms.create',
|
|
1389
1542
|
params: [
|
|
1390
|
-
"boot_volume: { size: number; type: 'nvme' | 'abs'; tags?: string[]; };",
|
|
1543
|
+
"boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; };",
|
|
1391
1544
|
'instance_type: string;',
|
|
1392
1545
|
'name: string;',
|
|
1393
1546
|
'os_image_name: string;',
|
|
@@ -1396,11 +1549,11 @@ const EMBEDDED_METHODS = [
|
|
|
1396
1549
|
"region: 'us-sva-2';",
|
|
1397
1550
|
'ssh_key: { public_key: string; };',
|
|
1398
1551
|
'subnet_id: string;',
|
|
1399
|
-
"data_volumes?: { name: string; size: number; type: 'nvme' | 'abs'; tags?: string[]; }[];",
|
|
1552
|
+
"data_volumes?: { name: string; size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }[];",
|
|
1400
1553
|
'tags?: string[];',
|
|
1401
1554
|
],
|
|
1402
1555
|
response: "{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }",
|
|
1403
|
-
markdown: "## create\n\n`client.compute.vms.create(boot_volume: { size: number; type: 'nvme' | 'abs'; tags?: string[]; }, instance_type: string, name: string, os_image_name: string, project_id: string, public_ip_enabled: boolean, region: 'us-sva-2', ssh_key: { public_key: string; }, subnet_id: string, data_volumes?: { name: string; size: number; type: 'nvme' | 'abs'; tags?: string[]; }[], tags?: string[]): { id: string; created_at: string; details: operation_details; kind: operation_kind; project_id: string; resource_id: string; status: operation_status; type: operation_type; updated_at: string; }`\n\n**post** `/v1/compute/vms`\n\nCreate a VM\n\n### Parameters\n\n- `boot_volume: { size: number; type: 'nvme' | 'abs'; tags?: string[]; }`\n Boot volume for the VM.\n - `size: number`\n Size of the Volume in GB.\n - `type: 'nvme' | 'abs'`\n Type of the Volume.\n - `tags?: string[]`\n Tags to attach to the Volume.\n\n- `instance_type: string`\n Instance type name.\n\n- `name: string`\n Name of the VM.\n\n- `os_image_name: string`\n Name of the OS Image to use for the VM.\n\n- `project_id: string`\n Project ID to create the VM in.\n\n- `public_ip_enabled: boolean`\n Whether to enable public IP for the VM.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `ssh_key: { public_key: string; }`\n Public SSH key configuration for the VM.\n - `public_key: string`\n Public key to and use to access the VM.\n\n- `subnet_id: string`\n ID of the subnet to use for the VM.\n\n- `data_volumes?: { name: string; size: number; type: 'nvme' | 'abs'; tags?: string[]; }[]`\n Data volumes for the VM.\n\n- `tags?: string[]`\n Tags to attach to the VM.\n\n### Returns\n\n- `{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }`\n Operation details.\n\n - `id: string`\n - `created_at: string`\n - `details: { changes: object; }`\n - `kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'`\n - `project_id: string`\n - `resource_id: string`\n - `status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'`\n - `type: 'create' | 'update' | 'delete' | 'restart'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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-2026-05-18',\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\nconsole.log(operation);\n```",
|
|
1556
|
+
markdown: "## create\n\n`client.compute.vms.create(boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }, instance_type: string, name: string, os_image_name: string, project_id: string, public_ip_enabled: boolean, region: 'us-sva-2', ssh_key: { public_key: string; }, subnet_id: string, data_volumes?: { name: string; size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }[], tags?: string[]): { id: string; created_at: string; details: operation_details; kind: operation_kind; project_id: string; resource_id: string; status: operation_status; type: operation_type; updated_at: string; }`\n\n**post** `/v1/compute/vms`\n\nCreate a VM\n\n### Parameters\n\n- `boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }`\n Boot volume for the VM.\n - `size: number`\n Size of the Volume in GB.\n - `type: 'nvme' | 'abs' | 'longhorn'`\n Type of the Volume.\n - `tags?: string[]`\n Tags to attach to the Volume.\n\n- `instance_type: string`\n Instance type name.\n\n- `name: string`\n Name of the VM.\n\n- `os_image_name: string`\n Name of the OS Image to use for the VM.\n\n- `project_id: string`\n Project ID to create the VM in.\n\n- `public_ip_enabled: boolean`\n Whether to enable public IP for the VM.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `ssh_key: { public_key: string; }`\n Public SSH key configuration for the VM.\n - `public_key: string`\n Public key to and use to access the VM.\n\n- `subnet_id: string`\n ID of the subnet to use for the VM.\n\n- `data_volumes?: { name: string; size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }[]`\n Data volumes for the VM.\n\n- `tags?: string[]`\n Tags to attach to the VM.\n\n### Returns\n\n- `{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }`\n Operation details.\n\n - `id: string`\n - `created_at: string`\n - `details: { changes: object; }`\n - `kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'`\n - `project_id: string`\n - `resource_id: string`\n - `status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'`\n - `type: 'create' | 'update' | 'delete' | 'restart'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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-2026-05-18',\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\nconsole.log(operation);\n```",
|
|
1404
1557
|
perLanguage: {
|
|
1405
1558
|
typescript: {
|
|
1406
1559
|
method: 'client.compute.vms.create',
|
|
@@ -1591,7 +1744,7 @@ const EMBEDDED_METHODS = [
|
|
|
1591
1744
|
stainlessPath: '(resource) compute.vms.availability > (method) create',
|
|
1592
1745
|
qualified: 'client.compute.vms.availability.create',
|
|
1593
1746
|
params: [
|
|
1594
|
-
"boot_volume: { size: number; type: 'nvme' | 'abs'; tags?: string[]; };",
|
|
1747
|
+
"boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; };",
|
|
1595
1748
|
'instance_type: string;',
|
|
1596
1749
|
'name: string;',
|
|
1597
1750
|
'os_image_name: string;',
|
|
@@ -1600,10 +1753,10 @@ const EMBEDDED_METHODS = [
|
|
|
1600
1753
|
"region: 'us-sva-2';",
|
|
1601
1754
|
'ssh_key: { public_key: string; };',
|
|
1602
1755
|
'subnet_id: string;',
|
|
1603
|
-
"data_volumes?: { name: string; size: number; type: 'nvme' | 'abs'; tags?: string[]; }[];",
|
|
1756
|
+
"data_volumes?: { name: string; size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }[];",
|
|
1604
1757
|
'tags?: string[];',
|
|
1605
1758
|
],
|
|
1606
|
-
markdown: "## create\n\n`client.compute.vms.availability.create(boot_volume: { size: number; type: 'nvme' | 'abs'; tags?: string[]; }, instance_type: string, name: string, os_image_name: string, project_id: string, public_ip_enabled: boolean, region: 'us-sva-2', ssh_key: { public_key: string; }, subnet_id: string, data_volumes?: { name: string; size: number; type: 'nvme' | 'abs'; tags?: string[]; }[], tags?: string[]): void`\n\n**post** `/v1/compute/vms/availability`\n\nCheck VM Create Availability\n\n### Parameters\n\n- `boot_volume: { size: number; type: 'nvme' | 'abs'; tags?: string[]; }`\n Boot volume for the VM.\n - `size: number`\n Size of the Volume in GB.\n - `type: 'nvme' | 'abs'`\n Type of the Volume.\n - `tags?: string[]`\n Tags to attach to the Volume.\n\n- `instance_type: string`\n Instance type name.\n\n- `name: string`\n Name of the VM.\n\n- `os_image_name: string`\n Name of the OS Image to use for the VM.\n\n- `project_id: string`\n Project ID to create the VM in.\n\n- `public_ip_enabled: boolean`\n Whether to enable public IP for the VM.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `ssh_key: { public_key: string; }`\n Public SSH key configuration for the VM.\n - `public_key: string`\n Public key to and use to access the VM.\n\n- `subnet_id: string`\n ID of the subnet to use for the VM.\n\n- `data_volumes?: { name: string; size: number; type: 'nvme' | 'abs'; tags?: string[]; }[]`\n Data volumes for the VM.\n\n- `tags?: string[]`\n Tags to attach to the VM.\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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-2026-05-18',\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```",
|
|
1759
|
+
markdown: "## create\n\n`client.compute.vms.availability.create(boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }, instance_type: string, name: string, os_image_name: string, project_id: string, public_ip_enabled: boolean, region: 'us-sva-2', ssh_key: { public_key: string; }, subnet_id: string, data_volumes?: { name: string; size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }[], tags?: string[]): void`\n\n**post** `/v1/compute/vms/availability`\n\nCheck VM Create Availability\n\n### Parameters\n\n- `boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }`\n Boot volume for the VM.\n - `size: number`\n Size of the Volume in GB.\n - `type: 'nvme' | 'abs' | 'longhorn'`\n Type of the Volume.\n - `tags?: string[]`\n Tags to attach to the Volume.\n\n- `instance_type: string`\n Instance type name.\n\n- `name: string`\n Name of the VM.\n\n- `os_image_name: string`\n Name of the OS Image to use for the VM.\n\n- `project_id: string`\n Project ID to create the VM in.\n\n- `public_ip_enabled: boolean`\n Whether to enable public IP for the VM.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `ssh_key: { public_key: string; }`\n Public SSH key configuration for the VM.\n - `public_key: string`\n Public key to and use to access the VM.\n\n- `subnet_id: string`\n ID of the subnet to use for the VM.\n\n- `data_volumes?: { name: string; size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }[]`\n Data volumes for the VM.\n\n- `tags?: string[]`\n Tags to attach to the VM.\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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-2026-05-18',\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```",
|
|
1607
1760
|
perLanguage: {
|
|
1608
1761
|
typescript: {
|
|
1609
1762
|
method: 'client.compute.vms.availability.create',
|
|
@@ -1665,7 +1818,7 @@ const EMBEDDED_METHODS = [
|
|
|
1665
1818
|
stainlessPath: '(resource) compute.vms.cost > (method) create',
|
|
1666
1819
|
qualified: 'client.compute.vms.cost.create',
|
|
1667
1820
|
params: [
|
|
1668
|
-
"boot_volume: { size: number; type: 'nvme' | 'abs'; tags?: string[]; };",
|
|
1821
|
+
"boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; };",
|
|
1669
1822
|
'instance_type: string;',
|
|
1670
1823
|
'name: string;',
|
|
1671
1824
|
'os_image_name: string;',
|
|
@@ -1674,11 +1827,11 @@ const EMBEDDED_METHODS = [
|
|
|
1674
1827
|
"region: 'us-sva-2';",
|
|
1675
1828
|
'ssh_key: { public_key: string; };',
|
|
1676
1829
|
'subnet_id: string;',
|
|
1677
|
-
"data_volumes?: { name: string; size: number; type: 'nvme' | 'abs'; tags?: string[]; }[];",
|
|
1830
|
+
"data_volumes?: { name: string; size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }[];",
|
|
1678
1831
|
'tags?: string[];',
|
|
1679
1832
|
],
|
|
1680
1833
|
response: '{ currency: string; monthly_total: string; priced_at: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }',
|
|
1681
|
-
markdown: "## create\n\n`client.compute.vms.cost.create(boot_volume: { size: number; type: 'nvme' | 'abs'; tags?: string[]; }, instance_type: string, name: string, os_image_name: string, project_id: string, public_ip_enabled: boolean, region: 'us-sva-2', ssh_key: { public_key: string; }, subnet_id: string, data_volumes?: { name: string; size: number; type: 'nvme' | 'abs'; tags?: string[]; }[], tags?: string[]): { currency: string; monthly_total: string; priced_at: string; usage_dimensions: object[]; current_summary?: organization_billing_summary; updated_summary?: organization_billing_summary; }`\n\n**post** `/v1/compute/vms/cost`\n\nReturn a priced cost quote for the proposed VM.\n\n### Parameters\n\n- `boot_volume: { size: number; type: 'nvme' | 'abs'; tags?: string[]; }`\n Boot volume for the VM.\n - `size: number`\n Size of the Volume in GB.\n - `type: 'nvme' | 'abs'`\n Type of the Volume.\n - `tags?: string[]`\n Tags to attach to the Volume.\n\n- `instance_type: string`\n Instance type name.\n\n- `name: string`\n Name of the VM.\n\n- `os_image_name: string`\n Name of the OS Image to use for the VM.\n\n- `project_id: string`\n Project ID to create the VM in.\n\n- `public_ip_enabled: boolean`\n Whether to enable public IP for the VM.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `ssh_key: { public_key: string; }`\n Public SSH key configuration for the VM.\n - `public_key: string`\n Public key to and use to access the VM.\n\n- `subnet_id: string`\n ID of the subnet to use for the VM.\n\n- `data_volumes?: { name: string; size: number; type: 'nvme' | 'abs'; tags?: string[]; }[]`\n Data volumes for the VM.\n\n- `tags?: string[]`\n Tags to attach to the VM.\n\n### Returns\n\n- `{ currency: string; monthly_total: string; priced_at: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }`\n Cost quote returned by POST /cost. current_summary and updated_summary hold the org billing summary now and with this resource; omitted when the caller cannot view billing.\n\n - `currency: string`\n - `monthly_total: string`\n - `priced_at: string`\n - `usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]`\n - `current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n - `updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst costQuote = await client.compute.vms.cost.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-8',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2026-05-18',\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\nconsole.log(costQuote);\n```",
|
|
1834
|
+
markdown: "## create\n\n`client.compute.vms.cost.create(boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }, instance_type: string, name: string, os_image_name: string, project_id: string, public_ip_enabled: boolean, region: 'us-sva-2', ssh_key: { public_key: string; }, subnet_id: string, data_volumes?: { name: string; size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }[], tags?: string[]): { currency: string; monthly_total: string; priced_at: string; usage_dimensions: object[]; current_summary?: organization_billing_summary; updated_summary?: organization_billing_summary; }`\n\n**post** `/v1/compute/vms/cost`\n\nReturn a priced cost quote for the proposed VM.\n\n### Parameters\n\n- `boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }`\n Boot volume for the VM.\n - `size: number`\n Size of the Volume in GB.\n - `type: 'nvme' | 'abs' | 'longhorn'`\n Type of the Volume.\n - `tags?: string[]`\n Tags to attach to the Volume.\n\n- `instance_type: string`\n Instance type name.\n\n- `name: string`\n Name of the VM.\n\n- `os_image_name: string`\n Name of the OS Image to use for the VM.\n\n- `project_id: string`\n Project ID to create the VM in.\n\n- `public_ip_enabled: boolean`\n Whether to enable public IP for the VM.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `ssh_key: { public_key: string; }`\n Public SSH key configuration for the VM.\n - `public_key: string`\n Public key to and use to access the VM.\n\n- `subnet_id: string`\n ID of the subnet to use for the VM.\n\n- `data_volumes?: { name: string; size: number; type: 'nvme' | 'abs' | 'longhorn'; tags?: string[]; }[]`\n Data volumes for the VM.\n\n- `tags?: string[]`\n Tags to attach to the VM.\n\n### Returns\n\n- `{ currency: string; monthly_total: string; priced_at: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }`\n Cost quote returned by POST /cost. current_summary and updated_summary hold the org billing summary now and with this resource; omitted when the caller cannot view billing.\n\n - `currency: string`\n - `monthly_total: string`\n - `priced_at: string`\n - `usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]`\n - `current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n - `updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst costQuote = await client.compute.vms.cost.create({\n boot_volume: { size: 100, type: 'abs' },\n instance_type: 'n1-standard-8',\n name: 'my-vm',\n os_image_name: 'ubuntu-noble-2026-05-18',\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\nconsole.log(costQuote);\n```",
|
|
1682
1835
|
perLanguage: {
|
|
1683
1836
|
typescript: {
|
|
1684
1837
|
method: 'client.compute.vms.cost.create',
|
|
@@ -1749,10 +1902,10 @@ const EMBEDDED_METHODS = [
|
|
|
1749
1902
|
'sort?: string;',
|
|
1750
1903
|
"status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error';",
|
|
1751
1904
|
'tags?: string[];',
|
|
1752
|
-
"type?: 'nvme' | 'abs';",
|
|
1905
|
+
"type?: 'nvme' | 'abs' | 'longhorn';",
|
|
1753
1906
|
],
|
|
1754
|
-
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs'; updated_at: string; vm_id: string; vm_name: string; }",
|
|
1755
|
-
markdown: "## list\n\n`client.compute.vms.volumes.list(vm_id: string, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', tags?: string[], type?: 'nvme' | 'abs'): { id: string; created_at: string; kind: volume_kind; name: string; project_id: string; region: region_name; size: number; status: resource_status; tags: string[]; type: volume_type; updated_at: string; vm_id: string; vm_name: string; }`\n\n**get** `/v1/compute/vms/{vm_id}/volumes`\n\nList VM's Volumes\n\n### Parameters\n\n- `vm_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same VM, filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by Volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the Volume name\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by Volume status\n\n- `tags?: string[]`\n Filter by tags. Repeat the parameter to require several tags; a Volume must carry all of them.\n\n- `type?: 'nvme' | 'abs'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs'; updated_at: string; vm_id: string; vm_name: string; }`\n Volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `project_id: string`\n - `region: 'us-sva-2'`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `tags: string[]`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n - `vm_id: string`\n - `vm_name: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const volume of client.compute.vms.volumes.list('vm_id')) {\n console.log(volume);\n}\n```",
|
|
1907
|
+
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; vm_id: string; vm_name: string; }",
|
|
1908
|
+
markdown: "## list\n\n`client.compute.vms.volumes.list(vm_id: string, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', tags?: string[], type?: 'nvme' | 'abs' | 'longhorn'): { id: string; created_at: string; kind: volume_kind; name: string; project_id: string; region: region_name; size: number; status: resource_status; tags: string[]; type: volume_type; updated_at: string; vm_id: string; vm_name: string; }`\n\n**get** `/v1/compute/vms/{vm_id}/volumes`\n\nList VM's Volumes\n\n### Parameters\n\n- `vm_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same VM, filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by Volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the Volume name\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by Volume status\n\n- `tags?: string[]`\n Filter by tags. Repeat the parameter to require several tags; a Volume must carry all of them.\n\n- `type?: 'nvme' | 'abs' | 'longhorn'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; vm_id: string; vm_name: string; }`\n Volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `project_id: string`\n - `region: 'us-sva-2'`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `tags: string[]`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n - `vm_id: string`\n - `vm_name: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const volume of client.compute.vms.volumes.list('vm_id')) {\n console.log(volume);\n}\n```",
|
|
1756
1909
|
perLanguage: {
|
|
1757
1910
|
typescript: {
|
|
1758
1911
|
method: 'client.compute.vms.volumes.list',
|
|
@@ -1883,12 +2036,12 @@ const EMBEDDED_METHODS = [
|
|
|
1883
2036
|
'project_id: string;',
|
|
1884
2037
|
"region: 'us-sva-2';",
|
|
1885
2038
|
'size: number;',
|
|
1886
|
-
"type: 'nvme' | 'abs';",
|
|
2039
|
+
"type: 'nvme' | 'abs' | 'longhorn';",
|
|
1887
2040
|
'tags?: string[];',
|
|
1888
2041
|
'vm_id?: string;',
|
|
1889
2042
|
],
|
|
1890
2043
|
response: "{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }",
|
|
1891
|
-
markdown: "## create\n\n`client.compute.volumes.create(name: string, project_id: string, region: 'us-sva-2', size: number, type: 'nvme' | 'abs', tags?: string[], vm_id?: string): { id: string; created_at: string; details: operation_details; kind: operation_kind; project_id: string; resource_id: string; status: operation_status; type: operation_type; updated_at: string; }`\n\n**post** `/v1/compute/volumes`\n\nCreate a Volume. Only data volumes can be created.\n\n### Parameters\n\n- `name: string`\n Name of the Volume.\n\n- `project_id: string`\n Project ID the Volume belongs to.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `size: number`\n Size of the Volume in GB.\n\n- `type: 'nvme' | 'abs'`\n Type of the Volume.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n- `vm_id?: string`\n ID of the VM the Volume is attached to.\n\n### Returns\n\n- `{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }`\n Operation details.\n\n - `id: string`\n - `created_at: string`\n - `details: { changes: object; }`\n - `kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'`\n - `project_id: string`\n - `resource_id: string`\n - `status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'`\n - `type: 'create' | 'update' | 'delete' | 'restart'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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);\n```",
|
|
2044
|
+
markdown: "## create\n\n`client.compute.volumes.create(name: string, project_id: string, region: 'us-sva-2', size: number, type: 'nvme' | 'abs' | 'longhorn', tags?: string[], vm_id?: string): { id: string; created_at: string; details: operation_details; kind: operation_kind; project_id: string; resource_id: string; status: operation_status; type: operation_type; updated_at: string; }`\n\n**post** `/v1/compute/volumes`\n\nCreate a Volume. Only data volumes can be created.\n\n### Parameters\n\n- `name: string`\n Name of the Volume.\n\n- `project_id: string`\n Project ID the Volume belongs to.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `size: number`\n Size of the Volume in GB.\n\n- `type: 'nvme' | 'abs' | 'longhorn'`\n Type of the Volume.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n- `vm_id?: string`\n ID of the VM the Volume is attached to.\n\n### Returns\n\n- `{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }`\n Operation details.\n\n - `id: string`\n - `created_at: string`\n - `details: { changes: object; }`\n - `kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'`\n - `project_id: string`\n - `resource_id: string`\n - `status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'`\n - `type: 'create' | 'update' | 'delete' | 'restart'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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);\n```",
|
|
1892
2045
|
perLanguage: {
|
|
1893
2046
|
typescript: {
|
|
1894
2047
|
method: 'client.compute.volumes.create',
|
|
@@ -1916,8 +2069,8 @@ const EMBEDDED_METHODS = [
|
|
|
1916
2069
|
stainlessPath: '(resource) compute.volumes > (method) get',
|
|
1917
2070
|
qualified: 'client.compute.volumes.get',
|
|
1918
2071
|
params: ['volume_id: string;'],
|
|
1919
|
-
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs'; updated_at: string; vm_id: string; vm_name: string; }",
|
|
1920
|
-
markdown: "## get\n\n`client.compute.volumes.get(volume_id: string): { id: string; created_at: string; kind: volume_kind; name: string; project_id: string; region: region_name; size: number; status: resource_status; tags: string[]; type: volume_type; updated_at: string; vm_id: string; vm_name: string; }`\n\n**get** `/v1/compute/volumes/{volume_id}`\n\nGet a Volume.\n\n### Parameters\n\n- `volume_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs'; updated_at: string; vm_id: string; vm_name: string; }`\n Volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `project_id: string`\n - `region: 'us-sva-2'`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `tags: string[]`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n - `vm_id: string`\n - `vm_name: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst volume = await client.compute.volumes.get('volume_id');\n\nconsole.log(volume);\n```",
|
|
2072
|
+
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; vm_id: string; vm_name: string; }",
|
|
2073
|
+
markdown: "## get\n\n`client.compute.volumes.get(volume_id: string): { id: string; created_at: string; kind: volume_kind; name: string; project_id: string; region: region_name; size: number; status: resource_status; tags: string[]; type: volume_type; updated_at: string; vm_id: string; vm_name: string; }`\n\n**get** `/v1/compute/volumes/{volume_id}`\n\nGet a Volume.\n\n### Parameters\n\n- `volume_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; vm_id: string; vm_name: string; }`\n Volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `project_id: string`\n - `region: 'us-sva-2'`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `tags: string[]`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n - `vm_id: string`\n - `vm_name: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst volume = await client.compute.volumes.get('volume_id');\n\nconsole.log(volume);\n```",
|
|
1921
2074
|
perLanguage: {
|
|
1922
2075
|
typescript: {
|
|
1923
2076
|
method: 'client.compute.volumes.get',
|
|
@@ -1946,7 +2099,7 @@ const EMBEDDED_METHODS = [
|
|
|
1946
2099
|
qualified: 'client.compute.volumes.update',
|
|
1947
2100
|
params: ['volume_id: string;', 'name?: string;', 'size?: number;', 'tags?: string[];'],
|
|
1948
2101
|
response: "{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }",
|
|
1949
|
-
markdown: "## update\n\n`client.compute.volumes.update(volume_id: string, name?: string, size?: number, tags?: string[]): { id: string; created_at: string; details: operation_details; kind: operation_kind; project_id: string; resource_id: string; status: operation_status; type: operation_type; updated_at: string; }`\n\n**patch** `/v1/compute/volumes/{volume_id}`\n\nUpdate a Volume. Boot or data volumes can be updated.\n\n### Parameters\n\n- `volume_id: string`\n\n- `name?: string`\n Name of the Volume.\n\n- `size?: number`\n Size of the Volume in GB.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n### Returns\n\n- `{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }`\n Operation details.\n\n - `id: string`\n - `created_at: string`\n - `details: { changes: object; }`\n - `kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'`\n - `project_id: string`\n - `resource_id: string`\n - `status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'`\n - `type: 'create' | 'update' | 'delete' | 'restart'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst operation = await client.compute.volumes.update('volume_id');\n\nconsole.log(operation);\n```",
|
|
2102
|
+
markdown: "## update\n\n`client.compute.volumes.update(volume_id: string, name?: string, size?: number, tags?: string[]): { id: string; created_at: string; details: operation_details; kind: operation_kind; project_id: string; resource_id: string; status: operation_status; type: operation_type; updated_at: string; }`\n\n**patch** `/v1/compute/volumes/{volume_id}`\n\nUpdate a Volume. Boot or data volumes can be updated.\n\n### Parameters\n\n- `volume_id: string`\n\n- `name?: string`\n Name of the Volume.\n\n- `size?: number`\n Size of the Volume in GB. Longhorn volumes cannot be resized.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n### Returns\n\n- `{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }`\n Operation details.\n\n - `id: string`\n - `created_at: string`\n - `details: { changes: object; }`\n - `kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'`\n - `project_id: string`\n - `resource_id: string`\n - `status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'`\n - `type: 'create' | 'update' | 'delete' | 'restart'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst operation = await client.compute.volumes.update('volume_id');\n\nconsole.log(operation);\n```",
|
|
1950
2103
|
perLanguage: {
|
|
1951
2104
|
typescript: {
|
|
1952
2105
|
method: 'client.compute.volumes.update',
|
|
@@ -2013,11 +2166,11 @@ const EMBEDDED_METHODS = [
|
|
|
2013
2166
|
'sort?: string;',
|
|
2014
2167
|
"status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error';",
|
|
2015
2168
|
'tags?: string[];',
|
|
2016
|
-
"type?: 'nvme' | 'abs';",
|
|
2169
|
+
"type?: 'nvme' | 'abs' | 'longhorn';",
|
|
2017
2170
|
'vm_id?: string;',
|
|
2018
2171
|
],
|
|
2019
|
-
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs'; updated_at: string; vm_id: string; vm_name: string; }",
|
|
2020
|
-
markdown: "## list\n\n`client.compute.volumes.list(project_id: string, attached?: boolean, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, region?: string, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', tags?: string[], type?: 'nvme' | 'abs', vm_id?: string): { id: string; created_at: string; kind: volume_kind; name: string; project_id: string; region: region_name; size: number; status: resource_status; tags: string[]; type: volume_type; updated_at: string; vm_id: string; vm_name: string; }`\n\n**get** `/v1/compute/volumes`\n\nList all volumes\n\n### Parameters\n\n- `project_id: string`\n Project ID of resources to request\n\n- `attached?: boolean`\n Filter by whether the Volume is attached to a VM. Combine with vm_id and both must hold.\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by Volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the Volume name\n\n- `region?: string`\n Filter by region\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by Volume status\n\n- `tags?: string[]`\n Filter by tags. Repeat the parameter to require several tags; a Volume must carry all of them.\n\n- `type?: 'nvme' | 'abs'`\n Filter by storage type\n\n- `vm_id?: string`\n Filter by the VM the Volume is attached to\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs'; updated_at: string; vm_id: string; vm_name: string; }`\n Volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `project_id: string`\n - `region: 'us-sva-2'`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `tags: string[]`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n - `vm_id: string`\n - `vm_name: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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);\n}\n```",
|
|
2172
|
+
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; vm_id: string; vm_name: string; }",
|
|
2173
|
+
markdown: "## list\n\n`client.compute.volumes.list(project_id: string, attached?: boolean, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, region?: string, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', tags?: string[], type?: 'nvme' | 'abs' | 'longhorn', vm_id?: string): { id: string; created_at: string; kind: volume_kind; name: string; project_id: string; region: region_name; size: number; status: resource_status; tags: string[]; type: volume_type; updated_at: string; vm_id: string; vm_name: string; }`\n\n**get** `/v1/compute/volumes`\n\nList all volumes\n\n### Parameters\n\n- `project_id: string`\n Project ID of resources to request\n\n- `attached?: boolean`\n Filter by whether the Volume is attached to a VM. Combine with vm_id and both must hold.\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by Volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the Volume name\n\n- `region?: string`\n Filter by region\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by Volume status\n\n- `tags?: string[]`\n Filter by tags. Repeat the parameter to require several tags; a Volume must carry all of them.\n\n- `type?: 'nvme' | 'abs' | 'longhorn'`\n Filter by storage type\n\n- `vm_id?: string`\n Filter by the VM the Volume is attached to\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; project_id: string; region: 'us-sva-2'; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; tags: string[]; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; vm_id: string; vm_name: string; }`\n Volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `project_id: string`\n - `region: 'us-sva-2'`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `tags: string[]`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n - `vm_id: string`\n - `vm_name: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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);\n}\n```",
|
|
2021
2174
|
perLanguage: {
|
|
2022
2175
|
typescript: {
|
|
2023
2176
|
method: 'client.compute.volumes.list',
|
|
@@ -2107,11 +2260,11 @@ const EMBEDDED_METHODS = [
|
|
|
2107
2260
|
'project_id: string;',
|
|
2108
2261
|
"region: 'us-sva-2';",
|
|
2109
2262
|
'size: number;',
|
|
2110
|
-
"type: 'nvme' | 'abs';",
|
|
2263
|
+
"type: 'nvme' | 'abs' | 'longhorn';",
|
|
2111
2264
|
'tags?: string[];',
|
|
2112
2265
|
'vm_id?: string;',
|
|
2113
2266
|
],
|
|
2114
|
-
markdown: "## create\n\n`client.compute.volumes.availability.create(name: string, project_id: string, region: 'us-sva-2', size: number, type: 'nvme' | 'abs', tags?: string[], vm_id?: string): void`\n\n**post** `/v1/compute/volumes/availability`\n\nCheck Volume Create Availability\n\n### Parameters\n\n- `name: string`\n Name of the Volume.\n\n- `project_id: string`\n Project ID the Volume belongs to.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `size: number`\n Size of the Volume in GB.\n\n- `type: 'nvme' | 'abs'`\n Type of the Volume.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n- `vm_id?: string`\n ID of the VM the Volume is attached to.\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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})\n```",
|
|
2267
|
+
markdown: "## create\n\n`client.compute.volumes.availability.create(name: string, project_id: string, region: 'us-sva-2', size: number, type: 'nvme' | 'abs' | 'longhorn', tags?: string[], vm_id?: string): void`\n\n**post** `/v1/compute/volumes/availability`\n\nCheck Volume Create Availability\n\n### Parameters\n\n- `name: string`\n Name of the Volume.\n\n- `project_id: string`\n Project ID the Volume belongs to.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `size: number`\n Size of the Volume in GB.\n\n- `type: 'nvme' | 'abs' | 'longhorn'`\n Type of the Volume.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n- `vm_id?: string`\n ID of the VM the Volume is attached to.\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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})\n```",
|
|
2115
2268
|
perLanguage: {
|
|
2116
2269
|
typescript: {
|
|
2117
2270
|
method: 'client.compute.volumes.availability.create',
|
|
@@ -2139,7 +2292,7 @@ const EMBEDDED_METHODS = [
|
|
|
2139
2292
|
stainlessPath: '(resource) compute.volumes.availability > (method) update',
|
|
2140
2293
|
qualified: 'client.compute.volumes.availability.update',
|
|
2141
2294
|
params: ['volume_id: string;', 'name?: string;', 'size?: number;', 'tags?: string[];'],
|
|
2142
|
-
markdown: "## update\n\n`client.compute.volumes.availability.update(volume_id: string, name?: string, size?: number, tags?: string[]): void`\n\n**patch** `/v1/compute/volumes/{volume_id}/availability`\n\nCheck Volume Update Availability\n\n### Parameters\n\n- `volume_id: string`\n\n- `name?: string`\n Name of the Volume.\n\n- `size?: number`\n Size of the Volume in GB.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nawait client.compute.volumes.availability.update('volume_id')\n```",
|
|
2295
|
+
markdown: "## update\n\n`client.compute.volumes.availability.update(volume_id: string, name?: string, size?: number, tags?: string[]): void`\n\n**patch** `/v1/compute/volumes/{volume_id}/availability`\n\nCheck Volume Update Availability\n\n### Parameters\n\n- `volume_id: string`\n\n- `name?: string`\n Name of the Volume.\n\n- `size?: number`\n Size of the Volume in GB. Longhorn volumes cannot be resized.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nawait client.compute.volumes.availability.update('volume_id')\n```",
|
|
2143
2296
|
perLanguage: {
|
|
2144
2297
|
typescript: {
|
|
2145
2298
|
method: 'client.compute.volumes.availability.update',
|
|
@@ -2171,12 +2324,12 @@ const EMBEDDED_METHODS = [
|
|
|
2171
2324
|
'project_id: string;',
|
|
2172
2325
|
"region: 'us-sva-2';",
|
|
2173
2326
|
'size: number;',
|
|
2174
|
-
"type: 'nvme' | 'abs';",
|
|
2327
|
+
"type: 'nvme' | 'abs' | 'longhorn';",
|
|
2175
2328
|
'tags?: string[];',
|
|
2176
2329
|
'vm_id?: string;',
|
|
2177
2330
|
],
|
|
2178
2331
|
response: '{ currency: string; monthly_total: string; priced_at: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }',
|
|
2179
|
-
markdown: "## create\n\n`client.compute.volumes.cost.create(name: string, project_id: string, region: 'us-sva-2', size: number, type: 'nvme' | 'abs', tags?: string[], vm_id?: string): { currency: string; monthly_total: string; priced_at: string; usage_dimensions: object[]; current_summary?: organization_billing_summary; updated_summary?: organization_billing_summary; }`\n\n**post** `/v1/compute/volumes/cost`\n\nReturn a priced cost quote for the proposed Volume.\n\n### Parameters\n\n- `name: string`\n Name of the Volume.\n\n- `project_id: string`\n Project ID the Volume belongs to.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `size: number`\n Size of the Volume in GB.\n\n- `type: 'nvme' | 'abs'`\n Type of the Volume.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n- `vm_id?: string`\n ID of the VM the Volume is attached to.\n\n### Returns\n\n- `{ currency: string; monthly_total: string; priced_at: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }`\n Cost quote returned by POST /cost. current_summary and updated_summary hold the org billing summary now and with this resource; omitted when the caller cannot view billing.\n\n - `currency: string`\n - `monthly_total: string`\n - `priced_at: string`\n - `usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]`\n - `current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n - `updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst costQuote = await client.compute.volumes.cost.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(costQuote);\n```",
|
|
2332
|
+
markdown: "## create\n\n`client.compute.volumes.cost.create(name: string, project_id: string, region: 'us-sva-2', size: number, type: 'nvme' | 'abs' | 'longhorn', tags?: string[], vm_id?: string): { currency: string; monthly_total: string; priced_at: string; usage_dimensions: object[]; current_summary?: organization_billing_summary; updated_summary?: organization_billing_summary; }`\n\n**post** `/v1/compute/volumes/cost`\n\nReturn a priced cost quote for the proposed Volume.\n\n### Parameters\n\n- `name: string`\n Name of the Volume.\n\n- `project_id: string`\n Project ID the Volume belongs to.\n\n- `region: 'us-sva-2'`\n Region the resource is in.\n\n- `size: number`\n Size of the Volume in GB.\n\n- `type: 'nvme' | 'abs' | 'longhorn'`\n Type of the Volume.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n- `vm_id?: string`\n ID of the VM the Volume is attached to.\n\n### Returns\n\n- `{ currency: string; monthly_total: string; priced_at: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }`\n Cost quote returned by POST /cost. current_summary and updated_summary hold the org billing summary now and with this resource; omitted when the caller cannot view billing.\n\n - `currency: string`\n - `monthly_total: string`\n - `priced_at: string`\n - `usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]`\n - `current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n - `updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst costQuote = await client.compute.volumes.cost.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(costQuote);\n```",
|
|
2180
2333
|
perLanguage: {
|
|
2181
2334
|
typescript: {
|
|
2182
2335
|
method: 'client.compute.volumes.cost.create',
|
|
@@ -2205,7 +2358,7 @@ const EMBEDDED_METHODS = [
|
|
|
2205
2358
|
qualified: 'client.compute.volumes.cost.update',
|
|
2206
2359
|
params: ['volume_id: string;', 'name?: string;', 'size?: number;', 'tags?: string[];'],
|
|
2207
2360
|
response: '{ after: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }; before: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }; currency: string; diff: { monthly_total_delta: string; usage_dimensions: { after: object; before: object; dimension: string; dimension_display_name: string; monthly_amount_delta: string; }[]; }; priced_at: string; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }',
|
|
2208
|
-
markdown: "## update\n\n`client.compute.volumes.cost.update(volume_id: string, name?: string, size?: number, tags?: string[]): { after: object; before: object; currency: string; diff: object; priced_at: string; current_summary?: organization_billing_summary; updated_summary?: organization_billing_summary; }`\n\n**patch** `/v1/compute/volumes/{volume_id}/cost`\n\nReturn a priced cost quote for the proposed Volume update plus a diff against the current state.\n\n### Parameters\n\n- `volume_id: string`\n\n- `name?: string`\n Name of the Volume.\n\n- `size?: number`\n Size of the Volume in GB.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n### Returns\n\n- `{ after: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }; before: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }; currency: string; diff: { monthly_total_delta: string; usage_dimensions: { after: object; before: object; dimension: string; dimension_display_name: string; monthly_amount_delta: string; }[]; }; priced_at: string; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }`\n Cost quote returned by PATCH /:id/cost: current-state quote, post-update quote, and signed diff. current_summary and updated_summary omitted when the caller cannot view billing.\n\n - `after: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }`\n - `before: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }`\n - `currency: string`\n - `diff: { monthly_total_delta: string; usage_dimensions: { after: { monthly_amount: string; quantity: number; unit_price: string; }; before: { monthly_amount: string; quantity: number; unit_price: string; }; dimension: string; dimension_display_name: string; monthly_amount_delta: string; }[]; }`\n - `priced_at: string`\n - `current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n - `updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst costQuoteUpdate = await client.compute.volumes.cost.update('volume_id');\n\nconsole.log(costQuoteUpdate);\n```",
|
|
2361
|
+
markdown: "## update\n\n`client.compute.volumes.cost.update(volume_id: string, name?: string, size?: number, tags?: string[]): { after: object; before: object; currency: string; diff: object; priced_at: string; current_summary?: organization_billing_summary; updated_summary?: organization_billing_summary; }`\n\n**patch** `/v1/compute/volumes/{volume_id}/cost`\n\nReturn a priced cost quote for the proposed Volume update plus a diff against the current state.\n\n### Parameters\n\n- `volume_id: string`\n\n- `name?: string`\n Name of the Volume.\n\n- `size?: number`\n Size of the Volume in GB. Longhorn volumes cannot be resized.\n\n- `tags?: string[]`\n Tags to attach to the Volume.\n\n### Returns\n\n- `{ after: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }; before: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }; currency: string; diff: { monthly_total_delta: string; usage_dimensions: { after: object; before: object; dimension: string; dimension_display_name: string; monthly_amount_delta: string; }[]; }; priced_at: string; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }`\n Cost quote returned by PATCH /:id/cost: current-state quote, post-update quote, and signed diff. current_summary and updated_summary omitted when the caller cannot view billing.\n\n - `after: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }`\n - `before: { monthly_total: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; }`\n - `currency: string`\n - `diff: { monthly_total_delta: string; usage_dimensions: { after: { monthly_amount: string; quantity: number; unit_price: string; }; before: { monthly_amount: string; quantity: number; unit_price: string; }; dimension: string; dimension_display_name: string; monthly_amount_delta: string; }[]; }`\n - `priced_at: string`\n - `current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n - `updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst costQuoteUpdate = await client.compute.volumes.cost.update('volume_id');\n\nconsole.log(costQuoteUpdate);\n```",
|
|
2209
2362
|
perLanguage: {
|
|
2210
2363
|
typescript: {
|
|
2211
2364
|
method: 'client.compute.volumes.cost.update',
|
|
@@ -3310,8 +3463,8 @@ const EMBEDDED_METHODS = [
|
|
|
3310
3463
|
stainlessPath: '(resource) nks.clusters.persistent_volume_claims > (method) get',
|
|
3311
3464
|
qualified: 'client.nks.clusters.persistentVolumeClaims.get',
|
|
3312
3465
|
params: ['cluster_id: string;', 'persistent_volume_claim_id: string;'],
|
|
3313
|
-
response: "{ id: string; cluster_id: string; created_at: string; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }",
|
|
3314
|
-
markdown: "## get\n\n`client.nks.clusters.persistentVolumeClaims.get(cluster_id: string, persistent_volume_claim_id: string): { id: string; cluster_id: string; created_at: string; name: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/persistent_volume_claims/{persistent_volume_claim_id}`\n\nGet details about an NKS persistent volume claim\n\n### Parameters\n\n- `cluster_id: string`\n\n- `persistent_volume_claim_id: string`\n\n### Returns\n\n- `{ id: string; cluster_id: string; created_at: string; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }`\n NKS persistent volume claim details.\n\n - `id: string`\n - `cluster_id: string`\n - `created_at: string`\n - `name: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst persistentVolumeClaim = await client.nks.clusters.persistentVolumeClaims.get('persistent_volume_claim_id', { cluster_id: 'cluster_id' });\n\nconsole.log(persistentVolumeClaim);\n```",
|
|
3466
|
+
response: "{ id: string; cluster_id: string; created_at: string; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }",
|
|
3467
|
+
markdown: "## get\n\n`client.nks.clusters.persistentVolumeClaims.get(cluster_id: string, persistent_volume_claim_id: string): { id: string; cluster_id: string; created_at: string; name: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/persistent_volume_claims/{persistent_volume_claim_id}`\n\nGet details about an NKS persistent volume claim\n\n### Parameters\n\n- `cluster_id: string`\n\n- `persistent_volume_claim_id: string`\n\n### Returns\n\n- `{ id: string; cluster_id: string; created_at: string; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }`\n NKS persistent volume claim details.\n\n - `id: string`\n - `cluster_id: string`\n - `created_at: string`\n - `name: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst persistentVolumeClaim = await client.nks.clusters.persistentVolumeClaims.get('persistent_volume_claim_id', { cluster_id: 'cluster_id' });\n\nconsole.log(persistentVolumeClaim);\n```",
|
|
3315
3468
|
perLanguage: {
|
|
3316
3469
|
typescript: {
|
|
3317
3470
|
method: 'client.nks.clusters.persistentVolumeClaims.get',
|
|
@@ -3349,8 +3502,8 @@ const EMBEDDED_METHODS = [
|
|
|
3349
3502
|
"status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error';",
|
|
3350
3503
|
"type?: 'abs';",
|
|
3351
3504
|
],
|
|
3352
|
-
response: "{ id: string; cluster_id: string; created_at: string; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }",
|
|
3353
|
-
markdown: "## list\n\n`client.nks.clusters.persistentVolumeClaims.list(cluster_id: string, cursor?: string, limit?: number, name?: string, size_gb_max?: number, size_gb_min?: number, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', type?: 'abs'): { id: string; cluster_id: string; created_at: string; name: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/persistent_volume_claims`\n\nList all persistent volume claims in an NKS cluster\n\n### Parameters\n\n- `cluster_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the claim name\n\n- `size_gb_max?: number`\n Only claims of at most this size\n\n- `size_gb_min?: number`\n Only claims of at least this size\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size_gb\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by persistent volume claim status\n\n- `type?: 'abs'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; cluster_id: string; created_at: string; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }`\n NKS persistent volume claim details.\n\n - `id: string`\n - `cluster_id: string`\n - `created_at: string`\n - `name: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const persistentVolumeClaim of client.nks.clusters.persistentVolumeClaims.list('cluster_id')) {\n console.log(persistentVolumeClaim);\n}\n```",
|
|
3505
|
+
response: "{ id: string; cluster_id: string; created_at: string; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }",
|
|
3506
|
+
markdown: "## list\n\n`client.nks.clusters.persistentVolumeClaims.list(cluster_id: string, cursor?: string, limit?: number, name?: string, size_gb_max?: number, size_gb_min?: number, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', type?: 'abs'): { id: string; cluster_id: string; created_at: string; name: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/persistent_volume_claims`\n\nList all persistent volume claims in an NKS cluster\n\n### Parameters\n\n- `cluster_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the claim name\n\n- `size_gb_max?: number`\n Only claims of at most this size\n\n- `size_gb_min?: number`\n Only claims of at least this size\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size_gb\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by persistent volume claim status\n\n- `type?: 'abs'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; cluster_id: string; created_at: string; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }`\n NKS persistent volume claim details.\n\n - `id: string`\n - `cluster_id: string`\n - `created_at: string`\n - `name: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const persistentVolumeClaim of client.nks.clusters.persistentVolumeClaims.list('cluster_id')) {\n console.log(persistentVolumeClaim);\n}\n```",
|
|
3354
3507
|
perLanguage: {
|
|
3355
3508
|
typescript: {
|
|
3356
3509
|
method: 'client.nks.clusters.persistentVolumeClaims.list',
|
|
@@ -3475,8 +3628,8 @@ const EMBEDDED_METHODS = [
|
|
|
3475
3628
|
stainlessPath: '(resource) nks.clusters.controllers.volumes > (method) get',
|
|
3476
3629
|
qualified: 'client.nks.clusters.controllers.volumes.get',
|
|
3477
3630
|
params: ['cluster_id: string;', 'controller_id: string;', 'volume_id: string;'],
|
|
3478
|
-
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }",
|
|
3479
|
-
markdown: "## get\n\n`client.nks.clusters.controllers.volumes.get(cluster_id: string, controller_id: string, volume_id: string): { id: string; created_at: string; kind: volume_kind; name: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/controllers/{controller_id}/volumes/{volume_id}`\n\nGet details about a volume attached to an NKS controller\n\n### Parameters\n\n- `cluster_id: string`\n\n- `controller_id: string`\n\n- `volume_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }`\n NKS controller volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst nksControllerVolume = await client.nks.clusters.controllers.volumes.get('volume_id', { cluster_id: 'cluster_id', controller_id: 'controller_id' });\n\nconsole.log(nksControllerVolume);\n```",
|
|
3631
|
+
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }",
|
|
3632
|
+
markdown: "## get\n\n`client.nks.clusters.controllers.volumes.get(cluster_id: string, controller_id: string, volume_id: string): { id: string; created_at: string; kind: volume_kind; name: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/controllers/{controller_id}/volumes/{volume_id}`\n\nGet details about a volume attached to an NKS controller\n\n### Parameters\n\n- `cluster_id: string`\n\n- `controller_id: string`\n\n- `volume_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }`\n NKS controller volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst nksControllerVolume = await client.nks.clusters.controllers.volumes.get('volume_id', { cluster_id: 'cluster_id', controller_id: 'controller_id' });\n\nconsole.log(nksControllerVolume);\n```",
|
|
3480
3633
|
perLanguage: {
|
|
3481
3634
|
typescript: {
|
|
3482
3635
|
method: 'client.nks.clusters.controllers.volumes.get',
|
|
@@ -3516,8 +3669,8 @@ const EMBEDDED_METHODS = [
|
|
|
3516
3669
|
"status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error';",
|
|
3517
3670
|
"type?: 'abs';",
|
|
3518
3671
|
],
|
|
3519
|
-
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }",
|
|
3520
|
-
markdown: "## list\n\n`client.nks.clusters.controllers.volumes.list(cluster_id: string, controller_id: string, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, size_gb_max?: number, size_gb_min?: number, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', type?: 'abs'): { id: string; created_at: string; kind: volume_kind; name: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/controllers/{controller_id}/volumes`\n\nList all volumes attached to an NKS controller\n\n### Parameters\n\n- `cluster_id: string`\n\n- `controller_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the volume name\n\n- `size_gb_max?: number`\n Only volumes of at most this size\n\n- `size_gb_min?: number`\n Only volumes of at least this size\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size_gb\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by volume status\n\n- `type?: 'abs'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }`\n NKS controller volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const nksControllerVolume of client.nks.clusters.controllers.volumes.list('controller_id', { cluster_id: 'cluster_id' })) {\n console.log(nksControllerVolume);\n}\n```",
|
|
3672
|
+
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }",
|
|
3673
|
+
markdown: "## list\n\n`client.nks.clusters.controllers.volumes.list(cluster_id: string, controller_id: string, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, size_gb_max?: number, size_gb_min?: number, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', type?: 'abs'): { id: string; created_at: string; kind: volume_kind; name: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/controllers/{controller_id}/volumes`\n\nList all volumes attached to an NKS controller\n\n### Parameters\n\n- `cluster_id: string`\n\n- `controller_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the volume name\n\n- `size_gb_max?: number`\n Only volumes of at most this size\n\n- `size_gb_min?: number`\n Only volumes of at least this size\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size_gb\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by volume status\n\n- `type?: 'abs'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }`\n NKS controller volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const nksControllerVolume of client.nks.clusters.controllers.volumes.list('controller_id', { cluster_id: 'cluster_id' })) {\n console.log(nksControllerVolume);\n}\n```",
|
|
3521
3674
|
perLanguage: {
|
|
3522
3675
|
typescript: {
|
|
3523
3676
|
method: 'client.nks.clusters.controllers.volumes.list',
|
|
@@ -3648,7 +3801,7 @@ const EMBEDDED_METHODS = [
|
|
|
3648
3801
|
'tags?: string[];',
|
|
3649
3802
|
],
|
|
3650
3803
|
response: "{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }",
|
|
3651
|
-
markdown: "## create\n\n`client.nks.clusters.pools.create(cluster_id: string, name: string, node_config: { boot_volume: nks_node_pool_boot_volume; instance_type: string; labels?: string[]; taints?: string[]; }, node_count?: number, tags?: string[]): { id: string; created_at: string; details: operation_details; kind: operation_kind; project_id: string; resource_id: string; status: operation_status; type: operation_type; updated_at: string; }`\n\n**post** `/v1/nks/clusters/{cluster_id}/pools`\n\nCreate a node pool in an NKS cluster\n\n### Parameters\n\n- `cluster_id: string`\n\n- `name: string`\n Name of the node pool.\n\n- `node_config: { boot_volume: { size: number; type: volume_type; }; instance_type: string; labels?: string[]; taints?: string[]; }`\n Node configuration.\n - `boot_volume: { size: number; type: 'nvme' | 'abs'; }`\n Boot volume configuration.\n - `instance_type: string`\n Instance type name used for worker nodes. Immutable after pool creation.\n - `labels?: string[]`\n Kubernetes labels to apply to each node in the pool. Each entry is \"key=value\".\nKeys under kubernetes.io, k8s.io, and nirvanalabs.io prefixes are reserved.\nImmutable after pool creation.\n - `taints?: string[]`\n Kubernetes taints to apply to each node in the pool at creation time.\nEach entry is \"key=value:Effect\" where Effect is NoSchedule, PreferNoSchedule, or NoExecute.\nImmutable after pool creation.\n\n- `node_count?: number`\n Number of nodes. Must be between 0 and 100.\n\n- `tags?: string[]`\n Tags to attach to the node pool.\n\n### Returns\n\n- `{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }`\n Operation details.\n\n - `id: string`\n - `created_at: string`\n - `details: { changes: object; }`\n - `kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'`\n - `project_id: string`\n - `resource_id: string`\n - `status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'`\n - `type: 'create' | 'update' | 'delete' | 'restart'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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});\n\nconsole.log(operation);\n```",
|
|
3804
|
+
markdown: "## create\n\n`client.nks.clusters.pools.create(cluster_id: string, name: string, node_config: { boot_volume: nks_node_pool_boot_volume; instance_type: string; labels?: string[]; taints?: string[]; }, node_count?: number, tags?: string[]): { id: string; created_at: string; details: operation_details; kind: operation_kind; project_id: string; resource_id: string; status: operation_status; type: operation_type; updated_at: string; }`\n\n**post** `/v1/nks/clusters/{cluster_id}/pools`\n\nCreate a node pool in an NKS cluster\n\n### Parameters\n\n- `cluster_id: string`\n\n- `name: string`\n Name of the node pool.\n\n- `node_config: { boot_volume: { size: number; type: volume_type; }; instance_type: string; labels?: string[]; taints?: string[]; }`\n Node configuration.\n - `boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; }`\n Boot volume configuration.\n - `instance_type: string`\n Instance type name used for worker nodes. Immutable after pool creation.\n - `labels?: string[]`\n Kubernetes labels to apply to each node in the pool. Each entry is \"key=value\".\nKeys under kubernetes.io, k8s.io, and nirvanalabs.io prefixes are reserved.\nImmutable after pool creation.\n - `taints?: string[]`\n Kubernetes taints to apply to each node in the pool at creation time.\nEach entry is \"key=value:Effect\" where Effect is NoSchedule, PreferNoSchedule, or NoExecute.\nImmutable after pool creation.\n\n- `node_count?: number`\n Number of nodes. Must be between 0 and 100.\n\n- `tags?: string[]`\n Tags to attach to the node pool.\n\n### Returns\n\n- `{ id: string; created_at: string; details: { changes: operation_changes; }; kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'; project_id: string; resource_id: string; status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'; type: 'create' | 'update' | 'delete' | 'restart'; updated_at: string; }`\n Operation details.\n\n - `id: string`\n - `created_at: string`\n - `details: { changes: object; }`\n - `kind: 'vm' | 'volume' | 'vpc' | 'firewall_rule' | 'nks_cluster' | 'nks_node_pool'`\n - `project_id: string`\n - `resource_id: string`\n - `status: 'pending' | 'running' | 'done' | 'failed' | 'unknown'`\n - `type: 'create' | 'update' | 'delete' | 'restart'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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});\n\nconsole.log(operation);\n```",
|
|
3652
3805
|
perLanguage: {
|
|
3653
3806
|
typescript: {
|
|
3654
3807
|
method: 'client.nks.clusters.pools.create',
|
|
@@ -3815,7 +3968,7 @@ const EMBEDDED_METHODS = [
|
|
|
3815
3968
|
'node_count?: number;',
|
|
3816
3969
|
'tags?: string[];',
|
|
3817
3970
|
],
|
|
3818
|
-
markdown: "## create\n\n`client.nks.clusters.pools.availability.create(cluster_id: string, name: string, node_config: { boot_volume: nks_node_pool_boot_volume; instance_type: string; labels?: string[]; taints?: string[]; }, node_count?: number, tags?: string[]): void`\n\n**post** `/v1/nks/clusters/{cluster_id}/pools/availability`\n\nCheck if a node pool can be created in an NKS cluster\n\n### Parameters\n\n- `cluster_id: string`\n\n- `name: string`\n Name of the node pool.\n\n- `node_config: { boot_volume: { size: number; type: volume_type; }; instance_type: string; labels?: string[]; taints?: string[]; }`\n Node configuration.\n - `boot_volume: { size: number; type: 'nvme' | 'abs'; }`\n Boot volume configuration.\n - `instance_type: string`\n Instance type name used for worker nodes. Immutable after pool creation.\n - `labels?: string[]`\n Kubernetes labels to apply to each node in the pool. Each entry is \"key=value\".\nKeys under kubernetes.io, k8s.io, and nirvanalabs.io prefixes are reserved.\nImmutable after pool creation.\n - `taints?: string[]`\n Kubernetes taints to apply to each node in the pool at creation time.\nEach entry is \"key=value:Effect\" where Effect is NoSchedule, PreferNoSchedule, or NoExecute.\nImmutable after pool creation.\n\n- `node_count?: number`\n Number of nodes. Must be between 0 and 100.\n\n- `tags?: string[]`\n Tags to attach to the node pool.\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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})\n```",
|
|
3971
|
+
markdown: "## create\n\n`client.nks.clusters.pools.availability.create(cluster_id: string, name: string, node_config: { boot_volume: nks_node_pool_boot_volume; instance_type: string; labels?: string[]; taints?: string[]; }, node_count?: number, tags?: string[]): void`\n\n**post** `/v1/nks/clusters/{cluster_id}/pools/availability`\n\nCheck if a node pool can be created in an NKS cluster\n\n### Parameters\n\n- `cluster_id: string`\n\n- `name: string`\n Name of the node pool.\n\n- `node_config: { boot_volume: { size: number; type: volume_type; }; instance_type: string; labels?: string[]; taints?: string[]; }`\n Node configuration.\n - `boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; }`\n Boot volume configuration.\n - `instance_type: string`\n Instance type name used for worker nodes. Immutable after pool creation.\n - `labels?: string[]`\n Kubernetes labels to apply to each node in the pool. Each entry is \"key=value\".\nKeys under kubernetes.io, k8s.io, and nirvanalabs.io prefixes are reserved.\nImmutable after pool creation.\n - `taints?: string[]`\n Kubernetes taints to apply to each node in the pool at creation time.\nEach entry is \"key=value:Effect\" where Effect is NoSchedule, PreferNoSchedule, or NoExecute.\nImmutable after pool creation.\n\n- `node_count?: number`\n Number of nodes. Must be between 0 and 100.\n\n- `tags?: string[]`\n Tags to attach to the node pool.\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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})\n```",
|
|
3819
3972
|
perLanguage: {
|
|
3820
3973
|
typescript: {
|
|
3821
3974
|
method: 'client.nks.clusters.pools.availability.create',
|
|
@@ -3884,7 +4037,7 @@ const EMBEDDED_METHODS = [
|
|
|
3884
4037
|
'tags?: string[];',
|
|
3885
4038
|
],
|
|
3886
4039
|
response: '{ currency: string; monthly_total: string; priced_at: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }',
|
|
3887
|
-
markdown: "## create\n\n`client.nks.clusters.pools.cost.create(cluster_id: string, name: string, node_config: { boot_volume: nks_node_pool_boot_volume; instance_type: string; labels?: string[]; taints?: string[]; }, node_count?: number, tags?: string[]): { currency: string; monthly_total: string; priced_at: string; usage_dimensions: object[]; current_summary?: organization_billing_summary; updated_summary?: organization_billing_summary; }`\n\n**post** `/v1/nks/clusters/{cluster_id}/pools/cost`\n\nReturn a priced cost quote for the proposed NKS node pool.\n\n### Parameters\n\n- `cluster_id: string`\n\n- `name: string`\n Name of the node pool.\n\n- `node_config: { boot_volume: { size: number; type: volume_type; }; instance_type: string; labels?: string[]; taints?: string[]; }`\n Node configuration.\n - `boot_volume: { size: number; type: 'nvme' | 'abs'; }`\n Boot volume configuration.\n - `instance_type: string`\n Instance type name used for worker nodes. Immutable after pool creation.\n - `labels?: string[]`\n Kubernetes labels to apply to each node in the pool. Each entry is \"key=value\".\nKeys under kubernetes.io, k8s.io, and nirvanalabs.io prefixes are reserved.\nImmutable after pool creation.\n - `taints?: string[]`\n Kubernetes taints to apply to each node in the pool at creation time.\nEach entry is \"key=value:Effect\" where Effect is NoSchedule, PreferNoSchedule, or NoExecute.\nImmutable after pool creation.\n\n- `node_count?: number`\n Number of nodes. Must be between 0 and 100.\n\n- `tags?: string[]`\n Tags to attach to the node pool.\n\n### Returns\n\n- `{ currency: string; monthly_total: string; priced_at: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }`\n Cost quote returned by POST /cost. current_summary and updated_summary hold the org billing summary now and with this resource; omitted when the caller cannot view billing.\n\n - `currency: string`\n - `monthly_total: string`\n - `priced_at: string`\n - `usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]`\n - `current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n - `updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst costQuote = await client.nks.clusters.pools.cost.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});\n\nconsole.log(costQuote);\n```",
|
|
4040
|
+
markdown: "## create\n\n`client.nks.clusters.pools.cost.create(cluster_id: string, name: string, node_config: { boot_volume: nks_node_pool_boot_volume; instance_type: string; labels?: string[]; taints?: string[]; }, node_count?: number, tags?: string[]): { currency: string; monthly_total: string; priced_at: string; usage_dimensions: object[]; current_summary?: organization_billing_summary; updated_summary?: organization_billing_summary; }`\n\n**post** `/v1/nks/clusters/{cluster_id}/pools/cost`\n\nReturn a priced cost quote for the proposed NKS node pool.\n\n### Parameters\n\n- `cluster_id: string`\n\n- `name: string`\n Name of the node pool.\n\n- `node_config: { boot_volume: { size: number; type: volume_type; }; instance_type: string; labels?: string[]; taints?: string[]; }`\n Node configuration.\n - `boot_volume: { size: number; type: 'nvme' | 'abs' | 'longhorn'; }`\n Boot volume configuration.\n - `instance_type: string`\n Instance type name used for worker nodes. Immutable after pool creation.\n - `labels?: string[]`\n Kubernetes labels to apply to each node in the pool. Each entry is \"key=value\".\nKeys under kubernetes.io, k8s.io, and nirvanalabs.io prefixes are reserved.\nImmutable after pool creation.\n - `taints?: string[]`\n Kubernetes taints to apply to each node in the pool at creation time.\nEach entry is \"key=value:Effect\" where Effect is NoSchedule, PreferNoSchedule, or NoExecute.\nImmutable after pool creation.\n\n- `node_count?: number`\n Number of nodes. Must be between 0 and 100.\n\n- `tags?: string[]`\n Tags to attach to the node pool.\n\n### Returns\n\n- `{ currency: string; monthly_total: string; priced_at: string; usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]; current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }; }`\n Cost quote returned by POST /cost. current_summary and updated_summary hold the org billing summary now and with this resource; omitted when the caller cannot view billing.\n\n - `currency: string`\n - `monthly_total: string`\n - `priced_at: string`\n - `usage_dimensions: { dimension: string; dimension_display_name: string; monthly_amount: string; quantity: number; unit_price: string; }[]`\n - `current_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n - `updated_summary?: { daily_cost: string; effective_balance: string; monthly_cost: string; recharge_threshold_days: string; estimated_next_charge_at?: string; runway_months?: string; }`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\nconst costQuote = await client.nks.clusters.pools.cost.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});\n\nconsole.log(costQuote);\n```",
|
|
3888
4041
|
perLanguage: {
|
|
3889
4042
|
typescript: {
|
|
3890
4043
|
method: 'client.nks.clusters.pools.cost.create',
|
|
@@ -4044,8 +4197,8 @@ const EMBEDDED_METHODS = [
|
|
|
4044
4197
|
stainlessPath: '(resource) nks.clusters.pools.nodes.volumes > (method) get',
|
|
4045
4198
|
qualified: 'client.nks.clusters.pools.nodes.volumes.get',
|
|
4046
4199
|
params: ['cluster_id: string;', 'pool_id: string;', 'node_id: string;', 'volume_id: string;'],
|
|
4047
|
-
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }",
|
|
4048
|
-
markdown: "## get\n\n`client.nks.clusters.pools.nodes.volumes.get(cluster_id: string, pool_id: string, node_id: string, volume_id: string): { id: string; created_at: string; kind: volume_kind; name: string; node_id: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/nodes/{node_id}/volumes/{volume_id}`\n\nGet details about a volume attached to an NKS node\n\n### Parameters\n\n- `cluster_id: string`\n\n- `pool_id: string`\n\n- `node_id: string`\n\n- `volume_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }`\n NKS node volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `node_id: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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);\n```",
|
|
4200
|
+
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }",
|
|
4201
|
+
markdown: "## get\n\n`client.nks.clusters.pools.nodes.volumes.get(cluster_id: string, pool_id: string, node_id: string, volume_id: string): { id: string; created_at: string; kind: volume_kind; name: string; node_id: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/nodes/{node_id}/volumes/{volume_id}`\n\nGet details about a volume attached to an NKS node\n\n### Parameters\n\n- `cluster_id: string`\n\n- `pool_id: string`\n\n- `node_id: string`\n\n- `volume_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }`\n NKS node volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `node_id: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\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);\n```",
|
|
4049
4202
|
perLanguage: {
|
|
4050
4203
|
typescript: {
|
|
4051
4204
|
method: 'client.nks.clusters.pools.nodes.volumes.get',
|
|
@@ -4086,8 +4239,8 @@ const EMBEDDED_METHODS = [
|
|
|
4086
4239
|
"status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error';",
|
|
4087
4240
|
"type?: 'abs';",
|
|
4088
4241
|
],
|
|
4089
|
-
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }",
|
|
4090
|
-
markdown: "## list\n\n`client.nks.clusters.pools.nodes.volumes.list(cluster_id: string, pool_id: string, node_id: string, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, size_gb_max?: number, size_gb_min?: number, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', type?: 'abs'): { id: string; created_at: string; kind: volume_kind; name: string; node_id: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/nodes/{node_id}/volumes`\n\nList all volumes attached to an NKS node\n\n### Parameters\n\n- `cluster_id: string`\n\n- `pool_id: string`\n\n- `node_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the volume name\n\n- `size_gb_max?: number`\n Only volumes of at most this size\n\n- `size_gb_min?: number`\n Only volumes of at least this size\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size_gb\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by volume status\n\n- `type?: 'abs'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }`\n NKS node volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `node_id: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const nksNodeVolume of client.nks.clusters.pools.nodes.volumes.list('node_id', { cluster_id: 'cluster_id', pool_id: 'pool_id' })) {\n console.log(nksNodeVolume);\n}\n```",
|
|
4242
|
+
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }",
|
|
4243
|
+
markdown: "## list\n\n`client.nks.clusters.pools.nodes.volumes.list(cluster_id: string, pool_id: string, node_id: string, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, size_gb_max?: number, size_gb_min?: number, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', type?: 'abs'): { id: string; created_at: string; kind: volume_kind; name: string; node_id: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/nodes/{node_id}/volumes`\n\nList all volumes attached to an NKS node\n\n### Parameters\n\n- `cluster_id: string`\n\n- `pool_id: string`\n\n- `node_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the volume name\n\n- `size_gb_max?: number`\n Only volumes of at most this size\n\n- `size_gb_min?: number`\n Only volumes of at least this size\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size_gb\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by volume status\n\n- `type?: 'abs'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }`\n NKS node volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `node_id: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const nksNodeVolume of client.nks.clusters.pools.nodes.volumes.list('node_id', { cluster_id: 'cluster_id', pool_id: 'pool_id' })) {\n console.log(nksNodeVolume);\n}\n```",
|
|
4091
4244
|
perLanguage: {
|
|
4092
4245
|
typescript: {
|
|
4093
4246
|
method: 'client.nks.clusters.pools.nodes.volumes.list',
|
|
@@ -4127,8 +4280,8 @@ const EMBEDDED_METHODS = [
|
|
|
4127
4280
|
"status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error';",
|
|
4128
4281
|
"type?: 'abs';",
|
|
4129
4282
|
],
|
|
4130
|
-
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }",
|
|
4131
|
-
markdown: "## list\n\n`client.nks.clusters.pools.volumes.list(cluster_id: string, pool_id: string, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, size_gb_max?: number, size_gb_min?: number, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', type?: 'abs'): { id: string; created_at: string; kind: volume_kind; name: string; node_id: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/volumes`\n\nList all volumes attached to the nodes of an NKS node pool\n\n### Parameters\n\n- `cluster_id: string`\n\n- `pool_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the volume name\n\n- `size_gb_max?: number`\n Only volumes of at most this size\n\n- `size_gb_min?: number`\n Only volumes of at least this size\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size_gb\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by volume status\n\n- `type?: 'abs'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs'; updated_at: string; }`\n NKS node volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `node_id: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const nksNodeVolume of client.nks.clusters.pools.volumes.list('pool_id', { cluster_id: 'cluster_id' })) {\n console.log(nksNodeVolume);\n}\n```",
|
|
4283
|
+
response: "{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }",
|
|
4284
|
+
markdown: "## list\n\n`client.nks.clusters.pools.volumes.list(cluster_id: string, pool_id: string, cursor?: string, kind?: 'boot' | 'data', limit?: number, name?: string, size_gb_max?: number, size_gb_min?: number, sort?: string, status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error', type?: 'abs'): { id: string; created_at: string; kind: volume_kind; name: string; node_id: string; size: number; status: resource_status; type: volume_type; updated_at: string; }`\n\n**get** `/v1/nks/clusters/{cluster_id}/pools/{pool_id}/volumes`\n\nList all volumes attached to the nodes of an NKS node pool\n\n### Parameters\n\n- `cluster_id: string`\n\n- `pool_id: string`\n\n- `cursor?: string`\n Pagination cursor returned by a previous request. Only valid for the same filters and sort order.\n\n- `kind?: 'boot' | 'data'`\n Filter by volume kind\n\n- `limit?: number`\n Maximum number of items to return\n\n- `name?: string`\n Filter by a case-insensitive substring of the volume name\n\n- `size_gb_max?: number`\n Only volumes of at most this size\n\n- `size_gb_min?: number`\n Only volumes of at least this size\n\n- `sort?: string`\n Comma-separated sort terms in precedence order, each field:asc or field:desc. Fields: created_at, updated_at, name, status, size_gb\n\n- `status?: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'error'`\n Filter by volume status\n\n- `type?: 'abs'`\n Filter by storage type\n\n### Returns\n\n- `{ id: string; created_at: string; kind: 'boot' | 'data'; name: string; node_id: string; size: number; status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'; type: 'nvme' | 'abs' | 'longhorn'; updated_at: string; }`\n NKS node volume details.\n\n - `id: string`\n - `created_at: string`\n - `kind: 'boot' | 'data'`\n - `name: string`\n - `node_id: string`\n - `size: number`\n - `status: 'pending' | 'creating' | 'updating' | 'ready' | 'deleting' | 'deleted' | 'error'`\n - `type: 'nvme' | 'abs' | 'longhorn'`\n - `updated_at: string`\n\n### Example\n\n```typescript\nimport NirvanaLabs from '@nirvana-labs/nirvana';\n\nconst client = new NirvanaLabs();\n\n// Automatically fetches more pages as needed.\nfor await (const nksNodeVolume of client.nks.clusters.pools.volumes.list('pool_id', { cluster_id: 'cluster_id' })) {\n console.log(nksNodeVolume);\n}\n```",
|
|
4132
4285
|
perLanguage: {
|
|
4133
4286
|
typescript: {
|
|
4134
4287
|
method: 'client.nks.clusters.pools.volumes.list',
|
|
@@ -4155,11 +4308,11 @@ const EMBEDDED_READMES = [
|
|
|
4155
4308
|
},
|
|
4156
4309
|
{
|
|
4157
4310
|
language: 'go',
|
|
4158
|
-
content: '# Nirvana Labs Go API Library\n\n<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/v2"><img src="https://pkg.go.dev/badge/github.com/nirvana-labs/nirvana-go/v2.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/v2" // 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/v2@v2.1.0\'\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/v2"\n\t"github.com/nirvana-labs/nirvana-go/v2/compute"\n\t"github.com/nirvana-labs/nirvana-go/v2/option"\n\t"github.com/nirvana-labs/nirvana-go/v2/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/v2/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',
|
|
4311
|
+
content: '# Nirvana Labs Go API Library\n\n<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/v2"><img src="https://pkg.go.dev/badge/github.com/nirvana-labs/nirvana-go/v2.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/v2" // 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/v2@v2.1.2\'\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/v2"\n\t"github.com/nirvana-labs/nirvana-go/v2/compute"\n\t"github.com/nirvana-labs/nirvana-go/v2/option"\n\t"github.com/nirvana-labs/nirvana-go/v2/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/v2/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',
|
|
4159
4312
|
},
|
|
4160
4313
|
{
|
|
4161
4314
|
language: 'terraform',
|
|
4162
|
-
content: '# 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 = "~> 2.1.
|
|
4315
|
+
content: '# 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 = "~> 2.1.2"\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',
|
|
4163
4316
|
},
|
|
4164
4317
|
{
|
|
4165
4318
|
language: 'cli',
|