1. Packages
  2. Scaleway
  3. API Docs
  4. IotRoute
Scaleway v1.20.0 published on Monday, Nov 4, 2024 by pulumiverse

scaleway.IotRoute

Explore with Pulumi AI

scaleway logo
Scaleway v1.20.0 published on Monday, Nov 4, 2024 by pulumiverse

    Example Usage

    Database Route

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const mainIotHub = new scaleway.IotHub("main", {
        name: "main",
        productPlan: "plan_shared",
    });
    const iot = new scaleway.DatabaseInstance("iot", {
        name: "iot",
        nodeType: "db-dev-s",
        engine: "PostgreSQL-12",
        userName: "root",
        password: "T3stP4ssw0rdD0N0tUs3!",
    });
    const main = new scaleway.IotRoute("main", {
        name: "default",
        hubId: mainIotHub.id,
        topic: "#",
        database: {
            query: `INSERT INTO measurements(
    \x09push_time,
    \x09report_time,
    \x09station_id,
    \x09temperature,
    \x09humidity
    ) VALUES (
    \x09NOW(),
    \x09TIMESTAMP 'epoch' + ((PAYLOAD::jsonb->'last_reported')::integer * INTERVAL '1 second'),
    \x09(PAYLOAD::jsonb->'station_id')::uuid,
    \x09(PAYLOAD::jsonb->'temperature')::decimal,
    \x09(PAYLOAD::jsonb->'humidity'):decimal:
    );
    `,
            host: iot.endpointIp,
            port: iot.endpointPort,
            dbname: "rdb",
            username: iot.userName,
            password: iot.password,
        },
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main_iot_hub = scaleway.IotHub("main",
        name="main",
        product_plan="plan_shared")
    iot = scaleway.DatabaseInstance("iot",
        name="iot",
        node_type="db-dev-s",
        engine="PostgreSQL-12",
        user_name="root",
        password="T3stP4ssw0rdD0N0tUs3!")
    main = scaleway.IotRoute("main",
        name="default",
        hub_id=main_iot_hub.id,
        topic="#",
        database={
            "query": """INSERT INTO measurements(
    \x09push_time,
    \x09report_time,
    \x09station_id,
    \x09temperature,
    \x09humidity
    ) VALUES (
    \x09NOW(),
    \x09TIMESTAMP 'epoch' + (($PAYLOAD::jsonb->'last_reported')::integer * INTERVAL '1 second'),
    \x09($PAYLOAD::jsonb->'station_id')::uuid,
    \x09($PAYLOAD::jsonb->'temperature')::decimal,
    \x09($PAYLOAD::jsonb->'humidity'):decimal:
    );
    """,
            "host": iot.endpoint_ip,
            "port": iot.endpoint_port,
            "dbname": "rdb",
            "username": iot.user_name,
            "password": iot.password,
        })
    
    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 {
    		mainIotHub, err := scaleway.NewIotHub(ctx, "main", &scaleway.IotHubArgs{
    			Name:        pulumi.String("main"),
    			ProductPlan: pulumi.String("plan_shared"),
    		})
    		if err != nil {
    			return err
    		}
    		iot, err := scaleway.NewDatabaseInstance(ctx, "iot", &scaleway.DatabaseInstanceArgs{
    			Name:     pulumi.String("iot"),
    			NodeType: pulumi.String("db-dev-s"),
    			Engine:   pulumi.String("PostgreSQL-12"),
    			UserName: pulumi.String("root"),
    			Password: pulumi.String("T3stP4ssw0rdD0N0tUs3!"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewIotRoute(ctx, "main", &scaleway.IotRouteArgs{
    			Name:  pulumi.String("default"),
    			HubId: mainIotHub.ID(),
    			Topic: pulumi.String("#"),
    			Database: &scaleway.IotRouteDatabaseArgs{
    				Query: pulumi.String(`INSERT INTO measurements(
    	push_time,
    	report_time,
    	station_id,
    	temperature,
    	humidity
    ) VALUES (
    	NOW(),
    	TIMESTAMP 'epoch' + (($PAYLOAD::jsonb->'last_reported')::integer * INTERVAL '1 second'),
    	($PAYLOAD::jsonb->'station_id')::uuid,
    	($PAYLOAD::jsonb->'temperature')::decimal,
    	($PAYLOAD::jsonb->'humidity'):decimal:
    );
    `),
    				Host:     iot.EndpointIp,
    				Port:     iot.EndpointPort,
    				Dbname:   pulumi.String("rdb"),
    				Username: iot.UserName,
    				Password: iot.Password,
    			},
    		})
    		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 mainIotHub = new Scaleway.IotHub("main", new()
        {
            Name = "main",
            ProductPlan = "plan_shared",
        });
    
        var iot = new Scaleway.DatabaseInstance("iot", new()
        {
            Name = "iot",
            NodeType = "db-dev-s",
            Engine = "PostgreSQL-12",
            UserName = "root",
            Password = "T3stP4ssw0rdD0N0tUs3!",
        });
    
        var main = new Scaleway.IotRoute("main", new()
        {
            Name = "default",
            HubId = mainIotHub.Id,
            Topic = "#",
            Database = new Scaleway.Inputs.IotRouteDatabaseArgs
            {
                Query = @"INSERT INTO measurements(
    	push_time,
    	report_time,
    	station_id,
    	temperature,
    	humidity
    ) VALUES (
    	NOW(),
    	TIMESTAMP 'epoch' + (($PAYLOAD::jsonb->'last_reported')::integer * INTERVAL '1 second'),
    	($PAYLOAD::jsonb->'station_id')::uuid,
    	($PAYLOAD::jsonb->'temperature')::decimal,
    	($PAYLOAD::jsonb->'humidity'):decimal:
    );
    ",
                Host = iot.EndpointIp,
                Port = iot.EndpointPort,
                Dbname = "rdb",
                Username = iot.UserName,
                Password = iot.Password,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.IotHub;
    import com.pulumi.scaleway.IotHubArgs;
    import com.pulumi.scaleway.DatabaseInstance;
    import com.pulumi.scaleway.DatabaseInstanceArgs;
    import com.pulumi.scaleway.IotRoute;
    import com.pulumi.scaleway.IotRouteArgs;
    import com.pulumi.scaleway.inputs.IotRouteDatabaseArgs;
    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 mainIotHub = new IotHub("mainIotHub", IotHubArgs.builder()
                .name("main")
                .productPlan("plan_shared")
                .build());
    
            var iot = new DatabaseInstance("iot", DatabaseInstanceArgs.builder()
                .name("iot")
                .nodeType("db-dev-s")
                .engine("PostgreSQL-12")
                .userName("root")
                .password("T3stP4ssw0rdD0N0tUs3!")
                .build());
    
            var main = new IotRoute("main", IotRouteArgs.builder()
                .name("default")
                .hubId(mainIotHub.id())
                .topic("#")
                .database(IotRouteDatabaseArgs.builder()
                    .query("""
    INSERT INTO measurements(
    	push_time,
    	report_time,
    	station_id,
    	temperature,
    	humidity
    ) VALUES (
    	NOW(),
    	TIMESTAMP 'epoch' + (($PAYLOAD::jsonb->'last_reported')::integer * INTERVAL '1 second'),
    	($PAYLOAD::jsonb->'station_id')::uuid,
    	($PAYLOAD::jsonb->'temperature')::decimal,
    	($PAYLOAD::jsonb->'humidity'):decimal:
    );
                    """)
                    .host(iot.endpointIp())
                    .port(iot.endpointPort())
                    .dbname("rdb")
                    .username(iot.userName())
                    .password(iot.password())
                    .build())
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:IotRoute
        properties:
          name: default
          hubId: ${mainIotHub.id}
          topic: '#'
          database:
            query: |
              INSERT INTO measurements(
              	push_time,
              	report_time,
              	station_id,
              	temperature,
              	humidity
              ) VALUES (
              	NOW(),
              	TIMESTAMP 'epoch' + (($PAYLOAD::jsonb->'last_reported')::integer * INTERVAL '1 second'),
              	($PAYLOAD::jsonb->'station_id')::uuid,
              	($PAYLOAD::jsonb->'temperature')::decimal,
              	($PAYLOAD::jsonb->'humidity'):decimal:
              );          
            host: ${iot.endpointIp}
            port: ${iot.endpointPort}
            dbname: rdb
            username: ${iot.userName}
            password: ${iot.password}
      mainIotHub:
        type: scaleway:IotHub
        name: main
        properties:
          name: main
          productPlan: plan_shared
      iot:
        type: scaleway:DatabaseInstance
        properties:
          name: iot
          nodeType: db-dev-s
          engine: PostgreSQL-12
          userName: root
          password: T3stP4ssw0rdD0N0tUs3!
    

    S3 Route

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const mainIotHub = new scaleway.IotHub("main", {
        name: "main",
        productPlan: "plan_shared",
    });
    const mainObjectBucket = new scaleway.ObjectBucket("main", {
        region: "fr-par",
        name: "my_awesome-bucket",
    });
    const main = new scaleway.IotRoute("main", {
        name: "main",
        hubId: mainIotHub.id,
        topic: "#",
        s3: {
            bucketRegion: mainObjectBucket.region,
            bucketName: mainObjectBucket.name,
            objectPrefix: "foo",
            strategy: "per_topic",
        },
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main_iot_hub = scaleway.IotHub("main",
        name="main",
        product_plan="plan_shared")
    main_object_bucket = scaleway.ObjectBucket("main",
        region="fr-par",
        name="my_awesome-bucket")
    main = scaleway.IotRoute("main",
        name="main",
        hub_id=main_iot_hub.id,
        topic="#",
        s3={
            "bucket_region": main_object_bucket.region,
            "bucket_name": main_object_bucket.name,
            "object_prefix": "foo",
            "strategy": "per_topic",
        })
    
    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 {
    		mainIotHub, err := scaleway.NewIotHub(ctx, "main", &scaleway.IotHubArgs{
    			Name:        pulumi.String("main"),
    			ProductPlan: pulumi.String("plan_shared"),
    		})
    		if err != nil {
    			return err
    		}
    		mainObjectBucket, err := scaleway.NewObjectBucket(ctx, "main", &scaleway.ObjectBucketArgs{
    			Region: pulumi.String("fr-par"),
    			Name:   pulumi.String("my_awesome-bucket"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewIotRoute(ctx, "main", &scaleway.IotRouteArgs{
    			Name:  pulumi.String("main"),
    			HubId: mainIotHub.ID(),
    			Topic: pulumi.String("#"),
    			S3: &scaleway.IotRouteS3Args{
    				BucketRegion: mainObjectBucket.Region,
    				BucketName:   mainObjectBucket.Name,
    				ObjectPrefix: pulumi.String("foo"),
    				Strategy:     pulumi.String("per_topic"),
    			},
    		})
    		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 mainIotHub = new Scaleway.IotHub("main", new()
        {
            Name = "main",
            ProductPlan = "plan_shared",
        });
    
        var mainObjectBucket = new Scaleway.ObjectBucket("main", new()
        {
            Region = "fr-par",
            Name = "my_awesome-bucket",
        });
    
        var main = new Scaleway.IotRoute("main", new()
        {
            Name = "main",
            HubId = mainIotHub.Id,
            Topic = "#",
            S3 = new Scaleway.Inputs.IotRouteS3Args
            {
                BucketRegion = mainObjectBucket.Region,
                BucketName = mainObjectBucket.Name,
                ObjectPrefix = "foo",
                Strategy = "per_topic",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.IotHub;
    import com.pulumi.scaleway.IotHubArgs;
    import com.pulumi.scaleway.ObjectBucket;
    import com.pulumi.scaleway.ObjectBucketArgs;
    import com.pulumi.scaleway.IotRoute;
    import com.pulumi.scaleway.IotRouteArgs;
    import com.pulumi.scaleway.inputs.IotRouteS3Args;
    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 mainIotHub = new IotHub("mainIotHub", IotHubArgs.builder()
                .name("main")
                .productPlan("plan_shared")
                .build());
    
            var mainObjectBucket = new ObjectBucket("mainObjectBucket", ObjectBucketArgs.builder()
                .region("fr-par")
                .name("my_awesome-bucket")
                .build());
    
            var main = new IotRoute("main", IotRouteArgs.builder()
                .name("main")
                .hubId(mainIotHub.id())
                .topic("#")
                .s3(IotRouteS3Args.builder()
                    .bucketRegion(mainObjectBucket.region())
                    .bucketName(mainObjectBucket.name())
                    .objectPrefix("foo")
                    .strategy("per_topic")
                    .build())
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:IotRoute
        properties:
          name: main
          hubId: ${mainIotHub.id}
          topic: '#'
          s3:
            bucketRegion: ${mainObjectBucket.region}
            bucketName: ${mainObjectBucket.name}
            objectPrefix: foo
            strategy: per_topic
      mainIotHub:
        type: scaleway:IotHub
        name: main
        properties:
          name: main
          productPlan: plan_shared
      mainObjectBucket:
        type: scaleway:ObjectBucket
        name: main
        properties:
          region: fr-par
          name: my_awesome-bucket
    

    Rest Route

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const mainIotHub = new scaleway.IotHub("main", {
        name: "main",
        productPlan: "plan_shared",
    });
    const main = new scaleway.IotRoute("main", {
        name: "main",
        hubId: mainIotHub.id,
        topic: "#",
        rest: {
            verb: "get",
            uri: "http://scaleway.com",
            headers: {
                "X-awesome-header": "my-awesome-value",
            },
        },
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main_iot_hub = scaleway.IotHub("main",
        name="main",
        product_plan="plan_shared")
    main = scaleway.IotRoute("main",
        name="main",
        hub_id=main_iot_hub.id,
        topic="#",
        rest={
            "verb": "get",
            "uri": "http://scaleway.com",
            "headers": {
                "X-awesome-header": "my-awesome-value",
            },
        })
    
    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 {
    		mainIotHub, err := scaleway.NewIotHub(ctx, "main", &scaleway.IotHubArgs{
    			Name:        pulumi.String("main"),
    			ProductPlan: pulumi.String("plan_shared"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = scaleway.NewIotRoute(ctx, "main", &scaleway.IotRouteArgs{
    			Name:  pulumi.String("main"),
    			HubId: mainIotHub.ID(),
    			Topic: pulumi.String("#"),
    			Rest: &scaleway.IotRouteRestArgs{
    				Verb: pulumi.String("get"),
    				Uri:  pulumi.String("http://scaleway.com"),
    				Headers: pulumi.StringMap{
    					"X-awesome-header": pulumi.String("my-awesome-value"),
    				},
    			},
    		})
    		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 mainIotHub = new Scaleway.IotHub("main", new()
        {
            Name = "main",
            ProductPlan = "plan_shared",
        });
    
        var main = new Scaleway.IotRoute("main", new()
        {
            Name = "main",
            HubId = mainIotHub.Id,
            Topic = "#",
            Rest = new Scaleway.Inputs.IotRouteRestArgs
            {
                Verb = "get",
                Uri = "http://scaleway.com",
                Headers = 
                {
                    { "X-awesome-header", "my-awesome-value" },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.IotHub;
    import com.pulumi.scaleway.IotHubArgs;
    import com.pulumi.scaleway.IotRoute;
    import com.pulumi.scaleway.IotRouteArgs;
    import com.pulumi.scaleway.inputs.IotRouteRestArgs;
    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 mainIotHub = new IotHub("mainIotHub", IotHubArgs.builder()
                .name("main")
                .productPlan("plan_shared")
                .build());
    
            var main = new IotRoute("main", IotRouteArgs.builder()
                .name("main")
                .hubId(mainIotHub.id())
                .topic("#")
                .rest(IotRouteRestArgs.builder()
                    .verb("get")
                    .uri("http://scaleway.com")
                    .headers(Map.of("X-awesome-header", "my-awesome-value"))
                    .build())
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:IotRoute
        properties:
          name: main
          hubId: ${mainIotHub.id}
          topic: '#'
          rest:
            verb: get
            uri: http://scaleway.com
            headers:
              X-awesome-header: my-awesome-value
      mainIotHub:
        type: scaleway:IotHub
        name: main
        properties:
          name: main
          productPlan: plan_shared
    

    Create IotRoute Resource

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

    Constructor syntax

    new IotRoute(name: string, args: IotRouteArgs, opts?: CustomResourceOptions);
    @overload
    def IotRoute(resource_name: str,
                 args: IotRouteArgs,
                 opts: Optional[ResourceOptions] = None)
    
    @overload
    def IotRoute(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 hub_id: Optional[str] = None,
                 topic: Optional[str] = None,
                 database: Optional[IotRouteDatabaseArgs] = None,
                 name: Optional[str] = None,
                 region: Optional[str] = None,
                 rest: Optional[IotRouteRestArgs] = None,
                 s3: Optional[IotRouteS3Args] = None)
    func NewIotRoute(ctx *Context, name string, args IotRouteArgs, opts ...ResourceOption) (*IotRoute, error)
    public IotRoute(string name, IotRouteArgs args, CustomResourceOptions? opts = null)
    public IotRoute(String name, IotRouteArgs args)
    public IotRoute(String name, IotRouteArgs args, CustomResourceOptions options)
    
    type: scaleway:IotRoute
    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 IotRouteArgs
    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 IotRouteArgs
    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 IotRouteArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args IotRouteArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args IotRouteArgs
    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 iotRouteResource = new Scaleway.IotRoute("iotRouteResource", new()
    {
        HubId = "string",
        Topic = "string",
        Database = new Scaleway.Inputs.IotRouteDatabaseArgs
        {
            Dbname = "string",
            Host = "string",
            Password = "string",
            Port = 0,
            Query = "string",
            Username = "string",
        },
        Name = "string",
        Region = "string",
        Rest = new Scaleway.Inputs.IotRouteRestArgs
        {
            Headers = 
            {
                { "string", "string" },
            },
            Uri = "string",
            Verb = "string",
        },
        S3 = new Scaleway.Inputs.IotRouteS3Args
        {
            BucketName = "string",
            BucketRegion = "string",
            Strategy = "string",
            ObjectPrefix = "string",
        },
    });
    
    example, err := scaleway.NewIotRoute(ctx, "iotRouteResource", &scaleway.IotRouteArgs{
    	HubId: pulumi.String("string"),
    	Topic: pulumi.String("string"),
    	Database: &scaleway.IotRouteDatabaseArgs{
    		Dbname:   pulumi.String("string"),
    		Host:     pulumi.String("string"),
    		Password: pulumi.String("string"),
    		Port:     pulumi.Int(0),
    		Query:    pulumi.String("string"),
    		Username: pulumi.String("string"),
    	},
    	Name:   pulumi.String("string"),
    	Region: pulumi.String("string"),
    	Rest: &scaleway.IotRouteRestArgs{
    		Headers: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    		Uri:  pulumi.String("string"),
    		Verb: pulumi.String("string"),
    	},
    	S3: &scaleway.IotRouteS3Args{
    		BucketName:   pulumi.String("string"),
    		BucketRegion: pulumi.String("string"),
    		Strategy:     pulumi.String("string"),
    		ObjectPrefix: pulumi.String("string"),
    	},
    })
    
    var iotRouteResource = new IotRoute("iotRouteResource", IotRouteArgs.builder()
        .hubId("string")
        .topic("string")
        .database(IotRouteDatabaseArgs.builder()
            .dbname("string")
            .host("string")
            .password("string")
            .port(0)
            .query("string")
            .username("string")
            .build())
        .name("string")
        .region("string")
        .rest(IotRouteRestArgs.builder()
            .headers(Map.of("string", "string"))
            .uri("string")
            .verb("string")
            .build())
        .s3(IotRouteS3Args.builder()
            .bucketName("string")
            .bucketRegion("string")
            .strategy("string")
            .objectPrefix("string")
            .build())
        .build());
    
    iot_route_resource = scaleway.IotRoute("iotRouteResource",
        hub_id="string",
        topic="string",
        database={
            "dbname": "string",
            "host": "string",
            "password": "string",
            "port": 0,
            "query": "string",
            "username": "string",
        },
        name="string",
        region="string",
        rest={
            "headers": {
                "string": "string",
            },
            "uri": "string",
            "verb": "string",
        },
        s3={
            "bucket_name": "string",
            "bucket_region": "string",
            "strategy": "string",
            "object_prefix": "string",
        })
    
    const iotRouteResource = new scaleway.IotRoute("iotRouteResource", {
        hubId: "string",
        topic: "string",
        database: {
            dbname: "string",
            host: "string",
            password: "string",
            port: 0,
            query: "string",
            username: "string",
        },
        name: "string",
        region: "string",
        rest: {
            headers: {
                string: "string",
            },
            uri: "string",
            verb: "string",
        },
        s3: {
            bucketName: "string",
            bucketRegion: "string",
            strategy: "string",
            objectPrefix: "string",
        },
    });
    
    type: scaleway:IotRoute
    properties:
        database:
            dbname: string
            host: string
            password: string
            port: 0
            query: string
            username: string
        hubId: string
        name: string
        region: string
        rest:
            headers:
                string: string
            uri: string
            verb: string
        s3:
            bucketName: string
            bucketRegion: string
            objectPrefix: string
            strategy: string
        topic: string
    

    IotRoute Resource Properties

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

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The IotRoute resource accepts the following input properties:

    HubId string
    The hub ID to which the Route will be attached to.
    Topic string
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    Database Pulumiverse.Scaleway.Inputs.IotRouteDatabase
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    Name string
    The name of the IoT Route you want to create (e.g. my-route).
    Region string
    (Defaults to provider region) The region in which the Route is attached to.
    Rest Pulumiverse.Scaleway.Inputs.IotRouteRest
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    S3 Pulumiverse.Scaleway.Inputs.IotRouteS3
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    HubId string
    The hub ID to which the Route will be attached to.
    Topic string
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    Database IotRouteDatabaseArgs
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    Name string
    The name of the IoT Route you want to create (e.g. my-route).
    Region string
    (Defaults to provider region) The region in which the Route is attached to.
    Rest IotRouteRestArgs
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    S3 IotRouteS3Args
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    hubId String
    The hub ID to which the Route will be attached to.
    topic String
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    database IotRouteDatabase
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    name String
    The name of the IoT Route you want to create (e.g. my-route).
    region String
    (Defaults to provider region) The region in which the Route is attached to.
    rest IotRouteRest
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    s3 IotRouteS3
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    hubId string
    The hub ID to which the Route will be attached to.
    topic string
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    database IotRouteDatabase
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    name string
    The name of the IoT Route you want to create (e.g. my-route).
    region string
    (Defaults to provider region) The region in which the Route is attached to.
    rest IotRouteRest
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    s3 IotRouteS3
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    hub_id str
    The hub ID to which the Route will be attached to.
    topic str
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    database IotRouteDatabaseArgs
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    name str
    The name of the IoT Route you want to create (e.g. my-route).
    region str
    (Defaults to provider region) The region in which the Route is attached to.
    rest IotRouteRestArgs
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    s3 IotRouteS3Args
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    hubId String
    The hub ID to which the Route will be attached to.
    topic String
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    database Property Map
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    name String
    The name of the IoT Route you want to create (e.g. my-route).
    region String
    (Defaults to provider region) The region in which the Route is attached to.
    rest Property Map
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    s3 Property Map
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.

    Outputs

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

    CreatedAt string
    The date and time the Route was created.
    Id string
    The provider-assigned unique ID for this managed resource.
    CreatedAt string
    The date and time the Route was created.
    Id string
    The provider-assigned unique ID for this managed resource.
    createdAt String
    The date and time the Route was created.
    id String
    The provider-assigned unique ID for this managed resource.
    createdAt string
    The date and time the Route was created.
    id string
    The provider-assigned unique ID for this managed resource.
    created_at str
    The date and time the Route was created.
    id str
    The provider-assigned unique ID for this managed resource.
    createdAt String
    The date and time the Route was created.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing IotRoute Resource

    Get an existing IotRoute 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?: IotRouteState, opts?: CustomResourceOptions): IotRoute
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            created_at: Optional[str] = None,
            database: Optional[IotRouteDatabaseArgs] = None,
            hub_id: Optional[str] = None,
            name: Optional[str] = None,
            region: Optional[str] = None,
            rest: Optional[IotRouteRestArgs] = None,
            s3: Optional[IotRouteS3Args] = None,
            topic: Optional[str] = None) -> IotRoute
    func GetIotRoute(ctx *Context, name string, id IDInput, state *IotRouteState, opts ...ResourceOption) (*IotRoute, error)
    public static IotRoute Get(string name, Input<string> id, IotRouteState? state, CustomResourceOptions? opts = null)
    public static IotRoute get(String name, Output<String> id, IotRouteState 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 the Route was created.
    Database Pulumiverse.Scaleway.Inputs.IotRouteDatabase
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    HubId string
    The hub ID to which the Route will be attached to.
    Name string
    The name of the IoT Route you want to create (e.g. my-route).
    Region string
    (Defaults to provider region) The region in which the Route is attached to.
    Rest Pulumiverse.Scaleway.Inputs.IotRouteRest
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    S3 Pulumiverse.Scaleway.Inputs.IotRouteS3
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    Topic string
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    CreatedAt string
    The date and time the Route was created.
    Database IotRouteDatabaseArgs
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    HubId string
    The hub ID to which the Route will be attached to.
    Name string
    The name of the IoT Route you want to create (e.g. my-route).
    Region string
    (Defaults to provider region) The region in which the Route is attached to.
    Rest IotRouteRestArgs
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    S3 IotRouteS3Args
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    Topic string
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    createdAt String
    The date and time the Route was created.
    database IotRouteDatabase
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    hubId String
    The hub ID to which the Route will be attached to.
    name String
    The name of the IoT Route you want to create (e.g. my-route).
    region String
    (Defaults to provider region) The region in which the Route is attached to.
    rest IotRouteRest
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    s3 IotRouteS3
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    topic String
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    createdAt string
    The date and time the Route was created.
    database IotRouteDatabase
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    hubId string
    The hub ID to which the Route will be attached to.
    name string
    The name of the IoT Route you want to create (e.g. my-route).
    region string
    (Defaults to provider region) The region in which the Route is attached to.
    rest IotRouteRest
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    s3 IotRouteS3
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    topic string
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    created_at str
    The date and time the Route was created.
    database IotRouteDatabaseArgs
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    hub_id str
    The hub ID to which the Route will be attached to.
    name str
    The name of the IoT Route you want to create (e.g. my-route).
    region str
    (Defaults to provider region) The region in which the Route is attached to.
    rest IotRouteRestArgs
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    s3 IotRouteS3Args
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    topic str
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).
    createdAt String
    The date and time the Route was created.
    database Property Map
    Configuration block for the database routes. See product documentation for a better understanding of the parameters.
    hubId String
    The hub ID to which the Route will be attached to.
    name String
    The name of the IoT Route you want to create (e.g. my-route).
    region String
    (Defaults to provider region) The region in which the Route is attached to.
    rest Property Map
    Configuration block for the rest routes. See product documentation for a better understanding of the parameters.
    s3 Property Map
    Configuration block for the S3 routes. See product documentation for a better understanding of the parameters.
    topic String
    The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).

    Supporting Types

    IotRouteDatabase, IotRouteDatabaseArgs

    Dbname string
    The database name (e.g. measurements).
    Host string
    The database hostname. Can be an IP or a FQDN.
    Password string
    The database password.
    Port int
    The database port (e.g. 5432)
    Query string
    The SQL query that will be executed when receiving a message ($TOPIC and $PAYLOAD variables are available, see documentation, e.g. INSERT INTO mytable(date, topic, value) VALUES (NOW(), $TOPIC, $PAYLOAD)).
    Username string
    The database username.
    Dbname string
    The database name (e.g. measurements).
    Host string
    The database hostname. Can be an IP or a FQDN.
    Password string
    The database password.
    Port int
    The database port (e.g. 5432)
    Query string
    The SQL query that will be executed when receiving a message ($TOPIC and $PAYLOAD variables are available, see documentation, e.g. INSERT INTO mytable(date, topic, value) VALUES (NOW(), $TOPIC, $PAYLOAD)).
    Username string
    The database username.
    dbname String
    The database name (e.g. measurements).
    host String
    The database hostname. Can be an IP or a FQDN.
    password String
    The database password.
    port Integer
    The database port (e.g. 5432)
    query String
    The SQL query that will be executed when receiving a message ($TOPIC and $PAYLOAD variables are available, see documentation, e.g. INSERT INTO mytable(date, topic, value) VALUES (NOW(), $TOPIC, $PAYLOAD)).
    username String
    The database username.
    dbname string
    The database name (e.g. measurements).
    host string
    The database hostname. Can be an IP or a FQDN.
    password string
    The database password.
    port number
    The database port (e.g. 5432)
    query string
    The SQL query that will be executed when receiving a message ($TOPIC and $PAYLOAD variables are available, see documentation, e.g. INSERT INTO mytable(date, topic, value) VALUES (NOW(), $TOPIC, $PAYLOAD)).
    username string
    The database username.
    dbname str
    The database name (e.g. measurements).
    host str
    The database hostname. Can be an IP or a FQDN.
    password str
    The database password.
    port int
    The database port (e.g. 5432)
    query str
    The SQL query that will be executed when receiving a message ($TOPIC and $PAYLOAD variables are available, see documentation, e.g. INSERT INTO mytable(date, topic, value) VALUES (NOW(), $TOPIC, $PAYLOAD)).
    username str
    The database username.
    dbname String
    The database name (e.g. measurements).
    host String
    The database hostname. Can be an IP or a FQDN.
    password String
    The database password.
    port Number
    The database port (e.g. 5432)
    query String
    The SQL query that will be executed when receiving a message ($TOPIC and $PAYLOAD variables are available, see documentation, e.g. INSERT INTO mytable(date, topic, value) VALUES (NOW(), $TOPIC, $PAYLOAD)).
    username String
    The database username.

    IotRouteRest, IotRouteRestArgs

    Headers Dictionary<string, string>
    a map of the extra headers to send with the HTTP call (e.g. X-Header = Value).
    Uri string
    The URI of the Rest endpoint (e.g. https://internal.mycompany.com/ingest/mqttdata).
    Verb string
    The HTTP Verb used to call Rest URI (e.g. post).
    Headers map[string]string
    a map of the extra headers to send with the HTTP call (e.g. X-Header = Value).
    Uri string
    The URI of the Rest endpoint (e.g. https://internal.mycompany.com/ingest/mqttdata).
    Verb string
    The HTTP Verb used to call Rest URI (e.g. post).
    headers Map<String,String>
    a map of the extra headers to send with the HTTP call (e.g. X-Header = Value).
    uri String
    The URI of the Rest endpoint (e.g. https://internal.mycompany.com/ingest/mqttdata).
    verb String
    The HTTP Verb used to call Rest URI (e.g. post).
    headers {[key: string]: string}
    a map of the extra headers to send with the HTTP call (e.g. X-Header = Value).
    uri string
    The URI of the Rest endpoint (e.g. https://internal.mycompany.com/ingest/mqttdata).
    verb string
    The HTTP Verb used to call Rest URI (e.g. post).
    headers Mapping[str, str]
    a map of the extra headers to send with the HTTP call (e.g. X-Header = Value).
    uri str
    The URI of the Rest endpoint (e.g. https://internal.mycompany.com/ingest/mqttdata).
    verb str
    The HTTP Verb used to call Rest URI (e.g. post).
    headers Map<String>
    a map of the extra headers to send with the HTTP call (e.g. X-Header = Value).
    uri String
    The URI of the Rest endpoint (e.g. https://internal.mycompany.com/ingest/mqttdata).
    verb String
    The HTTP Verb used to call Rest URI (e.g. post).

    IotRouteS3, IotRouteS3Args

    BucketName string
    The name of the S3 route's destination bucket (e.g. my-object-storage).
    BucketRegion string
    The region of the S3 route's destination bucket (e.g. fr-par).
    Strategy string
    How the S3 route's objects will be created (e.g. per_topic). See documentation for behaviour details.
    ObjectPrefix string
    The string to prefix object names with (e.g. mykeyprefix-).
    BucketName string
    The name of the S3 route's destination bucket (e.g. my-object-storage).
    BucketRegion string
    The region of the S3 route's destination bucket (e.g. fr-par).
    Strategy string
    How the S3 route's objects will be created (e.g. per_topic). See documentation for behaviour details.
    ObjectPrefix string
    The string to prefix object names with (e.g. mykeyprefix-).
    bucketName String
    The name of the S3 route's destination bucket (e.g. my-object-storage).
    bucketRegion String
    The region of the S3 route's destination bucket (e.g. fr-par).
    strategy String
    How the S3 route's objects will be created (e.g. per_topic). See documentation for behaviour details.
    objectPrefix String
    The string to prefix object names with (e.g. mykeyprefix-).
    bucketName string
    The name of the S3 route's destination bucket (e.g. my-object-storage).
    bucketRegion string
    The region of the S3 route's destination bucket (e.g. fr-par).
    strategy string
    How the S3 route's objects will be created (e.g. per_topic). See documentation for behaviour details.
    objectPrefix string
    The string to prefix object names with (e.g. mykeyprefix-).
    bucket_name str
    The name of the S3 route's destination bucket (e.g. my-object-storage).
    bucket_region str
    The region of the S3 route's destination bucket (e.g. fr-par).
    strategy str
    How the S3 route's objects will be created (e.g. per_topic). See documentation for behaviour details.
    object_prefix str
    The string to prefix object names with (e.g. mykeyprefix-).
    bucketName String
    The name of the S3 route's destination bucket (e.g. my-object-storage).
    bucketRegion String
    The region of the S3 route's destination bucket (e.g. fr-par).
    strategy String
    How the S3 route's objects will be created (e.g. per_topic). See documentation for behaviour details.
    objectPrefix String
    The string to prefix object names with (e.g. mykeyprefix-).

    Import

    IoT Routes can be imported using the {region}/{id}, e.g.

    bash

    $ pulumi import scaleway:index/iotRoute:IotRoute route01 fr-par/11111111-1111-1111-1111-111111111111
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    scaleway pulumiverse/pulumi-scaleway
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the scaleway Terraform Provider.
    scaleway logo
    Scaleway v1.20.0 published on Monday, Nov 4, 2024 by pulumiverse