1. Packages
  2. Scaleway
  3. API Docs
  4. Loadbalancer
Scaleway v1.15.0 published on Tuesday, Jul 30, 2024 by pulumiverse

scaleway.Loadbalancer

Explore with Pulumi AI

scaleway logo
Scaleway v1.15.0 published on Tuesday, Jul 30, 2024 by pulumiverse

    Creates and manages Scaleway Load Balancers.

    For more information, see the main documentation or API 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", {
        ipIds: [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_ids=[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{
    			IpIds: pulumi.StringArray{
    				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()
        {
            IpIds = new[]
            {
                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()
                .ipIds(main.id())
                .zone(main.zone())
                .type("LB-S")
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:LoadbalancerIp
        properties:
          zone: fr-par-1
      base:
        type: scaleway:Loadbalancer
        properties:
          ipIds:
            - ${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", {
        assignFlexibleIp: false,
        type: "LB-S",
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    base = scaleway.Loadbalancer("base",
        assign_flexible_ip=False,
        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 {
    		_, err := scaleway.NewLoadbalancer(ctx, "base", &scaleway.LoadbalancerArgs{
    			AssignFlexibleIp: pulumi.Bool(false),
    			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 @base = new Scaleway.Loadbalancer("base", new()
        {
            AssignFlexibleIp = false,
            Type = "LB-S",
        });
    
    });
    
    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()
                .assignFlexibleIp(false)
                .type("LB-S")
                .build());
    
        }
    }
    
    resources:
      base:
        type: scaleway:Loadbalancer
        properties:
          assignFlexibleIp: false
          type: LB-S
    

    With IPv6

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const v4 = new scaleway.LoadbalancerIp("v4", {});
    const v6 = new scaleway.LoadbalancerIp("v6", {isIpv6: true});
    const main = new scaleway.Loadbalancer("main", {
        ipIds: [
            v4.id,
            v6.id,
        ],
        type: "LB-S",
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    v4 = scaleway.LoadbalancerIp("v4")
    v6 = scaleway.LoadbalancerIp("v6", is_ipv6=True)
    main = scaleway.Loadbalancer("main",
        ip_ids=[
            v4.id,
            v6.id,
        ],
        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 {
    		v4, err := scaleway.NewLoadbalancerIp(ctx, "v4", nil)
    		if err != nil {
    			return err
    		}
    		v6, err := scaleway.NewLoadbalancerIp(ctx, "v6", &scaleway.LoadbalancerIpArgs{
    			IsIpv6: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewLoadbalancer(ctx, "main", &scaleway.LoadbalancerArgs{
    			IpIds: pulumi.StringArray{
    				v4.ID(),
    				v6.ID(),
    			},
    			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 v4 = new Scaleway.LoadbalancerIp("v4");
    
        var v6 = new Scaleway.LoadbalancerIp("v6", new()
        {
            IsIpv6 = true,
        });
    
        var main = new Scaleway.Loadbalancer("main", new()
        {
            IpIds = new[]
            {
                v4.Id,
                v6.Id,
            },
            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 v4 = new LoadbalancerIp("v4");
    
            var v6 = new LoadbalancerIp("v6", LoadbalancerIpArgs.builder()
                .isIpv6(true)
                .build());
    
            var main = new Loadbalancer("main", LoadbalancerArgs.builder()
                .ipIds(            
                    v4.id(),
                    v6.id())
                .type("LB-S")
                .build());
    
        }
    }
    
    resources:
      v4:
        type: scaleway:LoadbalancerIp
      v6:
        type: scaleway:LoadbalancerIp
        properties:
          isIpv6: true
      main:
        type: scaleway:Loadbalancer
        properties:
          ipIds:
            - ${v4.id}
            - ${v6.id}
          type: LB-S
    

    With IPAM IDs

    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.Vpc;
    import com.pulumi.scaleway.VpcPrivateNetwork;
    import com.pulumi.scaleway.VpcPrivateNetworkArgs;
    import com.pulumi.scaleway.inputs.VpcPrivateNetworkIpv4SubnetArgs;
    import com.pulumi.scaleway.IpamIp;
    import com.pulumi.scaleway.IpamIpArgs;
    import com.pulumi.scaleway.inputs.IpamIpSourceArgs;
    import com.pulumi.scaleway.LoadbalancerIp;
    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 vpc01 = new Vpc("vpc01");
    
            var pn01 = new VpcPrivateNetwork("pn01", VpcPrivateNetworkArgs.builder()
                .vpcId(vpc01.id())
                .ipv4Subnet(VpcPrivateNetworkIpv4SubnetArgs.builder()
                    .subnet("172.16.32.0/22")
                    .build())
                .build());
    
            var ip01 = new IpamIp("ip01", IpamIpArgs.builder()
                .address("172.16.32.7")
                .sources(IpamIpSourceArgs.builder()
                    .privateNetworkId(pn01.id())
                    .build())
                .build());
    
            var v4 = new LoadbalancerIp("v4");
    
            var main = new Loadbalancer("main", LoadbalancerArgs.builder()
                .ipIds(v4.id())
                .type("LB-S")
                .privateNetworks(LoadbalancerPrivateNetworkArgs.builder()
                    .privateNetworkId(pn01.id())
                    .ipamIds(ip01.id())
                    .build())
                .build());
    
        }
    }
    
    resources:
      vpc01:
        type: scaleway:Vpc
      pn01:
        type: scaleway:VpcPrivateNetwork
        properties:
          vpcId: ${vpc01.id}
          ipv4Subnet:
            subnet: 172.16.32.0/22
      ip01:
        type: scaleway:IpamIp
        properties:
          address: 172.16.32.7
          sources:
            - privateNetworkId: ${pn01.id}
      v4:
        type: scaleway:LoadbalancerIp
      main:
        type: scaleway:Loadbalancer
        properties:
          ipIds:
            - ${v4.id}
          type: LB-S
          privateNetworks:
            - privateNetworkId: ${pn01.id}
              ipamIds:
                - ${ip01.id}
    

    Multiple configurations

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    //## IP for Public Gateway
    const mainVpcPublicGatewayIp = new scaleway.VpcPublicGatewayIp("mainVpcPublicGatewayIp", {});
    //## Scaleway Private Network
    const mainVpcPrivateNetwork = new scaleway.VpcPrivateNetwork("mainVpcPrivateNetwork", {});
    //## VPC Public Gateway Network
    const mainVpcPublicGateway = new scaleway.VpcPublicGateway("mainVpcPublicGateway", {
        type: "VPC-GW-S",
        ipId: mainVpcPublicGatewayIp.id,
    });
    //## VPC Public Gateway Network DHCP config
    const mainVpcPublicGatewayDhcp = new scaleway.VpcPublicGatewayDhcp("mainVpcPublicGatewayDhcp", {subnet: "10.0.0.0/24"});
    //## VPC Gateway Network
    const mainVpcGatewayNetwork = new scaleway.VpcGatewayNetwork("mainVpcGatewayNetwork", {
        gatewayId: mainVpcPublicGateway.id,
        privateNetworkId: mainVpcPrivateNetwork.id,
        dhcpId: mainVpcPublicGatewayDhcp.id,
        cleanupDhcp: true,
        enableMasquerade: true,
    });
    //## Scaleway Instance
    const mainInstanceServer = new scaleway.InstanceServer("mainInstanceServer", {
        type: "DEV1-S",
        image: "debian_bullseye",
        enableIpv6: false,
        privateNetworks: [{
            pnId: mainVpcPrivateNetwork.id,
        }],
    });
    //## IP for LB IP
    const mainLoadbalancerIp = new scaleway.LoadbalancerIp("mainLoadbalancerIp", {});
    //## Scaleway Private Network
    const mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new scaleway.VpcPrivateNetwork("mainIndex/vpcPrivateNetworkVpcPrivateNetwork", {});
    //## Scaleway Load Balancer
    const mainLoadbalancer = new scaleway.Loadbalancer("mainLoadbalancer", {
        ipId: mainLoadbalancerIp.id,
        type: "LB-S",
        privateNetworks: [{
            privateNetworkId: mainVpcPrivateNetwork.id,
            dhcpConfig: true,
        }],
    }, {
        dependsOn: [mainVpcPublicGateway],
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    ### IP for Public Gateway
    main_vpc_public_gateway_ip = scaleway.VpcPublicGatewayIp("mainVpcPublicGatewayIp")
    ### Scaleway Private Network
    main_vpc_private_network = scaleway.VpcPrivateNetwork("mainVpcPrivateNetwork")
    ### VPC Public Gateway Network
    main_vpc_public_gateway = scaleway.VpcPublicGateway("mainVpcPublicGateway",
        type="VPC-GW-S",
        ip_id=main_vpc_public_gateway_ip.id)
    ### VPC Public Gateway Network DHCP config
    main_vpc_public_gateway_dhcp = scaleway.VpcPublicGatewayDhcp("mainVpcPublicGatewayDhcp", subnet="10.0.0.0/24")
    ### VPC Gateway Network
    main_vpc_gateway_network = scaleway.VpcGatewayNetwork("mainVpcGatewayNetwork",
        gateway_id=main_vpc_public_gateway.id,
        private_network_id=main_vpc_private_network.id,
        dhcp_id=main_vpc_public_gateway_dhcp.id,
        cleanup_dhcp=True,
        enable_masquerade=True)
    ### Scaleway Instance
    main_instance_server = scaleway.InstanceServer("mainInstanceServer",
        type="DEV1-S",
        image="debian_bullseye",
        enable_ipv6=False,
        private_networks=[scaleway.InstanceServerPrivateNetworkArgs(
            pn_id=main_vpc_private_network.id,
        )])
    ### IP for LB IP
    main_loadbalancer_ip = scaleway.LoadbalancerIp("mainLoadbalancerIp")
    ### Scaleway Private Network
    main_index_vpc_private_network_vpc_private_network = scaleway.VpcPrivateNetwork("mainIndex/vpcPrivateNetworkVpcPrivateNetwork")
    ### Scaleway Load Balancer
    main_loadbalancer = scaleway.Loadbalancer("mainLoadbalancer",
        ip_id=main_loadbalancer_ip.id,
        type="LB-S",
        private_networks=[scaleway.LoadbalancerPrivateNetworkArgs(
            private_network_id=main_vpc_private_network.id,
            dhcp_config=True,
        )],
        opts = pulumi.ResourceOptions(depends_on=[main_vpc_public_gateway]))
    
    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 {
    		// ## IP for Public Gateway
    		mainVpcPublicGatewayIp, err := scaleway.NewVpcPublicGatewayIp(ctx, "mainVpcPublicGatewayIp", nil)
    		if err != nil {
    			return err
    		}
    		// ## Scaleway Private Network
    		mainVpcPrivateNetwork, err := scaleway.NewVpcPrivateNetwork(ctx, "mainVpcPrivateNetwork", nil)
    		if err != nil {
    			return err
    		}
    		// ## VPC Public Gateway Network
    		mainVpcPublicGateway, err := scaleway.NewVpcPublicGateway(ctx, "mainVpcPublicGateway", &scaleway.VpcPublicGatewayArgs{
    			Type: pulumi.String("VPC-GW-S"),
    			IpId: mainVpcPublicGatewayIp.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		// ## VPC Public Gateway Network DHCP config
    		mainVpcPublicGatewayDhcp, err := scaleway.NewVpcPublicGatewayDhcp(ctx, "mainVpcPublicGatewayDhcp", &scaleway.VpcPublicGatewayDhcpArgs{
    			Subnet: pulumi.String("10.0.0.0/24"),
    		})
    		if err != nil {
    			return err
    		}
    		// ## VPC Gateway Network
    		_, err = scaleway.NewVpcGatewayNetwork(ctx, "mainVpcGatewayNetwork", &scaleway.VpcGatewayNetworkArgs{
    			GatewayId:        mainVpcPublicGateway.ID(),
    			PrivateNetworkId: mainVpcPrivateNetwork.ID(),
    			DhcpId:           mainVpcPublicGatewayDhcp.ID(),
    			CleanupDhcp:      pulumi.Bool(true),
    			EnableMasquerade: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		// ## Scaleway Instance
    		_, err = scaleway.NewInstanceServer(ctx, "mainInstanceServer", &scaleway.InstanceServerArgs{
    			Type:       pulumi.String("DEV1-S"),
    			Image:      pulumi.String("debian_bullseye"),
    			EnableIpv6: pulumi.Bool(false),
    			PrivateNetworks: scaleway.InstanceServerPrivateNetworkArray{
    				&scaleway.InstanceServerPrivateNetworkArgs{
    					PnId: mainVpcPrivateNetwork.ID(),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// ## IP for LB IP
    		mainLoadbalancerIp, err := scaleway.NewLoadbalancerIp(ctx, "mainLoadbalancerIp", nil)
    		if err != nil {
    			return err
    		}
    		// ## Scaleway Private Network
    		_, err = scaleway.NewVpcPrivateNetwork(ctx, "mainIndex/vpcPrivateNetworkVpcPrivateNetwork", nil)
    		if err != nil {
    			return err
    		}
    		// ## Scaleway Load Balancer
    		_, err = scaleway.NewLoadbalancer(ctx, "mainLoadbalancer", &scaleway.LoadbalancerArgs{
    			IpId: mainLoadbalancerIp.ID(),
    			Type: pulumi.String("LB-S"),
    			PrivateNetworks: scaleway.LoadbalancerPrivateNetworkArray{
    				&scaleway.LoadbalancerPrivateNetworkArgs{
    					PrivateNetworkId: mainVpcPrivateNetwork.ID(),
    					DhcpConfig:       pulumi.Bool(true),
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			mainVpcPublicGateway,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        //## IP for Public Gateway
        var mainVpcPublicGatewayIp = new Scaleway.VpcPublicGatewayIp("mainVpcPublicGatewayIp");
    
        //## Scaleway Private Network
        var mainVpcPrivateNetwork = new Scaleway.VpcPrivateNetwork("mainVpcPrivateNetwork");
    
        //## VPC Public Gateway Network
        var mainVpcPublicGateway = new Scaleway.VpcPublicGateway("mainVpcPublicGateway", new()
        {
            Type = "VPC-GW-S",
            IpId = mainVpcPublicGatewayIp.Id,
        });
    
        //## VPC Public Gateway Network DHCP config
        var mainVpcPublicGatewayDhcp = new Scaleway.VpcPublicGatewayDhcp("mainVpcPublicGatewayDhcp", new()
        {
            Subnet = "10.0.0.0/24",
        });
    
        //## VPC Gateway Network
        var mainVpcGatewayNetwork = new Scaleway.VpcGatewayNetwork("mainVpcGatewayNetwork", new()
        {
            GatewayId = mainVpcPublicGateway.Id,
            PrivateNetworkId = mainVpcPrivateNetwork.Id,
            DhcpId = mainVpcPublicGatewayDhcp.Id,
            CleanupDhcp = true,
            EnableMasquerade = true,
        });
    
        //## Scaleway Instance
        var mainInstanceServer = new Scaleway.InstanceServer("mainInstanceServer", new()
        {
            Type = "DEV1-S",
            Image = "debian_bullseye",
            EnableIpv6 = false,
            PrivateNetworks = new[]
            {
                new Scaleway.Inputs.InstanceServerPrivateNetworkArgs
                {
                    PnId = mainVpcPrivateNetwork.Id,
                },
            },
        });
    
        //## IP for LB IP
        var mainLoadbalancerIp = new Scaleway.LoadbalancerIp("mainLoadbalancerIp");
    
        //## Scaleway Private Network
        var mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new Scaleway.VpcPrivateNetwork("mainIndex/vpcPrivateNetworkVpcPrivateNetwork");
    
        //## Scaleway Load Balancer
        var mainLoadbalancer = new Scaleway.Loadbalancer("mainLoadbalancer", new()
        {
            IpId = mainLoadbalancerIp.Id,
            Type = "LB-S",
            PrivateNetworks = new[]
            {
                new Scaleway.Inputs.LoadbalancerPrivateNetworkArgs
                {
                    PrivateNetworkId = mainVpcPrivateNetwork.Id,
                    DhcpConfig = true,
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                mainVpcPublicGateway,
            },
        });
    
    });
    
    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())
                    .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}
              dhcpConfig: true
        options:
          dependson:
            - ${mainVpcPublicGateway}
    

    Migration

    In order to migrate to other Load Balancer types, you can check upwards or downwards migration 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 Load Balancer. 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
    

    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,
                     private_networks: Optional[Sequence[LoadbalancerPrivateNetworkArgs]] = None,
                     description: Optional[str] = None,
                     ip_id: Optional[str] = None,
                     ip_ids: Optional[Sequence[str]] = None,
                     name: Optional[str] = None,
                     assign_flexible_ip: Optional[bool] = None,
                     project_id: Optional[str] = None,
                     release_ip: Optional[bool] = None,
                     ssl_compatibility_level: Optional[str] = None,
                     tags: Optional[Sequence[str]] = None,
                     assign_flexible_ipv6: Optional[bool] = 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.

    Constructor example

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

    var loadbalancerResource = new Scaleway.Loadbalancer("loadbalancerResource", new()
    {
        Type = "string",
        PrivateNetworks = new[]
        {
            new Scaleway.Inputs.LoadbalancerPrivateNetworkArgs
            {
                PrivateNetworkId = "string",
                DhcpConfig = false,
                IpamIds = "string",
                Status = "string",
                Zone = "string",
            },
        },
        Description = "string",
        IpIds = new[]
        {
            "string",
        },
        Name = "string",
        AssignFlexibleIp = false,
        ProjectId = "string",
        SslCompatibilityLevel = "string",
        Tags = new[]
        {
            "string",
        },
        AssignFlexibleIpv6 = false,
        Zone = "string",
    });
    
    example, err := scaleway.NewLoadbalancer(ctx, "loadbalancerResource", &scaleway.LoadbalancerArgs{
    	Type: pulumi.String("string"),
    	PrivateNetworks: scaleway.LoadbalancerPrivateNetworkArray{
    		&scaleway.LoadbalancerPrivateNetworkArgs{
    			PrivateNetworkId: pulumi.String("string"),
    			DhcpConfig:       pulumi.Bool(false),
    			IpamIds:          pulumi.String("string"),
    			Status:           pulumi.String("string"),
    			Zone:             pulumi.String("string"),
    		},
    	},
    	Description: pulumi.String("string"),
    	IpIds: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Name:                  pulumi.String("string"),
    	AssignFlexibleIp:      pulumi.Bool(false),
    	ProjectId:             pulumi.String("string"),
    	SslCompatibilityLevel: pulumi.String("string"),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	AssignFlexibleIpv6: pulumi.Bool(false),
    	Zone:               pulumi.String("string"),
    })
    
    var loadbalancerResource = new Loadbalancer("loadbalancerResource", LoadbalancerArgs.builder()
        .type("string")
        .privateNetworks(LoadbalancerPrivateNetworkArgs.builder()
            .privateNetworkId("string")
            .dhcpConfig(false)
            .ipamIds("string")
            .status("string")
            .zone("string")
            .build())
        .description("string")
        .ipIds("string")
        .name("string")
        .assignFlexibleIp(false)
        .projectId("string")
        .sslCompatibilityLevel("string")
        .tags("string")
        .assignFlexibleIpv6(false)
        .zone("string")
        .build());
    
    loadbalancer_resource = scaleway.Loadbalancer("loadbalancerResource",
        type="string",
        private_networks=[scaleway.LoadbalancerPrivateNetworkArgs(
            private_network_id="string",
            dhcp_config=False,
            ipam_ids="string",
            status="string",
            zone="string",
        )],
        description="string",
        ip_ids=["string"],
        name="string",
        assign_flexible_ip=False,
        project_id="string",
        ssl_compatibility_level="string",
        tags=["string"],
        assign_flexible_ipv6=False,
        zone="string")
    
    const loadbalancerResource = new scaleway.Loadbalancer("loadbalancerResource", {
        type: "string",
        privateNetworks: [{
            privateNetworkId: "string",
            dhcpConfig: false,
            ipamIds: "string",
            status: "string",
            zone: "string",
        }],
        description: "string",
        ipIds: ["string"],
        name: "string",
        assignFlexibleIp: false,
        projectId: "string",
        sslCompatibilityLevel: "string",
        tags: ["string"],
        assignFlexibleIpv6: false,
        zone: "string",
    });
    
    type: scaleway:Loadbalancer
    properties:
        assignFlexibleIp: false
        assignFlexibleIpv6: false
        description: string
        ipIds:
            - string
        name: string
        privateNetworks:
            - dhcpConfig: false
              ipamIds: string
              privateNetworkId: 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 IPv4 to the Load Balancer.
    AssignFlexibleIpv6 bool
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    Description string
    The description of the Load Balancer.
    IpId string

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    IpIds List<string>
    The List of IP IDs to attach to 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    AssignFlexibleIpv6 bool
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    Description string
    The description of the Load Balancer.
    IpId string

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    IpIds []string
    The List of IP IDs to attach to 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    assignFlexibleIpv6 Boolean
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    description String
    The description of the Load Balancer.
    ipId String

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    ipIds List<String>
    The List of IP IDs to attach to 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    assignFlexibleIpv6 boolean
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    description string
    The description of the Load Balancer.
    ipId string

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    ipIds string[]
    The List of IP IDs to attach to 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    assign_flexible_ipv6 bool
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    description str
    The description of the Load Balancer.
    ip_id str

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    ip_ids Sequence[str]
    The List of IP IDs to attach to 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    assignFlexibleIpv6 Boolean
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    description String
    The description of the Load Balancer.
    ipId String

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    ipIds List<String>
    The List of IP IDs to attach to 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 Balancer public IPv4 address.
    Ipv6Address string
    The Load Balancer public IPv6 address.
    OrganizationId string
    The ID of 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 Balancer public IPv4 address.
    Ipv6Address string
    The Load Balancer public IPv6 address.
    OrganizationId string
    The ID of 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 Balancer public IPv4 address.
    ipv6Address String
    The Load Balancer public IPv6 address.
    organizationId String
    The ID of 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 Balancer public IPv4 address.
    ipv6Address string
    The Load Balancer public IPv6 address.
    organizationId string
    The ID of 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 Balancer public IPv4 address.
    ipv6_address str
    The Load Balancer public IPv6 address.
    organization_id str
    The ID of 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 Balancer public IPv4 address.
    ipv6Address String
    The Load Balancer public IPv6 address.
    organizationId String
    The ID of 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,
            assign_flexible_ipv6: Optional[bool] = None,
            description: Optional[str] = None,
            ip_address: Optional[str] = None,
            ip_id: Optional[str] = None,
            ip_ids: Optional[Sequence[str]] = None,
            ipv6_address: 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 IPv4 to the Load Balancer.
    AssignFlexibleIpv6 bool
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    Description string
    The description of the Load Balancer.
    IpAddress string
    The Load Balancer public IPv4 address.
    IpId string

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    IpIds List<string>
    The List of IP IDs to attach to the Load Balancer.
    Ipv6Address string
    The Load Balancer public IPv6 address.
    Name string
    The name of the Load Balancer.
    OrganizationId string
    The ID of 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    AssignFlexibleIpv6 bool
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    Description string
    The description of the Load Balancer.
    IpAddress string
    The Load Balancer public IPv4 address.
    IpId string

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    IpIds []string
    The List of IP IDs to attach to the Load Balancer.
    Ipv6Address string
    The Load Balancer public IPv6 address.
    Name string
    The name of the Load Balancer.
    OrganizationId string
    The ID of 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    assignFlexibleIpv6 Boolean
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    description String
    The description of the Load Balancer.
    ipAddress String
    The Load Balancer public IPv4 address.
    ipId String

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    ipIds List<String>
    The List of IP IDs to attach to the Load Balancer.
    ipv6Address String
    The Load Balancer public IPv6 address.
    name String
    The name of the Load Balancer.
    organizationId String
    The ID of 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    assignFlexibleIpv6 boolean
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    description string
    The description of the Load Balancer.
    ipAddress string
    The Load Balancer public IPv4 address.
    ipId string

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    ipIds string[]
    The List of IP IDs to attach to the Load Balancer.
    ipv6Address string
    The Load Balancer public IPv6 address.
    name string
    The name of the Load Balancer.
    organizationId string
    The ID of 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    assign_flexible_ipv6 bool
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    description str
    The description of the Load Balancer.
    ip_address str
    The Load Balancer public IPv4 address.
    ip_id str

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    ip_ids Sequence[str]
    The List of IP IDs to attach to the Load Balancer.
    ipv6_address str
    The Load Balancer public IPv6 address.
    name str
    The name of the Load Balancer.
    organization_id str
    The ID of 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 IPv4 to the Load Balancer.
    assignFlexibleIpv6 Boolean
    Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.
    description String
    The description of the Load Balancer.
    ipAddress String
    The Load Balancer public IPv4 address.
    ipId String

    The ID of the associated Load Balancer IP. See below.

    Important: Updates to ip_id will recreate the Load Balancer.

    Deprecated: Please use ip_ids

    ipIds List<String>
    The List of IP IDs to attach to the Load Balancer.
    ipv6Address String
    The Load Balancer public IPv6 address.
    name String
    The name of the Load Balancer.
    organizationId String
    The ID of 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 the release of the IP address associated with the Load Balancer.

    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 Balancer.
    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 attach to.
    DhcpConfig bool
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    IpamIds string
    (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
    StaticConfig string
    (Deprecated) Please use ipam_ids. Define a local ip address of your choice for the load balancer instance.

    Deprecated: static_config field is deprecated, please use dhcp_config instead

    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 attach to.
    DhcpConfig bool
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    IpamIds string
    (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
    StaticConfig string
    (Deprecated) Please use ipam_ids. Define a local ip address of your choice for the load balancer instance.

    Deprecated: static_config field is deprecated, please use dhcp_config instead

    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 attach to.
    dhcpConfig Boolean
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    ipamIds String
    (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
    staticConfig String
    (Deprecated) Please use ipam_ids. Define a local ip address of your choice for the load balancer instance.

    Deprecated: static_config field is deprecated, please use dhcp_config instead

    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 attach to.
    dhcpConfig boolean
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    ipamIds string
    (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
    staticConfig string
    (Deprecated) Please use ipam_ids. Define a local ip address of your choice for the load balancer instance.

    Deprecated: static_config field is deprecated, please use dhcp_config instead

    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 attach to.
    dhcp_config bool
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    ipam_ids str
    (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
    static_config str
    (Deprecated) Please use ipam_ids. Define a local ip address of your choice for the load balancer instance.

    Deprecated: static_config field is deprecated, please use dhcp_config instead

    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 attach to.
    dhcpConfig Boolean
    (Optional) Set to true if you want to let DHCP assign IP addresses. See below.
    ipamIds String
    (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.
    staticConfig String
    (Deprecated) Please use ipam_ids. Define a local ip address of your choice for the load balancer instance.

    Deprecated: static_config field is deprecated, please use dhcp_config instead

    status String
    The status of private network connection
    zone String
    zone) The zone of the Load Balancer.

    Import

    Load Balancers can be imported using {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.15.0 published on Tuesday, Jul 30, 2024 by pulumiverse