Skip to content

Commit

Permalink
release: 0.1.0-alpha.12 (#40)
Browse files Browse the repository at this point in the history
* feat(api): api update (#39)

* feat(api): api update (#41)

* feat(api): api update (#42)

* feat(api): api update (#43)

* feat(api): api update (#44)

* feat(api): api update (#45)

* release: 0.1.0-alpha.12

---------

Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
  • Loading branch information
stainless-app[bot] authored Jan 24, 2025
1 parent f66cf2a commit 73ca6da
Show file tree
Hide file tree
Showing 14 changed files with 180 additions and 65 deletions.
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.1.0-alpha.11"
".": "0.1.0-alpha.12"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 19
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nirvana-labs%2Fnirvana-6aab21baffe1788ef3489dedfb817e9425a87edc3955e0b9cf720cca4302d7a3.yml
configured_endpoints: 20
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nirvana-labs%2Fnirvana-88eef6692dd2f29d0734587b0a255ce12fff9fa28b6c1d66d2b61364d2d0c311.yml
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## 0.1.0-alpha.12 (2025-01-23)

Full Changelog: [v0.1.0-alpha.11...v0.1.0-alpha.12](https://github.com/nirvana-labs/nirvana-go/compare/v0.1.0-alpha.11...v0.1.0-alpha.12)

### Features

* **api:** api update ([#39](https://github.com/nirvana-labs/nirvana-go/issues/39)) ([73233e3](https://github.com/nirvana-labs/nirvana-go/commit/73233e391f52116d4a734a357b2536475de1f420))
* **api:** api update ([#41](https://github.com/nirvana-labs/nirvana-go/issues/41)) ([93d1e94](https://github.com/nirvana-labs/nirvana-go/commit/93d1e948df9848173a6d7f503ba07ff2cc0a372d))
* **api:** api update ([#42](https://github.com/nirvana-labs/nirvana-go/issues/42)) ([b8afef7](https://github.com/nirvana-labs/nirvana-go/commit/b8afef7cb36a5a8b2114c145f2bf8e7a2102b643))
* **api:** api update ([#43](https://github.com/nirvana-labs/nirvana-go/issues/43)) ([14f64e8](https://github.com/nirvana-labs/nirvana-go/commit/14f64e83f6ddb23a481e6e428441d989a573361d))
* **api:** api update ([#44](https://github.com/nirvana-labs/nirvana-go/issues/44)) ([c8a1811](https://github.com/nirvana-labs/nirvana-go/commit/c8a1811058837b60cdc10ab6ac1a5136bb886a66))
* **api:** api update ([#45](https://github.com/nirvana-labs/nirvana-go/issues/45)) ([0274f77](https://github.com/nirvana-labs/nirvana-go/commit/0274f7788f0f15e1bee3a446db5802bae0fffdec))

## 0.1.0-alpha.11 (2025-01-22)

Full Changelog: [v0.1.0-alpha.10...v0.1.0-alpha.11](https://github.com/nirvana-labs/nirvana-go/compare/v0.1.0-alpha.10...v0.1.0-alpha.11)
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Or to pin the version:
<!-- x-release-please-start-version -->

```sh
go get -u 'github.com/nirvana-labs/nirvana-go@v0.1.0-alpha.11'
go get -u 'github.com/nirvana-labs/nirvana-go@v0.1.0-alpha.12'
```

<!-- x-release-please-end -->
Expand Down Expand Up @@ -61,7 +61,7 @@ func main() {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -202,7 +202,7 @@ _, err := client.VMs.New(context.TODO(), vms.VMNewParams{
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -248,7 +248,7 @@ client.VMs.New(
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -303,7 +303,7 @@ client.VMs.New(
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down
13 changes: 10 additions & 3 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Params Types:
Response Types:

- <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms">vms</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#CPU">CPU</a>
- <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms">vms</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#OSImage">OSImage</a>
- <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms">vms</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#Ram">Ram</a>
- <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms">vms</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#VM">VM</a>
- <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms">vms</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#VMList">VMList</a>
Expand All @@ -30,6 +31,12 @@ Methods:
- <code title="delete /vms/{vm_id}">client.VMs.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#VMService.Delete">Delete</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, vmID <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations">operations</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations#Operation">Operation</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="get /vms/{vm_id}">client.VMs.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#VMService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, vmID <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms">vms</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#VM">VM</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>

## OSImages

Methods:

- <code title="get /vms/os_images">client.VMs.OSImages.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#OSImageService.List">List</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>) ([]<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms">vms</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/vms#OSImage">OSImage</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>

# VPCs

Response Types:
Expand Down Expand Up @@ -78,9 +85,9 @@ Response Types:

Methods:

- <code title="post /vms/{vm_id}/volumes">client.Volumes.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, vmID <a href="https://pkg.go.dev/builtin#string">string</a>, body <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes">volumes</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeNewParams">VolumeNewParams</a>) (<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations">operations</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations#Operation">Operation</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="patch /vms/{vm_id}/volumes/{volume_id}">client.Volumes.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeService.Update">Update</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, vmID <a href="https://pkg.go.dev/builtin#string">string</a>, volumeID <a href="https://pkg.go.dev/builtin#string">string</a>, body <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes">volumes</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeUpdateParams">VolumeUpdateParams</a>) (<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations">operations</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations#Operation">Operation</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="delete /vms/{vm_id}/volumes/{volume_id}">client.Volumes.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeService.Delete">Delete</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, vmID <a href="https://pkg.go.dev/builtin#string">string</a>, volumeID <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations">operations</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations#Operation">Operation</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="post /volumes">client.Volumes.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes">volumes</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeNewParams">VolumeNewParams</a>) (<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations">operations</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations#Operation">Operation</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="patch /volumes/{volume_id}">client.Volumes.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeService.Update">Update</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, volumeID <a href="https://pkg.go.dev/builtin#string">string</a>, body <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes">volumes</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeUpdateParams">VolumeUpdateParams</a>) (<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations">operations</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations#Operation">Operation</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="delete /volumes/{volume_id}">client.Volumes.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeService.Delete">Delete</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, volumeID <a href="https://pkg.go.dev/builtin#string">string</a>, body <a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes">volumes</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/volumes#VolumeDeleteParams">VolumeDeleteParams</a>) (<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations">operations</a>.<a href="https://pkg.go.dev/github.com/nirvana-labs/nirvana-go/operations#Operation">Operation</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>

# Operations

Expand Down
16 changes: 8 additions & 8 deletions client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func TestUserAgentHeader(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -90,7 +90,7 @@ func TestRetryAfter(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -143,7 +143,7 @@ func TestDeleteRetryCountHeader(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -191,7 +191,7 @@ func TestOverwriteRetryCountHeader(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -238,7 +238,7 @@ func TestRetryAfterMs(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -279,7 +279,7 @@ func TestContextCancel(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -317,7 +317,7 @@ func TestContextCancelDelay(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down Expand Up @@ -361,7 +361,7 @@ func TestContextDeadline(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down
2 changes: 1 addition & 1 deletion internal/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

package internal

const PackageVersion = "0.1.0-alpha.11" // x-release-please-version
const PackageVersion = "0.1.0-alpha.12" // x-release-please-version
2 changes: 1 addition & 1 deletion usage_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func TestUsage(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down
38 changes: 38 additions & 0 deletions vms/osimage.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

package vms

import (
"context"
"net/http"

"github.com/nirvana-labs/nirvana-go/internal/requestconfig"
"github.com/nirvana-labs/nirvana-go/option"
)

// OSImageService contains methods and other services that help with interacting
// with the Nirvana Labs API.
//
// Note, unlike clients, this service does not read variables from the environment
// automatically. You should not instantiate this service directly, and instead use
// the [NewOSImageService] method instead.
type OSImageService struct {
Options []option.RequestOption
}

// NewOSImageService generates a new service that applies the given options to each
// request. These options are applied after the parent client's options (if there
// is one), and before any request-specific options.
func NewOSImageService(opts ...option.RequestOption) (r *OSImageService) {
r = &OSImageService{}
r.Options = opts
return
}

// List all OS Images
func (r *OSImageService) List(ctx context.Context, opts ...option.RequestOption) (res *[]OSImage, err error) {
opts = append(r.Options[:], opts...)
path := "vms/os_images"
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...)
return
}
36 changes: 36 additions & 0 deletions vms/osimage_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

package vms_test

import (
"context"
"errors"
"os"
"testing"

"github.com/nirvana-labs/nirvana-go"
"github.com/nirvana-labs/nirvana-go/internal/testutil"
"github.com/nirvana-labs/nirvana-go/option"
)

func TestOSImageList(t *testing.T) {
baseURL := "http://localhost:4010"
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
baseURL = envURL
}
if !testutil.CheckTestServer(t, baseURL) {
return
}
client := nirvana.NewClient(
option.WithBaseURL(baseURL),
option.WithAuthToken("My Auth Token"),
)
_, err := client.VMs.OSImages.List(context.TODO())
if err != nil {
var apierr *nirvana.Error
if errors.As(err, &apierr) {
t.Log(string(apierr.DumpRequest(true)))
}
t.Fatalf("err should be nil: %s", err.Error())
}
}
42 changes: 33 additions & 9 deletions vms/vm.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import (
"github.com/nirvana-labs/nirvana-go/option"
"github.com/nirvana-labs/nirvana-go/shared"
"github.com/nirvana-labs/nirvana-go/volumes"
"github.com/nirvana-labs/nirvana-go/vpcs"
)

// VMService contains methods and other services that help with interacting with
Expand All @@ -25,7 +24,8 @@ import (
// automatically. You should not instantiate this service directly, and instead use
// the [NewVMService] method instead.
type VMService struct {
Options []option.RequestOption
Options []option.RequestOption
OSImages *OSImageService
}

// NewVMService generates a new service that applies the given options to each
Expand All @@ -34,6 +34,7 @@ type VMService struct {
func NewVMService(opts ...option.RequestOption) (r *VMService) {
r = &VMService{}
r.Options = opts
r.OSImages = NewOSImageService(opts...)
return
}

Expand Down Expand Up @@ -119,6 +120,30 @@ func (r CPUParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}

type OSImage struct {
CreatedAt string `json:"created_at,required"`
DisplayName string `json:"display_name,required"`
Name string `json:"name,required"`
JSON osImageJSON `json:"-"`
}

// osImageJSON contains the JSON metadata for the struct [OSImage]
type osImageJSON struct {
CreatedAt apijson.Field
DisplayName apijson.Field
Name apijson.Field
raw string
ExtraFields map[string]apijson.Field
}

func (r *OSImage) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}

func (r osImageJSON) RawJSON() string {
return r.raw
}

// RAM details.
type Ram struct {
// RAM size
Expand Down Expand Up @@ -176,9 +201,8 @@ type VM struct {
Region shared.RegionName `json:"region,required"`
Status shared.ResourceStatus `json:"status,required"`
UpdatedAt string `json:"updated_at,required"`
// VPC details.
VPC vpcs.VPC `json:"vpc,required"`
JSON vmJSON `json:"-"`
VPCID string `json:"vpc_id,required"`
JSON vmJSON `json:"-"`
}

// vmJSON contains the JSON metadata for the struct [VM]
Expand All @@ -194,7 +218,7 @@ type vmJSON struct {
Region apijson.Field
Status apijson.Field
UpdatedAt apijson.Field
VPC apijson.Field
VPCID apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
Expand Down Expand Up @@ -234,7 +258,7 @@ type VMNewParams struct {
CPU param.Field[CPUParam] `json:"cpu,required"`
Name param.Field[string] `json:"name,required"`
NeedPublicIP param.Field[bool] `json:"need_public_ip,required"`
OsImageID param.Field[int64] `json:"os_image_id,required"`
OSImageName param.Field[string] `json:"os_image_name,required"`
Ports param.Field[[]string] `json:"ports,required"`
// RAM details.
Ram param.Field[RamParam] `json:"ram,required"`
Expand All @@ -259,7 +283,7 @@ func (r VMNewParamsBootVolume) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}

// Data volume create request.
// VM data volume create request.
type VMNewParamsDataVolume struct {
Size param.Field[int64] `json:"size,required"`
// Storage type.
Expand Down Expand Up @@ -293,7 +317,7 @@ func (r VMUpdateParamsBootVolume) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}

// Data volume create request.
// VM data volume create request.
type VMUpdateParamsDataVolume struct {
Size param.Field[int64] `json:"size,required"`
// Storage type.
Expand Down
2 changes: 1 addition & 1 deletion vms/vm_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func TestVMNewWithOptionalParams(t *testing.T) {
}),
Name: nirvana.F("my-vm"),
NeedPublicIP: nirvana.F(true),
OsImageID: nirvana.F(int64(1)),
OSImageName: nirvana.F("noble-2024-12-06"),
Ports: nirvana.F([]string{"22", "80", "443"}),
Ram: nirvana.F(vms.RamParam{
Size: nirvana.F(int64(2)),
Expand Down
Loading

0 comments on commit 73ca6da

Please sign in to comment.