Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
ffc18c1
codegen metadata
stainless-app[bot] Nov 21, 2025
8ff53df
chore(zone): update migration tests (#6468)
mgirouard Nov 21, 2025
f5112e1
feat: feat: BOTS-7562 add bot management feedback endpoints to stainl…
stainless-app[bot] Nov 24, 2025
af9a5f8
feat: chore: point Terraform to Go 'next'
stainless-app[bot] Nov 24, 2025
68d017a
chore(api): update composite API spec
stainless-app[bot] Nov 24, 2025
550d77c
chore(internal): codegen related update
stainless-app[bot] Nov 24, 2025
861c68f
fix(zone): datasource model schema parity (#6487)
mgirouard Nov 25, 2025
ee51e5f
feat: feat(radar): Add origins endpoints to public api docs
stainless-app[bot] Nov 25, 2025
6869538
chore(account_tokens): adding a simple CRUD test (#6484)
steve-thousand Nov 25, 2025
7dc0a63
feat: chore(api_shield_discovery_operation): Deprecate api_shield_dis…
stainless-app[bot] Nov 25, 2025
37e1fdf
chore(cloudflare_api_shield_operation): Add acceptance tests (#6491)
cbertiercloudflare Nov 25, 2025
504e8b6
chore(internal): codegen related update
stainless-app[bot] Nov 26, 2025
2e4b8a0
chore(logpush_job): add v4 to v5 migration tests (#6483)
ssicard Nov 26, 2025
6dc0e53
fix(pages_project): use correct field name in test sweeper
tamas-jozsa Nov 28, 2025
ff91dc9
Merge pull request #398 from stainless-sdks/fix-pages-project
tamas-jozsa Nov 28, 2025
4c4e54b
fix(zero_trust_device_posture_rule): preserve input.version and other…
tamas-jozsa Nov 28, 2025
5beb50b
feat: feat(r2_data_catalog): Configure SDKs/Terraform to use R2 Data …
stainless-app[bot] Dec 2, 2025
8d8f5fc
DS-15730: Re-enable logpush_dataset_field data source and add accepta…
hc2116 Dec 2, 2025
cfe5181
DS-15566: Add logpush_job acceptance test for filter update (#6498)
hc2116 Dec 2, 2025
fb3ef1b
chore(internal): codegen related update
stainless-app[bot] Dec 2, 2025
abfb8cc
Update Subscription and Subscription.RatePlan schema in order to sati…
smakys Dec 2, 2025
03fb2d2
feat: improve and standardize sweepers (#6501)
tamas-jozsa Dec 2, 2025
d45be9a
fix(zero_trust_device_posture_rule): preserve input.version and other…
tamas-jozsa Dec 2, 2025
dfa745a
chore(internal): codegen related update
stainless-app[bot] Dec 2, 2025
e9b6783
chore(zero_trust_device_managed_networks): add tests (#6463)
jlu-cloudflare Dec 2, 2025
365cb71
chore(zero_trust_device_default_profile_local_domain_fallback): add t…
jlu-cloudflare Dec 2, 2025
e360d6f
chore(zero_trust_device_posture_integration): update tests for to tes…
jlu-cloudflare Dec 2, 2025
2a70fb4
fix(zone_subscription|account_subscription): add partners_ent as vali…
smakys Dec 2, 2025
71fc050
chore(api): update composite API spec
stainless-app[bot] Dec 3, 2025
a91faa6
chore(internal): codegen related update
stainless-app[bot] Dec 3, 2025
c789f91
chore(internal): codegen related update
stainless-app[bot] Dec 3, 2025
6de0179
feat: add v4->v5 migration tests for pages_project and adjust schema …
rotem-cloud Dec 4, 2025
c2db582
fix: update import signature to accept account_id/subscription_id in …
smakys Dec 4, 2025
fec953c
fix: r2 sweeper (#6512)
tamas-jozsa Dec 4, 2025
7b36c06
chore(internal): codegen related update
stainless-app[bot] Dec 5, 2025
a7ca469
codegen metadata
stainless-app[bot] Dec 3, 2025
a110cbe
chore(internal): codegen related update
stainless-app[bot] Dec 3, 2025
923ea1d
chore(internal): codegen related update
stainless-app[bot] Dec 4, 2025
9c8a9ef
codegen metadata
stainless-app[bot] Dec 4, 2025
63cb021
feat: chore: update go sdk to v6.4.0 for provider release
stainless-app[bot] Dec 4, 2025
505c0fe
fix(workers_script): resource drift when worker has unmanaged secret…
christhorwarth Dec 5, 2025
dc60e38
fix(workers_script): No longer treating the migrations attribute as W…
christhorwarth Dec 5, 2025
8e4ec1a
chore(zero_trust_device_default|custom_profile): acceptance test cove…
jlu-cloudflare Dec 5, 2025
f3ecaa5
fix(account_members): making member policies a set (#6488)
steve-thousand Dec 5, 2025
bad9716
fix(tests): resolve SDK v6 migration test failures (#6507)
tamas-jozsa Dec 5, 2025
5341c82
chore(tests): cloud connector rules parity tests and add connectivity…
vaishakdinesh Dec 5, 2025
1935459
fix: decoder, build (#6514)
vaishakdinesh Dec 5, 2025
4c3e2db
fix: decoder and tests (#6516)
vaishakdinesh Dec 5, 2025
07e9aa5
chore(account_member): fix check for env var (#6517)
vaishakdinesh Dec 5, 2025
5cf9992
ACCT-11111 making member policies a set
steve-thousand Nov 24, 2025
a07b29b
fixing test resource name
steve-thousand Dec 1, 2025
8f43cf4
removing unnecessary
steve-thousand Dec 2, 2025
4093208
removing unnecessary
steve-thousand Dec 2, 2025
eb1fd48
fixing resource names and sweeping
steve-thousand Dec 3, 2025
a385c9e
manual cleanup of test resources
steve-thousand Dec 3, 2025
5ca895c
making resource groups and perm groups sets
steve-thousand Dec 4, 2025
78d82a1
progress on improving account_member
steve-thousand Dec 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/acceptance-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/cloudflare-terraform' && 'depot-ubuntu-24.04' || 'lx64' }}
env:
CLOUDFLARE_ACCOUNT_ID: f037e56e89293a057740de681ac9abbe
CLOUDFLARE_ALT_DOMAIN: terraform2.cfapi.net
CLOUDFLARE_ALT_ZONE_ID: b72110c08e3382597095c29ba7e661ea
CLOUDFLARE_ALT_DOMAIN: terraform-alt.cfapi.net
CLOUDFLARE_ALT_ZONE_ID: ed9caae55809bfe3209699f602ce17fc
CLOUDFLARE_DOMAIN: terraform.cfapi.net
CLOUDFLARE_EMAIL: terraform-acceptance-test@cfapi.net
CLOUDFLARE_ZONE_ID: 0da42c8d2132a9ddaf714f9e7c920711
Expand Down
20 changes: 20 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# yaml-language-server: schema=https://golangci-lint.run/jsonschema/golangci.jsonschema.json
---
version: '2'
linters:
settings:
staticcheck:
checks:
- all

- -SA1019
- -SA5008
- -ST1000
- -ST1003
- -ST1020
- -ST1022

- -QF1008
govet:
disable:
- structtag
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 1905
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-cc732ca8d1d7f1c11a1ee579060ddfd8f953a3ad94fd5053056b53370129d040.yml
openapi_spec_hash: a3e1e833dfe13845abd1e2227993a979
config_hash: 9e3a3f3e68822e0dc6f40af202c6c57e
configured_endpoints: 1922
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-6183ef87f1b8eea6ad4bae542bfde2ec23a5526ae2b7bacdf6c6a4c48d990995.yml
openapi_spec_hash: 9c8ac3d56571ebf1e170d993b71ccb4d
config_hash: 56e587ca83a584af152a4bf8a9cfb29e
21 changes: 10 additions & 11 deletions docs/resources/account_subscription.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,10 @@
page_title: "cloudflare_account_subscription Resource - Cloudflare"
subcategory: ""
description: |-

---

# cloudflare_account_subscription (Resource)



## Example Usage

```terraform
Expand All @@ -28,6 +25,7 @@ resource "cloudflare_account_subscription" "example_account_subscription" {
```

<!-- schema generated by tfplugindocs -->

## Schema

### Required
Expand All @@ -37,7 +35,7 @@ resource "cloudflare_account_subscription" "example_account_subscription" {
### Optional

- `frequency` (String) How often the subscription is renewed automatically.
Available values: "weekly", "monthly", "quarterly", "yearly".
Available values: "weekly", "monthly", "quarterly", "yearly".
- `rate_plan` (Attributes) The rate plan applied to the subscription. (see [below for nested schema](#nestedatt--rate_plan))

### Read-Only
Expand All @@ -48,28 +46,29 @@ Available values: "weekly", "monthly", "quarterly", "yearly".
- `id` (String) Subscription identifier tag.
- `price` (Number) The price of the subscription that will be billed, in US dollars.
- `state` (String) The state that the subscription is in.
Available values: "Trial", "Provisioned", "Paid", "AwaitingPayment", "Cancelled", "Failed", "Expired".
Available values: "Trial", "Provisioned", "Paid", "AwaitingPayment", "Cancelled", "Failed", "Expired".

<a id="nestedatt--rate_plan"></a>

### Nested Schema for `rate_plan`

Optional:

- `id` (String) The ID of the rate plan.
- `scope` (String) The scope that this rate plan applies to.

Read-Only:

- `currency` (String) The currency applied to the rate plan subscription.
- `externally_managed` (Boolean) Whether this rate plan is managed externally from Cloudflare.
- `id` (String) The ID of the rate plan.
Available values: "free", "lite", "pro", "pro_plus", "business", "enterprise", "partners_free", "partners_pro", "partners_business", "partners_enterprise".
- `is_contract` (Boolean) Whether a rate plan is enterprise-based (or newly adopted term contract).
- `public_name` (String) The full name of the rate plan.
- `scope` (String) The scope that this rate plan applies to.
- `sets` (List of String) The list of sets this rate plan applies to.

## Import

Import is supported using the following syntax:

```shell
$ terraform import cloudflare_account_subscription.example '<account_id>'
$ terraform import cloudflare_account_subscription.example '<account_id>/<subscription_id>'
```


20 changes: 10 additions & 10 deletions docs/resources/zone_subscription.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,10 @@
page_title: "cloudflare_zone_subscription Resource - Cloudflare"
subcategory: ""
description: |-

---

# cloudflare_zone_subscription (Resource)



## Example Usage

```terraform
Expand All @@ -28,6 +25,7 @@ resource "cloudflare_zone_subscription" "example_zone_subscription" {
```

<!-- schema generated by tfplugindocs -->

## Schema

### Required
Expand All @@ -37,7 +35,7 @@ resource "cloudflare_zone_subscription" "example_zone_subscription" {
### Optional

- `frequency` (String) How often the subscription is renewed automatically.
Available values: "weekly", "monthly", "quarterly", "yearly".
Available values: "weekly", "monthly", "quarterly", "yearly".
- `rate_plan` (Attributes) The rate plan applied to the subscription. (see [below for nested schema](#nestedatt--rate_plan))

### Read-Only
Expand All @@ -48,20 +46,24 @@ Available values: "weekly", "monthly", "quarterly", "yearly".
- `id` (String) Subscription identifier tag.
- `price` (Number) The price of the subscription that will be billed, in US dollars.
- `state` (String) The state that the subscription is in.
Available values: "Trial", "Provisioned", "Paid", "AwaitingPayment", "Cancelled", "Failed", "Expired".
Available values: "Trial", "Provisioned", "Paid", "AwaitingPayment", "Cancelled", "Failed", "Expired".

<a id="nestedatt--rate_plan"></a>

### Nested Schema for `rate_plan`

Optional:

- `id` (String) The ID of the rate plan.
Available values: "free", "lite", "pro", "pro_plus", "business", "enterprise", "partners_free", "partners_pro", "partners_business", "partners_ent".
- `scope` (String) The scope that this rate plan applies to.

Read-Only:

- `currency` (String) The currency applied to the rate plan subscription.
- `externally_managed` (Boolean) Whether this rate plan is managed externally from Cloudflare.
- `id` (String) The ID of the rate plan.
Available values: "free", "lite", "pro", "pro_plus", "business", "enterprise", "partners_free", "partners_pro", "partners_business", "partners_enterprise".
- `is_contract` (Boolean) Whether a rate plan is enterprise-based (or newly adopted term contract).
- `public_name` (String) The full name of the rate plan.
- `scope` (String) The scope that this rate plan applies to.
- `sets` (List of String) The list of sets this rate plan applies to.

## Import
Expand All @@ -71,5 +73,3 @@ Import is supported using the following syntax:
```shell
$ terraform import cloudflare_zone_subscription.example '<zone_id>'
```


1 change: 1 addition & 0 deletions examples/resources/cloudflare_byo_ip_prefix/resource.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ resource "cloudflare_byo_ip_prefix" "example_byo_ip_prefix" {
cidr = "192.0.2.0/24"
delegate_loa_creation = true
description = "Internal test prefix"
loa_document_id = "d933b1530bc56c9953cf8ce166da8004"
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ resource "cloudflare_cloud_connector_rules" "example_cloud_connector_rules" {
parameters = {
host = "examplebucket.s3.eu-north-1.amazonaws.com"
}
provider = "aws_s3"
cloud_connector_rules_provider = "aws_s3"
}]
}
2 changes: 1 addition & 1 deletion examples/resources/cloudflare_pages_domain/resource.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
resource "cloudflare_pages_domain" "example_pages_domain" {
account_id = "023e105f4ecef8ad9ca31a8372d0c353"
project_name = "this-is-my-project-01"
name = "example.com"
name = "this-is-my-domain-01.com"
}
10 changes: 6 additions & 4 deletions examples/resources/cloudflare_pages_project/resource.tf
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,15 @@ resource "cloudflare_pages_project" "example_pages_project" {
}
r2_buckets = {
R2_BINDING = {
jurisdiction = "eu"
name = "some-bucket"
jurisdiction = "eu"
}
}
services = {
SERVICE_BINDING = {
service = "example-worker"
entrypoint = "MyHandler"
environment = "production"
service = "example-worker"
}
}
usage_model = "standard"
Expand Down Expand Up @@ -160,15 +160,15 @@ resource "cloudflare_pages_project" "example_pages_project" {
}
r2_buckets = {
R2_BINDING = {
jurisdiction = "eu"
name = "some-bucket"
jurisdiction = "eu"
}
}
services = {
SERVICE_BINDING = {
service = "example-worker"
entrypoint = "MyHandler"
environment = "production"
service = "example-worker"
}
}
usage_model = "standard"
Expand All @@ -184,6 +184,7 @@ resource "cloudflare_pages_project" "example_pages_project" {
config = {
deployments_enabled = true
owner = "my-org"
owner_id = "12345678"
path_excludes = ["string"]
path_includes = ["string"]
pr_comments_enabled = true
Expand All @@ -192,6 +193,7 @@ resource "cloudflare_pages_project" "example_pages_project" {
preview_deployment_setting = "all"
production_branch = "main"
production_deployments_enabled = true
repo_id = "12345678"
repo_name = "my-repo"
}
type = "github"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
resource "cloudflare_workers_custom_domain" "example_workers_custom_domain" {
account_id = "9a7806061c88ada191ed06f989cc3dac"
environment = "production"
hostname = "foo.example.com"
service = "foo"
zone_id = "593c9c94de529bbbfaac7c53ced0447d"
environment = "production"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
resource "cloudflare_zero_trust_device_settings" "example_zero_trust_device_settings" {
account_id = "699d98642c564d2e855e9661899b7252"
disable_for_time = 0
external_emergency_signal_enabled = true
external_emergency_signal_fingerprint = "abcd1234567890abcd1234567890abcd1234567890abcd1234567890abcd1234"
external_emergency_signal_interval = "5m"
external_emergency_signal_url = "https://192.0.2.1/signal"
gateway_proxy_enabled = true
gateway_udp_proxy_enabled = true
root_certificate_installation_enabled = true
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ require (
github.com/aws/aws-sdk-go-v2/credentials v1.17.34
github.com/aws/aws-sdk-go-v2/service/s3 v1.63.0
github.com/cloudflare/cloudflare-go v0.115.0
github.com/cloudflare/cloudflare-go/v6 v6.3.0
github.com/cloudflare/cloudflare-go/v6 v6.4.0
github.com/davecgh/go-spew v1.1.1
github.com/hashicorp/go-uuid v1.0.3
github.com/hashicorp/terraform-plugin-docs v0.21.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
github.com/cloudflare/cloudflare-go v0.115.0 h1:84/dxeeXweCc0PN5Cto44iTA8AkG1fyT11yPO5ZB7sM=
github.com/cloudflare/cloudflare-go v0.115.0/go.mod h1:Ds6urDwn/TF2uIU24mu7H91xkKP8gSAHxQ44DSZgVmU=
github.com/cloudflare/cloudflare-go/v6 v6.3.0 h1:6oL/iTOv1fYe6nVT14gRQWp49EyJxVe+OPrO92c/mmE=
github.com/cloudflare/cloudflare-go/v6 v6.3.0/go.mod h1:Lj3MUqjvKctXRpdRhLQxZYRrNZHuRs0XYuH8JtQGyoI=
github.com/cloudflare/cloudflare-go/v6 v6.4.0 h1:uigzhmfDfve+zFAYYWIBOAMEuDoPEJXdPS3NBrEm8/Q=
github.com/cloudflare/cloudflare-go/v6 v6.4.0/go.mod h1:Lj3MUqjvKctXRpdRhLQxZYRrNZHuRs0XYuH8JtQGyoI=
github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand Down
20 changes: 10 additions & 10 deletions internal/acctest/acctest.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,22 +130,22 @@ func TestAccPreCheck_LogpushToken(t *testing.T) {
}
}

// Test helper method checking the Workspace One environment variables are present.
func TestAccPreCheck_WorkspaceOne(t *testing.T) {
if v := os.Getenv("CLOUDFLARE_WORKSPACE_ONE_CLIENT_ID"); v == "" {
t.Fatal("CLOUDFLARE_WORKSPACE_ONE_CLIENT_ID must be set for this acceptance test.")
// Test helper method checking the CrowdStrike environment variables are present.
func TestAccPreCheck_CrowdStrike(t *testing.T) {
if v := os.Getenv("CLOUDFLARE_CROWDSTRIKE_CLIENT_ID"); v == "" {
t.Skip("Skipping acceptance test as CLOUDFLARE_CROWDSTRIKE_CLIENT_ID is not set")
}

if v := os.Getenv("CLOUDFLARE_WORKSPACE_ONE_CLIENT_SECRET"); v == "" {
t.Fatal("CLOUDFLARE_WORKSPACE_ONE_CLIENT_SECRET must be set for this acceptance test.")
if v := os.Getenv("CLOUDFLARE_CROWDSTRIKE_CLIENT_SECRET"); v == "" {
t.Skip("Skipping acceptance test as CLOUDFLARE_CROWDSTRIKE_CLIENT_SECRET is not set")
}

if v := os.Getenv("CLOUDFLARE_WORKSPACE_ONE_API_URL"); v == "" {
t.Fatal("CLOUDFLARE_WORKSPACE_ONE_API_URL must be set for this acceptance test.")
if v := os.Getenv("CLOUDFLARE_CROWDSTRIKE_API_URL"); v == "" {
t.Skip("Skipping acceptance test as CLOUDFLARE_CROWDSTRIKE_API_URL is not set")
}

if v := os.Getenv("CLOUDFLARE_WORKSPACE_ONE_AUTH_URL"); v == "" {
t.Fatal("CLOUDFLARE_WORKSPACE_ONE_AUTH_URL must be set for this acceptance test.")
if v := os.Getenv("CLOUDFLARE_CROWDSTRIKE_CUSTOMER_ID"); v == "" {
t.Skip("Skipping acceptance test as CLOUDFLARE_CROWDSTRIKE_CUSTOMER_ID is not set")
}
}

Expand Down
7 changes: 5 additions & 2 deletions internal/apiform/form_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -580,8 +580,11 @@ func TestEncode(t *testing.T) {
t.Run(name, func(t *testing.T) {
buf := bytes.NewBuffer(nil)
writer := multipart.NewWriter(buf)
writer.SetBoundary("xxx")
err := MarshalRoot(test.val, writer)
err := writer.SetBoundary("xxx")
if err != nil {
t.Errorf("serialization of %v\nfailed with error:\n%v", test.val, err)
}
err = MarshalRoot(test.val, writer)
if err != nil {
t.Errorf("serialization of %v\nfailed with error:\n%v", test.val, err)
}
Expand Down
Loading
Loading