Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(api): manual updates #73

Merged
merged 1 commit into from
Jan 31, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nirvana-labs%2Fnirvana-0a6cdd90a6420e0678cd061aa79985a9d888c0ed790e07cd63405e565fcd669e.yml
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nirvana-labs%2Fnirvana-c407ba815edce4599d34e57ca26ee7c144a51c3d9851226180f4da6a0bc66ce9.yml
35 changes: 6 additions & 29 deletions compute/vm.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ type VM struct {
// RAM details.
MemConfig Ram `json:"mem_config,required"`
Name string `json:"name,required"`
PrivateIP string `json:"private_ip,required"`
PublicIP string `json:"public_ip,required"`
Region shared.RegionName `json:"region,required"`
Status shared.ResourceStatus `json:"status,required"`
Expand All @@ -212,6 +213,7 @@ type vmJSON struct {
DataVolumeIDs apijson.Field
MemConfig apijson.Field
Name apijson.Field
PrivateIP apijson.Field
PublicIP apijson.Field
Region apijson.Field
Status apijson.Field
Expand Down Expand Up @@ -261,11 +263,9 @@ type VMNewParams struct {
Ram param.Field[RamParam] `json:"ram,required"`
Region param.Field[shared.RegionName] `json:"region,required"`
// SSH key details.
SSHKey param.Field[SSHKeyParam] `json:"ssh_key,required"`
DataVolumes param.Field[[]VMNewParamsDataVolume] `json:"data_volumes"`
Ports param.Field[[]string] `json:"ports"`
SourceAddress param.Field[string] `json:"source_address"`
SubnetID param.Field[string] `json:"subnet_id"`
SSHKey param.Field[SSHKeyParam] `json:"ssh_key,required"`
DataVolumes param.Field[[]VMNewParamsDataVolume] `json:"data_volumes"`
SubnetID param.Field[string] `json:"subnet_id"`
}

func (r VMNewParams) MarshalJSON() (data []byte, err error) {
Expand Down Expand Up @@ -293,35 +293,12 @@ func (r VMNewParamsDataVolume) MarshalJSON() (data []byte, err error) {
}

type VMUpdateParams struct {
// Boot volume create request.
BootVolume param.Field[VMUpdateParamsBootVolume] `json:"boot_volume"`
// CPU details.
CPU param.Field[CPUParam] `json:"cpu"`
DataVolumes param.Field[[]VMUpdateParamsDataVolume] `json:"data_volumes"`
CPU param.Field[CPUParam] `json:"cpu"`
// RAM details.
Ram param.Field[RamParam] `json:"ram"`
}

func (r VMUpdateParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}

// Boot volume create request.
type VMUpdateParamsBootVolume struct {
Size param.Field[int64] `json:"size,required"`
}

func (r VMUpdateParamsBootVolume) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}

// VM data volume create request.
type VMUpdateParamsDataVolume struct {
Size param.Field[int64] `json:"size,required"`
// Storage type.
Type param.Field[StorageType] `json:"type"`
}

func (r VMUpdateParamsDataVolume) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
11 changes: 1 addition & 10 deletions compute/vm_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,7 @@ func TestVMNewWithOptionalParams(t *testing.T) {
Size: nirvana.F(int64(100)),
Type: nirvana.F(compute.StorageTypeNvme),
}}),
Ports: nirvana.F([]string{"22", "80", "443"}),
SourceAddress: nirvana.F("0.0.0.0/0"),
SubnetID: nirvana.F("123e4567-e89b-12d3-a456-426614174000"),
SubnetID: nirvana.F("123e4567-e89b-12d3-a456-426614174000"),
})
if err != nil {
var apierr *nirvana.Error
Expand All @@ -77,16 +75,9 @@ func TestVMUpdateWithOptionalParams(t *testing.T) {
context.TODO(),
"vm_id",
compute.VMUpdateParams{
BootVolume: nirvana.F(compute.VMUpdateParamsBootVolume{
Size: nirvana.F(int64(100)),
}),
CPU: nirvana.F(compute.CPUParam{
Cores: nirvana.F(int64(2)),
}),
DataVolumes: nirvana.F([]compute.VMUpdateParamsDataVolume{{
Size: nirvana.F(int64(100)),
Type: nirvana.F(compute.StorageTypeNvme),
}}),
Ram: nirvana.F(compute.RamParam{
Size: nirvana.F(int64(2)),
}),
Expand Down