1. Packages
  2. Ionoscloud Provider
  3. API Docs
  4. ServerBootDeviceSelection
ionoscloud 6.7.6 published on Monday, Apr 14, 2025 by ionos-cloud

ionoscloud.ServerBootDeviceSelection

Explore with Pulumi AI

ionoscloud logo
ionoscloud 6.7.6 published on Monday, Apr 14, 2025 by ionos-cloud

    Manages the selection of a boot device for IonosCloud Servers.

    Example Usage

    The boot device of a ionoscloud.Server, ionoscloud.VcpuServer or ionoscloud.CubeServer can be selected with this resource. Deleting this resource will revert the boot device back to the default volume, which is the first inline volume created together with the server. This resource also allows switching between a volume and a ionoscloud.getImage CDROM. Note that CDROM images are detached after they are no longer set as boot devices.

    Select an external volume

    import * as pulumi from "@pulumi/pulumi";
    import * as ionoscloud from "@pulumi/ionoscloud";
    
    const exampleServer = new ionoscloud.Server("exampleServer", {
        availabilityZone: "ZONE_2",
        imageName: "ubuntu:latest",
        cores: 2,
        ram: 2048,
        imagePassword: random_password.server_image_password.result,
        datacenterId: ionoscloud_datacenter.example.id,
        volume: {
            name: "Inline Updated",
            size: 20,
            diskType: "SSD Standard",
            bus: "VIRTIO",
            availabilityZone: "AUTO",
        },
        nic: {
            lan: ionoscloud_lan.example.id,
            name: "Nic Example",
            dhcp: true,
            firewallActive: true,
        },
    });
    const exampleVolume = new ionoscloud.Volume("exampleVolume", {
        serverId: exampleServer.serverId,
        datacenterId: ionoscloud_datacenter.example.id,
        size: 10,
        diskType: "HDD",
        availabilityZone: "AUTO",
        imageName: "debian:latest",
        imagePassword: random_password.server_image_password.result,
    });
    const exampleServerBootDeviceSelection = new ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection", {
        datacenterId: ionoscloud_datacenter.example.id,
        serverId: exampleServer.serverId,
        bootDeviceId: exampleVolume.volumeId,
    });
    
    import pulumi
    import pulumi_ionoscloud as ionoscloud
    
    example_server = ionoscloud.Server("exampleServer",
        availability_zone="ZONE_2",
        image_name="ubuntu:latest",
        cores=2,
        ram=2048,
        image_password=random_password["server_image_password"]["result"],
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        volume={
            "name": "Inline Updated",
            "size": 20,
            "disk_type": "SSD Standard",
            "bus": "VIRTIO",
            "availability_zone": "AUTO",
        },
        nic={
            "lan": ionoscloud_lan["example"]["id"],
            "name": "Nic Example",
            "dhcp": True,
            "firewall_active": True,
        })
    example_volume = ionoscloud.Volume("exampleVolume",
        server_id=example_server.server_id,
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        size=10,
        disk_type="HDD",
        availability_zone="AUTO",
        image_name="debian:latest",
        image_password=random_password["server_image_password"]["result"])
    example_server_boot_device_selection = ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection",
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        server_id=example_server.server_id,
        boot_device_id=example_volume.volume_id)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ionoscloud/v6/ionoscloud"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleServer, err := ionoscloud.NewServer(ctx, "exampleServer", &ionoscloud.ServerArgs{
    			AvailabilityZone: pulumi.String("ZONE_2"),
    			ImageName:        pulumi.String("ubuntu:latest"),
    			Cores:            pulumi.Float64(2),
    			Ram:              pulumi.Float64(2048),
    			ImagePassword:    pulumi.Any(random_password.Server_image_password.Result),
    			DatacenterId:     pulumi.Any(ionoscloud_datacenter.Example.Id),
    			Volume: &ionoscloud.ServerVolumeArgs{
    				Name:             pulumi.String("Inline Updated"),
    				Size:             pulumi.Float64(20),
    				DiskType:         pulumi.String("SSD Standard"),
    				Bus:              pulumi.String("VIRTIO"),
    				AvailabilityZone: pulumi.String("AUTO"),
    			},
    			Nic: &ionoscloud.ServerNicArgs{
    				Lan:            pulumi.Any(ionoscloud_lan.Example.Id),
    				Name:           pulumi.String("Nic Example"),
    				Dhcp:           pulumi.Bool(true),
    				FirewallActive: pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		exampleVolume, err := ionoscloud.NewVolume(ctx, "exampleVolume", &ionoscloud.VolumeArgs{
    			ServerId:         exampleServer.ServerId,
    			DatacenterId:     pulumi.Any(ionoscloud_datacenter.Example.Id),
    			Size:             pulumi.Float64(10),
    			DiskType:         pulumi.String("HDD"),
    			AvailabilityZone: pulumi.String("AUTO"),
    			ImageName:        pulumi.String("debian:latest"),
    			ImagePassword:    pulumi.Any(random_password.Server_image_password.Result),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ionoscloud.NewServerBootDeviceSelection(ctx, "exampleServerBootDeviceSelection", &ionoscloud.ServerBootDeviceSelectionArgs{
    			DatacenterId: pulumi.Any(ionoscloud_datacenter.Example.Id),
    			ServerId:     exampleServer.ServerId,
    			BootDeviceId: exampleVolume.VolumeId,
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ionoscloud = Pulumi.Ionoscloud;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleServer = new Ionoscloud.Server("exampleServer", new()
        {
            AvailabilityZone = "ZONE_2",
            ImageName = "ubuntu:latest",
            Cores = 2,
            Ram = 2048,
            ImagePassword = random_password.Server_image_password.Result,
            DatacenterId = ionoscloud_datacenter.Example.Id,
            Volume = new Ionoscloud.Inputs.ServerVolumeArgs
            {
                Name = "Inline Updated",
                Size = 20,
                DiskType = "SSD Standard",
                Bus = "VIRTIO",
                AvailabilityZone = "AUTO",
            },
            Nic = new Ionoscloud.Inputs.ServerNicArgs
            {
                Lan = ionoscloud_lan.Example.Id,
                Name = "Nic Example",
                Dhcp = true,
                FirewallActive = true,
            },
        });
    
        var exampleVolume = new Ionoscloud.Volume("exampleVolume", new()
        {
            ServerId = exampleServer.ServerId,
            DatacenterId = ionoscloud_datacenter.Example.Id,
            Size = 10,
            DiskType = "HDD",
            AvailabilityZone = "AUTO",
            ImageName = "debian:latest",
            ImagePassword = random_password.Server_image_password.Result,
        });
    
        var exampleServerBootDeviceSelection = new Ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection", new()
        {
            DatacenterId = ionoscloud_datacenter.Example.Id,
            ServerId = exampleServer.ServerId,
            BootDeviceId = exampleVolume.VolumeId,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ionoscloud.Server;
    import com.pulumi.ionoscloud.ServerArgs;
    import com.pulumi.ionoscloud.inputs.ServerVolumeArgs;
    import com.pulumi.ionoscloud.inputs.ServerNicArgs;
    import com.pulumi.ionoscloud.Volume;
    import com.pulumi.ionoscloud.VolumeArgs;
    import com.pulumi.ionoscloud.ServerBootDeviceSelection;
    import com.pulumi.ionoscloud.ServerBootDeviceSelectionArgs;
    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 exampleServer = new Server("exampleServer", ServerArgs.builder()
                .availabilityZone("ZONE_2")
                .imageName("ubuntu:latest")
                .cores(2)
                .ram(2048)
                .imagePassword(random_password.server_image_password().result())
                .datacenterId(ionoscloud_datacenter.example().id())
                .volume(ServerVolumeArgs.builder()
                    .name("Inline Updated")
                    .size(20)
                    .diskType("SSD Standard")
                    .bus("VIRTIO")
                    .availabilityZone("AUTO")
                    .build())
                .nic(ServerNicArgs.builder()
                    .lan(ionoscloud_lan.example().id())
                    .name("Nic Example")
                    .dhcp(true)
                    .firewallActive(true)
                    .build())
                .build());
    
            var exampleVolume = new Volume("exampleVolume", VolumeArgs.builder()
                .serverId(exampleServer.serverId())
                .datacenterId(ionoscloud_datacenter.example().id())
                .size(10)
                .diskType("HDD")
                .availabilityZone("AUTO")
                .imageName("debian:latest")
                .imagePassword(random_password.server_image_password().result())
                .build());
    
            var exampleServerBootDeviceSelection = new ServerBootDeviceSelection("exampleServerBootDeviceSelection", ServerBootDeviceSelectionArgs.builder()
                .datacenterId(ionoscloud_datacenter.example().id())
                .serverId(exampleServer.serverId())
                .bootDeviceId(exampleVolume.volumeId())
                .build());
    
        }
    }
    
    resources:
      exampleServerBootDeviceSelection:
        type: ionoscloud:ServerBootDeviceSelection
        properties:
          datacenterId: ${ionoscloud_datacenter.example.id}
          serverId: ${exampleServer.serverId}
          bootDeviceId: ${exampleVolume.volumeId}
      exampleServer:
        type: ionoscloud:Server
        properties:
          availabilityZone: ZONE_2
          imageName: ubuntu:latest
          cores: 2
          ram: 2048
          imagePassword: ${random_password.server_image_password.result}
          datacenterId: ${ionoscloud_datacenter.example.id}
          volume:
            name: Inline Updated
            size: 20
            diskType: SSD Standard
            bus: VIRTIO
            availabilityZone: AUTO
          nic:
            lan: ${ionoscloud_lan.example.id}
            name: Nic Example
            dhcp: true
            firewallActive: true
      exampleVolume:
        type: ionoscloud:Volume
        properties:
          serverId: ${exampleServer.serverId}
          datacenterId: ${ionoscloud_datacenter.example.id}
          size: 10
          diskType: HDD
          availabilityZone: AUTO
          imageName: debian:latest
          imagePassword: ${random_password.server_image_password.result}
    

    Select an inline volume again

    import * as pulumi from "@pulumi/pulumi";
    import * as ionoscloud from "@pulumi/ionoscloud";
    
    const exampleServer = new ionoscloud.Server("exampleServer", {
        availabilityZone: "ZONE_2",
        imageName: "ubuntu:latest",
        cores: 2,
        ram: 2048,
        imagePassword: random_password.server_image_password.result,
        datacenterId: ionoscloud_datacenter.example.id,
        volume: {
            name: "Inline Updated",
            size: 20,
            diskType: "SSD Standard",
            bus: "VIRTIO",
            availabilityZone: "AUTO",
        },
        nic: {
            lan: ionoscloud_lan.example.id,
            name: "Nic Example",
            dhcp: true,
            firewallActive: true,
        },
    });
    const exampleServerBootDeviceSelection = new ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection", {
        datacenterId: ionoscloud_datacenter.example.id,
        serverId: exampleServer.serverId,
        bootDeviceId: exampleServer.inlineVolumeIds[0],
    });
    const exampleVolume = new ionoscloud.Volume("exampleVolume", {
        serverId: exampleServer.serverId,
        datacenterId: ionoscloud_datacenter.example.id,
        size: 10,
        diskType: "HDD",
        availabilityZone: "AUTO",
        imageName: "debian:latest",
        imagePassword: random_password.server_image_password.result,
    });
    
    import pulumi
    import pulumi_ionoscloud as ionoscloud
    
    example_server = ionoscloud.Server("exampleServer",
        availability_zone="ZONE_2",
        image_name="ubuntu:latest",
        cores=2,
        ram=2048,
        image_password=random_password["server_image_password"]["result"],
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        volume={
            "name": "Inline Updated",
            "size": 20,
            "disk_type": "SSD Standard",
            "bus": "VIRTIO",
            "availability_zone": "AUTO",
        },
        nic={
            "lan": ionoscloud_lan["example"]["id"],
            "name": "Nic Example",
            "dhcp": True,
            "firewall_active": True,
        })
    example_server_boot_device_selection = ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection",
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        server_id=example_server.server_id,
        boot_device_id=example_server.inline_volume_ids[0])
    example_volume = ionoscloud.Volume("exampleVolume",
        server_id=example_server.server_id,
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        size=10,
        disk_type="HDD",
        availability_zone="AUTO",
        image_name="debian:latest",
        image_password=random_password["server_image_password"]["result"])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ionoscloud/v6/ionoscloud"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleServer, err := ionoscloud.NewServer(ctx, "exampleServer", &ionoscloud.ServerArgs{
    			AvailabilityZone: pulumi.String("ZONE_2"),
    			ImageName:        pulumi.String("ubuntu:latest"),
    			Cores:            pulumi.Float64(2),
    			Ram:              pulumi.Float64(2048),
    			ImagePassword:    pulumi.Any(random_password.Server_image_password.Result),
    			DatacenterId:     pulumi.Any(ionoscloud_datacenter.Example.Id),
    			Volume: &ionoscloud.ServerVolumeArgs{
    				Name:             pulumi.String("Inline Updated"),
    				Size:             pulumi.Float64(20),
    				DiskType:         pulumi.String("SSD Standard"),
    				Bus:              pulumi.String("VIRTIO"),
    				AvailabilityZone: pulumi.String("AUTO"),
    			},
    			Nic: &ionoscloud.ServerNicArgs{
    				Lan:            pulumi.Any(ionoscloud_lan.Example.Id),
    				Name:           pulumi.String("Nic Example"),
    				Dhcp:           pulumi.Bool(true),
    				FirewallActive: pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ionoscloud.NewServerBootDeviceSelection(ctx, "exampleServerBootDeviceSelection", &ionoscloud.ServerBootDeviceSelectionArgs{
    			DatacenterId: pulumi.Any(ionoscloud_datacenter.Example.Id),
    			ServerId:     exampleServer.ServerId,
    			BootDeviceId: exampleServer.InlineVolumeIds.ApplyT(func(inlineVolumeIds []string) (string, error) {
    				return inlineVolumeIds[0], nil
    			}).(pulumi.StringOutput),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ionoscloud.NewVolume(ctx, "exampleVolume", &ionoscloud.VolumeArgs{
    			ServerId:         exampleServer.ServerId,
    			DatacenterId:     pulumi.Any(ionoscloud_datacenter.Example.Id),
    			Size:             pulumi.Float64(10),
    			DiskType:         pulumi.String("HDD"),
    			AvailabilityZone: pulumi.String("AUTO"),
    			ImageName:        pulumi.String("debian:latest"),
    			ImagePassword:    pulumi.Any(random_password.Server_image_password.Result),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ionoscloud = Pulumi.Ionoscloud;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleServer = new Ionoscloud.Server("exampleServer", new()
        {
            AvailabilityZone = "ZONE_2",
            ImageName = "ubuntu:latest",
            Cores = 2,
            Ram = 2048,
            ImagePassword = random_password.Server_image_password.Result,
            DatacenterId = ionoscloud_datacenter.Example.Id,
            Volume = new Ionoscloud.Inputs.ServerVolumeArgs
            {
                Name = "Inline Updated",
                Size = 20,
                DiskType = "SSD Standard",
                Bus = "VIRTIO",
                AvailabilityZone = "AUTO",
            },
            Nic = new Ionoscloud.Inputs.ServerNicArgs
            {
                Lan = ionoscloud_lan.Example.Id,
                Name = "Nic Example",
                Dhcp = true,
                FirewallActive = true,
            },
        });
    
        var exampleServerBootDeviceSelection = new Ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection", new()
        {
            DatacenterId = ionoscloud_datacenter.Example.Id,
            ServerId = exampleServer.ServerId,
            BootDeviceId = exampleServer.InlineVolumeIds.Apply(inlineVolumeIds => inlineVolumeIds[0]),
        });
    
        var exampleVolume = new Ionoscloud.Volume("exampleVolume", new()
        {
            ServerId = exampleServer.ServerId,
            DatacenterId = ionoscloud_datacenter.Example.Id,
            Size = 10,
            DiskType = "HDD",
            AvailabilityZone = "AUTO",
            ImageName = "debian:latest",
            ImagePassword = random_password.Server_image_password.Result,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ionoscloud.Server;
    import com.pulumi.ionoscloud.ServerArgs;
    import com.pulumi.ionoscloud.inputs.ServerVolumeArgs;
    import com.pulumi.ionoscloud.inputs.ServerNicArgs;
    import com.pulumi.ionoscloud.ServerBootDeviceSelection;
    import com.pulumi.ionoscloud.ServerBootDeviceSelectionArgs;
    import com.pulumi.ionoscloud.Volume;
    import com.pulumi.ionoscloud.VolumeArgs;
    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 exampleServer = new Server("exampleServer", ServerArgs.builder()
                .availabilityZone("ZONE_2")
                .imageName("ubuntu:latest")
                .cores(2)
                .ram(2048)
                .imagePassword(random_password.server_image_password().result())
                .datacenterId(ionoscloud_datacenter.example().id())
                .volume(ServerVolumeArgs.builder()
                    .name("Inline Updated")
                    .size(20)
                    .diskType("SSD Standard")
                    .bus("VIRTIO")
                    .availabilityZone("AUTO")
                    .build())
                .nic(ServerNicArgs.builder()
                    .lan(ionoscloud_lan.example().id())
                    .name("Nic Example")
                    .dhcp(true)
                    .firewallActive(true)
                    .build())
                .build());
    
            var exampleServerBootDeviceSelection = new ServerBootDeviceSelection("exampleServerBootDeviceSelection", ServerBootDeviceSelectionArgs.builder()
                .datacenterId(ionoscloud_datacenter.example().id())
                .serverId(exampleServer.serverId())
                .bootDeviceId(exampleServer.inlineVolumeIds().applyValue(inlineVolumeIds -> inlineVolumeIds[0]))
                .build());
    
            var exampleVolume = new Volume("exampleVolume", VolumeArgs.builder()
                .serverId(exampleServer.serverId())
                .datacenterId(ionoscloud_datacenter.example().id())
                .size(10)
                .diskType("HDD")
                .availabilityZone("AUTO")
                .imageName("debian:latest")
                .imagePassword(random_password.server_image_password().result())
                .build());
    
        }
    }
    
    resources:
      exampleServerBootDeviceSelection:
        type: ionoscloud:ServerBootDeviceSelection
        properties:
          datacenterId: ${ionoscloud_datacenter.example.id}
          serverId: ${exampleServer.serverId}
          bootDeviceId: ${exampleServer.inlineVolumeIds[0]}
      exampleServer:
        type: ionoscloud:Server
        properties:
          availabilityZone: ZONE_2
          imageName: ubuntu:latest
          cores: 2
          ram: 2048
          imagePassword: ${random_password.server_image_password.result}
          datacenterId: ${ionoscloud_datacenter.example.id}
          volume:
            name: Inline Updated
            size: 20
            diskType: SSD Standard
            bus: VIRTIO
            availabilityZone: AUTO
          nic:
            lan: ${ionoscloud_lan.example.id}
            name: Nic Example
            dhcp: true
            firewallActive: true
      exampleVolume:
        type: ionoscloud:Volume
        properties:
          serverId: ${exampleServer.serverId}
          datacenterId: ${ionoscloud_datacenter.example.id}
          size: 10
          diskType: HDD
          availabilityZone: AUTO
          imageName: debian:latest
          imagePassword: ${random_password.server_image_password.result}
    

    Select a CDROM image

    import * as pulumi from "@pulumi/pulumi";
    import * as ionoscloud from "@pulumi/ionoscloud";
    
    const exampleServer = new ionoscloud.Server("exampleServer", {
        availabilityZone: "ZONE_2",
        imageName: "ubuntu:latest",
        cores: 2,
        ram: 2048,
        imagePassword: random_password.server_image_password.result,
        datacenterId: ionoscloud_datacenter.example.id,
        volume: {
            name: "Inline Updated",
            size: 20,
            diskType: "SSD Standard",
            bus: "VIRTIO",
            availabilityZone: "AUTO",
        },
        nic: {
            lan: ionoscloud_lan.example.id,
            name: "Nic Example",
            dhcp: true,
            firewallActive: true,
        },
    });
    const exampleImage = ionoscloud.getImage({
        name: "ubuntu-20.04",
        location: "de/txl",
        type: "CDROM",
    });
    const exampleServerBootDeviceSelection = new ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection", {
        datacenterId: ionoscloud_datacenter.example.id,
        serverId: exampleServer.inlineVolumeIds[0],
        bootDeviceId: exampleImage.then(exampleImage => exampleImage.id),
    });
    const exampleVolume = new ionoscloud.Volume("exampleVolume", {
        serverId: exampleServer.serverId,
        datacenterId: ionoscloud_datacenter.example.id,
        size: 10,
        diskType: "HDD",
        availabilityZone: "AUTO",
        imageName: "debian:latest",
        imagePassword: random_password.server_image_password.result,
    });
    
    import pulumi
    import pulumi_ionoscloud as ionoscloud
    
    example_server = ionoscloud.Server("exampleServer",
        availability_zone="ZONE_2",
        image_name="ubuntu:latest",
        cores=2,
        ram=2048,
        image_password=random_password["server_image_password"]["result"],
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        volume={
            "name": "Inline Updated",
            "size": 20,
            "disk_type": "SSD Standard",
            "bus": "VIRTIO",
            "availability_zone": "AUTO",
        },
        nic={
            "lan": ionoscloud_lan["example"]["id"],
            "name": "Nic Example",
            "dhcp": True,
            "firewall_active": True,
        })
    example_image = ionoscloud.get_image(name="ubuntu-20.04",
        location="de/txl",
        type="CDROM")
    example_server_boot_device_selection = ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection",
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        server_id=example_server.inline_volume_ids[0],
        boot_device_id=example_image.id)
    example_volume = ionoscloud.Volume("exampleVolume",
        server_id=example_server.server_id,
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        size=10,
        disk_type="HDD",
        availability_zone="AUTO",
        image_name="debian:latest",
        image_password=random_password["server_image_password"]["result"])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ionoscloud/v6/ionoscloud"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleServer, err := ionoscloud.NewServer(ctx, "exampleServer", &ionoscloud.ServerArgs{
    			AvailabilityZone: pulumi.String("ZONE_2"),
    			ImageName:        pulumi.String("ubuntu:latest"),
    			Cores:            pulumi.Float64(2),
    			Ram:              pulumi.Float64(2048),
    			ImagePassword:    pulumi.Any(random_password.Server_image_password.Result),
    			DatacenterId:     pulumi.Any(ionoscloud_datacenter.Example.Id),
    			Volume: &ionoscloud.ServerVolumeArgs{
    				Name:             pulumi.String("Inline Updated"),
    				Size:             pulumi.Float64(20),
    				DiskType:         pulumi.String("SSD Standard"),
    				Bus:              pulumi.String("VIRTIO"),
    				AvailabilityZone: pulumi.String("AUTO"),
    			},
    			Nic: &ionoscloud.ServerNicArgs{
    				Lan:            pulumi.Any(ionoscloud_lan.Example.Id),
    				Name:           pulumi.String("Nic Example"),
    				Dhcp:           pulumi.Bool(true),
    				FirewallActive: pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		exampleImage, err := ionoscloud.GetImage(ctx, &ionoscloud.GetImageArgs{
    			Name:     pulumi.StringRef("ubuntu-20.04"),
    			Location: pulumi.StringRef("de/txl"),
    			Type:     pulumi.StringRef("CDROM"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = ionoscloud.NewServerBootDeviceSelection(ctx, "exampleServerBootDeviceSelection", &ionoscloud.ServerBootDeviceSelectionArgs{
    			DatacenterId: pulumi.Any(ionoscloud_datacenter.Example.Id),
    			ServerId: exampleServer.InlineVolumeIds.ApplyT(func(inlineVolumeIds []string) (string, error) {
    				return inlineVolumeIds[0], nil
    			}).(pulumi.StringOutput),
    			BootDeviceId: pulumi.String(exampleImage.Id),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ionoscloud.NewVolume(ctx, "exampleVolume", &ionoscloud.VolumeArgs{
    			ServerId:         exampleServer.ServerId,
    			DatacenterId:     pulumi.Any(ionoscloud_datacenter.Example.Id),
    			Size:             pulumi.Float64(10),
    			DiskType:         pulumi.String("HDD"),
    			AvailabilityZone: pulumi.String("AUTO"),
    			ImageName:        pulumi.String("debian:latest"),
    			ImagePassword:    pulumi.Any(random_password.Server_image_password.Result),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ionoscloud = Pulumi.Ionoscloud;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleServer = new Ionoscloud.Server("exampleServer", new()
        {
            AvailabilityZone = "ZONE_2",
            ImageName = "ubuntu:latest",
            Cores = 2,
            Ram = 2048,
            ImagePassword = random_password.Server_image_password.Result,
            DatacenterId = ionoscloud_datacenter.Example.Id,
            Volume = new Ionoscloud.Inputs.ServerVolumeArgs
            {
                Name = "Inline Updated",
                Size = 20,
                DiskType = "SSD Standard",
                Bus = "VIRTIO",
                AvailabilityZone = "AUTO",
            },
            Nic = new Ionoscloud.Inputs.ServerNicArgs
            {
                Lan = ionoscloud_lan.Example.Id,
                Name = "Nic Example",
                Dhcp = true,
                FirewallActive = true,
            },
        });
    
        var exampleImage = Ionoscloud.GetImage.Invoke(new()
        {
            Name = "ubuntu-20.04",
            Location = "de/txl",
            Type = "CDROM",
        });
    
        var exampleServerBootDeviceSelection = new Ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection", new()
        {
            DatacenterId = ionoscloud_datacenter.Example.Id,
            ServerId = exampleServer.InlineVolumeIds.Apply(inlineVolumeIds => inlineVolumeIds[0]),
            BootDeviceId = exampleImage.Apply(getImageResult => getImageResult.Id),
        });
    
        var exampleVolume = new Ionoscloud.Volume("exampleVolume", new()
        {
            ServerId = exampleServer.ServerId,
            DatacenterId = ionoscloud_datacenter.Example.Id,
            Size = 10,
            DiskType = "HDD",
            AvailabilityZone = "AUTO",
            ImageName = "debian:latest",
            ImagePassword = random_password.Server_image_password.Result,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ionoscloud.Server;
    import com.pulumi.ionoscloud.ServerArgs;
    import com.pulumi.ionoscloud.inputs.ServerVolumeArgs;
    import com.pulumi.ionoscloud.inputs.ServerNicArgs;
    import com.pulumi.ionoscloud.IonoscloudFunctions;
    import com.pulumi.ionoscloud.inputs.GetImageArgs;
    import com.pulumi.ionoscloud.ServerBootDeviceSelection;
    import com.pulumi.ionoscloud.ServerBootDeviceSelectionArgs;
    import com.pulumi.ionoscloud.Volume;
    import com.pulumi.ionoscloud.VolumeArgs;
    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 exampleServer = new Server("exampleServer", ServerArgs.builder()
                .availabilityZone("ZONE_2")
                .imageName("ubuntu:latest")
                .cores(2)
                .ram(2048)
                .imagePassword(random_password.server_image_password().result())
                .datacenterId(ionoscloud_datacenter.example().id())
                .volume(ServerVolumeArgs.builder()
                    .name("Inline Updated")
                    .size(20)
                    .diskType("SSD Standard")
                    .bus("VIRTIO")
                    .availabilityZone("AUTO")
                    .build())
                .nic(ServerNicArgs.builder()
                    .lan(ionoscloud_lan.example().id())
                    .name("Nic Example")
                    .dhcp(true)
                    .firewallActive(true)
                    .build())
                .build());
    
            final var exampleImage = IonoscloudFunctions.getImage(GetImageArgs.builder()
                .name("ubuntu-20.04")
                .location("de/txl")
                .type("CDROM")
                .build());
    
            var exampleServerBootDeviceSelection = new ServerBootDeviceSelection("exampleServerBootDeviceSelection", ServerBootDeviceSelectionArgs.builder()
                .datacenterId(ionoscloud_datacenter.example().id())
                .serverId(exampleServer.inlineVolumeIds().applyValue(inlineVolumeIds -> inlineVolumeIds[0]))
                .bootDeviceId(exampleImage.applyValue(getImageResult -> getImageResult.id()))
                .build());
    
            var exampleVolume = new Volume("exampleVolume", VolumeArgs.builder()
                .serverId(exampleServer.serverId())
                .datacenterId(ionoscloud_datacenter.example().id())
                .size(10)
                .diskType("HDD")
                .availabilityZone("AUTO")
                .imageName("debian:latest")
                .imagePassword(random_password.server_image_password().result())
                .build());
    
        }
    }
    
    resources:
      exampleServerBootDeviceSelection:
        type: ionoscloud:ServerBootDeviceSelection
        properties:
          datacenterId: ${ionoscloud_datacenter.example.id}
          serverId: ${exampleServer.inlineVolumeIds[0]}
          bootDeviceId: ${exampleImage.id}
      exampleServer:
        type: ionoscloud:Server
        properties:
          availabilityZone: ZONE_2
          imageName: ubuntu:latest
          cores: 2
          ram: 2048
          imagePassword: ${random_password.server_image_password.result}
          datacenterId: ${ionoscloud_datacenter.example.id}
          volume:
            name: Inline Updated
            size: 20
            diskType: SSD Standard
            bus: VIRTIO
            availabilityZone: AUTO
          nic:
            lan: ${ionoscloud_lan.example.id}
            name: Nic Example
            dhcp: true
            firewallActive: true
      exampleVolume:
        type: ionoscloud:Volume
        properties:
          serverId: ${exampleServer.serverId}
          datacenterId: ${ionoscloud_datacenter.example.id}
          size: 10
          diskType: HDD
          availabilityZone: AUTO
          imageName: debian:latest
          imagePassword: ${random_password.server_image_password.result}
    variables:
      exampleImage:
        fn::invoke:
          function: ionoscloud:getImage
          arguments:
            name: ubuntu-20.04
            location: de/txl
            type: CDROM
    

    Perform a network boot

    import * as pulumi from "@pulumi/pulumi";
    import * as ionoscloud from "@pulumi/ionoscloud";
    
    const exampleServer = new ionoscloud.Server("exampleServer", {
        availabilityZone: "ZONE_2",
        imageName: "ubuntu:latest",
        cores: 2,
        ram: 2048,
        imagePassword: random_password.server_image_password.result,
        datacenterId: ionoscloud_datacenter.example.id,
        volume: {
            name: "Inline volume",
            size: 20,
            diskType: "SSD Standard",
            bus: "VIRTIO",
            availabilityZone: "AUTO",
        },
        nic: {
            lan: ionoscloud_lan.example.id,
            name: "Nic Example",
            dhcp: true,
            firewallActive: true,
        },
    });
    const exampleServerBootDeviceSelection = new ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection", {
        datacenterId: ionoscloud_datacenter.example.id,
        serverId: exampleServer.inlineVolumeIds[0],
    });
    // boot_device_id = data.ionoscloud_image.example.id   VM will boot in the PXE shell when boot_device_id is omitted
    const exampleVolume = new ionoscloud.Volume("exampleVolume", {
        serverId: exampleServer.serverId,
        datacenterId: ionoscloud_datacenter.example.id,
        size: 10,
        diskType: "HDD",
        availabilityZone: "AUTO",
        imageName: "debian:latest",
        imagePassword: random_password.server_image_password.result,
    });
    const exampleImage = ionoscloud.getImage({
        name: "ubuntu-20.04",
        location: "de/txl",
        type: "CDROM",
    });
    
    import pulumi
    import pulumi_ionoscloud as ionoscloud
    
    example_server = ionoscloud.Server("exampleServer",
        availability_zone="ZONE_2",
        image_name="ubuntu:latest",
        cores=2,
        ram=2048,
        image_password=random_password["server_image_password"]["result"],
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        volume={
            "name": "Inline volume",
            "size": 20,
            "disk_type": "SSD Standard",
            "bus": "VIRTIO",
            "availability_zone": "AUTO",
        },
        nic={
            "lan": ionoscloud_lan["example"]["id"],
            "name": "Nic Example",
            "dhcp": True,
            "firewall_active": True,
        })
    example_server_boot_device_selection = ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection",
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        server_id=example_server.inline_volume_ids[0])
    # boot_device_id = data.ionoscloud_image.example.id   VM will boot in the PXE shell when boot_device_id is omitted
    example_volume = ionoscloud.Volume("exampleVolume",
        server_id=example_server.server_id,
        datacenter_id=ionoscloud_datacenter["example"]["id"],
        size=10,
        disk_type="HDD",
        availability_zone="AUTO",
        image_name="debian:latest",
        image_password=random_password["server_image_password"]["result"])
    example_image = ionoscloud.get_image(name="ubuntu-20.04",
        location="de/txl",
        type="CDROM")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ionoscloud/v6/ionoscloud"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleServer, err := ionoscloud.NewServer(ctx, "exampleServer", &ionoscloud.ServerArgs{
    			AvailabilityZone: pulumi.String("ZONE_2"),
    			ImageName:        pulumi.String("ubuntu:latest"),
    			Cores:            pulumi.Float64(2),
    			Ram:              pulumi.Float64(2048),
    			ImagePassword:    pulumi.Any(random_password.Server_image_password.Result),
    			DatacenterId:     pulumi.Any(ionoscloud_datacenter.Example.Id),
    			Volume: &ionoscloud.ServerVolumeArgs{
    				Name:             pulumi.String("Inline volume"),
    				Size:             pulumi.Float64(20),
    				DiskType:         pulumi.String("SSD Standard"),
    				Bus:              pulumi.String("VIRTIO"),
    				AvailabilityZone: pulumi.String("AUTO"),
    			},
    			Nic: &ionoscloud.ServerNicArgs{
    				Lan:            pulumi.Any(ionoscloud_lan.Example.Id),
    				Name:           pulumi.String("Nic Example"),
    				Dhcp:           pulumi.Bool(true),
    				FirewallActive: pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ionoscloud.NewServerBootDeviceSelection(ctx, "exampleServerBootDeviceSelection", &ionoscloud.ServerBootDeviceSelectionArgs{
    			DatacenterId: pulumi.Any(ionoscloud_datacenter.Example.Id),
    			ServerId: exampleServer.InlineVolumeIds.ApplyT(func(inlineVolumeIds []string) (string, error) {
    				return inlineVolumeIds[0], nil
    			}).(pulumi.StringOutput),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ionoscloud.NewVolume(ctx, "exampleVolume", &ionoscloud.VolumeArgs{
    			ServerId:         exampleServer.ServerId,
    			DatacenterId:     pulumi.Any(ionoscloud_datacenter.Example.Id),
    			Size:             pulumi.Float64(10),
    			DiskType:         pulumi.String("HDD"),
    			AvailabilityZone: pulumi.String("AUTO"),
    			ImageName:        pulumi.String("debian:latest"),
    			ImagePassword:    pulumi.Any(random_password.Server_image_password.Result),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ionoscloud.GetImage(ctx, &ionoscloud.GetImageArgs{
    			Name:     pulumi.StringRef("ubuntu-20.04"),
    			Location: pulumi.StringRef("de/txl"),
    			Type:     pulumi.StringRef("CDROM"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ionoscloud = Pulumi.Ionoscloud;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleServer = new Ionoscloud.Server("exampleServer", new()
        {
            AvailabilityZone = "ZONE_2",
            ImageName = "ubuntu:latest",
            Cores = 2,
            Ram = 2048,
            ImagePassword = random_password.Server_image_password.Result,
            DatacenterId = ionoscloud_datacenter.Example.Id,
            Volume = new Ionoscloud.Inputs.ServerVolumeArgs
            {
                Name = "Inline volume",
                Size = 20,
                DiskType = "SSD Standard",
                Bus = "VIRTIO",
                AvailabilityZone = "AUTO",
            },
            Nic = new Ionoscloud.Inputs.ServerNicArgs
            {
                Lan = ionoscloud_lan.Example.Id,
                Name = "Nic Example",
                Dhcp = true,
                FirewallActive = true,
            },
        });
    
        var exampleServerBootDeviceSelection = new Ionoscloud.ServerBootDeviceSelection("exampleServerBootDeviceSelection", new()
        {
            DatacenterId = ionoscloud_datacenter.Example.Id,
            ServerId = exampleServer.InlineVolumeIds.Apply(inlineVolumeIds => inlineVolumeIds[0]),
        });
    
        // boot_device_id = data.ionoscloud_image.example.id   VM will boot in the PXE shell when boot_device_id is omitted
        var exampleVolume = new Ionoscloud.Volume("exampleVolume", new()
        {
            ServerId = exampleServer.ServerId,
            DatacenterId = ionoscloud_datacenter.Example.Id,
            Size = 10,
            DiskType = "HDD",
            AvailabilityZone = "AUTO",
            ImageName = "debian:latest",
            ImagePassword = random_password.Server_image_password.Result,
        });
    
        var exampleImage = Ionoscloud.GetImage.Invoke(new()
        {
            Name = "ubuntu-20.04",
            Location = "de/txl",
            Type = "CDROM",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ionoscloud.Server;
    import com.pulumi.ionoscloud.ServerArgs;
    import com.pulumi.ionoscloud.inputs.ServerVolumeArgs;
    import com.pulumi.ionoscloud.inputs.ServerNicArgs;
    import com.pulumi.ionoscloud.ServerBootDeviceSelection;
    import com.pulumi.ionoscloud.ServerBootDeviceSelectionArgs;
    import com.pulumi.ionoscloud.Volume;
    import com.pulumi.ionoscloud.VolumeArgs;
    import com.pulumi.ionoscloud.IonoscloudFunctions;
    import com.pulumi.ionoscloud.inputs.GetImageArgs;
    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 exampleServer = new Server("exampleServer", ServerArgs.builder()
                .availabilityZone("ZONE_2")
                .imageName("ubuntu:latest")
                .cores(2)
                .ram(2048)
                .imagePassword(random_password.server_image_password().result())
                .datacenterId(ionoscloud_datacenter.example().id())
                .volume(ServerVolumeArgs.builder()
                    .name("Inline volume")
                    .size(20)
                    .diskType("SSD Standard")
                    .bus("VIRTIO")
                    .availabilityZone("AUTO")
                    .build())
                .nic(ServerNicArgs.builder()
                    .lan(ionoscloud_lan.example().id())
                    .name("Nic Example")
                    .dhcp(true)
                    .firewallActive(true)
                    .build())
                .build());
    
            var exampleServerBootDeviceSelection = new ServerBootDeviceSelection("exampleServerBootDeviceSelection", ServerBootDeviceSelectionArgs.builder()
                .datacenterId(ionoscloud_datacenter.example().id())
                .serverId(exampleServer.inlineVolumeIds().applyValue(inlineVolumeIds -> inlineVolumeIds[0]))
                .build());
    
            // boot_device_id = data.ionoscloud_image.example.id   VM will boot in the PXE shell when boot_device_id is omitted
            var exampleVolume = new Volume("exampleVolume", VolumeArgs.builder()
                .serverId(exampleServer.serverId())
                .datacenterId(ionoscloud_datacenter.example().id())
                .size(10)
                .diskType("HDD")
                .availabilityZone("AUTO")
                .imageName("debian:latest")
                .imagePassword(random_password.server_image_password().result())
                .build());
    
            final var exampleImage = IonoscloudFunctions.getImage(GetImageArgs.builder()
                .name("ubuntu-20.04")
                .location("de/txl")
                .type("CDROM")
                .build());
    
        }
    }
    
    resources:
      exampleServerBootDeviceSelection:
        type: ionoscloud:ServerBootDeviceSelection
        properties:
          datacenterId: ${ionoscloud_datacenter.example.id}
          serverId: ${exampleServer.inlineVolumeIds[0]}
      exampleServer:
        type: ionoscloud:Server
        properties:
          availabilityZone: ZONE_2
          imageName: ubuntu:latest
          cores: 2
          ram: 2048
          imagePassword: ${random_password.server_image_password.result}
          datacenterId: ${ionoscloud_datacenter.example.id}
          volume:
            name: Inline volume
            size: 20
            diskType: SSD Standard
            bus: VIRTIO
            availabilityZone: AUTO
          nic:
            lan: ${ionoscloud_lan.example.id}
            name: Nic Example
            dhcp: true
            firewallActive: true
      exampleVolume:
        type: ionoscloud:Volume
        properties:
          serverId: ${exampleServer.serverId}
          datacenterId: ${ionoscloud_datacenter.example.id}
          size: 10
          diskType: HDD
          availabilityZone: AUTO
          imageName: debian:latest
          imagePassword: ${random_password.server_image_password.result}
    variables:
      exampleImage:
        fn::invoke:
          function: ionoscloud:getImage
          arguments:
            name: ubuntu-20.04
            location: de/txl
            type: CDROM
    

    Create ServerBootDeviceSelection Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new ServerBootDeviceSelection(name: string, args: ServerBootDeviceSelectionArgs, opts?: CustomResourceOptions);
    @overload
    def ServerBootDeviceSelection(resource_name: str,
                                  args: ServerBootDeviceSelectionArgs,
                                  opts: Optional[ResourceOptions] = None)
    
    @overload
    def ServerBootDeviceSelection(resource_name: str,
                                  opts: Optional[ResourceOptions] = None,
                                  datacenter_id: Optional[str] = None,
                                  server_id: Optional[str] = None,
                                  boot_device_id: Optional[str] = None,
                                  server_boot_device_selection_id: Optional[str] = None,
                                  timeouts: Optional[ServerBootDeviceSelectionTimeoutsArgs] = None)
    func NewServerBootDeviceSelection(ctx *Context, name string, args ServerBootDeviceSelectionArgs, opts ...ResourceOption) (*ServerBootDeviceSelection, error)
    public ServerBootDeviceSelection(string name, ServerBootDeviceSelectionArgs args, CustomResourceOptions? opts = null)
    public ServerBootDeviceSelection(String name, ServerBootDeviceSelectionArgs args)
    public ServerBootDeviceSelection(String name, ServerBootDeviceSelectionArgs args, CustomResourceOptions options)
    
    type: ionoscloud:ServerBootDeviceSelection
    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 ServerBootDeviceSelectionArgs
    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 ServerBootDeviceSelectionArgs
    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 ServerBootDeviceSelectionArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ServerBootDeviceSelectionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ServerBootDeviceSelectionArgs
    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 serverBootDeviceSelectionResource = new Ionoscloud.ServerBootDeviceSelection("serverBootDeviceSelectionResource", new()
    {
        DatacenterId = "string",
        ServerId = "string",
        BootDeviceId = "string",
        ServerBootDeviceSelectionId = "string",
        Timeouts = new Ionoscloud.Inputs.ServerBootDeviceSelectionTimeoutsArgs
        {
            Create = "string",
            Default = "string",
            Delete = "string",
            Update = "string",
        },
    });
    
    example, err := ionoscloud.NewServerBootDeviceSelection(ctx, "serverBootDeviceSelectionResource", &ionoscloud.ServerBootDeviceSelectionArgs{
    	DatacenterId:                pulumi.String("string"),
    	ServerId:                    pulumi.String("string"),
    	BootDeviceId:                pulumi.String("string"),
    	ServerBootDeviceSelectionId: pulumi.String("string"),
    	Timeouts: &ionoscloud.ServerBootDeviceSelectionTimeoutsArgs{
    		Create:  pulumi.String("string"),
    		Default: pulumi.String("string"),
    		Delete:  pulumi.String("string"),
    		Update:  pulumi.String("string"),
    	},
    })
    
    var serverBootDeviceSelectionResource = new ServerBootDeviceSelection("serverBootDeviceSelectionResource", ServerBootDeviceSelectionArgs.builder()
        .datacenterId("string")
        .serverId("string")
        .bootDeviceId("string")
        .serverBootDeviceSelectionId("string")
        .timeouts(ServerBootDeviceSelectionTimeoutsArgs.builder()
            .create("string")
            .default_("string")
            .delete("string")
            .update("string")
            .build())
        .build());
    
    server_boot_device_selection_resource = ionoscloud.ServerBootDeviceSelection("serverBootDeviceSelectionResource",
        datacenter_id="string",
        server_id="string",
        boot_device_id="string",
        server_boot_device_selection_id="string",
        timeouts={
            "create": "string",
            "default": "string",
            "delete": "string",
            "update": "string",
        })
    
    const serverBootDeviceSelectionResource = new ionoscloud.ServerBootDeviceSelection("serverBootDeviceSelectionResource", {
        datacenterId: "string",
        serverId: "string",
        bootDeviceId: "string",
        serverBootDeviceSelectionId: "string",
        timeouts: {
            create: "string",
            "default": "string",
            "delete": "string",
            update: "string",
        },
    });
    
    type: ionoscloud:ServerBootDeviceSelection
    properties:
        bootDeviceId: string
        datacenterId: string
        serverBootDeviceSelectionId: string
        serverId: string
        timeouts:
            create: string
            default: string
            delete: string
            update: string
    

    ServerBootDeviceSelection 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 ServerBootDeviceSelection resource accepts the following input properties:

    DatacenterId string
    [string] The ID of a Virtual Data Center.
    ServerId string
    [string] The ID of a server.
    BootDeviceId string
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    ServerBootDeviceSelectionId string
    Timeouts ServerBootDeviceSelectionTimeouts
    DatacenterId string
    [string] The ID of a Virtual Data Center.
    ServerId string
    [string] The ID of a server.
    BootDeviceId string
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    ServerBootDeviceSelectionId string
    Timeouts ServerBootDeviceSelectionTimeoutsArgs
    datacenterId String
    [string] The ID of a Virtual Data Center.
    serverId String
    [string] The ID of a server.
    bootDeviceId String
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    serverBootDeviceSelectionId String
    timeouts ServerBootDeviceSelectionTimeouts
    datacenterId string
    [string] The ID of a Virtual Data Center.
    serverId string
    [string] The ID of a server.
    bootDeviceId string
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    serverBootDeviceSelectionId string
    timeouts ServerBootDeviceSelectionTimeouts
    datacenter_id str
    [string] The ID of a Virtual Data Center.
    server_id str
    [string] The ID of a server.
    boot_device_id str
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    server_boot_device_selection_id str
    timeouts ServerBootDeviceSelectionTimeoutsArgs
    datacenterId String
    [string] The ID of a Virtual Data Center.
    serverId String
    [string] The ID of a server.
    bootDeviceId String
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    serverBootDeviceSelectionId String
    timeouts Property Map

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ServerBootDeviceSelection resource produces the following output properties:

    DefaultBootVolumeId string
    ID of the first attached volume of the Server, which will be the default boot volume.
    Id string
    The provider-assigned unique ID for this managed resource.
    DefaultBootVolumeId string
    ID of the first attached volume of the Server, which will be the default boot volume.
    Id string
    The provider-assigned unique ID for this managed resource.
    defaultBootVolumeId String
    ID of the first attached volume of the Server, which will be the default boot volume.
    id String
    The provider-assigned unique ID for this managed resource.
    defaultBootVolumeId string
    ID of the first attached volume of the Server, which will be the default boot volume.
    id string
    The provider-assigned unique ID for this managed resource.
    default_boot_volume_id str
    ID of the first attached volume of the Server, which will be the default boot volume.
    id str
    The provider-assigned unique ID for this managed resource.
    defaultBootVolumeId String
    ID of the first attached volume of the Server, which will be the default boot volume.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing ServerBootDeviceSelection Resource

    Get an existing ServerBootDeviceSelection 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?: ServerBootDeviceSelectionState, opts?: CustomResourceOptions): ServerBootDeviceSelection
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            boot_device_id: Optional[str] = None,
            datacenter_id: Optional[str] = None,
            default_boot_volume_id: Optional[str] = None,
            server_boot_device_selection_id: Optional[str] = None,
            server_id: Optional[str] = None,
            timeouts: Optional[ServerBootDeviceSelectionTimeoutsArgs] = None) -> ServerBootDeviceSelection
    func GetServerBootDeviceSelection(ctx *Context, name string, id IDInput, state *ServerBootDeviceSelectionState, opts ...ResourceOption) (*ServerBootDeviceSelection, error)
    public static ServerBootDeviceSelection Get(string name, Input<string> id, ServerBootDeviceSelectionState? state, CustomResourceOptions? opts = null)
    public static ServerBootDeviceSelection get(String name, Output<String> id, ServerBootDeviceSelectionState state, CustomResourceOptions options)
    resources:  _:    type: ionoscloud:ServerBootDeviceSelection    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.
    The following state arguments are supported:
    BootDeviceId string
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    DatacenterId string
    [string] The ID of a Virtual Data Center.
    DefaultBootVolumeId string
    ID of the first attached volume of the Server, which will be the default boot volume.
    ServerBootDeviceSelectionId string
    ServerId string
    [string] The ID of a server.
    Timeouts ServerBootDeviceSelectionTimeouts
    BootDeviceId string
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    DatacenterId string
    [string] The ID of a Virtual Data Center.
    DefaultBootVolumeId string
    ID of the first attached volume of the Server, which will be the default boot volume.
    ServerBootDeviceSelectionId string
    ServerId string
    [string] The ID of a server.
    Timeouts ServerBootDeviceSelectionTimeoutsArgs
    bootDeviceId String
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    datacenterId String
    [string] The ID of a Virtual Data Center.
    defaultBootVolumeId String
    ID of the first attached volume of the Server, which will be the default boot volume.
    serverBootDeviceSelectionId String
    serverId String
    [string] The ID of a server.
    timeouts ServerBootDeviceSelectionTimeouts
    bootDeviceId string
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    datacenterId string
    [string] The ID of a Virtual Data Center.
    defaultBootVolumeId string
    ID of the first attached volume of the Server, which will be the default boot volume.
    serverBootDeviceSelectionId string
    serverId string
    [string] The ID of a server.
    timeouts ServerBootDeviceSelectionTimeouts
    boot_device_id str
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    datacenter_id str
    [string] The ID of a Virtual Data Center.
    default_boot_volume_id str
    ID of the first attached volume of the Server, which will be the default boot volume.
    server_boot_device_selection_id str
    server_id str
    [string] The ID of a server.
    timeouts ServerBootDeviceSelectionTimeoutsArgs
    bootDeviceId String
    [string] The ID of a bootable device such as a volume or an image data source. If this field is omitted from the configuration, the VM will be restarted with no primary boot device, and it will enter the PXE shell for network booting. Note: If the network booting process started by the PXE shell fails, the VM will still boot into the image of the attached storage as a fallback. This behavior imitates the "Boot from Network" option from DCD.
    datacenterId String
    [string] The ID of a Virtual Data Center.
    defaultBootVolumeId String
    ID of the first attached volume of the Server, which will be the default boot volume.
    serverBootDeviceSelectionId String
    serverId String
    [string] The ID of a server.
    timeouts Property Map

    Supporting Types

    ServerBootDeviceSelectionTimeouts, ServerBootDeviceSelectionTimeoutsArgs

    Create string
    Default string
    Delete string
    Update string
    Create string
    Default string
    Delete string
    Update string
    create String
    default_ String
    delete String
    update String
    create string
    default string
    delete string
    update string
    create String
    default String
    delete String
    update String

    Package Details

    Repository
    ionoscloud ionos-cloud/terraform-provider-ionoscloud
    License
    Notes
    This Pulumi package is based on the ionoscloud Terraform Provider.
    ionoscloud logo
    ionoscloud 6.7.6 published on Monday, Apr 14, 2025 by ionos-cloud