1. Registry
  2. Packages
  3. Scaleway
  4. API Docs
  5. instance
  6. Template
Viewing docs for Scaleway v1.55.1
published on Wednesday, Sep 9, 2026 by pulumiverse
scaleway logo
Viewing docs for Scaleway v1.55.1
published on Wednesday, Sep 9, 2026 by pulumiverse

    Creates and manages Scaleway Instance Templates. For more information, see the API documentation.

    Example Usage

    Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = new scaleway.instance.Template("main", {
        name: "instance-template-basic",
        tags: [
            "terraform-examples",
            "scaleway_instance_template",
            "basic",
        ],
        serverType: "PRO2-M",
        serverTags: ["created-from-template"],
        publicIpv4Count: 1,
        publicIpv6Count: 3,
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main = scaleway.instance.Template("main",
        name="instance-template-basic",
        tags=[
            "terraform-examples",
            "scaleway_instance_template",
            "basic",
        ],
        server_type="PRO2-M",
        server_tags=["created-from-template"],
        public_ipv4_count=1,
        public_ipv6_count=3)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := instance.NewTemplate(ctx, "main", &instance.TemplateArgs{
    			Name: pulumi.String("instance-template-basic"),
    			Tags: pulumi.StringArray{
    				pulumi.String("terraform-examples"),
    				pulumi.String("scaleway_instance_template"),
    				pulumi.String("basic"),
    			},
    			ServerType: pulumi.String("PRO2-M"),
    			ServerTags: pulumi.StringArray{
    				pulumi.String("created-from-template"),
    			},
    			PublicIpv4Count: pulumi.Int(1),
    			PublicIpv6Count: pulumi.Int(3),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var main = new Scaleway.Instance.Template("main", new()
        {
            Name = "instance-template-basic",
            Tags = new[]
            {
                "terraform-examples",
                "scaleway_instance_template",
                "basic",
            },
            ServerType = "PRO2-M",
            ServerTags = new[]
            {
                "created-from-template",
            },
            PublicIpv4Count = 1,
            PublicIpv6Count = 3,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.instance.Template;
    import com.pulumi.scaleway.instance.TemplateArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 main = new Template("main", TemplateArgs.builder()
                .name("instance-template-basic")
                .tags(            
                    "terraform-examples",
                    "scaleway_instance_template",
                    "basic")
                .serverType("PRO2-M")
                .serverTags("created-from-template")
                .publicIpv4Count(1)
                .publicIpv6Count(3)
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:instance:Template
        properties:
          name: instance-template-basic
          tags:
            - terraform-examples
            - scaleway_instance_template
            - basic
          serverType: PRO2-M
          serverTags:
            - created-from-template
          publicIpv4Count: 1
          publicIpv6Count: 3
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    resource "scaleway_instance_template" "main" {
      name              = "instance-template-basic"
      tags              = ["terraform-examples", "scaleway_instance_template", "basic"]
      server_type       = "PRO2-M"
      server_tags       = ["created-from-template"]
      public_ipv4_count = 1
      public_ipv6_count = 3
    }
    

    With volumes

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const sbs = new scaleway.block.Volume("sbs", {
        sizeInGb: 15,
        iops: 5000,
    });
    const snap = new scaleway.block.Snapshot("snap", {volumeId: sbs.id});
    const main = new scaleway.instance.Template("main", {
        name: "instance-template-with-volumes",
        serverType: "GP1-L",
        volumes: [
            {
                volumeType: "l_ssd",
                imageLabel: "debian_trixie",
                sizeInGb: 25,
                tags: ["local"],
                name: "root-volume",
            },
            {
                volumeType: "sbs",
                baseSnapshotId: snap.id,
                sizeInGb: 30,
                perfIops: 15000,
            },
        ],
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    sbs = scaleway.block.Volume("sbs",
        size_in_gb=15,
        iops=5000)
    snap = scaleway.block.Snapshot("snap", volume_id=sbs.id)
    main = scaleway.instance.Template("main",
        name="instance-template-with-volumes",
        server_type="GP1-L",
        volumes=[
            {
                "volume_type": "l_ssd",
                "image_label": "debian_trixie",
                "size_in_gb": 25,
                "tags": ["local"],
                "name": "root-volume",
            },
            {
                "volume_type": "sbs",
                "base_snapshot_id": snap.id,
                "size_in_gb": 30,
                "perf_iops": 15000,
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/block"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		sbs, err := block.NewVolume(ctx, "sbs", &block.VolumeArgs{
    			SizeInGb: pulumi.Int(15),
    			Iops:     pulumi.Int(5000),
    		})
    		if err != nil {
    			return err
    		}
    		snap, err := block.NewSnapshot(ctx, "snap", &block.SnapshotArgs{
    			VolumeId: sbs.ID().ToIDOutput().ToStringOutput(),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = instance.NewTemplate(ctx, "main", &instance.TemplateArgs{
    			Name:       pulumi.String("instance-template-with-volumes"),
    			ServerType: pulumi.String("GP1-L"),
    			Volumes: instance.TemplateVolumeArray{
    				&instance.TemplateVolumeArgs{
    					VolumeType: pulumi.String("l_ssd"),
    					ImageLabel: pulumi.String("debian_trixie"),
    					SizeInGb:   pulumi.Int(25),
    					Tags: pulumi.StringArray{
    						pulumi.String("local"),
    					},
    					Name: pulumi.String("root-volume"),
    				},
    				&instance.TemplateVolumeArgs{
    					VolumeType:     pulumi.String("sbs"),
    					BaseSnapshotId: snap.ID().ToIDOutput().ToStringOutput(),
    					SizeInGb:       pulumi.Int(30),
    					PerfIops:       pulumi.Int(15000),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var sbs = new Scaleway.Block.Volume("sbs", new()
        {
            SizeInGb = 15,
            Iops = 5000,
        });
    
        var snap = new Scaleway.Block.Snapshot("snap", new()
        {
            VolumeId = sbs.Id,
        });
    
        var main = new Scaleway.Instance.Template("main", new()
        {
            Name = "instance-template-with-volumes",
            ServerType = "GP1-L",
            Volumes = new[]
            {
                new Scaleway.Instance.Inputs.TemplateVolumeArgs
                {
                    VolumeType = "l_ssd",
                    ImageLabel = "debian_trixie",
                    SizeInGb = 25,
                    Tags = new[]
                    {
                        "local",
                    },
                    Name = "root-volume",
                },
                new Scaleway.Instance.Inputs.TemplateVolumeArgs
                {
                    VolumeType = "sbs",
                    BaseSnapshotId = snap.Id,
                    SizeInGb = 30,
                    PerfIops = 15000,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.block.Volume;
    import com.pulumi.scaleway.block.VolumeArgs;
    import com.pulumi.scaleway.block.Snapshot;
    import com.pulumi.scaleway.block.SnapshotArgs;
    import com.pulumi.scaleway.instance.Template;
    import com.pulumi.scaleway.instance.TemplateArgs;
    import com.pulumi.scaleway.instance.inputs.TemplateVolumeArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 sbs = new Volume("sbs", VolumeArgs.builder()
                .sizeInGb(15)
                .iops(5000)
                .build());
    
            var snap = new Snapshot("snap", SnapshotArgs.builder()
                .volumeId(sbs.id())
                .build());
    
            var main = new Template("main", TemplateArgs.builder()
                .name("instance-template-with-volumes")
                .serverType("GP1-L")
                .volumes(            
                    TemplateVolumeArgs.builder()
                        .volumeType("l_ssd")
                        .imageLabel("debian_trixie")
                        .sizeInGb(25)
                        .tags("local")
                        .name("root-volume")
                        .build(),
                    TemplateVolumeArgs.builder()
                        .volumeType("sbs")
                        .baseSnapshotId(snap.id())
                        .sizeInGb(30)
                        .perfIops(15000)
                        .build())
                .build());
    
        }
    }
    
    resources:
      sbs:
        type: scaleway:block:Volume
        properties:
          sizeInGb: 15
          iops: 5000
      snap:
        type: scaleway:block:Snapshot
        properties:
          volumeId: ${sbs.id}
      main:
        type: scaleway:instance:Template
        properties:
          name: instance-template-with-volumes
          serverType: GP1-L
          volumes:
            - volumeType: l_ssd
              imageLabel: debian_trixie
              sizeInGb: 25
              tags:
                - local
              name: root-volume
            - volumeType: sbs
              baseSnapshotId: ${snap.id}
              sizeInGb: 30
              perfIops: 15000
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    resource "scaleway_block_volume" "sbs" {
      size_in_gb = 15
      iops       = 5000
    }
    resource "scaleway_block_snapshot" "snap" {
      volume_id = scaleway_block_volume.sbs.id
    }
    resource "scaleway_instance_template" "main" {
      name        = "instance-template-with-volumes"
      server_type = "GP1-L"
      volumes {
        volume_type = "l_ssd"
        image_label = "debian_trixie"
        size_in_gb  = 25
        tags        = ["local"]
        name        = "root-volume"
      }
      volumes {
        volume_type      = "sbs"
        base_snapshot_id = scaleway_block_snapshot.snap.id
        size_in_gb       = 30
        perf_iops        = 15000
      }
    }
    

    With scratch storage

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = new scaleway.instance.Template("main", {
        name: "instance-template-with-scratch-storage",
        serverType: "L40S-1-48G",
        zone: "fr-par-2",
        volumes: [
            {
                volumeType: "sbs",
                imageLabel: "ubuntu_noble_gpu_os_13_nvidia",
                sizeInGb: 30,
                perfIops: 15000,
            },
            {
                volumeType: "scratch",
                sizeInGb: 300,
            },
        ],
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main = scaleway.instance.Template("main",
        name="instance-template-with-scratch-storage",
        server_type="L40S-1-48G",
        zone="fr-par-2",
        volumes=[
            {
                "volume_type": "sbs",
                "image_label": "ubuntu_noble_gpu_os_13_nvidia",
                "size_in_gb": 30,
                "perf_iops": 15000,
            },
            {
                "volume_type": "scratch",
                "size_in_gb": 300,
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := instance.NewTemplate(ctx, "main", &instance.TemplateArgs{
    			Name:       pulumi.String("instance-template-with-scratch-storage"),
    			ServerType: pulumi.String("L40S-1-48G"),
    			Zone:       pulumi.String("fr-par-2"),
    			Volumes: instance.TemplateVolumeArray{
    				&instance.TemplateVolumeArgs{
    					VolumeType: pulumi.String("sbs"),
    					ImageLabel: pulumi.String("ubuntu_noble_gpu_os_13_nvidia"),
    					SizeInGb:   pulumi.Int(30),
    					PerfIops:   pulumi.Int(15000),
    				},
    				&instance.TemplateVolumeArgs{
    					VolumeType: pulumi.String("scratch"),
    					SizeInGb:   pulumi.Int(300),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var main = new Scaleway.Instance.Template("main", new()
        {
            Name = "instance-template-with-scratch-storage",
            ServerType = "L40S-1-48G",
            Zone = "fr-par-2",
            Volumes = new[]
            {
                new Scaleway.Instance.Inputs.TemplateVolumeArgs
                {
                    VolumeType = "sbs",
                    ImageLabel = "ubuntu_noble_gpu_os_13_nvidia",
                    SizeInGb = 30,
                    PerfIops = 15000,
                },
                new Scaleway.Instance.Inputs.TemplateVolumeArgs
                {
                    VolumeType = "scratch",
                    SizeInGb = 300,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.instance.Template;
    import com.pulumi.scaleway.instance.TemplateArgs;
    import com.pulumi.scaleway.instance.inputs.TemplateVolumeArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 main = new Template("main", TemplateArgs.builder()
                .name("instance-template-with-scratch-storage")
                .serverType("L40S-1-48G")
                .zone("fr-par-2")
                .volumes(            
                    TemplateVolumeArgs.builder()
                        .volumeType("sbs")
                        .imageLabel("ubuntu_noble_gpu_os_13_nvidia")
                        .sizeInGb(30)
                        .perfIops(15000)
                        .build(),
                    TemplateVolumeArgs.builder()
                        .volumeType("scratch")
                        .sizeInGb(300)
                        .build())
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:instance:Template
        properties:
          name: instance-template-with-scratch-storage
          serverType: L40S-1-48G
          zone: fr-par-2
          volumes:
            - volumeType: sbs
              imageLabel: ubuntu_noble_gpu_os_13_nvidia
              sizeInGb: 30
              perfIops: 15000
            - volumeType: scratch
              sizeInGb: 300
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    resource "scaleway_instance_template" "main" {
      name        = "instance-template-with-scratch-storage"
      server_type = "L40S-1-48G"
      zone        = "fr-par-2"
      volumes {
        volume_type = "sbs"
        image_label = "ubuntu_noble_gpu_os_13_nvidia"
        size_in_gb  = 30
        perf_iops   = 15000
      }
      volumes {
        volume_type = "scratch"
        size_in_gb  = 300
      }
    }
    

    Windows

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    import * as std from "@pulumi/std";
    
    const key = new scaleway.iam.SshKey("key", {
        name: "instance-tmpl-admin-ssh-key",
        publicKey: std.file({
            input: "~/.ssh/id_rsa.pub",
        }).then(invoke => invoke.result),
    });
    const main = new scaleway.instance.Template("main", {
        name: "instance-template-windows",
        serverType: "POP2-4C-16G-WIN",
        windowsRdpSshKeyId: key.id,
    });
    
    import pulumi
    import pulumi_std as std
    import pulumiverse_scaleway as scaleway
    
    key = scaleway.iam.SshKey("key",
        name="instance-tmpl-admin-ssh-key",
        public_key=std.file(input="~/.ssh/id_rsa.pub").result)
    main = scaleway.instance.Template("main",
        name="instance-template-windows",
        server_type="POP2-4C-16G-WIN",
        windows_rdp_ssh_key_id=key.id)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-std/sdk/go/std"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		invokeFile, err := std.File(ctx, &std.FileArgs{
    			Input: "~/.ssh/id_rsa.pub",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		key, err := iam.NewSshKey(ctx, "key", &iam.SshKeyArgs{
    			Name:      pulumi.String("instance-tmpl-admin-ssh-key"),
    			PublicKey: pulumi.String(invokeFile.Result),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = instance.NewTemplate(ctx, "main", &instance.TemplateArgs{
    			Name:               pulumi.String("instance-template-windows"),
    			ServerType:         pulumi.String("POP2-4C-16G-WIN"),
    			WindowsRdpSshKeyId: key.ID().ToIDOutput().ToStringOutput(),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    using Std = Pulumi.Std;
    
    return await Deployment.RunAsync(() => 
    {
        var key = new Scaleway.Iam.SshKey("key", new()
        {
            Name = "instance-tmpl-admin-ssh-key",
            PublicKey = Std.File.Invoke(new()
            {
                Input = "~/.ssh/id_rsa.pub",
            }).Apply(invoke => invoke.Result),
        });
    
        var main = new Scaleway.Instance.Template("main", new()
        {
            Name = "instance-template-windows",
            ServerType = "POP2-4C-16G-WIN",
            WindowsRdpSshKeyId = key.Id,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.iam.SshKey;
    import com.pulumi.scaleway.iam.SshKeyArgs;
    import com.pulumi.std.StdFunctions;
    import com.pulumi.std.inputs.FileArgs;
    import com.pulumi.scaleway.instance.Template;
    import com.pulumi.scaleway.instance.TemplateArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 key = new SshKey("key", SshKeyArgs.builder()
                .name("instance-tmpl-admin-ssh-key")
                .publicKey(StdFunctions.file(FileArgs.builder()
                    .input("~/.ssh/id_rsa.pub")
                    .build()).result())
                .build());
    
            var main = new Template("main", TemplateArgs.builder()
                .name("instance-template-windows")
                .serverType("POP2-4C-16G-WIN")
                .windowsRdpSshKeyId(key.id())
                .build());
    
        }
    }
    
    resources:
      key:
        type: scaleway:iam:SshKey
        properties:
          name: instance-tmpl-admin-ssh-key
          publicKey:
            fn::invoke:
              function: std:file
              arguments:
                input: ~/.ssh/id_rsa.pub
              return: result
      main:
        type: scaleway:instance:Template
        properties:
          name: instance-template-windows
          serverType: POP2-4C-16G-WIN
          windowsRdpSshKeyId: ${key.id}
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
        std = {
          source = "pulumi/std"
        }
      }
    }
    
    resource "scaleway_iam_sshkey" "key" {
      name       = "instance-tmpl-admin-ssh-key"
      public_key = file("~/.ssh/id_rsa.pub")
    }
    resource "scaleway_instance_template" "main" {
      name                   = "instance-template-windows"
      server_type            = "POP2-4C-16G-WIN"
      windows_rdp_ssh_key_id = scaleway_iam_sshkey.key.id
    }
    

    With additional resources

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    // Security Group
    const sg = new scaleway.instance.SecurityGroup("sg", {});
    // Placement Group
    const pg = new scaleway.instance.PlacementGroup("pg", {});
    // VPC + Private Network
    const vpc = new scaleway.network.Vpc("vpc", {});
    const pn = new scaleway.network.PrivateNetwork("pn", {vpcId: vpc.id});
    // Filesystem
    const fs = new scaleway.FileFilesystem("fs", {sizeInGb: 25});
    const main = new scaleway.instance.Template("main", {
        name: "instance-template-additional-resources",
        serverType: "PRO2-M",
        securityGroupId: sg.id,
        placementGroupId: pg.id,
        privateNetworks: [pn.id],
        filesystemIds: [fs.id],
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    # Security Group
    sg = scaleway.instance.SecurityGroup("sg")
    # Placement Group
    pg = scaleway.instance.PlacementGroup("pg")
    # VPC + Private Network
    vpc = scaleway.network.Vpc("vpc")
    pn = scaleway.network.PrivateNetwork("pn", vpc_id=vpc.id)
    # Filesystem
    fs = scaleway.FileFilesystem("fs", size_in_gb=25)
    main = scaleway.instance.Template("main",
        name="instance-template-additional-resources",
        server_type="PRO2-M",
        security_group_id=sg.id,
        placement_group_id=pg.id,
        private_networks=[pn.id],
        filesystem_ids=[fs.id])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Security Group
    		sg, err := instance.NewSecurityGroup(ctx, "sg", nil)
    		if err != nil {
    			return err
    		}
    		// Placement Group
    		pg, err := instance.NewPlacementGroup(ctx, "pg", nil)
    		if err != nil {
    			return err
    		}
    		// VPC + Private Network
    		vpc, err := network.NewVpc(ctx, "vpc", nil)
    		if err != nil {
    			return err
    		}
    		pn, err := network.NewPrivateNetwork(ctx, "pn", &network.PrivateNetworkArgs{
    			VpcId: vpc.ID().ToIDOutput().ToStringOutput(),
    		})
    		if err != nil {
    			return err
    		}
    		// Filesystem
    		fs, err := scaleway.NewFileFilesystem(ctx, "fs", &scaleway.FileFilesystemArgs{
    			SizeInGb: pulumi.Int(25),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = instance.NewTemplate(ctx, "main", &instance.TemplateArgs{
    			Name:             pulumi.String("instance-template-additional-resources"),
    			ServerType:       pulumi.String("PRO2-M"),
    			SecurityGroupId:  sg.ID().ToIDOutput().ToStringOutput(),
    			PlacementGroupId: pg.ID().ToIDOutput().ToStringOutput(),
    			PrivateNetworks: pulumi.StringArray{
    				pn.ID().ToIDOutput().ToStringOutput(),
    			},
    			FilesystemIds: pulumi.StringArray{
    				fs.ID().ToIDOutput().ToStringOutput(),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        // Security Group
        var sg = new Scaleway.Instance.SecurityGroup("sg");
    
        // Placement Group
        var pg = new Scaleway.Instance.PlacementGroup("pg");
    
        // VPC + Private Network
        var vpc = new Scaleway.Network.Vpc("vpc");
    
        var pn = new Scaleway.Network.PrivateNetwork("pn", new()
        {
            VpcId = vpc.Id,
        });
    
        // Filesystem
        var fs = new Scaleway.FileFilesystem("fs", new()
        {
            SizeInGb = 25,
        });
    
        var main = new Scaleway.Instance.Template("main", new()
        {
            Name = "instance-template-additional-resources",
            ServerType = "PRO2-M",
            SecurityGroupId = sg.Id,
            PlacementGroupId = pg.Id,
            PrivateNetworks = new[]
            {
                pn.Id,
            },
            FilesystemIds = new[]
            {
                fs.Id,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.instance.SecurityGroup;
    import com.pulumi.scaleway.instance.PlacementGroup;
    import com.pulumi.scaleway.network.Vpc;
    import com.pulumi.scaleway.network.PrivateNetwork;
    import com.pulumi.scaleway.network.PrivateNetworkArgs;
    import com.pulumi.scaleway.FileFilesystem;
    import com.pulumi.scaleway.FileFilesystemArgs;
    import com.pulumi.scaleway.instance.Template;
    import com.pulumi.scaleway.instance.TemplateArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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) {
            // Security Group
            var sg = new SecurityGroup("sg");
    
            // Placement Group
            var pg = new PlacementGroup("pg");
    
            // VPC + Private Network
            var vpc = new Vpc("vpc");
    
            var pn = new PrivateNetwork("pn", PrivateNetworkArgs.builder()
                .vpcId(vpc.id())
                .build());
    
            // Filesystem
            var fs = new FileFilesystem("fs", FileFilesystemArgs.builder()
                .sizeInGb(25)
                .build());
    
            var main = new Template("main", TemplateArgs.builder()
                .name("instance-template-additional-resources")
                .serverType("PRO2-M")
                .securityGroupId(sg.id())
                .placementGroupId(pg.id())
                .privateNetworks(pn.id())
                .filesystemIds(fs.id())
                .build());
    
        }
    }
    
    resources:
      # Security Group
      sg:
        type: scaleway:instance:SecurityGroup
      # Placement Group
      pg:
        type: scaleway:instance:PlacementGroup
      # VPC + Private Network
      vpc:
        type: scaleway:network:Vpc
      pn:
        type: scaleway:network:PrivateNetwork
        properties:
          vpcId: ${vpc.id}
      # Filesystem
      fs:
        type: scaleway:FileFilesystem
        properties:
          sizeInGb: 25
      main:
        type: scaleway:instance:Template
        properties:
          name: instance-template-additional-resources
          serverType: PRO2-M
          securityGroupId: ${sg.id}
          placementGroupId: ${pg.id}
          privateNetworks:
            - ${pn.id}
          filesystemIds:
            - ${fs.id}
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    # Security Group
    resource "scaleway_instance_securitygroup" "sg" {
    }
    # Placement Group
    resource "scaleway_instance_placementgroup" "pg" {
    }
    # VPC + Private Network
    resource "scaleway_network_vpc" "vpc" {
    }
    resource "scaleway_network_privatenetwork" "pn" {
      vpc_id = scaleway_network_vpc.vpc.id
    }
    # Filesystem
    resource "scaleway_filefilesystem" "fs" {
      size_in_gb = 25
    }
    resource "scaleway_instance_template" "main" {
      name               = "instance-template-additional-resources"
      server_type        = "PRO2-M"
      security_group_id  = scaleway_instance_securitygroup.sg.id
      placement_group_id = scaleway_instance_placementgroup.pg.id
      private_networks   = [scaleway_network_privatenetwork.pn.id]
      filesystem_ids     = [scaleway_filefilesystem.fs.id]
    }
    

    Create Template Resource

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

    Constructor syntax

    new Template(name: string, args: TemplateArgs, opts?: CustomResourceOptions);
    @overload
    def Template(resource_name: str,
                 args: TemplateArgs,
                 opts: Optional[ResourceOptions] = None)
    
    @overload
    def Template(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 server_type: Optional[str] = None,
                 private_networks: Optional[Sequence[str]] = None,
                 placement_group_id: Optional[str] = None,
                 filesystem_ids: Optional[Sequence[str]] = None,
                 project_id: Optional[str] = None,
                 public_ipv4_count: Optional[int] = None,
                 public_ipv6_count: Optional[int] = None,
                 security_group_id: Optional[str] = None,
                 server_tags: Optional[Sequence[str]] = None,
                 name: Optional[str] = None,
                 tags: Optional[Sequence[str]] = None,
                 volumes: Optional[Sequence[TemplateVolumeArgs]] = None,
                 windows_rdp_ssh_key_id: Optional[str] = None,
                 zone: Optional[str] = None)
    func NewTemplate(ctx *Context, name string, args TemplateArgs, opts ...ResourceOption) (*Template, error)
    public Template(string name, TemplateArgs args, CustomResourceOptions? opts = null)
    public Template(String name, TemplateArgs args)
    public Template(String name, TemplateArgs args, CustomResourceOptions options)
    
    type: scaleway:instance:Template
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "scaleway_instance_template" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args TemplateArgs
    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 TemplateArgs
    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 TemplateArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args TemplateArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args TemplateArgs
    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 templateResource = new Scaleway.Instance.Template("templateResource", new()
    {
        ServerType = "string",
        PrivateNetworks = new[]
        {
            "string",
        },
        PlacementGroupId = "string",
        FilesystemIds = new[]
        {
            "string",
        },
        ProjectId = "string",
        PublicIpv4Count = 0,
        PublicIpv6Count = 0,
        SecurityGroupId = "string",
        ServerTags = new[]
        {
            "string",
        },
        Name = "string",
        Tags = new[]
        {
            "string",
        },
        Volumes = new[]
        {
            new Scaleway.Instance.Inputs.TemplateVolumeArgs
            {
                SizeInGb = 0,
                VolumeType = "string",
                BaseSnapshotId = "string",
                ImageLabel = "string",
                Name = "string",
                PerfIops = 0,
                Tags = new[]
                {
                    "string",
                },
            },
        },
        WindowsRdpSshKeyId = "string",
        Zone = "string",
    });
    
    example, err := instance.NewTemplate(ctx, "templateResource", &instance.TemplateArgs{
    	ServerType: pulumi.String("string"),
    	PrivateNetworks: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	PlacementGroupId: pulumi.String("string"),
    	FilesystemIds: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	ProjectId:       pulumi.String("string"),
    	PublicIpv4Count: pulumi.Int(0),
    	PublicIpv6Count: pulumi.Int(0),
    	SecurityGroupId: pulumi.String("string"),
    	ServerTags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Name: pulumi.String("string"),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Volumes: instance.TemplateVolumeArray{
    		&instance.TemplateVolumeArgs{
    			SizeInGb:       pulumi.Int(0),
    			VolumeType:     pulumi.String("string"),
    			BaseSnapshotId: pulumi.String("string"),
    			ImageLabel:     pulumi.String("string"),
    			Name:           pulumi.String("string"),
    			PerfIops:       pulumi.Int(0),
    			Tags: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	WindowsRdpSshKeyId: pulumi.String("string"),
    	Zone:               pulumi.String("string"),
    })
    
    resource "scaleway_instance_template" "templateResource" {
      lifecycle {
        create_before_destroy = true
      }
      server_type        = "string"
      private_networks   = ["string"]
      placement_group_id = "string"
      filesystem_ids     = ["string"]
      project_id         = "string"
      public_ipv4_count  = 0
      public_ipv6_count  = 0
      security_group_id  = "string"
      server_tags        = ["string"]
      name               = "string"
      tags               = ["string"]
      volumes {
        size_in_gb       = 0
        volume_type      = "string"
        base_snapshot_id = "string"
        image_label      = "string"
        name             = "string"
        perf_iops        = 0
        tags             = ["string"]
      }
      windows_rdp_ssh_key_id = "string"
      zone                   = "string"
    }
    
    var templateResource = new Template("templateResource", TemplateArgs.builder()
        .serverType("string")
        .privateNetworks("string")
        .placementGroupId("string")
        .filesystemIds("string")
        .projectId("string")
        .publicIpv4Count(0)
        .publicIpv6Count(0)
        .securityGroupId("string")
        .serverTags("string")
        .name("string")
        .tags("string")
        .volumes(TemplateVolumeArgs.builder()
            .sizeInGb(0)
            .volumeType("string")
            .baseSnapshotId("string")
            .imageLabel("string")
            .name("string")
            .perfIops(0)
            .tags("string")
            .build())
        .windowsRdpSshKeyId("string")
        .zone("string")
        .build());
    
    template_resource = scaleway.instance.Template("templateResource",
        server_type="string",
        private_networks=["string"],
        placement_group_id="string",
        filesystem_ids=["string"],
        project_id="string",
        public_ipv4_count=0,
        public_ipv6_count=0,
        security_group_id="string",
        server_tags=["string"],
        name="string",
        tags=["string"],
        volumes=[{
            "size_in_gb": 0,
            "volume_type": "string",
            "base_snapshot_id": "string",
            "image_label": "string",
            "name": "string",
            "perf_iops": 0,
            "tags": ["string"],
        }],
        windows_rdp_ssh_key_id="string",
        zone="string")
    
    const templateResource = new scaleway.instance.Template("templateResource", {
        serverType: "string",
        privateNetworks: ["string"],
        placementGroupId: "string",
        filesystemIds: ["string"],
        projectId: "string",
        publicIpv4Count: 0,
        publicIpv6Count: 0,
        securityGroupId: "string",
        serverTags: ["string"],
        name: "string",
        tags: ["string"],
        volumes: [{
            sizeInGb: 0,
            volumeType: "string",
            baseSnapshotId: "string",
            imageLabel: "string",
            name: "string",
            perfIops: 0,
            tags: ["string"],
        }],
        windowsRdpSshKeyId: "string",
        zone: "string",
    });
    
    type: scaleway:instance:Template
    properties:
        filesystemIds:
            - string
        name: string
        placementGroupId: string
        privateNetworks:
            - string
        projectId: string
        publicIpv4Count: 0
        publicIpv6Count: 0
        securityGroupId: string
        serverTags:
            - string
        serverType: string
        tags:
            - string
        volumes:
            - baseSnapshotId: string
              imageLabel: string
              name: string
              perfIops: 0
              sizeInGb: 0
              tags:
                - string
              volumeType: string
        windowsRdpSshKeyId: string
        zone: string
    

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

    ServerType string
    The commercial type of the server defined in the template.
    FilesystemIds List<string>
    The IDs of the filesystems to attach to the servers created using the template.
    Name string
    The name of the template. If not provided it will be randomly generated.
    PlacementGroupId string
    The ID of the placement group to attach to the servers created using the template.
    PrivateNetworks List<string>
    The IDs of the private networks to attach to the servers created using the template.
    ProjectId string
    The ID of the project the template is associated with.
    PublicIpv4Count int
    The number of public IPv4 to attach to the servers created using the template.
    PublicIpv6Count int
    The number of public IPv6 to attach to the servers created using the template.
    SecurityGroupId string
    The ID of the security group to attach to the servers created using the template.
    ServerTags List<string>
    A list of tags to apply to the servers created from the template.
    Tags List<string>
    A list of tags to apply to the template.
    Volumes List<Pulumiverse.Scaleway.Instance.Inputs.TemplateVolume>

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    WindowsRdpSshKeyId string
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    Zone string
    The zone in which the template should be created.
    ServerType string
    The commercial type of the server defined in the template.
    FilesystemIds []string
    The IDs of the filesystems to attach to the servers created using the template.
    Name string
    The name of the template. If not provided it will be randomly generated.
    PlacementGroupId string
    The ID of the placement group to attach to the servers created using the template.
    PrivateNetworks []string
    The IDs of the private networks to attach to the servers created using the template.
    ProjectId string
    The ID of the project the template is associated with.
    PublicIpv4Count int
    The number of public IPv4 to attach to the servers created using the template.
    PublicIpv6Count int
    The number of public IPv6 to attach to the servers created using the template.
    SecurityGroupId string
    The ID of the security group to attach to the servers created using the template.
    ServerTags []string
    A list of tags to apply to the servers created from the template.
    Tags []string
    A list of tags to apply to the template.
    Volumes []TemplateVolumeArgs

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    WindowsRdpSshKeyId string
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    Zone string
    The zone in which the template should be created.
    server_type string
    The commercial type of the server defined in the template.
    filesystem_ids list(string)
    The IDs of the filesystems to attach to the servers created using the template.
    name string
    The name of the template. If not provided it will be randomly generated.
    placement_group_id string
    The ID of the placement group to attach to the servers created using the template.
    private_networks list(string)
    The IDs of the private networks to attach to the servers created using the template.
    project_id string
    The ID of the project the template is associated with.
    public_ipv4_count number
    The number of public IPv4 to attach to the servers created using the template.
    public_ipv6_count number
    The number of public IPv6 to attach to the servers created using the template.
    security_group_id string
    The ID of the security group to attach to the servers created using the template.
    server_tags list(string)
    A list of tags to apply to the servers created from the template.
    tags list(string)
    A list of tags to apply to the template.
    volumes list(object)

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windows_rdp_ssh_key_id string
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone string
    The zone in which the template should be created.
    serverType String
    The commercial type of the server defined in the template.
    filesystemIds List<String>
    The IDs of the filesystems to attach to the servers created using the template.
    name String
    The name of the template. If not provided it will be randomly generated.
    placementGroupId String
    The ID of the placement group to attach to the servers created using the template.
    privateNetworks List<String>
    The IDs of the private networks to attach to the servers created using the template.
    projectId String
    The ID of the project the template is associated with.
    publicIpv4Count Integer
    The number of public IPv4 to attach to the servers created using the template.
    publicIpv6Count Integer
    The number of public IPv6 to attach to the servers created using the template.
    securityGroupId String
    The ID of the security group to attach to the servers created using the template.
    serverTags List<String>
    A list of tags to apply to the servers created from the template.
    tags List<String>
    A list of tags to apply to the template.
    volumes List<TemplateVolume>

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windowsRdpSshKeyId String
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone String
    The zone in which the template should be created.
    serverType string
    The commercial type of the server defined in the template.
    filesystemIds string[]
    The IDs of the filesystems to attach to the servers created using the template.
    name string
    The name of the template. If not provided it will be randomly generated.
    placementGroupId string
    The ID of the placement group to attach to the servers created using the template.
    privateNetworks string[]
    The IDs of the private networks to attach to the servers created using the template.
    projectId string
    The ID of the project the template is associated with.
    publicIpv4Count number
    The number of public IPv4 to attach to the servers created using the template.
    publicIpv6Count number
    The number of public IPv6 to attach to the servers created using the template.
    securityGroupId string
    The ID of the security group to attach to the servers created using the template.
    serverTags string[]
    A list of tags to apply to the servers created from the template.
    tags string[]
    A list of tags to apply to the template.
    volumes TemplateVolume[]

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windowsRdpSshKeyId string
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone string
    The zone in which the template should be created.
    server_type str
    The commercial type of the server defined in the template.
    filesystem_ids Sequence[str]
    The IDs of the filesystems to attach to the servers created using the template.
    name str
    The name of the template. If not provided it will be randomly generated.
    placement_group_id str
    The ID of the placement group to attach to the servers created using the template.
    private_networks Sequence[str]
    The IDs of the private networks to attach to the servers created using the template.
    project_id str
    The ID of the project the template is associated with.
    public_ipv4_count int
    The number of public IPv4 to attach to the servers created using the template.
    public_ipv6_count int
    The number of public IPv6 to attach to the servers created using the template.
    security_group_id str
    The ID of the security group to attach to the servers created using the template.
    server_tags Sequence[str]
    A list of tags to apply to the servers created from the template.
    tags Sequence[str]
    A list of tags to apply to the template.
    volumes Sequence[TemplateVolumeArgs]

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windows_rdp_ssh_key_id str
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone str
    The zone in which the template should be created.
    serverType String
    The commercial type of the server defined in the template.
    filesystemIds List<String>
    The IDs of the filesystems to attach to the servers created using the template.
    name String
    The name of the template. If not provided it will be randomly generated.
    placementGroupId String
    The ID of the placement group to attach to the servers created using the template.
    privateNetworks List<String>
    The IDs of the private networks to attach to the servers created using the template.
    projectId String
    The ID of the project the template is associated with.
    publicIpv4Count Number
    The number of public IPv4 to attach to the servers created using the template.
    publicIpv6Count Number
    The number of public IPv6 to attach to the servers created using the template.
    securityGroupId String
    The ID of the security group to attach to the servers created using the template.
    serverTags List<String>
    A list of tags to apply to the servers created from the template.
    tags List<String>
    A list of tags to apply to the template.
    volumes List<Property Map>

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windowsRdpSshKeyId String
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone String
    The zone in which the template should be created.

    Outputs

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

    CreatedAt string
    The creation timestamp of the Instance template.
    Id string
    The provider-assigned unique ID for this managed resource.
    UpdatedAt string
    The last update timestamp of the Instance template.
    CreatedAt string
    The creation timestamp of the Instance template.
    Id string
    The provider-assigned unique ID for this managed resource.
    UpdatedAt string
    The last update timestamp of the Instance template.
    created_at string
    The creation timestamp of the Instance template.
    id string
    The provider-assigned unique ID for this managed resource.
    updated_at string
    The last update timestamp of the Instance template.
    createdAt String
    The creation timestamp of the Instance template.
    id String
    The provider-assigned unique ID for this managed resource.
    updatedAt String
    The last update timestamp of the Instance template.
    createdAt string
    The creation timestamp of the Instance template.
    id string
    The provider-assigned unique ID for this managed resource.
    updatedAt string
    The last update timestamp of the Instance template.
    created_at str
    The creation timestamp of the Instance template.
    id str
    The provider-assigned unique ID for this managed resource.
    updated_at str
    The last update timestamp of the Instance template.
    createdAt String
    The creation timestamp of the Instance template.
    id String
    The provider-assigned unique ID for this managed resource.
    updatedAt String
    The last update timestamp of the Instance template.

    Look up Existing Template Resource

    Get an existing Template 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?: TemplateState, opts?: CustomResourceOptions): Template
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            created_at: Optional[str] = None,
            filesystem_ids: Optional[Sequence[str]] = None,
            name: Optional[str] = None,
            placement_group_id: Optional[str] = None,
            private_networks: Optional[Sequence[str]] = None,
            project_id: Optional[str] = None,
            public_ipv4_count: Optional[int] = None,
            public_ipv6_count: Optional[int] = None,
            security_group_id: Optional[str] = None,
            server_tags: Optional[Sequence[str]] = None,
            server_type: Optional[str] = None,
            tags: Optional[Sequence[str]] = None,
            updated_at: Optional[str] = None,
            volumes: Optional[Sequence[TemplateVolumeArgs]] = None,
            windows_rdp_ssh_key_id: Optional[str] = None,
            zone: Optional[str] = None) -> Template
    func GetTemplate(ctx *Context, name string, id IDInput, state *TemplateState, opts ...ResourceOption) (*Template, error)
    public static Template Get(string name, Input<string> id, TemplateState? state, CustomResourceOptions? opts = null)
    public static Template get(String name, Output<String> id, TemplateState state, CustomResourceOptions options)
    resources:  _:    type: scaleway:instance:Template    get:      id: ${id}
    import {
      to = scaleway_instance_template.example
      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:
    CreatedAt string
    The creation timestamp of the Instance template.
    FilesystemIds List<string>
    The IDs of the filesystems to attach to the servers created using the template.
    Name string
    The name of the template. If not provided it will be randomly generated.
    PlacementGroupId string
    The ID of the placement group to attach to the servers created using the template.
    PrivateNetworks List<string>
    The IDs of the private networks to attach to the servers created using the template.
    ProjectId string
    The ID of the project the template is associated with.
    PublicIpv4Count int
    The number of public IPv4 to attach to the servers created using the template.
    PublicIpv6Count int
    The number of public IPv6 to attach to the servers created using the template.
    SecurityGroupId string
    The ID of the security group to attach to the servers created using the template.
    ServerTags List<string>
    A list of tags to apply to the servers created from the template.
    ServerType string
    The commercial type of the server defined in the template.
    Tags List<string>
    A list of tags to apply to the template.
    UpdatedAt string
    The last update timestamp of the Instance template.
    Volumes List<Pulumiverse.Scaleway.Instance.Inputs.TemplateVolume>

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    WindowsRdpSshKeyId string
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    Zone string
    The zone in which the template should be created.
    CreatedAt string
    The creation timestamp of the Instance template.
    FilesystemIds []string
    The IDs of the filesystems to attach to the servers created using the template.
    Name string
    The name of the template. If not provided it will be randomly generated.
    PlacementGroupId string
    The ID of the placement group to attach to the servers created using the template.
    PrivateNetworks []string
    The IDs of the private networks to attach to the servers created using the template.
    ProjectId string
    The ID of the project the template is associated with.
    PublicIpv4Count int
    The number of public IPv4 to attach to the servers created using the template.
    PublicIpv6Count int
    The number of public IPv6 to attach to the servers created using the template.
    SecurityGroupId string
    The ID of the security group to attach to the servers created using the template.
    ServerTags []string
    A list of tags to apply to the servers created from the template.
    ServerType string
    The commercial type of the server defined in the template.
    Tags []string
    A list of tags to apply to the template.
    UpdatedAt string
    The last update timestamp of the Instance template.
    Volumes []TemplateVolumeArgs

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    WindowsRdpSshKeyId string
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    Zone string
    The zone in which the template should be created.
    created_at string
    The creation timestamp of the Instance template.
    filesystem_ids list(string)
    The IDs of the filesystems to attach to the servers created using the template.
    name string
    The name of the template. If not provided it will be randomly generated.
    placement_group_id string
    The ID of the placement group to attach to the servers created using the template.
    private_networks list(string)
    The IDs of the private networks to attach to the servers created using the template.
    project_id string
    The ID of the project the template is associated with.
    public_ipv4_count number
    The number of public IPv4 to attach to the servers created using the template.
    public_ipv6_count number
    The number of public IPv6 to attach to the servers created using the template.
    security_group_id string
    The ID of the security group to attach to the servers created using the template.
    server_tags list(string)
    A list of tags to apply to the servers created from the template.
    server_type string
    The commercial type of the server defined in the template.
    tags list(string)
    A list of tags to apply to the template.
    updated_at string
    The last update timestamp of the Instance template.
    volumes list(object)

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windows_rdp_ssh_key_id string
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone string
    The zone in which the template should be created.
    createdAt String
    The creation timestamp of the Instance template.
    filesystemIds List<String>
    The IDs of the filesystems to attach to the servers created using the template.
    name String
    The name of the template. If not provided it will be randomly generated.
    placementGroupId String
    The ID of the placement group to attach to the servers created using the template.
    privateNetworks List<String>
    The IDs of the private networks to attach to the servers created using the template.
    projectId String
    The ID of the project the template is associated with.
    publicIpv4Count Integer
    The number of public IPv4 to attach to the servers created using the template.
    publicIpv6Count Integer
    The number of public IPv6 to attach to the servers created using the template.
    securityGroupId String
    The ID of the security group to attach to the servers created using the template.
    serverTags List<String>
    A list of tags to apply to the servers created from the template.
    serverType String
    The commercial type of the server defined in the template.
    tags List<String>
    A list of tags to apply to the template.
    updatedAt String
    The last update timestamp of the Instance template.
    volumes List<TemplateVolume>

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windowsRdpSshKeyId String
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone String
    The zone in which the template should be created.
    createdAt string
    The creation timestamp of the Instance template.
    filesystemIds string[]
    The IDs of the filesystems to attach to the servers created using the template.
    name string
    The name of the template. If not provided it will be randomly generated.
    placementGroupId string
    The ID of the placement group to attach to the servers created using the template.
    privateNetworks string[]
    The IDs of the private networks to attach to the servers created using the template.
    projectId string
    The ID of the project the template is associated with.
    publicIpv4Count number
    The number of public IPv4 to attach to the servers created using the template.
    publicIpv6Count number
    The number of public IPv6 to attach to the servers created using the template.
    securityGroupId string
    The ID of the security group to attach to the servers created using the template.
    serverTags string[]
    A list of tags to apply to the servers created from the template.
    serverType string
    The commercial type of the server defined in the template.
    tags string[]
    A list of tags to apply to the template.
    updatedAt string
    The last update timestamp of the Instance template.
    volumes TemplateVolume[]

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windowsRdpSshKeyId string
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone string
    The zone in which the template should be created.
    created_at str
    The creation timestamp of the Instance template.
    filesystem_ids Sequence[str]
    The IDs of the filesystems to attach to the servers created using the template.
    name str
    The name of the template. If not provided it will be randomly generated.
    placement_group_id str
    The ID of the placement group to attach to the servers created using the template.
    private_networks Sequence[str]
    The IDs of the private networks to attach to the servers created using the template.
    project_id str
    The ID of the project the template is associated with.
    public_ipv4_count int
    The number of public IPv4 to attach to the servers created using the template.
    public_ipv6_count int
    The number of public IPv6 to attach to the servers created using the template.
    security_group_id str
    The ID of the security group to attach to the servers created using the template.
    server_tags Sequence[str]
    A list of tags to apply to the servers created from the template.
    server_type str
    The commercial type of the server defined in the template.
    tags Sequence[str]
    A list of tags to apply to the template.
    updated_at str
    The last update timestamp of the Instance template.
    volumes Sequence[TemplateVolumeArgs]

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windows_rdp_ssh_key_id str
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone str
    The zone in which the template should be created.
    createdAt String
    The creation timestamp of the Instance template.
    filesystemIds List<String>
    The IDs of the filesystems to attach to the servers created using the template.
    name String
    The name of the template. If not provided it will be randomly generated.
    placementGroupId String
    The ID of the placement group to attach to the servers created using the template.
    privateNetworks List<String>
    The IDs of the private networks to attach to the servers created using the template.
    projectId String
    The ID of the project the template is associated with.
    publicIpv4Count Number
    The number of public IPv4 to attach to the servers created using the template.
    publicIpv6Count Number
    The number of public IPv6 to attach to the servers created using the template.
    securityGroupId String
    The ID of the security group to attach to the servers created using the template.
    serverTags List<String>
    A list of tags to apply to the servers created from the template.
    serverType String
    The commercial type of the server defined in the template.
    tags List<String>
    A list of tags to apply to the template.
    updatedAt String
    The last update timestamp of the Instance template.
    volumes List<Property Map>

    The list of specs describing the volumes to attach to the servers created using the template.

    The volumes block contains :

    windowsRdpSshKeyId String
    The ID of the IAM SSH key used to encrypt the initial admin password on a Windows server. This will be repeated on all servers created using the template.
    zone String
    The zone in which the template should be created.

    Supporting Types

    TemplateVolume, TemplateVolumeArgs

    SizeInGb int
    The size of the volume in gigabytes.
    VolumeType string
    The type of the volume.
    BaseSnapshotId string

    The ID of the base snapshot for the volume.

    Important: Only one of baseSnapshotId and imageLabel can be set.

    ImageLabel string
    The label of the image used as base for the volume.
    Name string
    The name of volume.
    PerfIops int
    The performance IOPS of the volume, required for sbs type volumes.
    Tags List<string>
    The tags associated with the volume.
    SizeInGb int
    The size of the volume in gigabytes.
    VolumeType string
    The type of the volume.
    BaseSnapshotId string

    The ID of the base snapshot for the volume.

    Important: Only one of baseSnapshotId and imageLabel can be set.

    ImageLabel string
    The label of the image used as base for the volume.
    Name string
    The name of volume.
    PerfIops int
    The performance IOPS of the volume, required for sbs type volumes.
    Tags []string
    The tags associated with the volume.
    size_in_gb number
    The size of the volume in gigabytes.
    volume_type string
    The type of the volume.
    base_snapshot_id string

    The ID of the base snapshot for the volume.

    Important: Only one of baseSnapshotId and imageLabel can be set.

    image_label string
    The label of the image used as base for the volume.
    name string
    The name of volume.
    perf_iops number
    The performance IOPS of the volume, required for sbs type volumes.
    tags list(string)
    The tags associated with the volume.
    sizeInGb Integer
    The size of the volume in gigabytes.
    volumeType String
    The type of the volume.
    baseSnapshotId String

    The ID of the base snapshot for the volume.

    Important: Only one of baseSnapshotId and imageLabel can be set.

    imageLabel String
    The label of the image used as base for the volume.
    name String
    The name of volume.
    perfIops Integer
    The performance IOPS of the volume, required for sbs type volumes.
    tags List<String>
    The tags associated with the volume.
    sizeInGb number
    The size of the volume in gigabytes.
    volumeType string
    The type of the volume.
    baseSnapshotId string

    The ID of the base snapshot for the volume.

    Important: Only one of baseSnapshotId and imageLabel can be set.

    imageLabel string
    The label of the image used as base for the volume.
    name string
    The name of volume.
    perfIops number
    The performance IOPS of the volume, required for sbs type volumes.
    tags string[]
    The tags associated with the volume.
    size_in_gb int
    The size of the volume in gigabytes.
    volume_type str
    The type of the volume.
    base_snapshot_id str

    The ID of the base snapshot for the volume.

    Important: Only one of baseSnapshotId and imageLabel can be set.

    image_label str
    The label of the image used as base for the volume.
    name str
    The name of volume.
    perf_iops int
    The performance IOPS of the volume, required for sbs type volumes.
    tags Sequence[str]
    The tags associated with the volume.
    sizeInGb Number
    The size of the volume in gigabytes.
    volumeType String
    The type of the volume.
    baseSnapshotId String

    The ID of the base snapshot for the volume.

    Important: Only one of baseSnapshotId and imageLabel can be set.

    imageLabel String
    The label of the image used as base for the volume.
    name String
    The name of volume.
    perfIops Number
    The performance IOPS of the volume, required for sbs type volumes.
    tags List<String>
    The tags associated with the volume.

    Import

    Templates can be imported using the {zone}/{id}, e.g.

    $ pulumi import scaleway:instance/template:Template main fr-par-1/11111111-1111-1111-1111-111111111111
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    scaleway pulumiverse/pulumi-scaleway
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the scaleway Terraform Provider.
    scaleway logo
    Viewing docs for Scaleway v1.55.1
    published on Wednesday, Sep 9, 2026 by pulumiverse

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial