diff --git a/Makefile b/Makefile index 1a7aeae..3c24df0 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ TERRAFORM_VERSION_VALID := $(shell [ "$(TERRAFORM_VERSION)" = "`printf "$(TERRAF export TERRAFORM_PROVIDER_SOURCE := spotinst/spotinst export TERRAFORM_PROVIDER_REPO := https://github.com/spotinst/terraform-provider-spotinst -export TERRAFORM_PROVIDER_VERSION := 1.199.2 +export TERRAFORM_PROVIDER_VERSION := 1.211.0 export TERRAFORM_PROVIDER_DOWNLOAD_NAME := terraform-provider-spotinst export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX := $(TERRAFORM_PROVIDER_REPO)/releases/download/v$(TERRAFORM_PROVIDER_VERSION) export TERRAFORM_NATIVE_PROVIDER_BINARY := $(TERRAFORM_PROVIDER_DOWNLOAD_NAME)_v$(TERRAFORM_PROVIDER_VERSION) diff --git a/README.md b/README.md index 1326968..2f3ab71 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Spot API. Install the provider by using the following command after changing the image tag to the [latest release](https://marketplace.upbound.io/providers/spot-by-netapp/crossplane-provider-spot/): ``` -up ctp provider install xpkg.upbound.io/spot-by-netapp/crossplane-provider-spot:v0.6.0 +up ctp provider install xpkg.upbound.io/spot-by-netapp/crossplane-provider-spot:v0.7.0 ``` Alternatively, you can use declarative installation: @@ -21,7 +21,7 @@ kind: Provider metadata: name: crossplane-provider-spot spec: - package: xpkg.upbound.io/spot-by-netapp/crossplane-provider-spot:v0.6.0 + package: xpkg.upbound.io/spot-by-netapp/crossplane-provider-spot:v0.7.0 EOF ``` diff --git a/apis/oceanaks/v1alpha1/zz_generated.deepcopy.go b/apis/oceanaks/v1alpha1/zz_generated.deepcopy.go index b794584..cd55ff6 100644 --- a/apis/oceanaks/v1alpha1/zz_generated.deepcopy.go +++ b/apis/oceanaks/v1alpha1/zz_generated.deepcopy.go @@ -336,6 +336,132 @@ func (in *AutoscalerParameters) DeepCopy() *AutoscalerParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureBlobInitParameters) DeepCopyInto(out *AzureBlobInitParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureBlobInitParameters. +func (in *AzureBlobInitParameters) DeepCopy() *AzureBlobInitParameters { + if in == nil { + return nil + } + out := new(AzureBlobInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureBlobObservation) DeepCopyInto(out *AzureBlobObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureBlobObservation. +func (in *AzureBlobObservation) DeepCopy() *AzureBlobObservation { + if in == nil { + return nil + } + out := new(AzureBlobObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureBlobParameters) DeepCopyInto(out *AzureBlobParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureBlobParameters. +func (in *AzureBlobParameters) DeepCopy() *AzureBlobParameters { + if in == nil { + return nil + } + out := new(AzureBlobParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExportInitParameters) DeepCopyInto(out *ExportInitParameters) { + *out = *in + if in.AzureBlob != nil { + in, out := &in.AzureBlob, &out.AzureBlob + *out = make([]AzureBlobInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportInitParameters. +func (in *ExportInitParameters) DeepCopy() *ExportInitParameters { + if in == nil { + return nil + } + out := new(ExportInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExportObservation) DeepCopyInto(out *ExportObservation) { + *out = *in + if in.AzureBlob != nil { + in, out := &in.AzureBlob, &out.AzureBlob + *out = make([]AzureBlobObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportObservation. +func (in *ExportObservation) DeepCopy() *ExportObservation { + if in == nil { + return nil + } + out := new(ExportObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExportParameters) DeepCopyInto(out *ExportParameters) { + *out = *in + if in.AzureBlob != nil { + in, out := &in.AzureBlob, &out.AzureBlob + *out = make([]AzureBlobParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportParameters. +func (in *ExportParameters) DeepCopy() *ExportParameters { + if in == nil { + return nil + } + out := new(ExportParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *FiltersInitParameters) DeepCopyInto(out *FiltersInitParameters) { *out = *in @@ -927,6 +1053,72 @@ func (in *LinuxOsConfigParameters) DeepCopy() *LinuxOsConfigParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoggingInitParameters) DeepCopyInto(out *LoggingInitParameters) { + *out = *in + if in.Export != nil { + in, out := &in.Export, &out.Export + *out = make([]ExportInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingInitParameters. +func (in *LoggingInitParameters) DeepCopy() *LoggingInitParameters { + if in == nil { + return nil + } + out := new(LoggingInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoggingObservation) DeepCopyInto(out *LoggingObservation) { + *out = *in + if in.Export != nil { + in, out := &in.Export, &out.Export + *out = make([]ExportObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingObservation. +func (in *LoggingObservation) DeepCopy() *LoggingObservation { + if in == nil { + return nil + } + out := new(LoggingObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoggingParameters) DeepCopyInto(out *LoggingParameters) { + *out = *in + if in.Export != nil { + in, out := &in.Export, &out.Export + *out = make([]ExportParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingParameters. +func (in *LoggingParameters) DeepCopy() *LoggingParameters { + if in == nil { + return nil + } + out := new(LoggingParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OceanAks) DeepCopyInto(out *OceanAks) { *out = *in @@ -1059,6 +1251,13 @@ func (in *OceanAksInitParameters) DeepCopyInto(out *OceanAksInitParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = make([]LoggingInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.MaxCount != nil { in, out := &in.MaxCount, &out.MaxCount *out = new(float64) @@ -1163,6 +1362,13 @@ func (in *OceanAksInitParameters) DeepCopyInto(out *OceanAksInitParameters) { } } } + if in.VngTemplateScheduling != nil { + in, out := &in.VngTemplateScheduling, &out.VngTemplateScheduling + *out = make([]VngTemplateSchedulingInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OceanAksInitParameters. @@ -1317,6 +1523,13 @@ func (in *OceanAksObservation) DeepCopyInto(out *OceanAksObservation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = make([]LoggingObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.MaxCount != nil { in, out := &in.MaxCount, &out.MaxCount *out = new(float64) @@ -1421,6 +1634,13 @@ func (in *OceanAksObservation) DeepCopyInto(out *OceanAksObservation) { } } } + if in.VngTemplateScheduling != nil { + in, out := &in.VngTemplateScheduling, &out.VngTemplateScheduling + *out = make([]VngTemplateSchedulingObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OceanAksObservation. @@ -1538,6 +1758,13 @@ func (in *OceanAksParameters) DeepCopyInto(out *OceanAksParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = make([]LoggingParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.MaxCount != nil { in, out := &in.MaxCount, &out.MaxCount *out = new(float64) @@ -1642,6 +1869,13 @@ func (in *OceanAksParameters) DeepCopyInto(out *OceanAksParameters) { } } } + if in.VngTemplateScheduling != nil { + in, out := &in.VngTemplateScheduling, &out.VngTemplateScheduling + *out = make([]VngTemplateSchedulingParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OceanAksParameters. @@ -1852,6 +2086,13 @@ func (in *ParametersInitParameters) DeepCopyInto(out *ParametersInitParameters) (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.ParametersUpgradeConfig != nil { + in, out := &in.ParametersUpgradeConfig, &out.ParametersUpgradeConfig + *out = make([]ParametersUpgradeConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersInitParameters. @@ -1874,6 +2115,13 @@ func (in *ParametersObservation) DeepCopyInto(out *ParametersObservation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.ParametersUpgradeConfig != nil { + in, out := &in.ParametersUpgradeConfig, &out.ParametersUpgradeConfig + *out = make([]ParametersUpgradeConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersObservation. @@ -1896,6 +2144,13 @@ func (in *ParametersParameters) DeepCopyInto(out *ParametersParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.ParametersUpgradeConfig != nil { + in, out := &in.ParametersUpgradeConfig, &out.ParametersUpgradeConfig + *out = make([]ParametersUpgradeConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersParameters. @@ -1908,6 +2163,102 @@ func (in *ParametersParameters) DeepCopy() *ParametersParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametersUpgradeConfigInitParameters) DeepCopyInto(out *ParametersUpgradeConfigInitParameters) { + *out = *in + if in.ApplyRoll != nil { + in, out := &in.ApplyRoll, &out.ApplyRoll + *out = new(bool) + **out = **in + } + if in.RollParameters != nil { + in, out := &in.RollParameters, &out.RollParameters + *out = make([]RollParametersInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ScopeVersion != nil { + in, out := &in.ScopeVersion, &out.ScopeVersion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersUpgradeConfigInitParameters. +func (in *ParametersUpgradeConfigInitParameters) DeepCopy() *ParametersUpgradeConfigInitParameters { + if in == nil { + return nil + } + out := new(ParametersUpgradeConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametersUpgradeConfigObservation) DeepCopyInto(out *ParametersUpgradeConfigObservation) { + *out = *in + if in.ApplyRoll != nil { + in, out := &in.ApplyRoll, &out.ApplyRoll + *out = new(bool) + **out = **in + } + if in.RollParameters != nil { + in, out := &in.RollParameters, &out.RollParameters + *out = make([]RollParametersObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ScopeVersion != nil { + in, out := &in.ScopeVersion, &out.ScopeVersion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersUpgradeConfigObservation. +func (in *ParametersUpgradeConfigObservation) DeepCopy() *ParametersUpgradeConfigObservation { + if in == nil { + return nil + } + out := new(ParametersUpgradeConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametersUpgradeConfigParameters) DeepCopyInto(out *ParametersUpgradeConfigParameters) { + *out = *in + if in.ApplyRoll != nil { + in, out := &in.ApplyRoll, &out.ApplyRoll + *out = new(bool) + **out = **in + } + if in.RollParameters != nil { + in, out := &in.RollParameters, &out.RollParameters + *out = make([]RollParametersParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ScopeVersion != nil { + in, out := &in.ScopeVersion, &out.ScopeVersion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersUpgradeConfigParameters. +func (in *ParametersUpgradeConfigParameters) DeepCopy() *ParametersUpgradeConfigParameters { + if in == nil { + return nil + } + out := new(ParametersUpgradeConfigParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ResourceLimitsInitParameters) DeepCopyInto(out *ResourceLimitsInitParameters) { *out = *in @@ -2203,23 +2554,150 @@ func (in *RollConfigParameters) DeepCopy() *RollConfigParameters { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SchedulingInitParameters) DeepCopyInto(out *SchedulingInitParameters) { +func (in *RollParametersInitParameters) DeepCopyInto(out *RollParametersInitParameters) { *out = *in - if in.ShutdownHours != nil { - in, out := &in.ShutdownHours, &out.ShutdownHours - *out = make([]ShutdownHoursInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Tasks != nil { - in, out := &in.Tasks, &out.Tasks - *out = make([]TasksInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.BatchMinHealthyPercentage != nil { + in, out := &in.BatchMinHealthyPercentage, &out.BatchMinHealthyPercentage + *out = new(float64) + **out = **in } -} + if in.BatchSizePercentage != nil { + in, out := &in.BatchSizePercentage, &out.BatchSizePercentage + *out = new(float64) + **out = **in + } + if in.Comment != nil { + in, out := &in.Comment, &out.Comment + *out = new(string) + **out = **in + } + if in.RespectPdb != nil { + in, out := &in.RespectPdb, &out.RespectPdb + *out = new(bool) + **out = **in + } + if in.RespectRestrictScaleDown != nil { + in, out := &in.RespectRestrictScaleDown, &out.RespectRestrictScaleDown + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollParametersInitParameters. +func (in *RollParametersInitParameters) DeepCopy() *RollParametersInitParameters { + if in == nil { + return nil + } + out := new(RollParametersInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RollParametersObservation) DeepCopyInto(out *RollParametersObservation) { + *out = *in + if in.BatchMinHealthyPercentage != nil { + in, out := &in.BatchMinHealthyPercentage, &out.BatchMinHealthyPercentage + *out = new(float64) + **out = **in + } + if in.BatchSizePercentage != nil { + in, out := &in.BatchSizePercentage, &out.BatchSizePercentage + *out = new(float64) + **out = **in + } + if in.Comment != nil { + in, out := &in.Comment, &out.Comment + *out = new(string) + **out = **in + } + if in.RespectPdb != nil { + in, out := &in.RespectPdb, &out.RespectPdb + *out = new(bool) + **out = **in + } + if in.RespectRestrictScaleDown != nil { + in, out := &in.RespectRestrictScaleDown, &out.RespectRestrictScaleDown + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollParametersObservation. +func (in *RollParametersObservation) DeepCopy() *RollParametersObservation { + if in == nil { + return nil + } + out := new(RollParametersObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RollParametersParameters) DeepCopyInto(out *RollParametersParameters) { + *out = *in + if in.BatchMinHealthyPercentage != nil { + in, out := &in.BatchMinHealthyPercentage, &out.BatchMinHealthyPercentage + *out = new(float64) + **out = **in + } + if in.BatchSizePercentage != nil { + in, out := &in.BatchSizePercentage, &out.BatchSizePercentage + *out = new(float64) + **out = **in + } + if in.Comment != nil { + in, out := &in.Comment, &out.Comment + *out = new(string) + **out = **in + } + if in.RespectPdb != nil { + in, out := &in.RespectPdb, &out.RespectPdb + *out = new(bool) + **out = **in + } + if in.RespectRestrictScaleDown != nil { + in, out := &in.RespectRestrictScaleDown, &out.RespectRestrictScaleDown + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollParametersParameters. +func (in *RollParametersParameters) DeepCopy() *RollParametersParameters { + if in == nil { + return nil + } + out := new(RollParametersParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SchedulingInitParameters) DeepCopyInto(out *SchedulingInitParameters) { + *out = *in + if in.ShutdownHours != nil { + in, out := &in.ShutdownHours, &out.ShutdownHours + *out = make([]ShutdownHoursInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SuspensionHours != nil { + in, out := &in.SuspensionHours, &out.SuspensionHours + *out = make([]SuspensionHoursInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Tasks != nil { + in, out := &in.Tasks, &out.Tasks + *out = make([]TasksInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingInitParameters. func (in *SchedulingInitParameters) DeepCopy() *SchedulingInitParameters { @@ -2241,6 +2719,13 @@ func (in *SchedulingObservation) DeepCopyInto(out *SchedulingObservation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.SuspensionHours != nil { + in, out := &in.SuspensionHours, &out.SuspensionHours + *out = make([]SuspensionHoursObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Tasks != nil { in, out := &in.Tasks, &out.Tasks *out = make([]TasksObservation, len(*in)) @@ -2270,6 +2755,13 @@ func (in *SchedulingParameters) DeepCopyInto(out *SchedulingParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.SuspensionHours != nil { + in, out := &in.SuspensionHours, &out.SuspensionHours + *out = make([]SuspensionHoursParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Tasks != nil { in, out := &in.Tasks, &out.Tasks *out = make([]TasksParameters, len(*in)) @@ -2382,6 +2874,99 @@ func (in *ShutdownHoursParameters) DeepCopy() *ShutdownHoursParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SuspensionHoursInitParameters) DeepCopyInto(out *SuspensionHoursInitParameters) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.TimeWindows != nil { + in, out := &in.TimeWindows, &out.TimeWindows + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuspensionHoursInitParameters. +func (in *SuspensionHoursInitParameters) DeepCopy() *SuspensionHoursInitParameters { + if in == nil { + return nil + } + out := new(SuspensionHoursInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SuspensionHoursObservation) DeepCopyInto(out *SuspensionHoursObservation) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.TimeWindows != nil { + in, out := &in.TimeWindows, &out.TimeWindows + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuspensionHoursObservation. +func (in *SuspensionHoursObservation) DeepCopy() *SuspensionHoursObservation { + if in == nil { + return nil + } + out := new(SuspensionHoursObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SuspensionHoursParameters) DeepCopyInto(out *SuspensionHoursParameters) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.TimeWindows != nil { + in, out := &in.TimeWindows, &out.TimeWindows + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuspensionHoursParameters. +func (in *SuspensionHoursParameters) DeepCopy() *SuspensionHoursParameters { + if in == nil { + return nil + } + out := new(SuspensionHoursParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *SysctlsInitParameters) DeepCopyInto(out *SysctlsInitParameters) { *out = *in @@ -2738,3 +3323,162 @@ func (in *UpdatePolicyParameters) DeepCopy() *UpdatePolicyParameters { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VngTemplateSchedulingInitParameters) DeepCopyInto(out *VngTemplateSchedulingInitParameters) { + *out = *in + if in.VngTemplateShutdownHours != nil { + in, out := &in.VngTemplateShutdownHours, &out.VngTemplateShutdownHours + *out = make([]VngTemplateShutdownHoursInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VngTemplateSchedulingInitParameters. +func (in *VngTemplateSchedulingInitParameters) DeepCopy() *VngTemplateSchedulingInitParameters { + if in == nil { + return nil + } + out := new(VngTemplateSchedulingInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VngTemplateSchedulingObservation) DeepCopyInto(out *VngTemplateSchedulingObservation) { + *out = *in + if in.VngTemplateShutdownHours != nil { + in, out := &in.VngTemplateShutdownHours, &out.VngTemplateShutdownHours + *out = make([]VngTemplateShutdownHoursObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VngTemplateSchedulingObservation. +func (in *VngTemplateSchedulingObservation) DeepCopy() *VngTemplateSchedulingObservation { + if in == nil { + return nil + } + out := new(VngTemplateSchedulingObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VngTemplateSchedulingParameters) DeepCopyInto(out *VngTemplateSchedulingParameters) { + *out = *in + if in.VngTemplateShutdownHours != nil { + in, out := &in.VngTemplateShutdownHours, &out.VngTemplateShutdownHours + *out = make([]VngTemplateShutdownHoursParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VngTemplateSchedulingParameters. +func (in *VngTemplateSchedulingParameters) DeepCopy() *VngTemplateSchedulingParameters { + if in == nil { + return nil + } + out := new(VngTemplateSchedulingParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VngTemplateShutdownHoursInitParameters) DeepCopyInto(out *VngTemplateShutdownHoursInitParameters) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.TimeWindows != nil { + in, out := &in.TimeWindows, &out.TimeWindows + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VngTemplateShutdownHoursInitParameters. +func (in *VngTemplateShutdownHoursInitParameters) DeepCopy() *VngTemplateShutdownHoursInitParameters { + if in == nil { + return nil + } + out := new(VngTemplateShutdownHoursInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VngTemplateShutdownHoursObservation) DeepCopyInto(out *VngTemplateShutdownHoursObservation) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.TimeWindows != nil { + in, out := &in.TimeWindows, &out.TimeWindows + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VngTemplateShutdownHoursObservation. +func (in *VngTemplateShutdownHoursObservation) DeepCopy() *VngTemplateShutdownHoursObservation { + if in == nil { + return nil + } + out := new(VngTemplateShutdownHoursObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VngTemplateShutdownHoursParameters) DeepCopyInto(out *VngTemplateShutdownHoursParameters) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.TimeWindows != nil { + in, out := &in.TimeWindows, &out.TimeWindows + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VngTemplateShutdownHoursParameters. +func (in *VngTemplateShutdownHoursParameters) DeepCopy() *VngTemplateShutdownHoursParameters { + if in == nil { + return nil + } + out := new(VngTemplateShutdownHoursParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/oceanaks/v1alpha1/zz_oceanaks_types.go b/apis/oceanaks/v1alpha1/zz_oceanaks_types.go index d016326..1f929ef 100755 --- a/apis/oceanaks/v1alpha1/zz_oceanaks_types.go +++ b/apis/oceanaks/v1alpha1/zz_oceanaks_types.go @@ -129,6 +129,44 @@ type AutoscalerParameters struct { ResourceLimits []ResourceLimitsParameters `json:"resourceLimits,omitempty" tf:"resource_limits,omitempty"` } +type AzureBlobInitParameters struct { + + // The identifier of The Azure Blob data integration to export the logs to. + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type AzureBlobObservation struct { + + // The identifier of The Azure Blob data integration to export the logs to. + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type AzureBlobParameters struct { + + // The identifier of The Azure Blob data integration to export the logs to. + // +kubebuilder:validation:Optional + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type ExportInitParameters struct { + + // Exports your cluster's logs to the storage account and container configured on the storage account data integration given. Each file contains logs of 3 minutes where each log is separated by a new line and saved as a JSON. The file formats are container/accountId“oceanId“oceanName_startTime.log + AzureBlob []AzureBlobInitParameters `json:"azureBlob,omitempty" tf:"azure_blob,omitempty"` +} + +type ExportObservation struct { + + // Exports your cluster's logs to the storage account and container configured on the storage account data integration given. Each file contains logs of 3 minutes where each log is separated by a new line and saved as a JSON. The file formats are container/accountId“oceanId“oceanName_startTime.log + AzureBlob []AzureBlobObservation `json:"azureBlob,omitempty" tf:"azure_blob,omitempty"` +} + +type ExportParameters struct { + + // Exports your cluster's logs to the storage account and container configured on the storage account data integration given. Each file contains logs of 3 minutes where each log is separated by a new line and saved as a JSON. The file formats are container/accountId“oceanId“oceanName_startTime.log + // +kubebuilder:validation:Optional + AzureBlob []AzureBlobParameters `json:"azureBlob,omitempty" tf:"azure_blob,omitempty"` +} + type FiltersInitParameters struct { // In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. @@ -390,6 +428,25 @@ type LinuxOsConfigParameters struct { Sysctls []SysctlsParameters `json:"sysctls,omitempty" tf:"sysctls,omitempty"` } +type LoggingInitParameters struct { + + // The Ocean AKS Logging Export object. + Export []ExportInitParameters `json:"export,omitempty" tf:"export,omitempty"` +} + +type LoggingObservation struct { + + // The Ocean AKS Logging Export object. + Export []ExportObservation `json:"export,omitempty" tf:"export,omitempty"` +} + +type LoggingParameters struct { + + // The Ocean AKS Logging Export object. + // +kubebuilder:validation:Optional + Export []ExportParameters `json:"export,omitempty" tf:"export,omitempty"` +} + type OceanAksInitParameters struct { // The name of the AKS Cluster. @@ -438,6 +495,9 @@ type OceanAksInitParameters struct { // Custom Linux OS configuration. LinuxOsConfig []LinuxOsConfigInitParameters `json:"linuxOsConfig,omitempty" tf:"linux_os_config,omitempty"` + // The Ocean AKS Logging Object. + Logging []LoggingInitParameters `json:"logging,omitempty" tf:"logging,omitempty"` + // Maximum node count limit. MaxCount *float64 `json:"maxCount,omitempty" tf:"max_count,omitempty"` @@ -481,6 +541,9 @@ type OceanAksInitParameters struct { // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). VnetSubnetIds []*string `json:"vnetSubnetIds,omitempty" tf:"vnet_subnet_ids,omitempty"` + + // An object used to specify times when the virtual node group will turn off all its node pools. Once the shutdown time will be over, the virtual node group will return to its previous state. + VngTemplateScheduling []VngTemplateSchedulingInitParameters `json:"vngTemplateScheduling,omitempty" tf:"vng_template_scheduling,omitempty"` } type OceanAksObservation struct { @@ -521,6 +584,7 @@ type OceanAksObservation struct { // The Ocean AKS Health object. Health []HealthObservation `json:"health,omitempty" tf:"health,omitempty"` + // The identifier of The Azure Blob data integration to export the logs to. ID *string `json:"id,omitempty" tf:"id,omitempty"` // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. @@ -533,6 +597,9 @@ type OceanAksObservation struct { // Custom Linux OS configuration. LinuxOsConfig []LinuxOsConfigObservation `json:"linuxOsConfig,omitempty" tf:"linux_os_config,omitempty"` + // The Ocean AKS Logging Object. + Logging []LoggingObservation `json:"logging,omitempty" tf:"logging,omitempty"` + // Maximum node count limit. MaxCount *float64 `json:"maxCount,omitempty" tf:"max_count,omitempty"` @@ -576,6 +643,9 @@ type OceanAksObservation struct { // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). VnetSubnetIds []*string `json:"vnetSubnetIds,omitempty" tf:"vnet_subnet_ids,omitempty"` + + // An object used to specify times when the virtual node group will turn off all its node pools. Once the shutdown time will be over, the virtual node group will return to its previous state. + VngTemplateScheduling []VngTemplateSchedulingObservation `json:"vngTemplateScheduling,omitempty" tf:"vng_template_scheduling,omitempty"` } type OceanAksParameters struct { @@ -641,6 +711,10 @@ type OceanAksParameters struct { // +kubebuilder:validation:Optional LinuxOsConfig []LinuxOsConfigParameters `json:"linuxOsConfig,omitempty" tf:"linux_os_config,omitempty"` + // The Ocean AKS Logging Object. + // +kubebuilder:validation:Optional + Logging []LoggingParameters `json:"logging,omitempty" tf:"logging,omitempty"` + // Maximum node count limit. // +kubebuilder:validation:Optional MaxCount *float64 `json:"maxCount,omitempty" tf:"max_count,omitempty"` @@ -699,6 +773,10 @@ type OceanAksParameters struct { // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). // +kubebuilder:validation:Optional VnetSubnetIds []*string `json:"vnetSubnetIds,omitempty" tf:"vnet_subnet_ids,omitempty"` + + // An object used to specify times when the virtual node group will turn off all its node pools. Once the shutdown time will be over, the virtual node group will return to its previous state. + // +kubebuilder:validation:Optional + VngTemplateScheduling []VngTemplateSchedulingParameters `json:"vngTemplateScheduling,omitempty" tf:"vng_template_scheduling,omitempty"` } type ParametersClusterRollInitParameters struct { @@ -774,12 +852,18 @@ type ParametersInitParameters struct { // The parameters of the cluster roll scheduling task. ParametersClusterRoll []ParametersClusterRollInitParameters `json:"parametersClusterRoll,omitempty" tf:"parameters_cluster_roll,omitempty"` + + // The parameters of the upgrade config scheduling task. + ParametersUpgradeConfig []ParametersUpgradeConfigInitParameters `json:"parametersUpgradeConfig,omitempty" tf:"parameters_upgrade_config,omitempty"` } type ParametersObservation struct { // The parameters of the cluster roll scheduling task. ParametersClusterRoll []ParametersClusterRollObservation `json:"parametersClusterRoll,omitempty" tf:"parameters_cluster_roll,omitempty"` + + // The parameters of the upgrade config scheduling task. + ParametersUpgradeConfig []ParametersUpgradeConfigObservation `json:"parametersUpgradeConfig,omitempty" tf:"parameters_upgrade_config,omitempty"` } type ParametersParameters struct { @@ -787,6 +871,46 @@ type ParametersParameters struct { // The parameters of the cluster roll scheduling task. // +kubebuilder:validation:Optional ParametersClusterRoll []ParametersClusterRollParameters `json:"parametersClusterRoll,omitempty" tf:"parameters_cluster_roll,omitempty"` + + // The parameters of the upgrade config scheduling task. + // +kubebuilder:validation:Optional + ParametersUpgradeConfig []ParametersUpgradeConfigParameters `json:"parametersUpgradeConfig,omitempty" tf:"parameters_upgrade_config,omitempty"` +} + +type ParametersUpgradeConfigInitParameters struct { + + // - When set to True, a cluster roll will be initiated if a new version is available to upgrade in the dedicated virtual node groups. + ApplyRoll *bool `json:"applyRoll,omitempty" tf:"apply_roll,omitempty"` + + // - The parameters of the cluster roll that will be initiated. + RollParameters []RollParametersInitParameters `json:"rollParameters,omitempty" tf:"roll_parameters,omitempty"` + + ScopeVersion *string `json:"scopeVersion,omitempty" tf:"scope_version,omitempty"` +} + +type ParametersUpgradeConfigObservation struct { + + // - When set to True, a cluster roll will be initiated if a new version is available to upgrade in the dedicated virtual node groups. + ApplyRoll *bool `json:"applyRoll,omitempty" tf:"apply_roll,omitempty"` + + // - The parameters of the cluster roll that will be initiated. + RollParameters []RollParametersObservation `json:"rollParameters,omitempty" tf:"roll_parameters,omitempty"` + + ScopeVersion *string `json:"scopeVersion,omitempty" tf:"scope_version,omitempty"` +} + +type ParametersUpgradeConfigParameters struct { + + // - When set to True, a cluster roll will be initiated if a new version is available to upgrade in the dedicated virtual node groups. + // +kubebuilder:validation:Optional + ApplyRoll *bool `json:"applyRoll,omitempty" tf:"apply_roll,omitempty"` + + // - The parameters of the cluster roll that will be initiated. + // +kubebuilder:validation:Optional + RollParameters []RollParametersParameters `json:"rollParameters,omitempty" tf:"roll_parameters,omitempty"` + + // +kubebuilder:validation:Optional + ScopeVersion *string `json:"scopeVersion,omitempty" tf:"scope_version,omitempty"` } type ResourceLimitsInitParameters struct { @@ -907,30 +1031,99 @@ type RollConfigParameters struct { VngIds []*string `json:"vngIds,omitempty" tf:"vng_ids,omitempty"` } +type RollParametersInitParameters struct { + + // Indicates the threshold of minimum healthy nodes in single batch. If the amount of healthy nodes in single batch is under the threshold, the roll will fail. If exists, the parameter value will be in range of 1-100. In case of null as value, the default value in the backend will be 50%. Value of param should represent the number in percentage (%) of the batch. + BatchMinHealthyPercentage *float64 `json:"batchMinHealthyPercentage,omitempty" tf:"batch_min_healthy_percentage,omitempty"` + + // Value as a percent to set the size of a batch in a roll. Valid values are 0-100. In case of null as value, the default value in the backend will be 20%. + BatchSizePercentage *float64 `json:"batchSizePercentage,omitempty" tf:"batch_size_percentage,omitempty"` + + // Add a comment description for the roll. The comment is limited to 256 chars and optional. + Comment *string `json:"comment,omitempty" tf:"comment,omitempty"` + + // During the roll, if the parameter is set to true we honor PDB during the nodes replacement. + RespectPdb *bool `json:"respectPdb,omitempty" tf:"respect_pdb,omitempty"` + + // During the roll, if the parameter is set to true we honor Restrict Scale Down label during the nodes replacement. + RespectRestrictScaleDown *bool `json:"respectRestrictScaleDown,omitempty" tf:"respect_restrict_scale_down,omitempty"` +} + +type RollParametersObservation struct { + + // Indicates the threshold of minimum healthy nodes in single batch. If the amount of healthy nodes in single batch is under the threshold, the roll will fail. If exists, the parameter value will be in range of 1-100. In case of null as value, the default value in the backend will be 50%. Value of param should represent the number in percentage (%) of the batch. + BatchMinHealthyPercentage *float64 `json:"batchMinHealthyPercentage,omitempty" tf:"batch_min_healthy_percentage,omitempty"` + + // Value as a percent to set the size of a batch in a roll. Valid values are 0-100. In case of null as value, the default value in the backend will be 20%. + BatchSizePercentage *float64 `json:"batchSizePercentage,omitempty" tf:"batch_size_percentage,omitempty"` + + // Add a comment description for the roll. The comment is limited to 256 chars and optional. + Comment *string `json:"comment,omitempty" tf:"comment,omitempty"` + + // During the roll, if the parameter is set to true we honor PDB during the nodes replacement. + RespectPdb *bool `json:"respectPdb,omitempty" tf:"respect_pdb,omitempty"` + + // During the roll, if the parameter is set to true we honor Restrict Scale Down label during the nodes replacement. + RespectRestrictScaleDown *bool `json:"respectRestrictScaleDown,omitempty" tf:"respect_restrict_scale_down,omitempty"` +} + +type RollParametersParameters struct { + + // Indicates the threshold of minimum healthy nodes in single batch. If the amount of healthy nodes in single batch is under the threshold, the roll will fail. If exists, the parameter value will be in range of 1-100. In case of null as value, the default value in the backend will be 50%. Value of param should represent the number in percentage (%) of the batch. + // +kubebuilder:validation:Optional + BatchMinHealthyPercentage *float64 `json:"batchMinHealthyPercentage,omitempty" tf:"batch_min_healthy_percentage,omitempty"` + + // Value as a percent to set the size of a batch in a roll. Valid values are 0-100. In case of null as value, the default value in the backend will be 20%. + // +kubebuilder:validation:Optional + BatchSizePercentage *float64 `json:"batchSizePercentage,omitempty" tf:"batch_size_percentage,omitempty"` + + // Add a comment description for the roll. The comment is limited to 256 chars and optional. + // +kubebuilder:validation:Optional + Comment *string `json:"comment,omitempty" tf:"comment,omitempty"` + + // During the roll, if the parameter is set to true we honor PDB during the nodes replacement. + // +kubebuilder:validation:Optional + RespectPdb *bool `json:"respectPdb,omitempty" tf:"respect_pdb,omitempty"` + + // During the roll, if the parameter is set to true we honor Restrict Scale Down label during the nodes replacement. + // +kubebuilder:validation:Optional + RespectRestrictScaleDown *bool `json:"respectRestrictScaleDown,omitempty" tf:"respect_restrict_scale_down,omitempty"` +} + type SchedulingInitParameters struct { - // An object used to specify times that the nodes in the cluster will be taken down. + // An object used to specify times that the nodes in the virtual node group will be stopped. ShutdownHours []ShutdownHoursInitParameters `json:"shutdownHours,omitempty" tf:"shutdown_hours,omitempty"` + // An object used to specify times that the cluster should be exempted from Ocean's scaling-down activities to ensure uninterrupted operations during critical periods. + SuspensionHours []SuspensionHoursInitParameters `json:"suspensionHours,omitempty" tf:"suspension_hours,omitempty"` + // A list of scheduling tasks to preform on the cluster at a specific cron time. Tasks []TasksInitParameters `json:"tasks,omitempty" tf:"tasks,omitempty"` } type SchedulingObservation struct { - // An object used to specify times that the nodes in the cluster will be taken down. + // An object used to specify times that the nodes in the virtual node group will be stopped. ShutdownHours []ShutdownHoursObservation `json:"shutdownHours,omitempty" tf:"shutdown_hours,omitempty"` + // An object used to specify times that the cluster should be exempted from Ocean's scaling-down activities to ensure uninterrupted operations during critical periods. + SuspensionHours []SuspensionHoursObservation `json:"suspensionHours,omitempty" tf:"suspension_hours,omitempty"` + // A list of scheduling tasks to preform on the cluster at a specific cron time. Tasks []TasksObservation `json:"tasks,omitempty" tf:"tasks,omitempty"` } type SchedulingParameters struct { - // An object used to specify times that the nodes in the cluster will be taken down. + // An object used to specify times that the nodes in the virtual node group will be stopped. // +kubebuilder:validation:Optional ShutdownHours []ShutdownHoursParameters `json:"shutdownHours,omitempty" tf:"shutdown_hours,omitempty"` + // An object used to specify times that the cluster should be exempted from Ocean's scaling-down activities to ensure uninterrupted operations during critical periods. + // +kubebuilder:validation:Optional + SuspensionHours []SuspensionHoursParameters `json:"suspensionHours,omitempty" tf:"suspension_hours,omitempty"` + // A list of scheduling tasks to preform on the cluster at a specific cron time. // +kubebuilder:validation:Optional Tasks []TasksParameters `json:"tasks,omitempty" tf:"tasks,omitempty"` @@ -941,7 +1134,7 @@ type ShutdownHoursInitParameters struct { // Enable automatic headroom. When set to true, Ocean configures and optimizes headroom automatically. IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` - // The times that the shutdown hours will apply. Required if isEnabled is true. + // The times that the shutdown hours will apply. Required if is_enabled is true. TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` } @@ -950,7 +1143,7 @@ type ShutdownHoursObservation struct { // Enable automatic headroom. When set to true, Ocean configures and optimizes headroom automatically. IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` - // The times that the shutdown hours will apply. Required if isEnabled is true. + // The times that the shutdown hours will apply. Required if is_enabled is true. TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` } @@ -960,7 +1153,36 @@ type ShutdownHoursParameters struct { // +kubebuilder:validation:Optional IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` - // The times that the shutdown hours will apply. Required if isEnabled is true. + // The times that the shutdown hours will apply. Required if is_enabled is true. + // +kubebuilder:validation:Optional + TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` +} + +type SuspensionHoursInitParameters struct { + + // Enable automatic headroom. When set to true, Ocean configures and optimizes headroom automatically. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // The times that the shutdown hours will apply. Required if is_enabled is true. + TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` +} + +type SuspensionHoursObservation struct { + + // Enable automatic headroom. When set to true, Ocean configures and optimizes headroom automatically. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // The times that the shutdown hours will apply. Required if is_enabled is true. + TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` +} + +type SuspensionHoursParameters struct { + + // Enable automatic headroom. When set to true, Ocean configures and optimizes headroom automatically. + // +kubebuilder:validation:Optional + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // The times that the shutdown hours will apply. Required if is_enabled is true. // +kubebuilder:validation:Optional TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` } @@ -1034,7 +1256,7 @@ type TasksInitParameters struct { // The parameters of the scheduling task. Each task type will have properties relevant only to it. Parameters []ParametersInitParameters `json:"parameters,omitempty" tf:"parameters,omitempty"` - // Valid values: clusterRoll The type of the scheduling task. + // The type of the scheduling task. Valid values: "clusterRoll,autoUpgradeVersion". TaskType *string `json:"taskType,omitempty" tf:"task_type,omitempty"` } @@ -1049,7 +1271,7 @@ type TasksObservation struct { // The parameters of the scheduling task. Each task type will have properties relevant only to it. Parameters []ParametersObservation `json:"parameters,omitempty" tf:"parameters,omitempty"` - // Valid values: clusterRoll The type of the scheduling task. + // The type of the scheduling task. Valid values: "clusterRoll,autoUpgradeVersion". TaskType *string `json:"taskType,omitempty" tf:"task_type,omitempty"` } @@ -1067,7 +1289,7 @@ type TasksParameters struct { // +kubebuilder:validation:Optional Parameters []ParametersParameters `json:"parameters,omitempty" tf:"parameters,omitempty"` - // Valid values: clusterRoll The type of the scheduling task. + // The type of the scheduling task. Valid values: "clusterRoll,autoUpgradeVersion". // +kubebuilder:validation:Optional TaskType *string `json:"taskType" tf:"task_type,omitempty"` } @@ -1111,6 +1333,54 @@ type UpdatePolicyParameters struct { ShouldRoll *bool `json:"shouldRoll" tf:"should_roll,omitempty"` } +type VngTemplateSchedulingInitParameters struct { + + // An object used to specify times that the nodes in the virtual node group will be stopped. + VngTemplateShutdownHours []VngTemplateShutdownHoursInitParameters `json:"vngTemplateShutdownHours,omitempty" tf:"vng_template_shutdown_hours,omitempty"` +} + +type VngTemplateSchedulingObservation struct { + + // An object used to specify times that the nodes in the virtual node group will be stopped. + VngTemplateShutdownHours []VngTemplateShutdownHoursObservation `json:"vngTemplateShutdownHours,omitempty" tf:"vng_template_shutdown_hours,omitempty"` +} + +type VngTemplateSchedulingParameters struct { + + // An object used to specify times that the nodes in the virtual node group will be stopped. + // +kubebuilder:validation:Optional + VngTemplateShutdownHours []VngTemplateShutdownHoursParameters `json:"vngTemplateShutdownHours,omitempty" tf:"vng_template_shutdown_hours,omitempty"` +} + +type VngTemplateShutdownHoursInitParameters struct { + + // Enable automatic headroom. When set to true, Ocean configures and optimizes headroom automatically. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // The times that the shutdown hours will apply. Required if is_enabled is true. + TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` +} + +type VngTemplateShutdownHoursObservation struct { + + // Enable automatic headroom. When set to true, Ocean configures and optimizes headroom automatically. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // The times that the shutdown hours will apply. Required if is_enabled is true. + TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` +} + +type VngTemplateShutdownHoursParameters struct { + + // Enable automatic headroom. When set to true, Ocean configures and optimizes headroom automatically. + // +kubebuilder:validation:Optional + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // The times that the shutdown hours will apply. Required if is_enabled is true. + // +kubebuilder:validation:Optional + TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` +} + // OceanAksSpec defines the desired state of OceanAks type OceanAksSpec struct { v1.ResourceSpec `json:",inline"` diff --git a/apis/oceanaksvng/v1alpha1/zz_generated.deepcopy.go b/apis/oceanaksvng/v1alpha1/zz_generated.deepcopy.go index 62bd3e8..2e3673e 100644 --- a/apis/oceanaksvng/v1alpha1/zz_generated.deepcopy.go +++ b/apis/oceanaksvng/v1alpha1/zz_generated.deepcopy.go @@ -692,6 +692,13 @@ func (in *OceanAksVngInitParameters) DeepCopyInto(out *OceanAksVngInitParameters } } } + if in.Scheduling != nil { + in, out := &in.Scheduling, &out.Scheduling + *out = make([]SchedulingInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.SpotPercentage != nil { in, out := &in.SpotPercentage, &out.SpotPercentage *out = new(float64) @@ -909,6 +916,13 @@ func (in *OceanAksVngObservation) DeepCopyInto(out *OceanAksVngObservation) { } } } + if in.Scheduling != nil { + in, out := &in.Scheduling, &out.Scheduling + *out = make([]SchedulingObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.SpotPercentage != nil { in, out := &in.SpotPercentage, &out.SpotPercentage *out = new(float64) @@ -1089,6 +1103,13 @@ func (in *OceanAksVngParameters) DeepCopyInto(out *OceanAksVngParameters) { } } } + if in.Scheduling != nil { + in, out := &in.Scheduling, &out.Scheduling + *out = make([]SchedulingParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.SpotPercentage != nil { in, out := &in.SpotPercentage, &out.SpotPercentage *out = new(float64) @@ -1401,6 +1422,165 @@ func (in *RollConfigParameters) DeepCopy() *RollConfigParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SchedulingInitParameters) DeepCopyInto(out *SchedulingInitParameters) { + *out = *in + if in.ShutdownHours != nil { + in, out := &in.ShutdownHours, &out.ShutdownHours + *out = make([]ShutdownHoursInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingInitParameters. +func (in *SchedulingInitParameters) DeepCopy() *SchedulingInitParameters { + if in == nil { + return nil + } + out := new(SchedulingInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SchedulingObservation) DeepCopyInto(out *SchedulingObservation) { + *out = *in + if in.ShutdownHours != nil { + in, out := &in.ShutdownHours, &out.ShutdownHours + *out = make([]ShutdownHoursObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingObservation. +func (in *SchedulingObservation) DeepCopy() *SchedulingObservation { + if in == nil { + return nil + } + out := new(SchedulingObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SchedulingParameters) DeepCopyInto(out *SchedulingParameters) { + *out = *in + if in.ShutdownHours != nil { + in, out := &in.ShutdownHours, &out.ShutdownHours + *out = make([]ShutdownHoursParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingParameters. +func (in *SchedulingParameters) DeepCopy() *SchedulingParameters { + if in == nil { + return nil + } + out := new(SchedulingParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShutdownHoursInitParameters) DeepCopyInto(out *ShutdownHoursInitParameters) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.TimeWindows != nil { + in, out := &in.TimeWindows, &out.TimeWindows + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShutdownHoursInitParameters. +func (in *ShutdownHoursInitParameters) DeepCopy() *ShutdownHoursInitParameters { + if in == nil { + return nil + } + out := new(ShutdownHoursInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShutdownHoursObservation) DeepCopyInto(out *ShutdownHoursObservation) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.TimeWindows != nil { + in, out := &in.TimeWindows, &out.TimeWindows + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShutdownHoursObservation. +func (in *ShutdownHoursObservation) DeepCopy() *ShutdownHoursObservation { + if in == nil { + return nil + } + out := new(ShutdownHoursObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShutdownHoursParameters) DeepCopyInto(out *ShutdownHoursParameters) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.TimeWindows != nil { + in, out := &in.TimeWindows, &out.TimeWindows + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShutdownHoursParameters. +func (in *ShutdownHoursParameters) DeepCopy() *ShutdownHoursParameters { + if in == nil { + return nil + } + out := new(ShutdownHoursParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *SysctlsInitParameters) DeepCopyInto(out *SysctlsInitParameters) { *out = *in diff --git a/apis/oceanaksvng/v1alpha1/zz_oceanaksvng_types.go b/apis/oceanaksvng/v1alpha1/zz_oceanaksvng_types.go index 7cdf3bd..f8ff8ca 100755 --- a/apis/oceanaksvng/v1alpha1/zz_oceanaksvng_types.go +++ b/apis/oceanaksvng/v1alpha1/zz_oceanaksvng_types.go @@ -312,6 +312,9 @@ type OceanAksVngInitParameters struct { // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). PodSubnetIds []*string `json:"podSubnetIds,omitempty" tf:"pod_subnet_ids,omitempty"` + // An object used to specify times when the virtual node group will turn off all its node pools. Once the shutdown time will be over, the virtual node group will return to its previous state. + Scheduling []SchedulingInitParameters `json:"scheduling,omitempty" tf:"scheduling,omitempty"` + // Percentage of spot VMs to maintain. SpotPercentage *float64 `json:"spotPercentage,omitempty" tf:"spot_percentage,omitempty"` @@ -386,6 +389,9 @@ type OceanAksVngObservation struct { // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). PodSubnetIds []*string `json:"podSubnetIds,omitempty" tf:"pod_subnet_ids,omitempty"` + // An object used to specify times when the virtual node group will turn off all its node pools. Once the shutdown time will be over, the virtual node group will return to its previous state. + Scheduling []SchedulingObservation `json:"scheduling,omitempty" tf:"scheduling,omitempty"` + // Percentage of spot VMs to maintain. SpotPercentage *float64 `json:"spotPercentage,omitempty" tf:"spot_percentage,omitempty"` @@ -476,6 +482,10 @@ type OceanAksVngParameters struct { // +kubebuilder:validation:Optional PodSubnetIds []*string `json:"podSubnetIds,omitempty" tf:"pod_subnet_ids,omitempty"` + // An object used to specify times when the virtual node group will turn off all its node pools. Once the shutdown time will be over, the virtual node group will return to its previous state. + // +kubebuilder:validation:Optional + Scheduling []SchedulingParameters `json:"scheduling,omitempty" tf:"scheduling,omitempty"` + // Percentage of spot VMs to maintain. // +kubebuilder:validation:Optional SpotPercentage *float64 `json:"spotPercentage,omitempty" tf:"spot_percentage,omitempty"` @@ -585,6 +595,54 @@ type RollConfigParameters struct { VngIds []*string `json:"vngIds,omitempty" tf:"vng_ids,omitempty"` } +type SchedulingInitParameters struct { + + // An object used to specify times that the nodes in the virtual node group will be stopped. + ShutdownHours []ShutdownHoursInitParameters `json:"shutdownHours,omitempty" tf:"shutdown_hours,omitempty"` +} + +type SchedulingObservation struct { + + // An object used to specify times that the nodes in the virtual node group will be stopped. + ShutdownHours []ShutdownHoursObservation `json:"shutdownHours,omitempty" tf:"shutdown_hours,omitempty"` +} + +type SchedulingParameters struct { + + // An object used to specify times that the nodes in the virtual node group will be stopped. + // +kubebuilder:validation:Optional + ShutdownHours []ShutdownHoursParameters `json:"shutdownHours,omitempty" tf:"shutdown_hours,omitempty"` +} + +type ShutdownHoursInitParameters struct { + + // Flag to enable or disable the shutdown hours mechanism. When false, the mechanism is deactivated, and the virtual node gorup remains in its current state. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // The times that the shutdown hours will apply. Required if isEnabled is true. + TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` +} + +type ShutdownHoursObservation struct { + + // Flag to enable or disable the shutdown hours mechanism. When false, the mechanism is deactivated, and the virtual node gorup remains in its current state. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // The times that the shutdown hours will apply. Required if isEnabled is true. + TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` +} + +type ShutdownHoursParameters struct { + + // Flag to enable or disable the shutdown hours mechanism. When false, the mechanism is deactivated, and the virtual node gorup remains in its current state. + // +kubebuilder:validation:Optional + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // The times that the shutdown hours will apply. Required if isEnabled is true. + // +kubebuilder:validation:Optional + TimeWindows []*string `json:"timeWindows,omitempty" tf:"time_windows,omitempty"` +} + type SysctlsInitParameters struct { // Maximum number of memory map areas a process may have. Can be configured only if OS type is Linux. diff --git a/apis/oceangke/v1alpha1/zz_generated.deepcopy.go b/apis/oceangke/v1alpha1/zz_generated.deepcopy.go index f1211fc..46ee476 100644 --- a/apis/oceangke/v1alpha1/zz_generated.deepcopy.go +++ b/apis/oceangke/v1alpha1/zz_generated.deepcopy.go @@ -12,6 +12,66 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AutoUpdateInitParameters) DeepCopyInto(out *AutoUpdateInitParameters) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoUpdateInitParameters. +func (in *AutoUpdateInitParameters) DeepCopy() *AutoUpdateInitParameters { + if in == nil { + return nil + } + out := new(AutoUpdateInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AutoUpdateObservation) DeepCopyInto(out *AutoUpdateObservation) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoUpdateObservation. +func (in *AutoUpdateObservation) DeepCopy() *AutoUpdateObservation { + if in == nil { + return nil + } + out := new(AutoUpdateObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AutoUpdateParameters) DeepCopyInto(out *AutoUpdateParameters) { + *out = *in + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoUpdateParameters. +func (in *AutoUpdateParameters) DeepCopy() *AutoUpdateParameters { + if in == nil { + return nil + } + out := new(AutoUpdateParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AutoscalerInitParameters) DeepCopyInto(out *AutoscalerInitParameters) { *out = *in @@ -900,6 +960,13 @@ func (in *OceanGke) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OceanGkeInitParameters) DeepCopyInto(out *OceanGkeInitParameters) { *out = *in + if in.AutoUpdate != nil { + in, out := &in.AutoUpdate, &out.AutoUpdate + *out = make([]AutoUpdateInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Autoscaler != nil { in, out := &in.Autoscaler, &out.Autoscaler *out = make([]AutoscalerInitParameters, len(*in)) @@ -1058,6 +1125,13 @@ func (in *OceanGkeList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OceanGkeObservation) DeepCopyInto(out *OceanGkeObservation) { *out = *in + if in.AutoUpdate != nil { + in, out := &in.AutoUpdate, &out.AutoUpdate + *out = make([]AutoUpdateObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Autoscaler != nil { in, out := &in.Autoscaler, &out.Autoscaler *out = make([]AutoscalerObservation, len(*in)) @@ -1194,6 +1268,13 @@ func (in *OceanGkeObservation) DeepCopy() *OceanGkeObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OceanGkeParameters) DeepCopyInto(out *OceanGkeParameters) { *out = *in + if in.AutoUpdate != nil { + in, out := &in.AutoUpdate, &out.AutoUpdate + *out = make([]AutoUpdateParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Autoscaler != nil { in, out := &in.Autoscaler, &out.Autoscaler *out = make([]AutoscalerParameters, len(*in)) diff --git a/apis/oceangke/v1alpha1/zz_oceangke_types.go b/apis/oceangke/v1alpha1/zz_oceangke_types.go index 6c3cac2..184818a 100755 --- a/apis/oceangke/v1alpha1/zz_oceangke_types.go +++ b/apis/oceangke/v1alpha1/zz_oceangke_types.go @@ -13,6 +13,25 @@ import ( v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" ) +type AutoUpdateInitParameters struct { + + // Enable the Ocean Kubernetes AutoUpdate. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` +} + +type AutoUpdateObservation struct { + + // Enable the Ocean Kubernetes AutoUpdate. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` +} + +type AutoUpdateParameters struct { + + // Enable the Ocean Kubernetes AutoUpdate. + // +kubebuilder:validation:Optional + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` +} + type AutoscalerInitParameters struct { // Optionally set the auto headroom percentage, set a number between 0-200 to control the headroom % from the cluster. Relevant when isAutoConfig=true. @@ -33,8 +52,7 @@ type AutoscalerInitParameters struct { // Automatically configure and optimize headroom resources. IsAutoConfig *bool `json:"isAutoConfig,omitempty" tf:"is_auto_config,omitempty"` - // Flag to enable / disable the shutdown hours. - // Example: true + // Enable the Ocean Kubernetes AutoUpdate. IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` // Optionally set upper and lower bounds on the resource usage of the cluster. @@ -61,8 +79,7 @@ type AutoscalerObservation struct { // Automatically configure and optimize headroom resources. IsAutoConfig *bool `json:"isAutoConfig,omitempty" tf:"is_auto_config,omitempty"` - // Flag to enable / disable the shutdown hours. - // Example: true + // Enable the Ocean Kubernetes AutoUpdate. IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` // Optionally set upper and lower bounds on the resource usage of the cluster. @@ -95,8 +112,7 @@ type AutoscalerParameters struct { // +kubebuilder:validation:Optional IsAutoConfig *bool `json:"isAutoConfig,omitempty" tf:"is_auto_config,omitempty"` - // Flag to enable / disable the shutdown hours. - // Example: true + // Enable the Ocean Kubernetes AutoUpdate. // +kubebuilder:validation:Optional IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` @@ -395,6 +411,9 @@ type NamedPortsParameters struct { type OceanGkeInitParameters struct { + // The Ocean Kubernetes AutoUpdate object. If set to 'true', Ocean will ensure that your clusters have an up-to-date configuration according to the respective GKE cluster. + AutoUpdate []AutoUpdateInitParameters `json:"autoUpdate,omitempty" tf:"auto_update,omitempty"` + // The Ocean Kubernetes Autoscaler object. Autoscaler []AutoscalerInitParameters `json:"autoscaler,omitempty" tf:"autoscaler,omitempty"` @@ -448,6 +467,9 @@ type OceanGkeInitParameters struct { type OceanGkeObservation struct { + // The Ocean Kubernetes AutoUpdate object. If set to 'true', Ocean will ensure that your clusters have an up-to-date configuration according to the respective GKE cluster. + AutoUpdate []AutoUpdateObservation `json:"autoUpdate,omitempty" tf:"auto_update,omitempty"` + // The Ocean Kubernetes Autoscaler object. Autoscaler []AutoscalerObservation `json:"autoscaler,omitempty" tf:"autoscaler,omitempty"` @@ -507,6 +529,10 @@ type OceanGkeObservation struct { type OceanGkeParameters struct { + // The Ocean Kubernetes AutoUpdate object. If set to 'true', Ocean will ensure that your clusters have an up-to-date configuration according to the respective GKE cluster. + // +kubebuilder:validation:Optional + AutoUpdate []AutoUpdateParameters `json:"autoUpdate,omitempty" tf:"auto_update,omitempty"` + // The Ocean Kubernetes Autoscaler object. // +kubebuilder:validation:Optional Autoscaler []AutoscalerParameters `json:"autoscaler,omitempty" tf:"autoscaler,omitempty"` @@ -716,8 +742,7 @@ type ShieldedInstanceConfigParameters struct { type ShutdownHoursInitParameters struct { - // Flag to enable / disable the shutdown hours. - // Example: true + // Enable the Ocean Kubernetes AutoUpdate. IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` // Set time windows for shutdown hours. specify a list of 'timeWindows' with at least one time window Each string is in the format of - ddd:hh:mm-ddd:hh:mm ddd = day of week = Sun | Mon | Tue | Wed | Thu | Fri | Sat hh = hour 24 = 0 -23 mm = minute = 0 - 59. Time windows should not overlap. required on cluster.scheduling.isEnabled = true. API Times are in UTC @@ -727,8 +752,7 @@ type ShutdownHoursInitParameters struct { type ShutdownHoursObservation struct { - // Flag to enable / disable the shutdown hours. - // Example: true + // Enable the Ocean Kubernetes AutoUpdate. IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` // Set time windows for shutdown hours. specify a list of 'timeWindows' with at least one time window Each string is in the format of - ddd:hh:mm-ddd:hh:mm ddd = day of week = Sun | Mon | Tue | Wed | Thu | Fri | Sat hh = hour 24 = 0 -23 mm = minute = 0 - 59. Time windows should not overlap. required on cluster.scheduling.isEnabled = true. API Times are in UTC @@ -738,8 +762,7 @@ type ShutdownHoursObservation struct { type ShutdownHoursParameters struct { - // Flag to enable / disable the shutdown hours. - // Example: true + // Enable the Ocean Kubernetes AutoUpdate. // +kubebuilder:validation:Optional IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` @@ -823,8 +846,7 @@ type TasksInitParameters struct { // Example: 0 1 * * * CronExpression *string `json:"cronExpression,omitempty" tf:"cron_expression,omitempty"` - // Flag to enable / disable the shutdown hours. - // Example: true + // Enable the Ocean Kubernetes AutoUpdate. IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` // The scheduling parameters for the cluster. @@ -840,8 +862,7 @@ type TasksObservation struct { // Example: 0 1 * * * CronExpression *string `json:"cronExpression,omitempty" tf:"cron_expression,omitempty"` - // Flag to enable / disable the shutdown hours. - // Example: true + // Enable the Ocean Kubernetes AutoUpdate. IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` // The scheduling parameters for the cluster. @@ -858,8 +879,7 @@ type TasksParameters struct { // +kubebuilder:validation:Optional CronExpression *string `json:"cronExpression" tf:"cron_expression,omitempty"` - // Flag to enable / disable the shutdown hours. - // Example: true + // Enable the Ocean Kubernetes AutoUpdate. // +kubebuilder:validation:Optional IsEnabled *bool `json:"isEnabled" tf:"is_enabled,omitempty"` diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index 2b897bc..700810f 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -46,6 +46,28 @@ resources: account_id: '- (Required) The ID of the account associated with your token.' iamrole: '- (Required) Provide the IAM Role ARN connected to another AWS account 922761411349 and with the latest Spot Policy - https://docs.spot.io/administration/api/spot-policy-in-aws' importStatements: [] + spotinst_credentials_azure: + subCategory: Accounts + description: Provides a Spotinst credential Azure resource. + name: spotinst_credentials_azure + title: credentials_azure + examples: + - name: credential + manifest: |- + { + "account_id": "act-123456", + "client_id": "redacted", + "client_secret": "redacted", + "subscription_id": "redacted", + "tenant_id": "redacted" + } + argumentDocs: + account_id: '- (Required) The ID of the account associated with your token.' + client_id: '- (Required) Set the application ID.' + client_secret: '- (Required) Set the key secret.' + subscription_id: '- (Required) Set the subscription ID.' + tenant_id: '- (Required) Set the directory ID.' + importStatements: [] spotinst_credentials_gcp: subCategory: Accounts description: Provides a Spotinst credential GCP resource. @@ -440,7 +462,7 @@ resources: private_ips: '- (Optional) List of Private IPs to associate to the group instances.(e.g. "172.1.1.0"). Please note: This setting will only apply if persistence.persist_private_ip is set to true.' product: |- - (Required) Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". - For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)". + For EC2 Classic instances: "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)". record_set_type: '- (Optional, Default: a) The type of the record set. Valid values: "a", "cname".' record_sets: '- (Required) Collection of records containing authoritative DNS information for the specified domain name.' region: |- @@ -1072,6 +1094,7 @@ resources: } ], "max_size": 1, + "min_cpu_platform": "Intel Sandy Bridge", "min_size": 0, "name": "example-gcp", "network_interface": [ @@ -1083,6 +1106,9 @@ resources: "Mon:01:00-Mon:03:00" ], "preemptible_percentage": 50, + "preferred_availability_zones": [ + "us-central1-a" + ], "provisioning_model": "SPOT", "revert_to_preemptible": [ { @@ -1113,6 +1139,13 @@ resources: } ], "service_account": "example@myProject.iam.gservicecct.com", + "shielded_instance_config": [ + { + "enable_integrity_monitoring": false, + "enable_secure_boot": true + } + ], + "should_utilize_commitments": true, "startup_script": "", "subnets": [ { @@ -1147,6 +1180,8 @@ resources: disk_type: '- (Optional, Default" pd-standard) Specifies the disk type to use to create the instance. Valid values: pd-ssd, local-ssd.' disks: '- (Optional) Array of disks associated with this instance. Persistent disks must be created before you can assign them.' draining_timeout: '- (Optional) Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.' + enable_integrity_monitoring: '- (Optional) Default: false' + enable_secure_boot: '- (Optional) Default: false' evaluation_periods: '- (Optional) Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.' fallback_to_ondemand: '- (Optional) Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.' gpu: '- (Optional) Defines the GPU configuration.' @@ -1171,6 +1206,7 @@ resources: metadata: '- (Optional) Array of objects with key-value pairs.' metric_name: '- (Optional) Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".' min_capacity: '- (Optional) The minimum number of instances the group should have.' + min_cpu_platform: '- (Optional) Select a minimum CPU platform for the compute instance.' min_size: '- (Required) The minimum number of instances the group should have at any time.' mode: '- (Optional, Default: READ_WRITE) The mode in which to attach this disk, either READ_WRITE or READ_ONLY.' name: '- (Required) The group name.' @@ -1185,6 +1221,7 @@ resources: policy_name: '- (Optional) Name of scaling policy.' ports: '- (Required) A list of ports.' preemptible_percentage: '- (Optional) Percentage of Preemptible VMs to spin up from the "desired_capacity".' + preferred_availability_zones: '- (Optional) prioritize availability zones when launching instances for the group. Must be a sublist of availability_zones.' provisioning_model: '- (Optional) Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".' region: '- (Required) The region for the group of subnets.' revert_to_preemptible: '- (Optional) Setting for revert to preemptible option.' @@ -1193,6 +1230,8 @@ resources: scheme: '- (Optional) Use when location_type is "regional". Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: INTERNAL, EXTERNAL.' service_account: '- (Optional) The email of the service account in which the group instances will be launched.' service_name: '- (Required) The name of the backend service.' + shielded_instance_config: '- (Optional) You can use secure boot when you launch VMs using Elastigroup. This helps you comply with your security policies. In the instance configuration, use ‘secureBootEnabled’ set to True to enforce UEFI with secure boot. Elastigroup provisions VMs with secure boot, as long as the images supports UEFI.' + should_utilize_commitments: '- (Optional) Enable committed use discounts utilization.' shutdown_script: '- (Optional) The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script' source: '- (Optional) Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.' source_image: '- (Optional) A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project.' @@ -1817,6 +1856,19 @@ resources: ] } ], + "logging": [ + { + "export": [ + { + "azure_blob": [ + { + "id": "di-abcd123" + } + ] + } + ] + } + ], "max_count": 100, "max_pods_per_node": 30, "min_count": 1, @@ -1842,6 +1894,19 @@ resources: ], "vnet_subnet_ids": [ "/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default" + ], + "vng_template_scheduling": [ + { + "vng_template_shutdown_hours": [ + { + "is_enabled": true, + "time_windows": [ + "Fri:15:30-Sat:13:30", + "Sun:15:30-Mon:13:30" + ] + } + ] + } ] } argumentDocs: @@ -1851,6 +1916,7 @@ resources: aks_infrastructure_resource_group_name: '- (Required) The name of the cluster''s infrastructure resource group.' aks_region: '- (Required) The cluster''s region.' aks_resource_group_name: '- (Required) The name of the cluster''s resource group.' + apply_roll: '- (Optional) - When set to True, a cluster roll will be initiated if a new version is available to upgrade in the dedicated virtual node groups.' architectures: '- (Optional, Enum "x86_64", "intel64", "amd64", "arm64") The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64.' automatic: '- (Optional) Automatic headroom configuration.' autoscale_down: '- (Optional) Auto Scaling scale down operations.' @@ -1858,6 +1924,7 @@ resources: autoscale_is_enabled: '- (Optional) Enable the Ocean Kubernetes Autoscaler.' autoscaler: '- (Optional) The Ocean Kubernetes Autoscaler object.' availability_zones: '- (Required) An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.' + azure_blob: '- Exports your cluster''s logs to the storage account and container configured on the storage account data integration given. Each file contains logs of 3 minutes where each log is separated by a new line and saved as a JSON. The file formats are container/accountId``oceanId``oceanName_startTime.log' batch_min_healthy_percentage: '- (Optional, Default: 50) Indicates the threshold of minimum healthy nodes in single batch. If the amount of healthy nodes in single batch is under the threshold, the roll will fail. If exists, the parameter value will be in range of 1-100. In case of null as value, the default value in the backend will be 50%. Value of param should represent the number in percentage (%) of the batch.' batch_size_percentage: '- (Optional) Value as a percent to set the size of a batch in a roll. Valid values are 0-100. In case of null as value, the default value in the backend will be 20%.' comment: '- (Optional) Add a comment description for the roll. The comment is limited to 256 chars and optional.' @@ -1869,6 +1936,7 @@ resources: effect: '- (Optional, Enum: "NoSchedule", "PreferNoSchedule", "NoExecute", "PreferNoExecute") Set taint effect.' enable_node_public_ip: '- (Optional) Enable node public IP.' exclude_series: '- (Optional) Vm sizes belonging to a series from the list will not be available for scaling' + export: '- The Ocean AKS Logging Export object.' fallback_to_ondemand: '- (Optional) If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead.' filters: '- (Optional) Filters for the VM sizes that can be launched from the virtual node group.' gpu_per_unit: '- (Optional) Amount of GPU to allocate for headroom unit.' @@ -1876,11 +1944,13 @@ resources: grace_period: '- (Optional, Default: 600) The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins.' headrooms: '- (Optional) Specify the custom headroom per VNG. Provide a list of headroom objects.' health: '- (Optional) The Ocean AKS Health object.' + id: '- (Required) The identifier of The Azure Blob data integration to export the logs to.' is_enabled: '- (Optional, Default - false) Enable automatic headroom. When set to true, Ocean configures and optimizes headroom automatically.' key: '- (Required) Set label key spot labels and Azure labels. The following are not allowed: ["kubernetes.azure.com/agentpool","kubernetes.io/arch","kubernetes.io/os","node.kubernetes.io/instance-type", "topology.kubernetes.io/region", "topology.kubernetes.io/zone", "kubernetes.azure.com/cluster", "kubernetes.azure.com/mode", "kubernetes.azure.com/role", "kubernetes.azure.com/scalesetpriority", "kubernetes.io/hostname", "kubernetes.azure.com/storageprofile", "kubernetes.azure.com/storagetier", "kubernetes.azure.com/instance-sku", "kubernetes.azure.com/node-image-version", "kubernetes.azure.com/subnet", "kubernetes.azure.com/vnet", "kubernetes.azure.com/ppg", "kubernetes.azure.com/encrypted-set", "kubernetes.azure.com/accelerator", "kubernetes.azure.com/fips_enabled", "kubernetes.azure.com/os-sku"]' kubernetes_version: '- (Optional) The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.' labels: '- (Optional) An array of labels to add to the virtual node group. Only custom user labels are allowed, and not Kubernetes well-known labels or Azure AKS labels or Spot labels.' linux_os_config: '- (Optional) Custom Linux OS configuration.' + logging: '- (Optional) The Ocean AKS Logging Object.' max_count: '- (Optional, Default: 1000) Maximum node count limit.' max_gpu: '- (Optional) Maximum number of GPUs available.' max_memory_gib: '- (Optional) The maximum memory in GiB units that can be allocated to the cluster.' @@ -1904,29 +1974,33 @@ resources: os_type: '- (Optional, Enum:"Linux","Windows") The OS type of the OS disk. Can''t be modified once set.' parameters: '- (Optional) The parameters of the scheduling task. Each task type will have properties relevant only to it.' parameters_cluster_roll: '- (Optional) The parameters of the cluster roll scheduling task.' + parameters_upgrade_config: '- (Optional) The parameters of the upgrade config scheduling task.' percentage: '- (Optional) Optionally set a number between 0-100 to control the percentage of total cluster resources dedicated to headroom.' pod_subnet_ids: '- (Optional) The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).' resource_limits: '- (Optional) Optionally set upper and lower bounds on the resource usage of the cluster.' respect_pdb: '- (Optional, Default: true) During the roll, if the parameter is set to true we honor PDB during the nodes replacement.' respect_restrict_scale_down: '- (Optional, Default: false) During the roll, if the parameter is set to true we honor Restrict Scale Down label during the nodes replacement.' roll_config: '- (Optional) While used, you can control whether the group should perform a deployment after an update to the configuration.' + roll_parameters: '- (Optional) - The parameters of the cluster roll that will be initiated.' scheduling: '- (Optional) An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.' series: '- (Optional) Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore ''_'' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series.' should_roll: '- (Required) If set to true along with the cluster update, roll will be triggered.' - shutdown_hours: '- (Optional) An object used to specify times that the nodes in the cluster will be taken down.' + shutdown_hours: '- (Optional) An object used to specify times that the nodes in the virtual node group will be stopped.' spot_percentage: '- (Optional) Percentage of spot VMs to maintain.' + suspension_hours: '- (Optional) An object used to specify times that the cluster should be exempted from Ocean''s scaling-down activities to ensure uninterrupted operations during critical periods.' sysctls: '- (Optional) System Controls' tag: '- (Optional) A maximum of 10 unique key-value pairs for VM tags in the virtual node group.' taints: '- (Optional) Add taints to a virtual node group. Only custom user taints are allowed, and not Kubernetes well-known taints or Azure AKS ScaleSetPrioirty (Spot VM) taint. For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To schedule a pod to run on Spot node, add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.' - task_type: '- (Required) Valid values: clusterRoll The type of the scheduling task.' + task_type: '- (Required) The type of the scheduling task. Valid values: "clusterRoll,autoUpgradeVersion".' tasks: '- (Optional) A list of scheduling tasks to preform on the cluster at a specific cron time.' - time_windows: '- (Optional) The times that the shutdown hours will apply. Required if isEnabled is true.' + time_windows: '- (Optional) The times that the shutdown hours will apply. Required if is_enabled is true.' update_policy: '- (Optional)' value: '- (Required) Set label value.' vm_max_map_count: '- (Optional) Maximum number of memory map areas a process may have. Can be configured only if OS type is Linux.' vm_types: '- (Optional, Enum "generalPurpose", "memoryOptimized", "computeOptimized", "highPerformanceCompute", "storageOptimized", "GPU") The filtered vm types will belong to one of the vm types from this list.' vnet_subnet_ids: '- (Optional) The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).' vng_ids: '- (Optional) List of virtual node group identifiers to be rolled. Each identifier is a string. vngIds can be null, and cannot be used together with nodeNames and nodePoolNames.' + vng_template_scheduling: '- (Optional) An object used to specify times when the virtual node group will turn off all its node pools. Once the shutdown time will be over, the virtual node group will return to its previous state.' importStatements: [] spotinst_ocean_aks_np_virtual_node_group: subCategory: Ocean @@ -2015,6 +2089,19 @@ resources: "pod_subnet_ids": [ "/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default" ], + "scheduling": [ + { + "shutdown_hours": [ + { + "is_enabled": true, + "time_windows": [ + "Fri:15:30-Sat:20:30", + "Sun:08:30-Mon:08:30" + ] + } + ] + } + ], "spot_percentage": 50, "tags": { "tagKey": "env", @@ -2049,6 +2136,7 @@ resources: gpu_per_unit: '- (Optional) Amount of GPU to allocate for headroom unit.' gpu_types: '- (Optional, Enum "nvidia-tesla-v100", "amd-radeon-instinct-mi25", "nvidia-a10", "nvidia-tesla-a100", "nvidia-tesla-k80", "nvidia-tesla-m60", "nvidia-tesla-p100", "nvidia-tesla-p40", "nvidia-tesla-t4", "nvidia-tesla-h100") The filtered gpu types will belong to one of the gpu types from this list.' headrooms: '- (Optional) Specify the custom headroom per VNG. Provide a list of headroom objects.' + is_enabled: '- (Optional) Flag to enable or disable the shutdown hours mechanism. When false, the mechanism is deactivated, and the virtual node gorup remains in its current state.' key: '- (Required) Set label key. The following are not allowed: ["kubernetes.azure.com/agentpool", "kubernetes.io/arch", "kubernetes.io/os", "node.kubernetes.io/instance-type", "topology.kubernetes.io/region", "topology.kubernetes.io/zone", "kubernetes.azure.com/cluster", "kubernetes.azure.com/mode", "kubernetes.azure.com/role", "kubernetes.azure.com/scalesetpriority", "kubernetes.io/hostname", "kubernetes.azure.com/storageprofile", "kubernetes.azure.com/storagetier", "kubernetes.azure.com/instance-sku", "kubernetes.azure.com/node-image-version", "kubernetes.azure.com/subnet", "kubernetes.azure.com/vnet", "kubernetes.azure.com/ppg", "kubernetes.azure.com/encrypted-set", "kubernetes.azure.com/accelerator", "kubernetes.azure.com/fips_enabled", "kubernetes.azure.com/os-sku"]' kubernetes_version: '- (Optional) The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.' labels: '- (Optional) An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels.' @@ -2078,12 +2166,15 @@ resources: respect_pdb: '- (Optional, Default: true) During the roll, if the parameter is set to true we honor PDB during the nodes replacement.' respect_restrict_scale_down: '- (Optional, Default: false) During the roll, if the parameter is set to true we honor Restrict Scale Down label during the nodes replacement.' roll_config: '- (Optional) While used, you can control whether the group should perform a deployment after an update to the configuration.' + scheduling: '- (Optional) An object used to specify times when the virtual node group will turn off all its node pools. Once the shutdown time will be over, the virtual node group will return to its previous state.' series: '- (Optional) Vm sizes belonging to a series from the list will be available for scaling.' should_roll: '- (Required) If set to true along with the vng update, roll will be triggered.' + shutdown_hours: '- (Optional) An object used to specify times that the nodes in the virtual node group will be stopped.' spot_percentage: '- (Optional) Percentage of spot VMs to maintain.' sysctls: '- (Optional) System Controls' tag: '- (Optional) A maximum of 10 unique key-value pairs for VM tags in the virtual node group.' taints: '- (Optional) Add taints to a virtual node group.' + time_windows: '- (Optional) The times that the shutdown hours will apply. Required if isEnabled is true.' update_policy: '- (Optional)' value: '- (Required) Set label value.' vm_max_map_count: '- (Optional) Maximum number of memory map areas a process may have. Can be configured only if OS type is Linux.' @@ -2626,6 +2717,7 @@ resources: "desired_capacity": "0", "draining_timeout": 120, "ebs_optimized": true, + "fallback_to_ondemand": true, "iam_instance_profile": "iam-profile", "image_id": "ami-12345", "instanceTypes": [ @@ -2761,6 +2853,7 @@ resources: exclude_families: '- (Optional) Types belonging to a family from the ExcludeFamilies will not be available for scaling (asterisk wildcard is also supported). For example, C* will exclude instance types from these families: c5, c4, c4a, etc.' exclude_metal: '- (Optional, Default: false) In case excludeMetal is set to true, metal types will not be available for scaling.' export: '- (Optional) Logging Export configuration.' + fallback_to_ondemand: '- (Optional, Default: true) If no Spot instance markets are available, enable Ocean to launch On-Demand instances instead.' filters: '- (Optional) List of filters. The Instance types that match with all filters compose the Ocean''s whitelist parameter. Cannot be configured together with whitelist/blacklist.' headroom: '- (Optional) Spare resource capacity management enabling fast assignment of tasks without waiting for new resources to launch.' http_put_response_hop_limit: '- (Optional) An integer from 1 through 64. The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further the instance metadata requests can travel.' @@ -3006,6 +3099,11 @@ resources: - name: example manifest: |- { + "auto_update": [ + { + "is_enabled": true + } + ], "backend_services": [ { "location_type": "regional", @@ -3058,6 +3156,7 @@ resources: } argumentDocs: auto_headroom_percentage: '- Optionally set the auto headroom percentage, set a number between 0-200 to control the headroom % from the cluster. Relevant when isAutoConfig=true.' + auto_update: '- (Optional) The Ocean Kubernetes AutoUpdate object. If set to ''true'', Ocean will ensure that your clusters have an up-to-date configuration according to the respective GKE cluster.' autoscaler: '- (Optional) The Ocean Kubernetes Autoscaler object.' backend_services: '- (Optional) Describes the backend service configurations.' batch_min_healthy_percentage: '- (Optional, Default: 50) Indicates the threshold of minimum healthy instances in single batch. If the amount of healthy instances in single batch is under the threshold, the cluster roll will fail. If exists, the parameter value will be in range of 1-100. In case of null as value, the default value in the backend will be 50%. Value of param should represent the number in percentage (%) of the batch.' @@ -3090,9 +3189,7 @@ resources: include_families: '- (Optional) Types belonging to a family from the IncludeFamilies will be available for scaling (asterisk wildcard is also supported). For example, C* will include instance types from these families: c5, c4, c4a, etc.' is_aggressive_scale_down_enabled: '- (Optional, Default: false) When set to ''true'', the Aggressive Scale Down feature is enabled.' is_auto_config: '- (Optional, Default: true) Automatically configure and optimize headroom resources.' - is_enabled: |- - - (Optional) Flag to enable / disable the shutdown hours. - Example: true + is_enabled: '- (Optional, Default:true) Enable the Ocean Kubernetes AutoUpdate.' launch_spec_ids: '- (Optional) List of Virtual Node Group identifiers to be rolled.' location: '- (Required) The zone the master cluster is located in.' location_type: '- (Optional) Sets which location the backend services will be active. Valid values: regional, global.' @@ -3504,6 +3601,19 @@ resources: ], "use_host_network": false } + ], + "workspaces": [ + { + "storage": [ + { + "defaults": [ + { + "storage_class_name": "my-custom-storage-class" + } + ] + } + ] + } ] } argumentDocs: @@ -4370,6 +4480,7 @@ resources: "public_ip_should_deallocate": true, "public_ip_ttl_in_hours": 0, "should_deregister_from_lb": true, + "should_revert_to_od": false, "should_terminate_vm": true, "snapshot_should_deallocate": true, "snapshot_ttl_in_hours": 0 @@ -4617,6 +4728,9 @@ resources: "vm_name_prefix": "VMNamePrefix", "vm_sizes": [ { + "excluded_vm_sizes": [ + "standard_ds2_v3" + ], "od_sizes": [ "standard_ds1_v2", "standard_ds2_v2" @@ -4624,6 +4738,16 @@ resources: "preferred_spot_sizes": [ "standard_ds1_v2" ], + "spot_size_attributes": [ + { + "max_cpu": 16, + "max_memory": 48, + "max_storage": 1000, + "min_cpu": 2, + "min_memory": 2, + "min_storage": 50 + } + ], "spot_sizes": [ "standard_ds1_v2", "standard_ds2_v2" @@ -4667,11 +4791,12 @@ resources: delete: '- (Required) Specify deallocation parameters for stateful node deletion.' description: '- (Optional) Describe your Azure stateful node.' detach_data_disk: '- (Optional) Detach a data disk from a stateful node.' - disk_should_deallocate: '- (Required) Indicates whether to delete the stateful node''s disk resources.' + disk_should_deallocate: '- (Optional) Indicates whether to delete the stateful node''s disk resources.' disk_ttl_in_hours: '- (Optional, Default: 96) Hours to keep the disk resource alive before deletion.' draining_timeout: '- (Optional, Default 120) Time (in seconds) to allow the VM be drained from incoming TCP connections and detached from MLB before terminating it during a scale down operation.' enable_ip_forwarding: '- (Optional) Enable IP Forwarding.' encryption_at_host: '- (Optional) Enables the Host Encryption for the virtual machine. The Encryption at host will be disabled unless this property is set to true for the resource.' + excluded_vm_sizes: '- (Optional) Defines the VM sizes to exclude when defining spot types with spotSizeAttributes.' extension: '- (Optional) An object for an azure extension.' fallback_to_on_demand: '- (Required) In case of no spots available, Stateful Node will launch an On-demand instance instead.' gallery: '- (Optional) Gallery image definitions. Required if custom image or marketplace image are not specified.' @@ -4691,13 +4816,19 @@ resources: lun: '- (Required) The LUN of the data disk.' managed_service_identities: '- (Optional) Add a user-assigned managed identity to the Stateful Node''s VM.' marketplace_image: '- (Optional) Select an image from Azure''s Marketplace image catalogue. Required if the custom image or gallery image are not specified.' + max_cpu: '- (Optional) Maximum amount of vCPU units.' + max_memory: '- (Optional) Maximum amount of memory in GiB.' + max_storage: '- (Optional) Maximum amount of storage in GiB.' + min_cpu: '- (Optional) Minimum amount of vCPU units.' + min_memory: '- (Optional) Minimum amount of memory in GiB.' + min_storage: '- (optional) Minimum amount of storage in GiB.' minor_version_auto_upgrade: '- (Required) Required on compute.launchSpecification.extensions object.' name: '- (Required) Azure stateful node name.' network: '- (Required) Define the Virtual Network and Subnet for your Stateful Node.' network_interface: '- (Required) Define a network interface' network_resource_group_name: '- (Required) Vnet Resource Group Name.' network_security_group: '- (Optional) Network Security Group.' - network_should_deallocate: '- (Required) Indicates whether to delete the stateful node''s network resources.' + network_should_deallocate: '- (Optional) Indicates whether to delete the stateful node''s network resources.' network_ttl_in_hours: '- (Optional, Default: 96) Hours to keep the network resource alive before deletion.' od_sizes: '- (Required) Available On-Demand sizes.' od_windows: |- @@ -4718,7 +4849,7 @@ resources: private_ip_addresses: '- (Optional) A list with unique items that every item is a valid IP.' protected_settings: '- (Optional) Object for protected settings.' proximity_placement_groups: '- (Optional) Defines the proximity placement group in which the VM will be launched.' - public_ip_should_deallocate: '- (Required) Indicates whether to delete the stateful node''s public ip resources.' + public_ip_should_deallocate: '- (Optional) Indicates whether to delete the stateful node''s public ip resources.' public_ip_sku: '- (Optional) Required if assignPublicIp=true values=[Standard/Basic].' public_ip_ttl_in_hours: '- (Optional, Default: 96) Hours to keep the public ip alive before deletion.' public_ips: '- (Optional) Defined a pool of Public Ips (from Azure), that will be associated to the network interface. We will associate one public ip per instance until the pool is exhausted, in which case, we will create a new one.' @@ -4738,17 +4869,19 @@ resources: should_persist_data_disks: '- (Required) Should persist data disks.' should_persist_network: '- (Required) Should persist network.' should_persist_os_disk: '- (Required) Should persist os disk.' + should_revert_to_od: '- (Optional, Default: false) Indicates whether to change the stateful node''s VM lifecycle to on-demand. Can be changed to true only when should_terminate_vm is ''false''.' should_terminate_vm: '- (Required) Indicates whether to delete the stateful node''s VM.' should_utilize: '- (Required) Determines whether capacity reservations should be utilized.' shutdown_script: '- (Optional) Shutdown script for the stateful node. Value should be passed as a string encoded at Base64 only.' signal: '- (Optional) A signal object defined for the stateful node.' size_gb: '- (Required) The size of the data disk in GB, required if dataDisks is specified.' sku: '- (Required) Image Stock Keeping Unit, which is the specific version of the image.' - snapshot_should_deallocate: '- (Required) Indicates whether to delete the stateful node''s snapshot resources.' + snapshot_should_deallocate: '- (Optional) Indicates whether to delete the stateful node''s snapshot resources.' snapshot_ttl_in_hours: '- (Optional, Default: 96) Hours to keep the snapshots alive before deletion.' source_vault: '- (Required) The key vault reference, contains the required certificates.' spot_account_id: '- (Optional) The Spot account ID that connected to the Azure subscription to which the gallery belongs. Relevant only in case of cross-subscription shared galleries. Read more about cross-subscription shared galleries in Elastigroup.' - spot_sizes: '- (Required) Available Spot-VM sizes.' + spot_size_attributes: '- (Optional) Defines values and ranges for attributes of the spot sizes to use when launching VMs. Required if spotSizes isn''t specified.' + spot_sizes: '- (Optional) Available Spot-VM sizes. Required if spotSizeAttributes isn''t specified.' ssh_public_key: '- (Optional) SSH for admin access to Linux VMs. Optional for Linux.' state: '- (Required, Enum "pause", "resume", "recycle") New state for the stateful node.' storage_account_type: '- (Required, Enum "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS") The type of the data disk.' @@ -4860,6 +4993,9 @@ resources: - (Optional) Describes whether instance Enhanced Monitoring is enabled. Default: false encrypted: '- (Optional) Enables EBS encryption on the volume.' + excluded_instance_families: '- (Optional) Instance families to exclude' + excluded_instance_generations: '- (Optional)Instance generations to exclude' + excluded_instance_types: '- (Optional) Instance types to exclude' fallback_to_ondemand: '- (Optional) In case of no spots available, Managed Instance will launch an On-demand instance instead. Default: "true".' frequency: '- (Optional) Set frequency for the task. Valid values: "hourly", "daily", "weekly", "continuous".' grace_period: '- (Optional) The amount of time, in seconds, after the instance has launched to starts and check its health, default "120".' @@ -4871,7 +5007,7 @@ resources: id: '- The group ID.' image_id: '- (Required) The ID of the image used to launch the instance.' instance_metadata_tags: '- (Optional) Valid values: enabled or disabled Indicates whether access to instance tags from the instance metadata is enabled or disabled. Can’t be null.' - instance_types: '- (Required) Comma separated list of available instance types for instance.' + instance_types: '- (Optional) Comma separated list of available instance types for instance.' integration_route53: '- (Optional) Describes the Route53 integration.' iops: '- (Optional) The amount of provisioned IOPS. This must be set with a volume_type of "io1".' is_enabled: '- (Optional) Describes whether the task is enabled. When true the task should run when false it should not run.' @@ -4894,12 +5030,20 @@ resources: placement_tenancy: |- - (Optional) Valid values: "default", "dedicated". Default: default - preferred_type: '- (Required) Preferred instance types for the instance. We will automatically select optional similar instance types to ensure optimized cost efficiency' + preferred_type: '- (Optional) Prioritized instance type. The instance type must be included in the selected instance types or meet the resource requirements if defined. Note: Either preferred_type or preferred_types can be defined, but not both.' + preferred_types: '- (Optional) Prioritized subset of instance types. The list must be a subset of the selected instance types or meet the resource requirements if defined. Note: Either preferred_type or preferred_types can be defined, but not both.' private_ip: '- (Optional) Private IP Allocation Id to associate to the instance.' product: '- (Required) Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows", "Red Hat Enterprise Linux", "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)", "Red Hat Enterprise Linux (Amazon VPC)".' record_set_type: '- (Optional, Default: a) The type of the record set. Valid values: "a", "cname".' record_sets: '- (Required) List of record sets' region: '- (Required) The AWS region your group will be created in.' + required_gpu_maximum: '- (Optional) Required maximum instance GPU (<=16)' + required_gpu_minimum: '- (Optional) Required minimum instance GPU (>=1)' + required_memory_maximum: '- (Required) Required maximum instance memory (<=512)' + required_memory_minimum: '- (Required) Required minimum instance memory (>=1)' + required_vcpu_maximum: '- (Required) Required maximum instance vCPU (<=64)' + required_vcpu_minimum: '- (Required) Required minimum instance vCPU (>=1)' + resource_requirements: '- (Optional) Required instance attributes. Instance types will be selected based on these requirements.' resource_tag_specification: '- (Optional) User will specify which resources should be tagged with group tags.' security_group_ids: '- (Optional) One or more security group IDs.' should_delete_network_interfaces: '- (Optional) Flag to remove network interfaces.' diff --git a/config/schema.json b/config/schema.json index 7519fa7..8814bbc 100644 --- a/config/schema.json +++ b/config/schema.json @@ -1 +1 @@ -{"format_version":"1.0","provider_schemas":{"registry.terraform.io/spotinst/spotinst":{"provider":{"version":0,"block":{"attributes":{"account":{"type":"string","description":"Spotinst Account ID","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Enable or disable the Spotinst provider","description_kind":"plain","optional":true},"feature_flags":{"type":"string","description":"Spotinst SDK Feature Flags","description_kind":"plain","optional":true},"token":{"type":"string","description":"Spotinst Personal API Access Token","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_schemas":{"spotinst_account":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_account_aws":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_credentials_aws":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"iamrole":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"spotinst_credentials_gcp":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"auth_provider_x509_cert_url":{"type":"string","description_kind":"plain","required":true},"auth_uri":{"type":"string","description_kind":"plain","required":true},"client_email":{"type":"string","description_kind":"plain","required":true},"client_id":{"type":"string","description_kind":"plain","required":true},"client_x509_cert_url":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"private_key":{"type":"string","description_kind":"plain","required":true},"private_key_id":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","required":true},"token_uri":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_data_integration":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"s3":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","required":true},"subdir":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_elastigroup_aws":{"version":0,"block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","optional":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"block_devices_mode":{"type":"string","description_kind":"plain","optional":true},"capacity_unit":{"type":"string","description_kind":"plain","optional":true,"computed":true},"consider_od_pricing":{"type":"bool","description_kind":"plain","optional":true},"cpu_credits":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"ebs_optimized":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"elastic_ips":{"type":["list","string"],"description_kind":"plain","optional":true},"elastic_load_balancers":{"type":["list","string"],"description_kind":"plain","optional":true},"enable_monitoring":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","required":true},"health_check_grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_type":{"type":"string","description_kind":"plain","optional":true},"health_check_unhealthy_duration_before_replacement":{"type":"number","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"immediate_od_recover_threshold":{"type":"number","description_kind":"plain","optional":true},"instance_types_ondemand":{"type":"string","description_kind":"plain","optional":true},"instance_types_preferred_spot":{"type":["list","string"],"description_kind":"plain","optional":true},"instance_types_spot":{"type":["list","string"],"description_kind":"plain","optional":true},"key_name":{"type":"string","description_kind":"plain","optional":true},"lifetime_period":{"type":"string","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"minimum_instance_lifetime":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"on_demand_types":{"type":["list","string"],"description_kind":"plain","optional":true},"ondemand_count":{"type":"number","description_kind":"plain","optional":true},"orientation":{"type":"string","description_kind":"plain","required":true},"persist_block_devices":{"type":"bool","description_kind":"plain","optional":true},"persist_private_ip":{"type":"bool","description_kind":"plain","optional":true},"persist_root_device":{"type":"bool","description_kind":"plain","optional":true},"placement_tenancy":{"type":"string","description_kind":"plain","optional":true},"preferred_availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"private_ips":{"type":["list","string"],"description_kind":"plain","optional":true},"product":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true},"restrict_single_az":{"type":"bool","description_kind":"plain","optional":true},"security_groups":{"type":["list","string"],"description_kind":"plain","required":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"target_group_arns":{"type":["list","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true},"wait_for_capacity":{"type":"number","description_kind":"plain","optional":true},"wait_for_capacity_timeout":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"cpu_options":{"nesting_mode":"list","block":{"attributes":{"threads_per_core":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"ebs_block_device":{"nesting_mode":"set","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"device_name":{"type":"string","description_kind":"plain","required":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_iops":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","optional":true},"resource":{"type":"string","description_kind":"plain","optional":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","optional":true},"resource":{"type":"string","description_kind":"plain","optional":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ephemeral_block_device":{"nesting_mode":"set","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","required":true},"virtual_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"images":{"nesting_mode":"list","block":{"block_types":{"image":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"instance_types_weights":{"nesting_mode":"set","block":{"attributes":{"instance_type":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"integration_beanstalk":{"nesting_mode":"list","block":{"attributes":{"environment_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"deployment_preferences":{"nesting_mode":"list","block":{"attributes":{"automatic_roll":{"type":"bool","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"strategy":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true},"should_drain_instances":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"managed_actions":{"nesting_mode":"list","block":{"block_types":{"platform_update":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","optional":true},"time_window":{"type":"string","description_kind":"plain","optional":true},"update_level":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_codedeploy":{"nesting_mode":"list","block":{"attributes":{"cleanup_on_failure":{"type":"bool","description_kind":"plain","required":true},"terminate_instance_on_failure":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"deployment_groups":{"nesting_mode":"set","block":{"attributes":{"application_name":{"type":"string","description_kind":"plain","required":true},"deployment_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"integration_docker_swarm":{"nesting_mode":"list","block":{"attributes":{"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"master_host":{"type":"string","description_kind":"plain","required":true},"master_port":{"type":"number","description_kind":"plain","required":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_ecs":{"nesting_mode":"list","block":{"attributes":{"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"autoscale_scale_down_non_service_tasks":{"type":"bool","description_kind":"plain","optional":true},"cluster_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"autoscale_attributes":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"batch":{"nesting_mode":"list","block":{"attributes":{"job_queue_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_gitlab":{"nesting_mode":"list","block":{"block_types":{"runner":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_kubernetes":{"nesting_mode":"list","block":{"attributes":{"api_server":{"type":"string","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"cluster_identifier":{"type":"string","description_kind":"plain","optional":true},"integration_mode":{"type":"string","description_kind":"plain","optional":true},"token":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"integration_mesosphere":{"nesting_mode":"list","block":{"attributes":{"api_server":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"integration_nomad":{"nesting_mode":"list","block":{"attributes":{"acl_token":{"type":"string","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"master_host":{"type":"string","description_kind":"plain","required":true},"master_port":{"type":"number","description_kind":"plain","required":true}},"block_types":{"autoscale_constraints":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_rancher":{"nesting_mode":"list","block":{"attributes":{"access_key":{"type":"string","description_kind":"plain","required":true},"master_host":{"type":"string","description_kind":"plain","required":true},"secret_key":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"integration_route53":{"nesting_mode":"list","block":{"block_types":{"domains":{"nesting_mode":"set","block":{"attributes":{"hosted_zone_id":{"type":"string","description_kind":"plain","required":true},"record_set_type":{"type":"string","description_kind":"plain","optional":true},"spotinst_acct_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"record_sets":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"use_public_dns":{"type":"bool","description_kind":"plain","optional":true},"use_public_ip":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"itf":{"nesting_mode":"list","block":{"attributes":{"fixed_target_groups":{"type":"bool","description_kind":"plain","required":true},"migration_healthiness_threshold":{"type":"number","description_kind":"plain","optional":true},"weight_strategy":{"type":"string","description_kind":"plain","required":true}},"block_types":{"default_static_target_group":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","required":true},"percentage":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"load_balancer":{"nesting_mode":"set","block":{"attributes":{"load_balancer_arn":{"type":"string","description_kind":"plain","required":true}},"block_types":{"listener_rule":{"nesting_mode":"set","block":{"attributes":{"rule_arn":{"type":"string","description_kind":"plain","required":true}},"block_types":{"static_target_group":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","required":true},"percentage":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1},"target_group_config":{"nesting_mode":"list","block":{"attributes":{"health_check_interval_seconds":{"type":"number","description_kind":"plain","optional":true},"health_check_path":{"type":"string","description_kind":"plain","required":true},"health_check_port":{"type":"string","description_kind":"plain","optional":true},"health_check_protocol":{"type":"string","description_kind":"plain","optional":true},"health_check_timeout_seconds":{"type":"number","description_kind":"plain","optional":true},"healthy_threshold_count":{"type":"number","description_kind":"plain","optional":true},"port":{"type":"number","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"protocol_version":{"type":"string","description_kind":"plain","optional":true},"unhealthy_threshold_count":{"type":"number","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"matcher":{"nesting_mode":"list","block":{"attributes":{"grpc_code":{"type":"string","description_kind":"plain","optional":true},"http_code":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"tag_key":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"logging":{"nesting_mode":"list","block":{"block_types":{"export":{"nesting_mode":"list","block":{"block_types":{"s3":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true},"instance_metadata_tags":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"multiple_metrics":{"nesting_mode":"set","block":{"block_types":{"expressions":{"nesting_mode":"set","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"metrics":{"nesting_mode":"set","block":{"attributes":{"extended_statistic":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"network_interface":{"nesting_mode":"set","block":{"attributes":{"associate_ipv6_address":{"type":"bool","description_kind":"plain","optional":true},"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"device_index":{"type":"string","description_kind":"plain","required":true},"network_interface_id":{"type":"string","description_kind":"plain","optional":true},"private_ip_address":{"type":"string","description_kind":"plain","optional":true},"secondary_private_ip_address_count":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_requirements":{"nesting_mode":"list","block":{"attributes":{"excluded_instance_families":{"type":["set","string"],"description_kind":"plain","optional":true},"excluded_instance_generations":{"type":["set","string"],"description_kind":"plain","optional":true},"excluded_instance_types":{"type":["set","string"],"description_kind":"plain","optional":true},"required_gpu_maximum":{"type":"number","description_kind":"plain","optional":true},"required_gpu_minimum":{"type":"number","description_kind":"plain","optional":true},"required_memory_maximum":{"type":"number","description_kind":"plain","required":true},"required_memory_minimum":{"type":"number","description_kind":"plain","required":true},"required_vcpu_maximum":{"type":"number","description_kind":"plain","required":true},"required_vcpu_minimum":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"resource_tag_specification":{"nesting_mode":"list","block":{"attributes":{"should_tag_amis":{"type":"bool","description_kind":"plain","optional":true},"should_tag_enis":{"type":"bool","description_kind":"plain","optional":true},"should_tag_snapshots":{"type":"bool","description_kind":"plain","optional":true},"should_tag_volumes":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"revert_to_spot":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true},"time_windows":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","optional":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"step_adjustments":{"nesting_mode":"set","block":{"attributes":{"threshold":{"type":"number","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_strategy":{"nesting_mode":"list","block":{"attributes":{"terminate_at_end_of_billing_hour":{"type":"bool","description_kind":"plain","optional":true},"termination_policy":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaling_target_policy":{"nesting_mode":"set","block":{"attributes":{"cooldown":{"type":"number","description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"max_capacity_per_scale":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","optional":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"predictive_mode":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","optional":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"step_adjustments":{"nesting_mode":"set","block":{"attributes":{"threshold":{"type":"number","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"adjustment_percentage":{"type":"string","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"string","description_kind":"plain","optional":true},"cron_expression":{"type":"string","description_kind":"plain","optional":true},"frequency":{"type":"string","description_kind":"plain","optional":true},"grace_period":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_capacity":{"type":"string","description_kind":"plain","optional":true},"min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_max_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_target_capacity":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"target_capacity":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"signal":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"timeout":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"stateful_deallocation":{"nesting_mode":"list","block":{"attributes":{"should_delete_images":{"type":"bool","description_kind":"plain","optional":true},"should_delete_network_interfaces":{"type":"bool","description_kind":"plain","optional":true},"should_delete_snapshots":{"type":"bool","description_kind":"plain","optional":true},"should_delete_volumes":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"stateful_instance_action":{"nesting_mode":"list","block":{"attributes":{"stateful_instance_id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"auto_apply_tags":{"type":"bool","description_kind":"plain","optional":true},"should_resume_stateful":{"type":"bool","description_kind":"plain","required":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_size_percentage":{"type":"number","description_kind":"plain","required":true},"grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_type":{"type":"string","description_kind":"plain","optional":true},"wait_for_roll_percentage":{"type":"number","description_kind":"plain","optional":true},"wait_for_roll_timeout":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"strategy":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"should_drain_instances":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"on_failure":{"nesting_mode":"list","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","required":true},"batch_num":{"type":"number","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"should_decrement_target_capacity":{"type":"bool","description_kind":"plain","optional":true},"should_handle_all_batches":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_elastigroup_aws_beanstalk":{"version":0,"block":{"attributes":{"beanstalk_environment_id":{"type":"string","description_kind":"plain","optional":true},"beanstalk_environment_name":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_types_spot":{"type":["list","string"],"description_kind":"plain","required":true},"maintenance":{"type":"string","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","required":true},"min_size":{"type":"number","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"product":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","required":true}},"block_types":{"deployment_preferences":{"nesting_mode":"list","block":{"attributes":{"automatic_roll":{"type":"bool","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"strategy":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true},"should_drain_instances":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"managed_actions":{"nesting_mode":"list","block":{"block_types":{"platform_update":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","optional":true},"time_window":{"type":"string","description_kind":"plain","optional":true},"update_level":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"adjustment_percentage":{"type":"string","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"string","description_kind":"plain","optional":true},"cron_expression":{"type":"string","description_kind":"plain","optional":true},"frequency":{"type":"string","description_kind":"plain","optional":true},"grace_period":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_capacity":{"type":"string","description_kind":"plain","optional":true},"min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_max_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_target_capacity":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"target_capacity":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_elastigroup_aws_suspension":{"version":0,"block":{"attributes":{"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"suspension":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"spotinst_elastigroup_azure_v3":{"version":0,"block":{"attributes":{"availability_vs_cost":{"type":"number","description_kind":"plain","optional":true},"custom_data":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"fallback_to_on_demand":{"type":"bool","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"on_demand_count":{"type":"number","description_kind":"plain","optional":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"os":{"type":"string","description_kind":"plain","required":true},"preferred_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"vm_name_prefix":{"type":"string","description_kind":"plain","optional":true},"zones":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"boot_diagnostics":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","required":true},"storage_url":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"capacity_reservation":{"nesting_mode":"list","block":{"attributes":{"should_utilize":{"type":"bool","description_kind":"plain","required":true},"utilization_strategy":{"type":"string","description_kind":"plain","required":true}},"block_types":{"capacity_reservation_groups":{"nesting_mode":"set","block":{"attributes":{"crg_name":{"type":"string","description_kind":"plain","required":true},"crg_resource_group_name":{"type":"string","description_kind":"plain","required":true},"crg_should_prioritize":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"data_disk":{"nesting_mode":"list","block":{"attributes":{"lun":{"type":"number","description_kind":"plain","required":true},"size_gb":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"extensions":{"nesting_mode":"list","block":{"attributes":{"api_version":{"type":"string","description_kind":"plain","required":true},"enable_automatic_upgrade":{"type":"bool","description_kind":"plain","optional":true},"minor_version_auto_upgrade":{"type":"bool","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"protected_settings":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"public_settings":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"publisher":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"protected_settings_from_key_vault":{"nesting_mode":"list","block":{"attributes":{"secret_url":{"type":"string","description_kind":"plain","required":true},"source_vault":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"health":{"nesting_mode":"list","block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_types":{"type":["list","string"],"description_kind":"plain","optional":true},"unhealthy_duration":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"image":{"nesting_mode":"list","block":{"block_types":{"custom":{"nesting_mode":"list","block":{"attributes":{"image_name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"gallery_image":{"nesting_mode":"list","block":{"attributes":{"gallery_name":{"type":"string","description_kind":"plain","required":true},"image_name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"spot_account_id":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"marketplace":{"nesting_mode":"list","block":{"attributes":{"offer":{"type":"string","description_kind":"plain","required":true},"publisher":{"type":"string","description_kind":"plain","required":true},"sku":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"load_balancer":{"nesting_mode":"set","block":{"attributes":{"backend_pool_names":{"type":["list","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"sku":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"login":{"nesting_mode":"list","block":{"attributes":{"password":{"type":"string","description_kind":"plain","optional":true},"ssh_public_key":{"type":"string","description_kind":"plain","optional":true},"user_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"managed_service_identity":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network":{"nesting_mode":"list","block":{"attributes":{"resource_group_name":{"type":"string","description_kind":"plain","required":true},"virtual_network_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"network_interfaces":{"nesting_mode":"list","block":{"attributes":{"assign_public_ip":{"type":"bool","description_kind":"plain","required":true},"enable_ip_forwarding":{"type":"bool","description_kind":"plain","optional":true},"is_primary":{"type":"bool","description_kind":"plain","required":true},"private_ip_addresses":{"type":["list","string"],"description_kind":"plain","optional":true},"public_ip_sku":{"type":"string","description_kind":"plain","optional":true},"subnet_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"additional_ip_configs":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"private_ip_version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"application_security_group":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"security_group":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"resource_group_name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"os_disk":{"nesting_mode":"list","block":{"attributes":{"size_gb":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"proximity_placement_groups":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"revert_to_spot":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scaling_down_policy":{"nesting_mode":"list","block":{"attributes":{"cooldown":{"type":"number","description_kind":"plain","required":true},"evaluation_periods":{"type":"number","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","required":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","required":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_up_policy":{"nesting_mode":"list","block":{"attributes":{"cooldown":{"type":"number","description_kind":"plain","required":true},"evaluation_periods":{"type":"number","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","required":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","required":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scheduling_task":{"nesting_mode":"list","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"adjustment_percentage":{"type":"string","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"string","description_kind":"plain","optional":true},"cron_expression":{"type":"string","description_kind":"plain","required":true},"grace_period":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"scale_max_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_target_capacity":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"secret":{"nesting_mode":"set","block":{"block_types":{"source_vault":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"vault_certificates":{"nesting_mode":"list","block":{"attributes":{"certificate_store":{"type":"string","description_kind":"plain","required":true},"certificate_url":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"security":{"nesting_mode":"list","block":{"attributes":{"confidential_os_disk_encryption":{"type":"bool","description_kind":"plain","optional":true},"secure_boot_enabled":{"type":"bool","description_kind":"plain","optional":true},"security_type":{"type":"string","description_kind":"plain","optional":true},"vtpm_enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"signal":{"nesting_mode":"list","block":{"attributes":{"timeout":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"vm_sizes":{"nesting_mode":"list","block":{"attributes":{"od_sizes":{"type":["list","string"],"description_kind":"plain","required":true},"preferred_spot_sizes":{"type":["list","string"],"description_kind":"plain","optional":true},"spot_sizes":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"spotinst_elastigroup_gcp":{"version":0,"block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","optional":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","deprecated":true,"optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","required":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"health_check_grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_type":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name_prefix":{"type":"string","description_kind":"plain","optional":true},"instance_types_ondemand":{"type":"string","description_kind":"plain","optional":true},"instance_types_preemptible":{"type":["list","string"],"description_kind":"plain","optional":true},"ip_forwarding":{"type":"bool","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"ondemand_count":{"type":"number","description_kind":"plain","optional":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"preemptible_percentage":{"type":"number","description_kind":"plain","optional":true},"provisioning_model":{"type":"string","description_kind":"plain","optional":true},"service_account":{"type":"string","description_kind":"plain","optional":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"startup_script":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description_kind":"plain","optional":true},"unhealthy_duration":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"backend_services":{"nesting_mode":"set","block":{"attributes":{"location_type":{"type":"string","description_kind":"plain","optional":true},"scheme":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"named_ports":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"ports":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"disk":{"nesting_mode":"set","block":{"attributes":{"auto_delete":{"type":"bool","description_kind":"plain","optional":true},"boot":{"type":"bool","description_kind":"plain","optional":true},"device_name":{"type":"string","description_kind":"plain","optional":true},"interface":{"type":"string","description_kind":"plain","optional":true},"mode":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"initialize_params":{"nesting_mode":"set","block":{"attributes":{"disk_size_gb":{"type":"string","description_kind":"plain","optional":true},"disk_type":{"type":"string","description_kind":"plain","optional":true},"source_image":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"gpu":{"nesting_mode":"set","block":{"attributes":{"count":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"instance_types_custom":{"nesting_mode":"list","block":{"attributes":{"memory_gib":{"type":"number","description_kind":"plain","required":true},"vcpu":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"integration_docker_swarm":{"nesting_mode":"list","block":{"attributes":{"master_host":{"type":"string","description_kind":"plain","required":true},"master_port":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"integration_gke":{"nesting_mode":"list","block":{"attributes":{"auto_update":{"type":"bool","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"metadata":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network_interface":{"nesting_mode":"list","block":{"attributes":{"network":{"type":"string","description_kind":"plain","required":true}},"block_types":{"access_configs":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"alias_ip_ranges":{"nesting_mode":"set","block":{"attributes":{"ip_cidr_range":{"type":"string","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"revert_to_preemptible":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_capacity":{"type":"string","description_kind":"plain","optional":true},"min_capacity":{"type":"string","description_kind":"plain","optional":true},"target_capacity":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"subnets":{"nesting_mode":"set","block":{"attributes":{"region":{"type":"string","description_kind":"plain","required":true},"subnet_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_elastigroup_gke":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"cluster_zone_name":{"type":"string","description_kind":"plain","required":true},"desired_capacity":{"type":"number","description_kind":"plain","required":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name_prefix":{"type":"string","description_kind":"plain","optional":true},"instance_types_ondemand":{"type":"string","description_kind":"plain","optional":true},"instance_types_preemptible":{"type":["list","string"],"description_kind":"plain","optional":true},"ip_forwarding":{"type":"bool","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"node_image":{"type":"string","description_kind":"plain","optional":true},"ondemand_count":{"type":"number","description_kind":"plain","optional":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"preemptible_percentage":{"type":"number","description_kind":"plain","optional":true},"provisioning_model":{"type":"string","description_kind":"plain","optional":true},"service_account":{"type":"string","description_kind":"plain","optional":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"startup_script":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"backend_services":{"nesting_mode":"set","block":{"attributes":{"location_type":{"type":"string","description_kind":"plain","optional":true},"scheme":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"named_ports":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"ports":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"disk":{"nesting_mode":"set","block":{"attributes":{"auto_delete":{"type":"bool","description_kind":"plain","optional":true},"boot":{"type":"bool","description_kind":"plain","optional":true},"device_name":{"type":"string","description_kind":"plain","optional":true},"interface":{"type":"string","description_kind":"plain","optional":true},"mode":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"initialize_params":{"nesting_mode":"set","block":{"attributes":{"disk_size_gb":{"type":"string","description_kind":"plain","optional":true},"disk_type":{"type":"string","description_kind":"plain","optional":true},"source_image":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"gpu":{"nesting_mode":"set","block":{"attributes":{"count":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"instance_types_custom":{"nesting_mode":"list","block":{"attributes":{"memory_gib":{"type":"number","description_kind":"plain","required":true},"vcpu":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"integration_docker_swarm":{"nesting_mode":"list","block":{"attributes":{"master_host":{"type":"string","description_kind":"plain","required":true},"master_port":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"integration_gke":{"nesting_mode":"list","block":{"attributes":{"auto_update":{"type":"bool","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"metadata":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network_interface":{"nesting_mode":"list","block":{"attributes":{"network":{"type":"string","description_kind":"plain","required":true}},"block_types":{"access_configs":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"alias_ip_ranges":{"nesting_mode":"set","block":{"attributes":{"ip_cidr_range":{"type":"string","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"revert_to_preemptible":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_health_check":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"proxy_address":{"type":"string","description_kind":"plain","required":true},"proxy_port":{"type":"number","description_kind":"plain","optional":true},"resource_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"check":{"nesting_mode":"list","block":{"attributes":{"end_point":{"type":"string","description_kind":"plain","optional":true},"endpoint":{"type":"string","description_kind":"plain","optional":true},"healthy":{"type":"number","description_kind":"plain","required":true},"interval":{"type":"number","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"time_out":{"type":"number","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"unhealthy":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_managed_instance_aws":{"version":0,"block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","optional":true},"block_devices_mode":{"type":"string","description_kind":"plain","optional":true},"cpu_credits":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"ebs_optimized":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"elastic_ip":{"type":"string","description_kind":"plain","optional":true},"enable_monitoring":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_type":{"type":"string","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"instance_types":{"type":["list","string"],"description_kind":"plain","required":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"life_cycle":{"type":"string","description_kind":"plain","optional":true},"minimum_instance_lifetime":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"orientation":{"type":"string","description_kind":"plain","optional":true},"persist_block_devices":{"type":"bool","description_kind":"plain","required":true},"persist_private_ip":{"type":"bool","description_kind":"plain","optional":true},"persist_root_device":{"type":"bool","description_kind":"plain","optional":true},"placement_tenancy":{"type":"string","description_kind":"plain","optional":true},"preferred_type":{"type":"string","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","optional":true},"product":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true},"security_group_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","required":true},"unhealthy_duration":{"type":"number","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"delete":{"nesting_mode":"list","block":{"attributes":{"ami_backup_should_delete_images":{"type":"bool","description_kind":"plain","optional":true},"deallocation_config_should_delete_images":{"type":"bool","description_kind":"plain","optional":true},"should_delete_network_interfaces":{"type":"bool","description_kind":"plain","optional":true},"should_delete_snapshots":{"type":"bool","description_kind":"plain","optional":true},"should_delete_volumes":{"type":"bool","description_kind":"plain","optional":true},"should_terminate_instance":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"integration_route53":{"nesting_mode":"list","block":{"block_types":{"domains":{"nesting_mode":"set","block":{"attributes":{"hosted_zone_id":{"type":"string","description_kind":"plain","required":true},"record_set_type":{"type":"string","description_kind":"plain","optional":true},"spotinst_acct_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"record_sets":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"use_public_dns":{"type":"bool","description_kind":"plain","optional":true},"use_public_ip":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"load_balancers":{"nesting_mode":"set","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"managed_instance_action":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true},"instance_metadata_tags":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"network_interface":{"nesting_mode":"set","block":{"attributes":{"associate_ipv6_address":{"type":"bool","description_kind":"plain","optional":true},"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"device_index":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"resource_tag_specification":{"nesting_mode":"list","block":{"attributes":{"should_tag_amis":{"type":"bool","description_kind":"plain","optional":true},"should_tag_enis":{"type":"bool","description_kind":"plain","optional":true},"should_tag_snapshots":{"type":"bool","description_kind":"plain","optional":true},"should_tag_volumes":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"revert_to_spot":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","optional":true},"frequency":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_mrscaler_aws":{"version":0,"block":{"attributes":{"additional_info":{"type":"string","description_kind":"plain","optional":true},"additional_primary_security_groups":{"type":["list","string"],"description_kind":"plain","optional":true},"additional_replica_security_groups":{"type":["list","string"],"description_kind":"plain","optional":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"core_desired_capacity":{"type":"number","description_kind":"plain","optional":true},"core_ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"core_instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"core_lifecycle":{"type":"string","description_kind":"plain","optional":true},"core_max_size":{"type":"number","description_kind":"plain","optional":true},"core_min_size":{"type":"number","description_kind":"plain","optional":true},"core_unit":{"type":"string","description_kind":"plain","optional":true},"custom_ami_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"ebs_root_volume_size":{"type":"number","description_kind":"plain","optional":true},"ec2_key_name":{"type":"string","description_kind":"plain","optional":true},"expose_cluster_id":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_flow_role":{"type":"string","description_kind":"plain","optional":true},"keep_job_flow_alive":{"type":"bool","description_kind":"plain","optional":true},"log_uri":{"type":"string","description_kind":"plain","optional":true},"managed_primary_security_group":{"type":"string","description_kind":"plain","optional":true},"managed_replica_security_group":{"type":"string","description_kind":"plain","optional":true},"master_ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"master_instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"master_lifecycle":{"type":"string","description_kind":"plain","optional":true},"master_target":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"output_cluster_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"release_label":{"type":"string","description_kind":"plain","optional":true},"repo_upgrade_on_boot":{"type":"string","description_kind":"plain","optional":true},"retries":{"type":"number","description_kind":"plain","optional":true},"security_config":{"type":"string","description_kind":"plain","optional":true},"service_access_security_group":{"type":"string","description_kind":"plain","optional":true},"service_role":{"type":"string","description_kind":"plain","optional":true},"strategy":{"type":"string","description_kind":"plain","required":true},"task_desired_capacity":{"type":"number","description_kind":"plain","optional":true},"task_ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"task_instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"task_lifecycle":{"type":"string","description_kind":"plain","optional":true},"task_max_size":{"type":"number","description_kind":"plain","optional":true},"task_min_size":{"type":"number","description_kind":"plain","optional":true},"task_unit":{"type":"string","description_kind":"plain","optional":true},"termination_protected":{"type":"bool","description_kind":"plain","optional":true},"visible_to_all_users":{"type":"bool","description_kind":"plain","deprecated":true,"optional":true}},"block_types":{"applications":{"nesting_mode":"set","block":{"attributes":{"args":{"type":["list","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"bootstrap_actions_file":{"nesting_mode":"set","block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"configurations_file":{"nesting_mode":"set","block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"core_ebs_block_device":{"nesting_mode":"set","block":{"attributes":{"iops":{"type":"number","description_kind":"plain","optional":true},"size_in_gb":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true},"volumes_per_instance":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"core_scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"dimensions":{"type":["map","string"],"description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"core_scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"dimensions":{"type":["map","string"],"description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"instance_weights":{"nesting_mode":"set","block":{"attributes":{"instance_type":{"type":"string","description_kind":"plain","required":true},"weighted_capacity":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"master_ebs_block_device":{"nesting_mode":"set","block":{"attributes":{"iops":{"type":"number","description_kind":"plain","optional":true},"size_in_gb":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true},"volumes_per_instance":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"provisioning_timeout":{"nesting_mode":"list","block":{"attributes":{"timeout":{"type":"number","description_kind":"plain","required":true},"timeout_action":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"cron":{"type":"string","description_kind":"plain","required":true},"desired_capacity":{"type":"string","description_kind":"plain","optional":true},"instance_group_type":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_capacity":{"type":"string","description_kind":"plain","optional":true},"min_capacity":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"steps_file":{"nesting_mode":"set","block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"task_ebs_block_device":{"nesting_mode":"set","block":{"attributes":{"iops":{"type":"number","description_kind":"plain","optional":true},"size_in_gb":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true},"volumes_per_instance":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"task_scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"dimensions":{"type":["map","string"],"description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"task_scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"dimensions":{"type":["map","string"],"description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"termination_policies":{"nesting_mode":"list","block":{"block_types":{"statements":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true},"period":{"type":"number","description_kind":"plain","optional":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_ocean_aks_np":{"version":0,"block":{"attributes":{"aks_cluster_name":{"type":"string","description_kind":"plain","required":true},"aks_infrastructure_resource_group_name":{"type":"string","description_kind":"plain","required":true},"aks_region":{"type":"string","description_kind":"plain","required":true},"aks_resource_group_name":{"type":"string","description_kind":"plain","required":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","required":true},"controller_cluster_id":{"type":"string","description_kind":"plain","required":true},"enable_node_public_ip":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubernetes_version":{"type":"string","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description_kind":"plain","optional":true},"max_count":{"type":"number","description_kind":"plain","optional":true},"max_pods_per_node":{"type":"number","description_kind":"plain","optional":true},"min_count":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os_disk_size_gb":{"type":"number","description_kind":"plain","optional":true},"os_disk_type":{"type":"string","description_kind":"plain","optional":true},"os_sku":{"type":"string","description_kind":"plain","optional":true},"os_type":{"type":"string","description_kind":"plain","optional":true},"pod_subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vnet_subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"block_types":{"automatic":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"filters":{"nesting_mode":"list","block":{"attributes":{"accelerated_networking":{"type":"string","description_kind":"plain","optional":true},"architectures":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_performance":{"type":"string","description_kind":"plain","optional":true},"exclude_series":{"type":["set","string"],"description_kind":"plain","optional":true},"gpu_types":{"type":["set","string"],"description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_nics":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"series":{"type":["set","string"],"description_kind":"plain","optional":true},"vm_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"health":{"nesting_mode":"list","block":{"attributes":{"grace_period":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"linux_os_config":{"nesting_mode":"list","block":{"block_types":{"sysctls":{"nesting_mode":"list","block":{"attributes":{"vm_max_map_count":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scheduling":{"nesting_mode":"list","block":{"block_types":{"shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"tasks":{"nesting_mode":"list","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"block_types":{"parameters_cluster_roll":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true},"respect_restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"vng_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"taints":{"nesting_mode":"set","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"node_names":{"type":["list","string"],"description_kind":"plain","optional":true},"node_pool_names":{"type":["list","string"],"description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true},"respect_restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"vng_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_aks_np_virtual_node_group":{"version":0,"block":{"attributes":{"availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"enable_node_public_ip":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubernetes_version":{"type":"string","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description_kind":"plain","optional":true},"max_count":{"type":"number","description_kind":"plain","optional":true},"max_pods_per_node":{"type":"number","description_kind":"plain","optional":true},"min_count":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"ocean_id":{"type":"string","description_kind":"plain","required":true},"os_disk_size_gb":{"type":"number","description_kind":"plain","optional":true},"os_disk_type":{"type":"string","description_kind":"plain","optional":true},"os_sku":{"type":"string","description_kind":"plain","optional":true},"os_type":{"type":"string","description_kind":"plain","optional":true},"pod_subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vnet_subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"filters":{"nesting_mode":"list","block":{"attributes":{"accelerated_networking":{"type":"string","description_kind":"plain","optional":true},"architectures":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_performance":{"type":"string","description_kind":"plain","optional":true},"exclude_series":{"type":["set","string"],"description_kind":"plain","optional":true},"gpu_types":{"type":["set","string"],"description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_nics":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"series":{"type":["set","string"],"description_kind":"plain","optional":true},"vm_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"linux_os_config":{"nesting_mode":"list","block":{"block_types":{"sysctls":{"nesting_mode":"list","block":{"attributes":{"vm_max_map_count":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"taints":{"nesting_mode":"set","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"node_names":{"type":["list","string"],"description_kind":"plain","optional":true},"node_pool_names":{"type":["list","string"],"description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true},"respect_restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"vng_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_aws":{"version":0,"block":{"attributes":{"associate_ipv6_address":{"type":"bool","description_kind":"plain","optional":true},"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"blacklist":{"type":["list","string"],"description_kind":"plain","optional":true},"controller_id":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true,"computed":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_unhealthy_duration_before_replacement":{"type":"number","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"key_name":{"type":"string","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"monitoring":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true},"reserved_enis":{"type":"number","description_kind":"plain","optional":true},"root_volume_size":{"type":"number","description_kind":"plain","optional":true},"security_groups":{"type":["list","string"],"description_kind":"plain","required":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"spread_nodes_by":{"type":"string","description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","required":true},"use_as_template_only":{"type":"bool","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true},"whitelist":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"attach_load_balancer":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscaler":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"enable_automatic_and_manual_headroom":{"type":"bool","description_kind":"plain","optional":true},"extended_resource_definitions":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"is_aggressive_scale_down_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_iops":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"cluster_orientation":{"nesting_mode":"list","block":{"attributes":{"availability_vs_cost":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"detach_load_balancer":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"filters":{"nesting_mode":"list","block":{"attributes":{"architectures":{"type":["set","string"],"description_kind":"plain","optional":true},"categories":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_types":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_families":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_metal":{"type":"bool","description_kind":"plain","optional":true},"hypervisor":{"type":["set","string"],"description_kind":"plain","optional":true},"include_families":{"type":["set","string"],"description_kind":"plain","optional":true},"is_ena_supported":{"type":"string","description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_network_performance":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_enis":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_network_performance":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"root_device_types":{"type":["set","string"],"description_kind":"plain","optional":true},"virtualization_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"instance_metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"load_balancers":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"logging":{"nesting_mode":"list","block":{"block_types":{"export":{"nesting_mode":"list","block":{"block_types":{"s3":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"resource_tag_specification":{"nesting_mode":"list","block":{"attributes":{"should_tag_volumes":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scheduled_task":{"nesting_mode":"list","block":{"block_types":{"shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"tasks":{"nesting_mode":"list","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"block_types":{"ami_auto_update":{"nesting_mode":"list","block":{"attributes":{"apply_roll":{"type":"bool","description_kind":"plain","optional":true},"minor_version":{"type":"bool","description_kind":"plain","optional":true},"patch":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"ami_auto_update_cluster_roll":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"parameters_cluster_roll":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"auto_apply_tags":{"type":"bool","description_kind":"plain","optional":true},"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"conditioned_roll_params":{"type":["list","string"],"description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","required":true},"launch_spec_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_aws_extended_resource_definition":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"resource_mapping":{"type":["map","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_ocean_aws_launch_spec":{"version":0,"block":{"attributes":{"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"ocean_id":{"type":"string","description_kind":"plain","required":true},"preferred_od_types":{"type":["list","string"],"description_kind":"plain","optional":true},"preferred_spot_types":{"type":["list","string"],"description_kind":"plain","optional":true},"reserved_enis":{"type":"number","description_kind":"plain","optional":true},"restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"root_volume_size":{"type":"number","description_kind":"plain","optional":true},"security_groups":{"type":["list","string"],"description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"autoscale_headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_headrooms_automatic":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","optional":true},"no_device":{"type":"string","description_kind":"plain","optional":true},"virtual_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"create_options":{"nesting_mode":"list","block":{"attributes":{"initial_nodes":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"delete_options":{"nesting_mode":"list","block":{"attributes":{"delete_nodes":{"type":"bool","description_kind":"plain","optional":true},"force_delete":{"type":"bool","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"elastic_ip_pool":{"nesting_mode":"set","block":{"block_types":{"tag_selector":{"nesting_mode":"list","block":{"attributes":{"tag_key":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ephemeral_storage":{"nesting_mode":"list","block":{"attributes":{"ephemeral_storage_device_name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"images":{"nesting_mode":"list","block":{"attributes":{"image_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"instance_metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"instance_types_filters":{"nesting_mode":"list","block":{"attributes":{"categories":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_types":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_families":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_metal":{"type":"bool","description_kind":"plain","optional":true},"hypervisor":{"type":["set","string"],"description_kind":"plain","optional":true},"include_families":{"type":["set","string"],"description_kind":"plain","optional":true},"is_ena_supported":{"type":"string","description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_network_performance":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_enis":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_network_performance":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"root_device_types":{"type":["set","string"],"description_kind":"plain","optional":true},"virtualization_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_instance_count":{"type":"number","description_kind":"plain","optional":true},"min_instance_count":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scheduling_shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scheduling_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"task_headroom":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"strategy":{"nesting_mode":"list","block":{"attributes":{"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"taints":{"nesting_mode":"set","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_size_percentage":{"type":"number","description_kind":"plain","required":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_ecs":{"version":0,"block":{"attributes":{"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"blacklist":{"type":["list","string"],"description_kind":"plain","optional":true},"cluster_name":{"type":"string","description_kind":"plain","required":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true,"computed":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"monitoring":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","required":true},"security_group_ids":{"type":["list","string"],"description_kind":"plain","required":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","required":true},"use_as_template_only":{"type":"bool","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true},"whitelist":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true},"enable_automatic_and_manual_headroom":{"type":"bool","description_kind":"plain","optional":true},"is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"should_scale_down_non_service_tasks":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"down":{"nesting_mode":"list","block":{"attributes":{"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","required":true},"no_device":{"type":"string","description_kind":"plain","optional":true},"virtual_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"cluster_orientation":{"nesting_mode":"list","block":{"attributes":{"availability_vs_cost":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"filters":{"nesting_mode":"list","block":{"attributes":{"architectures":{"type":["set","string"],"description_kind":"plain","optional":true},"categories":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_types":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_families":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_metal":{"type":"bool","description_kind":"plain","optional":true},"hypervisor":{"type":["set","string"],"description_kind":"plain","optional":true},"include_families":{"type":["set","string"],"description_kind":"plain","optional":true},"is_ena_supported":{"type":"string","description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_network_performance":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_enis":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_network_performance":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"root_device_types":{"type":["set","string"],"description_kind":"plain","optional":true},"virtualization_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"instance_metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"logging":{"nesting_mode":"list","block":{"block_types":{"export":{"nesting_mode":"list","block":{"block_types":{"s3":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"optimize_images":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true},"should_optimize_ecs_ami":{"type":"bool","description_kind":"plain","required":true},"time_windows":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"set","block":{"block_types":{"shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"tasks":{"nesting_mode":"list","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"auto_apply_tags":{"type":"bool","description_kind":"plain","optional":true},"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_ecs_launch_spec":{"version":0,"block":{"attributes":{"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"ocean_id":{"type":"string","description_kind":"plain","required":true},"preferred_spot_types":{"type":["list","string"],"description_kind":"plain","optional":true},"restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"security_group_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"attributes":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","required":true},"no_device":{"type":"string","description_kind":"plain","optional":true},"virtual_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"images":{"nesting_mode":"list","block":{"attributes":{"image_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"instance_metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scheduling_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"task_headroom":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"strategy":{"nesting_mode":"set","block":{"attributes":{"spot_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_ocean_gke_import":{"version":0,"block":{"attributes":{"blacklist":{"type":["list","string"],"description_kind":"plain","optional":true},"cluster_controller_id":{"type":"string","description_kind":"plain","computed":true},"cluster_name":{"type":"string","description_kind":"plain","required":true},"controller_cluster_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","required":true},"max_size":{"type":"number","description_kind":"plain","optional":true},"min_size":{"type":"number","description_kind":"plain","optional":true},"root_volume_type":{"type":"string","description_kind":"plain","optional":true},"use_as_template_only":{"type":"bool","description_kind":"plain","optional":true},"whitelist":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true},"enable_automatic_and_manual_headroom":{"type":"bool","description_kind":"plain","optional":true},"is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"is_aggressive_scale_down_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"backend_services":{"nesting_mode":"set","block":{"attributes":{"location_type":{"type":"string","description_kind":"plain","optional":true},"scheme":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"named_ports":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"ports":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"filters":{"nesting_mode":"list","block":{"attributes":{"exclude_families":{"type":["set","string"],"description_kind":"plain","optional":true},"include_families":{"type":["set","string"],"description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"list","block":{"block_types":{"shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"tasks":{"nesting_mode":"list","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"task_parameters":{"nesting_mode":"list","block":{"block_types":{"cluster_roll":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_secure_boot":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"strategy":{"nesting_mode":"list","block":{"attributes":{"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"preemptible_percentage":{"type":"number","description_kind":"plain","optional":true},"provisioning_model":{"type":"string","description_kind":"plain","optional":true},"should_utilize_commitments":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","required":true},"launch_spec_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_gke_launch_spec":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_types":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"node_pool_name":{"type":"string","description_kind":"plain","optional":true},"ocean_id":{"type":"string","description_kind":"plain","required":true},"restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"root_volume_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"root_volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source_image":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscale_headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_headrooms_automatic":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"create_options":{"nesting_mode":"list","block":{"attributes":{"initial_nodes":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"metadata":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"network_interfaces":{"nesting_mode":"set","block":{"attributes":{"network":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"access_configs":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"alias_ip_ranges":{"nesting_mode":"set","block":{"attributes":{"ip_cidr_range":{"type":"string","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_instance_count":{"type":"number","description_kind":"plain","optional":true},"min_instance_count":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scheduling_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"task_headroom":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"shielded_instance_config":{"nesting_mode":"set","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_secure_boot":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"storage":{"nesting_mode":"set","block":{"attributes":{"local_ssd_count":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"strategy":{"nesting_mode":"list","block":{"attributes":{"preemptible_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"taints":{"nesting_mode":"set","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_size_percentage":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_gke_launch_spec_import":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"node_pool_name":{"type":"string","description_kind":"plain","required":true},"ocean_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_ocean_right_sizing_rule":{"version":0,"block":{"attributes":{"exclude_preliminary_recommendations":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ocean_id":{"type":"string","description_kind":"plain","optional":true},"restart_replicas":{"type":"string","description_kind":"plain","optional":true},"rule_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"attach_workloads":{"nesting_mode":"set","block":{"block_types":{"namespaces":{"nesting_mode":"set","block":{"attributes":{"namespace_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"workloads":{"nesting_mode":"set","block":{"attributes":{"regex_name":{"type":"string","description_kind":"plain","optional":true},"workload_name":{"type":"string","description_kind":"plain","optional":true},"workload_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"detach_workloads":{"nesting_mode":"set","block":{"block_types":{"namespaces":{"nesting_mode":"set","block":{"attributes":{"namespace_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"workloads":{"nesting_mode":"set","block":{"attributes":{"regex_name":{"type":"string","description_kind":"plain","optional":true},"workload_name":{"type":"string","description_kind":"plain","optional":true},"workload_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"recommendation_application_boundaries":{"nesting_mode":"list","block":{"attributes":{"cpu_max":{"type":"number","description_kind":"plain","optional":true},"cpu_min":{"type":"number","description_kind":"plain","optional":true},"memory_max":{"type":"number","description_kind":"plain","optional":true},"memory_min":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"recommendation_application_hpa":{"nesting_mode":"set","block":{"attributes":{"allow_hpa_recommendations":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"recommendation_application_intervals":{"nesting_mode":"set","block":{"attributes":{"repetition_basis":{"type":"string","description_kind":"plain","required":true}},"block_types":{"monthly_repetition_basis":{"nesting_mode":"set","block":{"attributes":{"interval_months":{"type":["list","number"],"description_kind":"plain","required":true},"week_of_the_month":{"type":["list","string"],"description_kind":"plain","required":true}},"block_types":{"weekly_repetition_basis":{"nesting_mode":"set","block":{"attributes":{"interval_days":{"type":["list","string"],"description_kind":"plain","required":true},"interval_hours_end_time":{"type":"string","description_kind":"plain","required":true},"interval_hours_start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"weekly_repetition_basis":{"nesting_mode":"set","block":{"attributes":{"interval_days":{"type":["list","string"],"description_kind":"plain","required":true},"interval_hours_end_time":{"type":"string","description_kind":"plain","required":true},"interval_hours_start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1},"recommendation_application_min_threshold":{"nesting_mode":"set","block":{"attributes":{"cpu_percentage":{"type":"number","description_kind":"plain","optional":true},"memory_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"recommendation_application_overhead_values":{"nesting_mode":"set","block":{"attributes":{"cpu_percentage":{"type":"number","description_kind":"plain","optional":true},"memory_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_ocean_spark":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ocean_cluster_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"compute":{"nesting_mode":"list","block":{"attributes":{"create_vngs":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"use_taints":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"ingress":{"nesting_mode":"list","block":{"attributes":{"service_annotations":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true}},"block_types":{"controller":{"nesting_mode":"list","block":{"attributes":{"managed":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"custom_endpoint":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"load_balancer":{"nesting_mode":"list","block":{"attributes":{"managed":{"type":"bool","description_kind":"plain","optional":true},"service_annotations":{"type":["map","string"],"description_kind":"plain","optional":true},"target_group_arn":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"private_link":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","optional":true},"vpc_endpoint_service":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"log_collection":{"nesting_mode":"list","block":{"attributes":{"collect_app_logs":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"spark":{"nesting_mode":"list","block":{"attributes":{"additional_app_namespaces":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"webhook":{"nesting_mode":"list","block":{"attributes":{"host_network_ports":{"type":["list","number"],"description_kind":"plain","optional":true,"computed":true},"use_host_network":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_spark_virtual_node_group":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ocean_spark_cluster_id":{"type":"string","description_kind":"plain","required":true},"virtual_node_group_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_oceancd_rollout_spec":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rollout_spec_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"failure_policy":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"spot_deployment":{"nesting_mode":"list","block":{"attributes":{"spot_deployment_cluster_id":{"type":"string","description_kind":"plain","optional":true},"spot_deployment_name":{"type":"string","description_kind":"plain","optional":true},"spot_deployment_namespace":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"spot_deployments":{"nesting_mode":"set","block":{"attributes":{"spot_deployments_cluster_id":{"type":"string","description_kind":"plain","optional":true},"spot_deployments_name":{"type":"string","description_kind":"plain","optional":true},"spot_deployments_namespace":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"strategy":{"nesting_mode":"list","block":{"attributes":{"strategy_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"args":{"nesting_mode":"set","block":{"attributes":{"arg_name":{"type":"string","description_kind":"plain","required":true},"arg_value":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"value_from":{"nesting_mode":"list","block":{"block_types":{"field_ref":{"nesting_mode":"list","block":{"attributes":{"field_path":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"traffic":{"nesting_mode":"list","block":{"attributes":{"canary_service":{"type":"string","description_kind":"plain","optional":true},"stable_service":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"alb":{"nesting_mode":"list","block":{"attributes":{"alb_annotation_prefix":{"type":"string","description_kind":"plain","optional":true},"alb_ingress":{"type":"string","description_kind":"plain","required":true},"alb_root_service":{"type":"string","description_kind":"plain","required":true},"service_port":{"type":"number","description_kind":"plain","required":true}},"block_types":{"stickiness_config":{"nesting_mode":"list","block":{"attributes":{"duration_seconds":{"type":"number","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"ambassador":{"nesting_mode":"list","block":{"attributes":{"mappings":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"istio":{"nesting_mode":"list","block":{"block_types":{"destination_rule":{"nesting_mode":"list","block":{"attributes":{"canary_subset_name":{"type":"string","description_kind":"plain","required":true},"destination_rule_name":{"type":"string","description_kind":"plain","required":true},"stable_subset_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"virtual_services":{"nesting_mode":"set","block":{"attributes":{"virtual_service_name":{"type":"string","description_kind":"plain","required":true},"virtual_service_routes":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"tls_routes":{"nesting_mode":"set","block":{"attributes":{"port":{"type":"number","description_kind":"plain","optional":true},"sni_hosts":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"nginx":{"nesting_mode":"list","block":{"attributes":{"nginx_annotation_prefix":{"type":"string","description_kind":"plain","optional":true},"stable_ingress":{"type":"string","description_kind":"plain","required":true}},"block_types":{"additional_ingress_annotation":{"nesting_mode":"list","block":{"attributes":{"canary_by_header":{"type":"string","description_kind":"plain","optional":true},"key1":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"ping_pong":{"nesting_mode":"list","block":{"attributes":{"ping_service":{"type":"string","description_kind":"plain","required":true},"pong_service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"smi":{"nesting_mode":"list","block":{"attributes":{"smi_root_service":{"type":"string","description_kind":"plain","optional":true},"traffic_split_name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_oceancd_strategy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"strategy_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"canary":{"nesting_mode":"list","block":{"block_types":{"background_verification":{"nesting_mode":"list","block":{"attributes":{"template_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"steps":{"nesting_mode":"list","block":{"attributes":{"set_weight":{"type":"number","description_kind":"plain","optional":true},"step_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"pause":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"set_canary_scale":{"nesting_mode":"list","block":{"attributes":{"match_traffic_weight":{"type":"bool","description_kind":"plain","optional":true},"replicas":{"type":"number","description_kind":"plain","optional":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"set_header_route":{"nesting_mode":"list","block":{"attributes":{"header_route_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"match":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header_value":{"nesting_mode":"list","block":{"attributes":{"exact":{"type":"string","description_kind":"plain","optional":true},"prefix":{"type":"string","description_kind":"plain","optional":true},"regex":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"verification":{"nesting_mode":"list","block":{"attributes":{"template_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"rolling":{"nesting_mode":"list","block":{"block_types":{"steps":{"nesting_mode":"list","block":{"attributes":{"steps_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"pause":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"verification":{"nesting_mode":"list","block":{"attributes":{"template_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_oceancd_verification_provider":{"version":0,"block":{"attributes":{"cluster_ids":{"type":["list","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"cloud_watch":{"nesting_mode":"list","block":{"attributes":{"iam_arn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"datadog":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"api_key":{"type":"string","description_kind":"plain","required":true},"app_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"jenkins":{"nesting_mode":"list","block":{"attributes":{"api_token":{"type":"string","description_kind":"plain","required":true},"base_url":{"type":"string","description_kind":"plain","required":true},"username":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"new_relic":{"nesting_mode":"list","block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"base_url_nerd_graph":{"type":"string","description_kind":"plain","optional":true},"base_url_rest":{"type":"string","description_kind":"plain","optional":true},"personal_api_key":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"prometheus":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_oceancd_verification_template":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"args":{"nesting_mode":"set","block":{"attributes":{"arg_name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"value_from":{"nesting_mode":"list","block":{"block_types":{"secret_key_ref":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"metrics":{"nesting_mode":"set","block":{"attributes":{"consecutive_error_limit":{"type":"number","description_kind":"plain","optional":true},"count":{"type":"number","description_kind":"plain","optional":true},"dry_run":{"type":"bool","description_kind":"plain","optional":true},"failure_condition":{"type":"string","description_kind":"plain","optional":true},"failure_limit":{"type":"number","description_kind":"plain","optional":true},"initial_delay":{"type":"string","description_kind":"plain","optional":true},"interval":{"type":"string","description_kind":"plain","optional":true},"metrics_name":{"type":"string","description_kind":"plain","required":true},"success_condition":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"baseline":{"nesting_mode":"list","block":{"attributes":{"max_range":{"type":"number","description_kind":"plain","optional":true},"min_range":{"type":"number","description_kind":"plain","optional":true},"threshold":{"type":"string","description_kind":"plain","required":true}},"block_types":{"baseline_provider":{"nesting_mode":"list","block":{"block_types":{"datadog":{"nesting_mode":"list","block":{"attributes":{"datadog_query":{"type":"string","description_kind":"plain","required":true},"duration":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"new_relic":{"nesting_mode":"list","block":{"attributes":{"new_relic_query":{"type":"string","description_kind":"plain","required":true},"profile":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"prometheus":{"nesting_mode":"list","block":{"attributes":{"prometheus_query":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"provider":{"nesting_mode":"list","block":{"block_types":{"cloud_watch":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"metric_data_queries":{"nesting_mode":"set","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","required":true},"label":{"type":"string","description_kind":"plain","optional":true},"period":{"type":"number","description_kind":"plain","optional":true},"return_data":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"metric_stat":{"nesting_mode":"list","block":{"attributes":{"metric_period":{"type":"number","description_kind":"plain","optional":true},"stat":{"type":"string","description_kind":"plain","optional":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"metric":{"nesting_mode":"list","block":{"attributes":{"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"set","block":{"attributes":{"dimension_name":{"type":"string","description_kind":"plain","required":true},"dimension_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"datadog":{"nesting_mode":"list","block":{"attributes":{"datadog_query":{"type":"string","description_kind":"plain","optional":true},"duration":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"jenkins":{"nesting_mode":"list","block":{"attributes":{"jenkins_interval":{"type":"string","description_kind":"plain","required":true},"pipeline_name":{"type":"string","description_kind":"plain","required":true},"timeout":{"type":"string","description_kind":"plain","required":true},"tls_verification":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"jenkins_parameters":{"nesting_mode":"set","block":{"attributes":{"parameter_key":{"type":"string","description_kind":"plain","required":true},"parameter_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"job":{"nesting_mode":"list","block":{"block_types":{"spec":{"nesting_mode":"list","block":{"attributes":{"backoff_limit":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"job_template":{"nesting_mode":"list","block":{"block_types":{"template_spec":{"nesting_mode":"list","block":{"attributes":{"restart_policy":{"type":"string","description_kind":"plain","required":true}},"block_types":{"containers":{"nesting_mode":"set","block":{"attributes":{"command":{"type":["list","string"],"description_kind":"plain","required":true},"container_name":{"type":"string","description_kind":"plain","required":true},"image":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"new_relic":{"nesting_mode":"list","block":{"attributes":{"new_relic_query":{"type":"string","description_kind":"plain","required":true},"profile":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"prometheus":{"nesting_mode":"list","block":{"attributes":{"prometheus_query":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"web":{"nesting_mode":"list","block":{"attributes":{"body":{"type":"string","description_kind":"plain","optional":true},"insecure":{"type":"bool","description_kind":"plain","optional":true},"json_path":{"type":"string","description_kind":"plain","optional":true},"method":{"type":"string","description_kind":"plain","optional":true},"timeout_seconds":{"type":"number","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"web_header":{"nesting_mode":"set","block":{"attributes":{"web_header_key":{"type":"string","description_kind":"plain","required":true},"web_header_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_organization_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"policy_content":{"nesting_mode":"set","block":{"block_types":{"statements":{"nesting_mode":"set","block":{"attributes":{"actions":{"type":["list","string"],"description_kind":"plain","required":true},"effect":{"type":"string","description_kind":"plain","required":true},"resources":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"spotinst_organization_programmatic_user":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"user_group_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"accounts":{"nesting_mode":"set","block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"account_role":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"policies":{"nesting_mode":"set","block":{"attributes":{"policy_account_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"policy_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_organization_user":{"version":0,"block":{"attributes":{"email":{"type":"string","description_kind":"plain","required":true},"first_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","optional":true},"user_group_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"policies":{"nesting_mode":"set","block":{"attributes":{"policy_account_ids":{"type":["list","string"],"description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_organization_user_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"user_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"policies":{"nesting_mode":"set","block":{"attributes":{"account_ids":{"type":["list","string"],"description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_stateful_node_azure":{"version":0,"block":{"attributes":{"custom_data":{"type":"string","description_kind":"plain","optional":true,"computed":true},"data_disks_persistence_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"license_type":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os":{"type":"string","description_kind":"plain","required":true},"os_disk_persistence_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"preferred_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"should_persist_data_disks":{"type":"bool","description_kind":"plain","required":true},"should_persist_network":{"type":"bool","description_kind":"plain","required":true},"should_persist_os_disk":{"type":"bool","description_kind":"plain","required":true},"should_persist_vm":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_data":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vm_name":{"type":"string","description_kind":"plain","optional":true},"vm_name_prefix":{"type":"string","description_kind":"plain","optional":true},"zones":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"attach_data_disk":{"nesting_mode":"list","block":{"attributes":{"data_disk_name":{"type":"string","description_kind":"plain","required":true},"data_disk_resource_group_name":{"type":"string","description_kind":"plain","required":true},"lun":{"type":"number","description_kind":"plain","optional":true},"size_gb":{"type":"number","description_kind":"plain","required":true},"storage_account_type":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"boot_diagnostics":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"storage_url":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"data_disk":{"nesting_mode":"list","block":{"attributes":{"lun":{"type":"number","description_kind":"plain","required":true},"size_gb":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"delete":{"nesting_mode":"list","block":{"attributes":{"disk_should_deallocate":{"type":"bool","description_kind":"plain","required":true},"disk_ttl_in_hours":{"type":"number","description_kind":"plain","optional":true},"network_should_deallocate":{"type":"bool","description_kind":"plain","required":true},"network_ttl_in_hours":{"type":"number","description_kind":"plain","optional":true},"public_ip_should_deallocate":{"type":"bool","description_kind":"plain","required":true},"public_ip_ttl_in_hours":{"type":"number","description_kind":"plain","optional":true},"should_deregister_from_lb":{"type":"bool","description_kind":"plain","optional":true},"should_terminate_vm":{"type":"bool","description_kind":"plain","required":true},"snapshot_should_deallocate":{"type":"bool","description_kind":"plain","required":true},"snapshot_ttl_in_hours":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"detach_data_disk":{"nesting_mode":"list","block":{"attributes":{"data_disk_name":{"type":"string","description_kind":"plain","required":true},"data_disk_resource_group_name":{"type":"string","description_kind":"plain","required":true},"should_deallocate":{"type":"bool","description_kind":"plain","required":true},"ttl_in_hours":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"extension":{"nesting_mode":"set","block":{"attributes":{"api_version":{"type":"string","description_kind":"plain","required":true},"minor_version_auto_upgrade":{"type":"bool","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"protected_settings":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"public_settings":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"publisher":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"health":{"nesting_mode":"list","block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","required":true},"grace_period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"health_check_types":{"type":["list","string"],"description_kind":"plain","required":true},"unhealthy_duration":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"image":{"nesting_mode":"list","block":{"block_types":{"custom_image":{"nesting_mode":"list","block":{"attributes":{"custom_image_resource_group_name":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"gallery":{"nesting_mode":"list","block":{"attributes":{"gallery_name":{"type":"string","description_kind":"plain","required":true},"gallery_resource_group_name":{"type":"string","description_kind":"plain","required":true},"image_name":{"type":"string","description_kind":"plain","required":true},"spot_account_id":{"type":"string","description_kind":"plain","optional":true},"version_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"marketplace_image":{"nesting_mode":"list","block":{"attributes":{"offer":{"type":"string","description_kind":"plain","required":true},"publisher":{"type":"string","description_kind":"plain","required":true},"sku":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"import_vm":{"nesting_mode":"list","block":{"attributes":{"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"original_vm_name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"resources_retention_time":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"load_balancer":{"nesting_mode":"set","block":{"attributes":{"backend_pool_names":{"type":["list","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"sku":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"login":{"nesting_mode":"set","block":{"attributes":{"password":{"type":"string","description_kind":"plain","optional":true},"ssh_public_key":{"type":"string","description_kind":"plain","optional":true},"user_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"managed_service_identities":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network":{"nesting_mode":"list","block":{"attributes":{"network_resource_group_name":{"type":"string","description_kind":"plain","required":true},"virtual_network_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"network_interface":{"nesting_mode":"list","block":{"attributes":{"assign_public_ip":{"type":"bool","description_kind":"plain","optional":true},"enable_ip_forwarding":{"type":"bool","description_kind":"plain","optional":true},"is_primary":{"type":"bool","description_kind":"plain","required":true},"private_ip_addresses":{"type":["list","string"],"description_kind":"plain","optional":true},"public_ip_sku":{"type":"string","description_kind":"plain","optional":true},"subnet_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"additional_ip_configurations":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"private_ip_address_version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"application_security_groups":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"network_resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network_security_group":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"network_resource_group_name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"public_ips":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"network_resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"os_disk":{"nesting_mode":"set","block":{"attributes":{"caching":{"type":"string","description_kind":"plain","optional":true},"size_gb":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"proximity_placement_groups":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"scheduling_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"secret":{"nesting_mode":"set","block":{"block_types":{"source_vault":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"vault_certificates":{"nesting_mode":"list","block":{"attributes":{"certificate_store":{"type":"string","description_kind":"plain","optional":true},"certificate_url":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"security":{"nesting_mode":"list","block":{"attributes":{"confidential_os_disk_encryption":{"type":"bool","description_kind":"plain","optional":true},"encryption_at_host":{"type":"bool","description_kind":"plain","optional":true},"secure_boot_enabled":{"type":"bool","description_kind":"plain","optional":true},"security_type":{"type":"string","description_kind":"plain","optional":true},"vtpm_enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"signal":{"nesting_mode":"list","block":{"attributes":{"timeout":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"strategy":{"nesting_mode":"list","block":{"attributes":{"availability_vs_cost":{"type":"number","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"fallback_to_on_demand":{"type":"bool","description_kind":"plain","required":true},"od_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"preferred_life_cycle":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vm_admins":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"capacity_reservation":{"nesting_mode":"set","block":{"attributes":{"should_utilize":{"type":"bool","description_kind":"plain","required":true},"utilization_strategy":{"type":"string","description_kind":"plain","required":true}},"block_types":{"capacity_reservation_groups":{"nesting_mode":"set","block":{"attributes":{"crg_name":{"type":"string","description_kind":"plain","required":true},"crg_resource_group_name":{"type":"string","description_kind":"plain","required":true},"crg_should_prioritize":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"revert_to_spot":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"tag":{"nesting_mode":"set","block":{"attributes":{"tag_key":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_state":{"nesting_mode":"list","block":{"attributes":{"state":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"vm_sizes":{"nesting_mode":"list","block":{"attributes":{"od_sizes":{"type":["list","string"],"description_kind":"plain","required":true},"preferred_spot_sizes":{"type":["list","string"],"description_kind":"plain","optional":true},"spot_sizes":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"spotinst_subscription":{"version":0,"block":{"attributes":{"endpoint":{"type":"string","description_kind":"plain","required":true},"event_type":{"type":"string","description_kind":"plain","required":true},"format":{"type":["map","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"resource_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}}}}} +{"format_version":"1.0","provider_schemas":{"registry.terraform.io/spotinst/spotinst":{"provider":{"version":0,"block":{"attributes":{"account":{"type":"string","description":"Spotinst Account ID","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Enable or disable the Spotinst provider","description_kind":"plain","optional":true},"feature_flags":{"type":"string","description":"Spotinst SDK Feature Flags","description_kind":"plain","optional":true},"token":{"type":"string","description":"Spotinst Personal API Access Token","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_schemas":{"spotinst_account":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_account_aws":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_credentials_aws":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"iamrole":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"spotinst_credentials_azure":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"client_id":{"type":"string","description_kind":"plain","required":true},"client_secret":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subscription_id":{"type":"string","description_kind":"plain","required":true},"tenant_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_credentials_gcp":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"auth_provider_x509_cert_url":{"type":"string","description_kind":"plain","required":true},"auth_uri":{"type":"string","description_kind":"plain","required":true},"client_email":{"type":"string","description_kind":"plain","required":true},"client_id":{"type":"string","description_kind":"plain","required":true},"client_x509_cert_url":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"private_key":{"type":"string","description_kind":"plain","required":true},"private_key_id":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","required":true},"token_uri":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_data_integration":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"s3":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","required":true},"subdir":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_elastigroup_aws":{"version":0,"block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","optional":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"block_devices_mode":{"type":"string","description_kind":"plain","optional":true},"capacity_unit":{"type":"string","description_kind":"plain","optional":true,"computed":true},"consider_od_pricing":{"type":"bool","description_kind":"plain","optional":true},"cpu_credits":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"ebs_optimized":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"elastic_ips":{"type":["list","string"],"description_kind":"plain","optional":true},"elastic_load_balancers":{"type":["list","string"],"description_kind":"plain","optional":true},"enable_monitoring":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","required":true},"health_check_grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_type":{"type":"string","description_kind":"plain","optional":true},"health_check_unhealthy_duration_before_replacement":{"type":"number","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"immediate_od_recover_threshold":{"type":"number","description_kind":"plain","optional":true},"instance_types_ondemand":{"type":"string","description_kind":"plain","optional":true},"instance_types_preferred_spot":{"type":["list","string"],"description_kind":"plain","optional":true},"instance_types_spot":{"type":["list","string"],"description_kind":"plain","optional":true},"key_name":{"type":"string","description_kind":"plain","optional":true},"lifetime_period":{"type":"string","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"minimum_instance_lifetime":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"on_demand_types":{"type":["list","string"],"description_kind":"plain","optional":true},"ondemand_count":{"type":"number","description_kind":"plain","optional":true},"orientation":{"type":"string","description_kind":"plain","required":true},"persist_block_devices":{"type":"bool","description_kind":"plain","optional":true},"persist_private_ip":{"type":"bool","description_kind":"plain","optional":true},"persist_root_device":{"type":"bool","description_kind":"plain","optional":true},"placement_tenancy":{"type":"string","description_kind":"plain","optional":true},"preferred_availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"private_ips":{"type":["list","string"],"description_kind":"plain","optional":true},"product":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true},"restrict_single_az":{"type":"bool","description_kind":"plain","optional":true},"security_groups":{"type":["list","string"],"description_kind":"plain","required":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"target_group_arns":{"type":["list","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true},"wait_for_capacity":{"type":"number","description_kind":"plain","optional":true},"wait_for_capacity_timeout":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"cpu_options":{"nesting_mode":"list","block":{"attributes":{"threads_per_core":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"ebs_block_device":{"nesting_mode":"set","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"device_name":{"type":"string","description_kind":"plain","required":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_iops":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","optional":true},"resource":{"type":"string","description_kind":"plain","optional":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","optional":true},"resource":{"type":"string","description_kind":"plain","optional":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ephemeral_block_device":{"nesting_mode":"set","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","required":true},"virtual_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"images":{"nesting_mode":"list","block":{"block_types":{"image":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"instance_types_weights":{"nesting_mode":"set","block":{"attributes":{"instance_type":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"integration_beanstalk":{"nesting_mode":"list","block":{"attributes":{"environment_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"deployment_preferences":{"nesting_mode":"list","block":{"attributes":{"automatic_roll":{"type":"bool","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"strategy":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true},"should_drain_instances":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"managed_actions":{"nesting_mode":"list","block":{"block_types":{"platform_update":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","optional":true},"time_window":{"type":"string","description_kind":"plain","optional":true},"update_level":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_codedeploy":{"nesting_mode":"list","block":{"attributes":{"cleanup_on_failure":{"type":"bool","description_kind":"plain","required":true},"terminate_instance_on_failure":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"deployment_groups":{"nesting_mode":"set","block":{"attributes":{"application_name":{"type":"string","description_kind":"plain","required":true},"deployment_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"integration_docker_swarm":{"nesting_mode":"list","block":{"attributes":{"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"master_host":{"type":"string","description_kind":"plain","required":true},"master_port":{"type":"number","description_kind":"plain","required":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_ecs":{"nesting_mode":"list","block":{"attributes":{"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"autoscale_scale_down_non_service_tasks":{"type":"bool","description_kind":"plain","optional":true},"cluster_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"autoscale_attributes":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"batch":{"nesting_mode":"list","block":{"attributes":{"job_queue_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_gitlab":{"nesting_mode":"list","block":{"block_types":{"runner":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_kubernetes":{"nesting_mode":"list","block":{"attributes":{"api_server":{"type":"string","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"cluster_identifier":{"type":"string","description_kind":"plain","optional":true},"integration_mode":{"type":"string","description_kind":"plain","optional":true},"token":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"integration_mesosphere":{"nesting_mode":"list","block":{"attributes":{"api_server":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"integration_nomad":{"nesting_mode":"list","block":{"attributes":{"acl_token":{"type":"string","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"master_host":{"type":"string","description_kind":"plain","required":true},"master_port":{"type":"number","description_kind":"plain","required":true}},"block_types":{"autoscale_constraints":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"integration_rancher":{"nesting_mode":"list","block":{"attributes":{"access_key":{"type":"string","description_kind":"plain","required":true},"master_host":{"type":"string","description_kind":"plain","required":true},"secret_key":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"integration_route53":{"nesting_mode":"list","block":{"block_types":{"domains":{"nesting_mode":"set","block":{"attributes":{"hosted_zone_id":{"type":"string","description_kind":"plain","required":true},"record_set_type":{"type":"string","description_kind":"plain","optional":true},"spotinst_acct_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"record_sets":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"use_public_dns":{"type":"bool","description_kind":"plain","optional":true},"use_public_ip":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"itf":{"nesting_mode":"list","block":{"attributes":{"fixed_target_groups":{"type":"bool","description_kind":"plain","required":true},"migration_healthiness_threshold":{"type":"number","description_kind":"plain","optional":true},"weight_strategy":{"type":"string","description_kind":"plain","required":true}},"block_types":{"default_static_target_group":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","required":true},"percentage":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"load_balancer":{"nesting_mode":"set","block":{"attributes":{"load_balancer_arn":{"type":"string","description_kind":"plain","required":true}},"block_types":{"listener_rule":{"nesting_mode":"set","block":{"attributes":{"rule_arn":{"type":"string","description_kind":"plain","required":true}},"block_types":{"static_target_group":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","required":true},"percentage":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1},"target_group_config":{"nesting_mode":"list","block":{"attributes":{"health_check_interval_seconds":{"type":"number","description_kind":"plain","optional":true},"health_check_path":{"type":"string","description_kind":"plain","required":true},"health_check_port":{"type":"string","description_kind":"plain","optional":true},"health_check_protocol":{"type":"string","description_kind":"plain","optional":true},"health_check_timeout_seconds":{"type":"number","description_kind":"plain","optional":true},"healthy_threshold_count":{"type":"number","description_kind":"plain","optional":true},"port":{"type":"number","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"protocol_version":{"type":"string","description_kind":"plain","optional":true},"unhealthy_threshold_count":{"type":"number","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"matcher":{"nesting_mode":"list","block":{"attributes":{"grpc_code":{"type":"string","description_kind":"plain","optional":true},"http_code":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"tag_key":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"logging":{"nesting_mode":"list","block":{"block_types":{"export":{"nesting_mode":"list","block":{"block_types":{"s3":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true},"instance_metadata_tags":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"multiple_metrics":{"nesting_mode":"set","block":{"block_types":{"expressions":{"nesting_mode":"set","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"metrics":{"nesting_mode":"set","block":{"attributes":{"extended_statistic":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"network_interface":{"nesting_mode":"set","block":{"attributes":{"associate_ipv6_address":{"type":"bool","description_kind":"plain","optional":true},"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"device_index":{"type":"string","description_kind":"plain","required":true},"network_interface_id":{"type":"string","description_kind":"plain","optional":true},"private_ip_address":{"type":"string","description_kind":"plain","optional":true},"secondary_private_ip_address_count":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_requirements":{"nesting_mode":"list","block":{"attributes":{"excluded_instance_families":{"type":["set","string"],"description_kind":"plain","optional":true},"excluded_instance_generations":{"type":["set","string"],"description_kind":"plain","optional":true},"excluded_instance_types":{"type":["set","string"],"description_kind":"plain","optional":true},"required_gpu_maximum":{"type":"number","description_kind":"plain","optional":true},"required_gpu_minimum":{"type":"number","description_kind":"plain","optional":true},"required_memory_maximum":{"type":"number","description_kind":"plain","required":true},"required_memory_minimum":{"type":"number","description_kind":"plain","required":true},"required_vcpu_maximum":{"type":"number","description_kind":"plain","required":true},"required_vcpu_minimum":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"resource_tag_specification":{"nesting_mode":"list","block":{"attributes":{"should_tag_amis":{"type":"bool","description_kind":"plain","optional":true},"should_tag_enis":{"type":"bool","description_kind":"plain","optional":true},"should_tag_snapshots":{"type":"bool","description_kind":"plain","optional":true},"should_tag_volumes":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"revert_to_spot":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true},"time_windows":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","optional":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"step_adjustments":{"nesting_mode":"set","block":{"attributes":{"threshold":{"type":"number","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_strategy":{"nesting_mode":"list","block":{"attributes":{"terminate_at_end_of_billing_hour":{"type":"bool","description_kind":"plain","optional":true},"termination_policy":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaling_target_policy":{"nesting_mode":"set","block":{"attributes":{"cooldown":{"type":"number","description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"max_capacity_per_scale":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","optional":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"predictive_mode":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","optional":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"step_adjustments":{"nesting_mode":"set","block":{"attributes":{"threshold":{"type":"number","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"adjustment_percentage":{"type":"string","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"string","description_kind":"plain","optional":true},"cron_expression":{"type":"string","description_kind":"plain","optional":true},"frequency":{"type":"string","description_kind":"plain","optional":true},"grace_period":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_capacity":{"type":"string","description_kind":"plain","optional":true},"min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_max_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_target_capacity":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"target_capacity":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"signal":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"timeout":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"stateful_deallocation":{"nesting_mode":"list","block":{"attributes":{"should_delete_images":{"type":"bool","description_kind":"plain","optional":true},"should_delete_network_interfaces":{"type":"bool","description_kind":"plain","optional":true},"should_delete_snapshots":{"type":"bool","description_kind":"plain","optional":true},"should_delete_volumes":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"stateful_instance_action":{"nesting_mode":"list","block":{"attributes":{"stateful_instance_id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"auto_apply_tags":{"type":"bool","description_kind":"plain","optional":true},"should_resume_stateful":{"type":"bool","description_kind":"plain","required":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_size_percentage":{"type":"number","description_kind":"plain","required":true},"grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_type":{"type":"string","description_kind":"plain","optional":true},"wait_for_roll_percentage":{"type":"number","description_kind":"plain","optional":true},"wait_for_roll_timeout":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"strategy":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"should_drain_instances":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"on_failure":{"nesting_mode":"list","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","required":true},"batch_num":{"type":"number","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"should_decrement_target_capacity":{"type":"bool","description_kind":"plain","optional":true},"should_handle_all_batches":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_elastigroup_aws_beanstalk":{"version":0,"block":{"attributes":{"beanstalk_environment_id":{"type":"string","description_kind":"plain","optional":true},"beanstalk_environment_name":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_types_spot":{"type":["list","string"],"description_kind":"plain","required":true},"maintenance":{"type":"string","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","required":true},"min_size":{"type":"number","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"product":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","required":true}},"block_types":{"deployment_preferences":{"nesting_mode":"list","block":{"attributes":{"automatic_roll":{"type":"bool","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"strategy":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true},"should_drain_instances":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"managed_actions":{"nesting_mode":"list","block":{"block_types":{"platform_update":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","optional":true},"time_window":{"type":"string","description_kind":"plain","optional":true},"update_level":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"adjustment_percentage":{"type":"string","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"string","description_kind":"plain","optional":true},"cron_expression":{"type":"string","description_kind":"plain","optional":true},"frequency":{"type":"string","description_kind":"plain","optional":true},"grace_period":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_capacity":{"type":"string","description_kind":"plain","optional":true},"min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_max_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_target_capacity":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"target_capacity":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_elastigroup_aws_suspension":{"version":0,"block":{"attributes":{"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"suspension":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"spotinst_elastigroup_azure_v3":{"version":0,"block":{"attributes":{"availability_vs_cost":{"type":"number","description_kind":"plain","optional":true},"custom_data":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"fallback_to_on_demand":{"type":"bool","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"on_demand_count":{"type":"number","description_kind":"plain","optional":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"os":{"type":"string","description_kind":"plain","required":true},"preferred_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"vm_name_prefix":{"type":"string","description_kind":"plain","optional":true},"zones":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"boot_diagnostics":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","required":true},"storage_url":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"capacity_reservation":{"nesting_mode":"list","block":{"attributes":{"should_utilize":{"type":"bool","description_kind":"plain","required":true},"utilization_strategy":{"type":"string","description_kind":"plain","required":true}},"block_types":{"capacity_reservation_groups":{"nesting_mode":"set","block":{"attributes":{"crg_name":{"type":"string","description_kind":"plain","required":true},"crg_resource_group_name":{"type":"string","description_kind":"plain","required":true},"crg_should_prioritize":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"data_disk":{"nesting_mode":"list","block":{"attributes":{"lun":{"type":"number","description_kind":"plain","required":true},"size_gb":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"extensions":{"nesting_mode":"list","block":{"attributes":{"api_version":{"type":"string","description_kind":"plain","required":true},"enable_automatic_upgrade":{"type":"bool","description_kind":"plain","optional":true},"minor_version_auto_upgrade":{"type":"bool","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"protected_settings":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"public_settings":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"publisher":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"protected_settings_from_key_vault":{"nesting_mode":"list","block":{"attributes":{"secret_url":{"type":"string","description_kind":"plain","required":true},"source_vault":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"health":{"nesting_mode":"list","block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_types":{"type":["list","string"],"description_kind":"plain","optional":true},"unhealthy_duration":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"image":{"nesting_mode":"list","block":{"block_types":{"custom":{"nesting_mode":"list","block":{"attributes":{"image_name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"gallery_image":{"nesting_mode":"list","block":{"attributes":{"gallery_name":{"type":"string","description_kind":"plain","required":true},"image_name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"spot_account_id":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"marketplace":{"nesting_mode":"list","block":{"attributes":{"offer":{"type":"string","description_kind":"plain","required":true},"publisher":{"type":"string","description_kind":"plain","required":true},"sku":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"load_balancer":{"nesting_mode":"set","block":{"attributes":{"backend_pool_names":{"type":["list","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"sku":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"login":{"nesting_mode":"list","block":{"attributes":{"password":{"type":"string","description_kind":"plain","optional":true},"ssh_public_key":{"type":"string","description_kind":"plain","optional":true},"user_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"managed_service_identity":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network":{"nesting_mode":"list","block":{"attributes":{"resource_group_name":{"type":"string","description_kind":"plain","required":true},"virtual_network_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"network_interfaces":{"nesting_mode":"list","block":{"attributes":{"assign_public_ip":{"type":"bool","description_kind":"plain","required":true},"enable_ip_forwarding":{"type":"bool","description_kind":"plain","optional":true},"is_primary":{"type":"bool","description_kind":"plain","required":true},"private_ip_addresses":{"type":["list","string"],"description_kind":"plain","optional":true},"public_ip_sku":{"type":"string","description_kind":"plain","optional":true},"subnet_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"additional_ip_configs":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"private_ip_version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"application_security_group":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"security_group":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"resource_group_name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"os_disk":{"nesting_mode":"list","block":{"attributes":{"size_gb":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"proximity_placement_groups":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"revert_to_spot":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scaling_down_policy":{"nesting_mode":"list","block":{"attributes":{"cooldown":{"type":"number","description_kind":"plain","required":true},"evaluation_periods":{"type":"number","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","required":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","required":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_up_policy":{"nesting_mode":"list","block":{"attributes":{"cooldown":{"type":"number","description_kind":"plain","required":true},"evaluation_periods":{"type":"number","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","required":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","required":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scheduling_task":{"nesting_mode":"list","block":{"attributes":{"adjustment":{"type":"string","description_kind":"plain","optional":true},"adjustment_percentage":{"type":"string","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"string","description_kind":"plain","optional":true},"cron_expression":{"type":"string","description_kind":"plain","required":true},"grace_period":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"scale_max_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_min_capacity":{"type":"string","description_kind":"plain","optional":true},"scale_target_capacity":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"secret":{"nesting_mode":"set","block":{"block_types":{"source_vault":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"vault_certificates":{"nesting_mode":"list","block":{"attributes":{"certificate_store":{"type":"string","description_kind":"plain","required":true},"certificate_url":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"security":{"nesting_mode":"list","block":{"attributes":{"confidential_os_disk_encryption":{"type":"bool","description_kind":"plain","optional":true},"secure_boot_enabled":{"type":"bool","description_kind":"plain","optional":true},"security_type":{"type":"string","description_kind":"plain","optional":true},"vtpm_enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"signal":{"nesting_mode":"list","block":{"attributes":{"timeout":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"vm_sizes":{"nesting_mode":"list","block":{"attributes":{"od_sizes":{"type":["list","string"],"description_kind":"plain","required":true},"preferred_spot_sizes":{"type":["list","string"],"description_kind":"plain","optional":true},"spot_sizes":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"spotinst_elastigroup_gcp":{"version":0,"block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","optional":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","deprecated":true,"optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","required":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"health_check_grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_type":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name_prefix":{"type":"string","description_kind":"plain","optional":true},"instance_types_ondemand":{"type":"string","description_kind":"plain","optional":true},"instance_types_preemptible":{"type":["list","string"],"description_kind":"plain","optional":true},"ip_forwarding":{"type":"bool","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description_kind":"plain","optional":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"ondemand_count":{"type":"number","description_kind":"plain","optional":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"preemptible_percentage":{"type":"number","description_kind":"plain","optional":true},"preferred_availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"provisioning_model":{"type":"string","description_kind":"plain","optional":true},"service_account":{"type":"string","description_kind":"plain","optional":true},"should_utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"startup_script":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description_kind":"plain","optional":true},"unhealthy_duration":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"backend_services":{"nesting_mode":"set","block":{"attributes":{"location_type":{"type":"string","description_kind":"plain","optional":true},"scheme":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"named_ports":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"ports":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"disk":{"nesting_mode":"set","block":{"attributes":{"auto_delete":{"type":"bool","description_kind":"plain","optional":true},"boot":{"type":"bool","description_kind":"plain","optional":true},"device_name":{"type":"string","description_kind":"plain","optional":true},"interface":{"type":"string","description_kind":"plain","optional":true},"mode":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"initialize_params":{"nesting_mode":"set","block":{"attributes":{"disk_size_gb":{"type":"string","description_kind":"plain","optional":true},"disk_type":{"type":"string","description_kind":"plain","optional":true},"source_image":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"gpu":{"nesting_mode":"set","block":{"attributes":{"count":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"instance_types_custom":{"nesting_mode":"list","block":{"attributes":{"memory_gib":{"type":"number","description_kind":"plain","required":true},"vcpu":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"integration_docker_swarm":{"nesting_mode":"list","block":{"attributes":{"master_host":{"type":"string","description_kind":"plain","required":true},"master_port":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"integration_gke":{"nesting_mode":"list","block":{"attributes":{"auto_update":{"type":"bool","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"metadata":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network_interface":{"nesting_mode":"list","block":{"attributes":{"network":{"type":"string","description_kind":"plain","required":true}},"block_types":{"access_configs":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"alias_ip_ranges":{"nesting_mode":"set","block":{"attributes":{"ip_cidr_range":{"type":"string","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"revert_to_preemptible":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_capacity":{"type":"string","description_kind":"plain","optional":true},"min_capacity":{"type":"string","description_kind":"plain","optional":true},"target_capacity":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"subnets":{"nesting_mode":"set","block":{"attributes":{"region":{"type":"string","description_kind":"plain","required":true},"subnet_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_elastigroup_gke":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"cluster_zone_name":{"type":"string","description_kind":"plain","required":true},"desired_capacity":{"type":"number","description_kind":"plain","required":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_name_prefix":{"type":"string","description_kind":"plain","optional":true},"instance_types_ondemand":{"type":"string","description_kind":"plain","optional":true},"instance_types_preemptible":{"type":["list","string"],"description_kind":"plain","optional":true},"ip_forwarding":{"type":"bool","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_cpu_platform":{"type":"string","description_kind":"plain","optional":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"node_image":{"type":"string","description_kind":"plain","optional":true},"ondemand_count":{"type":"number","description_kind":"plain","optional":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"preemptible_percentage":{"type":"number","description_kind":"plain","optional":true},"provisioning_model":{"type":"string","description_kind":"plain","optional":true},"service_account":{"type":"string","description_kind":"plain","optional":true},"should_utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"startup_script":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"backend_services":{"nesting_mode":"set","block":{"attributes":{"location_type":{"type":"string","description_kind":"plain","optional":true},"scheme":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"named_ports":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"ports":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"disk":{"nesting_mode":"set","block":{"attributes":{"auto_delete":{"type":"bool","description_kind":"plain","optional":true},"boot":{"type":"bool","description_kind":"plain","optional":true},"device_name":{"type":"string","description_kind":"plain","optional":true},"interface":{"type":"string","description_kind":"plain","optional":true},"mode":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"initialize_params":{"nesting_mode":"set","block":{"attributes":{"disk_size_gb":{"type":"string","description_kind":"plain","optional":true},"disk_type":{"type":"string","description_kind":"plain","optional":true},"source_image":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"gpu":{"nesting_mode":"set","block":{"attributes":{"count":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"instance_types_custom":{"nesting_mode":"list","block":{"attributes":{"memory_gib":{"type":"number","description_kind":"plain","required":true},"vcpu":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"integration_docker_swarm":{"nesting_mode":"list","block":{"attributes":{"master_host":{"type":"string","description_kind":"plain","required":true},"master_port":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"integration_gke":{"nesting_mode":"list","block":{"attributes":{"auto_update":{"type":"bool","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"metadata":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network_interface":{"nesting_mode":"list","block":{"attributes":{"network":{"type":"string","description_kind":"plain","required":true}},"block_types":{"access_configs":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"alias_ip_ranges":{"nesting_mode":"set","block":{"attributes":{"ip_cidr_range":{"type":"string","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"revert_to_preemptible":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description_kind":"plain","optional":true},"enable_secure_boot":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_health_check":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"proxy_address":{"type":"string","description_kind":"plain","required":true},"proxy_port":{"type":"number","description_kind":"plain","optional":true},"resource_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"check":{"nesting_mode":"list","block":{"attributes":{"end_point":{"type":"string","description_kind":"plain","optional":true},"endpoint":{"type":"string","description_kind":"plain","optional":true},"healthy":{"type":"number","description_kind":"plain","required":true},"interval":{"type":"number","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"time_out":{"type":"number","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"unhealthy":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_managed_instance_aws":{"version":0,"block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","optional":true},"block_devices_mode":{"type":"string","description_kind":"plain","optional":true},"cpu_credits":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"ebs_optimized":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"elastic_ip":{"type":"string","description_kind":"plain","optional":true},"enable_monitoring":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_type":{"type":"string","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"life_cycle":{"type":"string","description_kind":"plain","optional":true},"minimum_instance_lifetime":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"orientation":{"type":"string","description_kind":"plain","optional":true},"persist_block_devices":{"type":"bool","description_kind":"plain","required":true},"persist_private_ip":{"type":"bool","description_kind":"plain","optional":true},"persist_root_device":{"type":"bool","description_kind":"plain","optional":true},"placement_tenancy":{"type":"string","description_kind":"plain","optional":true},"preferred_type":{"type":"string","description_kind":"plain","optional":true},"preferred_types":{"type":["set","string"],"description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","optional":true},"product":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true},"security_group_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","required":true},"unhealthy_duration":{"type":"number","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"delete":{"nesting_mode":"list","block":{"attributes":{"ami_backup_should_delete_images":{"type":"bool","description_kind":"plain","optional":true},"deallocation_config_should_delete_images":{"type":"bool","description_kind":"plain","optional":true},"should_delete_network_interfaces":{"type":"bool","description_kind":"plain","optional":true},"should_delete_snapshots":{"type":"bool","description_kind":"plain","optional":true},"should_delete_volumes":{"type":"bool","description_kind":"plain","optional":true},"should_terminate_instance":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"integration_route53":{"nesting_mode":"list","block":{"block_types":{"domains":{"nesting_mode":"set","block":{"attributes":{"hosted_zone_id":{"type":"string","description_kind":"plain","required":true},"record_set_type":{"type":"string","description_kind":"plain","optional":true},"spotinst_acct_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"record_sets":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"use_public_dns":{"type":"bool","description_kind":"plain","optional":true},"use_public_ip":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"load_balancers":{"nesting_mode":"set","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"managed_instance_action":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true},"instance_metadata_tags":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"network_interface":{"nesting_mode":"set","block":{"attributes":{"associate_ipv6_address":{"type":"bool","description_kind":"plain","optional":true},"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"device_index":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"resource_requirements":{"nesting_mode":"list","block":{"attributes":{"excluded_instance_families":{"type":["set","string"],"description_kind":"plain","optional":true},"excluded_instance_generations":{"type":["set","string"],"description_kind":"plain","optional":true},"excluded_instance_types":{"type":["set","string"],"description_kind":"plain","optional":true},"required_gpu_maximum":{"type":"number","description_kind":"plain","optional":true},"required_gpu_minimum":{"type":"number","description_kind":"plain","optional":true},"required_memory_maximum":{"type":"number","description_kind":"plain","required":true},"required_memory_minimum":{"type":"number","description_kind":"plain","required":true},"required_vcpu_maximum":{"type":"number","description_kind":"plain","required":true},"required_vcpu_minimum":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"resource_tag_specification":{"nesting_mode":"list","block":{"attributes":{"should_tag_amis":{"type":"bool","description_kind":"plain","optional":true},"should_tag_enis":{"type":"bool","description_kind":"plain","optional":true},"should_tag_snapshots":{"type":"bool","description_kind":"plain","optional":true},"should_tag_volumes":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"revert_to_spot":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","optional":true},"frequency":{"type":"string","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_mrscaler_aws":{"version":0,"block":{"attributes":{"additional_info":{"type":"string","description_kind":"plain","optional":true},"additional_primary_security_groups":{"type":["list","string"],"description_kind":"plain","optional":true},"additional_replica_security_groups":{"type":["list","string"],"description_kind":"plain","optional":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"core_desired_capacity":{"type":"number","description_kind":"plain","optional":true},"core_ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"core_instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"core_lifecycle":{"type":"string","description_kind":"plain","optional":true},"core_max_size":{"type":"number","description_kind":"plain","optional":true},"core_min_size":{"type":"number","description_kind":"plain","optional":true},"core_unit":{"type":"string","description_kind":"plain","optional":true},"custom_ami_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"ebs_root_volume_size":{"type":"number","description_kind":"plain","optional":true},"ec2_key_name":{"type":"string","description_kind":"plain","optional":true},"expose_cluster_id":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_flow_role":{"type":"string","description_kind":"plain","optional":true},"keep_job_flow_alive":{"type":"bool","description_kind":"plain","optional":true},"log_uri":{"type":"string","description_kind":"plain","optional":true},"managed_primary_security_group":{"type":"string","description_kind":"plain","optional":true},"managed_replica_security_group":{"type":"string","description_kind":"plain","optional":true},"master_ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"master_instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"master_lifecycle":{"type":"string","description_kind":"plain","optional":true},"master_target":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"output_cluster_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"release_label":{"type":"string","description_kind":"plain","optional":true},"repo_upgrade_on_boot":{"type":"string","description_kind":"plain","optional":true},"retries":{"type":"number","description_kind":"plain","optional":true},"security_config":{"type":"string","description_kind":"plain","optional":true},"service_access_security_group":{"type":"string","description_kind":"plain","optional":true},"service_role":{"type":"string","description_kind":"plain","optional":true},"strategy":{"type":"string","description_kind":"plain","required":true},"task_desired_capacity":{"type":"number","description_kind":"plain","optional":true},"task_ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"task_instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"task_lifecycle":{"type":"string","description_kind":"plain","optional":true},"task_max_size":{"type":"number","description_kind":"plain","optional":true},"task_min_size":{"type":"number","description_kind":"plain","optional":true},"task_unit":{"type":"string","description_kind":"plain","optional":true},"termination_protected":{"type":"bool","description_kind":"plain","optional":true},"visible_to_all_users":{"type":"bool","description_kind":"plain","deprecated":true,"optional":true}},"block_types":{"applications":{"nesting_mode":"set","block":{"attributes":{"args":{"type":["list","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"bootstrap_actions_file":{"nesting_mode":"set","block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"configurations_file":{"nesting_mode":"set","block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"core_ebs_block_device":{"nesting_mode":"set","block":{"attributes":{"iops":{"type":"number","description_kind":"plain","optional":true},"size_in_gb":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true},"volumes_per_instance":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"core_scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"dimensions":{"type":["map","string"],"description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"core_scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"dimensions":{"type":["map","string"],"description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"instance_weights":{"nesting_mode":"set","block":{"attributes":{"instance_type":{"type":"string","description_kind":"plain","required":true},"weighted_capacity":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"master_ebs_block_device":{"nesting_mode":"set","block":{"attributes":{"iops":{"type":"number","description_kind":"plain","optional":true},"size_in_gb":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true},"volumes_per_instance":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"provisioning_timeout":{"nesting_mode":"list","block":{"attributes":{"timeout":{"type":"number","description_kind":"plain","required":true},"timeout_action":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"set","block":{"attributes":{"cron":{"type":"string","description_kind":"plain","required":true},"desired_capacity":{"type":"string","description_kind":"plain","optional":true},"instance_group_type":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_capacity":{"type":"string","description_kind":"plain","optional":true},"min_capacity":{"type":"string","description_kind":"plain","optional":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"steps_file":{"nesting_mode":"set","block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"task_ebs_block_device":{"nesting_mode":"set","block":{"attributes":{"iops":{"type":"number","description_kind":"plain","optional":true},"size_in_gb":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true},"volumes_per_instance":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"task_scaling_down_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"dimensions":{"type":["map","string"],"description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"task_scaling_up_policy":{"nesting_mode":"set","block":{"attributes":{"action_type":{"type":"string","description_kind":"plain","optional":true},"adjustment":{"type":"string","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true,"computed":true},"dimensions":{"type":["map","string"],"description_kind":"plain","optional":true},"evaluation_periods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_target_capacity":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"string","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"min_target_capacity":{"type":"string","description_kind":"plain","optional":true},"minimum":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"policy_name":{"type":"string","description_kind":"plain","required":true},"statistic":{"type":"string","description_kind":"plain","optional":true,"computed":true},"target":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"termination_policies":{"nesting_mode":"list","block":{"block_types":{"statements":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true},"operator":{"type":"string","description_kind":"plain","optional":true},"period":{"type":"number","description_kind":"plain","optional":true},"statistic":{"type":"string","description_kind":"plain","optional":true},"threshold":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_ocean_aks_np":{"version":0,"block":{"attributes":{"aks_cluster_name":{"type":"string","description_kind":"plain","required":true},"aks_infrastructure_resource_group_name":{"type":"string","description_kind":"plain","required":true},"aks_region":{"type":"string","description_kind":"plain","required":true},"aks_resource_group_name":{"type":"string","description_kind":"plain","required":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","required":true},"controller_cluster_id":{"type":"string","description_kind":"plain","required":true},"enable_node_public_ip":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubernetes_version":{"type":"string","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description_kind":"plain","optional":true},"max_count":{"type":"number","description_kind":"plain","optional":true},"max_pods_per_node":{"type":"number","description_kind":"plain","optional":true},"min_count":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os_disk_size_gb":{"type":"number","description_kind":"plain","optional":true},"os_disk_type":{"type":"string","description_kind":"plain","optional":true},"os_sku":{"type":"string","description_kind":"plain","optional":true},"os_type":{"type":"string","description_kind":"plain","optional":true},"pod_subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vnet_subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"block_types":{"automatic":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"filters":{"nesting_mode":"list","block":{"attributes":{"accelerated_networking":{"type":"string","description_kind":"plain","optional":true},"architectures":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_performance":{"type":"string","description_kind":"plain","optional":true},"exclude_series":{"type":["set","string"],"description_kind":"plain","optional":true},"gpu_types":{"type":["set","string"],"description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_nics":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"series":{"type":["set","string"],"description_kind":"plain","optional":true},"vm_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"health":{"nesting_mode":"list","block":{"attributes":{"grace_period":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"linux_os_config":{"nesting_mode":"list","block":{"block_types":{"sysctls":{"nesting_mode":"list","block":{"attributes":{"vm_max_map_count":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"logging":{"nesting_mode":"list","block":{"block_types":{"export":{"nesting_mode":"list","block":{"block_types":{"azure_blob":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"scheduling":{"nesting_mode":"list","block":{"block_types":{"shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"suspension_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"tasks":{"nesting_mode":"list","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"block_types":{"parameters_cluster_roll":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true},"respect_restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"vng_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"parameters_upgrade_config":{"nesting_mode":"list","block":{"attributes":{"apply_roll":{"type":"bool","description_kind":"plain","optional":true},"scope_version":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"roll_parameters":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true},"respect_restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"taints":{"nesting_mode":"set","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"node_names":{"type":["list","string"],"description_kind":"plain","optional":true},"node_pool_names":{"type":["list","string"],"description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true},"respect_restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"vng_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"vng_template_scheduling":{"nesting_mode":"list","block":{"block_types":{"vng_template_shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_aks_np_virtual_node_group":{"version":0,"block":{"attributes":{"availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"enable_node_public_ip":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubernetes_version":{"type":"string","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description_kind":"plain","optional":true},"max_count":{"type":"number","description_kind":"plain","optional":true},"max_pods_per_node":{"type":"number","description_kind":"plain","optional":true},"min_count":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"ocean_id":{"type":"string","description_kind":"plain","required":true},"os_disk_size_gb":{"type":"number","description_kind":"plain","optional":true},"os_disk_type":{"type":"string","description_kind":"plain","optional":true},"os_sku":{"type":"string","description_kind":"plain","optional":true},"os_type":{"type":"string","description_kind":"plain","optional":true},"pod_subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vnet_subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"filters":{"nesting_mode":"list","block":{"attributes":{"accelerated_networking":{"type":"string","description_kind":"plain","optional":true},"architectures":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_performance":{"type":"string","description_kind":"plain","optional":true},"exclude_series":{"type":["set","string"],"description_kind":"plain","optional":true},"gpu_types":{"type":["set","string"],"description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_nics":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"series":{"type":["set","string"],"description_kind":"plain","optional":true},"vm_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"linux_os_config":{"nesting_mode":"list","block":{"block_types":{"sysctls":{"nesting_mode":"list","block":{"attributes":{"vm_max_map_count":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scheduling":{"nesting_mode":"list","block":{"block_types":{"shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"taints":{"nesting_mode":"set","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"node_names":{"type":["list","string"],"description_kind":"plain","optional":true},"node_pool_names":{"type":["list","string"],"description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true},"respect_restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"vng_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_aws":{"version":0,"block":{"attributes":{"associate_ipv6_address":{"type":"bool","description_kind":"plain","optional":true},"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"blacklist":{"type":["list","string"],"description_kind":"plain","optional":true},"controller_id":{"type":"string","description_kind":"plain","optional":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true,"computed":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"grace_period":{"type":"number","description_kind":"plain","optional":true},"health_check_unhealthy_duration_before_replacement":{"type":"number","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"key_name":{"type":"string","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"monitoring":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true},"reserved_enis":{"type":"number","description_kind":"plain","optional":true},"root_volume_size":{"type":"number","description_kind":"plain","optional":true},"security_groups":{"type":["list","string"],"description_kind":"plain","required":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"spread_nodes_by":{"type":"string","description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","required":true},"use_as_template_only":{"type":"bool","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true},"whitelist":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"attach_load_balancer":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscaler":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true},"autoscale_cooldown":{"type":"number","description_kind":"plain","optional":true},"autoscale_is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"autoscale_is_enabled":{"type":"bool","description_kind":"plain","optional":true},"enable_automatic_and_manual_headroom":{"type":"bool","description_kind":"plain","optional":true},"extended_resource_definitions":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"is_aggressive_scale_down_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"autoscale_headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_iops":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"cluster_orientation":{"nesting_mode":"list","block":{"attributes":{"availability_vs_cost":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"detach_load_balancer":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"filters":{"nesting_mode":"list","block":{"attributes":{"architectures":{"type":["set","string"],"description_kind":"plain","optional":true},"categories":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_types":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_families":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_metal":{"type":"bool","description_kind":"plain","optional":true},"hypervisor":{"type":["set","string"],"description_kind":"plain","optional":true},"include_families":{"type":["set","string"],"description_kind":"plain","optional":true},"is_ena_supported":{"type":"string","description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_network_performance":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_enis":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_network_performance":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"root_device_types":{"type":["set","string"],"description_kind":"plain","optional":true},"virtualization_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"instance_metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"load_balancers":{"nesting_mode":"list","block":{"attributes":{"arn":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"logging":{"nesting_mode":"list","block":{"block_types":{"export":{"nesting_mode":"list","block":{"block_types":{"s3":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"resource_tag_specification":{"nesting_mode":"list","block":{"attributes":{"should_tag_volumes":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scheduled_task":{"nesting_mode":"list","block":{"block_types":{"shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"tasks":{"nesting_mode":"list","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"block_types":{"ami_auto_update":{"nesting_mode":"list","block":{"attributes":{"apply_roll":{"type":"bool","description_kind":"plain","optional":true},"minor_version":{"type":"bool","description_kind":"plain","optional":true},"patch":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"ami_auto_update_cluster_roll":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"parameters_cluster_roll":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"auto_apply_tags":{"type":"bool","description_kind":"plain","optional":true},"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"conditioned_roll_params":{"type":["list","string"],"description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","required":true},"launch_spec_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_aws_extended_resource_definition":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"resource_mapping":{"type":["map","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_ocean_aws_launch_spec":{"version":0,"block":{"attributes":{"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"ocean_id":{"type":"string","description_kind":"plain","required":true},"preferred_od_types":{"type":["list","string"],"description_kind":"plain","optional":true},"preferred_spot_types":{"type":["list","string"],"description_kind":"plain","optional":true},"reserved_enis":{"type":"number","description_kind":"plain","optional":true},"restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"root_volume_size":{"type":"number","description_kind":"plain","optional":true},"security_groups":{"type":["list","string"],"description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"autoscale_down":{"nesting_mode":"list","block":{"attributes":{"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"autoscale_headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_headrooms_automatic":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","optional":true},"no_device":{"type":"string","description_kind":"plain","optional":true},"virtual_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"create_options":{"nesting_mode":"list","block":{"attributes":{"initial_nodes":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"delete_options":{"nesting_mode":"list","block":{"attributes":{"delete_nodes":{"type":"bool","description_kind":"plain","optional":true},"force_delete":{"type":"bool","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"elastic_ip_pool":{"nesting_mode":"set","block":{"block_types":{"tag_selector":{"nesting_mode":"list","block":{"attributes":{"tag_key":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ephemeral_storage":{"nesting_mode":"list","block":{"attributes":{"ephemeral_storage_device_name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"images":{"nesting_mode":"list","block":{"attributes":{"image_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"instance_metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"instance_types_filters":{"nesting_mode":"list","block":{"attributes":{"categories":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_types":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_families":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_metal":{"type":"bool","description_kind":"plain","optional":true},"hypervisor":{"type":["set","string"],"description_kind":"plain","optional":true},"include_families":{"type":["set","string"],"description_kind":"plain","optional":true},"is_ena_supported":{"type":"string","description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_network_performance":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_enis":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_network_performance":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"root_device_types":{"type":["set","string"],"description_kind":"plain","optional":true},"virtualization_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_instance_count":{"type":"number","description_kind":"plain","optional":true},"min_instance_count":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scheduling_shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scheduling_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"task_headroom":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"strategy":{"nesting_mode":"list","block":{"attributes":{"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"taints":{"nesting_mode":"set","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_size_percentage":{"type":"number","description_kind":"plain","required":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_ecs":{"version":0,"block":{"attributes":{"associate_public_ip_address":{"type":"bool","description_kind":"plain","optional":true},"blacklist":{"type":["list","string"],"description_kind":"plain","optional":true},"cluster_name":{"type":"string","description_kind":"plain","required":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true,"computed":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"ebs_optimized":{"type":"bool","description_kind":"plain","optional":true},"fallback_to_ondemand":{"type":"bool","description_kind":"plain","optional":true},"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"max_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"monitoring":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","required":true},"security_group_ids":{"type":["list","string"],"description_kind":"plain","required":true},"spot_percentage":{"type":"number","description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","required":true},"use_as_template_only":{"type":"bool","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"utilize_commitments":{"type":"bool","description_kind":"plain","optional":true},"utilize_reserved_instances":{"type":"bool","description_kind":"plain","optional":true},"whitelist":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true},"enable_automatic_and_manual_headroom":{"type":"bool","description_kind":"plain","optional":true},"is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"should_scale_down_non_service_tasks":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"down":{"nesting_mode":"list","block":{"attributes":{"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","required":true},"no_device":{"type":"string","description_kind":"plain","optional":true},"virtual_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"cluster_orientation":{"nesting_mode":"list","block":{"attributes":{"availability_vs_cost":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"filters":{"nesting_mode":"list","block":{"attributes":{"architectures":{"type":["set","string"],"description_kind":"plain","optional":true},"categories":{"type":["set","string"],"description_kind":"plain","optional":true},"disk_types":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_families":{"type":["set","string"],"description_kind":"plain","optional":true},"exclude_metal":{"type":"bool","description_kind":"plain","optional":true},"hypervisor":{"type":["set","string"],"description_kind":"plain","optional":true},"include_families":{"type":["set","string"],"description_kind":"plain","optional":true},"is_ena_supported":{"type":"string","description_kind":"plain","optional":true},"max_gpu":{"type":"number","description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_network_performance":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_enis":{"type":"number","description_kind":"plain","optional":true},"min_gpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_network_performance":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true},"root_device_types":{"type":["set","string"],"description_kind":"plain","optional":true},"virtualization_types":{"type":["set","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"instance_metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"logging":{"nesting_mode":"list","block":{"block_types":{"export":{"nesting_mode":"list","block":{"block_types":{"s3":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"optimize_images":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true},"should_optimize_ecs_ami":{"type":"bool","description_kind":"plain","required":true},"time_windows":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"set","block":{"block_types":{"shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"tasks":{"nesting_mode":"list","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"auto_apply_tags":{"type":"bool","description_kind":"plain","optional":true},"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_ecs_launch_spec":{"version":0,"block":{"attributes":{"iam_instance_profile":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"instance_types":{"type":["list","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"ocean_id":{"type":"string","description_kind":"plain","required":true},"preferred_spot_types":{"type":["list","string"],"description_kind":"plain","optional":true},"restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true},"security_group_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"subnet_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"attributes":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"block_device_mappings":{"nesting_mode":"list","block":{"attributes":{"device_name":{"type":"string","description_kind":"plain","required":true},"no_device":{"type":"string","description_kind":"plain","optional":true},"virtual_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"ebs":{"nesting_mode":"list","block":{"attributes":{"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description_kind":"plain","optional":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"throughput":{"type":"number","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dynamic_volume_size":{"nesting_mode":"list","block":{"attributes":{"base_size":{"type":"number","description_kind":"plain","required":true},"resource":{"type":"string","description_kind":"plain","required":true},"size_per_resource_unit":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"images":{"nesting_mode":"list","block":{"attributes":{"image_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"instance_metadata_options":{"nesting_mode":"list","block":{"attributes":{"http_put_response_hop_limit":{"type":"number","description_kind":"plain","optional":true},"http_tokens":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"scheduling_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"task_headroom":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"strategy":{"nesting_mode":"set","block":{"attributes":{"spot_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_ocean_gke_import":{"version":0,"block":{"attributes":{"blacklist":{"type":["list","string"],"description_kind":"plain","optional":true},"cluster_controller_id":{"type":"string","description_kind":"plain","computed":true},"cluster_name":{"type":"string","description_kind":"plain","required":true},"controller_cluster_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"desired_capacity":{"type":"number","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","required":true},"max_size":{"type":"number","description_kind":"plain","optional":true},"min_size":{"type":"number","description_kind":"plain","optional":true},"root_volume_type":{"type":"string","description_kind":"plain","optional":true},"use_as_template_only":{"type":"bool","description_kind":"plain","optional":true},"whitelist":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"auto_update":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"autoscaler":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true},"cooldown":{"type":"number","description_kind":"plain","optional":true},"enable_automatic_and_manual_headroom":{"type":"bool","description_kind":"plain","optional":true},"is_auto_config":{"type":"bool","description_kind":"plain","optional":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"down":{"nesting_mode":"list","block":{"attributes":{"evaluation_periods":{"type":"number","description_kind":"plain","optional":true},"is_aggressive_scale_down_enabled":{"type":"bool","description_kind":"plain","optional":true},"max_scale_down_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"headroom":{"nesting_mode":"list","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"backend_services":{"nesting_mode":"set","block":{"attributes":{"location_type":{"type":"string","description_kind":"plain","optional":true},"scheme":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"named_ports":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"ports":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"filters":{"nesting_mode":"list","block":{"attributes":{"exclude_families":{"type":["set","string"],"description_kind":"plain","optional":true},"include_families":{"type":["set","string"],"description_kind":"plain","optional":true},"max_memory_gib":{"type":"number","description_kind":"plain","optional":true},"max_vcpu":{"type":"number","description_kind":"plain","optional":true},"min_memory_gib":{"type":"number","description_kind":"plain","optional":true},"min_vcpu":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scheduled_task":{"nesting_mode":"list","block":{"block_types":{"shutdown_hours":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"time_windows":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"tasks":{"nesting_mode":"list","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"task_parameters":{"nesting_mode":"list","block":{"block_types":{"cluster_roll":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","optional":true},"comment":{"type":"string","description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"shielded_instance_config":{"nesting_mode":"list","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_secure_boot":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"strategy":{"nesting_mode":"list","block":{"attributes":{"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"preemptible_percentage":{"type":"number","description_kind":"plain","optional":true},"provisioning_model":{"type":"string","description_kind":"plain","optional":true},"should_utilize_commitments":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"conditioned_roll":{"type":"bool","description_kind":"plain","optional":true},"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_min_healthy_percentage":{"type":"number","description_kind":"plain","optional":true},"batch_size_percentage":{"type":"number","description_kind":"plain","required":true},"launch_spec_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"respect_pdb":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_gke_launch_spec":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_types":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"node_pool_name":{"type":"string","description_kind":"plain","optional":true},"ocean_id":{"type":"string","description_kind":"plain","required":true},"restrict_scale_down":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"root_volume_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"root_volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_account":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source_image":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"block_types":{"autoscale_headrooms":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"autoscale_headrooms_automatic":{"nesting_mode":"list","block":{"attributes":{"auto_headroom_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"create_options":{"nesting_mode":"list","block":{"attributes":{"initial_nodes":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"metadata":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"network_interfaces":{"nesting_mode":"set","block":{"attributes":{"network":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"access_configs":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"alias_ip_ranges":{"nesting_mode":"set","block":{"attributes":{"ip_cidr_range":{"type":"string","description_kind":"plain","required":true},"subnetwork_range_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"resource_limits":{"nesting_mode":"list","block":{"attributes":{"max_instance_count":{"type":"number","description_kind":"plain","optional":true},"min_instance_count":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scheduling_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"task_headroom":{"nesting_mode":"set","block":{"attributes":{"cpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"gpu_per_unit":{"type":"number","description_kind":"plain","optional":true},"memory_per_unit":{"type":"number","description_kind":"plain","optional":true},"num_of_units":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"shielded_instance_config":{"nesting_mode":"set","block":{"attributes":{"enable_integrity_monitoring":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_secure_boot":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"storage":{"nesting_mode":"set","block":{"attributes":{"local_ssd_count":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"strategy":{"nesting_mode":"list","block":{"attributes":{"preemptible_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"taints":{"nesting_mode":"set","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"update_policy":{"nesting_mode":"list","block":{"attributes":{"should_roll":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"roll_config":{"nesting_mode":"list","block":{"attributes":{"batch_size_percentage":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_gke_launch_spec_import":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"node_pool_name":{"type":"string","description_kind":"plain","required":true},"ocean_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_ocean_right_sizing_rule":{"version":0,"block":{"attributes":{"exclude_preliminary_recommendations":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ocean_id":{"type":"string","description_kind":"plain","optional":true},"restart_replicas":{"type":"string","description_kind":"plain","optional":true},"rule_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"attach_workloads":{"nesting_mode":"set","block":{"block_types":{"namespaces":{"nesting_mode":"set","block":{"attributes":{"namespace_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"workloads":{"nesting_mode":"set","block":{"attributes":{"regex_name":{"type":"string","description_kind":"plain","optional":true},"workload_name":{"type":"string","description_kind":"plain","optional":true},"workload_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"detach_workloads":{"nesting_mode":"set","block":{"block_types":{"namespaces":{"nesting_mode":"set","block":{"attributes":{"namespace_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"labels":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"workloads":{"nesting_mode":"set","block":{"attributes":{"regex_name":{"type":"string","description_kind":"plain","optional":true},"workload_name":{"type":"string","description_kind":"plain","optional":true},"workload_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"recommendation_application_boundaries":{"nesting_mode":"list","block":{"attributes":{"cpu_max":{"type":"number","description_kind":"plain","optional":true},"cpu_min":{"type":"number","description_kind":"plain","optional":true},"memory_max":{"type":"number","description_kind":"plain","optional":true},"memory_min":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"recommendation_application_hpa":{"nesting_mode":"set","block":{"attributes":{"allow_hpa_recommendations":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"recommendation_application_intervals":{"nesting_mode":"set","block":{"attributes":{"repetition_basis":{"type":"string","description_kind":"plain","required":true}},"block_types":{"monthly_repetition_basis":{"nesting_mode":"set","block":{"attributes":{"interval_months":{"type":["list","number"],"description_kind":"plain","required":true},"week_of_the_month":{"type":["list","string"],"description_kind":"plain","required":true}},"block_types":{"weekly_repetition_basis":{"nesting_mode":"set","block":{"attributes":{"interval_days":{"type":["list","string"],"description_kind":"plain","required":true},"interval_hours_end_time":{"type":"string","description_kind":"plain","required":true},"interval_hours_start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"weekly_repetition_basis":{"nesting_mode":"set","block":{"attributes":{"interval_days":{"type":["list","string"],"description_kind":"plain","required":true},"interval_hours_end_time":{"type":"string","description_kind":"plain","required":true},"interval_hours_start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1},"recommendation_application_min_threshold":{"nesting_mode":"set","block":{"attributes":{"cpu_percentage":{"type":"number","description_kind":"plain","optional":true},"memory_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"recommendation_application_overhead_values":{"nesting_mode":"set","block":{"attributes":{"cpu_percentage":{"type":"number","description_kind":"plain","optional":true},"memory_percentage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_ocean_spark":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ocean_cluster_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"compute":{"nesting_mode":"list","block":{"attributes":{"create_vngs":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"use_taints":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"ingress":{"nesting_mode":"list","block":{"attributes":{"service_annotations":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true}},"block_types":{"controller":{"nesting_mode":"list","block":{"attributes":{"managed":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"custom_endpoint":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"load_balancer":{"nesting_mode":"list","block":{"attributes":{"managed":{"type":"bool","description_kind":"plain","optional":true},"service_annotations":{"type":["map","string"],"description_kind":"plain","optional":true},"target_group_arn":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"private_link":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","optional":true},"vpc_endpoint_service":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"log_collection":{"nesting_mode":"list","block":{"attributes":{"collect_app_logs":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"spark":{"nesting_mode":"list","block":{"attributes":{"additional_app_namespaces":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"webhook":{"nesting_mode":"list","block":{"attributes":{"host_network_ports":{"type":["list","number"],"description_kind":"plain","optional":true,"computed":true},"use_host_network":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"workspaces":{"nesting_mode":"list","block":{"block_types":{"storage":{"nesting_mode":"list","block":{"block_types":{"defaults":{"nesting_mode":"list","block":{"attributes":{"storage_class_name":{"type":"string","description":"The name of the persistent volume storage class to use by default for new workspaces. Leave it empty to use the cluster defaults.","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_ocean_spark_virtual_node_group":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ocean_spark_cluster_id":{"type":"string","description_kind":"plain","required":true},"virtual_node_group_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"spotinst_oceancd_rollout_spec":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rollout_spec_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"failure_policy":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"spot_deployment":{"nesting_mode":"list","block":{"attributes":{"spot_deployment_cluster_id":{"type":"string","description_kind":"plain","optional":true},"spot_deployment_name":{"type":"string","description_kind":"plain","optional":true},"spot_deployment_namespace":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"spot_deployments":{"nesting_mode":"set","block":{"attributes":{"spot_deployments_cluster_id":{"type":"string","description_kind":"plain","optional":true},"spot_deployments_name":{"type":"string","description_kind":"plain","optional":true},"spot_deployments_namespace":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"strategy":{"nesting_mode":"list","block":{"attributes":{"strategy_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"args":{"nesting_mode":"set","block":{"attributes":{"arg_name":{"type":"string","description_kind":"plain","required":true},"arg_value":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"value_from":{"nesting_mode":"list","block":{"block_types":{"field_ref":{"nesting_mode":"list","block":{"attributes":{"field_path":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"traffic":{"nesting_mode":"list","block":{"attributes":{"canary_service":{"type":"string","description_kind":"plain","optional":true},"stable_service":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"alb":{"nesting_mode":"list","block":{"attributes":{"alb_annotation_prefix":{"type":"string","description_kind":"plain","optional":true},"alb_ingress":{"type":"string","description_kind":"plain","required":true},"alb_root_service":{"type":"string","description_kind":"plain","required":true},"service_port":{"type":"number","description_kind":"plain","required":true}},"block_types":{"stickiness_config":{"nesting_mode":"list","block":{"attributes":{"duration_seconds":{"type":"number","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"ambassador":{"nesting_mode":"list","block":{"attributes":{"mappings":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"istio":{"nesting_mode":"list","block":{"block_types":{"destination_rule":{"nesting_mode":"list","block":{"attributes":{"canary_subset_name":{"type":"string","description_kind":"plain","required":true},"destination_rule_name":{"type":"string","description_kind":"plain","required":true},"stable_subset_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"virtual_services":{"nesting_mode":"set","block":{"attributes":{"virtual_service_name":{"type":"string","description_kind":"plain","required":true},"virtual_service_routes":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"tls_routes":{"nesting_mode":"set","block":{"attributes":{"port":{"type":"number","description_kind":"plain","optional":true},"sni_hosts":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"nginx":{"nesting_mode":"list","block":{"attributes":{"nginx_annotation_prefix":{"type":"string","description_kind":"plain","optional":true},"stable_ingress":{"type":"string","description_kind":"plain","required":true}},"block_types":{"additional_ingress_annotation":{"nesting_mode":"list","block":{"attributes":{"canary_by_header":{"type":"string","description_kind":"plain","optional":true},"key1":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"ping_pong":{"nesting_mode":"list","block":{"attributes":{"ping_service":{"type":"string","description_kind":"plain","required":true},"pong_service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"smi":{"nesting_mode":"list","block":{"attributes":{"smi_root_service":{"type":"string","description_kind":"plain","optional":true},"traffic_split_name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_oceancd_strategy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"strategy_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"canary":{"nesting_mode":"list","block":{"block_types":{"background_verification":{"nesting_mode":"list","block":{"attributes":{"template_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"steps":{"nesting_mode":"list","block":{"attributes":{"set_weight":{"type":"number","description_kind":"plain","optional":true},"step_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"pause":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"set_canary_scale":{"nesting_mode":"list","block":{"attributes":{"match_traffic_weight":{"type":"bool","description_kind":"plain","optional":true},"replicas":{"type":"number","description_kind":"plain","optional":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"set_header_route":{"nesting_mode":"list","block":{"attributes":{"header_route_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"match":{"nesting_mode":"list","block":{"attributes":{"header_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header_value":{"nesting_mode":"list","block":{"attributes":{"exact":{"type":"string","description_kind":"plain","optional":true},"prefix":{"type":"string","description_kind":"plain","optional":true},"regex":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"verification":{"nesting_mode":"list","block":{"attributes":{"template_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"rolling":{"nesting_mode":"list","block":{"block_types":{"steps":{"nesting_mode":"list","block":{"attributes":{"steps_name":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"pause":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"verification":{"nesting_mode":"list","block":{"attributes":{"template_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_oceancd_verification_provider":{"version":0,"block":{"attributes":{"cluster_ids":{"type":["list","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"cloud_watch":{"nesting_mode":"list","block":{"attributes":{"iam_arn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"datadog":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"api_key":{"type":"string","description_kind":"plain","required":true},"app_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"jenkins":{"nesting_mode":"list","block":{"attributes":{"api_token":{"type":"string","description_kind":"plain","required":true},"base_url":{"type":"string","description_kind":"plain","required":true},"username":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"new_relic":{"nesting_mode":"list","block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"base_url_nerd_graph":{"type":"string","description_kind":"plain","optional":true},"base_url_rest":{"type":"string","description_kind":"plain","optional":true},"personal_api_key":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"prometheus":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"spotinst_oceancd_verification_template":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"args":{"nesting_mode":"set","block":{"attributes":{"arg_name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"value_from":{"nesting_mode":"list","block":{"block_types":{"secret_key_ref":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"metrics":{"nesting_mode":"set","block":{"attributes":{"consecutive_error_limit":{"type":"number","description_kind":"plain","optional":true},"count":{"type":"number","description_kind":"plain","optional":true},"dry_run":{"type":"bool","description_kind":"plain","optional":true},"failure_condition":{"type":"string","description_kind":"plain","optional":true},"failure_limit":{"type":"number","description_kind":"plain","optional":true},"initial_delay":{"type":"string","description_kind":"plain","optional":true},"interval":{"type":"string","description_kind":"plain","optional":true},"metrics_name":{"type":"string","description_kind":"plain","required":true},"success_condition":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"baseline":{"nesting_mode":"list","block":{"attributes":{"max_range":{"type":"number","description_kind":"plain","optional":true},"min_range":{"type":"number","description_kind":"plain","optional":true},"threshold":{"type":"string","description_kind":"plain","required":true}},"block_types":{"baseline_provider":{"nesting_mode":"list","block":{"block_types":{"datadog":{"nesting_mode":"list","block":{"attributes":{"datadog_query":{"type":"string","description_kind":"plain","required":true},"duration":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"new_relic":{"nesting_mode":"list","block":{"attributes":{"new_relic_query":{"type":"string","description_kind":"plain","required":true},"profile":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"prometheus":{"nesting_mode":"list","block":{"attributes":{"prometheus_query":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"provider":{"nesting_mode":"list","block":{"block_types":{"cloud_watch":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"metric_data_queries":{"nesting_mode":"set","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","required":true},"label":{"type":"string","description_kind":"plain","optional":true},"period":{"type":"number","description_kind":"plain","optional":true},"return_data":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"metric_stat":{"nesting_mode":"list","block":{"attributes":{"metric_period":{"type":"number","description_kind":"plain","optional":true},"stat":{"type":"string","description_kind":"plain","optional":true},"unit":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"metric":{"nesting_mode":"list","block":{"attributes":{"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dimensions":{"nesting_mode":"set","block":{"attributes":{"dimension_name":{"type":"string","description_kind":"plain","required":true},"dimension_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"datadog":{"nesting_mode":"list","block":{"attributes":{"datadog_query":{"type":"string","description_kind":"plain","optional":true},"duration":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"jenkins":{"nesting_mode":"list","block":{"attributes":{"jenkins_interval":{"type":"string","description_kind":"plain","required":true},"pipeline_name":{"type":"string","description_kind":"plain","required":true},"timeout":{"type":"string","description_kind":"plain","required":true},"tls_verification":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"jenkins_parameters":{"nesting_mode":"set","block":{"attributes":{"parameter_key":{"type":"string","description_kind":"plain","required":true},"parameter_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"job":{"nesting_mode":"list","block":{"block_types":{"spec":{"nesting_mode":"list","block":{"attributes":{"backoff_limit":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"job_template":{"nesting_mode":"list","block":{"block_types":{"template_spec":{"nesting_mode":"list","block":{"attributes":{"restart_policy":{"type":"string","description_kind":"plain","required":true}},"block_types":{"containers":{"nesting_mode":"set","block":{"attributes":{"command":{"type":["list","string"],"description_kind":"plain","required":true},"container_name":{"type":"string","description_kind":"plain","required":true},"image":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"new_relic":{"nesting_mode":"list","block":{"attributes":{"new_relic_query":{"type":"string","description_kind":"plain","required":true},"profile":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"prometheus":{"nesting_mode":"list","block":{"attributes":{"prometheus_query":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"web":{"nesting_mode":"list","block":{"attributes":{"body":{"type":"string","description_kind":"plain","optional":true},"insecure":{"type":"bool","description_kind":"plain","optional":true},"json_path":{"type":"string","description_kind":"plain","optional":true},"method":{"type":"string","description_kind":"plain","optional":true},"timeout_seconds":{"type":"number","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"web_header":{"nesting_mode":"set","block":{"attributes":{"web_header_key":{"type":"string","description_kind":"plain","required":true},"web_header_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_organization_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"policy_content":{"nesting_mode":"set","block":{"block_types":{"statements":{"nesting_mode":"set","block":{"attributes":{"actions":{"type":["list","string"],"description_kind":"plain","required":true},"effect":{"type":"string","description_kind":"plain","required":true},"resources":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"spotinst_organization_programmatic_user":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"user_group_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"accounts":{"nesting_mode":"set","block":{"attributes":{"account_id":{"type":"string","description_kind":"plain","required":true},"account_role":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"policies":{"nesting_mode":"set","block":{"attributes":{"policy_account_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"policy_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_organization_user":{"version":0,"block":{"attributes":{"email":{"type":"string","description_kind":"plain","required":true},"first_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","optional":true},"user_group_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"policies":{"nesting_mode":"set","block":{"attributes":{"policy_account_ids":{"type":["list","string"],"description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_organization_user_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"user_ids":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"policies":{"nesting_mode":"list","block":{"attributes":{"account_ids":{"type":["set","string"],"description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"spotinst_stateful_node_azure":{"version":0,"block":{"attributes":{"custom_data":{"type":"string","description_kind":"plain","optional":true,"computed":true},"data_disks_persistence_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"license_type":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os":{"type":"string","description_kind":"plain","required":true},"os_disk_persistence_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"preferred_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"should_persist_data_disks":{"type":"bool","description_kind":"plain","required":true},"should_persist_network":{"type":"bool","description_kind":"plain","required":true},"should_persist_os_disk":{"type":"bool","description_kind":"plain","required":true},"should_persist_vm":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"shutdown_script":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_data":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vm_name":{"type":"string","description_kind":"plain","optional":true},"vm_name_prefix":{"type":"string","description_kind":"plain","optional":true},"zones":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"attach_data_disk":{"nesting_mode":"list","block":{"attributes":{"data_disk_name":{"type":"string","description_kind":"plain","required":true},"data_disk_resource_group_name":{"type":"string","description_kind":"plain","required":true},"lun":{"type":"number","description_kind":"plain","optional":true},"size_gb":{"type":"number","description_kind":"plain","required":true},"storage_account_type":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"boot_diagnostics":{"nesting_mode":"list","block":{"attributes":{"is_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"storage_url":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"data_disk":{"nesting_mode":"list","block":{"attributes":{"lun":{"type":"number","description_kind":"plain","required":true},"size_gb":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"delete":{"nesting_mode":"list","block":{"attributes":{"disk_should_deallocate":{"type":"bool","description_kind":"plain","optional":true},"disk_ttl_in_hours":{"type":"number","description_kind":"plain","optional":true},"network_should_deallocate":{"type":"bool","description_kind":"plain","optional":true},"network_ttl_in_hours":{"type":"number","description_kind":"plain","optional":true},"public_ip_should_deallocate":{"type":"bool","description_kind":"plain","optional":true},"public_ip_ttl_in_hours":{"type":"number","description_kind":"plain","optional":true},"should_deregister_from_lb":{"type":"bool","description_kind":"plain","optional":true},"should_revert_to_od":{"type":"bool","description_kind":"plain","optional":true},"should_terminate_vm":{"type":"bool","description_kind":"plain","required":true},"snapshot_should_deallocate":{"type":"bool","description_kind":"plain","optional":true},"snapshot_ttl_in_hours":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"detach_data_disk":{"nesting_mode":"list","block":{"attributes":{"data_disk_name":{"type":"string","description_kind":"plain","required":true},"data_disk_resource_group_name":{"type":"string","description_kind":"plain","required":true},"should_deallocate":{"type":"bool","description_kind":"plain","required":true},"ttl_in_hours":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"extension":{"nesting_mode":"set","block":{"attributes":{"api_version":{"type":"string","description_kind":"plain","required":true},"minor_version_auto_upgrade":{"type":"bool","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"protected_settings":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"public_settings":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"publisher":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"health":{"nesting_mode":"list","block":{"attributes":{"auto_healing":{"type":"bool","description_kind":"plain","required":true},"grace_period":{"type":"number","description_kind":"plain","optional":true,"computed":true},"health_check_types":{"type":["list","string"],"description_kind":"plain","required":true},"unhealthy_duration":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"image":{"nesting_mode":"list","block":{"block_types":{"custom_image":{"nesting_mode":"list","block":{"attributes":{"custom_image_resource_group_name":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"gallery":{"nesting_mode":"list","block":{"attributes":{"gallery_name":{"type":"string","description_kind":"plain","required":true},"gallery_resource_group_name":{"type":"string","description_kind":"plain","required":true},"image_name":{"type":"string","description_kind":"plain","required":true},"spot_account_id":{"type":"string","description_kind":"plain","optional":true},"version_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"marketplace_image":{"nesting_mode":"list","block":{"attributes":{"offer":{"type":"string","description_kind":"plain","required":true},"publisher":{"type":"string","description_kind":"plain","required":true},"sku":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"import_vm":{"nesting_mode":"list","block":{"attributes":{"draining_timeout":{"type":"number","description_kind":"plain","optional":true},"original_vm_name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"resources_retention_time":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"load_balancer":{"nesting_mode":"set","block":{"attributes":{"backend_pool_names":{"type":["list","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true},"sku":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"login":{"nesting_mode":"set","block":{"attributes":{"password":{"type":"string","description_kind":"plain","optional":true},"ssh_public_key":{"type":"string","description_kind":"plain","optional":true},"user_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"managed_service_identities":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network":{"nesting_mode":"list","block":{"attributes":{"network_resource_group_name":{"type":"string","description_kind":"plain","required":true},"virtual_network_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"network_interface":{"nesting_mode":"list","block":{"attributes":{"assign_public_ip":{"type":"bool","description_kind":"plain","optional":true},"enable_ip_forwarding":{"type":"bool","description_kind":"plain","optional":true},"is_primary":{"type":"bool","description_kind":"plain","required":true},"private_ip_addresses":{"type":["list","string"],"description_kind":"plain","optional":true},"public_ip_sku":{"type":"string","description_kind":"plain","optional":true},"subnet_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"additional_ip_configurations":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"private_ip_address_version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"application_security_groups":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"network_resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"network_security_group":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"network_resource_group_name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"public_ips":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"network_resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"max_items":1},"os_disk":{"nesting_mode":"set","block":{"attributes":{"caching":{"type":"string","description_kind":"plain","optional":true},"size_gb":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"proximity_placement_groups":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"scheduling_task":{"nesting_mode":"set","block":{"attributes":{"cron_expression":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"secret":{"nesting_mode":"set","block":{"block_types":{"source_vault":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"resource_group_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"vault_certificates":{"nesting_mode":"list","block":{"attributes":{"certificate_store":{"type":"string","description_kind":"plain","optional":true},"certificate_url":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"security":{"nesting_mode":"list","block":{"attributes":{"confidential_os_disk_encryption":{"type":"bool","description_kind":"plain","optional":true},"encryption_at_host":{"type":"bool","description_kind":"plain","optional":true},"secure_boot_enabled":{"type":"bool","description_kind":"plain","optional":true},"security_type":{"type":"string","description_kind":"plain","optional":true},"vtpm_enabled":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"signal":{"nesting_mode":"list","block":{"attributes":{"timeout":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"strategy":{"nesting_mode":"list","block":{"attributes":{"availability_vs_cost":{"type":"number","description_kind":"plain","optional":true},"draining_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"fallback_to_on_demand":{"type":"bool","description_kind":"plain","required":true},"od_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"optimization_windows":{"type":["list","string"],"description_kind":"plain","optional":true},"preferred_life_cycle":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vm_admins":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"capacity_reservation":{"nesting_mode":"set","block":{"attributes":{"should_utilize":{"type":"bool","description_kind":"plain","required":true},"utilization_strategy":{"type":"string","description_kind":"plain","required":true}},"block_types":{"capacity_reservation_groups":{"nesting_mode":"set","block":{"attributes":{"crg_name":{"type":"string","description_kind":"plain","required":true},"crg_resource_group_name":{"type":"string","description_kind":"plain","required":true},"crg_should_prioritize":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"revert_to_spot":{"nesting_mode":"list","block":{"attributes":{"perform_at":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"tag":{"nesting_mode":"set","block":{"attributes":{"tag_key":{"type":"string","description_kind":"plain","required":true},"tag_value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"update_state":{"nesting_mode":"list","block":{"attributes":{"state":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"vm_sizes":{"nesting_mode":"list","block":{"attributes":{"excluded_vm_sizes":{"type":["list","string"],"description_kind":"plain","optional":true},"od_sizes":{"type":["list","string"],"description_kind":"plain","required":true},"preferred_spot_sizes":{"type":["list","string"],"description_kind":"plain","optional":true},"spot_sizes":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"spot_size_attributes":{"nesting_mode":"list","block":{"attributes":{"max_cpu":{"type":"number","description_kind":"plain","optional":true},"max_memory":{"type":"number","description_kind":"plain","optional":true},"max_storage":{"type":"number","description_kind":"plain","optional":true},"min_cpu":{"type":"number","description_kind":"plain","optional":true},"min_memory":{"type":"number","description_kind":"plain","optional":true},"min_storage":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"spotinst_subscription":{"version":0,"block":{"attributes":{"endpoint":{"type":"string","description_kind":"plain","required":true},"event_type":{"type":"string","description_kind":"plain","required":true},"format":{"type":["map","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"resource_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}}}}} diff --git a/examples-generated/oceanaksvng/v1alpha1/oceanaksvng.yaml b/examples-generated/oceanaksvng/v1alpha1/oceanaksvng.yaml index b573627..0d8e39a 100644 --- a/examples-generated/oceanaksvng/v1alpha1/oceanaksvng.yaml +++ b/examples-generated/oceanaksvng/v1alpha1/oceanaksvng.yaml @@ -66,6 +66,12 @@ spec: osType: Linux podSubnetIds: - /subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default + scheduling: + - shutdownHours: + - isEnabled: true + timeWindows: + - Fri:15:30-Sat:20:30 + - Sun:08:30-Mon:08:30 spotPercentage: 50 tags: tagKey: env diff --git a/examples-generated/oceangke/v1alpha1/oceangke.yaml b/examples-generated/oceangke/v1alpha1/oceangke.yaml index d2413ec..d5ffc28 100644 --- a/examples-generated/oceangke/v1alpha1/oceangke.yaml +++ b/examples-generated/oceangke/v1alpha1/oceangke.yaml @@ -8,6 +8,8 @@ metadata: name: example spec: forProvider: + autoUpdate: + - isEnabled: true backendServices: - locationType: regional namedPorts: diff --git a/package/crds/oceanaks.spot.upbound.io_oceanaks.yaml b/package/crds/oceanaks.spot.upbound.io_oceanaks.yaml index 5bb51d7..d76a460 100644 --- a/package/crds/oceanaks.spot.upbound.io_oceanaks.yaml +++ b/package/crds/oceanaks.spot.upbound.io_oceanaks.yaml @@ -310,6 +310,33 @@ spec: type: array type: object type: array + logging: + description: The Ocean AKS Logging Object. + items: + properties: + export: + description: The Ocean AKS Logging Export object. + items: + properties: + azureBlob: + description: Exports your cluster's logs to the storage + account and container configured on the storage + account data integration given. Each file contains + logs of 3 minutes where each log is separated by + a new line and saved as a JSON. The file formats + are container/accountId“oceanId“oceanName_startTime.log + items: + properties: + id: + description: The identifier of The Azure Blob + data integration to export the logs to. + type: string + type: object + type: array + type: object + type: array + type: object + type: array maxCount: description: Maximum node count limit. type: number @@ -350,7 +377,7 @@ spec: properties: shutdownHours: description: An object used to specify times that the nodes - in the cluster will be taken down. + in the virtual node group will be stopped. items: properties: isEnabled: @@ -359,7 +386,25 @@ spec: type: boolean timeWindows: description: The times that the shutdown hours will - apply. Required if isEnabled is true. + apply. Required if is_enabled is true. + items: + type: string + type: array + type: object + type: array + suspensionHours: + description: An object used to specify times that the cluster + should be exempted from Ocean's scaling-down activities + to ensure uninterrupted operations during critical periods. + items: + properties: + isEnabled: + description: Enable automatic headroom. When set to + true, Ocean configures and optimizes headroom automatically. + type: boolean + timeWindows: + description: The times that the shutdown hours will + apply. Required if is_enabled is true. items: type: string type: array @@ -438,11 +483,71 @@ spec: type: array type: object type: array + parametersUpgradeConfig: + description: The parameters of the upgrade config + scheduling task. + items: + properties: + applyRoll: + description: '- When set to True, a cluster + roll will be initiated if a new version + is available to upgrade in the dedicated + virtual node groups.' + type: boolean + rollParameters: + description: '- The parameters of the + cluster roll that will be initiated.' + items: + properties: + batchMinHealthyPercentage: + description: Indicates the threshold + of minimum healthy nodes in single + batch. If the amount of healthy + nodes in single batch is under + the threshold, the roll will fail. + If exists, the parameter value + will be in range of 1-100. In + case of null as value, the default + value in the backend will be 50%. + Value of param should represent + the number in percentage (%) of + the batch. + type: number + batchSizePercentage: + description: Value as a percent + to set the size of a batch in + a roll. Valid values are 0-100. + In case of null as value, the + default value in the backend will + be 20%. + type: number + comment: + description: Add a comment description + for the roll. The comment is limited + to 256 chars and optional. + type: string + respectPdb: + description: During the roll, if + the parameter is set to true we + honor PDB during the nodes replacement. + type: boolean + respectRestrictScaleDown: + description: During the roll, if + the parameter is set to true we + honor Restrict Scale Down label + during the nodes replacement. + type: boolean + type: object + type: array + scopeVersion: + type: string + type: object + type: array type: object type: array taskType: - description: 'Valid values: clusterRoll The type of - the scheduling task.' + description: 'The type of the scheduling task. Valid + values: "clusterRoll,autoUpgradeVersion".' type: string type: object type: array @@ -572,6 +677,32 @@ spec: items: type: string type: array + vngTemplateScheduling: + description: An object used to specify times when the virtual + node group will turn off all its node pools. Once the shutdown + time will be over, the virtual node group will return to its + previous state. + items: + properties: + vngTemplateShutdownHours: + description: An object used to specify times that the nodes + in the virtual node group will be stopped. + items: + properties: + isEnabled: + description: Enable automatic headroom. When set to + true, Ocean configures and optimizes headroom automatically. + type: boolean + timeWindows: + description: The times that the shutdown hours will + apply. Required if is_enabled is true. + items: + type: string + type: array + type: object + type: array + type: object + type: array type: object initProvider: description: |- @@ -823,6 +954,33 @@ spec: type: array type: object type: array + logging: + description: The Ocean AKS Logging Object. + items: + properties: + export: + description: The Ocean AKS Logging Export object. + items: + properties: + azureBlob: + description: Exports your cluster's logs to the storage + account and container configured on the storage + account data integration given. Each file contains + logs of 3 minutes where each log is separated by + a new line and saved as a JSON. The file formats + are container/accountId“oceanId“oceanName_startTime.log + items: + properties: + id: + description: The identifier of The Azure Blob + data integration to export the logs to. + type: string + type: object + type: array + type: object + type: array + type: object + type: array maxCount: description: Maximum node count limit. type: number @@ -863,7 +1021,7 @@ spec: properties: shutdownHours: description: An object used to specify times that the nodes - in the cluster will be taken down. + in the virtual node group will be stopped. items: properties: isEnabled: @@ -872,7 +1030,25 @@ spec: type: boolean timeWindows: description: The times that the shutdown hours will - apply. Required if isEnabled is true. + apply. Required if is_enabled is true. + items: + type: string + type: array + type: object + type: array + suspensionHours: + description: An object used to specify times that the cluster + should be exempted from Ocean's scaling-down activities + to ensure uninterrupted operations during critical periods. + items: + properties: + isEnabled: + description: Enable automatic headroom. When set to + true, Ocean configures and optimizes headroom automatically. + type: boolean + timeWindows: + description: The times that the shutdown hours will + apply. Required if is_enabled is true. items: type: string type: array @@ -951,11 +1127,71 @@ spec: type: array type: object type: array + parametersUpgradeConfig: + description: The parameters of the upgrade config + scheduling task. + items: + properties: + applyRoll: + description: '- When set to True, a cluster + roll will be initiated if a new version + is available to upgrade in the dedicated + virtual node groups.' + type: boolean + rollParameters: + description: '- The parameters of the + cluster roll that will be initiated.' + items: + properties: + batchMinHealthyPercentage: + description: Indicates the threshold + of minimum healthy nodes in single + batch. If the amount of healthy + nodes in single batch is under + the threshold, the roll will fail. + If exists, the parameter value + will be in range of 1-100. In + case of null as value, the default + value in the backend will be 50%. + Value of param should represent + the number in percentage (%) of + the batch. + type: number + batchSizePercentage: + description: Value as a percent + to set the size of a batch in + a roll. Valid values are 0-100. + In case of null as value, the + default value in the backend will + be 20%. + type: number + comment: + description: Add a comment description + for the roll. The comment is limited + to 256 chars and optional. + type: string + respectPdb: + description: During the roll, if + the parameter is set to true we + honor PDB during the nodes replacement. + type: boolean + respectRestrictScaleDown: + description: During the roll, if + the parameter is set to true we + honor Restrict Scale Down label + during the nodes replacement. + type: boolean + type: object + type: array + scopeVersion: + type: string + type: object + type: array type: object type: array taskType: - description: 'Valid values: clusterRoll The type of - the scheduling task.' + description: 'The type of the scheduling task. Valid + values: "clusterRoll,autoUpgradeVersion".' type: string type: object type: array @@ -1085,6 +1321,32 @@ spec: items: type: string type: array + vngTemplateScheduling: + description: An object used to specify times when the virtual + node group will turn off all its node pools. Once the shutdown + time will be over, the virtual node group will return to its + previous state. + items: + properties: + vngTemplateShutdownHours: + description: An object used to specify times that the nodes + in the virtual node group will be stopped. + items: + properties: + isEnabled: + description: Enable automatic headroom. When set to + true, Ocean configures and optimizes headroom automatically. + type: boolean + timeWindows: + description: The times that the shutdown hours will + apply. Required if is_enabled is true. + items: + type: string + type: array + type: object + type: array + type: object + type: array type: object managementPolicies: default: @@ -1496,6 +1758,8 @@ spec: type: object type: array id: + description: The identifier of The Azure Blob data integration + to export the logs to. type: string kubernetesVersion: description: The desired Kubernetes version of the launched nodes. @@ -1527,6 +1791,33 @@ spec: type: array type: object type: array + logging: + description: The Ocean AKS Logging Object. + items: + properties: + export: + description: The Ocean AKS Logging Export object. + items: + properties: + azureBlob: + description: Exports your cluster's logs to the storage + account and container configured on the storage + account data integration given. Each file contains + logs of 3 minutes where each log is separated by + a new line and saved as a JSON. The file formats + are container/accountId“oceanId“oceanName_startTime.log + items: + properties: + id: + description: The identifier of The Azure Blob + data integration to export the logs to. + type: string + type: object + type: array + type: object + type: array + type: object + type: array maxCount: description: Maximum node count limit. type: number @@ -1567,7 +1858,25 @@ spec: properties: shutdownHours: description: An object used to specify times that the nodes - in the cluster will be taken down. + in the virtual node group will be stopped. + items: + properties: + isEnabled: + description: Enable automatic headroom. When set to + true, Ocean configures and optimizes headroom automatically. + type: boolean + timeWindows: + description: The times that the shutdown hours will + apply. Required if is_enabled is true. + items: + type: string + type: array + type: object + type: array + suspensionHours: + description: An object used to specify times that the cluster + should be exempted from Ocean's scaling-down activities + to ensure uninterrupted operations during critical periods. items: properties: isEnabled: @@ -1576,7 +1885,7 @@ spec: type: boolean timeWindows: description: The times that the shutdown hours will - apply. Required if isEnabled is true. + apply. Required if is_enabled is true. items: type: string type: array @@ -1655,11 +1964,71 @@ spec: type: array type: object type: array + parametersUpgradeConfig: + description: The parameters of the upgrade config + scheduling task. + items: + properties: + applyRoll: + description: '- When set to True, a cluster + roll will be initiated if a new version + is available to upgrade in the dedicated + virtual node groups.' + type: boolean + rollParameters: + description: '- The parameters of the + cluster roll that will be initiated.' + items: + properties: + batchMinHealthyPercentage: + description: Indicates the threshold + of minimum healthy nodes in single + batch. If the amount of healthy + nodes in single batch is under + the threshold, the roll will fail. + If exists, the parameter value + will be in range of 1-100. In + case of null as value, the default + value in the backend will be 50%. + Value of param should represent + the number in percentage (%) of + the batch. + type: number + batchSizePercentage: + description: Value as a percent + to set the size of a batch in + a roll. Valid values are 0-100. + In case of null as value, the + default value in the backend will + be 20%. + type: number + comment: + description: Add a comment description + for the roll. The comment is limited + to 256 chars and optional. + type: string + respectPdb: + description: During the roll, if + the parameter is set to true we + honor PDB during the nodes replacement. + type: boolean + respectRestrictScaleDown: + description: During the roll, if + the parameter is set to true we + honor Restrict Scale Down label + during the nodes replacement. + type: boolean + type: object + type: array + scopeVersion: + type: string + type: object + type: array type: object type: array taskType: - description: 'Valid values: clusterRoll The type of - the scheduling task.' + description: 'The type of the scheduling task. Valid + values: "clusterRoll,autoUpgradeVersion".' type: string type: object type: array @@ -1789,6 +2158,32 @@ spec: items: type: string type: array + vngTemplateScheduling: + description: An object used to specify times when the virtual + node group will turn off all its node pools. Once the shutdown + time will be over, the virtual node group will return to its + previous state. + items: + properties: + vngTemplateShutdownHours: + description: An object used to specify times that the nodes + in the virtual node group will be stopped. + items: + properties: + isEnabled: + description: Enable automatic headroom. When set to + true, Ocean configures and optimizes headroom automatically. + type: boolean + timeWindows: + description: The times that the shutdown hours will + apply. Required if is_enabled is true. + items: + type: string + type: array + type: object + type: array + type: object + type: array type: object conditions: description: Conditions of the resource. diff --git a/package/crds/oceanaksvng.spot.upbound.io_oceanaksvngs.yaml b/package/crds/oceanaksvng.spot.upbound.io_oceanaksvngs.yaml index 72d7c34..6ec95f9 100644 --- a/package/crds/oceanaksvng.spot.upbound.io_oceanaksvngs.yaml +++ b/package/crds/oceanaksvng.spot.upbound.io_oceanaksvngs.yaml @@ -252,6 +252,34 @@ spec: items: type: string type: array + scheduling: + description: An object used to specify times when the virtual + node group will turn off all its node pools. Once the shutdown + time will be over, the virtual node group will return to its + previous state. + items: + properties: + shutdownHours: + description: An object used to specify times that the nodes + in the virtual node group will be stopped. + items: + properties: + isEnabled: + description: Flag to enable or disable the shutdown + hours mechanism. When false, the mechanism is deactivated, + and the virtual node gorup remains in its current + state. + type: boolean + timeWindows: + description: The times that the shutdown hours will + apply. Required if isEnabled is true. + items: + type: string + type: array + type: object + type: array + type: object + type: array spotPercentage: description: Percentage of spot VMs to maintain. type: number @@ -562,6 +590,34 @@ spec: items: type: string type: array + scheduling: + description: An object used to specify times when the virtual + node group will turn off all its node pools. Once the shutdown + time will be over, the virtual node group will return to its + previous state. + items: + properties: + shutdownHours: + description: An object used to specify times that the nodes + in the virtual node group will be stopped. + items: + properties: + isEnabled: + description: Flag to enable or disable the shutdown + hours mechanism. When false, the mechanism is deactivated, + and the virtual node gorup remains in its current + state. + type: boolean + timeWindows: + description: The times that the shutdown hours will + apply. Required if isEnabled is true. + items: + type: string + type: array + type: object + type: array + type: object + type: array spotPercentage: description: Percentage of spot VMs to maintain. type: number @@ -1042,6 +1098,34 @@ spec: items: type: string type: array + scheduling: + description: An object used to specify times when the virtual + node group will turn off all its node pools. Once the shutdown + time will be over, the virtual node group will return to its + previous state. + items: + properties: + shutdownHours: + description: An object used to specify times that the nodes + in the virtual node group will be stopped. + items: + properties: + isEnabled: + description: Flag to enable or disable the shutdown + hours mechanism. When false, the mechanism is deactivated, + and the virtual node gorup remains in its current + state. + type: boolean + timeWindows: + description: The times that the shutdown hours will + apply. Required if isEnabled is true. + items: + type: string + type: array + type: object + type: array + type: object + type: array spotPercentage: description: Percentage of spot VMs to maintain. type: number diff --git a/package/crds/oceangke.spot.upbound.io_oceangkes.yaml b/package/crds/oceangke.spot.upbound.io_oceangkes.yaml index 92009c5..3f681f0 100644 --- a/package/crds/oceangke.spot.upbound.io_oceangkes.yaml +++ b/package/crds/oceangke.spot.upbound.io_oceangkes.yaml @@ -73,6 +73,17 @@ spec: type: string forProvider: properties: + autoUpdate: + description: The Ocean Kubernetes AutoUpdate object. If set to + 'true', Ocean will ensure that your clusters have an up-to-date + configuration according to the respective GKE cluster. + items: + properties: + isEnabled: + description: Enable the Ocean Kubernetes AutoUpdate. + type: boolean + type: object + type: array autoscaler: description: The Ocean Kubernetes Autoscaler object. items: @@ -140,9 +151,7 @@ spec: resources. type: boolean isEnabled: - description: |- - Flag to enable / disable the shutdown hours. - Example: true + description: Enable the Ocean Kubernetes AutoUpdate. type: boolean resourceLimits: description: Optionally set upper and lower bounds on the @@ -270,9 +279,7 @@ spec: items: properties: isEnabled: - description: |- - Flag to enable / disable the shutdown hours. - Example: true + description: Enable the Ocean Kubernetes AutoUpdate. type: boolean timeWindows: description: |- @@ -293,9 +300,7 @@ spec: Example: 0 1 * * * type: string isEnabled: - description: |- - Flag to enable / disable the shutdown hours. - Example: true + description: Enable the Ocean Kubernetes AutoUpdate. type: boolean taskParameters: description: The scheduling parameters for the cluster. @@ -451,6 +456,17 @@ spec: for example because of an external controller is managing them, like an autoscaler. properties: + autoUpdate: + description: The Ocean Kubernetes AutoUpdate object. If set to + 'true', Ocean will ensure that your clusters have an up-to-date + configuration according to the respective GKE cluster. + items: + properties: + isEnabled: + description: Enable the Ocean Kubernetes AutoUpdate. + type: boolean + type: object + type: array autoscaler: description: The Ocean Kubernetes Autoscaler object. items: @@ -518,9 +534,7 @@ spec: resources. type: boolean isEnabled: - description: |- - Flag to enable / disable the shutdown hours. - Example: true + description: Enable the Ocean Kubernetes AutoUpdate. type: boolean resourceLimits: description: Optionally set upper and lower bounds on the @@ -648,9 +662,7 @@ spec: items: properties: isEnabled: - description: |- - Flag to enable / disable the shutdown hours. - Example: true + description: Enable the Ocean Kubernetes AutoUpdate. type: boolean timeWindows: description: |- @@ -671,9 +683,7 @@ spec: Example: 0 1 * * * type: string isEnabled: - description: |- - Flag to enable / disable the shutdown hours. - Example: true + description: Enable the Ocean Kubernetes AutoUpdate. type: boolean taskParameters: description: The scheduling parameters for the cluster. @@ -997,6 +1007,17 @@ spec: properties: atProvider: properties: + autoUpdate: + description: The Ocean Kubernetes AutoUpdate object. If set to + 'true', Ocean will ensure that your clusters have an up-to-date + configuration according to the respective GKE cluster. + items: + properties: + isEnabled: + description: Enable the Ocean Kubernetes AutoUpdate. + type: boolean + type: object + type: array autoscaler: description: The Ocean Kubernetes Autoscaler object. items: @@ -1064,9 +1085,7 @@ spec: resources. type: boolean isEnabled: - description: |- - Flag to enable / disable the shutdown hours. - Example: true + description: Enable the Ocean Kubernetes AutoUpdate. type: boolean resourceLimits: description: Optionally set upper and lower bounds on the @@ -1200,9 +1219,7 @@ spec: items: properties: isEnabled: - description: |- - Flag to enable / disable the shutdown hours. - Example: true + description: Enable the Ocean Kubernetes AutoUpdate. type: boolean timeWindows: description: |- @@ -1223,9 +1240,7 @@ spec: Example: 0 1 * * * type: string isEnabled: - description: |- - Flag to enable / disable the shutdown hours. - Example: true + description: Enable the Ocean Kubernetes AutoUpdate. type: boolean taskParameters: description: The scheduling parameters for the cluster.