published on Wednesday, Sep 9, 2026 by pulumiverse
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:
- 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 stringId - 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
Ipv4Count int - The number of public IPv4 to attach to the servers created using the template.
- Public
Ipv6Count int - The number of public IPv6 to attach to the servers created using the template.
- Security
Group stringId - The ID of the security group to attach to the servers created using the template.
- List<string>
- A list of tags to apply to the servers created from the template.
- List<string>
- A list of tags to apply to the template.
- Volumes
List<Pulumiverse.
Scaleway. Instance. Inputs. Template Volume> The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- Windows
Rdp stringSsh Key Id - 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 []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 stringId - The ID of the placement group to attach to the servers created using the template.
- Private
Networks []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
Ipv4Count int - The number of public IPv4 to attach to the servers created using the template.
- Public
Ipv6Count int - The number of public IPv6 to attach to the servers created using the template.
- Security
Group stringId - The ID of the security group to attach to the servers created using the template.
- []string
- A list of tags to apply to the servers created from the template.
- []string
- A list of tags to apply to the template.
- Volumes
[]Template
Volume Args The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- Windows
Rdp stringSsh Key Id - 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_ stringid - 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_ numbercount - The number of public IPv4 to attach to the servers created using the template.
- public_
ipv6_ numbercount - The number of public IPv6 to attach to the servers created using the template.
- security_
group_ stringid - The ID of the security group to attach to the servers created using the template.
- list(string)
- A list of tags to apply to the servers created from the template.
- 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
volumesblock contains :- windows_
rdp_ stringssh_ key_ id - 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 StringId - 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
Ipv4Count Integer - The number of public IPv4 to attach to the servers created using the template.
- public
Ipv6Count Integer - The number of public IPv6 to attach to the servers created using the template.
- security
Group StringId - The ID of the security group to attach to the servers created using the template.
- List<String>
- A list of tags to apply to the servers created from the template.
- List<String>
- A list of tags to apply to the template.
- volumes
List<Template
Volume> The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- windows
Rdp StringSsh Key Id - 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 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 stringId - The ID of the placement group to attach to the servers created using the template.
- private
Networks 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
Ipv4Count number - The number of public IPv4 to attach to the servers created using the template.
- public
Ipv6Count number - The number of public IPv6 to attach to the servers created using the template.
- security
Group stringId - The ID of the security group to attach to the servers created using the template.
- string[]
- A list of tags to apply to the servers created from the template.
- string[]
- A list of tags to apply to the template.
- volumes
Template
Volume[] The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- windows
Rdp stringSsh Key Id - 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_ strid - 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_ intcount - The number of public IPv4 to attach to the servers created using the template.
- public_
ipv6_ intcount - The number of public IPv6 to attach to the servers created using the template.
- security_
group_ strid - The ID of the security group to attach to the servers created using the template.
- Sequence[str]
- A list of tags to apply to the servers created from the template.
- Sequence[str]
- A list of tags to apply to the template.
- volumes
Sequence[Template
Volume Args] The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- windows_
rdp_ strssh_ key_ id - 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.
- 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 StringId - 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
Ipv4Count Number - The number of public IPv4 to attach to the servers created using the template.
- public
Ipv6Count Number - The number of public IPv6 to attach to the servers created using the template.
- security
Group StringId - The ID of the security group to attach to the servers created using the template.
- List<String>
- A list of tags to apply to the servers created from the template.
- 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
volumesblock contains :- windows
Rdp StringSsh Key Id - 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:
- 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.
- 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.
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) -> Templatefunc 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.
- 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 stringId - 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
Ipv4Count int - The number of public IPv4 to attach to the servers created using the template.
- Public
Ipv6Count int - The number of public IPv6 to attach to the servers created using the template.
- Security
Group stringId - The ID of the security group to attach to the servers created using the template.
- 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.
- List<string>
- A list of tags to apply to the template.
- Updated
At string - The last update timestamp of the Instance template.
- Volumes
List<Pulumiverse.
Scaleway. Instance. Inputs. Template Volume> The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- Windows
Rdp stringSsh Key Id - 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 []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 stringId - The ID of the placement group to attach to the servers created using the template.
- Private
Networks []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
Ipv4Count int - The number of public IPv4 to attach to the servers created using the template.
- Public
Ipv6Count int - The number of public IPv6 to attach to the servers created using the template.
- Security
Group stringId - The ID of the security group to attach to the servers created using the template.
- []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.
- []string
- A list of tags to apply to the template.
- Updated
At string - The last update timestamp of the Instance template.
- Volumes
[]Template
Volume Args The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- Windows
Rdp stringSsh Key Id - 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_ stringid - 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_ numbercount - The number of public IPv4 to attach to the servers created using the template.
- public_
ipv6_ numbercount - The number of public IPv6 to attach to the servers created using the template.
- security_
group_ stringid - The ID of the security group to attach to the servers created using the template.
- 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.
- 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
volumesblock contains :- windows_
rdp_ stringssh_ key_ id - 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 StringId - 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
Ipv4Count Integer - The number of public IPv4 to attach to the servers created using the template.
- public
Ipv6Count Integer - The number of public IPv6 to attach to the servers created using the template.
- security
Group StringId - The ID of the security group to attach to the servers created using the template.
- 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.
- List<String>
- A list of tags to apply to the template.
- updated
At String - The last update timestamp of the Instance template.
- volumes
List<Template
Volume> The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- windows
Rdp StringSsh Key Id - 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 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 stringId - The ID of the placement group to attach to the servers created using the template.
- private
Networks 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
Ipv4Count number - The number of public IPv4 to attach to the servers created using the template.
- public
Ipv6Count number - The number of public IPv6 to attach to the servers created using the template.
- security
Group stringId - The ID of the security group to attach to the servers created using the template.
- 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.
- string[]
- A list of tags to apply to the template.
- updated
At string - The last update timestamp of the Instance template.
- volumes
Template
Volume[] The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- windows
Rdp stringSsh Key Id - 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_ strid - 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_ intcount - The number of public IPv4 to attach to the servers created using the template.
- public_
ipv6_ intcount - The number of public IPv6 to attach to the servers created using the template.
- security_
group_ strid - The ID of the security group to attach to the servers created using the template.
- 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.
- Sequence[str]
- A list of tags to apply to the template.
- updated_
at str - The last update timestamp of the Instance template.
- volumes
Sequence[Template
Volume Args] The list of specs describing the volumes to attach to the servers created using the template.
The
volumesblock contains :- windows_
rdp_ strssh_ key_ id - 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.
- 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 StringId - 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
Ipv4Count Number - The number of public IPv4 to attach to the servers created using the template.
- public
Ipv6Count Number - The number of public IPv6 to attach to the servers created using the template.
- security
Group StringId - The ID of the security group to attach to the servers created using the template.
- 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.
- List<String>
- A list of tags to apply to the template.
- updated
At 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
volumesblock contains :- windows
Rdp StringSsh Key Id - 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
- Size
In intGb - The size of the volume in gigabytes.
- Volume
Type string - The type of the volume.
- Base
Snapshot stringId The ID of the base snapshot for the volume.
Important: Only one of
baseSnapshotIdandimageLabelcan be set.- Image
Label string - The label of the image used as base for the volume.
- Name string
- The name of volume.
- Perf
Iops int - The performance IOPS of the volume, required for
sbstype volumes. - List<string>
- The tags associated with the volume.
- Size
In intGb - The size of the volume in gigabytes.
- Volume
Type string - The type of the volume.
- Base
Snapshot stringId The ID of the base snapshot for the volume.
Important: Only one of
baseSnapshotIdandimageLabelcan be set.- Image
Label string - The label of the image used as base for the volume.
- Name string
- The name of volume.
- Perf
Iops int - The performance IOPS of the volume, required for
sbstype volumes. - []string
- The tags associated with the volume.
- size_
in_ numbergb - The size of the volume in gigabytes.
- volume_
type string - The type of the volume.
- base_
snapshot_ stringid The ID of the base snapshot for the volume.
Important: Only one of
baseSnapshotIdandimageLabelcan 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
sbstype volumes. - list(string)
- The tags associated with the volume.
- size
In IntegerGb - The size of the volume in gigabytes.
- volume
Type String - The type of the volume.
- base
Snapshot StringId The ID of the base snapshot for the volume.
Important: Only one of
baseSnapshotIdandimageLabelcan be set.- image
Label String - The label of the image used as base for the volume.
- name String
- The name of volume.
- perf
Iops Integer - The performance IOPS of the volume, required for
sbstype volumes. - List<String>
- The tags associated with the volume.
- size
In numberGb - The size of the volume in gigabytes.
- volume
Type string - The type of the volume.
- base
Snapshot stringId The ID of the base snapshot for the volume.
Important: Only one of
baseSnapshotIdandimageLabelcan 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
sbstype volumes. - string[]
- The tags associated with the volume.
- size_
in_ intgb - The size of the volume in gigabytes.
- volume_
type str - The type of the volume.
- base_
snapshot_ strid The ID of the base snapshot for the volume.
Important: Only one of
baseSnapshotIdandimageLabelcan 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
sbstype volumes. - Sequence[str]
- The tags associated with the volume.
- size
In NumberGb - The size of the volume in gigabytes.
- volume
Type String - The type of the volume.
- base
Snapshot StringId The ID of the base snapshot for the volume.
Important: Only one of
baseSnapshotIdandimageLabelcan 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
sbstype volumes. - 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
scalewayTerraform Provider.
published on Wednesday, Sep 9, 2026 by pulumiverse