Merge pull request #15361 from spotinst/feature/bump_spotinst-sdk-go_to_1.145.0

Spotinst: bump spotinst-sdk-go to v1.145.0
This commit is contained in:
Kubernetes Prow Robot 2023-05-03 03:00:12 -07:00 committed by GitHub
commit 101ad83161
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 491 additions and 80 deletions

2
go.mod
View File

@ -43,7 +43,7 @@ require (
github.com/spf13/cobra v1.6.1
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.15.0
github.com/spotinst/spotinst-sdk-go v1.334.0
github.com/spotinst/spotinst-sdk-go v1.145.0
github.com/stretchr/testify v1.8.2
github.com/weaveworks/mesh v0.0.0-20191105120815-58dbcc3e8e63
go.uber.org/multierr v1.10.0

6
go.sum
View File

@ -671,8 +671,8 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU=
github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA=
github.com/spotinst/spotinst-sdk-go v1.334.0 h1:CniPPiBwJWNIs9RA8S47P6KXT9Qm0BMsSl5viepTKaI=
github.com/spotinst/spotinst-sdk-go v1.334.0/go.mod h1:C6mrT7+mqOgPyabacjyYTvilu8Xm96mvTvrZQhj99WI=
github.com/spotinst/spotinst-sdk-go v1.145.0 h1:c/PufzKMbjmqSYcVHr+TuNpcZ6x5+jZALVGTesbJ7q4=
github.com/spotinst/spotinst-sdk-go v1.145.0/go.mod h1:Ku9c4p+kRWnQqmXkzGcTMHLcQKgLHrQZISxeKY7mPqE=
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@ -686,7 +686,6 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
@ -1209,7 +1208,6 @@ gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs=
gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=

View File

@ -525,20 +525,22 @@ type StepAdjustment struct {
}
type Strategy struct {
Risk *float64 `json:"risk,omitempty"`
OnDemandCount *int `json:"onDemandCount,omitempty"`
DrainingTimeout *int `json:"drainingTimeout,omitempty"`
AvailabilityVsCost *string `json:"availabilityVsCost,omitempty"`
LifetimePeriod *string `json:"lifetimePeriod,omitempty"`
UtilizeReservedInstances *bool `json:"utilizeReservedInstances,omitempty"`
FallbackToOnDemand *bool `json:"fallbackToOd,omitempty"`
SpinUpTime *int `json:"spinUpTime,omitempty"`
Signals []*Signal `json:"signals,omitempty"`
Persistence *Persistence `json:"persistence,omitempty"`
RevertToSpot *RevertToSpot `json:"revertToSpot,omitempty"`
ScalingStrategy *ScalingStrategy `json:"scalingStrategy,omitempty"`
UtilizeCommitments *bool `json:"utilizeCommitments,omitempty"`
MinimumInstanceLifetime *int `json:"minimumInstanceLifetime,omitempty"`
Risk *float64 `json:"risk,omitempty"`
OnDemandCount *int `json:"onDemandCount,omitempty"`
DrainingTimeout *int `json:"drainingTimeout,omitempty"`
AvailabilityVsCost *string `json:"availabilityVsCost,omitempty"`
LifetimePeriod *string `json:"lifetimePeriod,omitempty"`
UtilizeReservedInstances *bool `json:"utilizeReservedInstances,omitempty"`
FallbackToOnDemand *bool `json:"fallbackToOd,omitempty"`
SpinUpTime *int `json:"spinUpTime,omitempty"`
Signals []*Signal `json:"signals,omitempty"`
Persistence *Persistence `json:"persistence,omitempty"`
RevertToSpot *RevertToSpot `json:"revertToSpot,omitempty"`
ScalingStrategy *ScalingStrategy `json:"scalingStrategy,omitempty"`
UtilizeCommitments *bool `json:"utilizeCommitments,omitempty"`
MinimumInstanceLifetime *int `json:"minimumInstanceLifetime,omitempty"`
ConsiderODPricing *bool `json:"considerODPricing,omitempty"`
ImmediateODRecoverThreshold *int `json:"immediateODRecoverThreshold,omitempty"`
forceSendFields []string
nullFields []string
@ -3488,6 +3490,13 @@ func (o *Strategy) SetOnDemandCount(v *int) *Strategy {
return o
}
func (o *Strategy) SetImmediateODRecoverThreshold(v *int) *Strategy {
if o.ImmediateODRecoverThreshold = v; o.ImmediateODRecoverThreshold == nil {
o.nullFields = append(o.nullFields, "ImmediateODRecoverThreshold")
}
return o
}
func (o *Strategy) SetDrainingTimeout(v *int) *Strategy {
if o.DrainingTimeout = v; o.DrainingTimeout == nil {
o.nullFields = append(o.nullFields, "DrainingTimeout")
@ -3571,6 +3580,12 @@ func (o *Strategy) SetMinimumInstanceLifetime(v *int) *Strategy {
}
return o
}
func (o *Strategy) SetConsiderODPricing(v *bool) *Strategy {
if o.ConsiderODPricing = v; o.ConsiderODPricing == nil {
o.nullFields = append(o.nullFields, "ConsiderODPricing")
}
return o
}
// endregion

View File

@ -48,15 +48,40 @@ type Cluster struct {
}
type Strategy struct {
SpotPercentage *float64 `json:"spotPercentage,omitempty"`
UtilizeReservedInstances *bool `json:"utilizeReservedInstances,omitempty"`
FallbackToOnDemand *bool `json:"fallbackToOd,omitempty"`
DrainingTimeout *int `json:"drainingTimeout,omitempty"`
GracePeriod *int `json:"gracePeriod,omitempty"`
UtilizeCommitments *bool `json:"utilizeCommitments,omitempty"`
SpotPercentage *float64 `json:"spotPercentage,omitempty"`
UtilizeReservedInstances *bool `json:"utilizeReservedInstances,omitempty"`
FallbackToOnDemand *bool `json:"fallbackToOd,omitempty"`
DrainingTimeout *int `json:"drainingTimeout,omitempty"`
GracePeriod *int `json:"gracePeriod,omitempty"`
UtilizeCommitments *bool `json:"utilizeCommitments,omitempty"`
ClusterOrientation *ClusterOrientation `json:"clusterOrientation,omitempty"`
SpreadNodesBy *string `json:"spreadNodesBy,omitempty"`
forceSendFields []string
nullFields []string
}
type ClusterOrientation struct {
AvailabilityVsCost *string `json:"availabilityVsCost,omitempty"`
forceSendFields []string
nullFields []string
}
forceSendFields []string
nullFields []string
func (o *ClusterOrientation) SetAvailabilityVsCost(v *string) *ClusterOrientation {
if o.AvailabilityVsCost = v; o.AvailabilityVsCost == nil {
o.nullFields = append(o.nullFields, "AvailabilityVsCost")
}
return o
}
func (o *Strategy) SetClusterOrientation(v *ClusterOrientation) *Strategy {
if o.ClusterOrientation = v; o.ClusterOrientation == nil {
o.nullFields = append(o.nullFields, "ClusterOrientation")
}
return o
}
func (o ClusterOrientation) MarshalJSON() ([]byte, error) {
type noMethod ClusterOrientation
raw := noMethod(o)
return jsonutil.MarshalJSON(raw, o.forceSendFields, o.nullFields)
}
type Capacity struct {
@ -1180,6 +1205,13 @@ func (o *Strategy) SetUtilizeCommitments(v *bool) *Strategy {
return o
}
func (o *Strategy) SetSpreadNodesBy(v *string) *Strategy {
if o.SpreadNodesBy = v; o.SpreadNodesBy == nil {
o.nullFields = append(o.nullFields, "SpreadNodesBy")
}
return o
}
// endregion
// region Capacity

View File

@ -47,14 +47,39 @@ type ECSCluster struct {
}
type ECSStrategy struct {
DrainingTimeout *int `json:"drainingTimeout,omitempty"`
UtilizeReservedInstances *bool `json:"utilizeReservedInstances,omitempty"`
UtilizeCommitments *bool `json:"utilizeCommitments,omitempty"`
SpotPercentage *int `json:"spotPercentage,omitempty"`
DrainingTimeout *int `json:"drainingTimeout,omitempty"`
UtilizeReservedInstances *bool `json:"utilizeReservedInstances,omitempty"`
UtilizeCommitments *bool `json:"utilizeCommitments,omitempty"`
SpotPercentage *int `json:"spotPercentage,omitempty"`
ClusterOrientation *ECSClusterOrientation `json:"clusterOrientation,omitempty"`
forceSendFields []string
nullFields []string
}
type ECSClusterOrientation struct {
AvailabilityVsCost *string `json:"availabilityVsCost,omitempty"`
forceSendFields []string
nullFields []string
}
func (o *ECSClusterOrientation) SetECSAvailabilityVsCost(v *string) *ECSClusterOrientation {
if o.AvailabilityVsCost = v; o.AvailabilityVsCost == nil {
o.nullFields = append(o.nullFields, "AvailabilityVsCost")
}
return o
}
func (o *ECSStrategy) SetECSClusterOrientation(v *ECSClusterOrientation) *ECSStrategy {
if o.ClusterOrientation = v; o.ClusterOrientation == nil {
o.nullFields = append(o.nullFields, "ClusterOrientation")
}
return o
}
func (o ECSClusterOrientation) MarshalJSON() ([]byte, error) {
type noMethod ECSClusterOrientation
raw := noMethod(o)
return jsonutil.MarshalJSON(raw, o.forceSendFields, o.nullFields)
}
type ECSScheduling struct {
Tasks []*ECSTask `json:"tasks,omitempty"`
@ -122,7 +147,34 @@ type ECSCompute struct {
}
type ECSInstanceTypes struct {
Whitelist []string `json:"whitelist,omitempty"`
Whitelist []string `json:"whitelist,omitempty"`
Blacklist []string `json:"blacklist,omitempty"`
Filters *ECSFilters `json:"filters,omitempty"`
forceSendFields []string
nullFields []string
}
type ECSFilters struct {
Architectures []string `json:"architectures,omitempty"`
Categories []string `json:"categories,omitempty"`
DiskTypes []string `json:"diskTypes,omitempty"`
ExcludeFamilies []string `json:"excludeFamilies,omitempty"`
ExcludeMetal *bool `json:"excludeMetal,omitempty"`
Hypervisor []string `json:"hypervisor,omitempty"`
IncludeFamilies []string `json:"includeFamilies,omitempty"`
IsEnaSupported *bool `json:"isEnaSupported,omitempty"`
MaxGpu *int `json:"maxGpu,omitempty"`
MaxMemoryGiB *float64 `json:"maxMemoryGiB,omitempty"`
MaxNetworkPerformance *int `json:"maxNetworkPerformance,omitempty"`
MaxVcpu *int `json:"maxVcpu,omitempty"`
MinEnis *int `json:"minEnis,omitempty"`
MinGpu *int `json:"minGpu,omitempty"`
MinMemoryGiB *float64 `json:"minMemoryGiB,omitempty"`
MinNetworkPerformance *int `json:"minNetworkPerformance,omitempty"`
MinVcpu *int `json:"minVcpu,omitempty"`
RootDeviceTypes []string `json:"rootDeviceTypes,omitempty"`
VirtualizationTypes []string `json:"virtualizationTypes,omitempty"`
forceSendFields []string
nullFields []string
@ -164,13 +216,14 @@ type ECSIAMInstanceProfile struct {
}
type ECSAutoScaler struct {
IsEnabled *bool `json:"isEnabled,omitempty"`
IsAutoConfig *bool `json:"isAutoConfig,omitempty"`
Cooldown *int `json:"cooldown,omitempty"`
Headroom *ECSAutoScalerHeadroom `json:"headroom,omitempty"`
ResourceLimits *ECSAutoScalerResourceLimits `json:"resourceLimits,omitempty"`
Down *ECSAutoScalerDown `json:"down,omitempty"`
AutoHeadroomPercentage *int `json:"autoHeadroomPercentage,omitempty"`
IsEnabled *bool `json:"isEnabled,omitempty"`
IsAutoConfig *bool `json:"isAutoConfig,omitempty"`
Cooldown *int `json:"cooldown,omitempty"`
Headroom *ECSAutoScalerHeadroom `json:"headroom,omitempty"`
ResourceLimits *ECSAutoScalerResourceLimits `json:"resourceLimits,omitempty"`
Down *ECSAutoScalerDown `json:"down,omitempty"`
AutoHeadroomPercentage *int `json:"autoHeadroomPercentage,omitempty"`
ShouldScaleDownNonServiceTasks *bool `json:"shouldScaleDownNonServiceTasks,omitempty"`
forceSendFields []string
nullFields []string
@ -830,6 +883,20 @@ func (o *ECSInstanceTypes) SetWhitelist(v []string) *ECSInstanceTypes {
return o
}
func (o *ECSInstanceTypes) SetBlacklist(v []string) *ECSInstanceTypes {
if o.Blacklist = v; o.Blacklist == nil {
o.nullFields = append(o.nullFields, "Blacklist")
}
return o
}
func (o *ECSInstanceTypes) SetFilters(v *ECSFilters) *ECSInstanceTypes {
if o.Filters = v; o.Filters == nil {
o.nullFields = append(o.nullFields, "Filters")
}
return o
}
// endregion
// region LaunchSpecification
@ -1038,6 +1105,13 @@ func (o *ECSAutoScaler) SetAutoHeadroomPercentage(v *int) *ECSAutoScaler {
return o
}
func (o *ECSAutoScaler) SetShouldScaleDownNonServiceTasks(v *bool) *ECSAutoScaler {
if o.ShouldScaleDownNonServiceTasks = v; o.ShouldScaleDownNonServiceTasks == nil {
o.nullFields = append(o.nullFields, "ShouldScaleDownNonServiceTasks")
}
return o
}
// endregion
// region AutoScalerHeadroom
@ -1179,4 +1253,143 @@ func (o *ECSInstanceMetadataOptions) SetHTTPPutResponseHopLimit(v *int) *ECSInst
return o
}
func (o ECSFilters) MarshalJSON() ([]byte, error) {
type noMethod Filters
raw := noMethod(o)
return jsonutil.MarshalJSON(raw, o.forceSendFields, o.nullFields)
}
func (o *ECSFilters) SetArchitectures(v []string) *ECSFilters {
if o.Architectures = v; o.Architectures == nil {
o.nullFields = append(o.nullFields, "Architectures")
}
return o
}
func (o *ECSFilters) SetCategories(v []string) *ECSFilters {
if o.Categories = v; o.Categories == nil {
o.nullFields = append(o.nullFields, "Categories")
}
return o
}
func (o *ECSFilters) SetDiskTypes(v []string) *ECSFilters {
if o.DiskTypes = v; o.DiskTypes == nil {
o.nullFields = append(o.nullFields, "DiskTypes")
}
return o
}
func (o *ECSFilters) SetExcludeFamilies(v []string) *ECSFilters {
if o.ExcludeFamilies = v; o.ExcludeFamilies == nil {
o.nullFields = append(o.nullFields, "ExcludeFamilies")
}
return o
}
func (o *ECSFilters) SetExcludeMetal(v *bool) *ECSFilters {
if o.ExcludeMetal = v; o.ExcludeMetal == nil {
o.nullFields = append(o.nullFields, "ExcludeMetal")
}
return o
}
func (o *ECSFilters) SetHypervisor(v []string) *ECSFilters {
if o.Hypervisor = v; o.Hypervisor == nil {
o.nullFields = append(o.nullFields, "Hypervisor")
}
return o
}
func (o *ECSFilters) SetIncludeFamilies(v []string) *ECSFilters {
if o.IncludeFamilies = v; o.IncludeFamilies == nil {
o.nullFields = append(o.nullFields, "IncludeFamilies")
}
return o
}
func (o *ECSFilters) SetIsEnaSupported(v *bool) *ECSFilters {
if o.IsEnaSupported = v; o.IsEnaSupported == nil {
o.nullFields = append(o.nullFields, "IsEnaSupported")
}
return o
}
func (o *ECSFilters) SetMaxGpu(v *int) *ECSFilters {
if o.MaxGpu = v; o.MaxGpu == nil {
o.nullFields = append(o.nullFields, "MaxGpu")
}
return o
}
func (o *ECSFilters) SetMaxMemoryGiB(v *float64) *ECSFilters {
if o.MaxMemoryGiB = v; o.MaxMemoryGiB == nil {
o.nullFields = append(o.nullFields, "MaxMemoryGiB")
}
return o
}
func (o *ECSFilters) SetMaxNetworkPerformance(v *int) *ECSFilters {
if o.MaxNetworkPerformance = v; o.MaxNetworkPerformance == nil {
o.nullFields = append(o.nullFields, "MaxNetworkPerformance")
}
return o
}
func (o *ECSFilters) SetMaxVcpu(v *int) *ECSFilters {
if o.MaxVcpu = v; o.MaxVcpu == nil {
o.nullFields = append(o.nullFields, "MaxVcpu")
}
return o
}
func (o *ECSFilters) SetMinEnis(v *int) *ECSFilters {
if o.MinEnis = v; o.MinEnis == nil {
o.nullFields = append(o.nullFields, "MinEnis")
}
return o
}
func (o *ECSFilters) SetMinGpu(v *int) *ECSFilters {
if o.MinGpu = v; o.MinGpu == nil {
o.nullFields = append(o.nullFields, "MinGpu")
}
return o
}
func (o *ECSFilters) SetMinMemoryGiB(v *float64) *ECSFilters {
if o.MinMemoryGiB = v; o.MinMemoryGiB == nil {
o.nullFields = append(o.nullFields, "MinMemoryGiB")
}
return o
}
func (o *ECSFilters) SetMinNetworkPerformance(v *int) *ECSFilters {
if o.MinNetworkPerformance = v; o.MinNetworkPerformance == nil {
o.nullFields = append(o.nullFields, "MinNetworkPerformance")
}
return o
}
func (o *ECSFilters) SetMinVcpu(v *int) *ECSFilters {
if o.MinVcpu = v; o.MinVcpu == nil {
o.nullFields = append(o.nullFields, "MinVcpu")
}
return o
}
func (o *ECSFilters) SetRootDeviceTypes(v []string) *ECSFilters {
if o.RootDeviceTypes = v; o.RootDeviceTypes == nil {
o.nullFields = append(o.nullFields, "RootDeviceTypes")
}
return o
}
func (o *ECSFilters) SetVirtualizationTypes(v []string) *ECSFilters {
if o.VirtualizationTypes = v; o.VirtualizationTypes == nil {
o.nullFields = append(o.nullFields, "VirtualizationTypes")
}
return o
}
// endregion

View File

@ -15,28 +15,29 @@ import (
)
type LaunchSpec struct {
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
OceanID *string `json:"oceanId,omitempty"`
ImageID *string `json:"imageId,omitempty"`
UserData *string `json:"userData,omitempty"`
RootVolumeSize *int `json:"rootVolumeSize,omitempty"`
SecurityGroupIDs []string `json:"securityGroupIds,omitempty"`
SubnetIDs []string `json:"subnetIds,omitempty"`
InstanceTypes []string `json:"instanceTypes,omitempty"`
PreferredSpotTypes []string `json:"preferredSpotTypes,omitempty"`
Strategy *LaunchSpecStrategy `json:"strategy,omitempty"`
ResourceLimits *ResourceLimits `json:"resourceLimits,omitempty"`
IAMInstanceProfile *IAMInstanceProfile `json:"iamInstanceProfile,omitempty"`
AutoScale *AutoScale `json:"autoScale,omitempty"`
ElasticIPPool *ElasticIPPool `json:"elasticIpPool,omitempty"`
BlockDeviceMappings []*BlockDeviceMapping `json:"blockDeviceMappings,omitempty"`
Labels []*Label `json:"labels,omitempty"`
Taints []*Taint `json:"taints,omitempty"`
Tags []*Tag `json:"tags,omitempty"`
AssociatePublicIPAddress *bool `json:"associatePublicIpAddress,omitempty"`
RestrictScaleDown *bool `json:"restrictScaleDown,omitempty"`
LaunchSpecScheduling *LaunchSpecScheduling `json:"scheduling,omitempty"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
OceanID *string `json:"oceanId,omitempty"`
ImageID *string `json:"imageId,omitempty"`
UserData *string `json:"userData,omitempty"`
RootVolumeSize *int `json:"rootVolumeSize,omitempty"`
SecurityGroupIDs []string `json:"securityGroupIds,omitempty"`
SubnetIDs []string `json:"subnetIds,omitempty"`
InstanceTypes []string `json:"instanceTypes,omitempty"`
PreferredSpotTypes []string `json:"preferredSpotTypes,omitempty"`
Strategy *LaunchSpecStrategy `json:"strategy,omitempty"`
ResourceLimits *ResourceLimits `json:"resourceLimits,omitempty"`
IAMInstanceProfile *IAMInstanceProfile `json:"iamInstanceProfile,omitempty"`
AutoScale *AutoScale `json:"autoScale,omitempty"`
ElasticIPPool *ElasticIPPool `json:"elasticIpPool,omitempty"`
BlockDeviceMappings []*BlockDeviceMapping `json:"blockDeviceMappings,omitempty"`
Labels []*Label `json:"labels,omitempty"`
Taints []*Taint `json:"taints,omitempty"`
Tags []*Tag `json:"tags,omitempty"`
AssociatePublicIPAddress *bool `json:"associatePublicIpAddress,omitempty"`
RestrictScaleDown *bool `json:"restrictScaleDown,omitempty"`
LaunchSpecScheduling *LaunchSpecScheduling `json:"scheduling,omitempty"`
InstanceMetadataOptions *LaunchspecInstanceMetadataOptions `json:"instanceMetadataOptions,omitempty"`
// Read-only fields.
CreatedAt *time.Time `json:"createdAt,omitempty"`
@ -59,6 +60,44 @@ type LaunchSpec struct {
nullFields []string
}
// region InstanceMetadataOptions
type LaunchspecInstanceMetadataOptions struct {
HTTPTokens *string `json:"httpTokens,omitempty"`
HTTPPutResponseHopLimit *int `json:"httpPutResponseHopLimit,omitempty"`
forceSendFields []string
nullFields []string
}
func (o *LaunchspecInstanceMetadataOptions) SetHTTPTokens(v *string) *LaunchspecInstanceMetadataOptions {
if o.HTTPTokens = v; o.HTTPTokens == nil {
o.nullFields = append(o.nullFields, "HTTPTokens")
}
return o
}
func (o *LaunchspecInstanceMetadataOptions) SetHTTPPutResponseHopLimit(v *int) *LaunchspecInstanceMetadataOptions {
if o.HTTPPutResponseHopLimit = v; o.HTTPPutResponseHopLimit == nil {
o.nullFields = append(o.nullFields, "HTTPPutResponseHopLimit")
}
return o
}
func (o *LaunchSpec) SetLaunchspecInstanceMetadataOptions(v *LaunchspecInstanceMetadataOptions) *LaunchSpec {
if o.InstanceMetadataOptions = v; o.InstanceMetadataOptions == nil {
o.nullFields = append(o.nullFields, "InstanceMetadataOptions")
}
return o
}
func (o LaunchspecInstanceMetadataOptions) MarshalJSON() ([]byte, error) {
type noMethod LaunchspecInstanceMetadataOptions
raw := noMethod(o)
return jsonutil.MarshalJSON(raw, o.forceSendFields, o.nullFields)
}
// endregion
type ResourceLimits struct {
MaxInstanceCount *int `json:"maxInstanceCount,omitempty"`
MinInstanceCount *int `json:"minInstanceCount,omitempty"`
@ -121,6 +160,7 @@ type Taint struct {
type AutoScale struct {
Headrooms []*AutoScaleHeadroom `json:"headrooms,omitempty"`
AutoHeadroomPercentage *int `json:"autoHeadroomPercentage,omitempty"`
Down *AutoScalerDownVNG `json:"down,omitempty"`
forceSendFields []string
nullFields []string
@ -135,6 +175,31 @@ type AutoScaleHeadroom struct {
forceSendFields []string
nullFields []string
}
type AutoScalerDownVNG struct {
MaxScaleDownPercentage *float64 `json:"maxScaleDownPercentage,omitempty"`
forceSendFields []string
nullFields []string
}
func (o *AutoScalerDownVNG) SetMaxScaleDownPercentage(v *float64) *AutoScalerDownVNG {
if o.MaxScaleDownPercentage = v; o.MaxScaleDownPercentage == nil {
o.nullFields = append(o.nullFields, "MaxScaleDownPercentage")
}
return o
}
func (o *AutoScale) SetAutoScalerDownVNG(v *AutoScalerDownVNG) *AutoScale {
if o.Down = v; o.Down == nil {
o.nullFields = append(o.nullFields, "Down")
}
return o
}
func (o AutoScalerDownVNG) MarshalJSON() ([]byte, error) {
type noMethod AutoScalerDownVNG
raw := noMethod(o)
return jsonutil.MarshalJSON(raw, o.forceSendFields, o.nullFields)
}
type ElasticIPPool struct {
TagSelector *TagSelector `json:"tagSelector,omitempty"`

View File

@ -14,23 +14,24 @@ import (
)
type ECSLaunchSpec struct {
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
OceanID *string `json:"oceanId,omitempty"`
ImageID *string `json:"imageId,omitempty"`
UserData *string `json:"userData,omitempty"`
SecurityGroupIDs []string `json:"securityGroupIds,omitempty"`
AutoScale *ECSAutoScale `json:"autoScale,omitempty"`
IAMInstanceProfile *ECSIAMInstanceProfile `json:"iamInstanceProfile,omitempty"`
Attributes []*ECSAttribute `json:"attributes,omitempty"`
BlockDeviceMappings []*ECSBlockDeviceMapping `json:"blockDeviceMappings,omitempty"`
Tags []*Tag `json:"tags,omitempty"`
InstanceTypes []string `json:"instanceTypes,omitempty"`
PreferredSpotTypes []string `json:"preferredSpotTypes,omitempty"`
Strategy *ECSLaunchSpecStrategy `json:"strategy,omitempty"`
RestrictScaleDown *bool `json:"restrictScaleDown,omitempty"`
SubnetIDs []string `json:"subnetIds,omitempty"`
LaunchSpecScheduling *ECSLaunchSpecScheduling `json:"scheduling,omitempty"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
OceanID *string `json:"oceanId,omitempty"`
ImageID *string `json:"imageId,omitempty"`
UserData *string `json:"userData,omitempty"`
SecurityGroupIDs []string `json:"securityGroupIds,omitempty"`
AutoScale *ECSAutoScale `json:"autoScale,omitempty"`
IAMInstanceProfile *ECSIAMInstanceProfile `json:"iamInstanceProfile,omitempty"`
Attributes []*ECSAttribute `json:"attributes,omitempty"`
BlockDeviceMappings []*ECSBlockDeviceMapping `json:"blockDeviceMappings,omitempty"`
Tags []*Tag `json:"tags,omitempty"`
InstanceTypes []string `json:"instanceTypes,omitempty"`
PreferredSpotTypes []string `json:"preferredSpotTypes,omitempty"`
Strategy *ECSLaunchSpecStrategy `json:"strategy,omitempty"`
RestrictScaleDown *bool `json:"restrictScaleDown,omitempty"`
SubnetIDs []string `json:"subnetIds,omitempty"`
LaunchSpecScheduling *ECSLaunchSpecScheduling `json:"scheduling,omitempty"`
InstanceMetadataOptions *ECSLaunchspecInstanceMetadataOptions `json:"instanceMetadataOptions,omitempty"`
// Read-only fields.
CreatedAt *time.Time `json:"createdAt,omitempty"`
@ -53,6 +54,44 @@ type ECSLaunchSpec struct {
nullFields []string
}
// region InstanceMetadataOptions
type ECSLaunchspecInstanceMetadataOptions struct {
HTTPTokens *string `json:"httpTokens,omitempty"`
HTTPPutResponseHopLimit *int `json:"httpPutResponseHopLimit,omitempty"`
forceSendFields []string
nullFields []string
}
func (o *ECSLaunchspecInstanceMetadataOptions) SetHTTPTokens(v *string) *ECSLaunchspecInstanceMetadataOptions {
if o.HTTPTokens = v; o.HTTPTokens == nil {
o.nullFields = append(o.nullFields, "HTTPTokens")
}
return o
}
func (o *ECSLaunchspecInstanceMetadataOptions) SetHTTPPutResponseHopLimit(v *int) *ECSLaunchspecInstanceMetadataOptions {
if o.HTTPPutResponseHopLimit = v; o.HTTPPutResponseHopLimit == nil {
o.nullFields = append(o.nullFields, "HTTPPutResponseHopLimit")
}
return o
}
func (o *ECSLaunchSpec) SetECSLaunchspecInstanceMetadataOptions(v *ECSLaunchspecInstanceMetadataOptions) *ECSLaunchSpec {
if o.InstanceMetadataOptions = v; o.InstanceMetadataOptions == nil {
o.nullFields = append(o.nullFields, "InstanceMetadataOptions")
}
return o
}
func (o ECSLaunchspecInstanceMetadataOptions) MarshalJSON() ([]byte, error) {
type noMethod ECSLaunchspecInstanceMetadataOptions
raw := noMethod(o)
return jsonutil.MarshalJSON(raw, o.forceSendFields, o.nullFields)
}
// endregion
type ECSAttribute struct {
Key *string `json:"key,omitempty"`
Value *string `json:"value,omitempty"`

View File

@ -276,6 +276,7 @@ type RollSpec struct {
BatchMinHealthyPercentage *int `json:"batchMinHealthyPercentage,omitempty"`
LaunchSpecIDs []string `json:"launchSpecIds,omitempty"`
InstanceNames []string `json:"instanceNames,omitempty"`
RespectPDB *bool `json:"respectPdb,omitempty"`
forceSendFields []string
nullFields []string
@ -1387,6 +1388,13 @@ func (o *RollSpec) SetInstanceNames(v []string) *RollSpec {
return o
}
func (o *RollSpec) SetRespectPDB(v *bool) *RollSpec {
if o.RespectPDB = v; o.RespectPDB == nil {
o.nullFields = append(o.nullFields, "RespectPdb")
}
return o
}
// endregion
// region ShieldedInstanceConfig

View File

@ -17,6 +17,7 @@ type Service interface {
DeleteCluster(context.Context, *DeleteClusterInput) (*DeleteClusterOutput, error)
CreateCluster(context.Context, *CreateClusterInput) (*CreateClusterOutput, error)
UpdateCluster(context.Context, *UpdateClusterInput) (*UpdateClusterOutput, error)
ListVirtualNodeGroups(context.Context, *ListVngsInput) (*ListVngsOutput, error)
DetachVirtualNodeGroup(context.Context, *DetachVngInput) (*DetachVngOutput, error)
AttachVirtualNodeGroup(context.Context, *AttachVngInput) (*AttachVngOutput, error)
}

View File

@ -179,6 +179,38 @@ func clusterFromJSON(in []byte) (*Cluster, error) {
//endregion
// region Virtual Node Group
func (s *ServiceOp) ListVirtualNodeGroups(ctx context.Context, input *ListVngsInput) (*ListVngsOutput, error) {
if input == nil {
return nil, fmt.Errorf("input is nil")
}
path, err := uritemplates.Expand("/ocean/spark/cluster/{clusterId}/virtualNodeGroup", uritemplates.Values{
"clusterId": spotinst.StringValue(input.ClusterID),
})
if err != nil {
return nil, err
}
r := client.NewRequest(http.MethodGet, path)
resp, err := client.RequireOK(s.Client.Do(ctx, r))
if err != nil {
return nil, err
}
defer resp.Body.Close()
vngs, err := vngsFromHttpResponse(resp)
if err != nil {
return nil, err
}
output := new(ListVngsOutput)
if len(vngs) > 0 {
output.VirtualNodeGroups = vngs
}
return output, nil
}
func (s *ServiceOp) DetachVirtualNodeGroup(ctx context.Context, input *DetachVngInput) (*DetachVngOutput, error) {
if input == nil {
return nil, fmt.Errorf("input is nil")

View File

@ -25,3 +25,11 @@ type DetachVngInput struct {
}
type DetachVngOutput struct{}
type ListVngsInput struct {
ClusterID *string `json:"clusterId,omitempty"`
}
type ListVngsOutput struct {
VirtualNodeGroups []*DedicatedVirtualNodeGroup `json:"virtualNodeGroups,omitempty"`
}

View File

@ -1,7 +1,7 @@
package spotinst
// SDKVersion is the current version of the SDK.
const SDKVersion = "1.334.0"
const SDKVersion = "1.145.0"
// SDKName is the name of the SDK.
const SDKName = "spotinst-sdk-go"

2
vendor/modules.txt generated vendored
View File

@ -787,7 +787,7 @@ github.com/spf13/viper/internal/encoding/javaproperties
github.com/spf13/viper/internal/encoding/json
github.com/spf13/viper/internal/encoding/toml
github.com/spf13/viper/internal/encoding/yaml
# github.com/spotinst/spotinst-sdk-go v1.334.0
# github.com/spotinst/spotinst-sdk-go v1.145.0
## explicit; go 1.16
github.com/spotinst/spotinst-sdk-go/service/elastigroup
github.com/spotinst/spotinst-sdk-go/service/elastigroup/providers/aws