pulumi-cloudflare 6.10.1__py3-none-any.whl → 6.11.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. pulumi_cloudflare/__init__.py +31 -0
  2. pulumi_cloudflare/_inputs.py +2127 -309
  3. pulumi_cloudflare/access_application.py +7 -7
  4. pulumi_cloudflare/access_identity_provider.py +60 -0
  5. pulumi_cloudflare/access_mutual_tls_hostname_settings.py +26 -0
  6. pulumi_cloudflare/access_organization.py +56 -0
  7. pulumi_cloudflare/access_policy.py +96 -0
  8. pulumi_cloudflare/account.py +47 -0
  9. pulumi_cloudflare/account_dns_settings.py +62 -0
  10. pulumi_cloudflare/account_subscription.py +36 -0
  11. pulumi_cloudflare/account_token.py +90 -0
  12. pulumi_cloudflare/api_shield.py +0 -68
  13. pulumi_cloudflare/api_token.py +88 -0
  14. pulumi_cloudflare/authenticated_origin_pulls.py +26 -0
  15. pulumi_cloudflare/content_scanning.py +253 -0
  16. pulumi_cloudflare/custom_hostname.py +144 -0
  17. pulumi_cloudflare/custom_pages.py +7 -7
  18. pulumi_cloudflare/device_managed_networks.py +28 -0
  19. pulumi_cloudflare/device_posture_integration.py +34 -0
  20. pulumi_cloudflare/device_posture_rule.py +46 -0
  21. pulumi_cloudflare/dlp_custom_profile.py +57 -7
  22. pulumi_cloudflare/dns_firewall.py +50 -0
  23. pulumi_cloudflare/dns_record.py +38 -0
  24. pulumi_cloudflare/get_account.py +15 -1
  25. pulumi_cloudflare/get_api_shield.py +5 -27
  26. pulumi_cloudflare/get_content_scanning.py +136 -0
  27. pulumi_cloudflare/get_custom_pages.py +3 -3
  28. pulumi_cloudflare/get_list.py +2 -2
  29. pulumi_cloudflare/get_magic_transit_connector.py +12 -1
  30. pulumi_cloudflare/get_notification_policy.py +3 -3
  31. pulumi_cloudflare/get_notification_policy_webhooks.py +2 -2
  32. pulumi_cloudflare/get_organization.py +171 -0
  33. pulumi_cloudflare/get_organization_profile.py +154 -0
  34. pulumi_cloudflare/get_organizations.py +248 -0
  35. pulumi_cloudflare/get_pages_project.py +77 -7
  36. pulumi_cloudflare/get_worker.py +15 -1
  37. pulumi_cloudflare/get_zero_trust_access_application.py +1 -1
  38. pulumi_cloudflare/get_zero_trust_dex_test.py +7 -0
  39. pulumi_cloudflare/get_zero_trust_gateway_policy.py +1 -1
  40. pulumi_cloudflare/get_zero_trust_tunnel_cloudflared_config.py +18 -4
  41. pulumi_cloudflare/healthcheck.py +84 -0
  42. pulumi_cloudflare/hyperdrive_config.py +52 -0
  43. pulumi_cloudflare/keyless_certificate.py +34 -0
  44. pulumi_cloudflare/list_item.py +16 -0
  45. pulumi_cloudflare/load_balancer.py +282 -0
  46. pulumi_cloudflare/logpush_job.py +80 -0
  47. pulumi_cloudflare/magic_transit_site_acl.py +56 -0
  48. pulumi_cloudflare/magic_transit_site_lan.py +82 -0
  49. pulumi_cloudflare/magic_transit_site_wan.py +36 -0
  50. pulumi_cloudflare/magic_wan_static_route.py +34 -0
  51. pulumi_cloudflare/notification_policy.py +145 -7
  52. pulumi_cloudflare/organization.py +297 -0
  53. pulumi_cloudflare/organization_profile.py +340 -0
  54. pulumi_cloudflare/outputs.py +3322 -642
  55. pulumi_cloudflare/page_rule.py +34 -0
  56. pulumi_cloudflare/pages_project.py +571 -30
  57. pulumi_cloudflare/pulumi-plugin.json +1 -1
  58. pulumi_cloudflare/queue_consumer.py +38 -0
  59. pulumi_cloudflare/r2_bucket_cors.py +38 -0
  60. pulumi_cloudflare/r2_bucket_event_notification.py +19 -18
  61. pulumi_cloudflare/r2_bucket_lifecycle.py +70 -0
  62. pulumi_cloudflare/record.py +38 -0
  63. pulumi_cloudflare/snippet.py +42 -0
  64. pulumi_cloudflare/snippet_rules.py +28 -0
  65. pulumi_cloudflare/static_route.py +34 -0
  66. pulumi_cloudflare/teams_account.py +148 -0
  67. pulumi_cloudflare/teams_rule.py +259 -7
  68. pulumi_cloudflare/tunnel_config.py +50 -3
  69. pulumi_cloudflare/worker.py +88 -0
  70. pulumi_cloudflare/worker_script.py +158 -2
  71. pulumi_cloudflare/worker_version.py +112 -0
  72. pulumi_cloudflare/workers_deployment.py +34 -0
  73. pulumi_cloudflare/workers_script.py +158 -2
  74. pulumi_cloudflare/zero_trust_access_application.py +7 -7
  75. pulumi_cloudflare/zero_trust_access_identity_provider.py +60 -0
  76. pulumi_cloudflare/zero_trust_access_mtls_hostname_settings.py +26 -0
  77. pulumi_cloudflare/zero_trust_access_policy.py +96 -0
  78. pulumi_cloudflare/zero_trust_device_managed_networks.py +28 -0
  79. pulumi_cloudflare/zero_trust_device_posture_integration.py +34 -0
  80. pulumi_cloudflare/zero_trust_device_posture_rule.py +46 -0
  81. pulumi_cloudflare/zero_trust_dex_test.py +63 -3
  82. pulumi_cloudflare/zero_trust_dlp_custom_entry.py +6 -7
  83. pulumi_cloudflare/zero_trust_dlp_custom_profile.py +57 -7
  84. pulumi_cloudflare/zero_trust_dlp_entry.py +6 -7
  85. pulumi_cloudflare/zero_trust_dlp_predefined_entry.py +1 -1
  86. pulumi_cloudflare/zero_trust_gateway_policy.py +259 -7
  87. pulumi_cloudflare/zero_trust_gateway_settings.py +148 -0
  88. pulumi_cloudflare/zero_trust_organization.py +56 -0
  89. pulumi_cloudflare/zero_trust_tunnel_cloudflared_config.py +50 -3
  90. pulumi_cloudflare/zone_cache_variants.py +108 -0
  91. pulumi_cloudflare/zone_dns_settings.py +60 -0
  92. pulumi_cloudflare/zone_subscription.py +36 -0
  93. {pulumi_cloudflare-6.10.1.dist-info → pulumi_cloudflare-6.11.0.dist-info}/METADATA +1 -1
  94. {pulumi_cloudflare-6.10.1.dist-info → pulumi_cloudflare-6.11.0.dist-info}/RECORD +96 -89
  95. {pulumi_cloudflare-6.10.1.dist-info → pulumi_cloudflare-6.11.0.dist-info}/WHEEL +0 -0
  96. {pulumi_cloudflare-6.10.1.dist-info → pulumi_cloudflare-6.11.0.dist-info}/top_level.txt +0 -0
@@ -23,26 +23,25 @@ class PagesProjectArgs:
23
23
  def __init__(__self__, *,
24
24
  account_id: pulumi.Input[_builtins.str],
25
25
  name: pulumi.Input[_builtins.str],
26
+ production_branch: pulumi.Input[_builtins.str],
26
27
  build_config: Optional[pulumi.Input['PagesProjectBuildConfigArgs']] = None,
27
28
  deployment_configs: Optional[pulumi.Input['PagesProjectDeploymentConfigsArgs']] = None,
28
- production_branch: Optional[pulumi.Input[_builtins.str]] = None,
29
29
  source: Optional[pulumi.Input['PagesProjectSourceArgs']] = None):
30
30
  """
31
31
  The set of arguments for constructing a PagesProject resource.
32
32
  :param pulumi.Input[_builtins.str] account_id: Identifier
33
33
  :param pulumi.Input[_builtins.str] name: Name of the project.
34
+ :param pulumi.Input[_builtins.str] production_branch: Production branch of the project. Used to identify production deployments.
34
35
  :param pulumi.Input['PagesProjectBuildConfigArgs'] build_config: Configs for the project build process.
35
36
  :param pulumi.Input['PagesProjectDeploymentConfigsArgs'] deployment_configs: Configs for deployments in a project.
36
- :param pulumi.Input[_builtins.str] production_branch: Production branch of the project. Used to identify production deployments.
37
37
  """
38
38
  pulumi.set(__self__, "account_id", account_id)
39
39
  pulumi.set(__self__, "name", name)
40
+ pulumi.set(__self__, "production_branch", production_branch)
40
41
  if build_config is not None:
41
42
  pulumi.set(__self__, "build_config", build_config)
42
43
  if deployment_configs is not None:
43
44
  pulumi.set(__self__, "deployment_configs", deployment_configs)
44
- if production_branch is not None:
45
- pulumi.set(__self__, "production_branch", production_branch)
46
45
  if source is not None:
47
46
  pulumi.set(__self__, "source", source)
48
47
 
@@ -70,6 +69,18 @@ class PagesProjectArgs:
70
69
  def name(self, value: pulumi.Input[_builtins.str]):
71
70
  pulumi.set(self, "name", value)
72
71
 
72
+ @_builtins.property
73
+ @pulumi.getter(name="productionBranch")
74
+ def production_branch(self) -> pulumi.Input[_builtins.str]:
75
+ """
76
+ Production branch of the project. Used to identify production deployments.
77
+ """
78
+ return pulumi.get(self, "production_branch")
79
+
80
+ @production_branch.setter
81
+ def production_branch(self, value: pulumi.Input[_builtins.str]):
82
+ pulumi.set(self, "production_branch", value)
83
+
73
84
  @_builtins.property
74
85
  @pulumi.getter(name="buildConfig")
75
86
  def build_config(self) -> Optional[pulumi.Input['PagesProjectBuildConfigArgs']]:
@@ -94,18 +105,6 @@ class PagesProjectArgs:
94
105
  def deployment_configs(self, value: Optional[pulumi.Input['PagesProjectDeploymentConfigsArgs']]):
95
106
  pulumi.set(self, "deployment_configs", value)
96
107
 
97
- @_builtins.property
98
- @pulumi.getter(name="productionBranch")
99
- def production_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
100
- """
101
- Production branch of the project. Used to identify production deployments.
102
- """
103
- return pulumi.get(self, "production_branch")
104
-
105
- @production_branch.setter
106
- def production_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
107
- pulumi.set(self, "production_branch", value)
108
-
109
108
  @_builtins.property
110
109
  @pulumi.getter
111
110
  def source(self) -> Optional[pulumi.Input['PagesProjectSourceArgs']]:
@@ -125,23 +124,33 @@ class _PagesProjectState:
125
124
  created_on: Optional[pulumi.Input[_builtins.str]] = None,
126
125
  deployment_configs: Optional[pulumi.Input['PagesProjectDeploymentConfigsArgs']] = None,
127
126
  domains: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
127
+ framework: Optional[pulumi.Input[_builtins.str]] = None,
128
+ framework_version: Optional[pulumi.Input[_builtins.str]] = None,
128
129
  latest_deployment: Optional[pulumi.Input['PagesProjectLatestDeploymentArgs']] = None,
129
130
  name: Optional[pulumi.Input[_builtins.str]] = None,
131
+ preview_script_name: Optional[pulumi.Input[_builtins.str]] = None,
130
132
  production_branch: Optional[pulumi.Input[_builtins.str]] = None,
133
+ production_script_name: Optional[pulumi.Input[_builtins.str]] = None,
131
134
  source: Optional[pulumi.Input['PagesProjectSourceArgs']] = None,
132
- subdomain: Optional[pulumi.Input[_builtins.str]] = None):
135
+ subdomain: Optional[pulumi.Input[_builtins.str]] = None,
136
+ uses_functions: Optional[pulumi.Input[_builtins.bool]] = None):
133
137
  """
134
138
  Input properties used for looking up and filtering PagesProject resources.
135
139
  :param pulumi.Input[_builtins.str] account_id: Identifier
136
140
  :param pulumi.Input['PagesProjectBuildConfigArgs'] build_config: Configs for the project build process.
137
- :param pulumi.Input['PagesProjectCanonicalDeploymentArgs'] canonical_deployment: Most recent deployment to the repo.
141
+ :param pulumi.Input['PagesProjectCanonicalDeploymentArgs'] canonical_deployment: Most recent production deployment of the project.
138
142
  :param pulumi.Input[_builtins.str] created_on: When the project was created.
139
143
  :param pulumi.Input['PagesProjectDeploymentConfigsArgs'] deployment_configs: Configs for deployments in a project.
140
144
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] domains: A list of associated custom domains for the project.
141
- :param pulumi.Input['PagesProjectLatestDeploymentArgs'] latest_deployment: Most recent deployment to the repo.
145
+ :param pulumi.Input[_builtins.str] framework: Framework the project is using.
146
+ :param pulumi.Input[_builtins.str] framework_version: Version of the framework the project is using.
147
+ :param pulumi.Input['PagesProjectLatestDeploymentArgs'] latest_deployment: Most recent deployment of the project.
142
148
  :param pulumi.Input[_builtins.str] name: Name of the project.
149
+ :param pulumi.Input[_builtins.str] preview_script_name: Name of the preview script.
143
150
  :param pulumi.Input[_builtins.str] production_branch: Production branch of the project. Used to identify production deployments.
151
+ :param pulumi.Input[_builtins.str] production_script_name: Name of the production script.
144
152
  :param pulumi.Input[_builtins.str] subdomain: The Cloudflare subdomain associated with the project.
153
+ :param pulumi.Input[_builtins.bool] uses_functions: Whether the project uses functions.
145
154
  """
146
155
  if account_id is not None:
147
156
  pulumi.set(__self__, "account_id", account_id)
@@ -155,16 +164,26 @@ class _PagesProjectState:
155
164
  pulumi.set(__self__, "deployment_configs", deployment_configs)
156
165
  if domains is not None:
157
166
  pulumi.set(__self__, "domains", domains)
167
+ if framework is not None:
168
+ pulumi.set(__self__, "framework", framework)
169
+ if framework_version is not None:
170
+ pulumi.set(__self__, "framework_version", framework_version)
158
171
  if latest_deployment is not None:
159
172
  pulumi.set(__self__, "latest_deployment", latest_deployment)
160
173
  if name is not None:
161
174
  pulumi.set(__self__, "name", name)
175
+ if preview_script_name is not None:
176
+ pulumi.set(__self__, "preview_script_name", preview_script_name)
162
177
  if production_branch is not None:
163
178
  pulumi.set(__self__, "production_branch", production_branch)
179
+ if production_script_name is not None:
180
+ pulumi.set(__self__, "production_script_name", production_script_name)
164
181
  if source is not None:
165
182
  pulumi.set(__self__, "source", source)
166
183
  if subdomain is not None:
167
184
  pulumi.set(__self__, "subdomain", subdomain)
185
+ if uses_functions is not None:
186
+ pulumi.set(__self__, "uses_functions", uses_functions)
168
187
 
169
188
  @_builtins.property
170
189
  @pulumi.getter(name="accountId")
@@ -194,7 +213,7 @@ class _PagesProjectState:
194
213
  @pulumi.getter(name="canonicalDeployment")
195
214
  def canonical_deployment(self) -> Optional[pulumi.Input['PagesProjectCanonicalDeploymentArgs']]:
196
215
  """
197
- Most recent deployment to the repo.
216
+ Most recent production deployment of the project.
198
217
  """
199
218
  return pulumi.get(self, "canonical_deployment")
200
219
 
@@ -238,11 +257,35 @@ class _PagesProjectState:
238
257
  def domains(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
239
258
  pulumi.set(self, "domains", value)
240
259
 
260
+ @_builtins.property
261
+ @pulumi.getter
262
+ def framework(self) -> Optional[pulumi.Input[_builtins.str]]:
263
+ """
264
+ Framework the project is using.
265
+ """
266
+ return pulumi.get(self, "framework")
267
+
268
+ @framework.setter
269
+ def framework(self, value: Optional[pulumi.Input[_builtins.str]]):
270
+ pulumi.set(self, "framework", value)
271
+
272
+ @_builtins.property
273
+ @pulumi.getter(name="frameworkVersion")
274
+ def framework_version(self) -> Optional[pulumi.Input[_builtins.str]]:
275
+ """
276
+ Version of the framework the project is using.
277
+ """
278
+ return pulumi.get(self, "framework_version")
279
+
280
+ @framework_version.setter
281
+ def framework_version(self, value: Optional[pulumi.Input[_builtins.str]]):
282
+ pulumi.set(self, "framework_version", value)
283
+
241
284
  @_builtins.property
242
285
  @pulumi.getter(name="latestDeployment")
243
286
  def latest_deployment(self) -> Optional[pulumi.Input['PagesProjectLatestDeploymentArgs']]:
244
287
  """
245
- Most recent deployment to the repo.
288
+ Most recent deployment of the project.
246
289
  """
247
290
  return pulumi.get(self, "latest_deployment")
248
291
 
@@ -262,6 +305,18 @@ class _PagesProjectState:
262
305
  def name(self, value: Optional[pulumi.Input[_builtins.str]]):
263
306
  pulumi.set(self, "name", value)
264
307
 
308
+ @_builtins.property
309
+ @pulumi.getter(name="previewScriptName")
310
+ def preview_script_name(self) -> Optional[pulumi.Input[_builtins.str]]:
311
+ """
312
+ Name of the preview script.
313
+ """
314
+ return pulumi.get(self, "preview_script_name")
315
+
316
+ @preview_script_name.setter
317
+ def preview_script_name(self, value: Optional[pulumi.Input[_builtins.str]]):
318
+ pulumi.set(self, "preview_script_name", value)
319
+
265
320
  @_builtins.property
266
321
  @pulumi.getter(name="productionBranch")
267
322
  def production_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -274,6 +329,18 @@ class _PagesProjectState:
274
329
  def production_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
275
330
  pulumi.set(self, "production_branch", value)
276
331
 
332
+ @_builtins.property
333
+ @pulumi.getter(name="productionScriptName")
334
+ def production_script_name(self) -> Optional[pulumi.Input[_builtins.str]]:
335
+ """
336
+ Name of the production script.
337
+ """
338
+ return pulumi.get(self, "production_script_name")
339
+
340
+ @production_script_name.setter
341
+ def production_script_name(self, value: Optional[pulumi.Input[_builtins.str]]):
342
+ pulumi.set(self, "production_script_name", value)
343
+
277
344
  @_builtins.property
278
345
  @pulumi.getter
279
346
  def source(self) -> Optional[pulumi.Input['PagesProjectSourceArgs']]:
@@ -295,6 +362,18 @@ class _PagesProjectState:
295
362
  def subdomain(self, value: Optional[pulumi.Input[_builtins.str]]):
296
363
  pulumi.set(self, "subdomain", value)
297
364
 
365
+ @_builtins.property
366
+ @pulumi.getter(name="usesFunctions")
367
+ def uses_functions(self) -> Optional[pulumi.Input[_builtins.bool]]:
368
+ """
369
+ Whether the project uses functions.
370
+ """
371
+ return pulumi.get(self, "uses_functions")
372
+
373
+ @uses_functions.setter
374
+ def uses_functions(self, value: Optional[pulumi.Input[_builtins.bool]]):
375
+ pulumi.set(self, "uses_functions", value)
376
+
298
377
 
299
378
  @pulumi.type_token("cloudflare:index/pagesProject:PagesProject")
300
379
  class PagesProject(pulumi.CustomResource):
@@ -316,6 +395,206 @@ class PagesProject(pulumi.CustomResource):
316
395
 
317
396
  ## Example Usage
318
397
 
398
+ ```python
399
+ import pulumi
400
+ import pulumi_cloudflare as cloudflare
401
+
402
+ example_pages_project = cloudflare.PagesProject("example_pages_project",
403
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
404
+ name="my-pages-app",
405
+ production_branch="main",
406
+ build_config={
407
+ "build_caching": True,
408
+ "build_command": "npm run build",
409
+ "destination_dir": "build",
410
+ "root_dir": "/",
411
+ "web_analytics_tag": "cee1c73f6e4743d0b5e6bb1a0bcaabcc",
412
+ "web_analytics_token": "021e1057c18547eca7b79f2516f06o7x",
413
+ },
414
+ deployment_configs={
415
+ "preview": {
416
+ "ai_bindings": {
417
+ "AI_BINDING": {
418
+ "project_id": "some-project-id",
419
+ },
420
+ },
421
+ "always_use_latest_compatibility_date": False,
422
+ "analytics_engine_datasets": {
423
+ "ANALYTICS_ENGINE_BINDING": {
424
+ "dataset": "api_analytics",
425
+ },
426
+ },
427
+ "browsers": {
428
+ "BROWSER": {},
429
+ },
430
+ "build_image_major_version": 3,
431
+ "compatibility_date": "2025-01-01",
432
+ "compatibility_flags": ["url_standard"],
433
+ "d1_databases": {
434
+ "D1_BINDING": {
435
+ "id": "445e2955-951a-43f8-a35b-a4d0c8138f63",
436
+ },
437
+ },
438
+ "durable_object_namespaces": {
439
+ "DO_BINDING": {
440
+ "namespace_id": "5eb63bbbe01eeed093cb22bb8f5acdc3",
441
+ },
442
+ },
443
+ "env_vars": {
444
+ "foo": {
445
+ "type": "plain_text",
446
+ "value": "hello world",
447
+ },
448
+ },
449
+ "fail_open": True,
450
+ "hyperdrive_bindings": {
451
+ "HYPERDRIVE": {
452
+ "id": "a76a99bc342644deb02c38d66082262a",
453
+ },
454
+ },
455
+ "kv_namespaces": {
456
+ "KV_BINDING": {
457
+ "namespace_id": "5eb63bbbe01eeed093cb22bb8f5acdc3",
458
+ },
459
+ },
460
+ "limits": {
461
+ "cpu_ms": 100,
462
+ },
463
+ "mtls_certificates": {
464
+ "MTLS": {
465
+ "certificate_id": "d7cdd17c-916f-4cb7-aabe-585eb382ec4e",
466
+ },
467
+ },
468
+ "placement": {
469
+ "mode": "smart",
470
+ },
471
+ "queue_producers": {
472
+ "QUEUE_PRODUCER_BINDING": {
473
+ "name": "some-queue",
474
+ },
475
+ },
476
+ "r2_buckets": {
477
+ "R2_BINDING": {
478
+ "jurisdiction": "eu",
479
+ "name": "some-bucket",
480
+ },
481
+ },
482
+ "services": {
483
+ "SERVICE_BINDING": {
484
+ "entrypoint": "MyHandler",
485
+ "environment": "production",
486
+ "service": "example-worker",
487
+ },
488
+ },
489
+ "usage_model": "standard",
490
+ "vectorize_bindings": {
491
+ "VECTORIZE": {
492
+ "index_name": "my_index",
493
+ },
494
+ },
495
+ "wrangler_config_hash": "abc123def456",
496
+ },
497
+ "production": {
498
+ "ai_bindings": {
499
+ "AI_BINDING": {
500
+ "project_id": "some-project-id",
501
+ },
502
+ },
503
+ "always_use_latest_compatibility_date": False,
504
+ "analytics_engine_datasets": {
505
+ "ANALYTICS_ENGINE_BINDING": {
506
+ "dataset": "api_analytics",
507
+ },
508
+ },
509
+ "browsers": {
510
+ "BROWSER": {},
511
+ },
512
+ "build_image_major_version": 3,
513
+ "compatibility_date": "2025-01-01",
514
+ "compatibility_flags": ["url_standard"],
515
+ "d1_databases": {
516
+ "D1_BINDING": {
517
+ "id": "445e2955-951a-43f8-a35b-a4d0c8138f63",
518
+ },
519
+ },
520
+ "durable_object_namespaces": {
521
+ "DO_BINDING": {
522
+ "namespace_id": "5eb63bbbe01eeed093cb22bb8f5acdc3",
523
+ },
524
+ },
525
+ "env_vars": {
526
+ "foo": {
527
+ "type": "plain_text",
528
+ "value": "hello world",
529
+ },
530
+ },
531
+ "fail_open": True,
532
+ "hyperdrive_bindings": {
533
+ "HYPERDRIVE": {
534
+ "id": "a76a99bc342644deb02c38d66082262a",
535
+ },
536
+ },
537
+ "kv_namespaces": {
538
+ "KV_BINDING": {
539
+ "namespace_id": "5eb63bbbe01eeed093cb22bb8f5acdc3",
540
+ },
541
+ },
542
+ "limits": {
543
+ "cpu_ms": 100,
544
+ },
545
+ "mtls_certificates": {
546
+ "MTLS": {
547
+ "certificate_id": "d7cdd17c-916f-4cb7-aabe-585eb382ec4e",
548
+ },
549
+ },
550
+ "placement": {
551
+ "mode": "smart",
552
+ },
553
+ "queue_producers": {
554
+ "QUEUE_PRODUCER_BINDING": {
555
+ "name": "some-queue",
556
+ },
557
+ },
558
+ "r2_buckets": {
559
+ "R2_BINDING": {
560
+ "jurisdiction": "eu",
561
+ "name": "some-bucket",
562
+ },
563
+ },
564
+ "services": {
565
+ "SERVICE_BINDING": {
566
+ "entrypoint": "MyHandler",
567
+ "environment": "production",
568
+ "service": "example-worker",
569
+ },
570
+ },
571
+ "usage_model": "standard",
572
+ "vectorize_bindings": {
573
+ "VECTORIZE": {
574
+ "index_name": "my_index",
575
+ },
576
+ },
577
+ "wrangler_config_hash": "abc123def456",
578
+ },
579
+ },
580
+ source={
581
+ "config": {
582
+ "deployments_enabled": True,
583
+ "owner": "my-org",
584
+ "path_excludes": ["string"],
585
+ "path_includes": ["string"],
586
+ "pr_comments_enabled": True,
587
+ "preview_branch_excludes": ["string"],
588
+ "preview_branch_includes": ["string"],
589
+ "preview_deployment_setting": "all",
590
+ "production_branch": "main",
591
+ "production_deployments_enabled": True,
592
+ "repo_name": "my-repo",
593
+ },
594
+ "type": "github",
595
+ })
596
+ ```
597
+
319
598
  ## Import
320
599
 
321
600
  !> It is not possible to import a pages project with secret environment variables. If you have a secret environment variable, you must remove it from your project before importing it.
@@ -345,6 +624,206 @@ class PagesProject(pulumi.CustomResource):
345
624
 
346
625
  ## Example Usage
347
626
 
627
+ ```python
628
+ import pulumi
629
+ import pulumi_cloudflare as cloudflare
630
+
631
+ example_pages_project = cloudflare.PagesProject("example_pages_project",
632
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
633
+ name="my-pages-app",
634
+ production_branch="main",
635
+ build_config={
636
+ "build_caching": True,
637
+ "build_command": "npm run build",
638
+ "destination_dir": "build",
639
+ "root_dir": "/",
640
+ "web_analytics_tag": "cee1c73f6e4743d0b5e6bb1a0bcaabcc",
641
+ "web_analytics_token": "021e1057c18547eca7b79f2516f06o7x",
642
+ },
643
+ deployment_configs={
644
+ "preview": {
645
+ "ai_bindings": {
646
+ "AI_BINDING": {
647
+ "project_id": "some-project-id",
648
+ },
649
+ },
650
+ "always_use_latest_compatibility_date": False,
651
+ "analytics_engine_datasets": {
652
+ "ANALYTICS_ENGINE_BINDING": {
653
+ "dataset": "api_analytics",
654
+ },
655
+ },
656
+ "browsers": {
657
+ "BROWSER": {},
658
+ },
659
+ "build_image_major_version": 3,
660
+ "compatibility_date": "2025-01-01",
661
+ "compatibility_flags": ["url_standard"],
662
+ "d1_databases": {
663
+ "D1_BINDING": {
664
+ "id": "445e2955-951a-43f8-a35b-a4d0c8138f63",
665
+ },
666
+ },
667
+ "durable_object_namespaces": {
668
+ "DO_BINDING": {
669
+ "namespace_id": "5eb63bbbe01eeed093cb22bb8f5acdc3",
670
+ },
671
+ },
672
+ "env_vars": {
673
+ "foo": {
674
+ "type": "plain_text",
675
+ "value": "hello world",
676
+ },
677
+ },
678
+ "fail_open": True,
679
+ "hyperdrive_bindings": {
680
+ "HYPERDRIVE": {
681
+ "id": "a76a99bc342644deb02c38d66082262a",
682
+ },
683
+ },
684
+ "kv_namespaces": {
685
+ "KV_BINDING": {
686
+ "namespace_id": "5eb63bbbe01eeed093cb22bb8f5acdc3",
687
+ },
688
+ },
689
+ "limits": {
690
+ "cpu_ms": 100,
691
+ },
692
+ "mtls_certificates": {
693
+ "MTLS": {
694
+ "certificate_id": "d7cdd17c-916f-4cb7-aabe-585eb382ec4e",
695
+ },
696
+ },
697
+ "placement": {
698
+ "mode": "smart",
699
+ },
700
+ "queue_producers": {
701
+ "QUEUE_PRODUCER_BINDING": {
702
+ "name": "some-queue",
703
+ },
704
+ },
705
+ "r2_buckets": {
706
+ "R2_BINDING": {
707
+ "jurisdiction": "eu",
708
+ "name": "some-bucket",
709
+ },
710
+ },
711
+ "services": {
712
+ "SERVICE_BINDING": {
713
+ "entrypoint": "MyHandler",
714
+ "environment": "production",
715
+ "service": "example-worker",
716
+ },
717
+ },
718
+ "usage_model": "standard",
719
+ "vectorize_bindings": {
720
+ "VECTORIZE": {
721
+ "index_name": "my_index",
722
+ },
723
+ },
724
+ "wrangler_config_hash": "abc123def456",
725
+ },
726
+ "production": {
727
+ "ai_bindings": {
728
+ "AI_BINDING": {
729
+ "project_id": "some-project-id",
730
+ },
731
+ },
732
+ "always_use_latest_compatibility_date": False,
733
+ "analytics_engine_datasets": {
734
+ "ANALYTICS_ENGINE_BINDING": {
735
+ "dataset": "api_analytics",
736
+ },
737
+ },
738
+ "browsers": {
739
+ "BROWSER": {},
740
+ },
741
+ "build_image_major_version": 3,
742
+ "compatibility_date": "2025-01-01",
743
+ "compatibility_flags": ["url_standard"],
744
+ "d1_databases": {
745
+ "D1_BINDING": {
746
+ "id": "445e2955-951a-43f8-a35b-a4d0c8138f63",
747
+ },
748
+ },
749
+ "durable_object_namespaces": {
750
+ "DO_BINDING": {
751
+ "namespace_id": "5eb63bbbe01eeed093cb22bb8f5acdc3",
752
+ },
753
+ },
754
+ "env_vars": {
755
+ "foo": {
756
+ "type": "plain_text",
757
+ "value": "hello world",
758
+ },
759
+ },
760
+ "fail_open": True,
761
+ "hyperdrive_bindings": {
762
+ "HYPERDRIVE": {
763
+ "id": "a76a99bc342644deb02c38d66082262a",
764
+ },
765
+ },
766
+ "kv_namespaces": {
767
+ "KV_BINDING": {
768
+ "namespace_id": "5eb63bbbe01eeed093cb22bb8f5acdc3",
769
+ },
770
+ },
771
+ "limits": {
772
+ "cpu_ms": 100,
773
+ },
774
+ "mtls_certificates": {
775
+ "MTLS": {
776
+ "certificate_id": "d7cdd17c-916f-4cb7-aabe-585eb382ec4e",
777
+ },
778
+ },
779
+ "placement": {
780
+ "mode": "smart",
781
+ },
782
+ "queue_producers": {
783
+ "QUEUE_PRODUCER_BINDING": {
784
+ "name": "some-queue",
785
+ },
786
+ },
787
+ "r2_buckets": {
788
+ "R2_BINDING": {
789
+ "jurisdiction": "eu",
790
+ "name": "some-bucket",
791
+ },
792
+ },
793
+ "services": {
794
+ "SERVICE_BINDING": {
795
+ "entrypoint": "MyHandler",
796
+ "environment": "production",
797
+ "service": "example-worker",
798
+ },
799
+ },
800
+ "usage_model": "standard",
801
+ "vectorize_bindings": {
802
+ "VECTORIZE": {
803
+ "index_name": "my_index",
804
+ },
805
+ },
806
+ "wrangler_config_hash": "abc123def456",
807
+ },
808
+ },
809
+ source={
810
+ "config": {
811
+ "deployments_enabled": True,
812
+ "owner": "my-org",
813
+ "path_excludes": ["string"],
814
+ "path_includes": ["string"],
815
+ "pr_comments_enabled": True,
816
+ "preview_branch_excludes": ["string"],
817
+ "preview_branch_includes": ["string"],
818
+ "preview_deployment_setting": "all",
819
+ "production_branch": "main",
820
+ "production_deployments_enabled": True,
821
+ "repo_name": "my-repo",
822
+ },
823
+ "type": "github",
824
+ })
825
+ ```
826
+
348
827
  ## Import
349
828
 
350
829
  !> It is not possible to import a pages project with secret environment variables. If you have a secret environment variable, you must remove it from your project before importing it.
@@ -391,13 +870,20 @@ class PagesProject(pulumi.CustomResource):
391
870
  if name is None and not opts.urn:
392
871
  raise TypeError("Missing required property 'name'")
393
872
  __props__.__dict__["name"] = name
873
+ if production_branch is None and not opts.urn:
874
+ raise TypeError("Missing required property 'production_branch'")
394
875
  __props__.__dict__["production_branch"] = production_branch
395
876
  __props__.__dict__["source"] = source
396
877
  __props__.__dict__["canonical_deployment"] = None
397
878
  __props__.__dict__["created_on"] = None
398
879
  __props__.__dict__["domains"] = None
880
+ __props__.__dict__["framework"] = None
881
+ __props__.__dict__["framework_version"] = None
399
882
  __props__.__dict__["latest_deployment"] = None
883
+ __props__.__dict__["preview_script_name"] = None
884
+ __props__.__dict__["production_script_name"] = None
400
885
  __props__.__dict__["subdomain"] = None
886
+ __props__.__dict__["uses_functions"] = None
401
887
  super(PagesProject, __self__).__init__(
402
888
  'cloudflare:index/pagesProject:PagesProject',
403
889
  resource_name,
@@ -414,11 +900,16 @@ class PagesProject(pulumi.CustomResource):
414
900
  created_on: Optional[pulumi.Input[_builtins.str]] = None,
415
901
  deployment_configs: Optional[pulumi.Input[Union['PagesProjectDeploymentConfigsArgs', 'PagesProjectDeploymentConfigsArgsDict']]] = None,
416
902
  domains: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
903
+ framework: Optional[pulumi.Input[_builtins.str]] = None,
904
+ framework_version: Optional[pulumi.Input[_builtins.str]] = None,
417
905
  latest_deployment: Optional[pulumi.Input[Union['PagesProjectLatestDeploymentArgs', 'PagesProjectLatestDeploymentArgsDict']]] = None,
418
906
  name: Optional[pulumi.Input[_builtins.str]] = None,
907
+ preview_script_name: Optional[pulumi.Input[_builtins.str]] = None,
419
908
  production_branch: Optional[pulumi.Input[_builtins.str]] = None,
909
+ production_script_name: Optional[pulumi.Input[_builtins.str]] = None,
420
910
  source: Optional[pulumi.Input[Union['PagesProjectSourceArgs', 'PagesProjectSourceArgsDict']]] = None,
421
- subdomain: Optional[pulumi.Input[_builtins.str]] = None) -> 'PagesProject':
911
+ subdomain: Optional[pulumi.Input[_builtins.str]] = None,
912
+ uses_functions: Optional[pulumi.Input[_builtins.bool]] = None) -> 'PagesProject':
422
913
  """
423
914
  Get an existing PagesProject resource's state with the given name, id, and optional extra
424
915
  properties used to qualify the lookup.
@@ -428,14 +919,19 @@ class PagesProject(pulumi.CustomResource):
428
919
  :param pulumi.ResourceOptions opts: Options for the resource.
429
920
  :param pulumi.Input[_builtins.str] account_id: Identifier
430
921
  :param pulumi.Input[Union['PagesProjectBuildConfigArgs', 'PagesProjectBuildConfigArgsDict']] build_config: Configs for the project build process.
431
- :param pulumi.Input[Union['PagesProjectCanonicalDeploymentArgs', 'PagesProjectCanonicalDeploymentArgsDict']] canonical_deployment: Most recent deployment to the repo.
922
+ :param pulumi.Input[Union['PagesProjectCanonicalDeploymentArgs', 'PagesProjectCanonicalDeploymentArgsDict']] canonical_deployment: Most recent production deployment of the project.
432
923
  :param pulumi.Input[_builtins.str] created_on: When the project was created.
433
924
  :param pulumi.Input[Union['PagesProjectDeploymentConfigsArgs', 'PagesProjectDeploymentConfigsArgsDict']] deployment_configs: Configs for deployments in a project.
434
925
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] domains: A list of associated custom domains for the project.
435
- :param pulumi.Input[Union['PagesProjectLatestDeploymentArgs', 'PagesProjectLatestDeploymentArgsDict']] latest_deployment: Most recent deployment to the repo.
926
+ :param pulumi.Input[_builtins.str] framework: Framework the project is using.
927
+ :param pulumi.Input[_builtins.str] framework_version: Version of the framework the project is using.
928
+ :param pulumi.Input[Union['PagesProjectLatestDeploymentArgs', 'PagesProjectLatestDeploymentArgsDict']] latest_deployment: Most recent deployment of the project.
436
929
  :param pulumi.Input[_builtins.str] name: Name of the project.
930
+ :param pulumi.Input[_builtins.str] preview_script_name: Name of the preview script.
437
931
  :param pulumi.Input[_builtins.str] production_branch: Production branch of the project. Used to identify production deployments.
932
+ :param pulumi.Input[_builtins.str] production_script_name: Name of the production script.
438
933
  :param pulumi.Input[_builtins.str] subdomain: The Cloudflare subdomain associated with the project.
934
+ :param pulumi.Input[_builtins.bool] uses_functions: Whether the project uses functions.
439
935
  """
440
936
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
441
937
 
@@ -447,11 +943,16 @@ class PagesProject(pulumi.CustomResource):
447
943
  __props__.__dict__["created_on"] = created_on
448
944
  __props__.__dict__["deployment_configs"] = deployment_configs
449
945
  __props__.__dict__["domains"] = domains
946
+ __props__.__dict__["framework"] = framework
947
+ __props__.__dict__["framework_version"] = framework_version
450
948
  __props__.__dict__["latest_deployment"] = latest_deployment
451
949
  __props__.__dict__["name"] = name
950
+ __props__.__dict__["preview_script_name"] = preview_script_name
452
951
  __props__.__dict__["production_branch"] = production_branch
952
+ __props__.__dict__["production_script_name"] = production_script_name
453
953
  __props__.__dict__["source"] = source
454
954
  __props__.__dict__["subdomain"] = subdomain
955
+ __props__.__dict__["uses_functions"] = uses_functions
455
956
  return PagesProject(resource_name, opts=opts, __props__=__props__)
456
957
 
457
958
  @_builtins.property
@@ -464,7 +965,7 @@ class PagesProject(pulumi.CustomResource):
464
965
 
465
966
  @_builtins.property
466
967
  @pulumi.getter(name="buildConfig")
467
- def build_config(self) -> pulumi.Output[Optional['outputs.PagesProjectBuildConfig']]:
968
+ def build_config(self) -> pulumi.Output['outputs.PagesProjectBuildConfig']:
468
969
  """
469
970
  Configs for the project build process.
470
971
  """
@@ -474,7 +975,7 @@ class PagesProject(pulumi.CustomResource):
474
975
  @pulumi.getter(name="canonicalDeployment")
475
976
  def canonical_deployment(self) -> pulumi.Output['outputs.PagesProjectCanonicalDeployment']:
476
977
  """
477
- Most recent deployment to the repo.
978
+ Most recent production deployment of the project.
478
979
  """
479
980
  return pulumi.get(self, "canonical_deployment")
480
981
 
@@ -488,7 +989,7 @@ class PagesProject(pulumi.CustomResource):
488
989
 
489
990
  @_builtins.property
490
991
  @pulumi.getter(name="deploymentConfigs")
491
- def deployment_configs(self) -> pulumi.Output[Optional['outputs.PagesProjectDeploymentConfigs']]:
992
+ def deployment_configs(self) -> pulumi.Output['outputs.PagesProjectDeploymentConfigs']:
492
993
  """
493
994
  Configs for deployments in a project.
494
995
  """
@@ -502,11 +1003,27 @@ class PagesProject(pulumi.CustomResource):
502
1003
  """
503
1004
  return pulumi.get(self, "domains")
504
1005
 
1006
+ @_builtins.property
1007
+ @pulumi.getter
1008
+ def framework(self) -> pulumi.Output[_builtins.str]:
1009
+ """
1010
+ Framework the project is using.
1011
+ """
1012
+ return pulumi.get(self, "framework")
1013
+
1014
+ @_builtins.property
1015
+ @pulumi.getter(name="frameworkVersion")
1016
+ def framework_version(self) -> pulumi.Output[_builtins.str]:
1017
+ """
1018
+ Version of the framework the project is using.
1019
+ """
1020
+ return pulumi.get(self, "framework_version")
1021
+
505
1022
  @_builtins.property
506
1023
  @pulumi.getter(name="latestDeployment")
507
1024
  def latest_deployment(self) -> pulumi.Output['outputs.PagesProjectLatestDeployment']:
508
1025
  """
509
- Most recent deployment to the repo.
1026
+ Most recent deployment of the project.
510
1027
  """
511
1028
  return pulumi.get(self, "latest_deployment")
512
1029
 
@@ -518,17 +1035,33 @@ class PagesProject(pulumi.CustomResource):
518
1035
  """
519
1036
  return pulumi.get(self, "name")
520
1037
 
1038
+ @_builtins.property
1039
+ @pulumi.getter(name="previewScriptName")
1040
+ def preview_script_name(self) -> pulumi.Output[_builtins.str]:
1041
+ """
1042
+ Name of the preview script.
1043
+ """
1044
+ return pulumi.get(self, "preview_script_name")
1045
+
521
1046
  @_builtins.property
522
1047
  @pulumi.getter(name="productionBranch")
523
- def production_branch(self) -> pulumi.Output[Optional[_builtins.str]]:
1048
+ def production_branch(self) -> pulumi.Output[_builtins.str]:
524
1049
  """
525
1050
  Production branch of the project. Used to identify production deployments.
526
1051
  """
527
1052
  return pulumi.get(self, "production_branch")
528
1053
 
1054
+ @_builtins.property
1055
+ @pulumi.getter(name="productionScriptName")
1056
+ def production_script_name(self) -> pulumi.Output[_builtins.str]:
1057
+ """
1058
+ Name of the production script.
1059
+ """
1060
+ return pulumi.get(self, "production_script_name")
1061
+
529
1062
  @_builtins.property
530
1063
  @pulumi.getter
531
- def source(self) -> pulumi.Output[Optional['outputs.PagesProjectSource']]:
1064
+ def source(self) -> pulumi.Output['outputs.PagesProjectSource']:
532
1065
  return pulumi.get(self, "source")
533
1066
 
534
1067
  @_builtins.property
@@ -539,3 +1072,11 @@ class PagesProject(pulumi.CustomResource):
539
1072
  """
540
1073
  return pulumi.get(self, "subdomain")
541
1074
 
1075
+ @_builtins.property
1076
+ @pulumi.getter(name="usesFunctions")
1077
+ def uses_functions(self) -> pulumi.Output[_builtins.bool]:
1078
+ """
1079
+ Whether the project uses functions.
1080
+ """
1081
+ return pulumi.get(self, "uses_functions")
1082
+