Skip to content
This repository was archived by the owner on May 19, 2025. It is now read-only.

Commit 15b40bd

Browse files
committed
[skip ci] yolo
1 parent b9d0bb8 commit 15b40bd

File tree

4 files changed

+229
-69
lines changed

4 files changed

+229
-69
lines changed

.grit/patterns/terraform_cloudflare_v5.grit

Lines changed: 192 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -3,69 +3,197 @@ language hcl
33

44
pattern terraform_cloudflare_v5() {
55
or {
6-
`cors_headers { $block }` => `cors_headers = { $block }` where { $block <: within `resource "cloudflare_access_application" $_ { $_ }` },
7-
`landing_page_design { $block }` => `landing_page_design = { $block }` where { $block <: within `resource "cloudflare_access_application" $_ { $_ }` },
8-
`saas_app { $block }` => `saas_app = { $block }` where { $block <: within `resource "cloudflare_access_application" $_ { $_ }` },
9-
`scim_config { $block }` => `scim_config = { $block }` where { $block <: within `resource "cloudflare_access_application" $_ { $_ }` },
10-
`exclude { $block }` => `exclude = { $block }` where { $block <: within `resource "cloudflare_access_group" $_ { $_ }` },
11-
`include { $block }` => `include = { $block }` where { $block <: within `resource "cloudflare_access_group" $_ { $_ }` },
12-
`require { $block }` => `require = { $block }` where { $block <: within `resource "cloudflare_access_group" $_ { $_ }` },
13-
`config { $block }` => `config = { $block }` where { $block <: within `resource "cloudflare_access_identity_provider" $_ { $_ }` },
14-
`scim_config { $block }` => `scim_config = { $block }` where { $block <: within `resource "cloudflare_access_identity_provider" $_ { $_ }` },
15-
`settings { $block }` => `settings = { $block }` where { $block <: within `resource "cloudflare_access_mutual_tls_hostname_settings" $_ { $_ }` },
16-
`custom_pages { $block }` => `custom_pages = { $block }` where { $block <: within `resource "cloudflare_access_organization" $_ { $_ }` },
17-
`login_design { $block }` => `login_design = { $block }` where { $block <: within `resource "cloudflare_access_organization" $_ { $_ }` },
18-
`approval_group { $block }` => `approval_group = { $block }` where { $block <: within `resource "cloudflare_access_policy" $_ { $_ }` },
19-
`exclude { $block }` => `exclude = { $block }` where { $block <: within `resource "cloudflare_access_policy" $_ { $_ }` },
20-
`include { $block }` => `include = { $block }` where { $block <: within `resource "cloudflare_access_policy" $_ { $_ }` },
21-
`require { $block }` => `require = { $block }` where { $block <: within `resource "cloudflare_access_policy" $_ { $_ }` },
22-
`configuration { $block }` => `configuration = { $block }` where { $block <: within `resource "cloudflare_access_rule" $_ { $_ }` },
23-
`auth_id_characteristics { $block }` => `auth_id_characteristics = { $block }` where { $block <: within `resource "cloudflare_api_shield" $_ { $_ }` },
24-
`condition { $block }` => `condition = { $block }` where { $block <: within `resource "cloudflare_api_token" $_ { $_ }` },
25-
`validation_errors { $block }` => `validation_errors = { $block }` where { $block <: within `resource "cloudflare_certificate_pack" $_ { $_ }` },
26-
`validation_records { $block }` => `validation_records = { $block }` where { $block <: within `resource "cloudflare_certificate_pack" $_ { $_ }` },
27-
`ssl { $block }` => `ssl = { $block }` where { $block <: within `resource "cloudflare_custom_hostname" $_ { $_ }` },
28-
`custom_ssl_options { $block }` => `custom_ssl_options = { $block }` where { $block <: within `resource "cloudflare_custom_ssl" $_ { $_ }` },
29-
`custom_ssl_priority { $block }` => `custom_ssl_priority = { $block }` where { $block <: within `resource "cloudflare_custom_ssl" $_ { $_ }` },
30-
`data { $block }` => `data = { $block }` where { $block <: within `resource "cloudflare_device_dex_test" $_ { $_ }` },
31-
`config { $block }` => `config = { $block }` where { $block <: within `resource "cloudflare_device_managed_networks" $_ { $_ }` },
32-
`config { $block }` => `config = { $block }` where { $block <: within `resource "cloudflare_device_posture_integration" $_ { $_ }` },
33-
`input { $block }` => `input = { $block }` where { $block <: within `resource "cloudflare_device_posture_rule" $_ { $_ }` },
34-
`match { $block }` => `match = { $block }` where { $block <: within `resource "cloudflare_device_posture_rule" $_ { $_ }` },
35-
`context_awareness { $block }` => `context_awareness = { $block }` where { $block <: within `resource "cloudflare_dlp_profile" $_ { $_ }` },
36-
`hostname { $block }` => `hostname = { $block }` where { $block <: within `resource "cloudflare_list_item" $_ { $_ }` },
37-
`redirect { $block }` => `redirect = { $block }` where { $block <: within `resource "cloudflare_list_item" $_ { $_ }` },
38-
`rules { $block }` => `rules = { $block }` where { $block <: within `resource "cloudflare_load_balancer" $_ { $_ }` },
39-
`output_options { $block }` => `output_options = { $block }` where { $block <: within `resource "cloudflare_logpush_job" $_ { $_ }` },
40-
`filters { $block }` => `filters = { $block }` where { $block <: within `resource "cloudflare_notification_policy" $_ { $_ }` },
41-
`actions { $block }` => `actions = { $block }` where { $block <: within `resource "cloudflare_page_rule" $_ { $_ }` },
42-
`build_config { $block }` => `build_config = { $block }` where { $block <: within `resource "cloudflare_pages_project" $_ { $_ }` },
43-
`deployment_configs { $block }` => `deployment_configs = { $block }` where { $block <: within `resource "cloudflare_pages_project" $_ { $_ }` },
44-
`source { $block }` => `source = { $block }` where { $block <: within `resource "cloudflare_pages_project" $_ { $_ }` },
45-
`action { $block }` => `action = { $block }` where { $block <: within `resource "cloudflare_rate_limit" $_ { $_ }` },
46-
`correlate { $block }` => `correlate = { $block }` where { $block <: within `resource "cloudflare_rate_limit" $_ { $_ }` },
47-
`match { $block }` => `match = { $block }` where { $block <: within `resource "cloudflare_rate_limit" $_ { $_ }` },
48-
`data { $block }` => `data = { $block }` where { $block <: within `resource "cloudflare_record" $_ { $_ }` },
49-
`rules { $block }` => `rules = { $block }` where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
50-
`dns { $block }` => `dns = { $block }` where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
51-
`edge_ips { $block }` => `edge_ips = { $block }` where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
52-
`origin_dns { $block }` => `origin_dns = { $block }` where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
53-
`origin_port_range { $block }` => `origin_port_range = { $block }` where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
54-
`antivirus { $block }` => `antivirus = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
55-
`block_page { $block }` => `block_page = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
56-
`body_scanning { $block }` => `body_scanning = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
57-
`custom_certificate { $block }` => `custom_certificate = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
58-
`extended_email_matching { $block }` => `extended_email_matching = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
59-
`fips { $block }` => `fips = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
60-
`logging { $block }` => `logging = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
61-
`payload_log { $block }` => `payload_log = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
62-
`proxy { $block }` => `proxy = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
63-
`ssh_session_log { $block }` => `ssh_session_log = { $block }` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
64-
`rule_settings { $block }` => `rule_settings = { $block }` where { $block <: within `resource "cloudflare_teams_rule" $_ { $_ }` },
65-
`config { $block }` => `config = { $block }` where { $block <: within `resource "cloudflare_tunnel_config" $_ { $_ }` },
66-
`configuration { $block }` => `configuration = { $block }` where { $block <: within `resource "cloudflare_user_agent_blocking_rule" $_ { $_ }` },
67-
`additional_routes { $block }` => `additional_routes = { $block }` where { $block <: within `resource "cloudflare_waiting_room" $_ { $_ }` },
68-
`rules { $block }` => `rules = { $block }` where { $block <: within `resource "cloudflare_waiting_room_rules" $_ { $_ }` },
69-
`settings { $block }` => `settings = { $block }` where { $block <: within `resource "cloudflare_zone_settings_override" $_ { $_ }` }
6+
`cors_headers { $block }` => `cors_headers = {
7+
$block
8+
}` where { $block <: within `resource "cloudflare_access_application" $_ { $_ }` },
9+
`landing_page_design { $block }` => `landing_page_design = {
10+
$block
11+
}` where { $block <: within `resource "cloudflare_access_application" $_ { $_ }` },
12+
`saas_app { $block }` => `saas_app = {
13+
$block
14+
}` where { $block <: within `resource "cloudflare_access_application" $_ { $_ }` },
15+
`scim_config { $block }` => `scim_config = {
16+
$block
17+
}` where { $block <: within `resource "cloudflare_access_application" $_ { $_ }` },
18+
`exclude { $block }` => `exclude = {
19+
$block
20+
}` where { $block <: within `resource "cloudflare_access_group" $_ { $_ }` },
21+
`include { $block }` => `include = {
22+
$block
23+
}` where { $block <: within `resource "cloudflare_access_group" $_ { $_ }` },
24+
`require { $block }` => `require = {
25+
$block
26+
}` where { $block <: within `resource "cloudflare_access_group" $_ { $_ }` },
27+
`config { $block }` => `config = {
28+
$block
29+
}` where { $block <: within `resource "cloudflare_access_identity_provider" $_ { $_ }` },
30+
`scim_config { $block }` => `scim_config = {
31+
$block
32+
}` where { $block <: within `resource "cloudflare_access_identity_provider" $_ { $_ }` },
33+
`settings { $block }` => `settings = {
34+
$block
35+
}` where { $block <: within `resource "cloudflare_access_mutual_tls_hostname_settings" $_ { $_ }` },
36+
`custom_pages { $block }` => `custom_pages = {
37+
$block
38+
}` where { $block <: within `resource "cloudflare_access_organization" $_ { $_ }` },
39+
`login_design { $block }` => `login_design = {
40+
$block
41+
}` where { $block <: within `resource "cloudflare_access_organization" $_ { $_ }` },
42+
`approval_group { $block }` => `approval_group = {
43+
$block
44+
}` where { $block <: within `resource "cloudflare_access_policy" $_ { $_ }` },
45+
`exclude { $block }` => `exclude = {
46+
$block
47+
}` where { $block <: within `resource "cloudflare_access_policy" $_ { $_ }` },
48+
`include { $block }` => `include = {
49+
$block
50+
}` where { $block <: within `resource "cloudflare_access_policy" $_ { $_ }` },
51+
`require { $block }` => `require = {
52+
$block
53+
}` where { $block <: within `resource "cloudflare_access_policy" $_ { $_ }` },
54+
`configuration { $block }` => `configuration = {
55+
$block
56+
}` where { $block <: within `resource "cloudflare_access_rule" $_ { $_ }` },
57+
`auth_id_characteristics { $block }` => `auth_id_characteristics = {
58+
$block
59+
}` where { $block <: within `resource "cloudflare_api_shield" $_ { $_ }` },
60+
`condition { $block }` => `condition = {
61+
$block
62+
}` where { $block <: within `resource "cloudflare_api_token" $_ { $_ }` },
63+
`validation_errors { $block }` => `validation_errors = {
64+
$block
65+
}` where { $block <: within `resource "cloudflare_certificate_pack" $_ { $_ }` },
66+
`validation_records { $block }` => `validation_records = {
67+
$block
68+
}` where { $block <: within `resource "cloudflare_certificate_pack" $_ { $_ }` },
69+
`ssl { $block }` => `ssl = {
70+
$block
71+
}` where { $block <: within `resource "cloudflare_custom_hostname" $_ { $_ }` },
72+
`custom_ssl_options { $block }` => `custom_ssl_options = {
73+
$block
74+
}` where { $block <: within `resource "cloudflare_custom_ssl" $_ { $_ }` },
75+
`custom_ssl_priority { $block }` => `custom_ssl_priority = {
76+
$block
77+
}` where { $block <: within `resource "cloudflare_custom_ssl" $_ { $_ }` },
78+
`data { $block }` => `data = {
79+
$block
80+
}` where { $block <: within `resource "cloudflare_device_dex_test" $_ { $_ }` },
81+
`config { $block }` => `config = {
82+
$block
83+
}` where { $block <: within `resource "cloudflare_device_managed_networks" $_ { $_ }` },
84+
`config { $block }` => `config = {
85+
$block
86+
}` where { $block <: within `resource "cloudflare_device_posture_integration" $_ { $_ }` },
87+
`input { $block }` => `input = {
88+
$block
89+
}` where { $block <: within `resource "cloudflare_device_posture_rule" $_ { $_ }` },
90+
`match { $block }` => `match = {
91+
$block
92+
}` where { $block <: within `resource "cloudflare_device_posture_rule" $_ { $_ }` },
93+
`context_awareness { $block }` => `context_awareness = {
94+
$block
95+
}` where { $block <: within `resource "cloudflare_dlp_profile" $_ { $_ }` },
96+
`hostname { $block }` => `hostname = {
97+
$block
98+
}` where { $block <: within `resource "cloudflare_list_item" $_ { $_ }` },
99+
`redirect { $block }` => `redirect = {
100+
$block
101+
}` where { $block <: within `resource "cloudflare_list_item" $_ { $_ }` },
102+
`rules { $block }` => `rules = {
103+
$block
104+
}` where { $block <: within `resource "cloudflare_load_balancer" $_ { $_ }` },
105+
`output_options { $block }` => `output_options = {
106+
$block
107+
}` where { $block <: within `resource "cloudflare_logpush_job" $_ { $_ }` },
108+
`filters { $block }` => `filters = {
109+
$block
110+
}` where { $block <: within `resource "cloudflare_notification_policy" $_ { $_ }` },
111+
`actions { $block }` => `actions = {
112+
$block
113+
}` where { $block <: within `resource "cloudflare_page_rule" $_ { $_ }` },
114+
`build_config { $block }` => `build_config = {
115+
$block
116+
}` where { $block <: within `resource "cloudflare_pages_project" $_ { $_ }` },
117+
`deployment_configs { $block }` => `deployment_configs = {
118+
$block
119+
}` where { $block <: within `resource "cloudflare_pages_project" $_ { $_ }` },
120+
`source { $block }` => `source = {
121+
$block
122+
}` where { $block <: within `resource "cloudflare_pages_project" $_ { $_ }` },
123+
`action { $block }` => `action = {
124+
$block
125+
}` where { $block <: within `resource "cloudflare_rate_limit" $_ { $_ }` },
126+
`correlate { $block }` => `correlate = {
127+
$block
128+
}` where { $block <: within `resource "cloudflare_rate_limit" $_ { $_ }` },
129+
`match { $block }` => `match = {
130+
$block
131+
}` where { $block <: within `resource "cloudflare_rate_limit" $_ { $_ }` },
132+
`data { $block }` => `data = {
133+
$block
134+
}` where { $block <: within `resource "cloudflare_record" $_ { $_ }` },
135+
`rules { $block }` => `rules = {
136+
$block
137+
}` where { $block <: within `resource "cloudflare_ruleset" $_ { $_ }` },
138+
`dns { $block }` => `dns = {
139+
$block
140+
}` where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
141+
`edge_ips { $block }` => `edge_ips = {
142+
$block
143+
}` where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
144+
`origin_dns { $block }` => `origin_dns = {
145+
$block
146+
}` where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
147+
`origin_port_range { $block }` => `origin_port_range = {
148+
$block
149+
}` where { $block <: within `resource "cloudflare_spectrum_application" $_ { $_ }` },
150+
`antivirus { $block }` => `antivirus = {
151+
$block
152+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
153+
`block_page { $block }` => `block_page = {
154+
$block
155+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
156+
`body_scanning { $block }` => `body_scanning = {
157+
$block
158+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
159+
`custom_certificate { $block }` => `custom_certificate = {
160+
$block
161+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
162+
`extended_email_matching { $block }` => `extended_email_matching = {
163+
$block
164+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
165+
`fips { $block }` => `fips = {
166+
$block
167+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
168+
`logging { $block }` => `logging = {
169+
$block
170+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
171+
`payload_log { $block }` => `payload_log = {
172+
$block
173+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
174+
`proxy { $block }` => `proxy = {
175+
$block
176+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
177+
`ssh_session_log { $block }` => `ssh_session_log = {
178+
$block
179+
}` where { $block <: within `resource "cloudflare_teams_account" $_ { $_ }` },
180+
`rule_settings { $block }` => `rule_settings = {
181+
$block
182+
}` where { $block <: within `resource "cloudflare_teams_rule" $_ { $_ }` },
183+
`config { $block }` => `config = {
184+
$block
185+
}` where { $block <: within `resource "cloudflare_tunnel_config" $_ { $_ }` },
186+
`configuration { $block }` => `configuration = {
187+
$block
188+
}` where { $block <: within `resource "cloudflare_user_agent_blocking_rule" $_ { $_ }` },
189+
`additional_routes { $block }` => `additional_routes = {
190+
$block
191+
}` where { $block <: within `resource "cloudflare_waiting_room" $_ { $_ }` },
192+
`rules { $block }` => `rules = {
193+
$block
194+
}` where { $block <: within `resource "cloudflare_waiting_room_rules" $_ { $_ }` },
195+
`settings { $block }` => `settings = {
196+
$block
197+
}` where { $block <: within `resource "cloudflare_zone_settings_override" $_ { $_ }` }
70198
}
71199
}

.grit/patterns/v5_upgrade.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,38 @@ command in the directory where your Terraform configuration is located.
5858
~> If you are using modules or other dynamic features of HCL, the provided
5959
codemods may not be as effective. We recommend reviewing the migration notes below to verify all the changes.
6060

61+
## Block attributes
62+
63+
All blocks used for configuration have been converted to attributes, which must be set with an `=` sign.
64+
65+
For example, the `config` block in the `cloudflare_device_posture_integration` resource must be converted from this:
66+
67+
```hcl
68+
resource "cloudflare_device_posture_integration" "example" {
69+
# old stuff
70+
config {
71+
api_url = "https://example.com/api"
72+
auth_url = "https://example.com/connect/token"
73+
client_id = "client-id"
74+
client_secret = "client-secret"
75+
}
76+
}
77+
```
78+
79+
Afterwards it will look like this:
80+
81+
```hcl
82+
resource "cloudflare_device_posture_integration" "example" {
83+
# old stuff
84+
config = {
85+
api_url = "https://example.com/api"
86+
auth_url = "https://example.com/connect/token"
87+
client_id = "client-id"
88+
client_secret = "client-secret"
89+
}
90+
}
91+
```
92+
6193
## Renames
6294

6395
## Removals

.grit/workflows/stainless/__fixtures__/basic.after/main.tf

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,8 @@ resource "cloudflare_access_application" "staging_app" {
2020
session_duration = "24h"
2121

2222
# cors is a currently a block list
23-
cors_headers = {
24-
allowed_methods = "GET"
23+
cors_headers = { allowed_methods = "GET"
2524
allowed_origins = "https://example.com"
2625
allow_credentials = true
27-
max_age = 10
28-
}
26+
max_age = 10 }
2927
}

.grit/workflows/stainless/workflow.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ export default await sdk.defineWorkflow<typeof schema>({
7575
grit.logging.info(`Found ${results.length} resources with list nesting mode block types`);
7676

7777
const subqueries = results.map(({ resource, attribute }) =>
78-
` \`${attribute} { $block }\` => \`${attribute} = { $block }\` where { $block <: within \`resource "${resource}" $_ { $_ }\` }`
78+
` \`${attribute} { $block }\` => \`${attribute} = {
79+
$block
80+
}\` where { $block <: within \`resource "${resource}" $_ { $_ }\` }`
7981
).join(',\n');
8082

8183
const query = `

0 commit comments

Comments
 (0)