From d39f23de27fcc21957dd5795c5ea8e8fa79961be Mon Sep 17 00:00:00 2001 From: GokceGK Date: Wed, 25 Mar 2026 09:48:35 +0100 Subject: [PATCH 1/3] switch to multi API version support SDK structure --- .../sqlserverflex/instance/datasource.go | 10 +- .../sqlserverflex/instance/resource.go | 79 +++---- .../sqlserverflex/instance/resource_test.go | 199 +++++++++--------- .../sqlserverflex/sqlserverflex_acc_test.go | 12 +- .../sqlserverflex/sqlserverflex_test.go | 8 +- .../services/sqlserverflex/user/datasource.go | 6 +- .../sqlserverflex/user/datasource_test.go | 6 +- .../services/sqlserverflex/user/resource.go | 16 +- .../sqlserverflex/user/resource_test.go | 26 +-- .../services/sqlserverflex/utils/util.go | 2 +- .../services/sqlserverflex/utils/util_test.go | 2 +- 11 files changed, 187 insertions(+), 179 deletions(-) diff --git a/stackit/internal/services/sqlserverflex/instance/datasource.go b/stackit/internal/services/sqlserverflex/instance/datasource.go index 8ad7afc93..215a3ebdb 100644 --- a/stackit/internal/services/sqlserverflex/instance/datasource.go +++ b/stackit/internal/services/sqlserverflex/instance/datasource.go @@ -18,7 +18,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/datasource/schema" "github.com/hashicorp/terraform-plugin-framework/types" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" ) // Ensure the implementation satisfies the expected interfaces. @@ -117,15 +117,15 @@ func (r *instanceDataSource) Schema(_ context.Context, _ datasource.SchemaReques "description": schema.StringAttribute{ Computed: true, }, - "cpu": schema.Int64Attribute{ + "cpu": schema.Int32Attribute{ Computed: true, }, - "ram": schema.Int64Attribute{ + "ram": schema.Int32Attribute{ Computed: true, }, }, }, - "replicas": schema.Int64Attribute{ + "replicas": schema.Int32Attribute{ Computed: true, }, "storage": schema.SingleNestedAttribute{ @@ -180,7 +180,7 @@ func (r *instanceDataSource) Read(ctx context.Context, req datasource.ReadReques ctx = tflog.SetField(ctx, "project_id", projectId) ctx = tflog.SetField(ctx, "instance_id", instanceId) ctx = tflog.SetField(ctx, "region", region) - instanceResp, err := r.client.GetInstance(ctx, projectId, instanceId, region).Execute() + instanceResp, err := r.client.DefaultAPI.GetInstance(ctx, projectId, instanceId, region).Execute() if err != nil { utils.LogError( ctx, diff --git a/stackit/internal/services/sqlserverflex/instance/resource.go b/stackit/internal/services/sqlserverflex/instance/resource.go index 2ca1cb8f4..6109f7f52 100644 --- a/stackit/internal/services/sqlserverflex/instance/resource.go +++ b/stackit/internal/services/sqlserverflex/instance/resource.go @@ -9,6 +9,7 @@ import ( "strings" "time" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int32planmodifier" sqlserverflexUtils "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/services/sqlserverflex/utils" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" @@ -32,8 +33,8 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/oapierror" coreUtils "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/wait" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" + "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api/wait" ) // Ensure the implementation satisfies the expected interfaces. @@ -54,7 +55,7 @@ type Model struct { Flavor types.Object `tfsdk:"flavor"` Storage types.Object `tfsdk:"storage"` Version types.String `tfsdk:"version"` - Replicas types.Int64 `tfsdk:"replicas"` + Replicas types.Int32 `tfsdk:"replicas"` Options types.Object `tfsdk:"options"` Region types.String `tfsdk:"region"` } @@ -63,16 +64,16 @@ type Model struct { type flavorModel struct { Id types.String `tfsdk:"id"` Description types.String `tfsdk:"description"` - CPU types.Int64 `tfsdk:"cpu"` - RAM types.Int64 `tfsdk:"ram"` + CPU types.Int32 `tfsdk:"cpu"` + RAM types.Int32 `tfsdk:"ram"` } // Types corresponding to flavorModel var flavorTypes = map[string]attr.Type{ "id": basetypes.StringType{}, "description": basetypes.StringType{}, - "cpu": basetypes.Int64Type{}, - "ram": basetypes.Int64Type{}, + "cpu": basetypes.Int32Type{}, + "ram": basetypes.Int32Type{}, } // Struct corresponding to Model.Storage @@ -250,18 +251,18 @@ func (r *instanceResource) Schema(_ context.Context, _ resource.SchemaRequest, r stringplanmodifier.UseStateForUnknown(), }, }, - "cpu": schema.Int64Attribute{ + "cpu": schema.Int32Attribute{ Required: true, }, - "ram": schema.Int64Attribute{ + "ram": schema.Int32Attribute{ Required: true, }, }, }, - "replicas": schema.Int64Attribute{ + "replicas": schema.Int32Attribute{ Computed: true, - PlanModifiers: []planmodifier.Int64{ - int64planmodifier.UseStateForUnknown(), + PlanModifiers: []planmodifier.Int32{ + int32planmodifier.UseStateForUnknown(), }, }, "storage": schema.SingleNestedAttribute{ @@ -367,7 +368,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques if resp.Diagnostics.HasError() { return } - err := loadFlavorId(ctx, r.client, &model, flavor) + err := loadFlavorId(ctx, r.client.DefaultAPI, &model, flavor) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Loading flavor ID: %v", err)) return @@ -398,7 +399,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques return } // Create new instance - createResp, err := r.client.CreateInstance(ctx, projectId, region).CreateInstancePayload(*payload).Execute() + createResp, err := r.client.DefaultAPI.CreateInstance(ctx, projectId, region).CreateInstancePayload(*payload).Execute() if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Calling API: %v", err)) return @@ -423,7 +424,7 @@ func (r *instanceResource) Create(ctx context.Context, req resource.CreateReques } // The creation waiter sometimes returns an error from the API: "instance with id xxx has unexpected status Failure" // which can be avoided by sleeping before wait - waitResp, err := wait.CreateInstanceWaitHandler(ctx, r.client, projectId, instanceId, region).SetSleepBeforeWait(30 * time.Second).WaitWithContext(ctx) + waitResp, err := wait.CreateInstanceWaitHandler(ctx, r.client.DefaultAPI, projectId, instanceId, region).SetSleepBeforeWait(30 * time.Second).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating instance", fmt.Sprintf("Instance creation waiting: %v", err)) return @@ -494,7 +495,7 @@ func (r *instanceResource) Read(ctx context.Context, req resource.ReadRequest, r } } - instanceResp, err := r.client.GetInstance(ctx, projectId, instanceId, region).Execute() + instanceResp, err := r.client.DefaultAPI.GetInstance(ctx, projectId, instanceId, region).Execute() if err != nil { oapiErr, ok := err.(*oapierror.GenericOpenAPIError) //nolint:errorlint //complaining that error.As should be used to catch wrapped errors, but this error should not be wrapped if ok && oapiErr.StatusCode == http.StatusNotFound { @@ -557,7 +558,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques if resp.Diagnostics.HasError() { return } - err := loadFlavorId(ctx, r.client, &model, flavor) + err := loadFlavorId(ctx, r.client.DefaultAPI, &model, flavor) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Loading flavor ID: %v", err)) return @@ -588,7 +589,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques return } // Update existing instance - _, err = r.client.PartialUpdateInstance(ctx, projectId, instanceId, region).PartialUpdateInstancePayload(*payload).Execute() + _, err = r.client.DefaultAPI.PartialUpdateInstance(ctx, projectId, instanceId, region).PartialUpdateInstancePayload(*payload).Execute() if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", err.Error()) return @@ -596,7 +597,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques ctx = core.LogResponse(ctx) - waitResp, err := wait.UpdateInstanceWaitHandler(ctx, r.client, projectId, instanceId, region).WaitWithContext(ctx) + waitResp, err := wait.UpdateInstanceWaitHandler(ctx, r.client.DefaultAPI, projectId, instanceId, region).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Instance update waiting: %v", err)) return @@ -636,7 +637,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques ctx = tflog.SetField(ctx, "region", region) // Delete existing instance - err := r.client.DeleteInstance(ctx, projectId, instanceId, region).Execute() + err := r.client.DefaultAPI.DeleteInstance(ctx, projectId, instanceId, region).Execute() if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Calling API: %v", err)) return @@ -644,7 +645,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques ctx = core.LogResponse(ctx) - _, err = wait.DeleteInstanceWaitHandler(ctx, r.client, projectId, instanceId, region).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, r.client.DefaultAPI, projectId, instanceId, region).WaitWithContext(ctx) if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting instance", fmt.Sprintf("Instance deletion waiting: %v", err)) return @@ -699,7 +700,7 @@ func mapFields(ctx context.Context, resp *sqlserverflex.GetInstanceResponse, mod if instance.Acl == nil || instance.Acl.Items == nil { aclList = types.ListNull(types.StringType) } else { - respACL := *instance.Acl.Items + respACL := instance.Acl.Items modelACL, err := utils.ListValuetoStringSlice(model.ACL) if err != nil { return err @@ -725,8 +726,8 @@ func mapFields(ctx context.Context, resp *sqlserverflex.GetInstanceResponse, mod flavorValues = map[string]attr.Value{ "id": types.StringValue(*instance.Flavor.Id), "description": types.StringValue(*instance.Flavor.Description), - "cpu": types.Int64PointerValue(instance.Flavor.Cpu), - "ram": types.Int64PointerValue(instance.Flavor.Memory), + "cpu": types.Int32PointerValue(instance.Flavor.Cpu), + "ram": types.Int32PointerValue(instance.Flavor.Memory), } } flavorObject, diags := types.ObjectValue(flavorTypes, flavorValues) @@ -796,7 +797,7 @@ func mapFields(ctx context.Context, resp *sqlserverflex.GetInstanceResponse, mod model.Name = types.StringPointerValue(instance.Name) model.ACL = aclList model.Flavor = flavorObject - model.Replicas = types.Int64PointerValue(instance.Replicas) + model.Replicas = types.Int32PointerValue(instance.Replicas) model.Storage = storageObject model.Version = types.StringPointerValue(instance.Version) model.Options = optionsObject @@ -808,19 +809,19 @@ func toCreatePayload(model *Model, acl []string, flavor *flavorModel, storage *s if model == nil { return nil, fmt.Errorf("nil model") } - aclPayload := &sqlserverflex.CreateInstancePayloadAcl{} + aclPayload := &sqlserverflex.InstanceDocumentationACL{} if acl != nil { - aclPayload.Items = &acl + aclPayload.Items = acl } if flavor == nil { return nil, fmt.Errorf("nil flavor") } - storagePayload := &sqlserverflex.CreateInstancePayloadStorage{} + storagePayload := &sqlserverflex.InstanceDocumentationStorage{} if storage != nil { storagePayload.Class = conversion.StringValueToPointer(storage.Class) storagePayload.Size = conversion.Int64ValueToPointer(storage.Size) } - optionsPayload := &sqlserverflex.CreateInstancePayloadOptions{} + optionsPayload := &sqlserverflex.InstanceDocumentationOptions{} if options != nil { optionsPayload.Edition = conversion.StringValueToPointer(options.Edition) retentionDaysInt := conversion.Int64ValueToPointer(options.RetentionDays) @@ -834,8 +835,8 @@ func toCreatePayload(model *Model, acl []string, flavor *flavorModel, storage *s return &sqlserverflex.CreateInstancePayload{ Acl: aclPayload, BackupSchedule: conversion.StringValueToPointer(model.BackupSchedule), - FlavorId: conversion.StringValueToPointer(flavor.Id), - Name: conversion.StringValueToPointer(model.Name), + FlavorId: flavor.Id.ValueString(), + Name: model.Name.ValueString(), Storage: storagePayload, Version: conversion.StringValueToPointer(model.Version), Options: optionsPayload, @@ -846,9 +847,9 @@ func toUpdatePayload(model *Model, acl []string, flavor *flavorModel) (*sqlserve if model == nil { return nil, fmt.Errorf("nil model") } - aclPayload := &sqlserverflex.CreateInstancePayloadAcl{} + aclPayload := &sqlserverflex.InstanceDocumentationACL{} if acl != nil { - aclPayload.Items = &acl + aclPayload.Items = acl } if flavor == nil { return nil, fmt.Errorf("nil flavor") @@ -864,7 +865,8 @@ func toUpdatePayload(model *Model, acl []string, flavor *flavorModel) (*sqlserve } type sqlserverflexClient interface { - ListFlavorsExecute(ctx context.Context, projectId, region string) (*sqlserverflex.ListFlavorsResponse, error) + ListFlavors(ctx context.Context, projectId, region string) sqlserverflex.ApiListFlavorsRequest + ListFlavorsExecute(r sqlserverflex.ApiListFlavorsRequest) (*sqlserverflex.ListFlavorsResponse, error) } func loadFlavorId(ctx context.Context, client sqlserverflexClient, model *Model, flavor *flavorModel) error { @@ -874,18 +876,19 @@ func loadFlavorId(ctx context.Context, client sqlserverflexClient, model *Model, if flavor == nil { return fmt.Errorf("nil flavor") } - cpu := conversion.Int64ValueToPointer(flavor.CPU) + cpu := conversion.Int32ValueToPointer(flavor.CPU) if cpu == nil { return fmt.Errorf("nil CPU") } - ram := conversion.Int64ValueToPointer(flavor.RAM) + ram := conversion.Int32ValueToPointer(flavor.RAM) if ram == nil { return fmt.Errorf("nil RAM") } projectId := model.ProjectId.ValueString() region := model.Region.ValueString() - res, err := client.ListFlavorsExecute(ctx, projectId, region) + req := client.ListFlavors(ctx, projectId, region) + res, err := client.ListFlavorsExecute(req) if err != nil { return fmt.Errorf("listing sqlserverflex flavors: %w", err) } @@ -894,7 +897,7 @@ func loadFlavorId(ctx context.Context, client sqlserverflexClient, model *Model, if res.Flavors == nil { return fmt.Errorf("finding flavors for project %s", projectId) } - for _, f := range *res.Flavors { + for _, f := range res.Flavors { if f.Id == nil || f.Cpu == nil || f.Memory == nil { continue } diff --git a/stackit/internal/services/sqlserverflex/instance/resource_test.go b/stackit/internal/services/sqlserverflex/instance/resource_test.go index 66021845b..027cab04e 100644 --- a/stackit/internal/services/sqlserverflex/instance/resource_test.go +++ b/stackit/internal/services/sqlserverflex/instance/resource_test.go @@ -9,15 +9,20 @@ import ( "github.com/hashicorp/terraform-plugin-framework/attr" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" ) type sqlserverflexClientMocked struct { returnError bool listFlavorsResp *sqlserverflex.ListFlavorsResponse + listFlavorsReq sqlserverflex.ApiListFlavorsRequest } -func (c *sqlserverflexClientMocked) ListFlavorsExecute(_ context.Context, _, _ string) (*sqlserverflex.ListFlavorsResponse, error) { +func (c *sqlserverflexClientMocked) ListFlavors(_ context.Context, _, _ string) sqlserverflex.ApiListFlavorsRequest { + return c.listFlavorsReq +} + +func (c *sqlserverflexClientMocked) ListFlavorsExecute(_ sqlserverflex.ApiListFlavorsRequest) (*sqlserverflex.ListFlavorsResponse, error) { if c.returnError { return nil, fmt.Errorf("get flavors failed") } @@ -61,10 +66,10 @@ func TestMapFields(t *testing.T) { Flavor: types.ObjectValueMust(flavorTypes, map[string]attr.Value{ "id": types.StringNull(), "description": types.StringNull(), - "cpu": types.Int64Null(), - "ram": types.Int64Null(), + "cpu": types.Int32Null(), + "ram": types.Int32Null(), }), - Replicas: types.Int64Null(), + Replicas: types.Int32Null(), Storage: types.ObjectValueMust(storageTypes, map[string]attr.Value{ "class": types.StringNull(), "size": types.Int64Null(), @@ -87,7 +92,7 @@ func TestMapFields(t *testing.T) { &sqlserverflex.GetInstanceResponse{ Item: &sqlserverflex.Instance{ Acl: &sqlserverflex.ACL{ - Items: &[]string{ + Items: []string{ "ip1", "ip2", "", @@ -95,14 +100,14 @@ func TestMapFields(t *testing.T) { }, BackupSchedule: utils.Ptr("schedule"), Flavor: &sqlserverflex.Flavor{ - Cpu: utils.Ptr(int64(12)), + Cpu: utils.Ptr(int32(12)), Description: utils.Ptr("description"), Id: utils.Ptr("flavor_id"), - Memory: utils.Ptr(int64(34)), + Memory: utils.Ptr(int32(34)), }, Id: utils.Ptr("iid"), Name: utils.Ptr("name"), - Replicas: utils.Ptr(int64(56)), + Replicas: utils.Ptr(int32(56)), Status: utils.Ptr("status"), Storage: &sqlserverflex.Storage{ Class: utils.Ptr("class"), @@ -133,10 +138,10 @@ func TestMapFields(t *testing.T) { Flavor: types.ObjectValueMust(flavorTypes, map[string]attr.Value{ "id": types.StringValue("flavor_id"), "description": types.StringValue("description"), - "cpu": types.Int64Value(12), - "ram": types.Int64Value(34), + "cpu": types.Int32Value(12), + "ram": types.Int32Value(34), }), - Replicas: types.Int64Value(56), + Replicas: types.Int32Value(56), Storage: types.ObjectValueMust(storageTypes, map[string]attr.Value{ "class": types.StringValue("class"), "size": types.Int64Value(78), @@ -159,7 +164,7 @@ func TestMapFields(t *testing.T) { &sqlserverflex.GetInstanceResponse{ Item: &sqlserverflex.Instance{ Acl: &sqlserverflex.ACL{ - Items: &[]string{ + Items: []string{ "ip1", "ip2", "", @@ -169,7 +174,7 @@ func TestMapFields(t *testing.T) { Flavor: nil, Id: utils.Ptr("iid"), Name: utils.Ptr("name"), - Replicas: utils.Ptr(int64(56)), + Replicas: utils.Ptr(int32(56)), Status: utils.Ptr("status"), Storage: nil, Options: &map[string]string{ @@ -180,8 +185,8 @@ func TestMapFields(t *testing.T) { }, }, &flavorModel{ - CPU: types.Int64Value(12), - RAM: types.Int64Value(34), + CPU: types.Int32Value(12), + RAM: types.Int32Value(34), }, &storageModel{ Class: types.StringValue("class"), @@ -206,10 +211,10 @@ func TestMapFields(t *testing.T) { Flavor: types.ObjectValueMust(flavorTypes, map[string]attr.Value{ "id": types.StringNull(), "description": types.StringNull(), - "cpu": types.Int64Value(12), - "ram": types.Int64Value(34), + "cpu": types.Int32Value(12), + "ram": types.Int32Value(34), }), - Replicas: types.Int64Value(56), + Replicas: types.Int32Value(56), Storage: types.ObjectValueMust(storageTypes, map[string]attr.Value{ "class": types.StringValue("class"), "size": types.Int64Value(78), @@ -237,7 +242,7 @@ func TestMapFields(t *testing.T) { &sqlserverflex.GetInstanceResponse{ Item: &sqlserverflex.Instance{ Acl: &sqlserverflex.ACL{ - Items: &[]string{ + Items: []string{ "", "ip1", "ip2", @@ -247,7 +252,7 @@ func TestMapFields(t *testing.T) { Flavor: nil, Id: utils.Ptr("iid"), Name: utils.Ptr("name"), - Replicas: utils.Ptr(int64(56)), + Replicas: utils.Ptr(int32(56)), Status: utils.Ptr("status"), Storage: nil, Options: &map[string]string{ @@ -258,8 +263,8 @@ func TestMapFields(t *testing.T) { }, }, &flavorModel{ - CPU: types.Int64Value(12), - RAM: types.Int64Value(34), + CPU: types.Int32Value(12), + RAM: types.Int32Value(34), }, &storageModel{ Class: types.StringValue("class"), @@ -281,10 +286,10 @@ func TestMapFields(t *testing.T) { Flavor: types.ObjectValueMust(flavorTypes, map[string]attr.Value{ "id": types.StringNull(), "description": types.StringNull(), - "cpu": types.Int64Value(12), - "ram": types.Int64Value(34), + "cpu": types.Int32Value(12), + "ram": types.Int32Value(34), }), - Replicas: types.Int64Value(56), + Replicas: types.Int32Value(56), Storage: types.ObjectValueMust(storageTypes, map[string]attr.Value{ "class": types.StringValue("class"), "size": types.Int64Value(78), @@ -365,11 +370,11 @@ func TestToCreatePayload(t *testing.T) { &storageModel{}, &optionsModel{}, &sqlserverflex.CreateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{ - Items: &[]string{}, + Acl: &sqlserverflex.InstanceDocumentationACL{ + Items: []string{}, }, - Storage: &sqlserverflex.CreateInstancePayloadStorage{}, - Options: &sqlserverflex.CreateInstancePayloadOptions{}, + Storage: &sqlserverflex.InstanceDocumentationStorage{}, + Options: &sqlserverflex.InstanceDocumentationOptions{}, }, true, }, @@ -378,7 +383,7 @@ func TestToCreatePayload(t *testing.T) { &Model{ BackupSchedule: types.StringValue("schedule"), Name: types.StringValue("name"), - Replicas: types.Int64Value(12), + Replicas: types.Int32Value(12), Version: types.StringValue("version"), }, []string{ @@ -397,20 +402,20 @@ func TestToCreatePayload(t *testing.T) { RetentionDays: types.Int64Value(1), }, &sqlserverflex.CreateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{ - Items: &[]string{ + Acl: &sqlserverflex.InstanceDocumentationACL{ + Items: []string{ "ip_1", "ip_2", }, }, BackupSchedule: utils.Ptr("schedule"), - FlavorId: utils.Ptr("flavor_id"), - Name: utils.Ptr("name"), - Storage: &sqlserverflex.CreateInstancePayloadStorage{ + FlavorId: "flavor_id", + Name: "name", + Storage: &sqlserverflex.InstanceDocumentationStorage{ Class: utils.Ptr("class"), Size: utils.Ptr(int64(34)), }, - Options: &sqlserverflex.CreateInstancePayloadOptions{ + Options: &sqlserverflex.InstanceDocumentationOptions{ Edition: utils.Ptr("edition"), RetentionDays: utils.Ptr("1"), }, @@ -423,7 +428,7 @@ func TestToCreatePayload(t *testing.T) { &Model{ BackupSchedule: types.StringNull(), Name: types.StringNull(), - Replicas: types.Int64Value(2123456789), + Replicas: types.Int32Value(2123456789), Version: types.StringNull(), }, []string{ @@ -441,19 +446,19 @@ func TestToCreatePayload(t *testing.T) { RetentionDays: types.Int64Null(), }, &sqlserverflex.CreateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{ - Items: &[]string{ + Acl: &sqlserverflex.InstanceDocumentationACL{ + Items: []string{ "", }, }, BackupSchedule: nil, - FlavorId: nil, - Name: nil, - Storage: &sqlserverflex.CreateInstancePayloadStorage{ + FlavorId: "", + Name: "", + Storage: &sqlserverflex.InstanceDocumentationStorage{ Class: nil, Size: nil, }, - Options: &sqlserverflex.CreateInstancePayloadOptions{}, + Options: &sqlserverflex.InstanceDocumentationOptions{}, Version: nil, }, true, @@ -476,9 +481,9 @@ func TestToCreatePayload(t *testing.T) { &storageModel{}, &optionsModel{}, &sqlserverflex.CreateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{}, - Storage: &sqlserverflex.CreateInstancePayloadStorage{}, - Options: &sqlserverflex.CreateInstancePayloadOptions{}, + Acl: &sqlserverflex.InstanceDocumentationACL{}, + Storage: &sqlserverflex.InstanceDocumentationStorage{}, + Options: &sqlserverflex.InstanceDocumentationOptions{}, }, true, }, @@ -500,11 +505,11 @@ func TestToCreatePayload(t *testing.T) { nil, &optionsModel{}, &sqlserverflex.CreateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{ - Items: &[]string{}, + Acl: &sqlserverflex.InstanceDocumentationACL{ + Items: []string{}, }, - Storage: &sqlserverflex.CreateInstancePayloadStorage{}, - Options: &sqlserverflex.CreateInstancePayloadOptions{}, + Storage: &sqlserverflex.InstanceDocumentationStorage{}, + Options: &sqlserverflex.InstanceDocumentationOptions{}, }, true, }, @@ -516,11 +521,11 @@ func TestToCreatePayload(t *testing.T) { &storageModel{}, nil, &sqlserverflex.CreateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{ - Items: &[]string{}, + Acl: &sqlserverflex.InstanceDocumentationACL{ + Items: []string{}, }, - Storage: &sqlserverflex.CreateInstancePayloadStorage{}, - Options: &sqlserverflex.CreateInstancePayloadOptions{}, + Storage: &sqlserverflex.InstanceDocumentationStorage{}, + Options: &sqlserverflex.InstanceDocumentationOptions{}, }, true, }, @@ -559,8 +564,8 @@ func TestToUpdatePayload(t *testing.T) { []string{}, &flavorModel{}, &sqlserverflex.PartialUpdateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{ - Items: &[]string{}, + Acl: &sqlserverflex.InstanceDocumentationACL{ + Items: []string{}, }, }, true, @@ -570,7 +575,7 @@ func TestToUpdatePayload(t *testing.T) { &Model{ BackupSchedule: types.StringValue("schedule"), Name: types.StringValue("name"), - Replicas: types.Int64Value(12), + Replicas: types.Int32Value(12), Version: types.StringValue("version"), }, []string{ @@ -581,8 +586,8 @@ func TestToUpdatePayload(t *testing.T) { Id: types.StringValue("flavor_id"), }, &sqlserverflex.PartialUpdateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{ - Items: &[]string{ + Acl: &sqlserverflex.InstanceDocumentationACL{ + Items: []string{ "ip_1", "ip_2", }, @@ -599,7 +604,7 @@ func TestToUpdatePayload(t *testing.T) { &Model{ BackupSchedule: types.StringNull(), Name: types.StringNull(), - Replicas: types.Int64Value(2123456789), + Replicas: types.Int32Value(2123456789), Version: types.StringNull(), }, []string{ @@ -609,8 +614,8 @@ func TestToUpdatePayload(t *testing.T) { Id: types.StringNull(), }, &sqlserverflex.PartialUpdateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{ - Items: &[]string{ + Acl: &sqlserverflex.InstanceDocumentationACL{ + Items: []string{ "", }, }, @@ -635,7 +640,7 @@ func TestToUpdatePayload(t *testing.T) { nil, &flavorModel{}, &sqlserverflex.PartialUpdateInstancePayload{ - Acl: &sqlserverflex.CreateInstancePayloadAcl{}, + Acl: &sqlserverflex.InstanceDocumentationACL{}, }, true, }, @@ -679,24 +684,24 @@ func TestLoadFlavorId(t *testing.T) { { "ok_flavor", &flavorModel{ - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, &sqlserverflex.ListFlavorsResponse{ - Flavors: &[]sqlserverflex.InstanceFlavorEntry{ + Flavors: []sqlserverflex.InstanceFlavorEntry{ { Id: utils.Ptr("fid-1"), - Cpu: utils.Ptr(int64(2)), + Cpu: utils.Ptr(int32(2)), Description: utils.Ptr("description"), - Memory: utils.Ptr(int64(8)), + Memory: utils.Ptr(int32(8)), }, }, }, &flavorModel{ Id: types.StringValue("fid-1"), Description: types.StringValue("description"), - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, false, true, @@ -704,30 +709,30 @@ func TestLoadFlavorId(t *testing.T) { { "ok_flavor_2", &flavorModel{ - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, &sqlserverflex.ListFlavorsResponse{ - Flavors: &[]sqlserverflex.InstanceFlavorEntry{ + Flavors: []sqlserverflex.InstanceFlavorEntry{ { Id: utils.Ptr("fid-1"), - Cpu: utils.Ptr(int64(2)), + Cpu: utils.Ptr(int32(2)), Description: utils.Ptr("description"), - Memory: utils.Ptr(int64(8)), + Memory: utils.Ptr(int32(8)), }, { Id: utils.Ptr("fid-2"), - Cpu: utils.Ptr(int64(1)), + Cpu: utils.Ptr(int32(1)), Description: utils.Ptr("description"), - Memory: utils.Ptr(int64(4)), + Memory: utils.Ptr(int32(4)), }, }, }, &flavorModel{ Id: types.StringValue("fid-1"), Description: types.StringValue("description"), - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, false, true, @@ -735,28 +740,28 @@ func TestLoadFlavorId(t *testing.T) { { "no_matching_flavor", &flavorModel{ - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, &sqlserverflex.ListFlavorsResponse{ - Flavors: &[]sqlserverflex.InstanceFlavorEntry{ + Flavors: []sqlserverflex.InstanceFlavorEntry{ { Id: utils.Ptr("fid-1"), - Cpu: utils.Ptr(int64(1)), + Cpu: utils.Ptr(int32(1)), Description: utils.Ptr("description"), - Memory: utils.Ptr(int64(8)), + Memory: utils.Ptr(int32(8)), }, { Id: utils.Ptr("fid-2"), - Cpu: utils.Ptr(int64(1)), + Cpu: utils.Ptr(int32(1)), Description: utils.Ptr("description"), - Memory: utils.Ptr(int64(4)), + Memory: utils.Ptr(int32(4)), }, }, }, &flavorModel{ - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, false, false, @@ -764,13 +769,13 @@ func TestLoadFlavorId(t *testing.T) { { "nil_response", &flavorModel{ - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, &sqlserverflex.ListFlavorsResponse{}, &flavorModel{ - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, false, false, @@ -778,13 +783,13 @@ func TestLoadFlavorId(t *testing.T) { { "error_response", &flavorModel{ - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, &sqlserverflex.ListFlavorsResponse{}, &flavorModel{ - CPU: types.Int64Value(2), - RAM: types.Int64Value(8), + CPU: types.Int32Value(2), + RAM: types.Int32Value(8), }, true, false, diff --git a/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go b/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go index e88ac5994..2dfb9f536 100644 --- a/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go +++ b/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go @@ -14,8 +14,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/terraform" core_config "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/wait" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" + "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api/wait" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -455,22 +455,22 @@ func testAccChecksqlserverflexDestroy(s *terraform.State) error { instancesToDestroy = append(instancesToDestroy, instanceId) } - instancesResp, err := client.ListInstances(ctx, testutil.ProjectId, testutil.Region).Execute() + instancesResp, err := client.DefaultAPI.ListInstances(ctx, testutil.ProjectId, testutil.Region).Execute() if err != nil { return fmt.Errorf("getting instancesResp: %w", err) } - items := *instancesResp.Items + items := instancesResp.Items for i := range items { if items[i].Id == nil { continue } if utils.Contains(instancesToDestroy, *items[i].Id) { - err := client.DeleteInstanceExecute(ctx, testutil.ProjectId, *items[i].Id, testutil.Region) + err := client.DefaultAPI.DeleteInstance(ctx, testutil.ProjectId, *items[i].Id, testutil.Region).Execute() if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *items[i].Id, err) } - _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutil.ProjectId, *items[i].Id, testutil.Region).WaitWithContext(ctx) + _, err = wait.DeleteInstanceWaitHandler(ctx, client.DefaultAPI, testutil.ProjectId, *items[i].Id, testutil.Region).WaitWithContext(ctx) if err != nil { return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *items[i].Id, err) } diff --git a/stackit/internal/services/sqlserverflex/sqlserverflex_test.go b/stackit/internal/services/sqlserverflex/sqlserverflex_test.go index a35a417a9..5902fdfa8 100644 --- a/stackit/internal/services/sqlserverflex/sqlserverflex_test.go +++ b/stackit/internal/services/sqlserverflex/sqlserverflex_test.go @@ -9,7 +9,7 @@ import ( "github.com/google/uuid" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil" ) @@ -44,10 +44,10 @@ resource "stackit_sqlserverflex_instance" "instance" { `, region, s.Server.URL, projectId, name, flavorCpu, flavorRam) flavor := testutil.MockResponse{ ToJsonBody: &sqlserverflex.ListFlavorsResponse{ - Flavors: &[]sqlserverflex.InstanceFlavorEntry{ + Flavors: []sqlserverflex.InstanceFlavorEntry{ { - Cpu: utils.Ptr(int64(flavorCpu)), - Memory: utils.Ptr(int64(flavorRam)), + Cpu: utils.Ptr(int32(flavorCpu)), + Memory: utils.Ptr(int32(flavorRam)), Id: utils.Ptr(flavorId), Description: utils.Ptr("test-flavor-id"), }, diff --git a/stackit/internal/services/sqlserverflex/user/datasource.go b/stackit/internal/services/sqlserverflex/user/datasource.go index cb0980f84..48c409508 100644 --- a/stackit/internal/services/sqlserverflex/user/datasource.go +++ b/stackit/internal/services/sqlserverflex/user/datasource.go @@ -18,7 +18,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/datasource/schema" "github.com/hashicorp/terraform-plugin-framework/types" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" ) // Ensure the implementation satisfies the expected interfaces. @@ -158,7 +158,7 @@ func (r *userDataSource) Read(ctx context.Context, req datasource.ReadRequest, r ctx = tflog.SetField(ctx, "user_id", userId) ctx = tflog.SetField(ctx, "region", region) - recordSetResp, err := r.client.GetUser(ctx, projectId, instanceId, userId, region).Execute() + recordSetResp, err := r.client.DefaultAPI.GetUser(ctx, projectId, instanceId, userId, region).Execute() if err != nil { utils.LogError( ctx, @@ -219,7 +219,7 @@ func mapDataSourceFields(userResp *sqlserverflex.GetUserResponse, model *DataSou model.Roles = types.SetNull(types.StringType) } else { roles := []attr.Value{} - for _, role := range *user.Roles { + for _, role := range user.Roles { roles = append(roles, types.StringValue(role)) } rolesSet, diags := types.SetValue(types.StringType, roles) diff --git a/stackit/internal/services/sqlserverflex/user/datasource_test.go b/stackit/internal/services/sqlserverflex/user/datasource_test.go index b5179c44b..c4330b085 100644 --- a/stackit/internal/services/sqlserverflex/user/datasource_test.go +++ b/stackit/internal/services/sqlserverflex/user/datasource_test.go @@ -7,7 +7,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/attr" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" ) func TestMapDataSourceFields(t *testing.T) { @@ -42,7 +42,7 @@ func TestMapDataSourceFields(t *testing.T) { "simple_values", &sqlserverflex.GetUserResponse{ Item: &sqlserverflex.UserResponseUser{ - Roles: &[]string{ + Roles: []string{ "role_1", "role_2", "", @@ -75,7 +75,7 @@ func TestMapDataSourceFields(t *testing.T) { &sqlserverflex.GetUserResponse{ Item: &sqlserverflex.UserResponseUser{ Id: utils.Ptr("uid"), - Roles: &[]string{}, + Roles: []string{}, Username: nil, Host: nil, Port: utils.Ptr(int64(2123456789)), diff --git a/stackit/internal/services/sqlserverflex/user/resource.go b/stackit/internal/services/sqlserverflex/user/resource.go index 796dcfd2d..62d97a73c 100644 --- a/stackit/internal/services/sqlserverflex/user/resource.go +++ b/stackit/internal/services/sqlserverflex/user/resource.go @@ -23,7 +23,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/oapierror" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" ) // Ensure the implementation satisfies the expected interfaces. @@ -241,7 +241,7 @@ func (r *userResource) Create(ctx context.Context, req resource.CreateRequest, r return } // Create new user - userResp, err := r.client.CreateUser(ctx, projectId, instanceId, region).CreateUserPayload(*payload).Execute() + userResp, err := r.client.DefaultAPI.CreateUser(ctx, projectId, instanceId, region).CreateUserPayload(*payload).Execute() if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating user", fmt.Sprintf("Calling API: %v", err)) return @@ -295,7 +295,7 @@ func (r *userResource) Read(ctx context.Context, req resource.ReadRequest, resp ctx = tflog.SetField(ctx, "user_id", userId) ctx = tflog.SetField(ctx, "region", region) - recordSetResp, err := r.client.GetUser(ctx, projectId, instanceId, userId, region).Execute() + recordSetResp, err := r.client.DefaultAPI.GetUser(ctx, projectId, instanceId, userId, region).Execute() if err != nil { oapiErr, ok := err.(*oapierror.GenericOpenAPIError) //nolint:errorlint //complaining that error.As should be used to catch wrapped errors, but this error should not be wrapped if ok && oapiErr.StatusCode == http.StatusNotFound { @@ -352,7 +352,7 @@ func (r *userResource) Delete(ctx context.Context, req resource.DeleteRequest, r ctx = tflog.SetField(ctx, "region", region) // Delete existing record set - err := r.client.DeleteUser(ctx, projectId, instanceId, userId, region).Execute() + err := r.client.DefaultAPI.DeleteUser(ctx, projectId, instanceId, userId, region).Execute() if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting user", fmt.Sprintf("Calling API: %v", err)) return @@ -412,7 +412,7 @@ func mapFieldsCreate(userResp *sqlserverflex.CreateUserResponse, model *Model, r if user.Roles != nil { roles := []attr.Value{} - for _, role := range *user.Roles { + for _, role := range user.Roles { roles = append(roles, types.StringValue(role)) } rolesSet, diags := types.SetValue(types.StringType, roles) @@ -460,7 +460,7 @@ func mapFields(userResp *sqlserverflex.GetUserResponse, model *Model, region str if user.Roles != nil { roles := []attr.Value{} - for _, role := range *user.Roles { + for _, role := range user.Roles { roles = append(roles, types.StringValue(role)) } rolesSet, diags := types.SetValue(types.StringType, roles) @@ -486,7 +486,7 @@ func toCreatePayload(model *Model, roles []string) (*sqlserverflex.CreateUserPay } return &sqlserverflex.CreateUserPayload{ - Username: conversion.StringValueToPointer(model.Username), - Roles: &roles, + Username: model.Username.ValueString(), + Roles: roles, }, nil } diff --git a/stackit/internal/services/sqlserverflex/user/resource_test.go b/stackit/internal/services/sqlserverflex/user/resource_test.go index 058b213d4..d59c30668 100644 --- a/stackit/internal/services/sqlserverflex/user/resource_test.go +++ b/stackit/internal/services/sqlserverflex/user/resource_test.go @@ -7,7 +7,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/attr" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/stackitcloud/stackit-sdk-go/core/utils" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" ) func TestMapFieldsCreate(t *testing.T) { @@ -47,7 +47,7 @@ func TestMapFieldsCreate(t *testing.T) { &sqlserverflex.CreateUserResponse{ Item: &sqlserverflex.SingleUser{ Id: utils.Ptr("uid"), - Roles: &[]string{ + Roles: []string{ "role_1", "role_2", "", @@ -82,7 +82,7 @@ func TestMapFieldsCreate(t *testing.T) { &sqlserverflex.CreateUserResponse{ Item: &sqlserverflex.SingleUser{ Id: utils.Ptr("uid"), - Roles: &[]string{}, + Roles: []string{}, Username: nil, Password: utils.Ptr(""), Host: nil, @@ -194,7 +194,7 @@ func TestMapFields(t *testing.T) { "simple_values", &sqlserverflex.GetUserResponse{ Item: &sqlserverflex.UserResponseUser{ - Roles: &[]string{ + Roles: []string{ "role_1", "role_2", "", @@ -227,7 +227,7 @@ func TestMapFields(t *testing.T) { &sqlserverflex.GetUserResponse{ Item: &sqlserverflex.UserResponseUser{ Id: utils.Ptr("uid"), - Roles: &[]string{}, + Roles: []string{}, Username: nil, Host: nil, Port: utils.Ptr(int64(2123456789)), @@ -308,8 +308,8 @@ func TestToCreatePayload(t *testing.T) { &Model{}, []string{}, &sqlserverflex.CreateUserPayload{ - Roles: &[]string{}, - Username: nil, + Roles: []string{}, + Username: "", }, true, }, @@ -323,11 +323,11 @@ func TestToCreatePayload(t *testing.T) { "role_2", }, &sqlserverflex.CreateUserPayload{ - Roles: &[]string{ + Roles: []string{ "role_1", "role_2", }, - Username: utils.Ptr("username"), + Username: "username", }, true, }, @@ -340,10 +340,10 @@ func TestToCreatePayload(t *testing.T) { "", }, &sqlserverflex.CreateUserPayload{ - Roles: &[]string{ + Roles: []string{ "", }, - Username: nil, + Username: "", }, true, }, @@ -361,8 +361,8 @@ func TestToCreatePayload(t *testing.T) { }, []string{}, &sqlserverflex.CreateUserPayload{ - Roles: &[]string{}, - Username: utils.Ptr("username"), + Roles: []string{}, + Username: "username", }, true, }, diff --git a/stackit/internal/services/sqlserverflex/utils/util.go b/stackit/internal/services/sqlserverflex/utils/util.go index 5c14c0856..d152f44dc 100644 --- a/stackit/internal/services/sqlserverflex/utils/util.go +++ b/stackit/internal/services/sqlserverflex/utils/util.go @@ -4,7 +4,7 @@ import ( "context" "fmt" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" "github.com/hashicorp/terraform-plugin-framework/diag" "github.com/stackitcloud/stackit-sdk-go/core/config" diff --git a/stackit/internal/services/sqlserverflex/utils/util_test.go b/stackit/internal/services/sqlserverflex/utils/util_test.go index 5ee93949b..912da1d4f 100644 --- a/stackit/internal/services/sqlserverflex/utils/util_test.go +++ b/stackit/internal/services/sqlserverflex/utils/util_test.go @@ -9,7 +9,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/diag" sdkClients "github.com/stackitcloud/stackit-sdk-go/core/clients" "github.com/stackitcloud/stackit-sdk-go/core/config" - "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + sqlserverflex "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/v2api" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/core" "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/utils" ) From 1d36f46fb2800620a8c4b6cae80d67e746c0ae60 Mon Sep 17 00:00:00 2001 From: GokceGK Date: Wed, 25 Mar 2026 13:46:57 +0100 Subject: [PATCH 2/3] region adjustment --- stackit/internal/services/sqlserverflex/utils/util.go | 2 -- stackit/internal/services/sqlserverflex/utils/util_test.go | 1 - 2 files changed, 3 deletions(-) diff --git a/stackit/internal/services/sqlserverflex/utils/util.go b/stackit/internal/services/sqlserverflex/utils/util.go index d152f44dc..3a5f57374 100644 --- a/stackit/internal/services/sqlserverflex/utils/util.go +++ b/stackit/internal/services/sqlserverflex/utils/util.go @@ -19,8 +19,6 @@ func ConfigureClient(ctx context.Context, providerData *core.ProviderData, diags } if providerData.SQLServerFlexCustomEndpoint != "" { apiClientConfigOptions = append(apiClientConfigOptions, config.WithEndpoint(providerData.SQLServerFlexCustomEndpoint)) - } else { - apiClientConfigOptions = append(apiClientConfigOptions, config.WithRegion(providerData.GetRegion())) } apiClient, err := sqlserverflex.NewAPIClient(apiClientConfigOptions...) if err != nil { diff --git a/stackit/internal/services/sqlserverflex/utils/util_test.go b/stackit/internal/services/sqlserverflex/utils/util_test.go index 912da1d4f..720efd53d 100644 --- a/stackit/internal/services/sqlserverflex/utils/util_test.go +++ b/stackit/internal/services/sqlserverflex/utils/util_test.go @@ -45,7 +45,6 @@ func TestConfigureClient(t *testing.T) { }, expected: func() *sqlserverflex.APIClient { apiClient, err := sqlserverflex.NewAPIClient( - config.WithRegion("eu01"), utils.UserAgentConfigOption(testVersion), ) if err != nil { From 4ff5b2b68ac2460a0ae750f234a3107fce5b000c Mon Sep 17 00:00:00 2001 From: GokceGK Date: Wed, 25 Mar 2026 13:49:37 +0100 Subject: [PATCH 3/3] adjust acceptance test --- .../internal/services/sqlserverflex/sqlserverflex_acc_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go b/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go index 2dfb9f536..7116006a1 100644 --- a/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go +++ b/stackit/internal/services/sqlserverflex/sqlserverflex_acc_test.go @@ -31,7 +31,7 @@ var testConfigVarsMin = config.Variables{ "name": config.StringVariable(fmt.Sprintf("tf-acc-%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))), "flavor_cpu": config.IntegerVariable(4), "flavor_ram": config.IntegerVariable(16), - "flavor_description": config.StringVariable("SQLServer-Flex-4.16-Standard-EU01"), + "flavor_description": config.StringVariable("SQLServer-Flex-4.16-Single-Standard-EU01"), "replicas": config.IntegerVariable(1), "flavor_id": config.StringVariable("4.16-Single"), "username": config.StringVariable(fmt.Sprintf("tf-acc-user-%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlpha))), @@ -44,7 +44,7 @@ var testConfigVarsMax = config.Variables{ "acl1": config.StringVariable("192.168.0.0/16"), "flavor_cpu": config.IntegerVariable(4), "flavor_ram": config.IntegerVariable(16), - "flavor_description": config.StringVariable("SQLServer-Flex-4.16-Standard-EU01"), + "flavor_description": config.StringVariable("SQLServer-Flex-4.16-Single-Standard-EU01"), "storage_class": config.StringVariable("premium-perf2-stackit"), "storage_size": config.IntegerVariable(40), "server_version": config.StringVariable("2022"),