1. Registry
  2. Packages
  3. Scaleway
  4. API Docs
  5. autoscaling
  6. Group
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

    Manages Autoscaling Groups.

    Example Usage

    CPU Target

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = new scaleway.instance.Template("main", {serverType: "GP1-L"});
    const mainGroup = new scaleway.autoscaling.Group("main", {
        templateId: main.id,
        tags: [
            "tf-examples",
            "scaleway_autoscaling_group",
            "cpu-target",
        ],
        name: "asg-cpu-target",
        scalingPolicy: {
            minimumSize: 0,
            maximumSize: 25,
            scaleInCooldown: "2m",
            scaleOutCooldown: "1m",
            scaleInStep: 5,
            scaleOutStep: 5,
            cpuTarget: 92,
        },
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main = scaleway.instance.Template("main", server_type="GP1-L")
    main_group = scaleway.autoscaling.Group("main",
        template_id=main.id,
        tags=[
            "tf-examples",
            "scaleway_autoscaling_group",
            "cpu-target",
        ],
        name="asg-cpu-target",
        scaling_policy={
            "minimum_size": 0,
            "maximum_size": 25,
            "scale_in_cooldown": "2m",
            "scale_out_cooldown": "1m",
            "scale_in_step": 5,
            "scale_out_step": 5,
            "cpu_target": 92,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/autoscaling"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		main, err := instance.NewTemplate(ctx, "main", &instance.TemplateArgs{
    			ServerType: pulumi.String("GP1-L"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "main", &autoscaling.GroupArgs{
    			TemplateId: main.ID().ToIDOutput().ToStringOutput(),
    			Tags: pulumi.StringArray{
    				pulumi.String("tf-examples"),
    				pulumi.String("scaleway_autoscaling_group"),
    				pulumi.String("cpu-target"),
    			},
    			Name: pulumi.String("asg-cpu-target"),
    			ScalingPolicy: &autoscaling.GroupScalingPolicyArgs{
    				MinimumSize:      pulumi.Int(0),
    				MaximumSize:      pulumi.Int(25),
    				ScaleInCooldown:  pulumi.String("2m"),
    				ScaleOutCooldown: pulumi.String("1m"),
    				ScaleInStep:      pulumi.Int(5),
    				ScaleOutStep:     pulumi.Int(5),
    				CpuTarget:        pulumi.Int(92),
    			},
    		})
    		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()
        {
            ServerType = "GP1-L",
        });
    
        var mainGroup = new Scaleway.Autoscaling.Group("main", new()
        {
            TemplateId = main.Id,
            Tags = new[]
            {
                "tf-examples",
                "scaleway_autoscaling_group",
                "cpu-target",
            },
            Name = "asg-cpu-target",
            ScalingPolicy = new Scaleway.Autoscaling.Inputs.GroupScalingPolicyArgs
            {
                MinimumSize = 0,
                MaximumSize = 25,
                ScaleInCooldown = "2m",
                ScaleOutCooldown = "1m",
                ScaleInStep = 5,
                ScaleOutStep = 5,
                CpuTarget = 92,
            },
        });
    
    });
    
    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.autoscaling.Group;
    import com.pulumi.scaleway.autoscaling.GroupArgs;
    import com.pulumi.scaleway.autoscaling.inputs.GroupScalingPolicyArgs;
    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()
                .serverType("GP1-L")
                .build());
    
            var mainGroup = new Group("mainGroup", GroupArgs.builder()
                .templateId(main.id())
                .tags(            
                    "tf-examples",
                    "scaleway_autoscaling_group",
                    "cpu-target")
                .name("asg-cpu-target")
                .scalingPolicy(GroupScalingPolicyArgs.builder()
                    .minimumSize(0)
                    .maximumSize(25)
                    .scaleInCooldown("2m")
                    .scaleOutCooldown("1m")
                    .scaleInStep(5)
                    .scaleOutStep(5)
                    .cpuTarget(92)
                    .build())
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:instance:Template
        properties:
          serverType: GP1-L
      mainGroup:
        type: scaleway:autoscaling:Group
        name: main
        properties:
          templateId: ${main.id}
          tags:
            - tf-examples
            - scaleway_autoscaling_group
            - cpu-target
          name: asg-cpu-target
          scalingPolicy:
            minimumSize: 0
            maximumSize: 25
            scaleInCooldown: 2m
            scaleOutCooldown: 1m
            scaleInStep: 5
            scaleOutStep: 5
            cpuTarget: 92
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    resource "scaleway_instance_template" "main" {
      server_type = "GP1-L"
    }
    resource "scaleway_autoscaling_group" "main" {
      template_id = scaleway_instance_template.main.id
      tags        = ["tf-examples", "scaleway_autoscaling_group", "cpu-target"]
      name        = "asg-cpu-target"
      scaling_policy = {
        minimum_size       = 0
        maximum_size       = 25
        scale_in_cooldown  = "2m"
        scale_out_cooldown = "1m"
        scale_in_step      = 5
        scale_out_step     = 5
        cpu_target         = 92
      }
    }
    

    Fixed size

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = new scaleway.instance.Template("main", {serverType: "PRO2-M"});
    const mainGroup = new scaleway.autoscaling.Group("main", {
        templateId: main.id,
        tags: [
            "tf-examples",
            "scaleway_autoscaling_group",
            "fixed-size",
        ],
        name: "asg-fixed-size",
        scalingPolicy: {
            minimumSize: 1,
            maximumSize: 20,
            scaleInCooldown: "7m",
            scaleOutCooldown: "30s",
            fixedSize: 10,
        },
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main = scaleway.instance.Template("main", server_type="PRO2-M")
    main_group = scaleway.autoscaling.Group("main",
        template_id=main.id,
        tags=[
            "tf-examples",
            "scaleway_autoscaling_group",
            "fixed-size",
        ],
        name="asg-fixed-size",
        scaling_policy={
            "minimum_size": 1,
            "maximum_size": 20,
            "scale_in_cooldown": "7m",
            "scale_out_cooldown": "30s",
            "fixed_size": 10,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/autoscaling"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		main, err := instance.NewTemplate(ctx, "main", &instance.TemplateArgs{
    			ServerType: pulumi.String("PRO2-M"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "main", &autoscaling.GroupArgs{
    			TemplateId: main.ID().ToIDOutput().ToStringOutput(),
    			Tags: pulumi.StringArray{
    				pulumi.String("tf-examples"),
    				pulumi.String("scaleway_autoscaling_group"),
    				pulumi.String("fixed-size"),
    			},
    			Name: pulumi.String("asg-fixed-size"),
    			ScalingPolicy: &autoscaling.GroupScalingPolicyArgs{
    				MinimumSize:      pulumi.Int(1),
    				MaximumSize:      pulumi.Int(20),
    				ScaleInCooldown:  pulumi.String("7m"),
    				ScaleOutCooldown: pulumi.String("30s"),
    				FixedSize:        pulumi.Int(10),
    			},
    		})
    		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()
        {
            ServerType = "PRO2-M",
        });
    
        var mainGroup = new Scaleway.Autoscaling.Group("main", new()
        {
            TemplateId = main.Id,
            Tags = new[]
            {
                "tf-examples",
                "scaleway_autoscaling_group",
                "fixed-size",
            },
            Name = "asg-fixed-size",
            ScalingPolicy = new Scaleway.Autoscaling.Inputs.GroupScalingPolicyArgs
            {
                MinimumSize = 1,
                MaximumSize = 20,
                ScaleInCooldown = "7m",
                ScaleOutCooldown = "30s",
                FixedSize = 10,
            },
        });
    
    });
    
    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.autoscaling.Group;
    import com.pulumi.scaleway.autoscaling.GroupArgs;
    import com.pulumi.scaleway.autoscaling.inputs.GroupScalingPolicyArgs;
    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()
                .serverType("PRO2-M")
                .build());
    
            var mainGroup = new Group("mainGroup", GroupArgs.builder()
                .templateId(main.id())
                .tags(            
                    "tf-examples",
                    "scaleway_autoscaling_group",
                    "fixed-size")
                .name("asg-fixed-size")
                .scalingPolicy(GroupScalingPolicyArgs.builder()
                    .minimumSize(1)
                    .maximumSize(20)
                    .scaleInCooldown("7m")
                    .scaleOutCooldown("30s")
                    .fixedSize(10)
                    .build())
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:instance:Template
        properties:
          serverType: PRO2-M
      mainGroup:
        type: scaleway:autoscaling:Group
        name: main
        properties:
          templateId: ${main.id}
          tags:
            - tf-examples
            - scaleway_autoscaling_group
            - fixed-size
          name: asg-fixed-size
          scalingPolicy:
            minimumSize: 1
            maximumSize: 20
            scaleInCooldown: 7m
            scaleOutCooldown: 30s
            fixedSize: 10
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    resource "scaleway_instance_template" "main" {
      server_type = "PRO2-M"
    }
    resource "scaleway_autoscaling_group" "main" {
      template_id = scaleway_instance_template.main.id
      tags        = ["tf-examples", "scaleway_autoscaling_group", "fixed-size"]
      name        = "asg-fixed-size"
      scaling_policy = {
        minimum_size       = 1
        maximum_size       = 20
        scale_in_cooldown  = "7m"
        scale_out_cooldown = "30s"
        fixed_size         = 10
      }
    }
    

    Load Balancer Configuration

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    // VPC resources
    const vpc = new scaleway.network.Vpc("vpc", {});
    const pn = new scaleway.network.PrivateNetwork("pn", {vpcId: vpc.id});
    // LB resources
    const lb = new scaleway.loadbalancers.LoadBalancer("lb", {type: "LB-S"});
    const back0 = new scaleway.loadbalancers.Backend("back0", {
        lbId: lb.id,
        forwardProtocol: "http",
        forwardPort: 80,
    });
    const back1 = new scaleway.loadbalancers.Backend("back1", {
        lbId: lb.id,
        forwardProtocol: "tcp",
        forwardPort: 81,
    });
    // Template
    const main = new scaleway.instance.Template("main", {
        tags: [
            "terraform-test",
            "scaleway_autoscaling_group",
            "lb_config",
        ],
        serverType: "PRO2-M",
    });
    // AutoScaling Group
    const mainGroup = new scaleway.autoscaling.Group("main", {
        templateId: main.id,
        scalingPolicy: {
            minimumSize: 0,
            maximumSize: 25,
            memoryTarget: 75,
        },
        loadBalancerConfiguration: {
            loadBalancerId: lb.id,
            backends: [
                {
                    backendId: back0.id,
                    addressFamily: "ipv6",
                },
                {
                    backendId: back1.id,
                    addressFamily: "ipv4",
                    privateNetworkId: pn.id,
                },
            ],
            autoHealing: {
                enabled: true,
                gracePeriod: "10m",
            },
        },
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    # VPC resources
    vpc = scaleway.network.Vpc("vpc")
    pn = scaleway.network.PrivateNetwork("pn", vpc_id=vpc.id)
    # LB resources
    lb = scaleway.loadbalancers.LoadBalancer("lb", type="LB-S")
    back0 = scaleway.loadbalancers.Backend("back0",
        lb_id=lb.id,
        forward_protocol="http",
        forward_port=80)
    back1 = scaleway.loadbalancers.Backend("back1",
        lb_id=lb.id,
        forward_protocol="tcp",
        forward_port=81)
    # Template
    main = scaleway.instance.Template("main",
        tags=[
            "terraform-test",
            "scaleway_autoscaling_group",
            "lb_config",
        ],
        server_type="PRO2-M")
    # AutoScaling Group
    main_group = scaleway.autoscaling.Group("main",
        template_id=main.id,
        scaling_policy={
            "minimum_size": 0,
            "maximum_size": 25,
            "memory_target": 75,
        },
        load_balancer_configuration={
            "load_balancer_id": lb.id,
            "backends": [
                {
                    "backend_id": back0.id,
                    "address_family": "ipv6",
                },
                {
                    "backend_id": back1.id,
                    "address_family": "ipv4",
                    "private_network_id": pn.id,
                },
            ],
            "auto_healing": {
                "enabled": True,
                "grace_period": "10m",
            },
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/autoscaling"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// VPC resources
    		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
    		}
    		// LB resources
    		lb, err := loadbalancers.NewLoadBalancer(ctx, "lb", &loadbalancers.LoadBalancerArgs{
    			Type: pulumi.String("LB-S"),
    		})
    		if err != nil {
    			return err
    		}
    		back0, err := loadbalancers.NewBackend(ctx, "back0", &loadbalancers.BackendArgs{
    			LbId:            lb.ID().ToIDOutput().ToStringOutput(),
    			ForwardProtocol: pulumi.String("http"),
    			ForwardPort:     pulumi.Int(80),
    		})
    		if err != nil {
    			return err
    		}
    		back1, err := loadbalancers.NewBackend(ctx, "back1", &loadbalancers.BackendArgs{
    			LbId:            lb.ID().ToIDOutput().ToStringOutput(),
    			ForwardProtocol: pulumi.String("tcp"),
    			ForwardPort:     pulumi.Int(81),
    		})
    		if err != nil {
    			return err
    		}
    		// Template
    		main, err := instance.NewTemplate(ctx, "main", &instance.TemplateArgs{
    			Tags: pulumi.StringArray{
    				pulumi.String("terraform-test"),
    				pulumi.String("scaleway_autoscaling_group"),
    				pulumi.String("lb_config"),
    			},
    			ServerType: pulumi.String("PRO2-M"),
    		})
    		if err != nil {
    			return err
    		}
    		// AutoScaling Group
    		_, err = autoscaling.NewGroup(ctx, "main", &autoscaling.GroupArgs{
    			TemplateId: main.ID().ToIDOutput().ToStringOutput(),
    			ScalingPolicy: &autoscaling.GroupScalingPolicyArgs{
    				MinimumSize:  pulumi.Int(0),
    				MaximumSize:  pulumi.Int(25),
    				MemoryTarget: pulumi.Int(75),
    			},
    			LoadBalancerConfiguration: &autoscaling.GroupLoadBalancerConfigurationArgs{
    				LoadBalancerId: lb.ID().ToIDOutput().ToStringOutput(),
    				Backends: autoscaling.GroupLoadBalancerConfigurationBackendArray{
    					&autoscaling.GroupLoadBalancerConfigurationBackendArgs{
    						BackendId:     back0.ID().ToIDOutput().ToStringOutput(),
    						AddressFamily: pulumi.String("ipv6"),
    					},
    					&autoscaling.GroupLoadBalancerConfigurationBackendArgs{
    						BackendId:        back1.ID().ToIDOutput().ToStringOutput(),
    						AddressFamily:    pulumi.String("ipv4"),
    						PrivateNetworkId: pn.ID().ToIDOutput().ToStringOutput(),
    					},
    				},
    				AutoHealing: &autoscaling.GroupLoadBalancerConfigurationAutoHealingArgs{
    					Enabled:     pulumi.Bool(true),
    					GracePeriod: pulumi.String("10m"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        // VPC resources
        var vpc = new Scaleway.Network.Vpc("vpc");
    
        var pn = new Scaleway.Network.PrivateNetwork("pn", new()
        {
            VpcId = vpc.Id,
        });
    
        // LB resources
        var lb = new Scaleway.Loadbalancers.LoadBalancer("lb", new()
        {
            Type = "LB-S",
        });
    
        var back0 = new Scaleway.Loadbalancers.Backend("back0", new()
        {
            LbId = lb.Id,
            ForwardProtocol = "http",
            ForwardPort = 80,
        });
    
        var back1 = new Scaleway.Loadbalancers.Backend("back1", new()
        {
            LbId = lb.Id,
            ForwardProtocol = "tcp",
            ForwardPort = 81,
        });
    
        // Template
        var main = new Scaleway.Instance.Template("main", new()
        {
            Tags = new[]
            {
                "terraform-test",
                "scaleway_autoscaling_group",
                "lb_config",
            },
            ServerType = "PRO2-M",
        });
    
        // AutoScaling Group
        var mainGroup = new Scaleway.Autoscaling.Group("main", new()
        {
            TemplateId = main.Id,
            ScalingPolicy = new Scaleway.Autoscaling.Inputs.GroupScalingPolicyArgs
            {
                MinimumSize = 0,
                MaximumSize = 25,
                MemoryTarget = 75,
            },
            LoadBalancerConfiguration = new Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfigurationArgs
            {
                LoadBalancerId = lb.Id,
                Backends = new[]
                {
                    new Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfigurationBackendArgs
                    {
                        BackendId = back0.Id,
                        AddressFamily = "ipv6",
                    },
                    new Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfigurationBackendArgs
                    {
                        BackendId = back1.Id,
                        AddressFamily = "ipv4",
                        PrivateNetworkId = pn.Id,
                    },
                },
                AutoHealing = new Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfigurationAutoHealingArgs
                {
                    Enabled = true,
                    GracePeriod = "10m",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.network.Vpc;
    import com.pulumi.scaleway.network.PrivateNetwork;
    import com.pulumi.scaleway.network.PrivateNetworkArgs;
    import com.pulumi.scaleway.loadbalancers.LoadBalancer;
    import com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;
    import com.pulumi.scaleway.loadbalancers.Backend;
    import com.pulumi.scaleway.loadbalancers.BackendArgs;
    import com.pulumi.scaleway.instance.Template;
    import com.pulumi.scaleway.instance.TemplateArgs;
    import com.pulumi.scaleway.autoscaling.Group;
    import com.pulumi.scaleway.autoscaling.GroupArgs;
    import com.pulumi.scaleway.autoscaling.inputs.GroupScalingPolicyArgs;
    import com.pulumi.scaleway.autoscaling.inputs.GroupLoadBalancerConfigurationArgs;
    import com.pulumi.scaleway.autoscaling.inputs.GroupLoadBalancerConfigurationBackendArgs;
    import com.pulumi.scaleway.autoscaling.inputs.GroupLoadBalancerConfigurationAutoHealingArgs;
    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) {
            // VPC resources
            var vpc = new Vpc("vpc");
    
            var pn = new PrivateNetwork("pn", PrivateNetworkArgs.builder()
                .vpcId(vpc.id())
                .build());
    
            // LB resources
            var lb = new LoadBalancer("lb", LoadBalancerArgs.builder()
                .type("LB-S")
                .build());
    
            var back0 = new Backend("back0", BackendArgs.builder()
                .lbId(lb.id())
                .forwardProtocol("http")
                .forwardPort(80)
                .build());
    
            var back1 = new Backend("back1", BackendArgs.builder()
                .lbId(lb.id())
                .forwardProtocol("tcp")
                .forwardPort(81)
                .build());
    
            // Template
            var main = new Template("main", TemplateArgs.builder()
                .tags(            
                    "terraform-test",
                    "scaleway_autoscaling_group",
                    "lb_config")
                .serverType("PRO2-M")
                .build());
    
            // AutoScaling Group
            var mainGroup = new Group("mainGroup", GroupArgs.builder()
                .templateId(main.id())
                .scalingPolicy(GroupScalingPolicyArgs.builder()
                    .minimumSize(0)
                    .maximumSize(25)
                    .memoryTarget(75)
                    .build())
                .loadBalancerConfiguration(GroupLoadBalancerConfigurationArgs.builder()
                    .loadBalancerId(lb.id())
                    .backends(                
                        GroupLoadBalancerConfigurationBackendArgs.builder()
                            .backendId(back0.id())
                            .addressFamily("ipv6")
                            .build(),
                        GroupLoadBalancerConfigurationBackendArgs.builder()
                            .backendId(back1.id())
                            .addressFamily("ipv4")
                            .privateNetworkId(pn.id())
                            .build())
                    .autoHealing(GroupLoadBalancerConfigurationAutoHealingArgs.builder()
                        .enabled(true)
                        .gracePeriod("10m")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      # VPC resources
      vpc:
        type: scaleway:network:Vpc
      pn:
        type: scaleway:network:PrivateNetwork
        properties:
          vpcId: ${vpc.id}
      # LB resources
      lb:
        type: scaleway:loadbalancers:LoadBalancer
        properties:
          type: LB-S
      back0:
        type: scaleway:loadbalancers:Backend
        properties:
          lbId: ${lb.id}
          forwardProtocol: http
          forwardPort: 80
      back1:
        type: scaleway:loadbalancers:Backend
        properties:
          lbId: ${lb.id}
          forwardProtocol: tcp
          forwardPort: 81
      # Template
      main:
        type: scaleway:instance:Template
        properties:
          tags:
            - terraform-test
            - scaleway_autoscaling_group
            - lb_config
          serverType: PRO2-M
      # AutoScaling Group
      mainGroup:
        type: scaleway:autoscaling:Group
        name: main
        properties:
          templateId: ${main.id}
          scalingPolicy:
            minimumSize: 0
            maximumSize: 25
            memoryTarget: 75
          loadBalancerConfiguration:
            loadBalancerId: ${lb.id}
            backends:
              - backendId: ${back0.id}
                addressFamily: ipv6
              - backendId: ${back1.id}
                addressFamily: ipv4
                privateNetworkId: ${pn.id}
            autoHealing:
              enabled: true
              gracePeriod: 10m
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    # VPC resources
    resource "scaleway_network_vpc" "vpc" {
    }
    resource "scaleway_network_privatenetwork" "pn" {
      vpc_id = scaleway_network_vpc.vpc.id
    }
    # LB resources
    resource "scaleway_loadbalancers_loadbalancer" "lb" {
      type = "LB-S"
    }
    resource "scaleway_loadbalancers_backend" "back0" {
      lb_id            = scaleway_loadbalancers_loadbalancer.lb.id
      forward_protocol = "http"
      forward_port     = 80
    }
    resource "scaleway_loadbalancers_backend" "back1" {
      lb_id            = scaleway_loadbalancers_loadbalancer.lb.id
      forward_protocol = "tcp"
      forward_port     = 81
    }
    # Template
    resource "scaleway_instance_template" "main" {
      tags        = ["terraform-test", "scaleway_autoscaling_group", "lb_config"]
      server_type = "PRO2-M"
    }
    # AutoScaling Group
    resource "scaleway_autoscaling_group" "main" {
      template_id = scaleway_instance_template.main.id
      scaling_policy = {
        minimum_size  = 0
        maximum_size  = 25
        memory_target = 75
      }
      load_balancer_configuration = {
        load_balancer_id = scaleway_loadbalancers_loadbalancer.lb.id
        backends = [{
          "backendId"     = scaleway_loadbalancers_backend.back0.id
          "addressFamily" = "ipv6"
          }, {
          "backendId"        = scaleway_loadbalancers_backend.back1.id
          "addressFamily"    = "ipv4"
          "privateNetworkId" = scaleway_network_privatenetwork.pn.id
        }]
        auto_healing = {
          enabled      = true
          grace_period = "10m"
        }
      }
    }
    

    Create Group Resource

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

    Constructor syntax

    new Group(name: string, args: GroupArgs, opts?: CustomResourceOptions);
    @overload
    def Group(resource_name: str,
              args: GroupArgs,
              opts: Optional[ResourceOptions] = None)
    
    @overload
    def Group(resource_name: str,
              opts: Optional[ResourceOptions] = None,
              scaling_policy: Optional[GroupScalingPolicyArgs] = None,
              template_id: Optional[str] = None,
              load_balancer_configuration: Optional[GroupLoadBalancerConfigurationArgs] = None,
              name: Optional[str] = None,
              project_id: Optional[str] = None,
              tags: Optional[Sequence[str]] = None,
              zone: Optional[str] = None)
    func NewGroup(ctx *Context, name string, args GroupArgs, opts ...ResourceOption) (*Group, error)
    public Group(string name, GroupArgs args, CustomResourceOptions? opts = null)
    public Group(String name, GroupArgs args)
    public Group(String name, GroupArgs args, CustomResourceOptions options)
    
    type: scaleway:autoscaling:Group
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "scaleway_autoscaling_group" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args GroupArgs
    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 GroupArgs
    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 GroupArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args GroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args GroupArgs
    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 groupResource = new Scaleway.Autoscaling.Group("groupResource", new()
    {
        ScalingPolicy = new Scaleway.Autoscaling.Inputs.GroupScalingPolicyArgs
        {
            MaximumSize = 0,
            MinimumSize = 0,
            CpuTarget = 0,
            FixedSize = 0,
            MemoryTarget = 0,
            ScaleInCooldown = "string",
            ScaleInStep = 0,
            ScaleOutCooldown = "string",
            ScaleOutStep = 0,
        },
        TemplateId = "string",
        LoadBalancerConfiguration = new Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfigurationArgs
        {
            Backends = new[]
            {
                new Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfigurationBackendArgs
                {
                    AddressFamily = "string",
                    BackendId = "string",
                    PrivateNetworkId = "string",
                },
            },
            LoadBalancerId = "string",
            AutoHealing = new Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfigurationAutoHealingArgs
            {
                Enabled = false,
                GracePeriod = "string",
            },
        },
        Name = "string",
        ProjectId = "string",
        Tags = new[]
        {
            "string",
        },
        Zone = "string",
    });
    
    example, err := autoscaling.NewGroup(ctx, "groupResource", &autoscaling.GroupArgs{
    	ScalingPolicy: &autoscaling.GroupScalingPolicyArgs{
    		MaximumSize:      pulumi.Int(0),
    		MinimumSize:      pulumi.Int(0),
    		CpuTarget:        pulumi.Int(0),
    		FixedSize:        pulumi.Int(0),
    		MemoryTarget:     pulumi.Int(0),
    		ScaleInCooldown:  pulumi.String("string"),
    		ScaleInStep:      pulumi.Int(0),
    		ScaleOutCooldown: pulumi.String("string"),
    		ScaleOutStep:     pulumi.Int(0),
    	},
    	TemplateId: pulumi.String("string"),
    	LoadBalancerConfiguration: &autoscaling.GroupLoadBalancerConfigurationArgs{
    		Backends: autoscaling.GroupLoadBalancerConfigurationBackendArray{
    			&autoscaling.GroupLoadBalancerConfigurationBackendArgs{
    				AddressFamily:    pulumi.String("string"),
    				BackendId:        pulumi.String("string"),
    				PrivateNetworkId: pulumi.String("string"),
    			},
    		},
    		LoadBalancerId: pulumi.String("string"),
    		AutoHealing: &autoscaling.GroupLoadBalancerConfigurationAutoHealingArgs{
    			Enabled:     pulumi.Bool(false),
    			GracePeriod: pulumi.String("string"),
    		},
    	},
    	Name:      pulumi.String("string"),
    	ProjectId: pulumi.String("string"),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Zone: pulumi.String("string"),
    })
    
    resource "scaleway_autoscaling_group" "groupResource" {
      lifecycle {
        create_before_destroy = true
      }
      scaling_policy = {
        maximum_size       = 0
        minimum_size       = 0
        cpu_target         = 0
        fixed_size         = 0
        memory_target      = 0
        scale_in_cooldown  = "string"
        scale_in_step      = 0
        scale_out_cooldown = "string"
        scale_out_step     = 0
      }
      template_id = "string"
      load_balancer_configuration = {
        backends = [{
          address_family     = "string"
          backend_id         = "string"
          private_network_id = "string"
        }]
        load_balancer_id = "string"
        auto_healing = {
          enabled      = false
          grace_period = "string"
        }
      }
      name       = "string"
      project_id = "string"
      tags       = ["string"]
      zone       = "string"
    }
    
    var groupResource = new com.pulumi.scaleway.autoscaling.Group("groupResource", com.pulumi.scaleway.autoscaling.GroupArgs.builder()
        .scalingPolicy(GroupScalingPolicyArgs.builder()
            .maximumSize(0)
            .minimumSize(0)
            .cpuTarget(0)
            .fixedSize(0)
            .memoryTarget(0)
            .scaleInCooldown("string")
            .scaleInStep(0)
            .scaleOutCooldown("string")
            .scaleOutStep(0)
            .build())
        .templateId("string")
        .loadBalancerConfiguration(GroupLoadBalancerConfigurationArgs.builder()
            .backends(GroupLoadBalancerConfigurationBackendArgs.builder()
                .addressFamily("string")
                .backendId("string")
                .privateNetworkId("string")
                .build())
            .loadBalancerId("string")
            .autoHealing(GroupLoadBalancerConfigurationAutoHealingArgs.builder()
                .enabled(false)
                .gracePeriod("string")
                .build())
            .build())
        .name("string")
        .projectId("string")
        .tags("string")
        .zone("string")
        .build());
    
    group_resource = scaleway.autoscaling.Group("groupResource",
        scaling_policy={
            "maximum_size": 0,
            "minimum_size": 0,
            "cpu_target": 0,
            "fixed_size": 0,
            "memory_target": 0,
            "scale_in_cooldown": "string",
            "scale_in_step": 0,
            "scale_out_cooldown": "string",
            "scale_out_step": 0,
        },
        template_id="string",
        load_balancer_configuration={
            "backends": [{
                "address_family": "string",
                "backend_id": "string",
                "private_network_id": "string",
            }],
            "load_balancer_id": "string",
            "auto_healing": {
                "enabled": False,
                "grace_period": "string",
            },
        },
        name="string",
        project_id="string",
        tags=["string"],
        zone="string")
    
    const groupResource = new scaleway.autoscaling.Group("groupResource", {
        scalingPolicy: {
            maximumSize: 0,
            minimumSize: 0,
            cpuTarget: 0,
            fixedSize: 0,
            memoryTarget: 0,
            scaleInCooldown: "string",
            scaleInStep: 0,
            scaleOutCooldown: "string",
            scaleOutStep: 0,
        },
        templateId: "string",
        loadBalancerConfiguration: {
            backends: [{
                addressFamily: "string",
                backendId: "string",
                privateNetworkId: "string",
            }],
            loadBalancerId: "string",
            autoHealing: {
                enabled: false,
                gracePeriod: "string",
            },
        },
        name: "string",
        projectId: "string",
        tags: ["string"],
        zone: "string",
    });
    
    type: scaleway:autoscaling:Group
    properties:
        loadBalancerConfiguration:
            autoHealing:
                enabled: false
                gracePeriod: string
            backends:
                - addressFamily: string
                  backendId: string
                  privateNetworkId: string
            loadBalancerId: string
        name: string
        projectId: string
        scalingPolicy:
            cpuTarget: 0
            fixedSize: 0
            maximumSize: 0
            memoryTarget: 0
            minimumSize: 0
            scaleInCooldown: string
            scaleInStep: 0
            scaleOutCooldown: string
            scaleOutStep: 0
        tags:
            - string
        templateId: string
        zone: string
    

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

    ScalingPolicy Pulumiverse.Scaleway.Autoscaling.Inputs.GroupScalingPolicy

    The scaling policy configuration.

    The scalingPolicy block contains:

    TemplateId string
    The ID of the Instance Template used to create instances in this group.
    LoadBalancerConfiguration Pulumiverse.Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfiguration

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    Name string
    The name of the AutoScaling Group. If not set, a name will be generated.
    ProjectId string
    The ID of the project the AutoScaling Group is associated with.
    Tags List<string>
    The tags associated with the AutoScaling Group.
    Zone string
    The zone in which the AutoScaling Group should be created.
    ScalingPolicy GroupScalingPolicyArgs

    The scaling policy configuration.

    The scalingPolicy block contains:

    TemplateId string
    The ID of the Instance Template used to create instances in this group.
    LoadBalancerConfiguration GroupLoadBalancerConfigurationArgs

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    Name string
    The name of the AutoScaling Group. If not set, a name will be generated.
    ProjectId string
    The ID of the project the AutoScaling Group is associated with.
    Tags []string
    The tags associated with the AutoScaling Group.
    Zone string
    The zone in which the AutoScaling Group should be created.
    scaling_policy object

    The scaling policy configuration.

    The scalingPolicy block contains:

    template_id string
    The ID of the Instance Template used to create instances in this group.
    load_balancer_configuration object

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name string
    The name of the AutoScaling Group. If not set, a name will be generated.
    project_id string
    The ID of the project the AutoScaling Group is associated with.
    tags list(string)
    The tags associated with the AutoScaling Group.
    zone string
    The zone in which the AutoScaling Group should be created.
    scalingPolicy GroupScalingPolicy

    The scaling policy configuration.

    The scalingPolicy block contains:

    templateId String
    The ID of the Instance Template used to create instances in this group.
    loadBalancerConfiguration GroupLoadBalancerConfiguration

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name String
    The name of the AutoScaling Group. If not set, a name will be generated.
    projectId String
    The ID of the project the AutoScaling Group is associated with.
    tags List<String>
    The tags associated with the AutoScaling Group.
    zone String
    The zone in which the AutoScaling Group should be created.
    scalingPolicy GroupScalingPolicy

    The scaling policy configuration.

    The scalingPolicy block contains:

    templateId string
    The ID of the Instance Template used to create instances in this group.
    loadBalancerConfiguration GroupLoadBalancerConfiguration

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name string
    The name of the AutoScaling Group. If not set, a name will be generated.
    projectId string
    The ID of the project the AutoScaling Group is associated with.
    tags string[]
    The tags associated with the AutoScaling Group.
    zone string
    The zone in which the AutoScaling Group should be created.
    scaling_policy GroupScalingPolicyArgs

    The scaling policy configuration.

    The scalingPolicy block contains:

    template_id str
    The ID of the Instance Template used to create instances in this group.
    load_balancer_configuration GroupLoadBalancerConfigurationArgs

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name str
    The name of the AutoScaling Group. If not set, a name will be generated.
    project_id str
    The ID of the project the AutoScaling Group is associated with.
    tags Sequence[str]
    The tags associated with the AutoScaling Group.
    zone str
    The zone in which the AutoScaling Group should be created.
    scalingPolicy Property Map

    The scaling policy configuration.

    The scalingPolicy block contains:

    templateId String
    The ID of the Instance Template used to create instances in this group.
    loadBalancerConfiguration Property Map

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name String
    The name of the AutoScaling Group. If not set, a name will be generated.
    projectId String
    The ID of the project the AutoScaling Group is associated with.
    tags List<String>
    The tags associated with the AutoScaling Group.
    zone String
    The zone in which the AutoScaling Group should be created.

    Outputs

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

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

    Look up Existing Group Resource

    Get an existing Group 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?: GroupState, opts?: CustomResourceOptions): Group
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            created_at: Optional[str] = None,
            load_balancer_configuration: Optional[GroupLoadBalancerConfigurationArgs] = None,
            name: Optional[str] = None,
            project_id: Optional[str] = None,
            scaling_policy: Optional[GroupScalingPolicyArgs] = None,
            status: Optional[str] = None,
            tags: Optional[Sequence[str]] = None,
            template_id: Optional[str] = None,
            updated_at: Optional[str] = None,
            zone: Optional[str] = None) -> Group
    func GetGroup(ctx *Context, name string, id IDInput, state *GroupState, opts ...ResourceOption) (*Group, error)
    public static Group Get(string name, Input<string> id, GroupState? state, CustomResourceOptions? opts = null)
    public static Group get(String name, Output<String> id, GroupState state, CustomResourceOptions options)
    resources:  _:    type: scaleway:autoscaling:Group    get:      id: ${id}
    import {
      to = scaleway_autoscaling_group.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 AutoScaling Group.
    LoadBalancerConfiguration Pulumiverse.Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfiguration

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    Name string
    The name of the AutoScaling Group. If not set, a name will be generated.
    ProjectId string
    The ID of the project the AutoScaling Group is associated with.
    ScalingPolicy Pulumiverse.Scaleway.Autoscaling.Inputs.GroupScalingPolicy

    The scaling policy configuration.

    The scalingPolicy block contains:

    Status string
    The current status of the AutoScaling Group.
    Tags List<string>
    The tags associated with the AutoScaling Group.
    TemplateId string
    The ID of the Instance Template used to create instances in this group.
    UpdatedAt string
    The last update timestamp of the AutoScaling Group.
    Zone string
    The zone in which the AutoScaling Group should be created.
    CreatedAt string
    The creation timestamp of the AutoScaling Group.
    LoadBalancerConfiguration GroupLoadBalancerConfigurationArgs

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    Name string
    The name of the AutoScaling Group. If not set, a name will be generated.
    ProjectId string
    The ID of the project the AutoScaling Group is associated with.
    ScalingPolicy GroupScalingPolicyArgs

    The scaling policy configuration.

    The scalingPolicy block contains:

    Status string
    The current status of the AutoScaling Group.
    Tags []string
    The tags associated with the AutoScaling Group.
    TemplateId string
    The ID of the Instance Template used to create instances in this group.
    UpdatedAt string
    The last update timestamp of the AutoScaling Group.
    Zone string
    The zone in which the AutoScaling Group should be created.
    created_at string
    The creation timestamp of the AutoScaling Group.
    load_balancer_configuration object

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name string
    The name of the AutoScaling Group. If not set, a name will be generated.
    project_id string
    The ID of the project the AutoScaling Group is associated with.
    scaling_policy object

    The scaling policy configuration.

    The scalingPolicy block contains:

    status string
    The current status of the AutoScaling Group.
    tags list(string)
    The tags associated with the AutoScaling Group.
    template_id string
    The ID of the Instance Template used to create instances in this group.
    updated_at string
    The last update timestamp of the AutoScaling Group.
    zone string
    The zone in which the AutoScaling Group should be created.
    createdAt String
    The creation timestamp of the AutoScaling Group.
    loadBalancerConfiguration GroupLoadBalancerConfiguration

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name String
    The name of the AutoScaling Group. If not set, a name will be generated.
    projectId String
    The ID of the project the AutoScaling Group is associated with.
    scalingPolicy GroupScalingPolicy

    The scaling policy configuration.

    The scalingPolicy block contains:

    status String
    The current status of the AutoScaling Group.
    tags List<String>
    The tags associated with the AutoScaling Group.
    templateId String
    The ID of the Instance Template used to create instances in this group.
    updatedAt String
    The last update timestamp of the AutoScaling Group.
    zone String
    The zone in which the AutoScaling Group should be created.
    createdAt string
    The creation timestamp of the AutoScaling Group.
    loadBalancerConfiguration GroupLoadBalancerConfiguration

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name string
    The name of the AutoScaling Group. If not set, a name will be generated.
    projectId string
    The ID of the project the AutoScaling Group is associated with.
    scalingPolicy GroupScalingPolicy

    The scaling policy configuration.

    The scalingPolicy block contains:

    status string
    The current status of the AutoScaling Group.
    tags string[]
    The tags associated with the AutoScaling Group.
    templateId string
    The ID of the Instance Template used to create instances in this group.
    updatedAt string
    The last update timestamp of the AutoScaling Group.
    zone string
    The zone in which the AutoScaling Group should be created.
    created_at str
    The creation timestamp of the AutoScaling Group.
    load_balancer_configuration GroupLoadBalancerConfigurationArgs

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name str
    The name of the AutoScaling Group. If not set, a name will be generated.
    project_id str
    The ID of the project the AutoScaling Group is associated with.
    scaling_policy GroupScalingPolicyArgs

    The scaling policy configuration.

    The scalingPolicy block contains:

    status str
    The current status of the AutoScaling Group.
    tags Sequence[str]
    The tags associated with the AutoScaling Group.
    template_id str
    The ID of the Instance Template used to create instances in this group.
    updated_at str
    The last update timestamp of the AutoScaling Group.
    zone str
    The zone in which the AutoScaling Group should be created.
    createdAt String
    The creation timestamp of the AutoScaling Group.
    loadBalancerConfiguration Property Map

    The load balancer configuration.

    Important: Due to current limitations, this block cannot be unset. To remove it once it has been set, the resource needs to be recreated.

    The loadBalancerConfiguration block contains:

    name String
    The name of the AutoScaling Group. If not set, a name will be generated.
    projectId String
    The ID of the project the AutoScaling Group is associated with.
    scalingPolicy Property Map

    The scaling policy configuration.

    The scalingPolicy block contains:

    status String
    The current status of the AutoScaling Group.
    tags List<String>
    The tags associated with the AutoScaling Group.
    templateId String
    The ID of the Instance Template used to create instances in this group.
    updatedAt String
    The last update timestamp of the AutoScaling Group.
    zone String
    The zone in which the AutoScaling Group should be created.

    Supporting Types

    GroupLoadBalancerConfiguration, GroupLoadBalancerConfigurationArgs

    Backends List<Pulumiverse.Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfigurationBackend>

    The list of load balancer backend configurations.

    The backends block contains:

    LoadBalancerId string
    The ID of the load balancer.
    AutoHealing Pulumiverse.Scaleway.Autoscaling.Inputs.GroupLoadBalancerConfigurationAutoHealing

    The auto-healing configuration.

    The autoHealing block contains:

    Backends []GroupLoadBalancerConfigurationBackend

    The list of load balancer backend configurations.

    The backends block contains:

    LoadBalancerId string
    The ID of the load balancer.
    AutoHealing GroupLoadBalancerConfigurationAutoHealing

    The auto-healing configuration.

    The autoHealing block contains:

    backends list(object)

    The list of load balancer backend configurations.

    The backends block contains:

    load_balancer_id string
    The ID of the load balancer.
    auto_healing object

    The auto-healing configuration.

    The autoHealing block contains:

    backends List<GroupLoadBalancerConfigurationBackend>

    The list of load balancer backend configurations.

    The backends block contains:

    loadBalancerId String
    The ID of the load balancer.
    autoHealing GroupLoadBalancerConfigurationAutoHealing

    The auto-healing configuration.

    The autoHealing block contains:

    backends GroupLoadBalancerConfigurationBackend[]

    The list of load balancer backend configurations.

    The backends block contains:

    loadBalancerId string
    The ID of the load balancer.
    autoHealing GroupLoadBalancerConfigurationAutoHealing

    The auto-healing configuration.

    The autoHealing block contains:

    backends Sequence[GroupLoadBalancerConfigurationBackend]

    The list of load balancer backend configurations.

    The backends block contains:

    load_balancer_id str
    The ID of the load balancer.
    auto_healing GroupLoadBalancerConfigurationAutoHealing

    The auto-healing configuration.

    The autoHealing block contains:

    backends List<Property Map>

    The list of load balancer backend configurations.

    The backends block contains:

    loadBalancerId String
    The ID of the load balancer.
    autoHealing Property Map

    The auto-healing configuration.

    The autoHealing block contains:

    GroupLoadBalancerConfigurationAutoHealing, GroupLoadBalancerConfigurationAutoHealingArgs

    Enabled bool
    Whether auto-healing is enabled.
    GracePeriod string
    The grace period for health checks.
    Enabled bool
    Whether auto-healing is enabled.
    GracePeriod string
    The grace period for health checks.
    enabled bool
    Whether auto-healing is enabled.
    grace_period string
    The grace period for health checks.
    enabled Boolean
    Whether auto-healing is enabled.
    gracePeriod String
    The grace period for health checks.
    enabled boolean
    Whether auto-healing is enabled.
    gracePeriod string
    The grace period for health checks.
    enabled bool
    Whether auto-healing is enabled.
    grace_period str
    The grace period for health checks.
    enabled Boolean
    Whether auto-healing is enabled.
    gracePeriod String
    The grace period for health checks.

    GroupLoadBalancerConfigurationBackend, GroupLoadBalancerConfigurationBackendArgs

    AddressFamily string
    The IP address family (IPv4 or IPv6).
    BackendId string
    The ID of the load balancer backend.
    PrivateNetworkId string
    The ID of the private network.
    AddressFamily string
    The IP address family (IPv4 or IPv6).
    BackendId string
    The ID of the load balancer backend.
    PrivateNetworkId string
    The ID of the private network.
    address_family string
    The IP address family (IPv4 or IPv6).
    backend_id string
    The ID of the load balancer backend.
    private_network_id string
    The ID of the private network.
    addressFamily String
    The IP address family (IPv4 or IPv6).
    backendId String
    The ID of the load balancer backend.
    privateNetworkId String
    The ID of the private network.
    addressFamily string
    The IP address family (IPv4 or IPv6).
    backendId string
    The ID of the load balancer backend.
    privateNetworkId string
    The ID of the private network.
    address_family str
    The IP address family (IPv4 or IPv6).
    backend_id str
    The ID of the load balancer backend.
    private_network_id str
    The ID of the private network.
    addressFamily String
    The IP address family (IPv4 or IPv6).
    backendId String
    The ID of the load balancer backend.
    privateNetworkId String
    The ID of the private network.

    GroupScalingPolicy, GroupScalingPolicyArgs

    MaximumSize int
    The maximum number of instances in the group.
    MinimumSize int
    The minimum number of instances in the group.
    CpuTarget int
    The target CPU utilization percentage to trigger scaling events.
    FixedSize int
    The fixed number of instances for the group.
    MemoryTarget int

    The target memory utilization percentage to trigger scaling events.

    Important: Exactly one of fixedSize, cpuTarget and memoryTarget must be defined.

    ScaleInCooldown string
    The cooldown duration after a scale-in event.
    ScaleInStep int
    The number of instances to remove during scale-in event.
    ScaleOutCooldown string
    The cooldown duration after a scale-out event.
    ScaleOutStep int
    The number of instances to add during scale-out event.
    MaximumSize int
    The maximum number of instances in the group.
    MinimumSize int
    The minimum number of instances in the group.
    CpuTarget int
    The target CPU utilization percentage to trigger scaling events.
    FixedSize int
    The fixed number of instances for the group.
    MemoryTarget int

    The target memory utilization percentage to trigger scaling events.

    Important: Exactly one of fixedSize, cpuTarget and memoryTarget must be defined.

    ScaleInCooldown string
    The cooldown duration after a scale-in event.
    ScaleInStep int
    The number of instances to remove during scale-in event.
    ScaleOutCooldown string
    The cooldown duration after a scale-out event.
    ScaleOutStep int
    The number of instances to add during scale-out event.
    maximum_size number
    The maximum number of instances in the group.
    minimum_size number
    The minimum number of instances in the group.
    cpu_target number
    The target CPU utilization percentage to trigger scaling events.
    fixed_size number
    The fixed number of instances for the group.
    memory_target number

    The target memory utilization percentage to trigger scaling events.

    Important: Exactly one of fixedSize, cpuTarget and memoryTarget must be defined.

    scale_in_cooldown string
    The cooldown duration after a scale-in event.
    scale_in_step number
    The number of instances to remove during scale-in event.
    scale_out_cooldown string
    The cooldown duration after a scale-out event.
    scale_out_step number
    The number of instances to add during scale-out event.
    maximumSize Integer
    The maximum number of instances in the group.
    minimumSize Integer
    The minimum number of instances in the group.
    cpuTarget Integer
    The target CPU utilization percentage to trigger scaling events.
    fixedSize Integer
    The fixed number of instances for the group.
    memoryTarget Integer

    The target memory utilization percentage to trigger scaling events.

    Important: Exactly one of fixedSize, cpuTarget and memoryTarget must be defined.

    scaleInCooldown String
    The cooldown duration after a scale-in event.
    scaleInStep Integer
    The number of instances to remove during scale-in event.
    scaleOutCooldown String
    The cooldown duration after a scale-out event.
    scaleOutStep Integer
    The number of instances to add during scale-out event.
    maximumSize number
    The maximum number of instances in the group.
    minimumSize number
    The minimum number of instances in the group.
    cpuTarget number
    The target CPU utilization percentage to trigger scaling events.
    fixedSize number
    The fixed number of instances for the group.
    memoryTarget number

    The target memory utilization percentage to trigger scaling events.

    Important: Exactly one of fixedSize, cpuTarget and memoryTarget must be defined.

    scaleInCooldown string
    The cooldown duration after a scale-in event.
    scaleInStep number
    The number of instances to remove during scale-in event.
    scaleOutCooldown string
    The cooldown duration after a scale-out event.
    scaleOutStep number
    The number of instances to add during scale-out event.
    maximum_size int
    The maximum number of instances in the group.
    minimum_size int
    The minimum number of instances in the group.
    cpu_target int
    The target CPU utilization percentage to trigger scaling events.
    fixed_size int
    The fixed number of instances for the group.
    memory_target int

    The target memory utilization percentage to trigger scaling events.

    Important: Exactly one of fixedSize, cpuTarget and memoryTarget must be defined.

    scale_in_cooldown str
    The cooldown duration after a scale-in event.
    scale_in_step int
    The number of instances to remove during scale-in event.
    scale_out_cooldown str
    The cooldown duration after a scale-out event.
    scale_out_step int
    The number of instances to add during scale-out event.
    maximumSize Number
    The maximum number of instances in the group.
    minimumSize Number
    The minimum number of instances in the group.
    cpuTarget Number
    The target CPU utilization percentage to trigger scaling events.
    fixedSize Number
    The fixed number of instances for the group.
    memoryTarget Number

    The target memory utilization percentage to trigger scaling events.

    Important: Exactly one of fixedSize, cpuTarget and memoryTarget must be defined.

    scaleInCooldown String
    The cooldown duration after a scale-in event.
    scaleInStep Number
    The number of instances to remove during scale-in event.
    scaleOutCooldown String
    The cooldown duration after a scale-out event.
    scaleOutStep Number
    The number of instances to add during scale-out event.

    Import

    AutoScaling Groups can be imported using their id:

    $ pulumi import scaleway:autoscaling/group:Group main <group_id>
    

    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