1. Packages
  2. Scaleway
  3. API Docs
  4. VpcPrivateNetwork
Scaleway v1.10.0 published on Saturday, Jul 1, 2023 by lbrlabs

scaleway.VpcPrivateNetwork

Explore with Pulumi AI

scaleway logo
Scaleway v1.10.0 published on Saturday, Jul 1, 2023 by lbrlabs

    Creates and manages Scaleway VPC Private Networks. For more information, see the documentation.

    Example

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@lbrlabs/pulumi-scaleway";
    
    const pnPriv = new scaleway.VpcPrivateNetwork("pnPriv", {tags: [
        "demo",
        "terraform",
    ]});
    
    import pulumi
    import lbrlabs_pulumi_scaleway as scaleway
    
    pn_priv = scaleway.VpcPrivateNetwork("pnPriv", tags=[
        "demo",
        "terraform",
    ])
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Lbrlabs.PulumiPackage.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var pnPriv = new Scaleway.VpcPrivateNetwork("pnPriv", new()
        {
            Tags = new[]
            {
                "demo",
                "terraform",
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/lbrlabs/pulumi-scaleway/sdk/go/scaleway"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := scaleway.NewVpcPrivateNetwork(ctx, "pnPriv", &scaleway.VpcPrivateNetworkArgs{
    			Tags: pulumi.StringArray{
    				pulumi.String("demo"),
    				pulumi.String("terraform"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.VpcPrivateNetwork;
    import com.pulumi.scaleway.VpcPrivateNetworkArgs;
    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 pnPriv = new VpcPrivateNetwork("pnPriv", VpcPrivateNetworkArgs.builder()        
                .tags(            
                    "demo",
                    "terraform")
                .build());
    
        }
    }
    
    resources:
      pnPriv:
        type: scaleway:VpcPrivateNetwork
        properties:
          tags:
            - demo
            - terraform
    

    Note: Regional Private Network is now in Public Beta. You can create a regional private network directly using this resource by setting is_regional to true.

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@lbrlabs/pulumi-scaleway";
    
    const vpc01 = new scaleway.Vpc("vpc01", {tags: [
        "terraform",
        "vpc",
    ]});
    const regionalPn = new scaleway.VpcPrivateNetwork("regionalPn", {
        tags: [
            "terraform",
            "pn",
            "regional",
        ],
        isRegional: true,
        vpcId: vpc01.id,
    });
    
    import pulumi
    import lbrlabs_pulumi_scaleway as scaleway
    
    vpc01 = scaleway.Vpc("vpc01", tags=[
        "terraform",
        "vpc",
    ])
    regional_pn = scaleway.VpcPrivateNetwork("regionalPn",
        tags=[
            "terraform",
            "pn",
            "regional",
        ],
        is_regional=True,
        vpc_id=vpc01.id)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Lbrlabs.PulumiPackage.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var vpc01 = new Scaleway.Vpc("vpc01", new()
        {
            Tags = new[]
            {
                "terraform",
                "vpc",
            },
        });
    
        var regionalPn = new Scaleway.VpcPrivateNetwork("regionalPn", new()
        {
            Tags = new[]
            {
                "terraform",
                "pn",
                "regional",
            },
            IsRegional = true,
            VpcId = vpc01.Id,
        });
    
    });
    
    package main
    
    import (
    	"github.com/lbrlabs/pulumi-scaleway/sdk/go/scaleway"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		vpc01, err := scaleway.NewVpc(ctx, "vpc01", &scaleway.VpcArgs{
    			Tags: pulumi.StringArray{
    				pulumi.String("terraform"),
    				pulumi.String("vpc"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewVpcPrivateNetwork(ctx, "regionalPn", &scaleway.VpcPrivateNetworkArgs{
    			Tags: pulumi.StringArray{
    				pulumi.String("terraform"),
    				pulumi.String("pn"),
    				pulumi.String("regional"),
    			},
    			IsRegional: pulumi.Bool(true),
    			VpcId:      vpc01.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    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.VpcArgs;
    import com.pulumi.scaleway.VpcPrivateNetwork;
    import com.pulumi.scaleway.VpcPrivateNetworkArgs;
    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", VpcArgs.builder()        
                .tags(            
                    "terraform",
                    "vpc")
                .build());
    
            var regionalPn = new VpcPrivateNetwork("regionalPn", VpcPrivateNetworkArgs.builder()        
                .tags(            
                    "terraform",
                    "pn",
                    "regional")
                .isRegional(true)
                .vpcId(vpc01.id())
                .build());
    
        }
    }
    
    resources:
      vpc01:
        type: scaleway:Vpc
        properties:
          tags:
            - terraform
            - vpc
      regionalPn:
        type: scaleway:VpcPrivateNetwork
        properties:
          tags:
            - terraform
            - pn
            - regional
          isRegional: true
          vpcId: ${vpc01.id}
    

    Create VpcPrivateNetwork Resource

    new VpcPrivateNetwork(name: string, args?: VpcPrivateNetworkArgs, opts?: CustomResourceOptions);
    @overload
    def VpcPrivateNetwork(resource_name: str,
                          opts: Optional[ResourceOptions] = None,
                          ipv4_subnet: Optional[VpcPrivateNetworkIpv4SubnetArgs] = None,
                          ipv6_subnets: Optional[Sequence[VpcPrivateNetworkIpv6SubnetArgs]] = None,
                          is_regional: Optional[bool] = None,
                          name: Optional[str] = None,
                          project_id: Optional[str] = None,
                          region: Optional[str] = None,
                          tags: Optional[Sequence[str]] = None,
                          vpc_id: Optional[str] = None,
                          zone: Optional[str] = None)
    @overload
    def VpcPrivateNetwork(resource_name: str,
                          args: Optional[VpcPrivateNetworkArgs] = None,
                          opts: Optional[ResourceOptions] = None)
    func NewVpcPrivateNetwork(ctx *Context, name string, args *VpcPrivateNetworkArgs, opts ...ResourceOption) (*VpcPrivateNetwork, error)
    public VpcPrivateNetwork(string name, VpcPrivateNetworkArgs? args = null, CustomResourceOptions? opts = null)
    public VpcPrivateNetwork(String name, VpcPrivateNetworkArgs args)
    public VpcPrivateNetwork(String name, VpcPrivateNetworkArgs args, CustomResourceOptions options)
    
    type: scaleway:VpcPrivateNetwork
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args VpcPrivateNetworkArgs
    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 VpcPrivateNetworkArgs
    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 VpcPrivateNetworkArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args VpcPrivateNetworkArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args VpcPrivateNetworkArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

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

    Ipv4Subnet Lbrlabs.PulumiPackage.Scaleway.Inputs.VpcPrivateNetworkIpv4Subnet

    The IPv4 subnet associated with the private network.

    Ipv6Subnets List<Lbrlabs.PulumiPackage.Scaleway.Inputs.VpcPrivateNetworkIpv6Subnet>

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    IsRegional bool

    Defines whether the private network is Regional. By default, it will be Zonal.

    Name string

    The name of the private network. If not provided it will be randomly generated.

    ProjectId string

    project_id) The ID of the project the private network is associated with.

    Region string

    region) The region of the private network.

    Tags List<string>

    The tags associated with the private network.

    VpcId string

    The VPC in which to create the private network.

    Zone string

    zone) The zone in which the private network should be created.

    Ipv4Subnet VpcPrivateNetworkIpv4SubnetArgs

    The IPv4 subnet associated with the private network.

    Ipv6Subnets []VpcPrivateNetworkIpv6SubnetArgs

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    IsRegional bool

    Defines whether the private network is Regional. By default, it will be Zonal.

    Name string

    The name of the private network. If not provided it will be randomly generated.

    ProjectId string

    project_id) The ID of the project the private network is associated with.

    Region string

    region) The region of the private network.

    Tags []string

    The tags associated with the private network.

    VpcId string

    The VPC in which to create the private network.

    Zone string

    zone) The zone in which the private network should be created.

    ipv4Subnet VpcPrivateNetworkIpv4Subnet

    The IPv4 subnet associated with the private network.

    ipv6Subnets List<VpcPrivateNetworkIpv6Subnet>

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    isRegional Boolean

    Defines whether the private network is Regional. By default, it will be Zonal.

    name String

    The name of the private network. If not provided it will be randomly generated.

    projectId String

    project_id) The ID of the project the private network is associated with.

    region String

    region) The region of the private network.

    tags List<String>

    The tags associated with the private network.

    vpcId String

    The VPC in which to create the private network.

    zone String

    zone) The zone in which the private network should be created.

    ipv4Subnet VpcPrivateNetworkIpv4Subnet

    The IPv4 subnet associated with the private network.

    ipv6Subnets VpcPrivateNetworkIpv6Subnet[]

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    isRegional boolean

    Defines whether the private network is Regional. By default, it will be Zonal.

    name string

    The name of the private network. If not provided it will be randomly generated.

    projectId string

    project_id) The ID of the project the private network is associated with.

    region string

    region) The region of the private network.

    tags string[]

    The tags associated with the private network.

    vpcId string

    The VPC in which to create the private network.

    zone string

    zone) The zone in which the private network should be created.

    ipv4_subnet VpcPrivateNetworkIpv4SubnetArgs

    The IPv4 subnet associated with the private network.

    ipv6_subnets Sequence[VpcPrivateNetworkIpv6SubnetArgs]

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    is_regional bool

    Defines whether the private network is Regional. By default, it will be Zonal.

    name str

    The name of the private network. If not provided it will be randomly generated.

    project_id str

    project_id) The ID of the project the private network is associated with.

    region str

    region) The region of the private network.

    tags Sequence[str]

    The tags associated with the private network.

    vpc_id str

    The VPC in which to create the private network.

    zone str

    zone) The zone in which the private network should be created.

    ipv4Subnet Property Map

    The IPv4 subnet associated with the private network.

    ipv6Subnets List<Property Map>

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    isRegional Boolean

    Defines whether the private network is Regional. By default, it will be Zonal.

    name String

    The name of the private network. If not provided it will be randomly generated.

    projectId String

    project_id) The ID of the project the private network is associated with.

    region String

    region) The region of the private network.

    tags List<String>

    The tags associated with the private network.

    vpcId String

    The VPC in which to create the private network.

    zone String

    zone) The zone in which the private network should be created.

    Outputs

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

    CreatedAt string

    The date and time of the creation of the private network

    Id string

    The provider-assigned unique ID for this managed resource.

    OrganizationId string

    The organization ID the private network is associated with.

    UpdatedAt string

    The date and time of the last update of the private network

    CreatedAt string

    The date and time of the creation of the private network

    Id string

    The provider-assigned unique ID for this managed resource.

    OrganizationId string

    The organization ID the private network is associated with.

    UpdatedAt string

    The date and time of the last update of the private network

    createdAt String

    The date and time of the creation of the private network

    id String

    The provider-assigned unique ID for this managed resource.

    organizationId String

    The organization ID the private network is associated with.

    updatedAt String

    The date and time of the last update of the private network

    createdAt string

    The date and time of the creation of the private network

    id string

    The provider-assigned unique ID for this managed resource.

    organizationId string

    The organization ID the private network is associated with.

    updatedAt string

    The date and time of the last update of the private network

    created_at str

    The date and time of the creation of the private network

    id str

    The provider-assigned unique ID for this managed resource.

    organization_id str

    The organization ID the private network is associated with.

    updated_at str

    The date and time of the last update of the private network

    createdAt String

    The date and time of the creation of the private network

    id String

    The provider-assigned unique ID for this managed resource.

    organizationId String

    The organization ID the private network is associated with.

    updatedAt String

    The date and time of the last update of the private network

    Look up Existing VpcPrivateNetwork Resource

    Get an existing VpcPrivateNetwork 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?: VpcPrivateNetworkState, opts?: CustomResourceOptions): VpcPrivateNetwork
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            created_at: Optional[str] = None,
            ipv4_subnet: Optional[VpcPrivateNetworkIpv4SubnetArgs] = None,
            ipv6_subnets: Optional[Sequence[VpcPrivateNetworkIpv6SubnetArgs]] = None,
            is_regional: Optional[bool] = None,
            name: Optional[str] = None,
            organization_id: Optional[str] = None,
            project_id: Optional[str] = None,
            region: Optional[str] = None,
            tags: Optional[Sequence[str]] = None,
            updated_at: Optional[str] = None,
            vpc_id: Optional[str] = None,
            zone: Optional[str] = None) -> VpcPrivateNetwork
    func GetVpcPrivateNetwork(ctx *Context, name string, id IDInput, state *VpcPrivateNetworkState, opts ...ResourceOption) (*VpcPrivateNetwork, error)
    public static VpcPrivateNetwork Get(string name, Input<string> id, VpcPrivateNetworkState? state, CustomResourceOptions? opts = null)
    public static VpcPrivateNetwork get(String name, Output<String> id, VpcPrivateNetworkState 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:
    CreatedAt string

    The date and time of the creation of the private network

    Ipv4Subnet Lbrlabs.PulumiPackage.Scaleway.Inputs.VpcPrivateNetworkIpv4Subnet

    The IPv4 subnet associated with the private network.

    Ipv6Subnets List<Lbrlabs.PulumiPackage.Scaleway.Inputs.VpcPrivateNetworkIpv6Subnet>

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    IsRegional bool

    Defines whether the private network is Regional. By default, it will be Zonal.

    Name string

    The name of the private network. If not provided it will be randomly generated.

    OrganizationId string

    The organization ID the private network is associated with.

    ProjectId string

    project_id) The ID of the project the private network is associated with.

    Region string

    region) The region of the private network.

    Tags List<string>

    The tags associated with the private network.

    UpdatedAt string

    The date and time of the last update of the private network

    VpcId string

    The VPC in which to create the private network.

    Zone string

    zone) The zone in which the private network should be created.

    CreatedAt string

    The date and time of the creation of the private network

    Ipv4Subnet VpcPrivateNetworkIpv4SubnetArgs

    The IPv4 subnet associated with the private network.

    Ipv6Subnets []VpcPrivateNetworkIpv6SubnetArgs

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    IsRegional bool

    Defines whether the private network is Regional. By default, it will be Zonal.

    Name string

    The name of the private network. If not provided it will be randomly generated.

    OrganizationId string

    The organization ID the private network is associated with.

    ProjectId string

    project_id) The ID of the project the private network is associated with.

    Region string

    region) The region of the private network.

    Tags []string

    The tags associated with the private network.

    UpdatedAt string

    The date and time of the last update of the private network

    VpcId string

    The VPC in which to create the private network.

    Zone string

    zone) The zone in which the private network should be created.

    createdAt String

    The date and time of the creation of the private network

    ipv4Subnet VpcPrivateNetworkIpv4Subnet

    The IPv4 subnet associated with the private network.

    ipv6Subnets List<VpcPrivateNetworkIpv6Subnet>

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    isRegional Boolean

    Defines whether the private network is Regional. By default, it will be Zonal.

    name String

    The name of the private network. If not provided it will be randomly generated.

    organizationId String

    The organization ID the private network is associated with.

    projectId String

    project_id) The ID of the project the private network is associated with.

    region String

    region) The region of the private network.

    tags List<String>

    The tags associated with the private network.

    updatedAt String

    The date and time of the last update of the private network

    vpcId String

    The VPC in which to create the private network.

    zone String

    zone) The zone in which the private network should be created.

    createdAt string

    The date and time of the creation of the private network

    ipv4Subnet VpcPrivateNetworkIpv4Subnet

    The IPv4 subnet associated with the private network.

    ipv6Subnets VpcPrivateNetworkIpv6Subnet[]

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    isRegional boolean

    Defines whether the private network is Regional. By default, it will be Zonal.

    name string

    The name of the private network. If not provided it will be randomly generated.

    organizationId string

    The organization ID the private network is associated with.

    projectId string

    project_id) The ID of the project the private network is associated with.

    region string

    region) The region of the private network.

    tags string[]

    The tags associated with the private network.

    updatedAt string

    The date and time of the last update of the private network

    vpcId string

    The VPC in which to create the private network.

    zone string

    zone) The zone in which the private network should be created.

    created_at str

    The date and time of the creation of the private network

    ipv4_subnet VpcPrivateNetworkIpv4SubnetArgs

    The IPv4 subnet associated with the private network.

    ipv6_subnets Sequence[VpcPrivateNetworkIpv6SubnetArgs]

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    is_regional bool

    Defines whether the private network is Regional. By default, it will be Zonal.

    name str

    The name of the private network. If not provided it will be randomly generated.

    organization_id str

    The organization ID the private network is associated with.

    project_id str

    project_id) The ID of the project the private network is associated with.

    region str

    region) The region of the private network.

    tags Sequence[str]

    The tags associated with the private network.

    updated_at str

    The date and time of the last update of the private network

    vpc_id str

    The VPC in which to create the private network.

    zone str

    zone) The zone in which the private network should be created.

    createdAt String

    The date and time of the creation of the private network

    ipv4Subnet Property Map

    The IPv4 subnet associated with the private network.

    ipv6Subnets List<Property Map>

    The IPv6 subnets associated with the private network.

    Note: If using Regional Private Network:

    isRegional Boolean

    Defines whether the private network is Regional. By default, it will be Zonal.

    name String

    The name of the private network. If not provided it will be randomly generated.

    organizationId String

    The organization ID the private network is associated with.

    projectId String

    project_id) The ID of the project the private network is associated with.

    region String

    region) The region of the private network.

    tags List<String>

    The tags associated with the private network.

    updatedAt String

    The date and time of the last update of the private network

    vpcId String

    The VPC in which to create the private network.

    zone String

    zone) The zone in which the private network should be created.

    Supporting Types

    VpcPrivateNetworkIpv4Subnet, VpcPrivateNetworkIpv4SubnetArgs

    CreatedAt string
    Id string

    The ID of the private network.

    Subnet string
    UpdatedAt string
    CreatedAt string
    Id string

    The ID of the private network.

    Subnet string
    UpdatedAt string
    createdAt String
    id String

    The ID of the private network.

    subnet String
    updatedAt String
    createdAt string
    id string

    The ID of the private network.

    subnet string
    updatedAt string
    created_at str
    id str

    The ID of the private network.

    subnet str
    updated_at str
    createdAt String
    id String

    The ID of the private network.

    subnet String
    updatedAt String

    VpcPrivateNetworkIpv6Subnet, VpcPrivateNetworkIpv6SubnetArgs

    CreatedAt string
    Id string

    The ID of the private network.

    Subnet string
    UpdatedAt string
    CreatedAt string
    Id string

    The ID of the private network.

    Subnet string
    UpdatedAt string
    createdAt String
    id String

    The ID of the private network.

    subnet String
    updatedAt String
    createdAt string
    id string

    The ID of the private network.

    subnet string
    updatedAt string
    created_at str
    id str

    The ID of the private network.

    subnet str
    updated_at str
    createdAt String
    id String

    The ID of the private network.

    subnet String
    updatedAt String

    Import

    Private networks can be imported using the {zone}/{id} or {region}/{id} using beta, e.g. bash

     $ pulumi import scaleway:index/vpcPrivateNetwork:VpcPrivateNetwork vpc_demo fr-par-1/11111111-1111-1111-1111-111111111111
    

    bash

     $ pulumi import scaleway:index/vpcPrivateNetwork:VpcPrivateNetwork vpc_demo fr-par/11111111-1111-1111-1111-111111111111
    

    Package Details

    Repository
    scaleway lbrlabs/pulumi-scaleway
    License
    Apache-2.0
    Notes

    This Pulumi package is based on the scaleway Terraform Provider.

    scaleway logo
    Scaleway v1.10.0 published on Saturday, Jul 1, 2023 by lbrlabs