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
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "cloudflare",
4
- "version": "6.10.1"
4
+ "version": "6.11.0"
5
5
  }
@@ -285,6 +285,25 @@ class QueueConsumer(pulumi.CustomResource):
285
285
  """
286
286
  ## Example Usage
287
287
 
288
+ ```python
289
+ import pulumi
290
+ import pulumi_cloudflare as cloudflare
291
+
292
+ example_queue_consumer = cloudflare.QueueConsumer("example_queue_consumer",
293
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
294
+ queue_id="023e105f4ecef8ad9ca31a8372d0c353",
295
+ dead_letter_queue="example-queue",
296
+ script_name="my-consumer-worker",
297
+ settings={
298
+ "batch_size": 50,
299
+ "max_concurrency": 10,
300
+ "max_retries": 3,
301
+ "max_wait_time_ms": 5000,
302
+ "retry_delay": 10,
303
+ },
304
+ type="worker")
305
+ ```
306
+
288
307
  :param str resource_name: The name of the resource.
289
308
  :param pulumi.ResourceOptions opts: Options for the resource.
290
309
  :param pulumi.Input[_builtins.str] account_id: A Resource identifier.
@@ -302,6 +321,25 @@ class QueueConsumer(pulumi.CustomResource):
302
321
  """
303
322
  ## Example Usage
304
323
 
324
+ ```python
325
+ import pulumi
326
+ import pulumi_cloudflare as cloudflare
327
+
328
+ example_queue_consumer = cloudflare.QueueConsumer("example_queue_consumer",
329
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
330
+ queue_id="023e105f4ecef8ad9ca31a8372d0c353",
331
+ dead_letter_queue="example-queue",
332
+ script_name="my-consumer-worker",
333
+ settings={
334
+ "batch_size": 50,
335
+ "max_concurrency": 10,
336
+ "max_retries": 3,
337
+ "max_wait_time_ms": 5000,
338
+ "retry_delay": 10,
339
+ },
340
+ type="worker")
341
+ ```
342
+
305
343
  :param str resource_name: The name of the resource.
306
344
  :param QueueConsumerInitArgs args: The arguments to use to populate this resource's properties.
307
345
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -166,6 +166,25 @@ class R2BucketCors(pulumi.CustomResource):
166
166
  """
167
167
  ## Example Usage
168
168
 
169
+ ```python
170
+ import pulumi
171
+ import pulumi_cloudflare as cloudflare
172
+
173
+ example_r2_bucket_cors = cloudflare.R2BucketCors("example_r2_bucket_cors",
174
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
175
+ bucket_name="example-bucket",
176
+ rules=[{
177
+ "allowed": {
178
+ "methods": ["GET"],
179
+ "origins": ["http://localhost:3000"],
180
+ "headers": ["x-requested-by"],
181
+ },
182
+ "id": "Allow Local Development",
183
+ "expose_headers": ["Content-Encoding"],
184
+ "max_age_seconds": 3600,
185
+ }])
186
+ ```
187
+
169
188
  :param str resource_name: The name of the resource.
170
189
  :param pulumi.ResourceOptions opts: Options for the resource.
171
190
  :param pulumi.Input[_builtins.str] account_id: Account ID.
@@ -181,6 +200,25 @@ class R2BucketCors(pulumi.CustomResource):
181
200
  """
182
201
  ## Example Usage
183
202
 
203
+ ```python
204
+ import pulumi
205
+ import pulumi_cloudflare as cloudflare
206
+
207
+ example_r2_bucket_cors = cloudflare.R2BucketCors("example_r2_bucket_cors",
208
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
209
+ bucket_name="example-bucket",
210
+ rules=[{
211
+ "allowed": {
212
+ "methods": ["GET"],
213
+ "origins": ["http://localhost:3000"],
214
+ "headers": ["x-requested-by"],
215
+ },
216
+ "id": "Allow Local Development",
217
+ "expose_headers": ["Content-Encoding"],
218
+ "max_age_seconds": 3600,
219
+ }])
220
+ ```
221
+
184
222
  :param str resource_name: The name of the resource.
185
223
  :param R2BucketCorsArgs args: The arguments to use to populate this resource's properties.
186
224
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -24,23 +24,22 @@ class R2BucketEventNotificationArgs:
24
24
  account_id: pulumi.Input[_builtins.str],
25
25
  bucket_name: pulumi.Input[_builtins.str],
26
26
  queue_id: pulumi.Input[_builtins.str],
27
- jurisdiction: Optional[pulumi.Input[_builtins.str]] = None,
28
- rules: Optional[pulumi.Input[Sequence[pulumi.Input['R2BucketEventNotificationRuleArgs']]]] = None):
27
+ rules: pulumi.Input[Sequence[pulumi.Input['R2BucketEventNotificationRuleArgs']]],
28
+ jurisdiction: Optional[pulumi.Input[_builtins.str]] = None):
29
29
  """
30
30
  The set of arguments for constructing a R2BucketEventNotification resource.
31
31
  :param pulumi.Input[_builtins.str] account_id: Account ID.
32
32
  :param pulumi.Input[_builtins.str] bucket_name: Name of the bucket.
33
33
  :param pulumi.Input[_builtins.str] queue_id: Queue ID.
34
- :param pulumi.Input[_builtins.str] jurisdiction: Jurisdiction of the bucket
35
34
  :param pulumi.Input[Sequence[pulumi.Input['R2BucketEventNotificationRuleArgs']]] rules: Array of rules to drive notifications.
35
+ :param pulumi.Input[_builtins.str] jurisdiction: Jurisdiction of the bucket
36
36
  """
37
37
  pulumi.set(__self__, "account_id", account_id)
38
38
  pulumi.set(__self__, "bucket_name", bucket_name)
39
39
  pulumi.set(__self__, "queue_id", queue_id)
40
+ pulumi.set(__self__, "rules", rules)
40
41
  if jurisdiction is not None:
41
42
  pulumi.set(__self__, "jurisdiction", jurisdiction)
42
- if rules is not None:
43
- pulumi.set(__self__, "rules", rules)
44
43
 
45
44
  @_builtins.property
46
45
  @pulumi.getter(name="accountId")
@@ -80,27 +79,27 @@ class R2BucketEventNotificationArgs:
80
79
 
81
80
  @_builtins.property
82
81
  @pulumi.getter
83
- def jurisdiction(self) -> Optional[pulumi.Input[_builtins.str]]:
82
+ def rules(self) -> pulumi.Input[Sequence[pulumi.Input['R2BucketEventNotificationRuleArgs']]]:
84
83
  """
85
- Jurisdiction of the bucket
84
+ Array of rules to drive notifications.
86
85
  """
87
- return pulumi.get(self, "jurisdiction")
86
+ return pulumi.get(self, "rules")
88
87
 
89
- @jurisdiction.setter
90
- def jurisdiction(self, value: Optional[pulumi.Input[_builtins.str]]):
91
- pulumi.set(self, "jurisdiction", value)
88
+ @rules.setter
89
+ def rules(self, value: pulumi.Input[Sequence[pulumi.Input['R2BucketEventNotificationRuleArgs']]]):
90
+ pulumi.set(self, "rules", value)
92
91
 
93
92
  @_builtins.property
94
93
  @pulumi.getter
95
- def rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['R2BucketEventNotificationRuleArgs']]]]:
94
+ def jurisdiction(self) -> Optional[pulumi.Input[_builtins.str]]:
96
95
  """
97
- Array of rules to drive notifications.
96
+ Jurisdiction of the bucket
98
97
  """
99
- return pulumi.get(self, "rules")
98
+ return pulumi.get(self, "jurisdiction")
100
99
 
101
- @rules.setter
102
- def rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['R2BucketEventNotificationRuleArgs']]]]):
103
- pulumi.set(self, "rules", value)
100
+ @jurisdiction.setter
101
+ def jurisdiction(self, value: Optional[pulumi.Input[_builtins.str]]):
102
+ pulumi.set(self, "jurisdiction", value)
104
103
 
105
104
 
106
105
  @pulumi.input_type
@@ -316,6 +315,8 @@ class R2BucketEventNotification(pulumi.CustomResource):
316
315
  if queue_id is None and not opts.urn:
317
316
  raise TypeError("Missing required property 'queue_id'")
318
317
  __props__.__dict__["queue_id"] = queue_id
318
+ if rules is None and not opts.urn:
319
+ raise TypeError("Missing required property 'rules'")
319
320
  __props__.__dict__["rules"] = rules
320
321
  __props__.__dict__["queue_name"] = None
321
322
  super(R2BucketEventNotification, __self__).__init__(
@@ -402,7 +403,7 @@ class R2BucketEventNotification(pulumi.CustomResource):
402
403
 
403
404
  @_builtins.property
404
405
  @pulumi.getter
405
- def rules(self) -> pulumi.Output[Optional[Sequence['outputs.R2BucketEventNotificationRule']]]:
406
+ def rules(self) -> pulumi.Output[Sequence['outputs.R2BucketEventNotificationRule']]:
406
407
  """
407
408
  Array of rules to drive notifications.
408
409
  """
@@ -166,6 +166,41 @@ class R2BucketLifecycle(pulumi.CustomResource):
166
166
  """
167
167
  ## Example Usage
168
168
 
169
+ ```python
170
+ import pulumi
171
+ import pulumi_cloudflare as cloudflare
172
+
173
+ example_r2_bucket_lifecycle = cloudflare.R2BucketLifecycle("example_r2_bucket_lifecycle",
174
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
175
+ bucket_name="example-bucket",
176
+ rules=[{
177
+ "id": "Expire all objects older than 24 hours",
178
+ "conditions": {
179
+ "prefix": "prefix",
180
+ },
181
+ "enabled": True,
182
+ "abort_multipart_uploads_transition": {
183
+ "condition": {
184
+ "max_age": 0,
185
+ "type": "Age",
186
+ },
187
+ },
188
+ "delete_objects_transition": {
189
+ "condition": {
190
+ "max_age": 0,
191
+ "type": "Age",
192
+ },
193
+ },
194
+ "storage_class_transitions": [{
195
+ "condition": {
196
+ "max_age": 0,
197
+ "type": "Age",
198
+ },
199
+ "storage_class": "InfrequentAccess",
200
+ }],
201
+ }])
202
+ ```
203
+
169
204
  :param str resource_name: The name of the resource.
170
205
  :param pulumi.ResourceOptions opts: Options for the resource.
171
206
  :param pulumi.Input[_builtins.str] account_id: Account ID.
@@ -181,6 +216,41 @@ class R2BucketLifecycle(pulumi.CustomResource):
181
216
  """
182
217
  ## Example Usage
183
218
 
219
+ ```python
220
+ import pulumi
221
+ import pulumi_cloudflare as cloudflare
222
+
223
+ example_r2_bucket_lifecycle = cloudflare.R2BucketLifecycle("example_r2_bucket_lifecycle",
224
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
225
+ bucket_name="example-bucket",
226
+ rules=[{
227
+ "id": "Expire all objects older than 24 hours",
228
+ "conditions": {
229
+ "prefix": "prefix",
230
+ },
231
+ "enabled": True,
232
+ "abort_multipart_uploads_transition": {
233
+ "condition": {
234
+ "max_age": 0,
235
+ "type": "Age",
236
+ },
237
+ },
238
+ "delete_objects_transition": {
239
+ "condition": {
240
+ "max_age": 0,
241
+ "type": "Age",
242
+ },
243
+ },
244
+ "storage_class_transitions": [{
245
+ "condition": {
246
+ "max_age": 0,
247
+ "type": "Age",
248
+ },
249
+ "storage_class": "InfrequentAccess",
250
+ }],
251
+ }])
252
+ ```
253
+
184
254
  :param str resource_name: The name of the resource.
185
255
  :param R2BucketLifecycleArgs args: The arguments to use to populate this resource's properties.
186
256
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -508,6 +508,25 @@ class Record(pulumi.CustomResource):
508
508
  """
509
509
  ## Example Usage
510
510
 
511
+ ```python
512
+ import pulumi
513
+ import pulumi_cloudflare as cloudflare
514
+
515
+ example_dns_record = cloudflare.DnsRecord("example_dns_record",
516
+ zone_id="023e105f4ecef8ad9ca31a8372d0c353",
517
+ name="example.com",
518
+ ttl=3600,
519
+ type="A",
520
+ comment="Domain verification record",
521
+ content="198.51.100.4",
522
+ proxied=True,
523
+ settings={
524
+ "ipv4_only": True,
525
+ "ipv6_only": True,
526
+ },
527
+ tags=["owner:dns-team"])
528
+ ```
529
+
511
530
  ## Import
512
531
 
513
532
  ```sh
@@ -538,6 +557,25 @@ class Record(pulumi.CustomResource):
538
557
  """
539
558
  ## Example Usage
540
559
 
560
+ ```python
561
+ import pulumi
562
+ import pulumi_cloudflare as cloudflare
563
+
564
+ example_dns_record = cloudflare.DnsRecord("example_dns_record",
565
+ zone_id="023e105f4ecef8ad9ca31a8372d0c353",
566
+ name="example.com",
567
+ ttl=3600,
568
+ type="A",
569
+ comment="Domain verification record",
570
+ content="198.51.100.4",
571
+ proxied=True,
572
+ settings={
573
+ "ipv4_only": True,
574
+ "ipv6_only": True,
575
+ },
576
+ tags=["owner:dns-team"])
577
+ ```
578
+
541
579
  ## Import
542
580
 
543
581
  ```sh
@@ -204,6 +204,27 @@ class Snippet(pulumi.CustomResource):
204
204
  """
205
205
  ## Example Usage
206
206
 
207
+ ```python
208
+ import pulumi
209
+ import pulumi_cloudflare as cloudflare
210
+
211
+ example_snippet = cloudflare.Snippet("example_snippet",
212
+ zone_id="9f1839b6152d298aca64c4e906b6d074",
213
+ snippet_name="my_snippet",
214
+ files=[{
215
+ "name": "main.js",
216
+ "content": \"\"\"export default {
217
+ async fetch(request) {
218
+ return new Response('Hello, World!');
219
+ }
220
+ }
221
+ \"\"\",
222
+ }],
223
+ metadata={
224
+ "main_module": "main.js",
225
+ })
226
+ ```
227
+
207
228
  :param str resource_name: The name of the resource.
208
229
  :param pulumi.ResourceOptions opts: Options for the resource.
209
230
  :param pulumi.Input[Sequence[pulumi.Input[Union['SnippetFileArgs', 'SnippetFileArgsDict']]]] files: The list of files belonging to the snippet.
@@ -220,6 +241,27 @@ class Snippet(pulumi.CustomResource):
220
241
  """
221
242
  ## Example Usage
222
243
 
244
+ ```python
245
+ import pulumi
246
+ import pulumi_cloudflare as cloudflare
247
+
248
+ example_snippet = cloudflare.Snippet("example_snippet",
249
+ zone_id="9f1839b6152d298aca64c4e906b6d074",
250
+ snippet_name="my_snippet",
251
+ files=[{
252
+ "name": "main.js",
253
+ "content": \"\"\"export default {
254
+ async fetch(request) {
255
+ return new Response('Hello, World!');
256
+ }
257
+ }
258
+ \"\"\",
259
+ }],
260
+ metadata={
261
+ "main_module": "main.js",
262
+ })
263
+ ```
264
+
223
265
  :param str resource_name: The name of the resource.
224
266
  :param SnippetArgs args: The arguments to use to populate this resource's properties.
225
267
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -108,6 +108,20 @@ class SnippetRules(pulumi.CustomResource):
108
108
  """
109
109
  ## Example Usage
110
110
 
111
+ ```python
112
+ import pulumi
113
+ import pulumi_cloudflare as cloudflare
114
+
115
+ example_snippet_rules = cloudflare.SnippetRules("example_snippet_rules",
116
+ zone_id="9f1839b6152d298aca64c4e906b6d074",
117
+ rules=[{
118
+ "expression": "ip.src eq 1.1.1.1",
119
+ "snippet_name": "my_snippet",
120
+ "description": "Execute my_snippet when IP address is 1.1.1.1.",
121
+ "enabled": True,
122
+ }])
123
+ ```
124
+
111
125
  :param str resource_name: The name of the resource.
112
126
  :param pulumi.ResourceOptions opts: Options for the resource.
113
127
  :param pulumi.Input[Sequence[pulumi.Input[Union['SnippetRulesRuleArgs', 'SnippetRulesRuleArgsDict']]]] rules: A list of snippet rules.
@@ -122,6 +136,20 @@ class SnippetRules(pulumi.CustomResource):
122
136
  """
123
137
  ## Example Usage
124
138
 
139
+ ```python
140
+ import pulumi
141
+ import pulumi_cloudflare as cloudflare
142
+
143
+ example_snippet_rules = cloudflare.SnippetRules("example_snippet_rules",
144
+ zone_id="9f1839b6152d298aca64c4e906b6d074",
145
+ rules=[{
146
+ "expression": "ip.src eq 1.1.1.1",
147
+ "snippet_name": "my_snippet",
148
+ "description": "Execute my_snippet when IP address is 1.1.1.1.",
149
+ "enabled": True,
150
+ }])
151
+ ```
152
+
125
153
  :param str resource_name: The name of the resource.
126
154
  :param SnippetRulesArgs args: The arguments to use to populate this resource's properties.
127
155
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -308,6 +308,23 @@ class StaticRoute(pulumi.CustomResource):
308
308
  """
309
309
  ## Example Usage
310
310
 
311
+ ```python
312
+ import pulumi
313
+ import pulumi_cloudflare as cloudflare
314
+
315
+ example_magic_wan_static_route = cloudflare.MagicWanStaticRoute("example_magic_wan_static_route",
316
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
317
+ nexthop="203.0.113.1",
318
+ prefix="192.0.2.0/24",
319
+ priority=0,
320
+ description="New route for new prefix 203.0.113.1",
321
+ scope={
322
+ "colo_names": ["den01"],
323
+ "colo_regions": ["APAC"],
324
+ },
325
+ weight=0)
326
+ ```
327
+
311
328
  ## Import
312
329
 
313
330
  ```sh
@@ -333,6 +350,23 @@ class StaticRoute(pulumi.CustomResource):
333
350
  """
334
351
  ## Example Usage
335
352
 
353
+ ```python
354
+ import pulumi
355
+ import pulumi_cloudflare as cloudflare
356
+
357
+ example_magic_wan_static_route = cloudflare.MagicWanStaticRoute("example_magic_wan_static_route",
358
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
359
+ nexthop="203.0.113.1",
360
+ prefix="192.0.2.0/24",
361
+ priority=0,
362
+ description="New route for new prefix 203.0.113.1",
363
+ scope={
364
+ "colo_names": ["den01"],
365
+ "colo_regions": ["APAC"],
366
+ },
367
+ weight=0)
368
+ ```
369
+
336
370
  ## Import
337
371
 
338
372
  ```sh
@@ -130,6 +130,80 @@ class TeamsAccount(pulumi.CustomResource):
130
130
  """
131
131
  ## Example Usage
132
132
 
133
+ ```python
134
+ import pulumi
135
+ import pulumi_cloudflare as cloudflare
136
+
137
+ example_zero_trust_gateway_settings = cloudflare.ZeroTrustGatewaySettings("example_zero_trust_gateway_settings",
138
+ account_id="699d98642c564d2e855e9661899b7252",
139
+ settings={
140
+ "activity_log": {
141
+ "enabled": True,
142
+ },
143
+ "antivirus": {
144
+ "enabled_download_phase": False,
145
+ "enabled_upload_phase": False,
146
+ "fail_closed": False,
147
+ "notification_settings": {
148
+ "enabled": True,
149
+ "include_context": True,
150
+ "msg": "msg",
151
+ "support_url": "support_url",
152
+ },
153
+ },
154
+ "block_page": {
155
+ "background_color": "background_color",
156
+ "enabled": True,
157
+ "footer_text": "--footer--",
158
+ "header_text": "--header--",
159
+ "include_context": True,
160
+ "logo_path": "https://logos.com/a.png",
161
+ "mailto_address": "admin@example.com",
162
+ "mailto_subject": "Blocked User Inquiry",
163
+ "mode": "",
164
+ "name": "Cloudflare",
165
+ "suppress_footer": False,
166
+ "target_uri": "https://example.com",
167
+ },
168
+ "body_scanning": {
169
+ "inspection_mode": "deep",
170
+ },
171
+ "browser_isolation": {
172
+ "non_identity_enabled": True,
173
+ "url_browser_isolation_enabled": True,
174
+ },
175
+ "certificate": {
176
+ "id": "d1b364c5-1311-466e-a194-f0e943e0799f",
177
+ },
178
+ "custom_certificate": {
179
+ "enabled": True,
180
+ "id": "d1b364c5-1311-466e-a194-f0e943e0799f",
181
+ },
182
+ "extended_email_matching": {
183
+ "enabled": True,
184
+ },
185
+ "fips": {
186
+ "tls": True,
187
+ },
188
+ "host_selector": {
189
+ "enabled": False,
190
+ },
191
+ "inspection": {
192
+ "mode": "static",
193
+ },
194
+ "protocol_detection": {
195
+ "enabled": True,
196
+ },
197
+ "sandbox": {
198
+ "enabled": True,
199
+ "fallback_action": "allow",
200
+ },
201
+ "tls_decrypt": {
202
+ "enabled": True,
203
+ },
204
+ })
205
+ ```
206
+
133
207
  ## Import
134
208
 
135
209
  ```sh
@@ -149,6 +223,80 @@ class TeamsAccount(pulumi.CustomResource):
149
223
  """
150
224
  ## Example Usage
151
225
 
226
+ ```python
227
+ import pulumi
228
+ import pulumi_cloudflare as cloudflare
229
+
230
+ example_zero_trust_gateway_settings = cloudflare.ZeroTrustGatewaySettings("example_zero_trust_gateway_settings",
231
+ account_id="699d98642c564d2e855e9661899b7252",
232
+ settings={
233
+ "activity_log": {
234
+ "enabled": True,
235
+ },
236
+ "antivirus": {
237
+ "enabled_download_phase": False,
238
+ "enabled_upload_phase": False,
239
+ "fail_closed": False,
240
+ "notification_settings": {
241
+ "enabled": True,
242
+ "include_context": True,
243
+ "msg": "msg",
244
+ "support_url": "support_url",
245
+ },
246
+ },
247
+ "block_page": {
248
+ "background_color": "background_color",
249
+ "enabled": True,
250
+ "footer_text": "--footer--",
251
+ "header_text": "--header--",
252
+ "include_context": True,
253
+ "logo_path": "https://logos.com/a.png",
254
+ "mailto_address": "admin@example.com",
255
+ "mailto_subject": "Blocked User Inquiry",
256
+ "mode": "",
257
+ "name": "Cloudflare",
258
+ "suppress_footer": False,
259
+ "target_uri": "https://example.com",
260
+ },
261
+ "body_scanning": {
262
+ "inspection_mode": "deep",
263
+ },
264
+ "browser_isolation": {
265
+ "non_identity_enabled": True,
266
+ "url_browser_isolation_enabled": True,
267
+ },
268
+ "certificate": {
269
+ "id": "d1b364c5-1311-466e-a194-f0e943e0799f",
270
+ },
271
+ "custom_certificate": {
272
+ "enabled": True,
273
+ "id": "d1b364c5-1311-466e-a194-f0e943e0799f",
274
+ },
275
+ "extended_email_matching": {
276
+ "enabled": True,
277
+ },
278
+ "fips": {
279
+ "tls": True,
280
+ },
281
+ "host_selector": {
282
+ "enabled": False,
283
+ },
284
+ "inspection": {
285
+ "mode": "static",
286
+ },
287
+ "protocol_detection": {
288
+ "enabled": True,
289
+ },
290
+ "sandbox": {
291
+ "enabled": True,
292
+ "fallback_action": "allow",
293
+ },
294
+ "tls_decrypt": {
295
+ "enabled": True,
296
+ },
297
+ })
298
+ ```
299
+
152
300
  ## Import
153
301
 
154
302
  ```sh