1. Packages
  2. Scaleway
  3. API Docs
  4. Loadbalancer
Scaleway v1.12.1 published on Monday, Apr 15, 2024 by pulumiverse

scaleway.Loadbalancer

Explore with Pulumi AI

scaleway logo
Scaleway v1.12.1 published on Monday, Apr 15, 2024 by pulumiverse

    Creates and manages Scaleway Load-Balancers. For more information, see the documentation.

    Example Usage

    Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = new scaleway.LoadbalancerIp("main", {zone: "fr-par-1"});
    const base = new scaleway.Loadbalancer("base", {
        ipId: main.id,
        zone: main.zone,
        type: "LB-S",
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main = scaleway.LoadbalancerIp("main", zone="fr-par-1")
    base = scaleway.Loadbalancer("base",
        ip_id=main.id,
        zone=main.zone,
        type="LB-S")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		main, err := scaleway.NewLoadbalancerIp(ctx, "main", &scaleway.LoadbalancerIpArgs{
    			Zone: pulumi.String("fr-par-1"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewLoadbalancer(ctx, "base", &scaleway.LoadbalancerArgs{
    			IpId: main.ID(),
    			Zone: main.Zone,
    			Type: pulumi.String("LB-S"),
    		})
    		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.LoadbalancerIp("main", new()
        {
            Zone = "fr-par-1",
        });
    
        var @base = new Scaleway.Loadbalancer("base", new()
        {
            IpId = main.Id,
            Zone = main.Zone,
            Type = "LB-S",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.LoadbalancerIp;
    import com.pulumi.scaleway.LoadbalancerIpArgs;
    import com.pulumi.scaleway.Loadbalancer;
    import com.pulumi.scaleway.LoadbalancerArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var main = new LoadbalancerIp("main", LoadbalancerIpArgs.builder()        
                .zone("fr-par-1")
                .build());
    
            var base = new Loadbalancer("base", LoadbalancerArgs.builder()        
                .ipId(main.id())
                .zone(main.zone())
                .type("LB-S")
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:LoadbalancerIp
        properties:
          zone: fr-par-1
      base:
        type: scaleway:Loadbalancer
        properties:
          ipId: ${main.id}
          zone: ${main.zone}
          type: LB-S
    

    Private LB

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const base = new scaleway.Loadbalancer("base", {
        ipId: scaleway_lb_ip.main.id,
        zone: scaleway_lb_ip.main.zone,
        type: "LB-S",
        assignFlexibleIp: false,
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    base = scaleway.Loadbalancer("base",
        ip_id=scaleway_lb_ip["main"]["id"],
        zone=scaleway_lb_ip["main"]["zone"],
        type="LB-S",
        assign_flexible_ip=False)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := scaleway.NewLoadbalancer(ctx, "base", &scaleway.LoadbalancerArgs{
    			IpId:             pulumi.Any(scaleway_lb_ip.Main.Id),
    			Zone:             pulumi.Any(scaleway_lb_ip.Main.Zone),
    			Type:             pulumi.String("LB-S"),
    			AssignFlexibleIp: pulumi.Bool(false),
    		})
    		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 @base = new Scaleway.Loadbalancer("base", new()
        {
            IpId = scaleway_lb_ip.Main.Id,
            Zone = scaleway_lb_ip.Main.Zone,
            Type = "LB-S",
            AssignFlexibleIp = false,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.Loadbalancer;
    import com.pulumi.scaleway.LoadbalancerArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var base = new Loadbalancer("base", LoadbalancerArgs.builder()        
                .ipId(scaleway_lb_ip.main().id())
                .zone(scaleway_lb_ip.main().zone())
                .type("LB-S")
                .assignFlexibleIp(false)
                .build());
    
        }
    }
    
    resources:
      base:
        type: scaleway:Loadbalancer
        properties:
          ipId: ${scaleway_lb_ip.main.id}
          zone: ${scaleway_lb_ip.main.zone}
          type: LB-S
          assignFlexibleIp: false
    

    Multiple configurations

    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.VpcPublicGatewayIp;
    import com.pulumi.scaleway.VpcPrivateNetwork;
    import com.pulumi.scaleway.VpcPublicGateway;
    import com.pulumi.scaleway.VpcPublicGatewayArgs;
    import com.pulumi.scaleway.VpcPublicGatewayDhcp;
    import com.pulumi.scaleway.VpcPublicGatewayDhcpArgs;
    import com.pulumi.scaleway.VpcGatewayNetwork;
    import com.pulumi.scaleway.VpcGatewayNetworkArgs;
    import com.pulumi.scaleway.InstanceServer;
    import com.pulumi.scaleway.InstanceServerArgs;
    import com.pulumi.scaleway.inputs.InstanceServerPrivateNetworkArgs;
    import com.pulumi.scaleway.LoadbalancerIp;
    import com.pulumi.scaleway.Loadbalancer;
    import com.pulumi.scaleway.LoadbalancerArgs;
    import com.pulumi.scaleway.inputs.LoadbalancerPrivateNetworkArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            //## IP for Public Gateway
            var mainVpcPublicGatewayIp = new VpcPublicGatewayIp("mainVpcPublicGatewayIp");
    
            //## Scaleway Private Network
            var mainVpcPrivateNetwork = new VpcPrivateNetwork("mainVpcPrivateNetwork");
    
            //## VPC Public Gateway Network
            var mainVpcPublicGateway = new VpcPublicGateway("mainVpcPublicGateway", VpcPublicGatewayArgs.builder()        
                .type("VPC-GW-S")
                .ipId(mainVpcPublicGatewayIp.id())
                .build());
    
            //## VPC Public Gateway Network DHCP config
            var mainVpcPublicGatewayDhcp = new VpcPublicGatewayDhcp("mainVpcPublicGatewayDhcp", VpcPublicGatewayDhcpArgs.builder()        
                .subnet("10.0.0.0/24")
                .build());
    
            //## VPC Gateway Network
            var mainVpcGatewayNetwork = new VpcGatewayNetwork("mainVpcGatewayNetwork", VpcGatewayNetworkArgs.builder()        
                .gatewayId(mainVpcPublicGateway.id())
                .privateNetworkId(mainVpcPrivateNetwork.id())
                .dhcpId(mainVpcPublicGatewayDhcp.id())
                .cleanupDhcp(true)
                .enableMasquerade(true)
                .build());
    
            //## Scaleway Instance
            var mainInstanceServer = new InstanceServer("mainInstanceServer", InstanceServerArgs.builder()        
                .type("DEV1-S")
                .image("debian_bullseye")
                .enableIpv6(false)
                .privateNetworks(InstanceServerPrivateNetworkArgs.builder()
                    .pnId(mainVpcPrivateNetwork.id())
                    .build())
                .build());
    
            //## IP for LB IP
            var mainLoadbalancerIp = new LoadbalancerIp("mainLoadbalancerIp");
    
            //## Scaleway Private Network
            var mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new VpcPrivateNetwork("mainIndex/vpcPrivateNetworkVpcPrivateNetwork");
    
            //## Scaleway Load Balancer
            var mainLoadbalancer = new Loadbalancer("mainLoadbalancer", LoadbalancerArgs.builder()        
                .ipId(mainLoadbalancerIp.id())
                .type("LB-S")
                .privateNetworks(            
                    LoadbalancerPrivateNetworkArgs.builder()
                        .privateNetworkId(mainVpcPrivateNetwork.id())
                        .staticConfig("172.16.0.100")
                        .build(),
                    LoadbalancerPrivateNetworkArgs.builder()
                        .privateNetworkId(mainVpcPrivateNetwork.id())
                        .dhcpConfig(true)
                        .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(mainVpcPublicGateway)
                    .build());
    
        }
    }
    
    resources:
      ### IP for Public Gateway
      mainVpcPublicGatewayIp:
        type: scaleway:VpcPublicGatewayIp
      ### Scaleway Private Network
      mainVpcPrivateNetwork:
        type: scaleway:VpcPrivateNetwork
      ### VPC Public Gateway Network
      mainVpcPublicGateway:
        type: scaleway:VpcPublicGateway
        properties:
          type: VPC-GW-S
          ipId: ${mainVpcPublicGatewayIp.id}
      ### VPC Public Gateway Network DHCP config
      mainVpcPublicGatewayDhcp:
        type: scaleway:VpcPublicGatewayDhcp
        properties:
          subnet: 10.0.0.0/24
      ### VPC Gateway Network
      mainVpcGatewayNetwork:
        type: scaleway:VpcGatewayNetwork
        properties:
          gatewayId: ${mainVpcPublicGateway.id}
          privateNetworkId: ${mainVpcPrivateNetwork.id}
          dhcpId: ${mainVpcPublicGatewayDhcp.id}
          cleanupDhcp: true
          enableMasquerade: true
      ### Scaleway Instance
      mainInstanceServer:
        type: scaleway:InstanceServer
        properties:
          type: DEV1-S
          image: debian_bullseye
          enableIpv6: false
          privateNetworks:
            - pnId: ${mainVpcPrivateNetwork.id}
      ### IP for LB IP
      mainLoadbalancerIp:
        type: scaleway:LoadbalancerIp
      ### Scaleway Private Network
      mainIndex/vpcPrivateNetworkVpcPrivateNetwork:
        type: scaleway:VpcPrivateNetwork
      ### Scaleway Load Balancer
      mainLoadbalancer:
        type: scaleway:Loadbalancer
        properties:
          ipId: ${mainLoadbalancerIp.id}
          type: LB-S
          privateNetworks:
            - privateNetworkId: ${mainVpcPrivateNetwork.id}
              staticConfig:
                - 172.16.0.100
            - privateNetworkId: ${mainVpcPrivateNetwork.id}
              dhcpConfig: true
        options:
          dependson:
            - ${mainVpcPublicGateway}
    

    Migration

    In order to migrate to other types you can check the migration up or down via our CLI scw lb lb-types list. this change will not recreate your Load Balancer.

    Please check our documentation for further details

    IP ID

    Since v1.15.0, ip_id is a required field. This means that now a separate scaleway.LoadbalancerIp is required. When importing, the IP needs to be imported as well as the LB. When upgrading to v1.15.0, you will need to create a new scaleway.LoadbalancerIp resource and import it.

    For instance, if you had the following:

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = new scaleway.Loadbalancer("main", {
        type: "LB-S",
        zone: "fr-par-1",
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main = scaleway.Loadbalancer("main",
        type="LB-S",
        zone="fr-par-1")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := scaleway.NewLoadbalancer(ctx, "main", &scaleway.LoadbalancerArgs{
    			Type: pulumi.String("LB-S"),
    			Zone: pulumi.String("fr-par-1"),
    		})
    		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.Loadbalancer("main", new()
        {
            Type = "LB-S",
            Zone = "fr-par-1",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.Loadbalancer;
    import com.pulumi.scaleway.LoadbalancerArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var main = new Loadbalancer("main", LoadbalancerArgs.builder()        
                .type("LB-S")
                .zone("fr-par-1")
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:Loadbalancer
        properties:
          type: LB-S
          zone: fr-par-1
    

    You will need to update it to:

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const mainLoadbalancerIp = new scaleway.LoadbalancerIp("mainLoadbalancerIp", {});
    const mainLoadbalancer = new scaleway.Loadbalancer("mainLoadbalancer", {
        ipId: mainLoadbalancerIp.id,
        zone: "fr-par-1",
        type: "LB-S",
        releaseIp: false,
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main_loadbalancer_ip = scaleway.LoadbalancerIp("mainLoadbalancerIp")
    main_loadbalancer = scaleway.Loadbalancer("mainLoadbalancer",
        ip_id=main_loadbalancer_ip.id,
        zone="fr-par-1",
        type="LB-S",
        release_ip=False)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		mainLoadbalancerIp, err := scaleway.NewLoadbalancerIp(ctx, "mainLoadbalancerIp", nil)
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewLoadbalancer(ctx, "mainLoadbalancer", &scaleway.LoadbalancerArgs{
    			IpId:      mainLoadbalancerIp.ID(),
    			Zone:      pulumi.String("fr-par-1"),
    			Type:      pulumi.String("LB-S"),
    			ReleaseIp: pulumi.Bool(false),
    		})
    		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 mainLoadbalancerIp = new Scaleway.LoadbalancerIp("mainLoadbalancerIp");
    
        var mainLoadbalancer = new Scaleway.Loadbalancer("mainLoadbalancer", new()
        {
            IpId = mainLoadbalancerIp.Id,
            Zone = "fr-par-1",
            Type = "LB-S",
            ReleaseIp = false,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.LoadbalancerIp;
    import com.pulumi.scaleway.Loadbalancer;
    import com.pulumi.scaleway.LoadbalancerArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var mainLoadbalancerIp = new LoadbalancerIp("mainLoadbalancerIp");
    
            var mainLoadbalancer = new Loadbalancer("mainLoadbalancer", LoadbalancerArgs.builder()        
                .ipId(mainLoadbalancerIp.id())
                .zone("fr-par-1")
                .type("LB-S")
                .releaseIp(false)
                .build());
    
        }
    }
    
    resources:
      mainLoadbalancerIp:
        type: scaleway:LoadbalancerIp
      mainLoadbalancer:
        type: scaleway:Loadbalancer
        properties:
          ipId: ${mainLoadbalancerIp.id}
          zone: fr-par-1
          type: LB-S
          releaseIp: false
    

    Private Network with static config

    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.LoadbalancerIp;
    import com.pulumi.scaleway.VpcPrivateNetwork;
    import com.pulumi.scaleway.Loadbalancer;
    import com.pulumi.scaleway.LoadbalancerArgs;
    import com.pulumi.scaleway.inputs.LoadbalancerPrivateNetworkArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var mainLoadbalancerIp = new LoadbalancerIp("mainLoadbalancerIp");
    
            var mainVpcPrivateNetwork = new VpcPrivateNetwork("mainVpcPrivateNetwork");
    
            var mainLoadbalancer = new Loadbalancer("mainLoadbalancer", LoadbalancerArgs.builder()        
                .ipId(mainLoadbalancerIp.id())
                .type("LB-S")
                .releaseIp(false)
                .privateNetworks(LoadbalancerPrivateNetworkArgs.builder()
                    .privateNetworkId(mainVpcPrivateNetwork.id())
                    .staticConfig("172.16.0.100")
                    .build())
                .build());
    
        }
    }
    
    resources:
      mainLoadbalancerIp:
        type: scaleway:LoadbalancerIp
      mainVpcPrivateNetwork:
        type: scaleway:VpcPrivateNetwork
      mainLoadbalancer:
        type: scaleway:Loadbalancer
        properties:
          ipId: ${mainLoadbalancerIp.id}
          type: LB-S
          releaseIp: false
          privateNetworks:
            - privateNetworkId: ${mainVpcPrivateNetwork.id}
              staticConfig:
                - 172.16.0.100
    

    Create Loadbalancer Resource

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

    Constructor syntax

    new Loadbalancer(name: string, args: LoadbalancerArgs, opts?: CustomResourceOptions);
    @overload
    def Loadbalancer(resource_name: str,
                     args: LoadbalancerArgs,
                     opts: Optional[ResourceOptions] = None)
    
    @overload
    def Loadbalancer(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     type: Optional[str] = None,
                     assign_flexible_ip: Optional[bool] = None,
                     description: Optional[str] = None,
                     ip_id: Optional[str] = None,
                     name: Optional[str] = None,
                     private_networks: Optional[Sequence[LoadbalancerPrivateNetworkArgs]] = None,
                     project_id: Optional[str] = None,
                     release_ip: Optional[bool] = None,
                     ssl_compatibility_level: Optional[str] = None,
                     tags: Optional[Sequence[str]] = None,
                     zone: Optional[str] = None)
    func NewLoadbalancer(ctx *Context, name string, args LoadbalancerArgs, opts ...ResourceOption) (*Loadbalancer, error)
    public Loadbalancer(string name, LoadbalancerArgs args, CustomResourceOptions? opts = null)
    public Loadbalancer(String name, LoadbalancerArgs args)
    public Loadbalancer(String name, LoadbalancerArgs args, CustomResourceOptions options)
    
    type: scaleway:Loadbalancer
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args LoadbalancerArgs
    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 LoadbalancerArgs
    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 LoadbalancerArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args LoadbalancerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args LoadbalancerArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

    The following reference example uses placeholder values for all input properties.

    var loadbalancerResource = new Scaleway.Loadbalancer("loadbalancerResource", new()
    {
        Type = "string",
        AssignFlexibleIp = false,
        Description = "string",
        IpId = "string",
        Name = "string",
        PrivateNetworks = new[]
        {
            new Scaleway.Inputs.LoadbalancerPrivateNetworkArgs
            {
                PrivateNetworkId = "string",
                DhcpConfig = false,
                StaticConfig = "string",
                Status = "string",
                Zone = "string",
            },
        },
        ProjectId = "string",
        SslCompatibilityLevel = "string",
        Tags = new[]
        {
            "string",
        },
        Zone = "string",
    });
    
    example, err := scaleway.NewLoadbalancer(ctx, "loadbalancerResource", &scaleway.LoadbalancerArgs{
    	Type:             pulumi.String("string"),
    	AssignFlexibleIp: pulumi.Bool(false),
    	Description:      pulumi.String("string"),
    	IpId:             pulumi.String("string"),
    	Name:             pulumi.String("string"),
    	PrivateNetworks: scaleway.LoadbalancerPrivateNetworkArray{
    		&scaleway.LoadbalancerPrivateNetworkArgs{
    			PrivateNetworkId: pulumi.String("string"),
    			DhcpConfig:       pulumi.Bool(false),
    			StaticConfig:     pulumi.String("string"),
    			Status:           pulumi.String("string"),
    			Zone:             pulumi.String("string"),
    		},
    	},
    	ProjectId:             pulumi.String("string"),
    	SslCompatibilityLevel: pulumi.String("string"),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Zone: pulumi.String("string"),
    })
    
    var loadbalancerResource = new Loadbalancer("loadbalancerResource", LoadbalancerArgs.builder()        
        .type("string")
        .assignFlexibleIp(false)
        .description("string")
        .ipId("string")
        .name("string")
        .privateNetworks(LoadbalancerPrivateNetworkArgs.builder()
            .privateNetworkId("string")
            .dhcpConfig(false)
            .staticConfig("string")
            .status("string")
            .zone("string")
            .build())
        .projectId("string")
        .sslCompatibilityLevel("string")
        .tags("string")
        .zone("string")
        .build());
    
    loadbalancer_resource = scaleway.Loadbalancer("loadbalancerResource",
        type="string",
        assign_flexible_ip=False,
        description="string",
        ip_id="string",
        name="string",
        private_networks=[scaleway.LoadbalancerPrivateNetworkArgs(
            private_network_id="string",
            dhcp_config=False,
            static_config="string",
            status="string",
            zone="string",
        )],
        project_id="string",
        ssl_compatibility_level="string",
        tags=["string"],
        zone="string")
    
    const loadbalancerResource = new scaleway.Loadbalancer("loadbalancerResource", {
        type: "string",
        assignFlexibleIp: false,
        description: "string",
        ipId: "string",
        name: "string",
        privateNetworks: [{
            privateNetworkId: "string",
            dhcpConfig: false,
            staticConfig: "string",
            status: "string",
            zone: "string",
        }],
        projectId: "string",
        sslCompatibilityLevel: "string",
        tags: ["string"],
        zone: "string",
    });
    
    type: scaleway:Loadbalancer
    properties:
        assignFlexibleIp: false
        description: string
        ipId: string
        name: string
        privateNetworks:
            - dhcpConfig: false
              privateNetworkId: string
              staticConfig: string
              status: string
              zone: string
        projectId: string
        sslCompatibilityLevel: string
        tags:
            - string
        type: string
        zone: string
    

    Loadbalancer Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Loadbalancer resource accepts the following input properties:

    Type string
    The type of the load-balancer. Please check the migration section to upgrade the type.
    AssignFlexibleIp bool
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    Description string
    The description of the load-balancer.
    IpId string

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    Name string
    The name of the load-balancer.
    PrivateNetworks List<Pulumiverse.Scaleway.Inputs.LoadbalancerPrivateNetwork>
    List of private network to connect with your load balancer
    ProjectId string
    project_id) The ID of the project the load-balancer is associated with.
    ReleaseIp bool
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    SslCompatibilityLevel string
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    Tags List<string>
    The tags associated with the load-balancers.
    Zone string
    zone) The zone of the load-balancer.
    Type string
    The type of the load-balancer. Please check the migration section to upgrade the type.
    AssignFlexibleIp bool
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    Description string
    The description of the load-balancer.
    IpId string

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    Name string
    The name of the load-balancer.
    PrivateNetworks []LoadbalancerPrivateNetworkArgs
    List of private network to connect with your load balancer
    ProjectId string
    project_id) The ID of the project the load-balancer is associated with.
    ReleaseIp bool
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    SslCompatibilityLevel string
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    Tags []string
    The tags associated with the load-balancers.
    Zone string
    zone) The zone of the load-balancer.
    type String
    The type of the load-balancer. Please check the migration section to upgrade the type.
    assignFlexibleIp Boolean
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    description String
    The description of the load-balancer.
    ipId String

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    name String
    The name of the load-balancer.
    privateNetworks List<LoadbalancerPrivateNetwork>
    List of private network to connect with your load balancer
    projectId String
    project_id) The ID of the project the load-balancer is associated with.
    releaseIp Boolean
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    sslCompatibilityLevel String
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    tags List<String>
    The tags associated with the load-balancers.
    zone String
    zone) The zone of the load-balancer.
    type string
    The type of the load-balancer. Please check the migration section to upgrade the type.
    assignFlexibleIp boolean
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    description string
    The description of the load-balancer.
    ipId string

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    name string
    The name of the load-balancer.
    privateNetworks LoadbalancerPrivateNetwork[]
    List of private network to connect with your load balancer
    projectId string
    project_id) The ID of the project the load-balancer is associated with.
    releaseIp boolean
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    sslCompatibilityLevel string
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    tags string[]
    The tags associated with the load-balancers.
    zone string
    zone) The zone of the load-balancer.
    type str
    The type of the load-balancer. Please check the migration section to upgrade the type.
    assign_flexible_ip bool
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    description str
    The description of the load-balancer.
    ip_id str

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    name str
    The name of the load-balancer.
    private_networks Sequence[LoadbalancerPrivateNetworkArgs]
    List of private network to connect with your load balancer
    project_id str
    project_id) The ID of the project the load-balancer is associated with.
    release_ip bool
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    ssl_compatibility_level str
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    tags Sequence[str]
    The tags associated with the load-balancers.
    zone str
    zone) The zone of the load-balancer.
    type String
    The type of the load-balancer. Please check the migration section to upgrade the type.
    assignFlexibleIp Boolean
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    description String
    The description of the load-balancer.
    ipId String

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    name String
    The name of the load-balancer.
    privateNetworks List<Property Map>
    List of private network to connect with your load balancer
    projectId String
    project_id) The ID of the project the load-balancer is associated with.
    releaseIp Boolean
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    sslCompatibilityLevel String
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    tags List<String>
    The tags associated with the load-balancers.
    zone String
    zone) The zone of the load-balancer.

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    IpAddress string
    The load-balance public IP Address
    OrganizationId string
    The organization ID the load-balancer is associated with.
    Region string
    The region of the resource
    Id string
    The provider-assigned unique ID for this managed resource.
    IpAddress string
    The load-balance public IP Address
    OrganizationId string
    The organization ID the load-balancer is associated with.
    Region string
    The region of the resource
    id String
    The provider-assigned unique ID for this managed resource.
    ipAddress String
    The load-balance public IP Address
    organizationId String
    The organization ID the load-balancer is associated with.
    region String
    The region of the resource
    id string
    The provider-assigned unique ID for this managed resource.
    ipAddress string
    The load-balance public IP Address
    organizationId string
    The organization ID the load-balancer is associated with.
    region string
    The region of the resource
    id str
    The provider-assigned unique ID for this managed resource.
    ip_address str
    The load-balance public IP Address
    organization_id str
    The organization ID the load-balancer is associated with.
    region str
    The region of the resource
    id String
    The provider-assigned unique ID for this managed resource.
    ipAddress String
    The load-balance public IP Address
    organizationId String
    The organization ID the load-balancer is associated with.
    region String
    The region of the resource

    Look up Existing Loadbalancer Resource

    Get an existing Loadbalancer 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?: LoadbalancerState, opts?: CustomResourceOptions): Loadbalancer
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            assign_flexible_ip: Optional[bool] = None,
            description: Optional[str] = None,
            ip_address: Optional[str] = None,
            ip_id: Optional[str] = None,
            name: Optional[str] = None,
            organization_id: Optional[str] = None,
            private_networks: Optional[Sequence[LoadbalancerPrivateNetworkArgs]] = None,
            project_id: Optional[str] = None,
            region: Optional[str] = None,
            release_ip: Optional[bool] = None,
            ssl_compatibility_level: Optional[str] = None,
            tags: Optional[Sequence[str]] = None,
            type: Optional[str] = None,
            zone: Optional[str] = None) -> Loadbalancer
    func GetLoadbalancer(ctx *Context, name string, id IDInput, state *LoadbalancerState, opts ...ResourceOption) (*Loadbalancer, error)
    public static Loadbalancer Get(string name, Input<string> id, LoadbalancerState? state, CustomResourceOptions? opts = null)
    public static Loadbalancer get(String name, Output<String> id, LoadbalancerState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    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:
    AssignFlexibleIp bool
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    Description string
    The description of the load-balancer.
    IpAddress string
    The load-balance public IP Address
    IpId string

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    Name string
    The name of the load-balancer.
    OrganizationId string
    The organization ID the load-balancer is associated with.
    PrivateNetworks List<Pulumiverse.Scaleway.Inputs.LoadbalancerPrivateNetwork>
    List of private network to connect with your load balancer
    ProjectId string
    project_id) The ID of the project the load-balancer is associated with.
    Region string
    The region of the resource
    ReleaseIp bool
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    SslCompatibilityLevel string
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    Tags List<string>
    The tags associated with the load-balancers.
    Type string
    The type of the load-balancer. Please check the migration section to upgrade the type.
    Zone string
    zone) The zone of the load-balancer.
    AssignFlexibleIp bool
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    Description string
    The description of the load-balancer.
    IpAddress string
    The load-balance public IP Address
    IpId string

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    Name string
    The name of the load-balancer.
    OrganizationId string
    The organization ID the load-balancer is associated with.
    PrivateNetworks []LoadbalancerPrivateNetworkArgs
    List of private network to connect with your load balancer
    ProjectId string
    project_id) The ID of the project the load-balancer is associated with.
    Region string
    The region of the resource
    ReleaseIp bool
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    SslCompatibilityLevel string
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    Tags []string
    The tags associated with the load-balancers.
    Type string
    The type of the load-balancer. Please check the migration section to upgrade the type.
    Zone string
    zone) The zone of the load-balancer.
    assignFlexibleIp Boolean
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    description String
    The description of the load-balancer.
    ipAddress String
    The load-balance public IP Address
    ipId String

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    name String
    The name of the load-balancer.
    organizationId String
    The organization ID the load-balancer is associated with.
    privateNetworks List<LoadbalancerPrivateNetwork>
    List of private network to connect with your load balancer
    projectId String
    project_id) The ID of the project the load-balancer is associated with.
    region String
    The region of the resource
    releaseIp Boolean
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    sslCompatibilityLevel String
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    tags List<String>
    The tags associated with the load-balancers.
    type String
    The type of the load-balancer. Please check the migration section to upgrade the type.
    zone String
    zone) The zone of the load-balancer.
    assignFlexibleIp boolean
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    description string
    The description of the load-balancer.
    ipAddress string
    The load-balance public IP Address
    ipId string

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    name string
    The name of the load-balancer.
    organizationId string
    The organization ID the load-balancer is associated with.
    privateNetworks LoadbalancerPrivateNetwork[]
    List of private network to connect with your load balancer
    projectId string
    project_id) The ID of the project the load-balancer is associated with.
    region string
    The region of the resource
    releaseIp boolean
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    sslCompatibilityLevel string
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    tags string[]
    The tags associated with the load-balancers.
    type string
    The type of the load-balancer. Please check the migration section to upgrade the type.
    zone string
    zone) The zone of the load-balancer.
    assign_flexible_ip bool
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    description str
    The description of the load-balancer.
    ip_address str
    The load-balance public IP Address
    ip_id str

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    name str
    The name of the load-balancer.
    organization_id str
    The organization ID the load-balancer is associated with.
    private_networks Sequence[LoadbalancerPrivateNetworkArgs]
    List of private network to connect with your load balancer
    project_id str
    project_id) The ID of the project the load-balancer is associated with.
    region str
    The region of the resource
    release_ip bool
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    ssl_compatibility_level str
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    tags Sequence[str]
    The tags associated with the load-balancers.
    type str
    The type of the load-balancer. Please check the migration section to upgrade the type.
    zone str
    zone) The zone of the load-balancer.
    assignFlexibleIp Boolean
    Defines whether to automatically assign a flexible public IP to the load-balancer.
    description String
    The description of the load-balancer.
    ipAddress String
    The load-balance public IP Address
    ipId String

    The ID of the associated LB IP. See below.

    Important: Updates to ip_id will recreate the load-balancer.

    name String
    The name of the load-balancer.
    organizationId String
    The organization ID the load-balancer is associated with.
    privateNetworks List<Property Map>
    List of private network to connect with your load balancer
    projectId String
    project_id) The ID of the project the load-balancer is associated with.
    region String
    The region of the resource
    releaseIp Boolean
    The release_ip allow release the ip address associated with the load-balancers.

    Deprecated: The resource ip will be destroyed by it's own resource. Please set this to false

    sslCompatibilityLevel String
    Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.
    tags List<String>
    The tags associated with the load-balancers.
    type String
    The type of the load-balancer. Please check the migration section to upgrade the type.
    zone String
    zone) The zone of the load-balancer.

    Supporting Types

    LoadbalancerPrivateNetwork, LoadbalancerPrivateNetworkArgs

    PrivateNetworkId string
    (Required) The ID of the Private Network to associate.
    DhcpConfig bool
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    StaticConfig string
    (Optional) Define a local ip address of your choice for the load balancer instance. See below.
    Status string
    The status of private network connection
    Zone string
    zone) The zone of the load-balancer.
    PrivateNetworkId string
    (Required) The ID of the Private Network to associate.
    DhcpConfig bool
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    StaticConfig string
    (Optional) Define a local ip address of your choice for the load balancer instance. See below.
    Status string
    The status of private network connection
    Zone string
    zone) The zone of the load-balancer.
    privateNetworkId String
    (Required) The ID of the Private Network to associate.
    dhcpConfig Boolean
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    staticConfig String
    (Optional) Define a local ip address of your choice for the load balancer instance. See below.
    status String
    The status of private network connection
    zone String
    zone) The zone of the load-balancer.
    privateNetworkId string
    (Required) The ID of the Private Network to associate.
    dhcpConfig boolean
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    staticConfig string
    (Optional) Define a local ip address of your choice for the load balancer instance. See below.
    status string
    The status of private network connection
    zone string
    zone) The zone of the load-balancer.
    private_network_id str
    (Required) The ID of the Private Network to associate.
    dhcp_config bool
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    static_config str
    (Optional) Define a local ip address of your choice for the load balancer instance. See below.
    status str
    The status of private network connection
    zone str
    zone) The zone of the load-balancer.
    privateNetworkId String
    (Required) The ID of the Private Network to associate.
    dhcpConfig Boolean
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    staticConfig String
    (Optional) Define a local ip address of your choice for the load balancer instance. See below.
    status String
    The status of private network connection
    zone String
    zone) The zone of the load-balancer.

    Import

    Load-Balancer can be imported using the {zone}/{id}, e.g.

    bash

    $ pulumi import scaleway:index/loadbalancer:Loadbalancer main fr-par-1/11111111-1111-1111-1111-111111111111
    

    Be aware that you will also need to import the scaleway_lb_ip resource.

    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
    Scaleway v1.12.1 published on Monday, Apr 15, 2024 by pulumiverse