Skip to content

Commit d108d28

Browse files
author
cortlyons
committed
api_shield_operation v4->v5 migration
1 parent d56cac5 commit d108d28

File tree

8 files changed

+1172
-0
lines changed

8 files changed

+1172
-0
lines changed

integration/v4_to_v5/integration_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
// Explicitly import the migrations we want to test
1010
_ "github.com/cloudflare/tf-migrate/internal/resources/account_member"
11+
_ "github.com/cloudflare/tf-migrate/internal/resources/api_shield_operation"
1112
_ "github.com/cloudflare/tf-migrate/internal/resources/api_token"
1213
_ "github.com/cloudflare/tf-migrate/internal/resources/custom_pages"
1314
_ "github.com/cloudflare/tf-migrate/internal/resources/dns_record"
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
variable "cloudflare_account_id" {
2+
description = "Cloudflare account ID"
3+
type = string
4+
}
5+
6+
variable "cloudflare_zone_id" {
7+
description = "Cloudflare zone ID"
8+
type = string
9+
}
10+
11+
variable "cloudflare_domain" {
12+
description = "Cloudflare domain for testing"
13+
type = string
14+
}
15+
16+
# Test case 1: Basic GET operation
17+
resource "cloudflare_api_shield_operation" "get_users" {
18+
zone_id = var.cloudflare_zone_id
19+
method = "GET"
20+
host = "api.${var.cloudflare_domain}"
21+
endpoint = "/api/users"
22+
}
23+
24+
# Test case 2: POST operation with single parameter
25+
resource "cloudflare_api_shield_operation" "create_user" {
26+
zone_id = var.cloudflare_zone_id
27+
method = "POST"
28+
host = "api.${var.cloudflare_domain}"
29+
endpoint = "/api/users"
30+
}
31+
32+
# Test case 3: GET operation with single parameter
33+
resource "cloudflare_api_shield_operation" "get_user_by_id" {
34+
zone_id = var.cloudflare_zone_id
35+
method = "GET"
36+
host = "api.${var.cloudflare_domain}"
37+
endpoint = "/api/users/{var1}"
38+
}
39+
40+
# Test case 4: PUT operation with parameter
41+
resource "cloudflare_api_shield_operation" "update_user" {
42+
zone_id = var.cloudflare_zone_id
43+
method = "PUT"
44+
host = "api.${var.cloudflare_domain}"
45+
endpoint = "/api/users/{var1}"
46+
}
47+
48+
# Test case 5: DELETE operation with parameter
49+
resource "cloudflare_api_shield_operation" "delete_user" {
50+
zone_id = var.cloudflare_zone_id
51+
method = "DELETE"
52+
host = "api.${var.cloudflare_domain}"
53+
endpoint = "/api/users/{var1}"
54+
}
55+
56+
# Test case 6: PATCH operation with multi-parameter endpoint
57+
resource "cloudflare_api_shield_operation" "update_user_post" {
58+
zone_id = var.cloudflare_zone_id
59+
method = "PATCH"
60+
host = "api.${var.cloudflare_domain}"
61+
endpoint = "/api/users/{var1}/posts/{var2}"
62+
}
63+
64+
# Test case 7: GET operation with multi-parameter endpoint
65+
resource "cloudflare_api_shield_operation" "get_user_comment" {
66+
zone_id = var.cloudflare_zone_id
67+
method = "GET"
68+
host = "api.${var.cloudflare_domain}"
69+
endpoint = "/api/users/{var1}/posts/{var2}/comments/{var3}"
70+
}
71+
72+
# Test case 8: POST operation with subdomain host
73+
resource "cloudflare_api_shield_operation" "v2_create_resource" {
74+
zone_id = var.cloudflare_zone_id
75+
method = "POST"
76+
host = "v2.api.${var.cloudflare_domain}"
77+
endpoint = "/api/resources"
78+
}
79+
80+
# Test case 9: GET operation with health check endpoint
81+
resource "cloudflare_api_shield_operation" "staging_get_health" {
82+
zone_id = var.cloudflare_zone_id
83+
method = "GET"
84+
host = "api.staging.${var.cloudflare_domain}"
85+
endpoint = "/health"
86+
}
87+
88+
# Test case 10: OPTIONS operation (for CORS preflight)
89+
resource "cloudflare_api_shield_operation" "options_users" {
90+
zone_id = var.cloudflare_zone_id
91+
method = "OPTIONS"
92+
host = "api.${var.cloudflare_domain}"
93+
endpoint = "/api/users"
94+
}
95+
96+
# Test case 11: HEAD operation
97+
resource "cloudflare_api_shield_operation" "head_users" {
98+
zone_id = var.cloudflare_zone_id
99+
method = "HEAD"
100+
host = "api.${var.cloudflare_domain}"
101+
endpoint = "/api/users"
102+
}
103+
104+
# Test case 12: POST with versioned API path
105+
resource "cloudflare_api_shield_operation" "v1_create_order" {
106+
zone_id = var.cloudflare_zone_id
107+
method = "POST"
108+
host = "api.${var.cloudflare_domain}"
109+
endpoint = "/api/v1/orders"
110+
}
111+
112+
# Test case 13: GET with nested resource path
113+
resource "cloudflare_api_shield_operation" "get_account_settings" {
114+
zone_id = var.cloudflare_zone_id
115+
method = "GET"
116+
host = "api.${var.cloudflare_domain}"
117+
endpoint = "/api/v1/accounts/{var1}/settings"
118+
}
119+
120+
# Test case 14: PATCH with query-like endpoint
121+
resource "cloudflare_api_shield_operation" "search_users" {
122+
zone_id = var.cloudflare_zone_id
123+
method = "GET"
124+
host = "api.${var.cloudflare_domain}"
125+
endpoint = "/api/users/search"
126+
}
127+
128+
# Test case 15: DELETE with nested resource
129+
resource "cloudflare_api_shield_operation" "delete_user_session" {
130+
zone_id = var.cloudflare_zone_id
131+
method = "DELETE"
132+
host = "api.${var.cloudflare_domain}"
133+
endpoint = "/api/users/{var1}/sessions/{var2}"
134+
}

0 commit comments

Comments
 (0)