diff --git a/.github/workflows/acceptance-tests.yaml b/.github/workflows/acceptance-tests.yaml index 8aad21b8f..1ba3cb86f 100644 --- a/.github/workflows/acceptance-tests.yaml +++ b/.github/workflows/acceptance-tests.yaml @@ -53,6 +53,8 @@ jobs: uses: actions/checkout@v5 - name: Install Terraform uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 'terraform_1.14.0-rc1' - name: Install Go uses: actions/setup-go@v6 with: @@ -154,6 +156,8 @@ jobs: go-version: stable - name: Install Terraform uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 'terraform_1.14.0-rc1' - name: Run scwconfig tests run: go tool gotestsum --format github-actions -- ./internal/services/scwconfig -timeout=2m env: diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 03746b597..f04220595 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -27,6 +27,8 @@ jobs: - name: Install Terraform uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 'terraform_1.14.0-rc1' - name: Build binaries run: make build diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 2eb0d9027..f512d8ff4 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -59,7 +59,10 @@ jobs: - uses: actions/setup-go@v6 with: go-version: stable - - uses: hashicorp/setup-terraform@v3 + - name: Install Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 'terraform_1.14.0-rc1' - run: go tool tfplugindocs validate - run: rm -fr ./docs - run: go tool tfplugindocs generate diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 6da90fb04..60d819ab4 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -55,6 +55,8 @@ jobs: uses: actions/checkout@v5 - name: Install Terraform uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 'terraform_1.14.0-rc1' - name: Install Go uses: actions/setup-go@v6 with: @@ -115,6 +117,8 @@ jobs: go-version: stable - name: Install Terraform uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 'terraform_1.14.0-rc1' - name: Run sweepers run: make sweep env: diff --git a/.github/workflows/purge.yml b/.github/workflows/purge.yml index bbd68a1d1..bb1359051 100644 --- a/.github/workflows/purge.yml +++ b/.github/workflows/purge.yml @@ -19,6 +19,8 @@ jobs: go-version: stable - name: Install Terraform uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 'terraform_1.14.0-rc1' - name: Run sweepers run: make sweep env: diff --git a/.github/workflows/tfproviderlint.yml b/.github/workflows/tfproviderlint.yml index 4dc2cd90c..a904f13b6 100644 --- a/.github/workflows/tfproviderlint.yml +++ b/.github/workflows/tfproviderlint.yml @@ -31,6 +31,9 @@ jobs: - uses: actions/setup-go@v6 with: go-version: stable - - uses: hashicorp/setup-terraform@v3 + - name: Install Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 'terraform_1.14.0-rc1' - run: go install github.com/bflad/tfproviderdocs@latest - run: make tfproviderdocs diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index 227f6cc19..83a919f5e 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -22,6 +22,8 @@ jobs: go-version: stable - name: Install Terraform uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 'terraform_1.14.0-rc1' - name: Build binaries run: make build - name: Verify go.mod is tidy diff --git a/docs/actions/instance_server_action.md b/docs/actions/instance_server_action.md new file mode 100644 index 000000000..39425e7c9 --- /dev/null +++ b/docs/actions/instance_server_action.md @@ -0,0 +1,21 @@ +--- +subcategory: "Instances" +page_title: "Scaleway: scaleway_instance_server_action" +--- + +# scaleway_instance_server_action (Action) + + +## Schema + +### Required + +- `action` (String) Type of action to perform +- `server_id` (String) Server id to send the action to + +### Optional + +- `wait` (Boolean) Wait for server to finish action +- `zone` (String) Zone of server to send the action to + + diff --git a/go.mod b/go.mod index e1650bc06..7e2c725d3 100644 --- a/go.mod +++ b/go.mod @@ -22,6 +22,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-retryablehttp v0.7.8 github.com/hashicorp/terraform-plugin-framework v1.16.0 + github.com/hashicorp/terraform-plugin-framework-validators v0.18.1-0.20250909114857-8e55d8ccabdb github.com/hashicorp/terraform-plugin-go v0.29.0 github.com/hashicorp/terraform-plugin-log v0.9.0 github.com/hashicorp/terraform-plugin-mux v0.21.0 diff --git a/go.sum b/go.sum index 68ea70e56..1c468536d 100644 --- a/go.sum +++ b/go.sum @@ -328,6 +328,8 @@ github.com/hashicorp/terraform-plugin-docs v0.24.0 h1:YNZYd+8cpYclQyXbl1EEngbld8 github.com/hashicorp/terraform-plugin-docs v0.24.0/go.mod h1:YLg+7LEwVmRuJc0EuCw0SPLxuQXw5mW8iJ5ml/kvi+o= github.com/hashicorp/terraform-plugin-framework v1.16.0 h1:tP0f+yJg0Z672e7levixDe5EpWwrTrNryPM9kDMYIpE= github.com/hashicorp/terraform-plugin-framework v1.16.0/go.mod h1:0xFOxLy5lRzDTayc4dzK/FakIgBhNf/lC4499R9cV4Y= +github.com/hashicorp/terraform-plugin-framework-validators v0.18.1-0.20250909114857-8e55d8ccabdb h1:wRiOv+xaGRrBuc8r774OtrELwQCiSLLQNrkH00ZLO90= +github.com/hashicorp/terraform-plugin-framework-validators v0.18.1-0.20250909114857-8e55d8ccabdb/go.mod h1:vU2y54LtDNHGLjDD7LH/if+4KBKZ5ljTrgDdrM6y8Pc= github.com/hashicorp/terraform-plugin-go v0.29.0 h1:1nXKl/nSpaYIUBU1IG/EsDOX0vv+9JxAltQyDMpq5mU= github.com/hashicorp/terraform-plugin-go v0.29.0/go.mod h1:vYZbIyvxyy0FWSmDHChCqKvI40cFTDGSb3D8D70i9GM= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= diff --git a/internal/services/instance/action_server_action.go b/internal/services/instance/action_server_action.go new file mode 100644 index 000000000..d4fd5834e --- /dev/null +++ b/internal/services/instance/action_server_action.go @@ -0,0 +1,145 @@ +package instance + +import ( + "context" + "fmt" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/action" + "github.com/hashicorp/terraform-plugin-framework/action/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/scaleway/scaleway-sdk-go/api/instance/v1" + "github.com/scaleway/scaleway-sdk-go/scw" + "github.com/scaleway/terraform-provider-scaleway/v2/internal/locality" + "github.com/scaleway/terraform-provider-scaleway/v2/internal/meta" +) + +var ( + _ action.Action = (*ServerAction)(nil) + _ action.ActionWithConfigure = (*ServerAction)(nil) +) + +type ServerAction struct { + instanceAPI *instance.API +} + +func (a *ServerAction) Configure(ctx context.Context, req action.ConfigureRequest, resp *action.ConfigureResponse) { + if req.ProviderData == nil { + return + } + + m, ok := req.ProviderData.(*meta.Meta) + if !ok { + resp.Diagnostics.AddError( + "Unexpected Action Configure Type", + fmt.Sprintf("Expected *scw.Client, got: %T. Please report this issue to the provider developers.", req.ProviderData), + ) + + return + } + + client := m.ScwClient() + a.instanceAPI = instance.NewAPI(client) +} + +func (a *ServerAction) Metadata(ctx context.Context, req action.MetadataRequest, resp *action.MetadataResponse) { + resp.TypeName = req.ProviderTypeName + "_instance_server_action" +} + +type ServerActionModel struct { + ServerID types.String `tfsdk:"server_id"` + Zone types.String `tfsdk:"zone"` + Action types.String `tfsdk:"action"` + Wait types.Bool `tfsdk:"wait"` +} + +func NewServerAction() action.Action { + return &ServerAction{} +} + +func (a *ServerAction) Schema(ctx context.Context, req action.SchemaRequest, resp *action.SchemaResponse) { + actionsValues := instance.ServerAction("").Values() + + actionStringValues := make([]string, 0, len(actionsValues)) + for _, actionValue := range actionsValues { + actionStringValues = append(actionStringValues, actionValue.String()) + } + + resp.Schema = schema.Schema{ + Attributes: map[string]schema.Attribute{ + "action": schema.StringAttribute{ + Required: true, + Description: "Type of action to perform", + Validators: []validator.String{ + stringvalidator.OneOfCaseInsensitive(actionStringValues...), + }, + }, + "server_id": schema.StringAttribute{ + Required: true, + Description: "Server id to send the action to", + }, + "zone": schema.StringAttribute{ + Optional: true, + Description: "Zone of server to send the action to", + }, + "wait": schema.BoolAttribute{ + Optional: true, + Description: "Wait for server to finish action", + }, + }, + } +} + +func (a *ServerAction) Invoke(ctx context.Context, req action.InvokeRequest, resp *action.InvokeResponse) { + var data ServerActionModel + // Read action config data into the model + resp.Diagnostics.Append(req.Config.Get(ctx, &data)...) + + if resp.Diagnostics.HasError() { + return + } + + if a.instanceAPI == nil { + resp.Diagnostics.AddError( + "Unconfigured instanceAPI", + "The action was not properly configured. The Scaleway client is missing. "+ + "This is usually a bug in the provider. Please report it to the maintainers.", + ) + + return + } + + actionReq := &instance.ServerActionRequest{ + ServerID: locality.ExpandID(data.ServerID.ValueString()), + Action: instance.ServerAction(data.Action.ValueString()), + } + if !data.Zone.IsNull() { + actionReq.Zone = scw.Zone(data.Zone.String()) + } + + _, err := a.instanceAPI.ServerAction(actionReq) + if err != nil { + resp.Diagnostics.AddError( + "error in server action", + fmt.Sprintf("%s", err)) + } + + if data.Wait.ValueBool() { + waitReq := &instance.WaitForServerRequest{ + ServerID: locality.ExpandID(data.ServerID.ValueString()), + Zone: scw.Zone(data.Zone.String()), + } + + if !data.Zone.IsNull() { + waitReq.Zone = scw.Zone(data.Zone.String()) + } + + _, errWait := a.instanceAPI.WaitForServer(waitReq) + if errWait != nil { + resp.Diagnostics.AddError( + "error in wait server", + fmt.Sprintf("%s", err)) + } + } +} diff --git a/internal/services/instance/action_server_action_test.go b/internal/services/instance/action_server_action_test.go new file mode 100644 index 000000000..256a62d66 --- /dev/null +++ b/internal/services/instance/action_server_action_test.go @@ -0,0 +1,67 @@ +package instance_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest" +) + +func TestAccActionServer_Basic(t *testing.T) { + tt := acctest.NewTestTools(t) + defer tt.Cleanup() + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(t) }, + ProtoV6ProviderFactories: tt.ProviderFactories, + Steps: []resource.TestStep{ + { + Config: ` + resource "scaleway_instance_server" "main" { + name = "test-terraform-datasource-private-nic" + type = "DEV1-S" + image = "ubuntu_jammy" + + lifecycle { + action_trigger { + events = [after_create] + actions = [action.scaleway_instance_server_action.main] + } + } + } + + action "scaleway_instance_server_action" "main" { + config { + action = "reboot" + server_id = scaleway_instance_server.main.id + } + } + `, + }, + }, + }) +} + +func TestAccActionServer_UnknownVerb(t *testing.T) { + tt := acctest.NewTestTools(t) + defer tt.Cleanup() + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(t) }, + ProtoV6ProviderFactories: tt.ProviderFactories, + Steps: []resource.TestStep{ + { + Config: ` + action "scaleway_instance_server_action" "main" { + config { + action = "unknownVerb" + server_id = "11111111-1111-1111-1111-111111111111" + } + } + `, + ExpectError: regexp.MustCompile("Invalid Attribute Value Match"), + }, + }, + }) +} diff --git a/internal/services/instance/testdata/action-server-basic.cassette.yaml b/internal/services/instance/testdata/action-server-basic.cassette.yaml new file mode 100644 index 000000000..408e51446 --- /dev/null +++ b/internal/services/instance/testdata/action-server-basic.cassette.yaml @@ -0,0 +1,1650 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/products/servers?page=1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 39264 + uncompressed: false + body: '{"servers":{"COPARM1-16C-64G":{"alt_names":[],"arch":"arm64","block_bandwidth":671088640,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.3454,"mig_profile":null,"monthly_price":252.14,"ncpus":16,"network":{"interfaces":[{"internal_bandwidth":1600000000,"internet_bandwidth":1600000000}],"ipv6_support":true,"sum_internal_bandwidth":1600000000,"sum_internet_bandwidth":1600000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":68719476736,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"COPARM1-2C-8G":{"alt_names":[],"arch":"arm64","block_bandwidth":83886080,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.0426,"mig_profile":null,"monthly_price":31.1,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":200000000,"internet_bandwidth":200000000}],"ipv6_support":true,"sum_internal_bandwidth":200000000,"sum_internet_bandwidth":200000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"COPARM1-32C-128G":{"alt_names":[],"arch":"arm64","block_bandwidth":1342177280,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.6935,"mig_profile":null,"monthly_price":506.26,"ncpus":32,"network":{"interfaces":[{"internal_bandwidth":3200000000,"internet_bandwidth":3200000000}],"ipv6_support":true,"sum_internal_bandwidth":3200000000,"sum_internet_bandwidth":3200000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":137438953472,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"COPARM1-4C-16G":{"alt_names":[],"arch":"arm64","block_bandwidth":167772160,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.0857,"mig_profile":null,"monthly_price":62.56,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":400000000,"internet_bandwidth":400000000}],"ipv6_support":true,"sum_internal_bandwidth":400000000,"sum_internet_bandwidth":400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":17179869184,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"COPARM1-8C-32G":{"alt_names":[],"arch":"arm64","block_bandwidth":335544320,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.1724,"mig_profile":null,"monthly_price":125.85,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":800000000,"internet_bandwidth":800000000}],"ipv6_support":true,"sum_internal_bandwidth":800000000,"sum_internet_bandwidth":800000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":34359738368,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"DEV1-L":{"alt_names":[],"arch":"x86_64","block_bandwidth":209715200,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.04952,"mig_profile":null,"monthly_price":36.1496,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":400000000,"internet_bandwidth":400000000}],"ipv6_support":true,"sum_internal_bandwidth":400000000,"sum_internet_bandwidth":400000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":80000000000,"min_size":0}},"DEV1-M":{"alt_names":[],"arch":"x86_64","block_bandwidth":157286400,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.02556,"mig_profile":null,"monthly_price":18.6588,"ncpus":3,"network":{"interfaces":[{"internal_bandwidth":300000000,"internet_bandwidth":300000000}],"ipv6_support":true,"sum_internal_bandwidth":300000000,"sum_internet_bandwidth":300000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":4294967296,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":40000000000,"min_size":0}},"DEV1-S":{"alt_names":[],"arch":"x86_64","block_bandwidth":104857600,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.01368,"mig_profile":null,"monthly_price":9.9864,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":200000000,"internet_bandwidth":200000000}],"ipv6_support":true,"sum_internal_bandwidth":200000000,"sum_internet_bandwidth":200000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":2147483648,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":20000000000,"min_size":0}},"DEV1-XL":{"alt_names":[],"arch":"x86_64","block_bandwidth":262144000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.07308,"mig_profile":null,"monthly_price":53.3484,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":500000000,"internet_bandwidth":500000000}],"ipv6_support":true,"sum_internal_bandwidth":500000000,"sum_internet_bandwidth":500000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":12884901888,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":120000000000,"min_size":0}},"GP1-L":{"alt_names":[],"arch":"x86_64","block_bandwidth":1073741824,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.7894,"mig_profile":null,"monthly_price":576.262,"ncpus":32,"network":{"interfaces":[{"internal_bandwidth":5000000000,"internet_bandwidth":5000000000}],"ipv6_support":true,"sum_internal_bandwidth":5000000000,"sum_internet_bandwidth":5000000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":137438953472,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":600000000000,"min_size":0}},"GP1-M":{"alt_names":[],"arch":"x86_64","block_bandwidth":838860800,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.4064,"mig_profile":null,"monthly_price":296.672,"ncpus":16,"network":{"interfaces":[{"internal_bandwidth":1500000000,"internet_bandwidth":1500000000}],"ipv6_support":true,"sum_internal_bandwidth":1500000000,"sum_internet_bandwidth":1500000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":68719476736,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":600000000000,"min_size":0}},"GP1-S":{"alt_names":[],"arch":"x86_64","block_bandwidth":524288000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.2042,"mig_profile":null,"monthly_price":149.066,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":800000000,"internet_bandwidth":800000000}],"ipv6_support":true,"sum_internal_bandwidth":800000000,"sum_internet_bandwidth":800000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":34359738368,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":300000000000,"min_size":0}},"GP1-XL":{"alt_names":[],"arch":"x86_64","block_bandwidth":2147483648,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":1.6714,"mig_profile":null,"monthly_price":1220.122,"ncpus":48,"network":{"interfaces":[{"internal_bandwidth":10000000000,"internet_bandwidth":10000000000}],"ipv6_support":true,"sum_internal_bandwidth":10000000000,"sum_internet_bandwidth":10000000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":274877906944,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":600000000000,"min_size":0}},"GP1-XS":{"alt_names":[],"arch":"x86_64","block_bandwidth":314572800,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.1016,"mig_profile":null,"monthly_price":74.168,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":500000000,"internet_bandwidth":500000000}],"ipv6_support":true,"sum_internal_bandwidth":500000000,"sum_internet_bandwidth":500000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":17179869184,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":150000000000,"min_size":0}},"L4-1-24G":{"alt_names":[],"arch":"x86_64","block_bandwidth":1048576000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":2,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":1,"gpu_info":{"gpu_manufacturer":"NVIDIA","gpu_memory":25769803776,"gpu_name":"L4"},"hourly_price":0.75,"mig_profile":null,"monthly_price":547.5,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":2500000000,"internet_bandwidth":2500000000}],"ipv6_support":true,"sum_internal_bandwidth":2500000000,"sum_internet_bandwidth":2500000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":51539607552,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"L4-2-24G":{"alt_names":[],"arch":"x86_64","block_bandwidth":1572864000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":4,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":2,"gpu_info":{"gpu_manufacturer":"NVIDIA","gpu_memory":25769803776,"gpu_name":"L4"},"hourly_price":1.5,"mig_profile":null,"monthly_price":1095,"ncpus":16,"network":{"interfaces":[{"internal_bandwidth":5000000000,"internet_bandwidth":5000000000}],"ipv6_support":true,"sum_internal_bandwidth":5000000000,"sum_internet_bandwidth":5000000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":103079215104,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"L4-4-24G":{"alt_names":[],"arch":"x86_64","block_bandwidth":2621440000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":8,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":4,"gpu_info":{"gpu_manufacturer":"NVIDIA","gpu_memory":25769803776,"gpu_name":"L4"},"hourly_price":3,"mig_profile":null,"monthly_price":2190,"ncpus":32,"network":{"interfaces":[{"internal_bandwidth":10000000000,"internet_bandwidth":10000000000}],"ipv6_support":true,"sum_internal_bandwidth":10000000000,"sum_internet_bandwidth":10000000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":206158430208,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"L4-8-24G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5242880000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":16,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":8,"gpu_info":{"gpu_manufacturer":"NVIDIA","gpu_memory":25769803776,"gpu_name":"L4"},"hourly_price":6,"mig_profile":null,"monthly_price":4380,"ncpus":64,"network":{"interfaces":[{"internal_bandwidth":20000000000,"internet_bandwidth":20000000000}],"ipv6_support":true,"sum_internal_bandwidth":20000000000,"sum_internet_bandwidth":20000000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":412316860416,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"PLAY2-MICRO":{"alt_names":[],"arch":"x86_64","block_bandwidth":167772160,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.054,"mig_profile":null,"monthly_price":39.42,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":400000000,"internet_bandwidth":400000000}],"ipv6_support":true,"sum_internal_bandwidth":400000000,"sum_internet_bandwidth":400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"PLAY2-NANO":{"alt_names":[],"arch":"x86_64","block_bandwidth":83886080,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.027,"mig_profile":null,"monthly_price":19.71,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":200000000,"internet_bandwidth":200000000}],"ipv6_support":true,"sum_internal_bandwidth":200000000,"sum_internet_bandwidth":200000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":4294967296,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"PLAY2-PICO":{"alt_names":[],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.014,"mig_profile":null,"monthly_price":10.22,"ncpus":1,"network":{"interfaces":[{"internal_bandwidth":100000000,"internet_bandwidth":100000000}],"ipv6_support":true,"sum_internal_bandwidth":100000000,"sum_internet_bandwidth":100000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":2147483648,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-16C-64G":{"alt_names":[],"arch":"x86_64","block_bandwidth":3355443200,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":4,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.59,"mig_profile":null,"monthly_price":430.7,"ncpus":16,"network":{"interfaces":[{"internal_bandwidth":3200000000,"internet_bandwidth":3200000000}],"ipv6_support":true,"sum_internal_bandwidth":3200000000,"sum_internet_bandwidth":3200000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":68719476736,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-16C-64G-WIN":{"alt_names":[],"arch":"x86_64","block_bandwidth":3355443200,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":1.4567,"mig_profile":null,"monthly_price":1063.391,"ncpus":16,"network":{"interfaces":[{"internal_bandwidth":3200000000,"internet_bandwidth":3200000000}],"ipv6_support":true,"sum_internal_bandwidth":3200000000,"sum_internet_bandwidth":3200000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":68719476736,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-2C-8G":{"alt_names":[],"arch":"x86_64","block_bandwidth":419430400,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":1,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.0735,"mig_profile":null,"monthly_price":53.66,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":400000000,"internet_bandwidth":400000000}],"ipv6_support":true,"sum_internal_bandwidth":400000000,"sum_internet_bandwidth":400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-2C-8G-WIN":{"alt_names":[],"arch":"x86_64","block_bandwidth":419430400,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.1823,"mig_profile":null,"monthly_price":133.079,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":400000000,"internet_bandwidth":400000000}],"ipv6_support":true,"sum_internal_bandwidth":400000000,"sum_internet_bandwidth":400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-32C-128G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":8,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":1.18,"mig_profile":null,"monthly_price":861.4,"ncpus":32,"network":{"interfaces":[{"internal_bandwidth":6400000000,"internet_bandwidth":6400000000}],"ipv6_support":true,"sum_internal_bandwidth":6400000000,"sum_internet_bandwidth":6400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":137438953472,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-32C-128G-WIN":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":2.9133,"mig_profile":null,"monthly_price":2126.709,"ncpus":32,"network":{"interfaces":[{"internal_bandwidth":6400000000,"internet_bandwidth":6400000000}],"ipv6_support":true,"sum_internal_bandwidth":6400000000,"sum_internet_bandwidth":6400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":137438953472,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-48C-192G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":12,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":1.77,"mig_profile":null,"monthly_price":1274.4,"ncpus":48,"network":{"interfaces":[{"internal_bandwidth":9600000000,"internet_bandwidth":9600000000}],"ipv6_support":true,"sum_internal_bandwidth":9600000000,"sum_internet_bandwidth":9600000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":206158430208,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-4C-16G":{"alt_names":[],"arch":"x86_64","block_bandwidth":838860800,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":1,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.147,"mig_profile":null,"monthly_price":107.31,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":800000000,"internet_bandwidth":800000000}],"ipv6_support":true,"sum_internal_bandwidth":800000000,"sum_internet_bandwidth":800000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":17179869184,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-4C-16G-WIN":{"alt_names":[],"arch":"x86_64","block_bandwidth":838860800,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.3637,"mig_profile":null,"monthly_price":265.501,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":800000000,"internet_bandwidth":800000000}],"ipv6_support":true,"sum_internal_bandwidth":800000000,"sum_internet_bandwidth":800000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":17179869184,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-64C-256G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":16,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":2.35,"mig_profile":null,"monthly_price":1715.5,"ncpus":64,"network":{"interfaces":[{"internal_bandwidth":12800000000,"internet_bandwidth":12800000000}],"ipv6_support":true,"sum_internal_bandwidth":12800000000,"sum_internet_bandwidth":12800000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":274877906944,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-8C-32G":{"alt_names":[],"arch":"x86_64","block_bandwidth":1677721600,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":2,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.29,"mig_profile":null,"monthly_price":211.7,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":1600000000,"internet_bandwidth":1600000000}],"ipv6_support":true,"sum_internal_bandwidth":1600000000,"sum_internet_bandwidth":1600000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":34359738368,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-8C-32G-WIN":{"alt_names":[],"arch":"x86_64","block_bandwidth":1677721600,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.7233,"mig_profile":null,"monthly_price":528.009,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":1600000000,"internet_bandwidth":1600000000}],"ipv6_support":true,"sum_internal_bandwidth":1600000000,"sum_internet_bandwidth":1600000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":34359738368,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HC-16C-32G":{"alt_names":[],"arch":"x86_64","block_bandwidth":3355443200,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":4,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.4256,"mig_profile":null,"monthly_price":310.69,"ncpus":16,"network":{"interfaces":[{"internal_bandwidth":3200000000,"internet_bandwidth":3200000000}],"ipv6_support":true,"sum_internal_bandwidth":3200000000,"sum_internet_bandwidth":3200000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":34359738368,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HC-2C-4G":{"alt_names":[],"arch":"x86_64","block_bandwidth":419430400,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":1,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.0532,"mig_profile":null,"monthly_price":38.84,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":400000000,"internet_bandwidth":400000000}],"ipv6_support":true,"sum_internal_bandwidth":400000000,"sum_internet_bandwidth":400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":4294967296,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HC-32C-64G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":8,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.8512,"mig_profile":null,"monthly_price":621.38,"ncpus":32,"network":{"interfaces":[{"internal_bandwidth":6400000000,"internet_bandwidth":6400000000}],"ipv6_support":true,"sum_internal_bandwidth":6400000000,"sum_internet_bandwidth":6400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":68719476736,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HC-48C-96G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":12,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":1.27,"mig_profile":null,"monthly_price":914.4,"ncpus":48,"network":{"interfaces":[{"internal_bandwidth":9600000000,"internet_bandwidth":9600000000}],"ipv6_support":true,"sum_internal_bandwidth":9600000000,"sum_internet_bandwidth":9600000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":103079215104,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HC-4C-8G":{"alt_names":[],"arch":"x86_64","block_bandwidth":838860800,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":1,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.1064,"mig_profile":null,"monthly_price":77.67,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":800000000,"internet_bandwidth":800000000}],"ipv6_support":true,"sum_internal_bandwidth":800000000,"sum_internet_bandwidth":800000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HC-64C-128G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":16,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":1.7024,"mig_profile":null,"monthly_price":1242.75,"ncpus":64,"network":{"interfaces":[{"internal_bandwidth":12800000000,"internet_bandwidth":12800000000}],"ipv6_support":true,"sum_internal_bandwidth":12800000000,"sum_internet_bandwidth":12800000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":137438953472,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HC-8C-16G":{"alt_names":[],"arch":"x86_64","block_bandwidth":1677721600,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":2,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.2128,"mig_profile":null,"monthly_price":155.34,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":1600000000,"internet_bandwidth":1600000000}],"ipv6_support":true,"sum_internal_bandwidth":1600000000,"sum_internet_bandwidth":1600000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":17179869184,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HM-16C-128G":{"alt_names":[],"arch":"x86_64","block_bandwidth":3355443200,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":4,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.824,"mig_profile":null,"monthly_price":601.52,"ncpus":16,"network":{"interfaces":[{"internal_bandwidth":3200000000,"internet_bandwidth":3200000000}],"ipv6_support":true,"sum_internal_bandwidth":3200000000,"sum_internet_bandwidth":3200000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":137438953472,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HM-2C-16G":{"alt_names":[],"arch":"x86_64","block_bandwidth":419430400,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":2,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.103,"mig_profile":null,"monthly_price":75.19,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":400000000,"internet_bandwidth":400000000}],"ipv6_support":true,"sum_internal_bandwidth":400000000,"sum_internet_bandwidth":400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":17179869184,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HM-32C-256G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":8,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":1.648,"mig_profile":null,"monthly_price":1203.04,"ncpus":32,"network":{"interfaces":[{"internal_bandwidth":6400000000,"internet_bandwidth":6400000000}],"ipv6_support":true,"sum_internal_bandwidth":6400000000,"sum_internet_bandwidth":6400000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":274877906944,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HM-48C-384G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":12,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":2.47,"mig_profile":null,"monthly_price":1778.4,"ncpus":48,"network":{"interfaces":[{"internal_bandwidth":9600000000,"internet_bandwidth":9600000000}],"ipv6_support":true,"sum_internal_bandwidth":9600000000,"sum_internet_bandwidth":9600000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":412316860416,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HM-4C-32G":{"alt_names":[],"arch":"x86_64","block_bandwidth":838860800,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":1,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.206,"mig_profile":null,"monthly_price":150.38,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":800000000,"internet_bandwidth":800000000}],"ipv6_support":true,"sum_internal_bandwidth":800000000,"sum_internet_bandwidth":800000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":34359738368,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HM-64C-512G":{"alt_names":[],"arch":"x86_64","block_bandwidth":5905580032,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":16,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":3.296,"mig_profile":null,"monthly_price":2406.08,"ncpus":64,"network":{"interfaces":[{"internal_bandwidth":12800000000,"internet_bandwidth":12800000000}],"ipv6_support":true,"sum_internal_bandwidth":12800000000,"sum_internet_bandwidth":12800000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":549755813888,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HM-8C-64G":{"alt_names":[],"arch":"x86_64","block_bandwidth":1677721600,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":2,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.412,"mig_profile":null,"monthly_price":300.76,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":1600000000,"internet_bandwidth":1600000000}],"ipv6_support":true,"sum_internal_bandwidth":1600000000,"sum_internet_bandwidth":1600000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":68719476736,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HN-10":{"alt_names":[],"arch":"x86_64","block_bandwidth":838860800,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":1,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.7264,"mig_profile":null,"monthly_price":530.29,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":10000000000,"internet_bandwidth":10000000000}],"ipv6_support":true,"sum_internal_bandwidth":10000000000,"sum_internet_bandwidth":10000000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HN-3":{"alt_names":[],"arch":"x86_64","block_bandwidth":419430400,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":1,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.2554,"mig_profile":null,"monthly_price":186.49,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":3000000000,"internet_bandwidth":3000000000}],"ipv6_support":true,"sum_internal_bandwidth":3000000000,"sum_internet_bandwidth":3000000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":4294967296,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"POP2-HN-5":{"alt_names":[],"arch":"x86_64","block_bandwidth":838860800,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":1,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.4524,"mig_profile":null,"monthly_price":330.29,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":5000000000,"internet_bandwidth":5000000000}],"ipv6_support":true,"sum_internal_bandwidth":5000000000,"sum_internet_bandwidth":5000000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}}}}' + headers: + Content-Length: + - "39264" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:37 GMT + Link: + - ; rel="next",; rel="last" + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 7bba1441-a356-403f-9b98-c8cd742b3b35 + X-Total-Count: + - "68" + status: 200 OK + code: 200 + duration: 241.326792ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/products/servers?page=2 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 14295 + uncompressed: false + body: '{"servers":{"PRO2-L":{"alt_names":[],"arch":"x86_64","block_bandwidth":2097152000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.877,"mig_profile":null,"monthly_price":640.21,"ncpus":32,"network":{"interfaces":[{"internal_bandwidth":6000000000,"internet_bandwidth":6000000000}],"ipv6_support":true,"sum_internal_bandwidth":6000000000,"sum_internet_bandwidth":6000000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":137438953472,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"PRO2-M":{"alt_names":[],"arch":"x86_64","block_bandwidth":1048576000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.438,"mig_profile":null,"monthly_price":319.74,"ncpus":16,"network":{"interfaces":[{"internal_bandwidth":3000000000,"internet_bandwidth":3000000000}],"ipv6_support":true,"sum_internal_bandwidth":3000000000,"sum_internet_bandwidth":3000000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":68719476736,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"PRO2-S":{"alt_names":[],"arch":"x86_64","block_bandwidth":524288000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.219,"mig_profile":null,"monthly_price":159.87,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":1500000000,"internet_bandwidth":1500000000}],"ipv6_support":true,"sum_internal_bandwidth":1500000000,"sum_internet_bandwidth":1500000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":34359738368,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"PRO2-XS":{"alt_names":[],"arch":"x86_64","block_bandwidth":262144000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.11,"mig_profile":null,"monthly_price":80.3,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":700000000,"internet_bandwidth":700000000}],"ipv6_support":true,"sum_internal_bandwidth":700000000,"sum_internet_bandwidth":700000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":17179869184,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"PRO2-XXS":{"alt_names":[],"arch":"x86_64","block_bandwidth":131072000,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":false,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.055,"mig_profile":null,"monthly_price":40.15,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":350000000,"internet_bandwidth":350000000}],"ipv6_support":true,"sum_internal_bandwidth":350000000,"sum_internet_bandwidth":350000000},"per_volume_constraint":{"l_ssd":{"max_size":0,"min_size":0}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":0,"min_size":0}},"RENDER-S":{"alt_names":[],"arch":"x86_64","block_bandwidth":2147483648,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":1,"gpu_info":{"gpu_manufacturer":"NVIDIA","gpu_memory":17179869184,"gpu_name":"P100"},"hourly_price":1.2426,"mig_profile":null,"monthly_price":907.098,"ncpus":10,"network":{"interfaces":[{"internal_bandwidth":2000000000,"internet_bandwidth":2000000000}],"ipv6_support":true,"sum_internal_bandwidth":2000000000,"sum_internet_bandwidth":2000000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":45097156608,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":400000000000,"min_size":0}},"STARDUST1-S":{"alt_names":[],"arch":"x86_64","block_bandwidth":52428800,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":false,"gpu":0,"gpu_info":null,"hourly_price":0.00459,"mig_profile":null,"monthly_price":3.3507,"ncpus":1,"network":{"interfaces":[{"internal_bandwidth":100000000,"internet_bandwidth":100000000}],"ipv6_support":true,"sum_internal_bandwidth":100000000,"sum_internet_bandwidth":100000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":1073741824,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":10000000000,"min_size":0}},"START1-L":{"alt_names":[],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.0368,"mig_profile":null,"monthly_price":26.864,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":400000000,"internet_bandwidth":400000000}],"ipv6_support":true,"sum_internal_bandwidth":400000000,"sum_internet_bandwidth":400000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":200000000000,"min_size":0}},"START1-M":{"alt_names":[],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.0194,"mig_profile":null,"monthly_price":14.162,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":300000000,"internet_bandwidth":300000000}],"ipv6_support":true,"sum_internal_bandwidth":300000000,"sum_internet_bandwidth":300000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":4294967296,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":100000000000,"min_size":0}},"START1-S":{"alt_names":[],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.0106,"mig_profile":null,"monthly_price":7.738,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":200000000,"internet_bandwidth":200000000}],"ipv6_support":true,"sum_internal_bandwidth":200000000,"sum_internet_bandwidth":200000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":2147483648,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":50000000000,"min_size":0}},"START1-XS":{"alt_names":[],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.0062,"mig_profile":null,"monthly_price":4.526,"ncpus":1,"network":{"interfaces":[{"internal_bandwidth":100000000,"internet_bandwidth":100000000}],"ipv6_support":true,"sum_internal_bandwidth":100000000,"sum_internet_bandwidth":100000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":1073741824,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":25000000000,"min_size":0}},"VC1L":{"alt_names":["X64-8GB"],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.02468,"mig_profile":null,"monthly_price":18.0164,"ncpus":6,"network":{"interfaces":[{"internal_bandwidth":200000000,"internet_bandwidth":200000000}],"ipv6_support":true,"sum_internal_bandwidth":200000000,"sum_internet_bandwidth":200000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":8589934592,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":200000000000,"min_size":0}},"VC1M":{"alt_names":["X64-4GB"],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.01555,"mig_profile":null,"monthly_price":11.3515,"ncpus":4,"network":{"interfaces":[{"internal_bandwidth":200000000,"internet_bandwidth":200000000}],"ipv6_support":true,"sum_internal_bandwidth":200000000,"sum_internet_bandwidth":200000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":4294967296,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":100000000000,"min_size":0}},"VC1S":{"alt_names":["X64-2GB"],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.00862,"mig_profile":null,"monthly_price":6.2926,"ncpus":2,"network":{"interfaces":[{"internal_bandwidth":200000000,"internet_bandwidth":200000000}],"ipv6_support":true,"sum_internal_bandwidth":200000000,"sum_internet_bandwidth":200000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":2147483648,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":50000000000,"min_size":0}},"X64-120GB":{"alt_names":[],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.42574,"mig_profile":null,"monthly_price":310.7902,"ncpus":12,"network":{"interfaces":[{"internal_bandwidth":1000000000,"internet_bandwidth":1000000000}],"ipv6_support":true,"sum_internal_bandwidth":1000000000,"sum_internet_bandwidth":1000000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":128849018880,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":800000000000,"min_size":0}},"X64-15GB":{"alt_names":[],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.06032,"mig_profile":null,"monthly_price":44.0336,"ncpus":6,"network":{"interfaces":[{"internal_bandwidth":250000000,"internet_bandwidth":250000000}],"ipv6_support":true,"sum_internal_bandwidth":250000000,"sum_internet_bandwidth":250000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":16106127360,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":200000000000,"min_size":0}},"X64-30GB":{"alt_names":[],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.11906,"mig_profile":null,"monthly_price":86.9138,"ncpus":8,"network":{"interfaces":[{"internal_bandwidth":500000000,"internet_bandwidth":500000000}],"ipv6_support":true,"sum_internal_bandwidth":500000000,"sum_internet_bandwidth":500000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":32212254720,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":400000000000,"min_size":0}},"X64-60GB":{"alt_names":[],"arch":"x86_64","block_bandwidth":41943040,"capabilities":{"block_storage":true,"boot_types":["local","rescue"],"hot_snapshots_local_volume":true,"max_file_systems":0,"placement_groups":true,"private_network":8},"end_of_service":true,"gpu":0,"gpu_info":null,"hourly_price":0.213,"mig_profile":null,"monthly_price":155.49,"ncpus":10,"network":{"interfaces":[{"internal_bandwidth":1000000000,"internet_bandwidth":1000000000}],"ipv6_support":true,"sum_internal_bandwidth":1000000000,"sum_internet_bandwidth":1000000000},"per_volume_constraint":{"l_ssd":{"max_size":800000000000,"min_size":1000000000}},"ram":64424509440,"scratch_storage_max_size":null,"volumes_constraint":{"max_size":700000000000,"min_size":0}}}}' + headers: + Content-Length: + - "14295" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:37 GMT + Link: + - ; rel="first",; rel="previous",; rel="last" + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 8bfc5ec6-eb46-4efe-ba22-b8a570f974e0 + X-Total-Count: + - "68" + status: 200 OK + code: 200 + duration: 84.5785ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/marketplace/v2/local-images?image_label=ubuntu_jammy&order_by=type_asc&type=instance_sbs&zone=fr-par-1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1260 + uncompressed: false + body: '{"local_images":[{"arch":"arm64","compatible_commercial_types":["COPARM1-2C-8G","COPARM1-4C-16G","COPARM1-8C-32G","COPARM1-16C-64G","COPARM1-32C-128G"],"id":"65ce6135-f6d5-4e90-82ec-ef09d29d1cff","label":"ubuntu_jammy","type":"instance_sbs","zone":"fr-par-1"},{"arch":"x86_64","compatible_commercial_types":["DEV1-L","DEV1-M","DEV1-S","DEV1-XL","GP1-L","GP1-M","GP1-S","GP1-XL","GP1-XS","START1-L","START1-M","START1-S","START1-XS","VC1L","VC1M","VC1S","X64-120GB","X64-15GB","X64-30GB","X64-60GB","ENT1-XXS","ENT1-XS","ENT1-S","ENT1-M","ENT1-L","ENT1-XL","ENT1-2XL","PRO2-XXS","PRO2-XS","PRO2-S","PRO2-M","PRO2-L","STARDUST1-S","PLAY2-MICRO","PLAY2-NANO","PLAY2-PICO","POP2-2C-8G","POP2-4C-16G","POP2-8C-32G","POP2-16C-64G","POP2-32C-128G","POP2-48C-192G","POP2-64C-256G","POP2-HM-2C-16G","POP2-HM-4C-32G","POP2-HM-8C-64G","POP2-HM-16C-128G","POP2-HM-32C-256G","POP2-HM-48C-384G","POP2-HM-64C-512G","POP2-HC-2C-4G","POP2-HC-4C-8G","POP2-HC-8C-16G","POP2-HC-16C-32G","POP2-HC-32C-64G","POP2-HC-48C-96G","POP2-HC-64C-128G","POP2-HN-3","POP2-HN-5","POP2-HN-10"],"id":"6d3c053e-c728-4294-b23a-560b62a4d592","label":"ubuntu_jammy","type":"instance_sbs","zone":"fr-par-1"}],"total_count":2}' + headers: + Content-Length: + - "1260" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:37 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 6f9aa9b0-2199-4ef2-9342-0a979730fbec + status: 200 OK + code: 200 + duration: 49.892834ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 250 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"name":"test-terraform-datasource-private-nic","dynamic_ip_required":false,"commercial_type":"DEV1-S","image":"6d3c053e-c728-4294-b23a-560b62a4d592","volumes":{"0":{"boot":false}},"boot_type":"local","project":"105bdce1-64c0-48ab-899d-868455867ecf"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1774 + uncompressed: false + body: '{"server":{"allowed_actions":["poweron","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":null,"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:26:37.998700+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"stopped","state_detail":"","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1774" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:39 GMT + Location: + - https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 835b098c-69b0-40c2-9b8e-9edbb1175f97 + status: 201 Created + code: 201 + duration: 1.830435459s + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1774 + uncompressed: false + body: '{"server":{"allowed_actions":["poweron","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":null,"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:26:37.998700+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"stopped","state_detail":"","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1774" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:39 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - fa096893-7656-4d49-8d53-9faf30ac9d9a + status: 200 OK + code: 200 + duration: 153.713667ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1774 + uncompressed: false + body: '{"server":{"allowed_actions":["poweron","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":null,"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:26:37.998700+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"stopped","state_detail":"","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1774" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:39 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 837cf952-9ed4-4798-985d-9669f3e447bc + status: 200 OK + code: 200 + duration: 140.429208ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/9bb7a5c0-5140-4355-a91f-74674707f8bf + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 705 + uncompressed: false + body: '{"created_at":"2025-10-27T14:26:38.148608Z","id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","last_detached_at":null,"name":"Ubuntu 22.04 Jammy Jellyfish_sbs_volume_0","parent_snapshot_id":"36b4ce54-c67a-4f68-ab74-839515834352","project_id":"105bdce1-64c0-48ab-899d-868455867ecf","references":[{"created_at":"2025-10-27T14:26:38.148608Z","id":"246f5371-2687-4bd7-80a9-a44471781ac6","product_resource_id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","product_resource_type":"instance_server","status":"attached","type":"exclusive"}],"size":10000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"in_use","tags":[],"type":"sbs_5k","updated_at":"2025-10-27T14:26:38.148608Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "705" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:39 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 048a3068-0647-468b-8499-f6bfc01b5479 + status: 200 OK + code: 200 + duration: 78.56025ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 20 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"action":"poweron"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/action + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 357 + uncompressed: false + body: '{"task":{"description":"server_batch_poweron","href_from":"/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/action","href_result":"/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1","id":"358cd133-a076-4d67-b032-c7e2be6568ea","progress":0,"started_at":"2025-10-27T14:26:39.853661+00:00","status":"pending","terminated_at":null,"zone":"fr-par-1"}}' + headers: + Content-Length: + - "357" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:39 GMT + Location: + - https://api.scaleway.com/instance/v1/zones/fr-par-1/tasks/358cd133-a076-4d67-b032-c7e2be6568ea + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 8e5a5138-04b6-4d8a-88c8-103a53dde811 + status: 202 Accepted + code: 202 + duration: 259.808708ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1796 + uncompressed: false + body: '{"server":{"allowed_actions":["stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":null,"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:26:39.640392+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"starting","state_detail":"allocating node","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1796" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:40 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 73e8130f-3373-43b2-9f21-f044283c71d8 + status: 200 OK + code: 200 + duration: 145.732667ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1930 + uncompressed: false + body: '{"server":{"allowed_actions":["poweroff","terminate","reboot","stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:26:42.284595+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"running","state_detail":"booting kernel","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1930" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:45 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 6ef12660-0af4-4fb4-ad9a-2e4108c29070 + status: 200 OK + code: 200 + duration: 166.428ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1930 + uncompressed: false + body: '{"server":{"allowed_actions":["poweroff","terminate","reboot","stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:26:42.284595+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"running","state_detail":"booting kernel","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1930" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:45 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a768298a-83fa-4cc9-af79-921eb565f01b + status: 200 OK + code: 200 + duration: 153.171541ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/volumes/9bb7a5c0-5140-4355-a91f-74674707f8bf + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 143 + uncompressed: false + body: '{"message":"resource is not found","resource":"instance_volume","resource_id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","type":"not_found"}' + headers: + Content-Length: + - "143" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:45 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - b542a13e-7cab-4ff2-9665-c71d179d5d16 + status: 404 Not Found + code: 404 + duration: 36.637125ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/9bb7a5c0-5140-4355-a91f-74674707f8bf + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 705 + uncompressed: false + body: '{"created_at":"2025-10-27T14:26:38.148608Z","id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","last_detached_at":null,"name":"Ubuntu 22.04 Jammy Jellyfish_sbs_volume_0","parent_snapshot_id":"36b4ce54-c67a-4f68-ab74-839515834352","project_id":"105bdce1-64c0-48ab-899d-868455867ecf","references":[{"created_at":"2025-10-27T14:26:38.148608Z","id":"246f5371-2687-4bd7-80a9-a44471781ac6","product_resource_id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","product_resource_type":"instance_server","status":"attached","type":"exclusive"}],"size":10000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"in_use","tags":[],"type":"sbs_5k","updated_at":"2025-10-27T14:26:38.148608Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "705" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:45 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - ab295df0-d5de-4509-9991-9c82fc4e1399 + status: 200 OK + code: 200 + duration: 86.738458ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/user_data + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 17 + uncompressed: false + body: '{"user_data":[]}' + headers: + Content-Length: + - "17" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:45 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 64a1ddd3-e0b9-426d-9784-471b28091c05 + status: 200 OK + code: 200 + duration: 100.040792ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/private_nics + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 20 + uncompressed: false + body: '{"private_nics":[]}' + headers: + Content-Length: + - "20" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:26:45 GMT + Link: + - ; rel="last" + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 5ce14db5-324f-41ce-8011-c85e5df1168a + X-Total-Count: + - "0" + status: 200 OK + code: 200 + duration: 112.029542ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 19 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"action":"reboot"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/action + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 350 + uncompressed: false + body: '{"task":{"description":"server_reboot","href_from":"/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/action","href_result":"/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1","id":"c2fdecd9-39ff-4d77-b170-9d0ff4785f3c","progress":0,"started_at":"2025-10-27T14:27:01.072930+00:00","status":"pending","terminated_at":null,"zone":"fr-par-1"}}' + headers: + Content-Length: + - "350" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:01 GMT + Location: + - https://api.scaleway.com/instance/v1/zones/fr-par-1/tasks/c2fdecd9-39ff-4d77-b170-9d0ff4785f3c + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 1a204952-d6fe-4d24-90c9-c67b387a6c31 + status: 202 Accepted + code: 202 + duration: 378.066584ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1891 + uncompressed: false + body: '{"server":{"allowed_actions":["stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:27:00.839113+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"stopping","state_detail":"rebooting","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1891" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:14 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 83b46a34-d351-4252-b389-c2c30ff2e091 + status: 200 OK + code: 200 + duration: 133.123958ms + - id: 17 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1891 + uncompressed: false + body: '{"server":{"allowed_actions":["stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:27:00.839113+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"stopping","state_detail":"rebooting","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1891" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:19 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 3aed5ba9-e8bd-49cf-a4f2-05fd7a53d41a + status: 200 OK + code: 200 + duration: 144.17ms + - id: 18 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1891 + uncompressed: false + body: '{"server":{"allowed_actions":["stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:27:00.839113+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"stopping","state_detail":"rebooting","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1891" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:24 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a50dde54-df64-4d5e-ac39-2359bf14af77 + status: 200 OK + code: 200 + duration: 163.803292ms + - id: 19 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1891 + uncompressed: false + body: '{"server":{"allowed_actions":["stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:27:00.839113+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"stopping","state_detail":"rebooting","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1891" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:29 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - df5cb734-fbb0-4a2a-9397-855f885e0a04 + status: 200 OK + code: 200 + duration: 138.182459ms + - id: 20 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1925 + uncompressed: false + body: '{"server":{"allowed_actions":["poweroff","terminate","reboot","stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:26:42.284595+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"running","state_detail":"rebooting","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1925" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:34 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 0d64876b-f61e-4cd6-9cdf-92e6af3ea7de + status: 200 OK + code: 200 + duration: 159.824125ms + - id: 21 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/volumes/9bb7a5c0-5140-4355-a91f-74674707f8bf + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 143 + uncompressed: false + body: '{"message":"resource is not found","resource":"instance_volume","resource_id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","type":"not_found"}' + headers: + Content-Length: + - "143" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:35 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 5889425f-3f5f-4cfc-93cd-541e151e5346 + status: 404 Not Found + code: 404 + duration: 33.217ms + - id: 22 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/9bb7a5c0-5140-4355-a91f-74674707f8bf + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 705 + uncompressed: false + body: '{"created_at":"2025-10-27T14:26:38.148608Z","id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","last_detached_at":null,"name":"Ubuntu 22.04 Jammy Jellyfish_sbs_volume_0","parent_snapshot_id":"36b4ce54-c67a-4f68-ab74-839515834352","project_id":"105bdce1-64c0-48ab-899d-868455867ecf","references":[{"created_at":"2025-10-27T14:26:38.148608Z","id":"246f5371-2687-4bd7-80a9-a44471781ac6","product_resource_id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","product_resource_type":"instance_server","status":"attached","type":"exclusive"}],"size":10000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"in_use","tags":[],"type":"sbs_5k","updated_at":"2025-10-27T14:26:38.148608Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "705" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:35 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 45c63b8f-6087-4e71-854d-72dbf40af9f9 + status: 200 OK + code: 200 + duration: 90.129208ms + - id: 23 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/user_data + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 17 + uncompressed: false + body: '{"user_data":[]}' + headers: + Content-Length: + - "17" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:35 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 30d2404d-f00c-4240-8a0e-08d037ec8b70 + status: 200 OK + code: 200 + duration: 115.644541ms + - id: 24 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/private_nics + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 20 + uncompressed: false + body: '{"private_nics":[]}' + headers: + Content-Length: + - "20" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:35 GMT + Link: + - ; rel="last" + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 0edf9ab3-bbaf-43df-a232-9055d90814f6 + X-Total-Count: + - "0" + status: 200 OK + code: 200 + duration: 102.606208ms + - id: 25 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1925 + uncompressed: false + body: '{"server":{"allowed_actions":["poweroff","terminate","reboot","stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:26:42.284595+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"running","state_detail":"rebooting","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1925" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:35 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - cc29665c-9c55-476d-b679-480eba1a661e + status: 200 OK + code: 200 + duration: 171.020792ms + - id: 26 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1925 + uncompressed: false + body: '{"server":{"allowed_actions":["poweroff","terminate","reboot","stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:26:42.284595+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"running","state_detail":"rebooting","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1925" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:36 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 6cdd8650-f0a7-460e-9995-6e5e7104679d + status: 200 OK + code: 200 + duration: 150.641875ms + - id: 27 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 22 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"action":"terminate"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/action + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 353 + uncompressed: false + body: '{"task":{"description":"server_terminate","href_from":"/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1/action","href_result":"/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1","id":"83f57939-f73d-42ba-af95-d715733b88bd","progress":0,"started_at":"2025-10-27T14:27:36.321917+00:00","status":"pending","terminated_at":null,"zone":"fr-par-1"}}' + headers: + Content-Length: + - "353" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:36 GMT + Location: + - https://api.scaleway.com/instance/v1/zones/fr-par-1/tasks/83f57939-f73d-42ba-af95-d715733b88bd + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 5291db87-62a8-4d8e-bbc2-ebb1ecaab166 + status: 202 Accepted + code: 202 + duration: 305.588208ms + - id: 28 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1893 + uncompressed: false + body: '{"server":{"allowed_actions":["stop_in_place","backup"],"arch":"x86_64","boot_type":"local","bootscript":null,"commercial_type":"DEV1-S","creation_date":"2025-10-27T14:26:37.998700+00:00","dynamic_ip_required":false,"enable_ipv6":false,"end_of_service":false,"extra_networks":[],"filesystems":[],"hostname":"test-terraform-datasource-private-nic","id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","image":{"arch":"x86_64","creation_date":"2025-09-12T09:11:41.420846+00:00","default_bootscript":null,"extra_volumes":{},"from_server":"","id":"6d3c053e-c728-4294-b23a-560b62a4d592","modification_date":"2025-09-12T09:11:41.420846+00:00","name":"Ubuntu 22.04 Jammy Jellyfish","organization":"51b656e3-4865-41e8-adbc-0c45bdd780db","project":"51b656e3-4865-41e8-adbc-0c45bdd780db","public":true,"root_volume":{"id":"36b4ce54-c67a-4f68-ab74-839515834352","name":"","size":0,"volume_type":"sbs_snapshot"},"state":"available","tags":[],"zone":"fr-par-1"},"ipv6":null,"location":{"cluster_id":"16","hypervisor_id":"801","node_id":"50","platform_id":"14","zone_id":"fr-par-1"},"mac_address":"de:00:00:cf:c2:71","maintenances":[],"modification_date":"2025-10-27T14:27:36.201988+00:00","name":"test-terraform-datasource-private-nic","organization":"105bdce1-64c0-48ab-899d-868455867ecf","placement_group":null,"private_ip":null,"private_nics":[],"project":"105bdce1-64c0-48ab-899d-868455867ecf","protected":false,"public_ip":null,"public_ips":[],"routed_ip_enabled":true,"security_group":{"id":"5881315f-2400-43a0-ac75-08adf6cb8c12","name":"Default security group"},"state":"stopping","state_detail":"terminating","tags":[],"volumes":{"0":{"boot":false,"id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","state":"available","volume_type":"sbs_volume","zone":"fr-par-1"}},"zone":"fr-par-1"}}' + headers: + Content-Length: + - "1893" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:36 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 208d65e1-dd72-4393-88c2-43acf4d6e11f + status: 200 OK + code: 200 + duration: 144.764ms + - id: 29 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/fdaacad4-1637-43ed-bb30-6594390f6ba1 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 143 + uncompressed: false + body: '{"message":"resource is not found","resource":"instance_server","resource_id":"fdaacad4-1637-43ed-bb30-6594390f6ba1","type":"not_found"}' + headers: + Content-Length: + - "143" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:41 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - fcaf4096-9c6e-41cd-8b65-632e09d26ef8 + status: 404 Not Found + code: 404 + duration: 56.934ms + - id: 30 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/volumes/9bb7a5c0-5140-4355-a91f-74674707f8bf + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 143 + uncompressed: false + body: '{"message":"resource is not found","resource":"instance_volume","resource_id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","type":"not_found"}' + headers: + Content-Length: + - "143" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:41 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 29b54cc7-440b-48de-9415-06aa9c25d612 + status: 404 Not Found + code: 404 + duration: 33.690042ms + - id: 31 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/9bb7a5c0-5140-4355-a91f-74674707f8bf + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 498 + uncompressed: false + body: '{"created_at":"2025-10-27T14:26:38.148608Z","id":"9bb7a5c0-5140-4355-a91f-74674707f8bf","last_detached_at":"2025-10-27T14:27:37.838116Z","name":"Ubuntu 22.04 Jammy Jellyfish_sbs_volume_0","parent_snapshot_id":"36b4ce54-c67a-4f68-ab74-839515834352","project_id":"105bdce1-64c0-48ab-899d-868455867ecf","references":[],"size":10000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-10-27T14:27:37.838116Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "498" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:41 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - ef675b91-4d4b-4729-af10-50417a23f9c2 + status: 200 OK + code: 200 + duration: 85.323208ms + - id: 32 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.25.3; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/9bb7a5c0-5140-4355-a91f-74674707f8bf + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Mon, 27 Oct 2025 14:27:41 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 98d8dc7d-b8f6-4a98-9ee9-f1bc2b07510f + status: 204 No Content + code: 204 + duration: 182.311125ms diff --git a/internal/services/instance/testdata/action-server-unknown-verb.cassette.yaml b/internal/services/instance/testdata/action-server-unknown-verb.cassette.yaml new file mode 100644 index 000000000..2797c38e0 --- /dev/null +++ b/internal/services/instance/testdata/action-server-unknown-verb.cassette.yaml @@ -0,0 +1,3 @@ +--- +version: 2 +interactions: [] diff --git a/provider/framework.go b/provider/framework.go index c58df6a2c..03dedf8db 100644 --- a/provider/framework.go +++ b/provider/framework.go @@ -5,20 +5,29 @@ import ( "github.com/hashicorp/terraform-plugin-framework/action" "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/diag" "github.com/hashicorp/terraform-plugin-framework/ephemeral" "github.com/hashicorp/terraform-plugin-framework/list" "github.com/hashicorp/terraform-plugin-framework/provider" "github.com/hashicorp/terraform-plugin-framework/provider/schema" "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/scaleway/terraform-provider-scaleway/v2/internal/meta" + "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/instance" ) -var _ provider.Provider = &ScalewayProvider{} +var ( + _ provider.Provider = &ScalewayProvider{} + _ provider.ProviderWithActions = (*ScalewayProvider)(nil) +) -type ScalewayProvider struct{} +type ScalewayProvider struct { + providerMeta *meta.Meta +} -func NewFrameworkProvider() func() provider.Provider { +func NewFrameworkProvider(m *meta.Meta) func() provider.Provider { return func() provider.Provider { - return &ScalewayProvider{} + return &ScalewayProvider{providerMeta: m} } } @@ -26,6 +35,17 @@ func (p *ScalewayProvider) Metadata(_ context.Context, _ provider.MetadataReques resp.TypeName = "scaleway" } +type ScalewayProviderModel struct { + AccessKey types.String `tfsdk:"access_key"` + SecretKey types.String `tfsdk:"secret_key"` + Profile types.String `tfsdk:"profile"` + ProjectID types.String `tfsdk:"project_id"` + OrganizationID types.String `tfsdk:"organization_id"` + APIURL types.String `tfsdk:"api_url"` + Region types.String `tfsdk:"region"` + Zone types.String `tfsdk:"zone"` +} + func (p *ScalewayProvider) Schema(_ context.Context, _ provider.SchemaRequest, resp *provider.SchemaResponse) { resp.Schema = schema.Schema{ Attributes: map[string]schema.Attribute{ @@ -66,6 +86,40 @@ func (p *ScalewayProvider) Schema(_ context.Context, _ provider.SchemaRequest, r } func (p *ScalewayProvider) Configure(ctx context.Context, req provider.ConfigureRequest, resp *provider.ConfigureResponse) { + var data ScalewayProviderModel + + // Read configuration data into model + resp.Diagnostics.Append(req.Config.Get(ctx, &data)...) + + if resp.Diagnostics.HasError() { + return + } + + var m *meta.Meta + + if p.providerMeta != nil { + // Use pre-injected meta (from tests or config) + resp.Diagnostics.Append(diag.NewWarningDiagnostic("using provider meta already initialized", "meta provider not empty")) + + m = p.providerMeta + } else { + config := &meta.Config{ + TerraformVersion: req.TerraformVersion, + } + + var err error + + m, err = meta.NewMeta(ctx, config) + if err != nil { + resp.Diagnostics.AddError("error while configuring the provider", err.Error()) + + return + } + } + + resp.ResourceData = m + resp.DataSourceData = m + resp.ActionData = m } func (p *ScalewayProvider) Resources(ctx context.Context) []func() resource.Resource { @@ -81,7 +135,11 @@ func (p *ScalewayProvider) DataSources(_ context.Context) []func() datasource.Da } func (p *ScalewayProvider) Actions(_ context.Context) []func() action.Action { - return []func() action.Action{} + var res []func() action.Action + + res = append(res, instance.NewServerAction) + + return res } func (p *ScalewayProvider) ListResources(_ context.Context) []func() list.ListResource { diff --git a/provider/providers.go b/provider/providers.go index c87b81565..398bb4c0b 100644 --- a/provider/providers.go +++ b/provider/providers.go @@ -3,24 +3,32 @@ package provider import ( "context" + "github.com/hashicorp/terraform-plugin-framework/provider" "github.com/hashicorp/terraform-plugin-framework/providerserver" "github.com/hashicorp/terraform-plugin-go/tfprotov6" "github.com/hashicorp/terraform-plugin-mux/tf5to6server" ) -func NewProviderList(ctx context.Context, config *Config) ([]func() tfprotov6.ProviderServer, error) { +func NewProviderList(ctx context.Context, providerConfig *Config) ([]func() tfprotov6.ProviderServer, error) { // SDKProvider using terraform-plugin-sdk upgradedSdkProvider, err := tf5to6server.UpgradeServer( ctx, - SDKProvider(config)().GRPCProvider, + SDKProvider(providerConfig)().GRPCProvider, ) if err != nil { return nil, err } + var frameworkProvider func() provider.Provider + if providerConfig != nil { + frameworkProvider = NewFrameworkProvider(providerConfig.Meta) + } else { + frameworkProvider = NewFrameworkProvider(nil) + } + return []func() tfprotov6.ProviderServer{ // Provider using terraform-plugin-framework - providerserver.NewProtocol6(&ScalewayProvider{}), + providerserver.NewProtocol6(frameworkProvider()), func() tfprotov6.ProviderServer { return upgradedSdkProvider diff --git a/templates/actions/instance_server_action.md.tmpl b/templates/actions/instance_server_action.md.tmpl new file mode 100644 index 000000000..5a4818889 --- /dev/null +++ b/templates/actions/instance_server_action.md.tmpl @@ -0,0 +1,9 @@ +{{- /*gotype: github.com/hashicorp/terraform-plugin-docs/internal/provider.ActionTemplateType */ -}} +--- +subcategory: "Instances" +page_title: "Scaleway: scaleway_instance_server_action" +--- + +# scaleway_instance_server_action (Action) + +{{ .SchemaMarkdown }}