Skip to content

Commit fdaddba

Browse files
authored
Merge branch 'master' into feat/list_secret_versions
2 parents 2b9f541 + aff03e4 commit fdaddba

File tree

58 files changed

+27829
-3500
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+27829
-3500
lines changed

.github/workflows/nightly.yml

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ jobs:
2020
- cockpit
2121
- container
2222
- domain
23+
- edgeservices
2324
- flexibleip
2425
- function
2526
- iam

docs/resources/domain_registration.md

+148
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
---
2+
subcategory: "Domains and DNS"
3+
page_title: "Scaleway: scaleway_domain_registration"
4+
---
5+
6+
# Resource: scaleway_domain_registration
7+
8+
The `scaleway_domain_registration` resource allows you to purchase and manage domain registrations with Scaleway. Using this resource you can register one or more domains for a specified duration, configure auto-renewal and DNSSEC options, and set contact information. You can supply an owner contact either by providing an existing contact ID or by specifying the complete contact details. The resource automatically returns additional contact information (administrative and technical) as provided by the Scaleway API.
9+
10+
Refer to the [Domains and DNS documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) and the [API documentation](https://developers.scaleway.com/) for more details.
11+
12+
## Example Usage
13+
14+
### Purchase a Single Domain
15+
16+
The following example purchases a domain with a one-year registration period and specifies the owner contact details. Administrative and technical contacts are returned by the API.
17+
18+
```terraform
19+
resource "scaleway_domain_registration" "test" {
20+
domain_names = ["example.com"]
21+
duration_in_years = 1
22+
23+
owner_contact {
24+
legal_form = "individual"
25+
firstname = "John"
26+
lastname = "DOE"
27+
28+
phone_number = "+1.23456789"
29+
address_line_1 = "123 Main Street"
30+
city = "Paris"
31+
zip = "75001"
32+
country = "FR"
33+
vat_identification_code = "FR12345678901"
34+
company_identification_code = "123456789"
35+
}
36+
}
37+
```
38+
39+
### Update Domain Settings
40+
41+
You can update the resource to enable auto-renewal and DNSSEC:
42+
43+
```terraform
44+
resource "scaleway_domain_registration" "test" {
45+
domain_names = ["example.com"]
46+
duration_in_years = 1
47+
48+
owner_contact {
49+
legal_form = "individual"
50+
firstname = "John"
51+
lastname = "DOE"
52+
53+
phone_number = "+1.23456789"
54+
address_line_1 = "123 Main Street"
55+
city = "Paris"
56+
zip = "75001"
57+
country = "FR"
58+
vat_identification_code = "FR12345678901"
59+
company_identification_code = "123456789"
60+
}
61+
62+
auto_renew = true
63+
dnssec = true
64+
}
65+
```
66+
67+
### Purchase Multiple Domains
68+
69+
The following example registers several domains in one go:
70+
71+
```terraform
72+
resource "scaleway_domain_registration" "multi" {
73+
domain_names = ["domain1.com", "domain2.com", "domain3.com"]
74+
duration_in_years = 1
75+
76+
owner_contact {
77+
legal_form = "individual"
78+
firstname = "John"
79+
lastname = "DOE"
80+
81+
phone_number = "+1.23456789"
82+
address_line_1 = "123 Main Street"
83+
city = "Paris"
84+
zip = "75001"
85+
country = "FR"
86+
vat_identification_code = "FR12345678901"
87+
company_identification_code = "123456789"
88+
}
89+
}
90+
```
91+
92+
## Argument Reference
93+
94+
The following arguments are supported:
95+
96+
- `domain_names` (Required, List of String): A list of domain names to be registered.
97+
- `duration_in_years` (Optional, Integer, Default: 1): The registration period in years.
98+
- `project_id` (Optional, String): The Scaleway project ID.
99+
- `owner_contact_id` (Optional, String): The ID of an existing owner contact.
100+
- `owner_contact` (Optional, List): Details of the owner contact.
101+
- `administrative_contact` (Computed, List): Administrative contact information.
102+
- `technical_contact` (Computed, List): Technical contact information.
103+
- `auto_renew` (Optional, Boolean, Default: false): Enables or disables auto-renewal.
104+
- `dnssec` (Optional, Boolean, Default: false): Enables or disables DNSSEC.
105+
106+
## Attributes Reference
107+
108+
In addition to all arguments above, the following attributes are exported:
109+
110+
- `id`: The ID of the domain registration.
111+
- `updated_at`: Timestamp of the last update.
112+
- `expired_at`: Expiration date/time of the domain registration.
113+
- `epp_code`: EPP code(s) associated with the domain.
114+
- `registrar`: Name of the registrar.
115+
- `status`: Status of the domain registration.
116+
- `dns_zones`: List of DNS zones associated with the domain.
117+
- `ds_record`: DNSSEC DS record configuration.
118+
- `task_id`: ID of the task that created the domain.
119+
120+
121+
122+
## Contact Blocks
123+
124+
Each contact block supports the following attributes:
125+
126+
- `legal_form` (Required, String): Legal form of the contact.
127+
- `firstname` (Required, String): First name.
128+
- `lastname` (Required, String): Last name.
129+
- `company_name` (Optional, String): Company name.
130+
- `email` (Required, String): Primary email.
131+
- `phone_number` (Required, String): Primary phone number.
132+
- `address_line_1` (Required, String): Primary address.
133+
- `zip` (Required, String): Postal code.
134+
- `city` (Required, String): City.
135+
- `country` (Required, String): Country code (ISO format).
136+
- `vat_identification_code` (Required, String): VAT identification code.
137+
- `company_identification_code` (Required, String): Company identification code.
138+
139+
## Import
140+
141+
To import an existing domain registration, use:
142+
143+
```bash
144+
terraform import scaleway_domain_registration.test <project_id>/<task_id>
145+
```
146+
147+
148+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
subcategory: "Edge Services"
3+
page_title: "Scaleway: scaleway_edge_services_backend_stage"
4+
---
5+
6+
# Resource: scaleway_edge_services_backend_stage
7+
8+
Creates and manages Scaleway Edge Services Backend Stages.
9+
10+
## Example Usage
11+
12+
### With object backend
13+
14+
```terraform
15+
resource "scaleway_object_bucket" "main" {
16+
name = "my-bucket-name"
17+
tags = {
18+
foo = "bar"
19+
}
20+
}
21+
22+
resource "scaleway_edge_services_pipeline" "main" {
23+
name = "my-pipeline"
24+
}
25+
26+
resource "scaleway_edge_services_backend_stage" "main" {
27+
pipeline_id = scaleway_edge_services_pipeline.main.id
28+
s3_backend_config {
29+
bucket_name = scaleway_object_bucket.main.name
30+
bucket_region = "fr-par"
31+
}
32+
}
33+
```
34+
35+
### With LB backend
36+
37+
```terraform
38+
resource "scaleway_lb" "main" {
39+
ip_ids = [scaleway_lb_ip.main.id]
40+
zone = "fr-par-1"
41+
type = "LB-S"
42+
}
43+
44+
resource "scaleway_lb_frontend" "main" {
45+
lb_id = scaleway_lb.main.id
46+
backend_id = scaleway_lb_backend.main.id
47+
name = "frontend01"
48+
inbound_port = "443"
49+
certificate_ids = [
50+
scaleway_lb_certificate.cert01.id,
51+
]
52+
}
53+
54+
resource "scaleway_edge_services_pipeline" "main" {
55+
name = "my-pipeline"
56+
}
57+
58+
resource "scaleway_edge_services_backend_stage" "main" {
59+
pipeline_id = scaleway_edge_services_pipeline.main.id
60+
lb_backend_config {
61+
lb_config {
62+
id = scaleway_lb.main.id
63+
frontend_id = scaleway_lb_frontend.id
64+
is_ssl = true
65+
zone = "fr-par-1"
66+
}
67+
}
68+
}
69+
```
70+
71+
## Argument Reference
72+
73+
- `pipeline_id` - (Required) The ID of the pipeline.
74+
- `s3_backend_config` - (Optional) The Scaleway Object Storage origin bucket (S3) linked to the backend stage.
75+
- `bucket_name` - The name of the Bucket.
76+
- `bucket_region` - The region of the Bucket.
77+
- `is_website` - Defines whether the bucket website feature is enabled.
78+
- `lb_backend_config` - (Optional) The Scaleway Load Balancer linked to the backend stage.
79+
- `lb_config` - The Load Balancer config.
80+
- `id` - The ID of the Load Balancer.
81+
- `frontend_id` - The ID of the frontend.
82+
- `is_ssl` - Defines whether the Load Balancer's frontend handles SSL connections.
83+
- `domain_name` - The Fully Qualified Domain Name (in the format subdomain.example.com) to use in HTTP requests sent towards your Load Balancer.
84+
- `zone` - (Defaults to [provider](../index.md#zone) `zone`) The [zone](../guides/regions_and_zones.md#zones) of the Load Balancer.
85+
- `project_id` - (Defaults to [provider](../index.md#project_id) `project_id`) The ID of the project the backend stage is associated with.
86+
87+
## Attributes Reference
88+
89+
In addition to all arguments above, the following attributes are exported:
90+
91+
- `id` - The ID of the backend stage (UUID format).
92+
- `created_at` - The date and time of the creation of the backend stage.
93+
- `updated_at` - The date and time of the last update of the backend stage.
94+
95+
## Import
96+
97+
Backend stages can be imported using the `{id}`, e.g.
98+
99+
```bash
100+
$ terraform import scaleway_edge_services_backend_stage.basic 11111111-1111-1111-1111-111111111111
101+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
subcategory: "Edge Services"
3+
page_title: "Scaleway: scaleway_edge_services_cache_stage"
4+
---
5+
6+
# Resource: scaleway_edge_services_cache_stage
7+
8+
Creates and manages Scaleway Edge Services Cache Stages.
9+
10+
## Example Usage
11+
12+
### Basic
13+
14+
```terraform
15+
resource "scaleway_edge_services_cache_stage" "main" {
16+
pipeline_id = scaleway_edge_services_pipeline.main.id
17+
backend_stage_id = scaleway_edge_services_backend_stage.main.id
18+
}
19+
```
20+
21+
### Purge request
22+
23+
```terraform
24+
resource "scaleway_edge_services_cache_stage" "main" {
25+
pipeline_id = scaleway_edge_services_pipeline.main.id
26+
backend_stage_id = scaleway_edge_services_backend_stage.main.id
27+
28+
purge {
29+
pipeline_id = scaleway_edge_services_pipeline.main.id
30+
all = true
31+
}
32+
}
33+
```
34+
35+
## Argument Reference
36+
37+
- `pipeline_id` - (Required) The ID of the pipeline.
38+
- `backend_stage_id` - (Optional) The backend stage ID the cache stage will be linked to.
39+
- `fallback_ttl` - (Optional) The Time To Live (TTL) in seconds. Defines how long content is cached.
40+
- `refresh_cache` - (Optional) Trigger a refresh of the cache by changing this field's value.
41+
- `purge_requests` - (Optional) The Scaleway Object Storage origin bucket (S3) linked to the backend stage.
42+
- `pipeline_id` - The pipeline ID in which the purge request will be created.
43+
- `assets` - The list of asserts to purge.
44+
- `all` - Defines whether to purge all content.
45+
- `project_id` - (Defaults to [provider](../index.md#project_id) `project_id`) The ID of the project the cache stage is associated with.
46+
47+
## Attributes Reference
48+
49+
In addition to all arguments above, the following attributes are exported:
50+
51+
- `id` - The ID of the cache stage (UUID format).
52+
- `created_at` - The date and time of the creation of the cache stage.
53+
- `updated_at` - The date and time of the last update of the cache stage.
54+
55+
## Import
56+
57+
Cache stages can be imported using the `{id}`, e.g.
58+
59+
```bash
60+
$ terraform import scaleway_edge_services_cache_stage.basic 11111111-1111-1111-1111-111111111111
61+
```
+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
subcategory: "Edge Services"
3+
page_title: "Scaleway: scaleway_edge_services_dns_stage"
4+
---
5+
6+
# Resource: scaleway_edge_services_dns_stage
7+
8+
Creates and manages Scaleway Edge Services DNS Stages.
9+
10+
## Example Usage
11+
12+
### Basic
13+
14+
```terraform
15+
resource "scaleway_edge_services_dns_stage" "main" {
16+
pipeline_id = scaleway_edge_services_pipeline.main.id
17+
fqdns = ["subdomain.example.com"]
18+
}
19+
```
20+
21+
## Argument Reference
22+
23+
- `pipeline_id` - (Required) The ID of the pipeline.
24+
- `backend_stage_id` - (Optional) The backend stage ID the DNS stage will be linked to.
25+
- `tls_stage_id` - (Optional) The TLS stage ID the DNS stage will be linked to.
26+
- `cache_stage_id` - (Optional) The cache stage ID the DNS stage will be linked to.
27+
- `fqdns` - (Optional) Fully Qualified Domain Name (in the format subdomain.example.com) to attach to the stage.
28+
- `project_id` - (Defaults to [provider](../index.md#project_id) `project_id`) The ID of the project the DNS stage is associated with.
29+
30+
## Attributes Reference
31+
32+
In addition to all arguments above, the following attributes are exported:
33+
34+
- `id` - The ID of the DNS stage (UUID format).
35+
- `type` - The type of the stage.
36+
- `created_at` - The date and time of the creation of the DNS stage.
37+
- `updated_at` - The date and time of the last update of the DNS stage.
38+
39+
## Import
40+
41+
DNS stages can be imported using the `{id}`, e.g.
42+
43+
```bash
44+
$ terraform import scaleway_edge_services_dns_stage.basic 11111111-1111-1111-1111-111111111111
45+
```

0 commit comments

Comments
 (0)