Creates and manages Scaleway Edge Services Pipelines.
Example Usage
Basic
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";
const main = new scaleway.edgeservices.Pipeline("main", {
name: "pipeline-name",
description: "pipeline description",
});
import pulumi
import pulumiverse_scaleway as scaleway
main = scaleway.edgeservices.Pipeline("main",
name="pipeline-name",
description="pipeline description")
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/edgeservices"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := edgeservices.NewPipeline(ctx, "main", &edgeservices.PipelineArgs{
Name: pulumi.String("pipeline-name"),
Description: pulumi.String("pipeline description"),
})
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.Edgeservices.Pipeline("main", new()
{
Name = "pipeline-name",
Description = "pipeline description",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.edgeservices.Pipeline;
import com.pulumi.scaleway.edgeservices.PipelineArgs;
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 Pipeline("main", PipelineArgs.builder()
.name("pipeline-name")
.description("pipeline description")
.build());
}
}
resources:
main:
type: scaleway:edgeservices:Pipeline
properties:
name: pipeline-name
description: pipeline description
Complete pipeline
import * as pulumi from "@pulumi/pulumi";
import * as scaleway from "@pulumiverse/scaleway";
const main = new scaleway.edgeservices.Pipeline("main", {
name: "pipeline-name",
description: "pipeline description",
});
const mainBackendStage = new scaleway.edgeservices.BackendStage("main", {
pipelineId: main.id,
s3BackendConfig: {
bucketName: "my-bucket-name",
bucketRegion: "fr-par",
},
});
const mainWafStage = new scaleway.edgeservices.WafStage("main", {
pipelineId: main.id,
backendStageId: mainBackendStage.id,
mode: "enable",
paranoiaLevel: 3,
});
const mainRouteStage = new scaleway.edgeservices.RouteStage("main", {
pipelineId: main.id,
wafStageId: mainWafStage.id,
rules: [{
backendStageId: mainBackendStage.id,
ruleHttpMatch: {
methodFilters: [
"get",
"post",
],
pathFilter: {
pathFilterType: "regex",
value: ".*",
},
},
}],
});
const mainCacheStage = new scaleway.edgeservices.CacheStage("main", {
pipelineId: main.id,
routeStageId: mainRouteStage.id,
});
const mainTlsStage = new scaleway.edgeservices.TlsStage("main", {
pipelineId: main.id,
cacheStageId: mainCacheStage.id,
managedCertificate: true,
});
const mainDnsStage = new scaleway.edgeservices.DnsStage("main", {
pipelineId: main.id,
tlsStageId: mainTlsStage.id,
fqdns: ["subdomain.example.com"],
});
const mainHeadStage = new scaleway.edgeservices.HeadStage("main", {
pipelineId: main.id,
headStageId: mainDnsStage.id,
});
import pulumi
import pulumiverse_scaleway as scaleway
main = scaleway.edgeservices.Pipeline("main",
name="pipeline-name",
description="pipeline description")
main_backend_stage = scaleway.edgeservices.BackendStage("main",
pipeline_id=main.id,
s3_backend_config={
"bucket_name": "my-bucket-name",
"bucket_region": "fr-par",
})
main_waf_stage = scaleway.edgeservices.WafStage("main",
pipeline_id=main.id,
backend_stage_id=main_backend_stage.id,
mode="enable",
paranoia_level=3)
main_route_stage = scaleway.edgeservices.RouteStage("main",
pipeline_id=main.id,
waf_stage_id=main_waf_stage.id,
rules=[{
"backend_stage_id": main_backend_stage.id,
"rule_http_match": {
"method_filters": [
"get",
"post",
],
"path_filter": {
"path_filter_type": "regex",
"value": ".*",
},
},
}])
main_cache_stage = scaleway.edgeservices.CacheStage("main",
pipeline_id=main.id,
route_stage_id=main_route_stage.id)
main_tls_stage = scaleway.edgeservices.TlsStage("main",
pipeline_id=main.id,
cache_stage_id=main_cache_stage.id,
managed_certificate=True)
main_dns_stage = scaleway.edgeservices.DnsStage("main",
pipeline_id=main.id,
tls_stage_id=main_tls_stage.id,
fqdns=["subdomain.example.com"])
main_head_stage = scaleway.edgeservices.HeadStage("main",
pipeline_id=main.id,
head_stage_id=main_dns_stage.id)
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/edgeservices"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
main, err := edgeservices.NewPipeline(ctx, "main", &edgeservices.PipelineArgs{
Name: pulumi.String("pipeline-name"),
Description: pulumi.String("pipeline description"),
})
if err != nil {
return err
}
mainBackendStage, err := edgeservices.NewBackendStage(ctx, "main", &edgeservices.BackendStageArgs{
PipelineId: main.ID(),
S3BackendConfig: &edgeservices.BackendStageS3BackendConfigArgs{
BucketName: pulumi.String("my-bucket-name"),
BucketRegion: pulumi.String("fr-par"),
},
})
if err != nil {
return err
}
mainWafStage, err := edgeservices.NewWafStage(ctx, "main", &edgeservices.WafStageArgs{
PipelineId: main.ID(),
BackendStageId: mainBackendStage.ID(),
Mode: pulumi.String("enable"),
ParanoiaLevel: pulumi.Int(3),
})
if err != nil {
return err
}
mainRouteStage, err := edgeservices.NewRouteStage(ctx, "main", &edgeservices.RouteStageArgs{
PipelineId: main.ID(),
WafStageId: mainWafStage.ID(),
Rules: edgeservices.RouteStageRuleArray{
&edgeservices.RouteStageRuleArgs{
BackendStageId: mainBackendStage.ID(),
RuleHttpMatch: &edgeservices.RouteStageRuleRuleHttpMatchArgs{
MethodFilters: pulumi.StringArray{
pulumi.String("get"),
pulumi.String("post"),
},
PathFilter: &edgeservices.RouteStageRuleRuleHttpMatchPathFilterArgs{
PathFilterType: pulumi.String("regex"),
Value: pulumi.String(".*"),
},
},
},
},
})
if err != nil {
return err
}
mainCacheStage, err := edgeservices.NewCacheStage(ctx, "main", &edgeservices.CacheStageArgs{
PipelineId: main.ID(),
RouteStageId: mainRouteStage.ID(),
})
if err != nil {
return err
}
mainTlsStage, err := edgeservices.NewTlsStage(ctx, "main", &edgeservices.TlsStageArgs{
PipelineId: main.ID(),
CacheStageId: mainCacheStage.ID(),
ManagedCertificate: pulumi.Bool(true),
})
if err != nil {
return err
}
mainDnsStage, err := edgeservices.NewDnsStage(ctx, "main", &edgeservices.DnsStageArgs{
PipelineId: main.ID(),
TlsStageId: mainTlsStage.ID(),
Fqdns: pulumi.StringArray{
pulumi.String("subdomain.example.com"),
},
})
if err != nil {
return err
}
_, err = edgeservices.NewHeadStage(ctx, "main", &edgeservices.HeadStageArgs{
PipelineId: main.ID(),
HeadStageId: mainDnsStage.ID(),
})
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.Edgeservices.Pipeline("main", new()
{
Name = "pipeline-name",
Description = "pipeline description",
});
var mainBackendStage = new Scaleway.Edgeservices.BackendStage("main", new()
{
PipelineId = main.Id,
S3BackendConfig = new Scaleway.Edgeservices.Inputs.BackendStageS3BackendConfigArgs
{
BucketName = "my-bucket-name",
BucketRegion = "fr-par",
},
});
var mainWafStage = new Scaleway.Edgeservices.WafStage("main", new()
{
PipelineId = main.Id,
BackendStageId = mainBackendStage.Id,
Mode = "enable",
ParanoiaLevel = 3,
});
var mainRouteStage = new Scaleway.Edgeservices.RouteStage("main", new()
{
PipelineId = main.Id,
WafStageId = mainWafStage.Id,
Rules = new[]
{
new Scaleway.Edgeservices.Inputs.RouteStageRuleArgs
{
BackendStageId = mainBackendStage.Id,
RuleHttpMatch = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchArgs
{
MethodFilters = new[]
{
"get",
"post",
},
PathFilter = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchPathFilterArgs
{
PathFilterType = "regex",
Value = ".*",
},
},
},
},
});
var mainCacheStage = new Scaleway.Edgeservices.CacheStage("main", new()
{
PipelineId = main.Id,
RouteStageId = mainRouteStage.Id,
});
var mainTlsStage = new Scaleway.Edgeservices.TlsStage("main", new()
{
PipelineId = main.Id,
CacheStageId = mainCacheStage.Id,
ManagedCertificate = true,
});
var mainDnsStage = new Scaleway.Edgeservices.DnsStage("main", new()
{
PipelineId = main.Id,
TlsStageId = mainTlsStage.Id,
Fqdns = new[]
{
"subdomain.example.com",
},
});
var mainHeadStage = new Scaleway.Edgeservices.HeadStage("main", new()
{
PipelineId = main.Id,
HeadStageId = mainDnsStage.Id,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scaleway.edgeservices.Pipeline;
import com.pulumi.scaleway.edgeservices.PipelineArgs;
import com.pulumi.scaleway.edgeservices.BackendStage;
import com.pulumi.scaleway.edgeservices.BackendStageArgs;
import com.pulumi.scaleway.edgeservices.inputs.BackendStageS3BackendConfigArgs;
import com.pulumi.scaleway.edgeservices.WafStage;
import com.pulumi.scaleway.edgeservices.WafStageArgs;
import com.pulumi.scaleway.edgeservices.RouteStage;
import com.pulumi.scaleway.edgeservices.RouteStageArgs;
import com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleArgs;
import com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchArgs;
import com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchPathFilterArgs;
import com.pulumi.scaleway.edgeservices.CacheStage;
import com.pulumi.scaleway.edgeservices.CacheStageArgs;
import com.pulumi.scaleway.edgeservices.TlsStage;
import com.pulumi.scaleway.edgeservices.TlsStageArgs;
import com.pulumi.scaleway.edgeservices.DnsStage;
import com.pulumi.scaleway.edgeservices.DnsStageArgs;
import com.pulumi.scaleway.edgeservices.HeadStage;
import com.pulumi.scaleway.edgeservices.HeadStageArgs;
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 Pipeline("main", PipelineArgs.builder()
.name("pipeline-name")
.description("pipeline description")
.build());
var mainBackendStage = new BackendStage("mainBackendStage", BackendStageArgs.builder()
.pipelineId(main.id())
.s3BackendConfig(BackendStageS3BackendConfigArgs.builder()
.bucketName("my-bucket-name")
.bucketRegion("fr-par")
.build())
.build());
var mainWafStage = new WafStage("mainWafStage", WafStageArgs.builder()
.pipelineId(main.id())
.backendStageId(mainBackendStage.id())
.mode("enable")
.paranoiaLevel(3)
.build());
var mainRouteStage = new RouteStage("mainRouteStage", RouteStageArgs.builder()
.pipelineId(main.id())
.wafStageId(mainWafStage.id())
.rules(RouteStageRuleArgs.builder()
.backendStageId(mainBackendStage.id())
.ruleHttpMatch(RouteStageRuleRuleHttpMatchArgs.builder()
.methodFilters(
"get",
"post")
.pathFilter(RouteStageRuleRuleHttpMatchPathFilterArgs.builder()
.pathFilterType("regex")
.value(".*")
.build())
.build())
.build())
.build());
var mainCacheStage = new CacheStage("mainCacheStage", CacheStageArgs.builder()
.pipelineId(main.id())
.routeStageId(mainRouteStage.id())
.build());
var mainTlsStage = new TlsStage("mainTlsStage", TlsStageArgs.builder()
.pipelineId(main.id())
.cacheStageId(mainCacheStage.id())
.managedCertificate(true)
.build());
var mainDnsStage = new DnsStage("mainDnsStage", DnsStageArgs.builder()
.pipelineId(main.id())
.tlsStageId(mainTlsStage.id())
.fqdns("subdomain.example.com")
.build());
var mainHeadStage = new HeadStage("mainHeadStage", HeadStageArgs.builder()
.pipelineId(main.id())
.headStageId(mainDnsStage.id())
.build());
}
}
resources:
main:
type: scaleway:edgeservices:Pipeline
properties:
name: pipeline-name
description: pipeline description
mainDnsStage:
type: scaleway:edgeservices:DnsStage
name: main
properties:
pipelineId: ${main.id}
tlsStageId: ${mainTlsStage.id}
fqdns:
- subdomain.example.com
mainTlsStage:
type: scaleway:edgeservices:TlsStage
name: main
properties:
pipelineId: ${main.id}
cacheStageId: ${mainCacheStage.id}
managedCertificate: true
mainCacheStage:
type: scaleway:edgeservices:CacheStage
name: main
properties:
pipelineId: ${main.id}
routeStageId: ${mainRouteStage.id}
mainRouteStage:
type: scaleway:edgeservices:RouteStage
name: main
properties:
pipelineId: ${main.id}
wafStageId: ${mainWafStage.id}
rules:
- backendStageId: ${mainBackendStage.id}
ruleHttpMatch:
methodFilters:
- get
- post
pathFilter:
pathFilterType: regex
value: .*
mainWafStage:
type: scaleway:edgeservices:WafStage
name: main
properties:
pipelineId: ${main.id}
backendStageId: ${mainBackendStage.id}
mode: enable
paranoiaLevel: 3
mainBackendStage:
type: scaleway:edgeservices:BackendStage
name: main
properties:
pipelineId: ${main.id}
s3BackendConfig:
bucketName: my-bucket-name
bucketRegion: fr-par
mainHeadStage:
type: scaleway:edgeservices:HeadStage
name: main
properties:
pipelineId: ${main.id}
headStageId: ${mainDnsStage.id}
Create Pipeline Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Pipeline(name: string, args?: PipelineArgs, opts?: CustomResourceOptions);@overload
def Pipeline(resource_name: str,
args: Optional[PipelineArgs] = None,
opts: Optional[ResourceOptions] = None)
@overload
def Pipeline(resource_name: str,
opts: Optional[ResourceOptions] = None,
description: Optional[str] = None,
name: Optional[str] = None,
project_id: Optional[str] = None)func NewPipeline(ctx *Context, name string, args *PipelineArgs, opts ...ResourceOption) (*Pipeline, error)public Pipeline(string name, PipelineArgs? args = null, CustomResourceOptions? opts = null)
public Pipeline(String name, PipelineArgs args)
public Pipeline(String name, PipelineArgs args, CustomResourceOptions options)
type: scaleway:edgeservices:Pipeline
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 PipelineArgs
- 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 PipelineArgs
- 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 PipelineArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args PipelineArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args PipelineArgs
- 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 pipelineResource = new Scaleway.Edgeservices.Pipeline("pipelineResource", new()
{
Description = "string",
Name = "string",
ProjectId = "string",
});
example, err := edgeservices.NewPipeline(ctx, "pipelineResource", &edgeservices.PipelineArgs{
Description: pulumi.String("string"),
Name: pulumi.String("string"),
ProjectId: pulumi.String("string"),
})
var pipelineResource = new Pipeline("pipelineResource", PipelineArgs.builder()
.description("string")
.name("string")
.projectId("string")
.build());
pipeline_resource = scaleway.edgeservices.Pipeline("pipelineResource",
description="string",
name="string",
project_id="string")
const pipelineResource = new scaleway.edgeservices.Pipeline("pipelineResource", {
description: "string",
name: "string",
projectId: "string",
});
type: scaleway:edgeservices:Pipeline
properties:
description: string
name: string
projectId: string
Pipeline 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 Pipeline resource accepts the following input properties:
- Description string
- The description of the pipeline.
- Name string
- The name of the pipeline.
- Project
Id string project_id) The ID of the project the pipeline is associated with.
- Description string
- The description of the pipeline.
- Name string
- The name of the pipeline.
- Project
Id string project_id) The ID of the project the pipeline is associated with.
- description String
- The description of the pipeline.
- name String
- The name of the pipeline.
- project
Id String project_id) The ID of the project the pipeline is associated with.
- description string
- The description of the pipeline.
- name string
- The name of the pipeline.
- project
Id string project_id) The ID of the project the pipeline is associated with.
- description str
- The description of the pipeline.
- name str
- The name of the pipeline.
- project_
id str project_id) The ID of the project the pipeline is associated with.
- description String
- The description of the pipeline.
- name String
- The name of the pipeline.
- project
Id String project_id) The ID of the project the pipeline is associated with.
Outputs
All input properties are implicitly available as output properties. Additionally, the Pipeline resource produces the following output properties:
- created_
at str - The date and time of the creation of the pipeline.
- id str
- The provider-assigned unique ID for this managed resource.
- status str
- The status of user pipeline.
- updated_
at str - The date and time of the last update of the pipeline.
Look up Existing Pipeline Resource
Get an existing Pipeline 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?: PipelineState, opts?: CustomResourceOptions): Pipeline@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
created_at: Optional[str] = None,
description: Optional[str] = None,
name: Optional[str] = None,
project_id: Optional[str] = None,
status: Optional[str] = None,
updated_at: Optional[str] = None) -> Pipelinefunc GetPipeline(ctx *Context, name string, id IDInput, state *PipelineState, opts ...ResourceOption) (*Pipeline, error)public static Pipeline Get(string name, Input<string> id, PipelineState? state, CustomResourceOptions? opts = null)public static Pipeline get(String name, Output<String> id, PipelineState state, CustomResourceOptions options)resources: _: type: scaleway:edgeservices:Pipeline get: id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Created
At string - The date and time of the creation of the pipeline.
- Description string
- The description of the pipeline.
- Name string
- The name of the pipeline.
- Project
Id string project_id) The ID of the project the pipeline is associated with.- Status string
- The status of user pipeline.
- Updated
At string - The date and time of the last update of the pipeline.
- Created
At string - The date and time of the creation of the pipeline.
- Description string
- The description of the pipeline.
- Name string
- The name of the pipeline.
- Project
Id string project_id) The ID of the project the pipeline is associated with.- Status string
- The status of user pipeline.
- Updated
At string - The date and time of the last update of the pipeline.
- created
At String - The date and time of the creation of the pipeline.
- description String
- The description of the pipeline.
- name String
- The name of the pipeline.
- project
Id String project_id) The ID of the project the pipeline is associated with.- status String
- The status of user pipeline.
- updated
At String - The date and time of the last update of the pipeline.
- created
At string - The date and time of the creation of the pipeline.
- description string
- The description of the pipeline.
- name string
- The name of the pipeline.
- project
Id string project_id) The ID of the project the pipeline is associated with.- status string
- The status of user pipeline.
- updated
At string - The date and time of the last update of the pipeline.
- created_
at str - The date and time of the creation of the pipeline.
- description str
- The description of the pipeline.
- name str
- The name of the pipeline.
- project_
id str project_id) The ID of the project the pipeline is associated with.- status str
- The status of user pipeline.
- updated_
at str - The date and time of the last update of the pipeline.
- created
At String - The date and time of the creation of the pipeline.
- description String
- The description of the pipeline.
- name String
- The name of the pipeline.
- project
Id String project_id) The ID of the project the pipeline is associated with.- status String
- The status of user pipeline.
- updated
At String - The date and time of the last update of the pipeline.
Import
Pipelines can be imported using the {id}, e.g.
bash
$ pulumi import scaleway:edgeservices/pipeline:Pipeline basic 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
scalewayTerraform Provider.
