scaleway.elasticmetal.Server
Explore with Pulumi AI
Creates and manages Scaleway Compute Baremetal servers. For more information, see the API documentation.
Example Usage
Basic
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumi/scaleway";
import * as scaleway from "@pulumiverse/scaleway";
const main = scaleway.iam.getSshKey({
    name: "main",
});
const myOffer = scaleway.elasticmetal.getOffer({
    zone: "fr-par-2",
    name: "EM-I220E-NVME",
});
const base = new scaleway.elasticmetal.Server("base", {
    zone: "fr-par-2",
    offer: myOffer.then(myOffer => myOffer.offerId),
    os: "d17d6872-0412-45d9-a198-af82c34d3c5c",
    sshKeyIds: [mainScalewayAccountSshKey.id],
});
import pulumi
import pulumi_scaleway as scaleway
import pulumiverse_scaleway as scaleway
main = scaleway.iam.get_ssh_key(name="main")
my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
    name="EM-I220E-NVME")
base = scaleway.elasticmetal.Server("base",
    zone="fr-par-2",
    offer=my_offer.offer_id,
    os="d17d6872-0412-45d9-a198-af82c34d3c5c",
    ssh_key_ids=[main_scaleway_account_ssh_key["id"]])
package main
import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := iam.LookupSshKey(ctx, &iam.LookupSshKeyArgs{
			Name: pulumi.StringRef("main"),
		}, nil)
		if err != nil {
			return err
		}
		myOffer, err := elasticmetal.GetOffer(ctx, &elasticmetal.GetOfferArgs{
			Zone: pulumi.StringRef("fr-par-2"),
			Name: pulumi.StringRef("EM-I220E-NVME"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = elasticmetal.NewServer(ctx, "base", &elasticmetal.ServerArgs{
			Zone:  pulumi.String("fr-par-2"),
			Offer: pulumi.String(myOffer.OfferId),
			Os:    pulumi.String("d17d6872-0412-45d9-a198-af82c34d3c5c"),
			SshKeyIds: pulumi.StringArray{
				mainScalewayAccountSshKey.Id,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumi.Scaleway;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() => 
{
    var main = Scaleway.Iam.GetSshKey.Invoke(new()
    {
        Name = "main",
    });
    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()
    {
        Zone = "fr-par-2",
        Name = "EM-I220E-NVME",
    });
    var @base = new Scaleway.Elasticmetal.Server("base", new()
    {
        Zone = "fr-par-2",
        Offer = myOffer.Apply(getOfferResult => getOfferResult.OfferId),
        Os = "d17d6872-0412-45d9-a198-af82c34d3c5c",
        SshKeyIds = new[]
        {
            mainScalewayAccountSshKey.Id,
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.iam.IamFunctions;
import com.pulumi.scaleway.iam.inputs.GetSshKeyArgs;
import com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;
import com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;
import com.pulumi.scaleway.elasticmetal.Server;
import com.pulumi.scaleway.elasticmetal.ServerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var main = IamFunctions.getSshKey(GetSshKeyArgs.builder()
            .name("main")
            .build());
        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()
            .zone("fr-par-2")
            .name("EM-I220E-NVME")
            .build());
        var base = new Server("base", ServerArgs.builder()
            .zone("fr-par-2")
            .offer(myOffer.applyValue(getOfferResult -> getOfferResult.offerId()))
            .os("d17d6872-0412-45d9-a198-af82c34d3c5c")
            .sshKeyIds(mainScalewayAccountSshKey.id())
            .build());
    }
}
resources:
  base:
    type: scaleway:elasticmetal:Server
    properties:
      zone: fr-par-2
      offer: ${myOffer.offerId}
      os: d17d6872-0412-45d9-a198-af82c34d3c5c
      sshKeyIds:
        - ${mainScalewayAccountSshKey.id}
variables:
  main:
    fn::invoke:
      function: scaleway:iam:getSshKey
      arguments:
        name: main
  myOffer:
    fn::invoke:
      function: scaleway:elasticmetal:getOffer
      arguments:
        zone: fr-par-2
        name: EM-I220E-NVME
With option
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumi/scaleway";
import * as scaleway from "@pulumiverse/scaleway";
const main = scaleway.iam.getSshKey({
    name: "main",
});
const myOs = scaleway.elasticmetal.getOs({
    zone: "fr-par-2",
    name: "Ubuntu",
    version: "22.04 LTS (Jammy Jellyfish)",
});
const myOffer = scaleway.elasticmetal.getOffer({
    zone: "fr-par-2",
    name: "EM-B112X-SSD",
});
const privateNetwork = scaleway.elasticmetal.getOption({
    zone: "fr-par-2",
    name: "Private Network",
});
const remoteAccess = scaleway.elasticmetal.getOption({
    zone: "fr-par-2",
    name: "Remote Access",
});
const base = new scaleway.elasticmetal.Server("base", {
    zone: "fr-par-2",
    offer: myOffer.then(myOffer => myOffer.offerId),
    os: myOs.then(myOs => myOs.osId),
    sshKeyIds: [mainScalewayAccountSshKey.id],
    options: [
        {
            id: privateNetwork.then(privateNetwork => privateNetwork.optionId),
        },
        {
            id: remoteAccess.then(remoteAccess => remoteAccess.optionId),
        },
    ],
});
import pulumi
import pulumi_scaleway as scaleway
import pulumiverse_scaleway as scaleway
main = scaleway.iam.get_ssh_key(name="main")
my_os = scaleway.elasticmetal.get_os(zone="fr-par-2",
    name="Ubuntu",
    version="22.04 LTS (Jammy Jellyfish)")
my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
    name="EM-B112X-SSD")
private_network = scaleway.elasticmetal.get_option(zone="fr-par-2",
    name="Private Network")
remote_access = scaleway.elasticmetal.get_option(zone="fr-par-2",
    name="Remote Access")
base = scaleway.elasticmetal.Server("base",
    zone="fr-par-2",
    offer=my_offer.offer_id,
    os=my_os.os_id,
    ssh_key_ids=[main_scaleway_account_ssh_key["id"]],
    options=[
        {
            "id": private_network.option_id,
        },
        {
            "id": remote_access.option_id,
        },
    ])
package main
import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := iam.LookupSshKey(ctx, &iam.LookupSshKeyArgs{
			Name: pulumi.StringRef("main"),
		}, nil)
		if err != nil {
			return err
		}
		myOs, err := elasticmetal.GetOs(ctx, &elasticmetal.GetOsArgs{
			Zone:    pulumi.StringRef("fr-par-2"),
			Name:    pulumi.StringRef("Ubuntu"),
			Version: pulumi.StringRef("22.04 LTS (Jammy Jellyfish)"),
		}, nil)
		if err != nil {
			return err
		}
		myOffer, err := elasticmetal.GetOffer(ctx, &elasticmetal.GetOfferArgs{
			Zone: pulumi.StringRef("fr-par-2"),
			Name: pulumi.StringRef("EM-B112X-SSD"),
		}, nil)
		if err != nil {
			return err
		}
		privateNetwork, err := elasticmetal.GetOption(ctx, &elasticmetal.GetOptionArgs{
			Zone: pulumi.StringRef("fr-par-2"),
			Name: pulumi.StringRef("Private Network"),
		}, nil)
		if err != nil {
			return err
		}
		remoteAccess, err := elasticmetal.GetOption(ctx, &elasticmetal.GetOptionArgs{
			Zone: pulumi.StringRef("fr-par-2"),
			Name: pulumi.StringRef("Remote Access"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = elasticmetal.NewServer(ctx, "base", &elasticmetal.ServerArgs{
			Zone:  pulumi.String("fr-par-2"),
			Offer: pulumi.String(myOffer.OfferId),
			Os:    pulumi.String(myOs.OsId),
			SshKeyIds: pulumi.StringArray{
				mainScalewayAccountSshKey.Id,
			},
			Options: elasticmetal.ServerOptionArray{
				&elasticmetal.ServerOptionArgs{
					Id: pulumi.String(privateNetwork.OptionId),
				},
				&elasticmetal.ServerOptionArgs{
					Id: pulumi.String(remoteAccess.OptionId),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumi.Scaleway;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() => 
{
    var main = Scaleway.Iam.GetSshKey.Invoke(new()
    {
        Name = "main",
    });
    var myOs = Scaleway.Elasticmetal.GetOs.Invoke(new()
    {
        Zone = "fr-par-2",
        Name = "Ubuntu",
        Version = "22.04 LTS (Jammy Jellyfish)",
    });
    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()
    {
        Zone = "fr-par-2",
        Name = "EM-B112X-SSD",
    });
    var privateNetwork = Scaleway.Elasticmetal.GetOption.Invoke(new()
    {
        Zone = "fr-par-2",
        Name = "Private Network",
    });
    var remoteAccess = Scaleway.Elasticmetal.GetOption.Invoke(new()
    {
        Zone = "fr-par-2",
        Name = "Remote Access",
    });
    var @base = new Scaleway.Elasticmetal.Server("base", new()
    {
        Zone = "fr-par-2",
        Offer = myOffer.Apply(getOfferResult => getOfferResult.OfferId),
        Os = myOs.Apply(getOsResult => getOsResult.OsId),
        SshKeyIds = new[]
        {
            mainScalewayAccountSshKey.Id,
        },
        Options = new[]
        {
            new Scaleway.Elasticmetal.Inputs.ServerOptionArgs
            {
                Id = privateNetwork.Apply(getOptionResult => getOptionResult.OptionId),
            },
            new Scaleway.Elasticmetal.Inputs.ServerOptionArgs
            {
                Id = remoteAccess.Apply(getOptionResult => getOptionResult.OptionId),
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.iam.IamFunctions;
import com.pulumi.scaleway.iam.inputs.GetSshKeyArgs;
import com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;
import com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;
import com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;
import com.pulumi.scaleway.elasticmetal.inputs.GetOptionArgs;
import com.pulumi.scaleway.elasticmetal.Server;
import com.pulumi.scaleway.elasticmetal.ServerArgs;
import com.pulumi.scaleway.elasticmetal.inputs.ServerOptionArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var main = IamFunctions.getSshKey(GetSshKeyArgs.builder()
            .name("main")
            .build());
        final var myOs = ElasticmetalFunctions.getOs(GetOsArgs.builder()
            .zone("fr-par-2")
            .name("Ubuntu")
            .version("22.04 LTS (Jammy Jellyfish)")
            .build());
        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()
            .zone("fr-par-2")
            .name("EM-B112X-SSD")
            .build());
        final var privateNetwork = ElasticmetalFunctions.getOption(GetOptionArgs.builder()
            .zone("fr-par-2")
            .name("Private Network")
            .build());
        final var remoteAccess = ElasticmetalFunctions.getOption(GetOptionArgs.builder()
            .zone("fr-par-2")
            .name("Remote Access")
            .build());
        var base = new Server("base", ServerArgs.builder()
            .zone("fr-par-2")
            .offer(myOffer.applyValue(getOfferResult -> getOfferResult.offerId()))
            .os(myOs.applyValue(getOsResult -> getOsResult.osId()))
            .sshKeyIds(mainScalewayAccountSshKey.id())
            .options(            
                ServerOptionArgs.builder()
                    .id(privateNetwork.applyValue(getOptionResult -> getOptionResult.optionId()))
                    .build(),
                ServerOptionArgs.builder()
                    .id(remoteAccess.applyValue(getOptionResult -> getOptionResult.optionId()))
                    .build())
            .build());
    }
}
resources:
  base:
    type: scaleway:elasticmetal:Server
    properties:
      zone: fr-par-2
      offer: ${myOffer.offerId}
      os: ${myOs.osId}
      sshKeyIds:
        - ${mainScalewayAccountSshKey.id}
      options:
        - id: ${privateNetwork.optionId}
        - id: ${remoteAccess.optionId}
variables:
  main:
    fn::invoke:
      function: scaleway:iam:getSshKey
      arguments:
        name: main
  myOs:
    fn::invoke:
      function: scaleway:elasticmetal:getOs
      arguments:
        zone: fr-par-2
        name: Ubuntu
        version: 22.04 LTS (Jammy Jellyfish)
  myOffer:
    fn::invoke:
      function: scaleway:elasticmetal:getOffer
      arguments:
        zone: fr-par-2
        name: EM-B112X-SSD
  privateNetwork:
    fn::invoke:
      function: scaleway:elasticmetal:getOption
      arguments:
        zone: fr-par-2
        name: Private Network
  remoteAccess:
    fn::invoke:
      function: scaleway:elasticmetal:getOption
      arguments:
        zone: fr-par-2
        name: Remote Access
With private network
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumi/scaleway";
import * as scaleway from "@pulumiverse/scaleway";
const main = scaleway.iam.getSshKey({
    name: "main",
});
const myOs = scaleway.elasticmetal.getOs({
    zone: "fr-par-2",
    name: "Ubuntu",
    version: "22.04 LTS (Jammy Jellyfish)",
});
const myOffer = scaleway.elasticmetal.getOffer({
    zone: "fr-par-2",
    name: "EM-B112X-SSD",
});
const privateNetwork = scaleway.elasticmetal.getOption({
    zone: "fr-par-2",
    name: "Private Network",
});
const pn = new scaleway.network.PrivateNetwork("pn", {
    region: "fr-par",
    name: "baremetal_private_network",
});
const base = new scaleway.elasticmetal.Server("base", {
    zone: "fr-par-2",
    offer: myOffer.then(myOffer => myOffer.offerId),
    os: myOs.then(myOs => myOs.osId),
    sshKeyIds: [mainScalewayAccountSshKey.id],
    options: [{
        id: privateNetwork.then(privateNetwork => privateNetwork.optionId),
    }],
    privateNetworks: [{
        id: pn.id,
    }],
});
import pulumi
import pulumi_scaleway as scaleway
import pulumiverse_scaleway as scaleway
main = scaleway.iam.get_ssh_key(name="main")
my_os = scaleway.elasticmetal.get_os(zone="fr-par-2",
    name="Ubuntu",
    version="22.04 LTS (Jammy Jellyfish)")
my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
    name="EM-B112X-SSD")
private_network = scaleway.elasticmetal.get_option(zone="fr-par-2",
    name="Private Network")
pn = scaleway.network.PrivateNetwork("pn",
    region="fr-par",
    name="baremetal_private_network")
base = scaleway.elasticmetal.Server("base",
    zone="fr-par-2",
    offer=my_offer.offer_id,
    os=my_os.os_id,
    ssh_key_ids=[main_scaleway_account_ssh_key["id"]],
    options=[{
        "id": private_network.option_id,
    }],
    private_networks=[{
        "id": pn.id,
    }])
package main
import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := iam.LookupSshKey(ctx, &iam.LookupSshKeyArgs{
			Name: pulumi.StringRef("main"),
		}, nil)
		if err != nil {
			return err
		}
		myOs, err := elasticmetal.GetOs(ctx, &elasticmetal.GetOsArgs{
			Zone:    pulumi.StringRef("fr-par-2"),
			Name:    pulumi.StringRef("Ubuntu"),
			Version: pulumi.StringRef("22.04 LTS (Jammy Jellyfish)"),
		}, nil)
		if err != nil {
			return err
		}
		myOffer, err := elasticmetal.GetOffer(ctx, &elasticmetal.GetOfferArgs{
			Zone: pulumi.StringRef("fr-par-2"),
			Name: pulumi.StringRef("EM-B112X-SSD"),
		}, nil)
		if err != nil {
			return err
		}
		privateNetwork, err := elasticmetal.GetOption(ctx, &elasticmetal.GetOptionArgs{
			Zone: pulumi.StringRef("fr-par-2"),
			Name: pulumi.StringRef("Private Network"),
		}, nil)
		if err != nil {
			return err
		}
		pn, err := network.NewPrivateNetwork(ctx, "pn", &network.PrivateNetworkArgs{
			Region: pulumi.String("fr-par"),
			Name:   pulumi.String("baremetal_private_network"),
		})
		if err != nil {
			return err
		}
		_, err = elasticmetal.NewServer(ctx, "base", &elasticmetal.ServerArgs{
			Zone:  pulumi.String("fr-par-2"),
			Offer: pulumi.String(myOffer.OfferId),
			Os:    pulumi.String(myOs.OsId),
			SshKeyIds: pulumi.StringArray{
				mainScalewayAccountSshKey.Id,
			},
			Options: elasticmetal.ServerOptionArray{
				&elasticmetal.ServerOptionArgs{
					Id: pulumi.String(privateNetwork.OptionId),
				},
			},
			PrivateNetworks: elasticmetal.ServerPrivateNetworkArray{
				&elasticmetal.ServerPrivateNetworkArgs{
					Id: pn.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumi.Scaleway;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() => 
{
    var main = Scaleway.Iam.GetSshKey.Invoke(new()
    {
        Name = "main",
    });
    var myOs = Scaleway.Elasticmetal.GetOs.Invoke(new()
    {
        Zone = "fr-par-2",
        Name = "Ubuntu",
        Version = "22.04 LTS (Jammy Jellyfish)",
    });
    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()
    {
        Zone = "fr-par-2",
        Name = "EM-B112X-SSD",
    });
    var privateNetwork = Scaleway.Elasticmetal.GetOption.Invoke(new()
    {
        Zone = "fr-par-2",
        Name = "Private Network",
    });
    var pn = new Scaleway.Network.PrivateNetwork("pn", new()
    {
        Region = "fr-par",
        Name = "baremetal_private_network",
    });
    var @base = new Scaleway.Elasticmetal.Server("base", new()
    {
        Zone = "fr-par-2",
        Offer = myOffer.Apply(getOfferResult => getOfferResult.OfferId),
        Os = myOs.Apply(getOsResult => getOsResult.OsId),
        SshKeyIds = new[]
        {
            mainScalewayAccountSshKey.Id,
        },
        Options = new[]
        {
            new Scaleway.Elasticmetal.Inputs.ServerOptionArgs
            {
                Id = privateNetwork.Apply(getOptionResult => getOptionResult.OptionId),
            },
        },
        PrivateNetworks = new[]
        {
            new Scaleway.Elasticmetal.Inputs.ServerPrivateNetworkArgs
            {
                Id = pn.Id,
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.iam.IamFunctions;
import com.pulumi.scaleway.iam.inputs.GetSshKeyArgs;
import com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;
import com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;
import com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;
import com.pulumi.scaleway.elasticmetal.inputs.GetOptionArgs;
import com.pulumi.scaleway.network.PrivateNetwork;
import com.pulumi.scaleway.network.PrivateNetworkArgs;
import com.pulumi.scaleway.elasticmetal.Server;
import com.pulumi.scaleway.elasticmetal.ServerArgs;
import com.pulumi.scaleway.elasticmetal.inputs.ServerOptionArgs;
import com.pulumi.scaleway.elasticmetal.inputs.ServerPrivateNetworkArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var main = IamFunctions.getSshKey(GetSshKeyArgs.builder()
            .name("main")
            .build());
        final var myOs = ElasticmetalFunctions.getOs(GetOsArgs.builder()
            .zone("fr-par-2")
            .name("Ubuntu")
            .version("22.04 LTS (Jammy Jellyfish)")
            .build());
        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()
            .zone("fr-par-2")
            .name("EM-B112X-SSD")
            .build());
        final var privateNetwork = ElasticmetalFunctions.getOption(GetOptionArgs.builder()
            .zone("fr-par-2")
            .name("Private Network")
            .build());
        var pn = new PrivateNetwork("pn", PrivateNetworkArgs.builder()
            .region("fr-par")
            .name("baremetal_private_network")
            .build());
        var base = new Server("base", ServerArgs.builder()
            .zone("fr-par-2")
            .offer(myOffer.applyValue(getOfferResult -> getOfferResult.offerId()))
            .os(myOs.applyValue(getOsResult -> getOsResult.osId()))
            .sshKeyIds(mainScalewayAccountSshKey.id())
            .options(ServerOptionArgs.builder()
                .id(privateNetwork.applyValue(getOptionResult -> getOptionResult.optionId()))
                .build())
            .privateNetworks(ServerPrivateNetworkArgs.builder()
                .id(pn.id())
                .build())
            .build());
    }
}
resources:
  pn:
    type: scaleway:network:PrivateNetwork
    properties:
      region: fr-par
      name: baremetal_private_network
  base:
    type: scaleway:elasticmetal:Server
    properties:
      zone: fr-par-2
      offer: ${myOffer.offerId}
      os: ${myOs.osId}
      sshKeyIds:
        - ${mainScalewayAccountSshKey.id}
      options:
        - id: ${privateNetwork.optionId}
      privateNetworks:
        - id: ${pn.id}
variables:
  main:
    fn::invoke:
      function: scaleway:iam:getSshKey
      arguments:
        name: main
  myOs:
    fn::invoke:
      function: scaleway:elasticmetal:getOs
      arguments:
        zone: fr-par-2
        name: Ubuntu
        version: 22.04 LTS (Jammy Jellyfish)
  myOffer:
    fn::invoke:
      function: scaleway:elasticmetal:getOffer
      arguments:
        zone: fr-par-2
        name: EM-B112X-SSD
  privateNetwork:
    fn::invoke:
      function: scaleway:elasticmetal:getOption
      arguments:
        zone: fr-par-2
        name: Private Network
With IPAM IP IDs
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumi/scaleway";
import * as scaleway from "@pulumiverse/scaleway";
const vpc01 = new scaleway.network.Vpc("vpc01", {name: "vpc_baremetal"});
const pn01 = new scaleway.network.PrivateNetwork("pn01", {
    name: "private_network_baremetal",
    ipv4Subnet: {
        subnet: "172.16.64.0/22",
    },
    vpcId: vpc01.id,
});
const ip01 = new scaleway.ipam.Ip("ip01", {
    address: "172.16.64.7",
    sources: [{
        privateNetworkId: pn01.id,
    }],
});
const myKey = scaleway.iam.getSshKey({
    name: "main",
});
const myOs = scaleway.elasticmetal.getOs({
    zone: "fr-par-1",
    name: "Ubuntu",
    version: "22.04 LTS (Jammy Jellyfish)",
});
const myOffer = scaleway.elasticmetal.getOffer({
    zone: "fr-par-1",
    name: "EM-A115X-SSD",
});
const privateNetwork = scaleway.elasticmetal.getOption({
    zone: "fr-par-1",
    name: "Private Network",
});
const base = new scaleway.elasticmetal.Server("base", {
    zone: "fr-par-2",
    offer: myOffer.then(myOffer => myOffer.offerId),
    os: myOs.then(myOs => myOs.osId),
    sshKeyIds: [myKeyScalewayAccountSshKey.id],
    options: [{
        id: privateNetwork.then(privateNetwork => privateNetwork.optionId),
    }],
    privateNetworks: [{
        id: pn01.id,
        ipamIpIds: [ip01.id],
    }],
});
import pulumi
import pulumi_scaleway as scaleway
import pulumiverse_scaleway as scaleway
vpc01 = scaleway.network.Vpc("vpc01", name="vpc_baremetal")
pn01 = scaleway.network.PrivateNetwork("pn01",
    name="private_network_baremetal",
    ipv4_subnet={
        "subnet": "172.16.64.0/22",
    },
    vpc_id=vpc01.id)
ip01 = scaleway.ipam.Ip("ip01",
    address="172.16.64.7",
    sources=[{
        "private_network_id": pn01.id,
    }])
my_key = scaleway.iam.get_ssh_key(name="main")
my_os = scaleway.elasticmetal.get_os(zone="fr-par-1",
    name="Ubuntu",
    version="22.04 LTS (Jammy Jellyfish)")
my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
    name="EM-A115X-SSD")
private_network = scaleway.elasticmetal.get_option(zone="fr-par-1",
    name="Private Network")
base = scaleway.elasticmetal.Server("base",
    zone="fr-par-2",
    offer=my_offer.offer_id,
    os=my_os.os_id,
    ssh_key_ids=[my_key_scaleway_account_ssh_key["id"]],
    options=[{
        "id": private_network.option_id,
    }],
    private_networks=[{
        "id": pn01.id,
        "ipam_ip_ids": [ip01.id],
    }])
package main
import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		vpc01, err := network.NewVpc(ctx, "vpc01", &network.VpcArgs{
			Name: pulumi.String("vpc_baremetal"),
		})
		if err != nil {
			return err
		}
		pn01, err := network.NewPrivateNetwork(ctx, "pn01", &network.PrivateNetworkArgs{
			Name: pulumi.String("private_network_baremetal"),
			Ipv4Subnet: &network.PrivateNetworkIpv4SubnetArgs{
				Subnet: pulumi.String("172.16.64.0/22"),
			},
			VpcId: vpc01.ID(),
		})
		if err != nil {
			return err
		}
		ip01, err := ipam.NewIp(ctx, "ip01", &ipam.IpArgs{
			Address: pulumi.String("172.16.64.7"),
			Sources: ipam.IpSourceArray{
				&ipam.IpSourceArgs{
					PrivateNetworkId: pn01.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = iam.LookupSshKey(ctx, &iam.LookupSshKeyArgs{
			Name: pulumi.StringRef("main"),
		}, nil)
		if err != nil {
			return err
		}
		myOs, err := elasticmetal.GetOs(ctx, &elasticmetal.GetOsArgs{
			Zone:    pulumi.StringRef("fr-par-1"),
			Name:    pulumi.StringRef("Ubuntu"),
			Version: pulumi.StringRef("22.04 LTS (Jammy Jellyfish)"),
		}, nil)
		if err != nil {
			return err
		}
		myOffer, err := elasticmetal.GetOffer(ctx, &elasticmetal.GetOfferArgs{
			Zone: pulumi.StringRef("fr-par-1"),
			Name: pulumi.StringRef("EM-A115X-SSD"),
		}, nil)
		if err != nil {
			return err
		}
		privateNetwork, err := elasticmetal.GetOption(ctx, &elasticmetal.GetOptionArgs{
			Zone: pulumi.StringRef("fr-par-1"),
			Name: pulumi.StringRef("Private Network"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = elasticmetal.NewServer(ctx, "base", &elasticmetal.ServerArgs{
			Zone:  pulumi.String("fr-par-2"),
			Offer: pulumi.String(myOffer.OfferId),
			Os:    pulumi.String(myOs.OsId),
			SshKeyIds: pulumi.StringArray{
				myKeyScalewayAccountSshKey.Id,
			},
			Options: elasticmetal.ServerOptionArray{
				&elasticmetal.ServerOptionArgs{
					Id: pulumi.String(privateNetwork.OptionId),
				},
			},
			PrivateNetworks: elasticmetal.ServerPrivateNetworkArray{
				&elasticmetal.ServerPrivateNetworkArgs{
					Id: pn01.ID(),
					IpamIpIds: pulumi.StringArray{
						ip01.ID(),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumi.Scaleway;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() => 
{
    var vpc01 = new Scaleway.Network.Vpc("vpc01", new()
    {
        Name = "vpc_baremetal",
    });
    var pn01 = new Scaleway.Network.PrivateNetwork("pn01", new()
    {
        Name = "private_network_baremetal",
        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs
        {
            Subnet = "172.16.64.0/22",
        },
        VpcId = vpc01.Id,
    });
    var ip01 = new Scaleway.Ipam.Ip("ip01", new()
    {
        Address = "172.16.64.7",
        Sources = new[]
        {
            new Scaleway.Ipam.Inputs.IpSourceArgs
            {
                PrivateNetworkId = pn01.Id,
            },
        },
    });
    var myKey = Scaleway.Iam.GetSshKey.Invoke(new()
    {
        Name = "main",
    });
    var myOs = Scaleway.Elasticmetal.GetOs.Invoke(new()
    {
        Zone = "fr-par-1",
        Name = "Ubuntu",
        Version = "22.04 LTS (Jammy Jellyfish)",
    });
    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()
    {
        Zone = "fr-par-1",
        Name = "EM-A115X-SSD",
    });
    var privateNetwork = Scaleway.Elasticmetal.GetOption.Invoke(new()
    {
        Zone = "fr-par-1",
        Name = "Private Network",
    });
    var @base = new Scaleway.Elasticmetal.Server("base", new()
    {
        Zone = "fr-par-2",
        Offer = myOffer.Apply(getOfferResult => getOfferResult.OfferId),
        Os = myOs.Apply(getOsResult => getOsResult.OsId),
        SshKeyIds = new[]
        {
            myKeyScalewayAccountSshKey.Id,
        },
        Options = new[]
        {
            new Scaleway.Elasticmetal.Inputs.ServerOptionArgs
            {
                Id = privateNetwork.Apply(getOptionResult => getOptionResult.OptionId),
            },
        },
        PrivateNetworks = new[]
        {
            new Scaleway.Elasticmetal.Inputs.ServerPrivateNetworkArgs
            {
                Id = pn01.Id,
                IpamIpIds = new[]
                {
                    ip01.Id,
                },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.network.Vpc;
import com.pulumi.scaleway.network.VpcArgs;
import com.pulumi.scaleway.network.PrivateNetwork;
import com.pulumi.scaleway.network.PrivateNetworkArgs;
import com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;
import com.pulumi.scaleway.ipam.Ip;
import com.pulumi.scaleway.ipam.IpArgs;
import com.pulumi.scaleway.ipam.inputs.IpSourceArgs;
import com.pulumi.scaleway.iam.IamFunctions;
import com.pulumi.scaleway.iam.inputs.GetSshKeyArgs;
import com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;
import com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;
import com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;
import com.pulumi.scaleway.elasticmetal.inputs.GetOptionArgs;
import com.pulumi.scaleway.elasticmetal.Server;
import com.pulumi.scaleway.elasticmetal.ServerArgs;
import com.pulumi.scaleway.elasticmetal.inputs.ServerOptionArgs;
import com.pulumi.scaleway.elasticmetal.inputs.ServerPrivateNetworkArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var vpc01 = new Vpc("vpc01", VpcArgs.builder()
            .name("vpc_baremetal")
            .build());
        var pn01 = new PrivateNetwork("pn01", PrivateNetworkArgs.builder()
            .name("private_network_baremetal")
            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()
                .subnet("172.16.64.0/22")
                .build())
            .vpcId(vpc01.id())
            .build());
        var ip01 = new Ip("ip01", IpArgs.builder()
            .address("172.16.64.7")
            .sources(IpSourceArgs.builder()
                .privateNetworkId(pn01.id())
                .build())
            .build());
        final var myKey = IamFunctions.getSshKey(GetSshKeyArgs.builder()
            .name("main")
            .build());
        final var myOs = ElasticmetalFunctions.getOs(GetOsArgs.builder()
            .zone("fr-par-1")
            .name("Ubuntu")
            .version("22.04 LTS (Jammy Jellyfish)")
            .build());
        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()
            .zone("fr-par-1")
            .name("EM-A115X-SSD")
            .build());
        final var privateNetwork = ElasticmetalFunctions.getOption(GetOptionArgs.builder()
            .zone("fr-par-1")
            .name("Private Network")
            .build());
        var base = new Server("base", ServerArgs.builder()
            .zone("fr-par-2")
            .offer(myOffer.applyValue(getOfferResult -> getOfferResult.offerId()))
            .os(myOs.applyValue(getOsResult -> getOsResult.osId()))
            .sshKeyIds(myKeyScalewayAccountSshKey.id())
            .options(ServerOptionArgs.builder()
                .id(privateNetwork.applyValue(getOptionResult -> getOptionResult.optionId()))
                .build())
            .privateNetworks(ServerPrivateNetworkArgs.builder()
                .id(pn01.id())
                .ipamIpIds(ip01.id())
                .build())
            .build());
    }
}
resources:
  vpc01:
    type: scaleway:network:Vpc
    properties:
      name: vpc_baremetal
  pn01:
    type: scaleway:network:PrivateNetwork
    properties:
      name: private_network_baremetal
      ipv4Subnet:
        subnet: 172.16.64.0/22
      vpcId: ${vpc01.id}
  ip01:
    type: scaleway:ipam:Ip
    properties:
      address: 172.16.64.7
      sources:
        - privateNetworkId: ${pn01.id}
  base:
    type: scaleway:elasticmetal:Server
    properties:
      zone: fr-par-2
      offer: ${myOffer.offerId}
      os: ${myOs.osId}
      sshKeyIds:
        - ${myKeyScalewayAccountSshKey.id}
      options:
        - id: ${privateNetwork.optionId}
      privateNetworks:
        - id: ${pn01.id}
          ipamIpIds:
            - ${ip01.id}
variables:
  myKey:
    fn::invoke:
      function: scaleway:iam:getSshKey
      arguments:
        name: main
  myOs:
    fn::invoke:
      function: scaleway:elasticmetal:getOs
      arguments:
        zone: fr-par-1
        name: Ubuntu
        version: 22.04 LTS (Jammy Jellyfish)
  myOffer:
    fn::invoke:
      function: scaleway:elasticmetal:getOffer
      arguments:
        zone: fr-par-1
        name: EM-A115X-SSD
  privateNetwork:
    fn::invoke:
      function: scaleway:elasticmetal:getOption
      arguments:
        zone: fr-par-1
        name: Private Network
Without install config
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumi/scaleway";
import * as scaleway from "@pulumiverse/scaleway";
const myOffer = scaleway.elasticmetal.getOffer({
    zone: "fr-par-2",
    name: "EM-B112X-SSD",
});
const base = new scaleway.elasticmetal.Server("base", {
    zone: "fr-par-2",
    offer: myOffer.then(myOffer => myOffer.offerId),
    installConfigAfterward: true,
});
import pulumi
import pulumi_scaleway as scaleway
import pulumiverse_scaleway as scaleway
my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-2",
    name="EM-B112X-SSD")
base = scaleway.elasticmetal.Server("base",
    zone="fr-par-2",
    offer=my_offer.offer_id,
    install_config_afterward=True)
package main
import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myOffer, err := elasticmetal.GetOffer(ctx, &elasticmetal.GetOfferArgs{
			Zone: pulumi.StringRef("fr-par-2"),
			Name: pulumi.StringRef("EM-B112X-SSD"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = elasticmetal.NewServer(ctx, "base", &elasticmetal.ServerArgs{
			Zone:                   pulumi.String("fr-par-2"),
			Offer:                  pulumi.String(myOffer.OfferId),
			InstallConfigAfterward: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumi.Scaleway;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() => 
{
    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()
    {
        Zone = "fr-par-2",
        Name = "EM-B112X-SSD",
    });
    var @base = new Scaleway.Elasticmetal.Server("base", new()
    {
        Zone = "fr-par-2",
        Offer = myOffer.Apply(getOfferResult => getOfferResult.OfferId),
        InstallConfigAfterward = true,
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;
import com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;
import com.pulumi.scaleway.elasticmetal.Server;
import com.pulumi.scaleway.elasticmetal.ServerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()
            .zone("fr-par-2")
            .name("EM-B112X-SSD")
            .build());
        var base = new Server("base", ServerArgs.builder()
            .zone("fr-par-2")
            .offer(myOffer.applyValue(getOfferResult -> getOfferResult.offerId()))
            .installConfigAfterward(true)
            .build());
    }
}
resources:
  base:
    type: scaleway:elasticmetal:Server
    properties:
      zone: fr-par-2
      offer: ${myOffer.offerId}
      installConfigAfterward: true
variables:
  myOffer:
    fn::invoke:
      function: scaleway:elasticmetal:getOffer
      arguments:
        zone: fr-par-2
        name: EM-B112X-SSD
With custom partitioning
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumi/scaleway";
import * as scaleway from "@pulumiverse/scaleway";
const config = new pulumi.Config();
const configCustomPartitioning = config.get("configCustomPartitioning") || "{\"disks\":[{\"device\":\"/dev/nvme0n1\",\"partitions\":[{\"label\":\"uefi\",\"number\":1,\"size\":536870912},{\"label\":\"swap\",\"number\":2,\"size\":4294967296},{\"label\":\"boot\",\"number\":3,\"size\":1073741824},{\"label\":\"root\",\"number\":4,\"size\":1017827045376}]},{\"device\":\"/dev/nvme1n1\",\"partitions\":[{\"label\":\"swap\",\"number\":1,\"size\":4294967296},{\"label\":\"boot\",\"number\":2,\"size\":1073741824},{\"label\":\"root\",\"number\":3,\"size\":1017827045376}]}],\"filesystems\":[{\"device\":\"/dev/nvme0n1p1\",\"format\":\"fat32\",\"mountpoint\":\"/boot/efi\"},{\"device\":\"/dev/md0\",\"format\":\"ext4\",\"mountpoint\":\"/boot\"},{\"device\":\"/dev/md1\",\"format\":\"ext4\",\"mountpoint\":\"/\"}],\"raids\":[{\"devices\":[\"/dev/nvme0n1p3\",\"/dev/nvme1n1p2\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md0\"},{\"devices\":[\"/dev/nvme0n1p4\",\"/dev/nvme1n1p3\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md1\"}],\"zfs\":{\"pools\":[]}}";
const myOs = scaleway.elasticmetal.getOs({
    zone: "fr-par-1",
    name: "Ubuntu",
    version: "22.04 LTS (Jammy Jellyfish)",
});
const main = new scaleway.iam.SshKey("main", {name: "main"});
const myOffer = scaleway.elasticmetal.getOffer({
    zone: "fr-par-1",
    name: "EM-B220E-NVME",
    subscriptionPeriod: "hourly",
});
const base = new scaleway.elasticmetal.Server("base", {
    name: "%s",
    zone: "fr-par-1",
    description: "test a description",
    offer: myOffer.then(myOffer => myOffer.offerId),
    os: myOs.then(myOs => myOs.osId),
    partitioning: configCustomPartitioning,
    tags: [
        "terraform-test",
        "scaleway_baremetal_server",
        "minimal",
    ],
    sshKeyIds: [main.id],
});
import pulumi
import pulumi_scaleway as scaleway
import pulumiverse_scaleway as scaleway
config = pulumi.Config()
config_custom_partitioning = config.get("configCustomPartitioning")
if config_custom_partitioning is None:
    config_custom_partitioning = "{\"disks\":[{\"device\":\"/dev/nvme0n1\",\"partitions\":[{\"label\":\"uefi\",\"number\":1,\"size\":536870912},{\"label\":\"swap\",\"number\":2,\"size\":4294967296},{\"label\":\"boot\",\"number\":3,\"size\":1073741824},{\"label\":\"root\",\"number\":4,\"size\":1017827045376}]},{\"device\":\"/dev/nvme1n1\",\"partitions\":[{\"label\":\"swap\",\"number\":1,\"size\":4294967296},{\"label\":\"boot\",\"number\":2,\"size\":1073741824},{\"label\":\"root\",\"number\":3,\"size\":1017827045376}]}],\"filesystems\":[{\"device\":\"/dev/nvme0n1p1\",\"format\":\"fat32\",\"mountpoint\":\"/boot/efi\"},{\"device\":\"/dev/md0\",\"format\":\"ext4\",\"mountpoint\":\"/boot\"},{\"device\":\"/dev/md1\",\"format\":\"ext4\",\"mountpoint\":\"/\"}],\"raids\":[{\"devices\":[\"/dev/nvme0n1p3\",\"/dev/nvme1n1p2\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md0\"},{\"devices\":[\"/dev/nvme0n1p4\",\"/dev/nvme1n1p3\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md1\"}],\"zfs\":{\"pools\":[]}}"
my_os = scaleway.elasticmetal.get_os(zone="fr-par-1",
    name="Ubuntu",
    version="22.04 LTS (Jammy Jellyfish)")
main = scaleway.iam.SshKey("main", name="main")
my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
    name="EM-B220E-NVME",
    subscription_period="hourly")
base = scaleway.elasticmetal.Server("base",
    name="%s",
    zone="fr-par-1",
    description="test a description",
    offer=my_offer.offer_id,
    os=my_os.os_id,
    partitioning=config_custom_partitioning,
    tags=[
        "terraform-test",
        "scaleway_baremetal_server",
        "minimal",
    ],
    ssh_key_ids=[main.id])
package main
import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		configCustomPartitioning := "{\"disks\":[{\"device\":\"/dev/nvme0n1\",\"partitions\":[{\"label\":\"uefi\",\"number\":1,\"size\":536870912},{\"label\":\"swap\",\"number\":2,\"size\":4294967296},{\"label\":\"boot\",\"number\":3,\"size\":1073741824},{\"label\":\"root\",\"number\":4,\"size\":1017827045376}]},{\"device\":\"/dev/nvme1n1\",\"partitions\":[{\"label\":\"swap\",\"number\":1,\"size\":4294967296},{\"label\":\"boot\",\"number\":2,\"size\":1073741824},{\"label\":\"root\",\"number\":3,\"size\":1017827045376}]}],\"filesystems\":[{\"device\":\"/dev/nvme0n1p1\",\"format\":\"fat32\",\"mountpoint\":\"/boot/efi\"},{\"device\":\"/dev/md0\",\"format\":\"ext4\",\"mountpoint\":\"/boot\"},{\"device\":\"/dev/md1\",\"format\":\"ext4\",\"mountpoint\":\"/\"}],\"raids\":[{\"devices\":[\"/dev/nvme0n1p3\",\"/dev/nvme1n1p2\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md0\"},{\"devices\":[\"/dev/nvme0n1p4\",\"/dev/nvme1n1p3\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md1\"}],\"zfs\":{\"pools\":[]}}"
		if param := cfg.Get("configCustomPartitioning"); param != "" {
			configCustomPartitioning = param
		}
		myOs, err := elasticmetal.GetOs(ctx, &elasticmetal.GetOsArgs{
			Zone:    pulumi.StringRef("fr-par-1"),
			Name:    pulumi.StringRef("Ubuntu"),
			Version: pulumi.StringRef("22.04 LTS (Jammy Jellyfish)"),
		}, nil)
		if err != nil {
			return err
		}
		main, err := iam.NewSshKey(ctx, "main", &iam.SshKeyArgs{
			Name: pulumi.String("main"),
		})
		if err != nil {
			return err
		}
		myOffer, err := elasticmetal.GetOffer(ctx, &elasticmetal.GetOfferArgs{
			Zone:               pulumi.StringRef("fr-par-1"),
			Name:               pulumi.StringRef("EM-B220E-NVME"),
			SubscriptionPeriod: pulumi.StringRef("hourly"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = elasticmetal.NewServer(ctx, "base", &elasticmetal.ServerArgs{
			Name:         pulumi.String("%s"),
			Zone:         pulumi.String("fr-par-1"),
			Description:  pulumi.String("test a description"),
			Offer:        pulumi.String(myOffer.OfferId),
			Os:           pulumi.String(myOs.OsId),
			Partitioning: pulumi.String(configCustomPartitioning),
			Tags: pulumi.StringArray{
				pulumi.String("terraform-test"),
				pulumi.String("scaleway_baremetal_server"),
				pulumi.String("minimal"),
			},
			SshKeyIds: pulumi.StringArray{
				main.ID(),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumi.Scaleway;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() => 
{
    var config = new Config();
    var configCustomPartitioning = config.Get("configCustomPartitioning") ?? "{\"disks\":[{\"device\":\"/dev/nvme0n1\",\"partitions\":[{\"label\":\"uefi\",\"number\":1,\"size\":536870912},{\"label\":\"swap\",\"number\":2,\"size\":4294967296},{\"label\":\"boot\",\"number\":3,\"size\":1073741824},{\"label\":\"root\",\"number\":4,\"size\":1017827045376}]},{\"device\":\"/dev/nvme1n1\",\"partitions\":[{\"label\":\"swap\",\"number\":1,\"size\":4294967296},{\"label\":\"boot\",\"number\":2,\"size\":1073741824},{\"label\":\"root\",\"number\":3,\"size\":1017827045376}]}],\"filesystems\":[{\"device\":\"/dev/nvme0n1p1\",\"format\":\"fat32\",\"mountpoint\":\"/boot/efi\"},{\"device\":\"/dev/md0\",\"format\":\"ext4\",\"mountpoint\":\"/boot\"},{\"device\":\"/dev/md1\",\"format\":\"ext4\",\"mountpoint\":\"/\"}],\"raids\":[{\"devices\":[\"/dev/nvme0n1p3\",\"/dev/nvme1n1p2\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md0\"},{\"devices\":[\"/dev/nvme0n1p4\",\"/dev/nvme1n1p3\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md1\"}],\"zfs\":{\"pools\":[]}}";
    var myOs = Scaleway.Elasticmetal.GetOs.Invoke(new()
    {
        Zone = "fr-par-1",
        Name = "Ubuntu",
        Version = "22.04 LTS (Jammy Jellyfish)",
    });
    var main = new Scaleway.Iam.SshKey("main", new()
    {
        Name = "main",
    });
    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()
    {
        Zone = "fr-par-1",
        Name = "EM-B220E-NVME",
        SubscriptionPeriod = "hourly",
    });
    var @base = new Scaleway.Elasticmetal.Server("base", new()
    {
        Name = "%s",
        Zone = "fr-par-1",
        Description = "test a description",
        Offer = myOffer.Apply(getOfferResult => getOfferResult.OfferId),
        Os = myOs.Apply(getOsResult => getOsResult.OsId),
        Partitioning = configCustomPartitioning,
        Tags = new[]
        {
            "terraform-test",
            "scaleway_baremetal_server",
            "minimal",
        },
        SshKeyIds = new[]
        {
            main.Id,
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;
import com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;
import com.pulumi.scaleway.iam.SshKey;
import com.pulumi.scaleway.iam.SshKeyArgs;
import com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;
import com.pulumi.scaleway.elasticmetal.Server;
import com.pulumi.scaleway.elasticmetal.ServerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var config = ctx.config();
        final var configCustomPartitioning = config.get("configCustomPartitioning").orElse("{\"disks\":[{\"device\":\"/dev/nvme0n1\",\"partitions\":[{\"label\":\"uefi\",\"number\":1,\"size\":536870912},{\"label\":\"swap\",\"number\":2,\"size\":4294967296},{\"label\":\"boot\",\"number\":3,\"size\":1073741824},{\"label\":\"root\",\"number\":4,\"size\":1017827045376}]},{\"device\":\"/dev/nvme1n1\",\"partitions\":[{\"label\":\"swap\",\"number\":1,\"size\":4294967296},{\"label\":\"boot\",\"number\":2,\"size\":1073741824},{\"label\":\"root\",\"number\":3,\"size\":1017827045376}]}],\"filesystems\":[{\"device\":\"/dev/nvme0n1p1\",\"format\":\"fat32\",\"mountpoint\":\"/boot/efi\"},{\"device\":\"/dev/md0\",\"format\":\"ext4\",\"mountpoint\":\"/boot\"},{\"device\":\"/dev/md1\",\"format\":\"ext4\",\"mountpoint\":\"/\"}],\"raids\":[{\"devices\":[\"/dev/nvme0n1p3\",\"/dev/nvme1n1p2\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md0\"},{\"devices\":[\"/dev/nvme0n1p4\",\"/dev/nvme1n1p3\"],\"level\":\"raid_level_1\",\"name\":\"/dev/md1\"}],\"zfs\":{\"pools\":[]}}");
        final var myOs = ElasticmetalFunctions.getOs(GetOsArgs.builder()
            .zone("fr-par-1")
            .name("Ubuntu")
            .version("22.04 LTS (Jammy Jellyfish)")
            .build());
        var main = new SshKey("main", SshKeyArgs.builder()
            .name("main")
            .build());
        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()
            .zone("fr-par-1")
            .name("EM-B220E-NVME")
            .subscriptionPeriod("hourly")
            .build());
        var base = new Server("base", ServerArgs.builder()
            .name("%s")
            .zone("fr-par-1")
            .description("test a description")
            .offer(myOffer.applyValue(getOfferResult -> getOfferResult.offerId()))
            .os(myOs.applyValue(getOsResult -> getOsResult.osId()))
            .partitioning(configCustomPartitioning)
            .tags(            
                "terraform-test",
                "scaleway_baremetal_server",
                "minimal")
            .sshKeyIds(main.id())
            .build());
    }
}
configuration:
  configCustomPartitioning:
    type: string
    default: '{"disks":[{"device":"/dev/nvme0n1","partitions":[{"label":"uefi","number":1,"size":536870912},{"label":"swap","number":2,"size":4294967296},{"label":"boot","number":3,"size":1073741824},{"label":"root","number":4,"size":1017827045376}]},{"device":"/dev/nvme1n1","partitions":[{"label":"swap","number":1,"size":4294967296},{"label":"boot","number":2,"size":1073741824},{"label":"root","number":3,"size":1017827045376}]}],"filesystems":[{"device":"/dev/nvme0n1p1","format":"fat32","mountpoint":"/boot/efi"},{"device":"/dev/md0","format":"ext4","mountpoint":"/boot"},{"device":"/dev/md1","format":"ext4","mountpoint":"/"}],"raids":[{"devices":["/dev/nvme0n1p3","/dev/nvme1n1p2"],"level":"raid_level_1","name":"/dev/md0"},{"devices":["/dev/nvme0n1p4","/dev/nvme1n1p3"],"level":"raid_level_1","name":"/dev/md1"}],"zfs":{"pools":[]}}'
resources:
  main:
    type: scaleway:iam:SshKey
    properties:
      name: main
  base:
    type: scaleway:elasticmetal:Server
    properties:
      name: '%s'
      zone: fr-par-1
      description: test a description
      offer: ${myOffer.offerId}
      os: ${myOs.osId}
      partitioning: ${configCustomPartitioning}
      tags:
        - terraform-test
        - scaleway_baremetal_server
        - minimal
      sshKeyIds:
        - ${main.id}
variables:
  myOs:
    fn::invoke:
      function: scaleway:elasticmetal:getOs
      arguments:
        zone: fr-par-1
        name: Ubuntu
        version: 22.04 LTS (Jammy Jellyfish)
  myOffer:
    fn::invoke:
      function: scaleway:elasticmetal:getOffer
      arguments:
        zone: fr-par-1
        name: EM-B220E-NVME
        subscriptionPeriod: hourly
Migrate from hourly to monthly plan
To migrate from an hourly to a monthly subscription for a Scaleway Baremetal server, it is important to understand that the migration can only be done by using the data source. You cannot directly modify the subscription_period of an existing scaleway.elasticmetal.getOffer resource. Instead, you must define the monthly offer using the data source and then update the server configuration accordingly.
Hourly Plan Example
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumi/scaleway";
import * as scaleway from "@pulumiverse/scaleway";
const myOffer = scaleway.elasticmetal.getOffer({
    zone: "fr-par-1",
    name: "EM-B220E-NVME",
    subscriptionPeriod: "hourly",
});
const server01 = new scaleway.elasticmetal.Server("server01", {
    name: "UpdateSubscriptionPeriod",
    offer: myOffer.then(myOffer => myOffer.offerId),
    zone: "%s",
    installConfigAfterward: true,
});
import pulumi
import pulumi_scaleway as scaleway
import pulumiverse_scaleway as scaleway
my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
    name="EM-B220E-NVME",
    subscription_period="hourly")
server01 = scaleway.elasticmetal.Server("server01",
    name="UpdateSubscriptionPeriod",
    offer=my_offer.offer_id,
    zone="%s",
    install_config_afterward=True)
package main
import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myOffer, err := elasticmetal.GetOffer(ctx, &elasticmetal.GetOfferArgs{
			Zone:               pulumi.StringRef("fr-par-1"),
			Name:               pulumi.StringRef("EM-B220E-NVME"),
			SubscriptionPeriod: pulumi.StringRef("hourly"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = elasticmetal.NewServer(ctx, "server01", &elasticmetal.ServerArgs{
			Name:                   pulumi.String("UpdateSubscriptionPeriod"),
			Offer:                  pulumi.String(myOffer.OfferId),
			Zone:                   pulumi.String("%s"),
			InstallConfigAfterward: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumi.Scaleway;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() => 
{
    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()
    {
        Zone = "fr-par-1",
        Name = "EM-B220E-NVME",
        SubscriptionPeriod = "hourly",
    });
    var server01 = new Scaleway.Elasticmetal.Server("server01", new()
    {
        Name = "UpdateSubscriptionPeriod",
        Offer = myOffer.Apply(getOfferResult => getOfferResult.OfferId),
        Zone = "%s",
        InstallConfigAfterward = true,
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;
import com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;
import com.pulumi.scaleway.elasticmetal.Server;
import com.pulumi.scaleway.elasticmetal.ServerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()
            .zone("fr-par-1")
            .name("EM-B220E-NVME")
            .subscriptionPeriod("hourly")
            .build());
        var server01 = new Server("server01", ServerArgs.builder()
            .name("UpdateSubscriptionPeriod")
            .offer(myOffer.applyValue(getOfferResult -> getOfferResult.offerId()))
            .zone("%s")
            .installConfigAfterward(true)
            .build());
    }
}
resources:
  server01:
    type: scaleway:elasticmetal:Server
    properties:
      name: UpdateSubscriptionPeriod
      offer: ${myOffer.offerId}
      zone: '%s'
      installConfigAfterward: true
variables:
  myOffer:
    fn::invoke:
      function: scaleway:elasticmetal:getOffer
      arguments:
        zone: fr-par-1
        name: EM-B220E-NVME
        subscriptionPeriod: hourly
Monthly Plan Example
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumi/scaleway";
import * as scaleway from "@pulumiverse/scaleway";
const myOffer = scaleway.elasticmetal.getOffer({
    zone: "fr-par-1",
    name: "EM-B220E-NVME",
    subscriptionPeriod: "monthly",
});
const server01 = new scaleway.elasticmetal.Server("server01", {
    name: "UpdateSubscriptionPeriod",
    offer: myOffer.then(myOffer => myOffer.offerId),
    zone: "fr-par-1",
    installConfigAfterward: true,
});
import pulumi
import pulumi_scaleway as scaleway
import pulumiverse_scaleway as scaleway
my_offer = scaleway.elasticmetal.get_offer(zone="fr-par-1",
    name="EM-B220E-NVME",
    subscription_period="monthly")
server01 = scaleway.elasticmetal.Server("server01",
    name="UpdateSubscriptionPeriod",
    offer=my_offer.offer_id,
    zone="fr-par-1",
    install_config_afterward=True)
package main
import (
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myOffer, err := elasticmetal.GetOffer(ctx, &elasticmetal.GetOfferArgs{
			Zone:               pulumi.StringRef("fr-par-1"),
			Name:               pulumi.StringRef("EM-B220E-NVME"),
			SubscriptionPeriod: pulumi.StringRef("monthly"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = elasticmetal.NewServer(ctx, "server01", &elasticmetal.ServerArgs{
			Name:                   pulumi.String("UpdateSubscriptionPeriod"),
			Offer:                  pulumi.String(myOffer.OfferId),
			Zone:                   pulumi.String("fr-par-1"),
			InstallConfigAfterward: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scaleway = Pulumi.Scaleway;
using Scaleway = Pulumiverse.Scaleway;
return await Deployment.RunAsync(() => 
{
    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()
    {
        Zone = "fr-par-1",
        Name = "EM-B220E-NVME",
        SubscriptionPeriod = "monthly",
    });
    var server01 = new Scaleway.Elasticmetal.Server("server01", new()
    {
        Name = "UpdateSubscriptionPeriod",
        Offer = myOffer.Apply(getOfferResult => getOfferResult.OfferId),
        Zone = "fr-par-1",
        InstallConfigAfterward = true,
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;
import com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;
import com.pulumi.scaleway.elasticmetal.Server;
import com.pulumi.scaleway.elasticmetal.ServerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()
            .zone("fr-par-1")
            .name("EM-B220E-NVME")
            .subscriptionPeriod("monthly")
            .build());
        var server01 = new Server("server01", ServerArgs.builder()
            .name("UpdateSubscriptionPeriod")
            .offer(myOffer.applyValue(getOfferResult -> getOfferResult.offerId()))
            .zone("fr-par-1")
            .installConfigAfterward(true)
            .build());
    }
}
resources:
  server01:
    type: scaleway:elasticmetal:Server
    properties:
      name: UpdateSubscriptionPeriod
      offer: ${myOffer.offerId}
      zone: fr-par-1
      installConfigAfterward: true
variables:
  myOffer:
    fn::invoke:
      function: scaleway:elasticmetal:getOffer
      arguments:
        zone: fr-par-1
        name: EM-B220E-NVME
        subscriptionPeriod: monthly
Important Once you migrate to a monthly subscription, you cannot downgrade back to an hourly plan. Ensure that the monthly plan meets your needs before making the switch.
Create Server Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Server(name: string, args: ServerArgs, opts?: CustomResourceOptions);@overload
def Server(resource_name: str,
           args: ServerArgs,
           opts: Optional[ResourceOptions] = None)
@overload
def Server(resource_name: str,
           opts: Optional[ResourceOptions] = None,
           offer: Optional[str] = None,
           password: Optional[str] = None,
           project_id: Optional[str] = None,
           name: Optional[str] = None,
           hostname: Optional[str] = None,
           options: Optional[Sequence[ServerOptionArgs]] = None,
           os: Optional[str] = None,
           partitioning: Optional[str] = None,
           description: Optional[str] = None,
           install_config_afterward: Optional[bool] = None,
           reinstall_on_config_changes: Optional[bool] = None,
           private_networks: Optional[Sequence[ServerPrivateNetworkArgs]] = None,
           service_password: Optional[str] = None,
           service_user: Optional[str] = None,
           ssh_key_ids: Optional[Sequence[str]] = None,
           tags: Optional[Sequence[str]] = None,
           user: Optional[str] = None,
           zone: Optional[str] = None)func NewServer(ctx *Context, name string, args ServerArgs, opts ...ResourceOption) (*Server, error)public Server(string name, ServerArgs args, CustomResourceOptions? opts = null)
public Server(String name, ServerArgs args)
public Server(String name, ServerArgs args, CustomResourceOptions options)
type: scaleway:elasticmetal:Server
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
 - The unique name of the resource.
 - args ServerArgs
 - The arguments to resource properties.
 - opts CustomResourceOptions
 - Bag of options to control resource's behavior.
 
- resource_name str
 - The unique name of the resource.
 - args ServerArgs
 - The arguments to resource properties.
 - opts ResourceOptions
 - Bag of options to control resource's behavior.
 
- ctx Context
 - Context object for the current deployment.
 - name string
 - The unique name of the resource.
 - args ServerArgs
 - The arguments to resource properties.
 - opts ResourceOption
 - Bag of options to control resource's behavior.
 
- name string
 - The unique name of the resource.
 - args ServerArgs
 - The arguments to resource properties.
 - opts CustomResourceOptions
 - Bag of options to control resource's behavior.
 
- name String
 - The unique name of the resource.
 - args ServerArgs
 - The arguments to resource properties.
 - options CustomResourceOptions
 - Bag of options to control resource's behavior.
 
Constructor example
The following reference example uses placeholder values for all input properties.
var scalewayServerResource = new Scaleway.Elasticmetal.Server("scalewayServerResource", new()
{
    Offer = "string",
    Password = "string",
    ProjectId = "string",
    Name = "string",
    Hostname = "string",
    Options = new[]
    {
        new Scaleway.Elasticmetal.Inputs.ServerOptionArgs
        {
            Id = "string",
            ExpiresAt = "string",
            Name = "string",
        },
    },
    Os = "string",
    Partitioning = "string",
    Description = "string",
    InstallConfigAfterward = false,
    ReinstallOnConfigChanges = false,
    PrivateNetworks = new[]
    {
        new Scaleway.Elasticmetal.Inputs.ServerPrivateNetworkArgs
        {
            Id = "string",
            CreatedAt = "string",
            IpamIpIds = new[]
            {
                "string",
            },
            Status = "string",
            UpdatedAt = "string",
            Vlan = 0,
        },
    },
    ServicePassword = "string",
    ServiceUser = "string",
    SshKeyIds = new[]
    {
        "string",
    },
    Tags = new[]
    {
        "string",
    },
    User = "string",
    Zone = "string",
});
example, err := elasticmetal.NewServer(ctx, "scalewayServerResource", &elasticmetal.ServerArgs{
	Offer:     pulumi.String("string"),
	Password:  pulumi.String("string"),
	ProjectId: pulumi.String("string"),
	Name:      pulumi.String("string"),
	Hostname:  pulumi.String("string"),
	Options: elasticmetal.ServerOptionArray{
		&elasticmetal.ServerOptionArgs{
			Id:        pulumi.String("string"),
			ExpiresAt: pulumi.String("string"),
			Name:      pulumi.String("string"),
		},
	},
	Os:                       pulumi.String("string"),
	Partitioning:             pulumi.String("string"),
	Description:              pulumi.String("string"),
	InstallConfigAfterward:   pulumi.Bool(false),
	ReinstallOnConfigChanges: pulumi.Bool(false),
	PrivateNetworks: elasticmetal.ServerPrivateNetworkArray{
		&elasticmetal.ServerPrivateNetworkArgs{
			Id:        pulumi.String("string"),
			CreatedAt: pulumi.String("string"),
			IpamIpIds: pulumi.StringArray{
				pulumi.String("string"),
			},
			Status:    pulumi.String("string"),
			UpdatedAt: pulumi.String("string"),
			Vlan:      pulumi.Int(0),
		},
	},
	ServicePassword: pulumi.String("string"),
	ServiceUser:     pulumi.String("string"),
	SshKeyIds: pulumi.StringArray{
		pulumi.String("string"),
	},
	Tags: pulumi.StringArray{
		pulumi.String("string"),
	},
	User: pulumi.String("string"),
	Zone: pulumi.String("string"),
})
var scalewayServerResource = new Server("scalewayServerResource", ServerArgs.builder()
    .offer("string")
    .password("string")
    .projectId("string")
    .name("string")
    .hostname("string")
    .options(ServerOptionArgs.builder()
        .id("string")
        .expiresAt("string")
        .name("string")
        .build())
    .os("string")
    .partitioning("string")
    .description("string")
    .installConfigAfterward(false)
    .reinstallOnConfigChanges(false)
    .privateNetworks(ServerPrivateNetworkArgs.builder()
        .id("string")
        .createdAt("string")
        .ipamIpIds("string")
        .status("string")
        .updatedAt("string")
        .vlan(0)
        .build())
    .servicePassword("string")
    .serviceUser("string")
    .sshKeyIds("string")
    .tags("string")
    .user("string")
    .zone("string")
    .build());
scaleway_server_resource = scaleway.elasticmetal.Server("scalewayServerResource",
    offer="string",
    password="string",
    project_id="string",
    name="string",
    hostname="string",
    options=[{
        "id": "string",
        "expires_at": "string",
        "name": "string",
    }],
    os="string",
    partitioning="string",
    description="string",
    install_config_afterward=False,
    reinstall_on_config_changes=False,
    private_networks=[{
        "id": "string",
        "created_at": "string",
        "ipam_ip_ids": ["string"],
        "status": "string",
        "updated_at": "string",
        "vlan": 0,
    }],
    service_password="string",
    service_user="string",
    ssh_key_ids=["string"],
    tags=["string"],
    user="string",
    zone="string")
const scalewayServerResource = new scaleway.elasticmetal.Server("scalewayServerResource", {
    offer: "string",
    password: "string",
    projectId: "string",
    name: "string",
    hostname: "string",
    options: [{
        id: "string",
        expiresAt: "string",
        name: "string",
    }],
    os: "string",
    partitioning: "string",
    description: "string",
    installConfigAfterward: false,
    reinstallOnConfigChanges: false,
    privateNetworks: [{
        id: "string",
        createdAt: "string",
        ipamIpIds: ["string"],
        status: "string",
        updatedAt: "string",
        vlan: 0,
    }],
    servicePassword: "string",
    serviceUser: "string",
    sshKeyIds: ["string"],
    tags: ["string"],
    user: "string",
    zone: "string",
});
type: scaleway:elasticmetal:Server
properties:
    description: string
    hostname: string
    installConfigAfterward: false
    name: string
    offer: string
    options:
        - expiresAt: string
          id: string
          name: string
    os: string
    partitioning: string
    password: string
    privateNetworks:
        - createdAt: string
          id: string
          ipamIpIds:
            - string
          status: string
          updatedAt: string
          vlan: 0
    projectId: string
    reinstallOnConfigChanges: false
    servicePassword: string
    serviceUser: string
    sshKeyIds:
        - string
    tags:
        - string
    user: string
    zone: string
Server Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Server resource accepts the following input properties:
- Offer string
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- Description string
 - A description for the server.
 - Hostname string
 - The hostname of the server.
 - Install
Config boolAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - Name string
 - The name of the server.
 - Options
List<Pulumiverse.
Scaleway. Elasticmetal. Inputs. Server Option>  The options to enable on the server.
The
optionsblock supports:- Os string
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- Partitioning string
 - The partitioning schema in JSON format
 - Password string
 - Password used for the installation. May be required depending on used os.
 - Private
Networks List<Pulumiverse.Scaleway. Elasticmetal. Inputs. Server Private Network>  - The private networks to attach to the server. For more information, see the documentation
 - Project
Id string project_id) The ID of the project the server is associated with.- Reinstall
On boolConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- Service
Password string - Password used for the service to install. May be required depending on used os.
 - Service
User string - User used for the service to install.
 - Ssh
Key List<string>Ids  - List of SSH keys allowed to connect to the server.
 - List<string>
 - The tags associated with the server.
 - User string
 - User used for the installation.
 - Zone string
 zone) The zone in which the server should be created.
- Offer string
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- Description string
 - A description for the server.
 - Hostname string
 - The hostname of the server.
 - Install
Config boolAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - Name string
 - The name of the server.
 - Options
[]Server
Option Args  The options to enable on the server.
The
optionsblock supports:- Os string
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- Partitioning string
 - The partitioning schema in JSON format
 - Password string
 - Password used for the installation. May be required depending on used os.
 - Private
Networks []ServerPrivate Network Args  - The private networks to attach to the server. For more information, see the documentation
 - Project
Id string project_id) The ID of the project the server is associated with.- Reinstall
On boolConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- Service
Password string - Password used for the service to install. May be required depending on used os.
 - Service
User string - User used for the service to install.
 - Ssh
Key []stringIds  - List of SSH keys allowed to connect to the server.
 - []string
 - The tags associated with the server.
 - User string
 - User used for the installation.
 - Zone string
 zone) The zone in which the server should be created.
- offer String
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- description String
 - A description for the server.
 - hostname String
 - The hostname of the server.
 - install
Config BooleanAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - name String
 - The name of the server.
 - options
List<Server
Option>  The options to enable on the server.
The
optionsblock supports:- os String
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- partitioning String
 - The partitioning schema in JSON format
 - password String
 - Password used for the installation. May be required depending on used os.
 - private
Networks List<ServerPrivate Network>  - The private networks to attach to the server. For more information, see the documentation
 - project
Id String project_id) The ID of the project the server is associated with.- reinstall
On BooleanConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- service
Password String - Password used for the service to install. May be required depending on used os.
 - service
User String - User used for the service to install.
 - ssh
Key List<String>Ids  - List of SSH keys allowed to connect to the server.
 - List<String>
 - The tags associated with the server.
 - user String
 - User used for the installation.
 - zone String
 zone) The zone in which the server should be created.
- offer string
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- description string
 - A description for the server.
 - hostname string
 - The hostname of the server.
 - install
Config booleanAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - name string
 - The name of the server.
 - options
Server
Option[]  The options to enable on the server.
The
optionsblock supports:- os string
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- partitioning string
 - The partitioning schema in JSON format
 - password string
 - Password used for the installation. May be required depending on used os.
 - private
Networks ServerPrivate Network[]  - The private networks to attach to the server. For more information, see the documentation
 - project
Id string project_id) The ID of the project the server is associated with.- reinstall
On booleanConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- service
Password string - Password used for the service to install. May be required depending on used os.
 - service
User string - User used for the service to install.
 - ssh
Key string[]Ids  - List of SSH keys allowed to connect to the server.
 - string[]
 - The tags associated with the server.
 - user string
 - User used for the installation.
 - zone string
 zone) The zone in which the server should be created.
- offer str
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- description str
 - A description for the server.
 - hostname str
 - The hostname of the server.
 - install_
config_ boolafterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - name str
 - The name of the server.
 - options
Sequence[Server
Option Args]  The options to enable on the server.
The
optionsblock supports:- os str
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- partitioning str
 - The partitioning schema in JSON format
 - password str
 - Password used for the installation. May be required depending on used os.
 - private_
networks Sequence[ServerPrivate Network Args]  - The private networks to attach to the server. For more information, see the documentation
 - project_
id str project_id) The ID of the project the server is associated with.- reinstall_
on_ boolconfig_ changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- service_
password str - Password used for the service to install. May be required depending on used os.
 - service_
user str - User used for the service to install.
 - ssh_
key_ Sequence[str]ids  - List of SSH keys allowed to connect to the server.
 - Sequence[str]
 - The tags associated with the server.
 - user str
 - User used for the installation.
 - zone str
 zone) The zone in which the server should be created.
- offer String
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- description String
 - A description for the server.
 - hostname String
 - The hostname of the server.
 - install
Config BooleanAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - name String
 - The name of the server.
 - options List<Property Map>
 The options to enable on the server.
The
optionsblock supports:- os String
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- partitioning String
 - The partitioning schema in JSON format
 - password String
 - Password used for the installation. May be required depending on used os.
 - private
Networks List<Property Map> - The private networks to attach to the server. For more information, see the documentation
 - project
Id String project_id) The ID of the project the server is associated with.- reinstall
On BooleanConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- service
Password String - Password used for the service to install. May be required depending on used os.
 - service
User String - User used for the service to install.
 - ssh
Key List<String>Ids  - List of SSH keys allowed to connect to the server.
 - List<String>
 - The tags associated with the server.
 - user String
 - User used for the installation.
 - zone String
 zone) The zone in which the server should be created.
Outputs
All input properties are implicitly available as output properties. Additionally, the Server resource produces the following output properties:
- Domain string
 - The domain of the server.
 - Id string
 - The provider-assigned unique ID for this managed resource.
 - Ips
List<Pulumiverse.
Scaleway. Elasticmetal. Outputs. Server Ip>  - (List of) The IPs of the server.
 - Ipv4s
List<Pulumiverse.
Scaleway. Elasticmetal. Outputs. Server Ipv4>  - (List of) The IPv4 addresses of the server.
 - Ipv6s
List<Pulumiverse.
Scaleway. Elasticmetal. Outputs. Server Ipv6>  - (List of) The IPv6 addresses of the server.
 - Offer
Id string - The ID of the offer.
 - Offer
Name string - The name of the offer.
 - Organization
Id string - The organization ID the server is associated with.
 - Os
Name string - The name of the os.
 
- Domain string
 - The domain of the server.
 - Id string
 - The provider-assigned unique ID for this managed resource.
 - Ips
[]Server
Ip  - (List of) The IPs of the server.
 - Ipv4s
[]Server
Ipv4  - (List of) The IPv4 addresses of the server.
 - Ipv6s
[]Server
Ipv6  - (List of) The IPv6 addresses of the server.
 - Offer
Id string - The ID of the offer.
 - Offer
Name string - The name of the offer.
 - Organization
Id string - The organization ID the server is associated with.
 - Os
Name string - The name of the os.
 
- domain String
 - The domain of the server.
 - id String
 - The provider-assigned unique ID for this managed resource.
 - ips
List<Server
Ip>  - (List of) The IPs of the server.
 - ipv4s
List<Server
Ipv4>  - (List of) The IPv4 addresses of the server.
 - ipv6s
List<Server
Ipv6>  - (List of) The IPv6 addresses of the server.
 - offer
Id String - The ID of the offer.
 - offer
Name String - The name of the offer.
 - organization
Id String - The organization ID the server is associated with.
 - os
Name String - The name of the os.
 
- domain string
 - The domain of the server.
 - id string
 - The provider-assigned unique ID for this managed resource.
 - ips
Server
Ip[]  - (List of) The IPs of the server.
 - ipv4s
Server
Ipv4[]  - (List of) The IPv4 addresses of the server.
 - ipv6s
Server
Ipv6[]  - (List of) The IPv6 addresses of the server.
 - offer
Id string - The ID of the offer.
 - offer
Name string - The name of the offer.
 - organization
Id string - The organization ID the server is associated with.
 - os
Name string - The name of the os.
 
- domain str
 - The domain of the server.
 - id str
 - The provider-assigned unique ID for this managed resource.
 - ips
Sequence[Server
Ip]  - (List of) The IPs of the server.
 - ipv4s
Sequence[Server
Ipv4]  - (List of) The IPv4 addresses of the server.
 - ipv6s
Sequence[Server
Ipv6]  - (List of) The IPv6 addresses of the server.
 - offer_
id str - The ID of the offer.
 - offer_
name str - The name of the offer.
 - organization_
id str - The organization ID the server is associated with.
 - os_
name str - The name of the os.
 
- domain String
 - The domain of the server.
 - id String
 - The provider-assigned unique ID for this managed resource.
 - ips List<Property Map>
 - (List of) The IPs of the server.
 - ipv4s List<Property Map>
 - (List of) The IPv4 addresses of the server.
 - ipv6s List<Property Map>
 - (List of) The IPv6 addresses of the server.
 - offer
Id String - The ID of the offer.
 - offer
Name String - The name of the offer.
 - organization
Id String - The organization ID the server is associated with.
 - os
Name String - The name of the os.
 
Look up Existing Server Resource
Get an existing Server resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ServerState, opts?: CustomResourceOptions): Server@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        description: Optional[str] = None,
        domain: Optional[str] = None,
        hostname: Optional[str] = None,
        install_config_afterward: Optional[bool] = None,
        ips: Optional[Sequence[ServerIpArgs]] = None,
        ipv4s: Optional[Sequence[ServerIpv4Args]] = None,
        ipv6s: Optional[Sequence[ServerIpv6Args]] = None,
        name: Optional[str] = None,
        offer: Optional[str] = None,
        offer_id: Optional[str] = None,
        offer_name: Optional[str] = None,
        options: Optional[Sequence[ServerOptionArgs]] = None,
        organization_id: Optional[str] = None,
        os: Optional[str] = None,
        os_name: Optional[str] = None,
        partitioning: Optional[str] = None,
        password: Optional[str] = None,
        private_networks: Optional[Sequence[ServerPrivateNetworkArgs]] = None,
        project_id: Optional[str] = None,
        reinstall_on_config_changes: Optional[bool] = None,
        service_password: Optional[str] = None,
        service_user: Optional[str] = None,
        ssh_key_ids: Optional[Sequence[str]] = None,
        tags: Optional[Sequence[str]] = None,
        user: Optional[str] = None,
        zone: Optional[str] = None) -> Serverfunc GetServer(ctx *Context, name string, id IDInput, state *ServerState, opts ...ResourceOption) (*Server, error)public static Server Get(string name, Input<string> id, ServerState? state, CustomResourceOptions? opts = null)public static Server get(String name, Output<String> id, ServerState state, CustomResourceOptions options)resources:  _:    type: scaleway:elasticmetal:Server    get:      id: ${id}- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- resource_name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 
- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- Description string
 - A description for the server.
 - Domain string
 - The domain of the server.
 - Hostname string
 - The hostname of the server.
 - Install
Config boolAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - Ips
List<Pulumiverse.
Scaleway. Elasticmetal. Inputs. Server Ip>  - (List of) The IPs of the server.
 - Ipv4s
List<Pulumiverse.
Scaleway. Elasticmetal. Inputs. Server Ipv4>  - (List of) The IPv4 addresses of the server.
 - Ipv6s
List<Pulumiverse.
Scaleway. Elasticmetal. Inputs. Server Ipv6>  - (List of) The IPv6 addresses of the server.
 - Name string
 - The name of the server.
 - Offer string
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- Offer
Id string - The ID of the offer.
 - Offer
Name string - The name of the offer.
 - Options
List<Pulumiverse.
Scaleway. Elasticmetal. Inputs. Server Option>  The options to enable on the server.
The
optionsblock supports:- Organization
Id string - The organization ID the server is associated with.
 - Os string
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- Os
Name string - The name of the os.
 - Partitioning string
 - The partitioning schema in JSON format
 - Password string
 - Password used for the installation. May be required depending on used os.
 - Private
Networks List<Pulumiverse.Scaleway. Elasticmetal. Inputs. Server Private Network>  - The private networks to attach to the server. For more information, see the documentation
 - Project
Id string project_id) The ID of the project the server is associated with.- Reinstall
On boolConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- Service
Password string - Password used for the service to install. May be required depending on used os.
 - Service
User string - User used for the service to install.
 - Ssh
Key List<string>Ids  - List of SSH keys allowed to connect to the server.
 - List<string>
 - The tags associated with the server.
 - User string
 - User used for the installation.
 - Zone string
 zone) The zone in which the server should be created.
- Description string
 - A description for the server.
 - Domain string
 - The domain of the server.
 - Hostname string
 - The hostname of the server.
 - Install
Config boolAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - Ips
[]Server
Ip Args  - (List of) The IPs of the server.
 - Ipv4s
[]Server
Ipv4Args  - (List of) The IPv4 addresses of the server.
 - Ipv6s
[]Server
Ipv6Args  - (List of) The IPv6 addresses of the server.
 - Name string
 - The name of the server.
 - Offer string
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- Offer
Id string - The ID of the offer.
 - Offer
Name string - The name of the offer.
 - Options
[]Server
Option Args  The options to enable on the server.
The
optionsblock supports:- Organization
Id string - The organization ID the server is associated with.
 - Os string
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- Os
Name string - The name of the os.
 - Partitioning string
 - The partitioning schema in JSON format
 - Password string
 - Password used for the installation. May be required depending on used os.
 - Private
Networks []ServerPrivate Network Args  - The private networks to attach to the server. For more information, see the documentation
 - Project
Id string project_id) The ID of the project the server is associated with.- Reinstall
On boolConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- Service
Password string - Password used for the service to install. May be required depending on used os.
 - Service
User string - User used for the service to install.
 - Ssh
Key []stringIds  - List of SSH keys allowed to connect to the server.
 - []string
 - The tags associated with the server.
 - User string
 - User used for the installation.
 - Zone string
 zone) The zone in which the server should be created.
- description String
 - A description for the server.
 - domain String
 - The domain of the server.
 - hostname String
 - The hostname of the server.
 - install
Config BooleanAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - ips
List<Server
Ip>  - (List of) The IPs of the server.
 - ipv4s
List<Server
Ipv4>  - (List of) The IPv4 addresses of the server.
 - ipv6s
List<Server
Ipv6>  - (List of) The IPv6 addresses of the server.
 - name String
 - The name of the server.
 - offer String
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- offer
Id String - The ID of the offer.
 - offer
Name String - The name of the offer.
 - options
List<Server
Option>  The options to enable on the server.
The
optionsblock supports:- organization
Id String - The organization ID the server is associated with.
 - os String
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- os
Name String - The name of the os.
 - partitioning String
 - The partitioning schema in JSON format
 - password String
 - Password used for the installation. May be required depending on used os.
 - private
Networks List<ServerPrivate Network>  - The private networks to attach to the server. For more information, see the documentation
 - project
Id String project_id) The ID of the project the server is associated with.- reinstall
On BooleanConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- service
Password String - Password used for the service to install. May be required depending on used os.
 - service
User String - User used for the service to install.
 - ssh
Key List<String>Ids  - List of SSH keys allowed to connect to the server.
 - List<String>
 - The tags associated with the server.
 - user String
 - User used for the installation.
 - zone String
 zone) The zone in which the server should be created.
- description string
 - A description for the server.
 - domain string
 - The domain of the server.
 - hostname string
 - The hostname of the server.
 - install
Config booleanAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - ips
Server
Ip[]  - (List of) The IPs of the server.
 - ipv4s
Server
Ipv4[]  - (List of) The IPv4 addresses of the server.
 - ipv6s
Server
Ipv6[]  - (List of) The IPv6 addresses of the server.
 - name string
 - The name of the server.
 - offer string
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- offer
Id string - The ID of the offer.
 - offer
Name string - The name of the offer.
 - options
Server
Option[]  The options to enable on the server.
The
optionsblock supports:- organization
Id string - The organization ID the server is associated with.
 - os string
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- os
Name string - The name of the os.
 - partitioning string
 - The partitioning schema in JSON format
 - password string
 - Password used for the installation. May be required depending on used os.
 - private
Networks ServerPrivate Network[]  - The private networks to attach to the server. For more information, see the documentation
 - project
Id string project_id) The ID of the project the server is associated with.- reinstall
On booleanConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- service
Password string - Password used for the service to install. May be required depending on used os.
 - service
User string - User used for the service to install.
 - ssh
Key string[]Ids  - List of SSH keys allowed to connect to the server.
 - string[]
 - The tags associated with the server.
 - user string
 - User used for the installation.
 - zone string
 zone) The zone in which the server should be created.
- description str
 - A description for the server.
 - domain str
 - The domain of the server.
 - hostname str
 - The hostname of the server.
 - install_
config_ boolafterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - ips
Sequence[Server
Ip Args]  - (List of) The IPs of the server.
 - ipv4s
Sequence[Server
Ipv4Args]  - (List of) The IPv4 addresses of the server.
 - ipv6s
Sequence[Server
Ipv6Args]  - (List of) The IPv6 addresses of the server.
 - name str
 - The name of the server.
 - offer str
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- offer_
id str - The ID of the offer.
 - offer_
name str - The name of the offer.
 - options
Sequence[Server
Option Args]  The options to enable on the server.
The
optionsblock supports:- organization_
id str - The organization ID the server is associated with.
 - os str
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- os_
name str - The name of the os.
 - partitioning str
 - The partitioning schema in JSON format
 - password str
 - Password used for the installation. May be required depending on used os.
 - private_
networks Sequence[ServerPrivate Network Args]  - The private networks to attach to the server. For more information, see the documentation
 - project_
id str project_id) The ID of the project the server is associated with.- reinstall_
on_ boolconfig_ changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- service_
password str - Password used for the service to install. May be required depending on used os.
 - service_
user str - User used for the service to install.
 - ssh_
key_ Sequence[str]ids  - List of SSH keys allowed to connect to the server.
 - Sequence[str]
 - The tags associated with the server.
 - user str
 - User used for the installation.
 - zone str
 zone) The zone in which the server should be created.
- description String
 - A description for the server.
 - domain String
 - The domain of the server.
 - hostname String
 - The hostname of the server.
 - install
Config BooleanAfterward  - If True, this boolean allows to create a server without the install config if you want to provide it later.
 - ips List<Property Map>
 - (List of) The IPs of the server.
 - ipv4s List<Property Map>
 - (List of) The IPv4 addresses of the server.
 - ipv6s List<Property Map>
 - (List of) The IPv6 addresses of the server.
 - name String
 - The name of the server.
 - offer String
 The offer UUID of the baremetal server. Use this endpoint to find the right offer.
Important: Updates to
offerwill recreate the server.- offer
Id String - The ID of the offer.
 - offer
Name String - The name of the offer.
 - options List<Property Map>
 The options to enable on the server.
The
optionsblock supports:- organization
Id String - The organization ID the server is associated with.
 - os String
 The UUID of the os to install on the server. Use this endpoint to find the right OS ID.
Important: Updates to
oswill reinstall the server.- os
Name String - The name of the os.
 - partitioning String
 - The partitioning schema in JSON format
 - password String
 - Password used for the installation. May be required depending on used os.
 - private
Networks List<Property Map> - The private networks to attach to the server. For more information, see the documentation
 - project
Id String project_id) The ID of the project the server is associated with.- reinstall
On BooleanConfig Changes  If True, this boolean allows to reinstall the server on install config changes.
Important: Updates to
ssh_key_ids,user,password,service_userorservice_passwordwill not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.- service
Password String - Password used for the service to install. May be required depending on used os.
 - service
User String - User used for the service to install.
 - ssh
Key List<String>Ids  - List of SSH keys allowed to connect to the server.
 - List<String>
 - The tags associated with the server.
 - user String
 - User used for the installation.
 - zone String
 zone) The zone in which the server should be created.
Supporting Types
ServerIp, ServerIpArgs    
ServerIpv4, ServerIpv4Args    
ServerIpv6, ServerIpv6Args    
ServerOption, ServerOptionArgs    
- Id string
 - The id of the option to enable. Use this endpoint to find the available options IDs.
 - Expires
At string - The auto expiration date for compatible options
 - Name string
 - The name of the server.
 
- Id string
 - The id of the option to enable. Use this endpoint to find the available options IDs.
 - Expires
At string - The auto expiration date for compatible options
 - Name string
 - The name of the server.
 
- id String
 - The id of the option to enable. Use this endpoint to find the available options IDs.
 - expires
At String - The auto expiration date for compatible options
 - name String
 - The name of the server.
 
- id string
 - The id of the option to enable. Use this endpoint to find the available options IDs.
 - expires
At string - The auto expiration date for compatible options
 - name string
 - The name of the server.
 
- id str
 - The id of the option to enable. Use this endpoint to find the available options IDs.
 - expires_
at str - The auto expiration date for compatible options
 - name str
 - The name of the server.
 
- id String
 - The id of the option to enable. Use this endpoint to find the available options IDs.
 - expires
At String - The auto expiration date for compatible options
 - name String
 - The name of the server.
 
ServerPrivateNetwork, ServerPrivateNetworkArgs      
- Id string
 - The id of the private network to attach.
 - Created
At string - The date and time of the creation of the private network.
 - Ipam
Ip List<string>Ids  - List of IPAM IP IDs to assign to the server in the requested private network.
 - Status string
 - The private network status.
 - Updated
At string - The date and time of the last update of the private network.
 - Vlan int
 - The VLAN ID associated to the private network.
 
- Id string
 - The id of the private network to attach.
 - Created
At string - The date and time of the creation of the private network.
 - Ipam
Ip []stringIds  - List of IPAM IP IDs to assign to the server in the requested private network.
 - Status string
 - The private network status.
 - Updated
At string - The date and time of the last update of the private network.
 - Vlan int
 - The VLAN ID associated to the private network.
 
- id String
 - The id of the private network to attach.
 - created
At String - The date and time of the creation of the private network.
 - ipam
Ip List<String>Ids  - List of IPAM IP IDs to assign to the server in the requested private network.
 - status String
 - The private network status.
 - updated
At String - The date and time of the last update of the private network.
 - vlan Integer
 - The VLAN ID associated to the private network.
 
- id string
 - The id of the private network to attach.
 - created
At string - The date and time of the creation of the private network.
 - ipam
Ip string[]Ids  - List of IPAM IP IDs to assign to the server in the requested private network.
 - status string
 - The private network status.
 - updated
At string - The date and time of the last update of the private network.
 - vlan number
 - The VLAN ID associated to the private network.
 
- id str
 - The id of the private network to attach.
 - created_
at str - The date and time of the creation of the private network.
 - ipam_
ip_ Sequence[str]ids  - List of IPAM IP IDs to assign to the server in the requested private network.
 - status str
 - The private network status.
 - updated_
at str - The date and time of the last update of the private network.
 - vlan int
 - The VLAN ID associated to the private network.
 
- id String
 - The id of the private network to attach.
 - created
At String - The date and time of the creation of the private network.
 - ipam
Ip List<String>Ids  - List of IPAM IP IDs to assign to the server in the requested private network.
 - status String
 - The private network status.
 - updated
At String - The date and time of the last update of the private network.
 - vlan Number
 - The VLAN ID associated to the private network.
 
Import
Baremetal servers can be imported using the {zone}/{id}, e.g.
bash
$ pulumi import scaleway:elasticmetal/server:Server web fr-par-2/11111111-1111-1111-1111-111111111111
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
 - scaleway pulumiverse/pulumi-scaleway
 - License
 - Apache-2.0
 - Notes
 - This Pulumi package is based on the 
scalewayTerraform Provider.