1. Packages
  2. Ionoscloud
  3. API Docs
  4. compute
  5. BootDeviceSelection
IonosCloud v0.2.2 published on Monday, May 12, 2025 by ionos-cloud

ionoscloud.compute.BootDeviceSelection

Explore with Pulumi AI

ionoscloud logo
IonosCloud v0.2.2 published on Monday, May 12, 2025 by ionos-cloud

    Manages the selection of a boot device for IonosCloud Servers.

    Example Usage

    The boot device of a ionoscloud.compute.Server, ionoscloud.compute.VCPUServer or ionoscloud.compute.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.compute.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 "@ionos-cloud/sdk-pulumi";
    
    const exampleServer = new ionoscloud.compute.Server("example", {
        name: "Server Example",
        availabilityZone: "ZONE_2",
        imageName: "ubuntu:latest",
        cores: 2,
        ram: 2048,
        imagePassword: serverImagePassword.result,
        datacenterId: exampleIonoscloudDatacenter.id,
        volume: {
            name: "Inline Updated",
            size: 20,
            diskType: "SSD Standard",
            bus: "VIRTIO",
            availabilityZone: "AUTO",
        },
        nic: {
            lan: exampleIonoscloudLan.id,
            name: "Nic Example",
            dhcp: true,
            firewallActive: true,
        },
    });
    const exampleVolume = new ionoscloud.compute.Volume("example", {
        serverId: exampleServer.id,
        datacenterId: exampleIonoscloudDatacenter.id,
        name: "External 1",
        size: 10,
        diskType: "HDD",
        availabilityZone: "AUTO",
        imageName: "debian:latest",
        imagePassword: serverImagePassword.result,
    });
    const example = new ionoscloud.compute.BootDeviceSelection("example", {
        datacenterId: exampleIonoscloudDatacenter.id,
        serverId: exampleServer.id,
        bootDeviceId: exampleVolume.id,
    });
    
    import pulumi
    import pulumi_ionoscloud as ionoscloud
    
    example_server = ionoscloud.compute.Server("example",
        name="Server Example",
        availability_zone="ZONE_2",
        image_name="ubuntu:latest",
        cores=2,
        ram=2048,
        image_password=server_image_password["result"],
        datacenter_id=example_ionoscloud_datacenter["id"],
        volume={
            "name": "Inline Updated",
            "size": 20,
            "disk_type": "SSD Standard",
            "bus": "VIRTIO",
            "availability_zone": "AUTO",
        },
        nic={
            "lan": example_ionoscloud_lan["id"],
            "name": "Nic Example",
            "dhcp": True,
            "firewall_active": True,
        })
    example_volume = ionoscloud.compute.Volume("example",
        server_id=example_server.id,
        datacenter_id=example_ionoscloud_datacenter["id"],
        name="External 1",
        size=10,
        disk_type="HDD",
        availability_zone="AUTO",
        image_name="debian:latest",
        image_password=server_image_password["result"])
    example = ionoscloud.compute.BootDeviceSelection("example",
        datacenter_id=example_ionoscloud_datacenter["id"],
        server_id=example_server.id,
        boot_device_id=example_volume.id)
    
    package main
    
    import (
    	"github.com/ionos-cloud/pulumi-ionoscloud/sdk/go/ionoscloud/compute"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleServer, err := compute.NewServer(ctx, "example", &compute.ServerArgs{
    			Name:             pulumi.String("Server Example"),
    			AvailabilityZone: pulumi.String("ZONE_2"),
    			ImageName:        pulumi.String("ubuntu:latest"),
    			Cores:            pulumi.Int(2),
    			Ram:              pulumi.Int(2048),
    			ImagePassword:    pulumi.Any(serverImagePassword.Result),
    			DatacenterId:     pulumi.Any(exampleIonoscloudDatacenter.Id),
    			Volume: &compute.ServerVolumeArgs{
    				Name:             pulumi.String("Inline Updated"),
    				Size:             pulumi.Int(20),
    				DiskType:         pulumi.String("SSD Standard"),
    				Bus:              pulumi.String("VIRTIO"),
    				AvailabilityZone: pulumi.String("AUTO"),
    			},
    			Nic: &compute.ServerNicArgs{
    				Lan:            pulumi.Any(exampleIonoscloudLan.Id),
    				Name:           pulumi.String("Nic Example"),
    				Dhcp:           pulumi.Bool(true),
    				FirewallActive: pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		exampleVolume, err := compute.NewVolume(ctx, "example", &compute.VolumeArgs{
    			ServerId:         exampleServer.ID(),
    			DatacenterId:     pulumi.Any(exampleIonoscloudDatacenter.Id),
    			Name:             pulumi.String("External 1"),
    			Size:             pulumi.Int(10),
    			DiskType:         pulumi.String("HDD"),
    			AvailabilityZone: pulumi.String("AUTO"),
    			ImageName:        pulumi.String("debian:latest"),
    			ImagePassword:    pulumi.Any(serverImagePassword.Result),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewBootDeviceSelection(ctx, "example", &compute.BootDeviceSelectionArgs{
    			DatacenterId: pulumi.Any(exampleIonoscloudDatacenter.Id),
    			ServerId:     exampleServer.ID(),
    			BootDeviceId: exampleVolume.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ionoscloud = Ionoscloud.Pulumi.Ionoscloud;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleServer = new Ionoscloud.Compute.Server("example", new()
        {
            Name = "Server Example",
            AvailabilityZone = "ZONE_2",
            ImageName = "ubuntu:latest",
            Cores = 2,
            Ram = 2048,
            ImagePassword = serverImagePassword.Result,
            DatacenterId = exampleIonoscloudDatacenter.Id,
            Volume = new Ionoscloud.Compute.Inputs.ServerVolumeArgs
            {
                Name = "Inline Updated",
                Size = 20,
                DiskType = "SSD Standard",
                Bus = "VIRTIO",
                AvailabilityZone = "AUTO",
            },
            Nic = new Ionoscloud.Compute.Inputs.ServerNicArgs
            {
                Lan = exampleIonoscloudLan.Id,
                Name = "Nic Example",
                Dhcp = true,
                FirewallActive = true,
            },
        });
    
        var exampleVolume = new Ionoscloud.Compute.Volume("example", new()
        {
            ServerId = exampleServer.Id,
            DatacenterId = exampleIonoscloudDatacenter.Id,
            Name = "External 1",
            Size = 10,
            DiskType = "HDD",
            AvailabilityZone = "AUTO",
            ImageName = "debian:latest",
            ImagePassword = serverImagePassword.Result,
        });
    
        var example = new Ionoscloud.Compute.BootDeviceSelection("example", new()
        {
            DatacenterId = exampleIonoscloudDatacenter.Id,
            ServerId = exampleServer.Id,
            BootDeviceId = exampleVolume.Id,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ionoscloud.compute.Server;
    import com.pulumi.ionoscloud.compute.ServerArgs;
    import com.pulumi.ionoscloud.compute.inputs.ServerVolumeArgs;
    import com.pulumi.ionoscloud.compute.inputs.ServerNicArgs;
    import com.pulumi.ionoscloud.compute.Volume;
    import com.pulumi.ionoscloud.compute.VolumeArgs;
    import com.pulumi.ionoscloud.compute.BootDeviceSelection;
    import com.pulumi.ionoscloud.compute.BootDeviceSelectionArgs;
    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()
                .name("Server Example")
                .availabilityZone("ZONE_2")
                .imageName("ubuntu:latest")
                .cores(2)
                .ram(2048)
                .imagePassword(serverImagePassword.result())
                .datacenterId(exampleIonoscloudDatacenter.id())
                .volume(ServerVolumeArgs.builder()
                    .name("Inline Updated")
                    .size(20)
                    .diskType("SSD Standard")
                    .bus("VIRTIO")
                    .availabilityZone("AUTO")
                    .build())
                .nic(ServerNicArgs.builder()
                    .lan(exampleIonoscloudLan.id())
                    .name("Nic Example")
                    .dhcp(true)
                    .firewallActive(true)
                    .build())
                .build());
    
            var exampleVolume = new Volume("exampleVolume", VolumeArgs.builder()
                .serverId(exampleServer.id())
                .datacenterId(exampleIonoscloudDatacenter.id())
                .name("External 1")
                .size(10)
                .diskType("HDD")
                .availabilityZone("AUTO")
                .imageName("debian:latest")
                .imagePassword(serverImagePassword.result())
                .build());
    
            var example = new BootDeviceSelection("example", BootDeviceSelectionArgs.builder()
                .datacenterId(exampleIonoscloudDatacenter.id())
                .serverId(exampleServer.id())
                .bootDeviceId(exampleVolume.id())
                .build());
    
        }
    }
    
    resources:
      example:
        type: ionoscloud:compute:BootDeviceSelection
        properties:
          datacenterId: ${exampleIonoscloudDatacenter.id}
          serverId: ${exampleServer.id}
          bootDeviceId: ${exampleVolume.id}
      exampleServer:
        type: ionoscloud:compute:Server
        name: example
        properties:
          name: Server Example
          availabilityZone: ZONE_2
          imageName: ubuntu:latest
          cores: 2
          ram: 2048
          imagePassword: ${serverImagePassword.result}
          datacenterId: ${exampleIonoscloudDatacenter.id}
          volume:
            name: Inline Updated
            size: 20
            diskType: SSD Standard
            bus: VIRTIO
            availabilityZone: AUTO
          nic:
            lan: ${exampleIonoscloudLan.id}
            name: Nic Example
            dhcp: true
            firewallActive: true
      exampleVolume:
        type: ionoscloud:compute:Volume
        name: example
        properties:
          serverId: ${exampleServer.id}
          datacenterId: ${exampleIonoscloudDatacenter.id}
          name: External 1
          size: 10
          diskType: HDD
          availabilityZone: AUTO
          imageName: debian:latest
          imagePassword: ${serverImagePassword.result}
    

    Select an inline volume again

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

    Select a CDROM image

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

    Create BootDeviceSelection Resource

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

    Constructor syntax

    new BootDeviceSelection(name: string, args: BootDeviceSelectionArgs, opts?: CustomResourceOptions);
    @overload
    def BootDeviceSelection(resource_name: str,
                            args: BootDeviceSelectionArgs,
                            opts: Optional[ResourceOptions] = None)
    
    @overload
    def BootDeviceSelection(resource_name: str,
                            opts: Optional[ResourceOptions] = None,
                            datacenter_id: Optional[str] = None,
                            server_id: Optional[str] = None,
                            boot_device_id: Optional[str] = None)
    func NewBootDeviceSelection(ctx *Context, name string, args BootDeviceSelectionArgs, opts ...ResourceOption) (*BootDeviceSelection, error)
    public BootDeviceSelection(string name, BootDeviceSelectionArgs args, CustomResourceOptions? opts = null)
    public BootDeviceSelection(String name, BootDeviceSelectionArgs args)
    public BootDeviceSelection(String name, BootDeviceSelectionArgs args, CustomResourceOptions options)
    
    type: ionoscloud:compute:BootDeviceSelection
    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 BootDeviceSelectionArgs
    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 BootDeviceSelectionArgs
    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 BootDeviceSelectionArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args BootDeviceSelectionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args BootDeviceSelectionArgs
    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 bootDeviceSelectionResource = new Ionoscloud.Compute.BootDeviceSelection("bootDeviceSelectionResource", new()
    {
        DatacenterId = "string",
        ServerId = "string",
        BootDeviceId = "string",
    });
    
    example, err := compute.NewBootDeviceSelection(ctx, "bootDeviceSelectionResource", &compute.BootDeviceSelectionArgs{
    	DatacenterId: pulumi.String("string"),
    	ServerId:     pulumi.String("string"),
    	BootDeviceId: pulumi.String("string"),
    })
    
    var bootDeviceSelectionResource = new BootDeviceSelection("bootDeviceSelectionResource", BootDeviceSelectionArgs.builder()
        .datacenterId("string")
        .serverId("string")
        .bootDeviceId("string")
        .build());
    
    boot_device_selection_resource = ionoscloud.compute.BootDeviceSelection("bootDeviceSelectionResource",
        datacenter_id="string",
        server_id="string",
        boot_device_id="string")
    
    const bootDeviceSelectionResource = new ionoscloud.compute.BootDeviceSelection("bootDeviceSelectionResource", {
        datacenterId: "string",
        serverId: "string",
        bootDeviceId: "string",
    });
    
    type: ionoscloud:compute:BootDeviceSelection
    properties:
        bootDeviceId: string
        datacenterId: string
        serverId: string
    

    BootDeviceSelection 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 BootDeviceSelection 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.
    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.
    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.
    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.
    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.
    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.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the BootDeviceSelection 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 BootDeviceSelection Resource

    Get an existing BootDeviceSelection 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?: BootDeviceSelectionState, opts?: CustomResourceOptions): BootDeviceSelection
    @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_id: Optional[str] = None) -> BootDeviceSelection
    func GetBootDeviceSelection(ctx *Context, name string, id IDInput, state *BootDeviceSelectionState, opts ...ResourceOption) (*BootDeviceSelection, error)
    public static BootDeviceSelection Get(string name, Input<string> id, BootDeviceSelectionState? state, CustomResourceOptions? opts = null)
    public static BootDeviceSelection get(String name, Output<String> id, BootDeviceSelectionState state, CustomResourceOptions options)
    resources:  _:    type: ionoscloud:compute:BootDeviceSelection    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.
    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.
    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.
    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.
    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.
    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.
    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.
    serverId string
    [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.
    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_id str
    [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.
    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.
    serverId String
    [string] The ID of a server.

    Package Details

    Repository
    ionoscloud ionos-cloud/pulumi-ionoscloud
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the ionoscloud Terraform Provider.
    ionoscloud logo
    IonosCloud v0.2.2 published on Monday, May 12, 2025 by ionos-cloud