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
@@ -14,6 +14,7 @@ else:
14
14
  from typing_extensions import NotRequired, TypedDict, TypeAlias
15
15
  from . import _utilities
16
16
  from . import outputs
17
+ from ._inputs import *
17
18
 
18
19
  __all__ = [
19
20
  'GetZeroTrustDexTestResult',
@@ -166,6 +167,7 @@ class AwaitableGetZeroTrustDexTestResult(GetZeroTrustDexTestResult):
166
167
 
167
168
  def get_zero_trust_dex_test(account_id: Optional[_builtins.str] = None,
168
169
  dex_test_id: Optional[_builtins.str] = None,
170
+ target_policies: Optional[Sequence[Union['GetZeroTrustDexTestTargetPolicyArgs', 'GetZeroTrustDexTestTargetPolicyArgsDict']]] = None,
169
171
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetZeroTrustDexTestResult:
170
172
  """
171
173
  ## Example Usage
@@ -180,10 +182,12 @@ def get_zero_trust_dex_test(account_id: Optional[_builtins.str] = None,
180
182
 
181
183
 
182
184
  :param _builtins.str dex_test_id: The unique identifier for the test.
185
+ :param Sequence[Union['GetZeroTrustDexTestTargetPolicyArgs', 'GetZeroTrustDexTestTargetPolicyArgsDict']] target_policies: DEX rules targeted by this test
183
186
  """
184
187
  __args__ = dict()
185
188
  __args__['accountId'] = account_id
186
189
  __args__['dexTestId'] = dex_test_id
190
+ __args__['targetPolicies'] = target_policies
187
191
  opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
188
192
  __ret__ = pulumi.runtime.invoke('cloudflare:index/getZeroTrustDexTest:getZeroTrustDexTest', __args__, opts=opts, typ=GetZeroTrustDexTestResult).value
189
193
 
@@ -201,6 +205,7 @@ def get_zero_trust_dex_test(account_id: Optional[_builtins.str] = None,
201
205
  test_id=pulumi.get(__ret__, 'test_id'))
202
206
  def get_zero_trust_dex_test_output(account_id: Optional[pulumi.Input[_builtins.str]] = None,
203
207
  dex_test_id: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
208
+ target_policies: Optional[pulumi.Input[Optional[Sequence[Union['GetZeroTrustDexTestTargetPolicyArgs', 'GetZeroTrustDexTestTargetPolicyArgsDict']]]]] = None,
204
209
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetZeroTrustDexTestResult]:
205
210
  """
206
211
  ## Example Usage
@@ -215,10 +220,12 @@ def get_zero_trust_dex_test_output(account_id: Optional[pulumi.Input[_builtins.s
215
220
 
216
221
 
217
222
  :param _builtins.str dex_test_id: The unique identifier for the test.
223
+ :param Sequence[Union['GetZeroTrustDexTestTargetPolicyArgs', 'GetZeroTrustDexTestTargetPolicyArgsDict']] target_policies: DEX rules targeted by this test
218
224
  """
219
225
  __args__ = dict()
220
226
  __args__['accountId'] = account_id
221
227
  __args__['dexTestId'] = dex_test_id
228
+ __args__['targetPolicies'] = target_policies
222
229
  opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
223
230
  __ret__ = pulumi.runtime.invoke_output('cloudflare:index/getZeroTrustDexTest:getZeroTrustDexTest', __args__, opts=opts, typ=GetZeroTrustDexTestResult)
224
231
  return __ret__.apply(lambda __response__: GetZeroTrustDexTestResult(
@@ -158,7 +158,7 @@ class GetZeroTrustGatewayPolicyResult:
158
158
  @pulumi.getter
159
159
  def filters(self) -> Sequence[_builtins.str]:
160
160
  """
161
- Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions.
161
+ Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions. Can only contain a single value.
162
162
  """
163
163
  return pulumi.get(self, "filters")
164
164
 
@@ -27,7 +27,7 @@ class GetZeroTrustTunnelCloudflaredConfigResult:
27
27
  """
28
28
  A collection of values returned by getZeroTrustTunnelCloudflaredConfig.
29
29
  """
30
- def __init__(__self__, account_id=None, config=None, created_at=None, id=None, source=None, tunnel_id=None, version=None):
30
+ def __init__(__self__, account_id=None, config=None, created_at=None, id=None, source=None, tunnel_id=None, version=None, warp_routing_enabled=None):
31
31
  if account_id and not isinstance(account_id, str):
32
32
  raise TypeError("Expected argument 'account_id' to be a str")
33
33
  pulumi.set(__self__, "account_id", account_id)
@@ -49,6 +49,9 @@ class GetZeroTrustTunnelCloudflaredConfigResult:
49
49
  if version and not isinstance(version, int):
50
50
  raise TypeError("Expected argument 'version' to be a int")
51
51
  pulumi.set(__self__, "version", version)
52
+ if warp_routing_enabled and not isinstance(warp_routing_enabled, bool):
53
+ raise TypeError("Expected argument 'warp_routing_enabled' to be a bool")
54
+ pulumi.set(__self__, "warp_routing_enabled", warp_routing_enabled)
52
55
 
53
56
  @_builtins.property
54
57
  @pulumi.getter(name="accountId")
@@ -104,6 +107,14 @@ class GetZeroTrustTunnelCloudflaredConfigResult:
104
107
  """
105
108
  return pulumi.get(self, "version")
106
109
 
110
+ @_builtins.property
111
+ @pulumi.getter(name="warpRoutingEnabled")
112
+ def warp_routing_enabled(self) -> _builtins.bool:
113
+ """
114
+ Enable private network access from WARP users to private network routes. This is enabled if the tunnel has an assigned route.
115
+ """
116
+ return pulumi.get(self, "warp_routing_enabled")
117
+
107
118
 
108
119
  class AwaitableGetZeroTrustTunnelCloudflaredConfigResult(GetZeroTrustTunnelCloudflaredConfigResult):
109
120
  # pylint: disable=using-constant-test
@@ -117,7 +128,8 @@ class AwaitableGetZeroTrustTunnelCloudflaredConfigResult(GetZeroTrustTunnelCloud
117
128
  id=self.id,
118
129
  source=self.source,
119
130
  tunnel_id=self.tunnel_id,
120
- version=self.version)
131
+ version=self.version,
132
+ warp_routing_enabled=self.warp_routing_enabled)
121
133
 
122
134
 
123
135
  def get_zero_trust_tunnel_cloudflared_config(account_id: Optional[_builtins.str] = None,
@@ -151,7 +163,8 @@ def get_zero_trust_tunnel_cloudflared_config(account_id: Optional[_builtins.str]
151
163
  id=pulumi.get(__ret__, 'id'),
152
164
  source=pulumi.get(__ret__, 'source'),
153
165
  tunnel_id=pulumi.get(__ret__, 'tunnel_id'),
154
- version=pulumi.get(__ret__, 'version'))
166
+ version=pulumi.get(__ret__, 'version'),
167
+ warp_routing_enabled=pulumi.get(__ret__, 'warp_routing_enabled'))
155
168
  def get_zero_trust_tunnel_cloudflared_config_output(account_id: Optional[pulumi.Input[_builtins.str]] = None,
156
169
  tunnel_id: Optional[pulumi.Input[_builtins.str]] = None,
157
170
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetZeroTrustTunnelCloudflaredConfigResult]:
@@ -182,4 +195,5 @@ def get_zero_trust_tunnel_cloudflared_config_output(account_id: Optional[pulumi.
182
195
  id=pulumi.get(__response__, 'id'),
183
196
  source=pulumi.get(__response__, 'source'),
184
197
  tunnel_id=pulumi.get(__response__, 'tunnel_id'),
185
- version=pulumi.get(__response__, 'version')))
198
+ version=pulumi.get(__response__, 'version'),
199
+ warp_routing_enabled=pulumi.get(__response__, 'warp_routing_enabled')))
@@ -561,6 +561,48 @@ class Healthcheck(pulumi.CustomResource):
561
561
  """
562
562
  ## Example Usage
563
563
 
564
+ ```python
565
+ import pulumi
566
+ import pulumi_cloudflare as cloudflare
567
+
568
+ example_healthcheck = cloudflare.Healthcheck("example_healthcheck",
569
+ zone_id="023e105f4ecef8ad9ca31a8372d0c353",
570
+ address="www.example.com",
571
+ name="server-1",
572
+ check_regions=[
573
+ "WEU",
574
+ "ENAM",
575
+ ],
576
+ consecutive_fails=0,
577
+ consecutive_successes=0,
578
+ description="Health check for www.example.com",
579
+ http_config={
580
+ "allow_insecure": True,
581
+ "expected_body": "success",
582
+ "expected_codes": [
583
+ "2xx",
584
+ "302",
585
+ ],
586
+ "follow_redirects": True,
587
+ "header": {
588
+ "Host": ["example.com"],
589
+ "X-App-ID": ["abc123"],
590
+ },
591
+ "method": "GET",
592
+ "path": "/health",
593
+ "port": 0,
594
+ },
595
+ interval=0,
596
+ retries=0,
597
+ suspended=True,
598
+ tcp_config={
599
+ "method": "connection_established",
600
+ "port": 0,
601
+ },
602
+ timeout=0,
603
+ type="HTTPS")
604
+ ```
605
+
564
606
  ## Import
565
607
 
566
608
  ```sh
@@ -593,6 +635,48 @@ class Healthcheck(pulumi.CustomResource):
593
635
  """
594
636
  ## Example Usage
595
637
 
638
+ ```python
639
+ import pulumi
640
+ import pulumi_cloudflare as cloudflare
641
+
642
+ example_healthcheck = cloudflare.Healthcheck("example_healthcheck",
643
+ zone_id="023e105f4ecef8ad9ca31a8372d0c353",
644
+ address="www.example.com",
645
+ name="server-1",
646
+ check_regions=[
647
+ "WEU",
648
+ "ENAM",
649
+ ],
650
+ consecutive_fails=0,
651
+ consecutive_successes=0,
652
+ description="Health check for www.example.com",
653
+ http_config={
654
+ "allow_insecure": True,
655
+ "expected_body": "success",
656
+ "expected_codes": [
657
+ "2xx",
658
+ "302",
659
+ ],
660
+ "follow_redirects": True,
661
+ "header": {
662
+ "Host": ["example.com"],
663
+ "X-App-ID": ["abc123"],
664
+ },
665
+ "method": "GET",
666
+ "path": "/health",
667
+ "port": 0,
668
+ },
669
+ interval=0,
670
+ retries=0,
671
+ suspended=True,
672
+ tcp_config={
673
+ "method": "connection_established",
674
+ "port": 0,
675
+ },
676
+ timeout=0,
677
+ type="HTTPS")
678
+ ```
679
+
596
680
  ## Import
597
681
 
598
682
  ```sh
@@ -239,6 +239,32 @@ class HyperdriveConfig(pulumi.CustomResource):
239
239
  """
240
240
  ## Example Usage
241
241
 
242
+ ```python
243
+ import pulumi
244
+ import pulumi_cloudflare as cloudflare
245
+
246
+ example_hyperdrive_config = cloudflare.HyperdriveConfig("example_hyperdrive_config",
247
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
248
+ name="example-hyperdrive",
249
+ origin={
250
+ "database": "postgres",
251
+ "host": "database.example.com",
252
+ "password": "password",
253
+ "port": 5432,
254
+ "scheme": "postgres",
255
+ "user": "postgres",
256
+ },
257
+ caching={
258
+ "disabled": True,
259
+ },
260
+ mtls={
261
+ "ca_certificate_id": "00000000-0000-0000-0000-0000000000",
262
+ "mtls_certificate_id": "00000000-0000-0000-0000-0000000000",
263
+ "sslmode": "verify-full",
264
+ },
265
+ origin_connection_limit=60)
266
+ ```
267
+
242
268
  ## Import
243
269
 
244
270
  ```sh
@@ -259,6 +285,32 @@ class HyperdriveConfig(pulumi.CustomResource):
259
285
  """
260
286
  ## Example Usage
261
287
 
288
+ ```python
289
+ import pulumi
290
+ import pulumi_cloudflare as cloudflare
291
+
292
+ example_hyperdrive_config = cloudflare.HyperdriveConfig("example_hyperdrive_config",
293
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
294
+ name="example-hyperdrive",
295
+ origin={
296
+ "database": "postgres",
297
+ "host": "database.example.com",
298
+ "password": "password",
299
+ "port": 5432,
300
+ "scheme": "postgres",
301
+ "user": "postgres",
302
+ },
303
+ caching={
304
+ "disabled": True,
305
+ },
306
+ mtls={
307
+ "ca_certificate_id": "00000000-0000-0000-0000-0000000000",
308
+ "mtls_certificate_id": "00000000-0000-0000-0000-0000000000",
309
+ "sslmode": "verify-full",
310
+ },
311
+ origin_connection_limit=60)
312
+ ```
313
+
262
314
  ## Import
263
315
 
264
316
  ```sh
@@ -383,6 +383,23 @@ class KeylessCertificate(pulumi.CustomResource):
383
383
  """
384
384
  ## Example Usage
385
385
 
386
+ ```python
387
+ import pulumi
388
+ import pulumi_cloudflare as cloudflare
389
+
390
+ example_keyless_certificate = cloudflare.KeylessCertificate("example_keyless_certificate",
391
+ zone_id="023e105f4ecef8ad9ca31a8372d0c353",
392
+ certificate="-----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIJAM15n7fdxhRtMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV BAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX aWRnaXRzIFB0eSBMdGQwHhcNMTQwMzExMTkyMTU5WhcNMTQwNDEwMTkyMTU5WjBF MQswCQYDVQQGEwJVUzETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAvq3sKsHpeduJHimOK+fvQdKsI8z8A05MZyyLp2/R/GE8FjNv+hkVY1WQ LIyTNNQH7CJecE1nbTfo8Y56S7x/rhxC6/DJ8MIulapFPnorq46KU6yRxiM0MQ3N nTJHlHA2ozZta6YBBfVfhHWl1F0IfNbXCLKvGwWWMbCx43OfW6KTkbRnE6gFWKuO fSO5h2u5TaWVuSIzBvYs7Vza6m+gtYAvKAJV2nSZ+eSEFPDo29corOy8+huEOUL8 5FAw4BFPsr1TlrlGPFitduQUHGrSL7skk1ESGza0to3bOtrodKei2s9bk5MXm7lZ qI+WZJX4Zu9+mzZhc9pCVi8r/qlXuQIDAQABo4GnMIGkMB0GA1UdDgQWBBRvavf+ sWM4IwKiH9X9w1vl6nUVRDB1BgNVHSMEbjBsgBRvavf+sWM4IwKiH9X9w1vl6nUV RKFJpEcwRTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAM15n7fdxhRtMAwGA1UdEwQF MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBABY2ZzBaW0dMsAAT7tPJzrVWVzQx6KU4 UEBLudIlWPlkAwTnINCWR/8eNjCCmGA4heUdHmazdpPa8RzwOmc0NT1NQqzSyktt vTqb4iHD7+8f9MqJ9/FssCfTtqr/Qst/hGH4Wmdf1EJ/6FqYAAb5iRlPgshFZxU8 uXtA8hWn6fK6eISD9HBdcAFToUvKNZ1BIDPvh9f95Ine8ar6yGd56TUNrHR8eHBs ESxz5ddVR/oWRysNJ+aGAyYqHS8S/ttmC7r4XCAHqXptkHPCGRqkAhsterYhd4I8 /cBzejUobNCjjHFbtkAL/SjxZOLW+pNkZwfeYdM8iPkD54Uua1v2tdw= -----END CERTIFICATE-----",
393
+ host="example.com",
394
+ port=24008,
395
+ bundle_method="ubiquitous",
396
+ name="example.com Keyless SSL",
397
+ tunnel={
398
+ "private_ip": "10.0.0.1",
399
+ "vnet_id": "7365377a-85a4-4390-9480-531ef7dc7a3c",
400
+ })
401
+ ```
402
+
386
403
  ## Import
387
404
 
388
405
  ```sh
@@ -410,6 +427,23 @@ class KeylessCertificate(pulumi.CustomResource):
410
427
  """
411
428
  ## Example Usage
412
429
 
430
+ ```python
431
+ import pulumi
432
+ import pulumi_cloudflare as cloudflare
433
+
434
+ example_keyless_certificate = cloudflare.KeylessCertificate("example_keyless_certificate",
435
+ zone_id="023e105f4ecef8ad9ca31a8372d0c353",
436
+ certificate="-----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIJAM15n7fdxhRtMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV BAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX aWRnaXRzIFB0eSBMdGQwHhcNMTQwMzExMTkyMTU5WhcNMTQwNDEwMTkyMTU5WjBF MQswCQYDVQQGEwJVUzETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAvq3sKsHpeduJHimOK+fvQdKsI8z8A05MZyyLp2/R/GE8FjNv+hkVY1WQ LIyTNNQH7CJecE1nbTfo8Y56S7x/rhxC6/DJ8MIulapFPnorq46KU6yRxiM0MQ3N nTJHlHA2ozZta6YBBfVfhHWl1F0IfNbXCLKvGwWWMbCx43OfW6KTkbRnE6gFWKuO fSO5h2u5TaWVuSIzBvYs7Vza6m+gtYAvKAJV2nSZ+eSEFPDo29corOy8+huEOUL8 5FAw4BFPsr1TlrlGPFitduQUHGrSL7skk1ESGza0to3bOtrodKei2s9bk5MXm7lZ qI+WZJX4Zu9+mzZhc9pCVi8r/qlXuQIDAQABo4GnMIGkMB0GA1UdDgQWBBRvavf+ sWM4IwKiH9X9w1vl6nUVRDB1BgNVHSMEbjBsgBRvavf+sWM4IwKiH9X9w1vl6nUV RKFJpEcwRTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAM15n7fdxhRtMAwGA1UdEwQF MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBABY2ZzBaW0dMsAAT7tPJzrVWVzQx6KU4 UEBLudIlWPlkAwTnINCWR/8eNjCCmGA4heUdHmazdpPa8RzwOmc0NT1NQqzSyktt vTqb4iHD7+8f9MqJ9/FssCfTtqr/Qst/hGH4Wmdf1EJ/6FqYAAb5iRlPgshFZxU8 uXtA8hWn6fK6eISD9HBdcAFToUvKNZ1BIDPvh9f95Ine8ar6yGd56TUNrHR8eHBs ESxz5ddVR/oWRysNJ+aGAyYqHS8S/ttmC7r4XCAHqXptkHPCGRqkAhsterYhd4I8 /cBzejUobNCjjHFbtkAL/SjxZOLW+pNkZwfeYdM8iPkD54Uua1v2tdw= -----END CERTIFICATE-----",
437
+ host="example.com",
438
+ port=24008,
439
+ bundle_method="ubiquitous",
440
+ name="example.com Keyless SSL",
441
+ tunnel={
442
+ "private_ip": "10.0.0.1",
443
+ "vnet_id": "7365377a-85a4-4390-9480-531ef7dc7a3c",
444
+ })
445
+ ```
446
+
413
447
  ## Import
414
448
 
415
449
  ```sh
@@ -341,6 +341,14 @@ class ListItem(pulumi.CustomResource):
341
341
  $ pulumi import cloudflare:index/listItem:ListItem example '<account_id>/<list_id>/<item_id>'
342
342
  ```
343
343
 
344
+ ```sh
345
+ $ pulumi import cloudflare:index/listItem:ListItem example '<account_id>/<list_id>/<item_id>'
346
+ ```
347
+
348
+ ```sh
349
+ $ pulumi import cloudflare:index/listItem:ListItem example '<account_id>/<list_id>/<item_id>'
350
+ ```
351
+
344
352
  :param str resource_name: The name of the resource.
345
353
  :param pulumi.ResourceOptions opts: Options for the resource.
346
354
  :param pulumi.Input[_builtins.str] account_id: The Account ID for this resource.
@@ -380,6 +388,14 @@ class ListItem(pulumi.CustomResource):
380
388
  $ pulumi import cloudflare:index/listItem:ListItem example '<account_id>/<list_id>/<item_id>'
381
389
  ```
382
390
 
391
+ ```sh
392
+ $ pulumi import cloudflare:index/listItem:ListItem example '<account_id>/<list_id>/<item_id>'
393
+ ```
394
+
395
+ ```sh
396
+ $ pulumi import cloudflare:index/listItem:ListItem example '<account_id>/<list_id>/<item_id>'
397
+ ```
398
+
383
399
  :param str resource_name: The name of the resource.
384
400
  :param ListItemInitArgs args: The arguments to use to populate this resource's properties.
385
401
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -732,6 +732,147 @@ class LoadBalancer(pulumi.CustomResource):
732
732
  """
733
733
  ## Example Usage
734
734
 
735
+ ```python
736
+ import pulumi
737
+ import pulumi_cloudflare as cloudflare
738
+
739
+ example_load_balancer = cloudflare.LoadBalancer("example_load_balancer",
740
+ zone_id="699d98642c564d2e855e9661899b7252",
741
+ default_pools=[
742
+ "17b5962d775c646f3f9725cbc7a53df4",
743
+ "9290f38c5d07c2e2f4df57b1f61d4196",
744
+ "00920f38ce07c2e2f4df50b1f61d4194",
745
+ ],
746
+ fallback_pool="fallback_pool",
747
+ name="www.example.com",
748
+ adaptive_routing={
749
+ "failover_across_pools": True,
750
+ },
751
+ country_pools={
752
+ "GB": ["abd90f38ced07c2e2f4df50b1f61d4194"],
753
+ "US": [
754
+ "de90f38ced07c2e2f4df50b1f61d4194",
755
+ "00920f38ce07c2e2f4df50b1f61d4194",
756
+ ],
757
+ },
758
+ description="Load Balancer for www.example.com",
759
+ location_strategy={
760
+ "mode": "resolver_ip",
761
+ "prefer_ecs": "always",
762
+ },
763
+ networks=["string"],
764
+ pop_pools={
765
+ "LAX": [
766
+ "de90f38ced07c2e2f4df50b1f61d4194",
767
+ "9290f38c5d07c2e2f4df57b1f61d4196",
768
+ ],
769
+ "LHR": [
770
+ "abd90f38ced07c2e2f4df50b1f61d4194",
771
+ "f9138c5d07c2e2f4df57b1f61d4196",
772
+ ],
773
+ "SJC": ["00920f38ce07c2e2f4df50b1f61d4194"],
774
+ },
775
+ proxied=True,
776
+ random_steering={
777
+ "default_weight": 0.2,
778
+ "pool_weights": {
779
+ "9290f38c5d07c2e2f4df57b1f61d4196": 0.5,
780
+ "de90f38ced07c2e2f4df50b1f61d4194": 0.3,
781
+ },
782
+ },
783
+ region_pools={
784
+ "ENAM": ["00920f38ce07c2e2f4df50b1f61d4194"],
785
+ "WNAM": [
786
+ "de90f38ced07c2e2f4df50b1f61d4194",
787
+ "9290f38c5d07c2e2f4df57b1f61d4196",
788
+ ],
789
+ },
790
+ rules=[{
791
+ "condition": "http.request.uri.path contains \\"/testing\\"",
792
+ "disabled": True,
793
+ "fixed_response": {
794
+ "content_type": "application/json",
795
+ "location": "www.example.com",
796
+ "message_body": "Testing Hello",
797
+ "status_code": 0,
798
+ },
799
+ "name": "route the path /testing to testing datacenter.",
800
+ "overrides": {
801
+ "adaptive_routing": {
802
+ "failover_across_pools": True,
803
+ },
804
+ "country_pools": {
805
+ "GB": ["abd90f38ced07c2e2f4df50b1f61d4194"],
806
+ "US": [
807
+ "de90f38ced07c2e2f4df50b1f61d4194",
808
+ "00920f38ce07c2e2f4df50b1f61d4194",
809
+ ],
810
+ },
811
+ "default_pools": [
812
+ "17b5962d775c646f3f9725cbc7a53df4",
813
+ "9290f38c5d07c2e2f4df57b1f61d4196",
814
+ "00920f38ce07c2e2f4df50b1f61d4194",
815
+ ],
816
+ "fallback_pool": "fallback_pool",
817
+ "location_strategy": {
818
+ "mode": "resolver_ip",
819
+ "prefer_ecs": "always",
820
+ },
821
+ "pop_pools": {
822
+ "LAX": [
823
+ "de90f38ced07c2e2f4df50b1f61d4194",
824
+ "9290f38c5d07c2e2f4df57b1f61d4196",
825
+ ],
826
+ "LHR": [
827
+ "abd90f38ced07c2e2f4df50b1f61d4194",
828
+ "f9138c5d07c2e2f4df57b1f61d4196",
829
+ ],
830
+ "SJC": ["00920f38ce07c2e2f4df50b1f61d4194"],
831
+ },
832
+ "random_steering": {
833
+ "default_weight": 0.2,
834
+ "pool_weights": {
835
+ "9290f38c5d07c2e2f4df57b1f61d4196": 0.5,
836
+ "de90f38ced07c2e2f4df50b1f61d4194": 0.3,
837
+ },
838
+ },
839
+ "region_pools": {
840
+ "ENAM": ["00920f38ce07c2e2f4df50b1f61d4194"],
841
+ "WNAM": [
842
+ "de90f38ced07c2e2f4df50b1f61d4194",
843
+ "9290f38c5d07c2e2f4df57b1f61d4196",
844
+ ],
845
+ },
846
+ "session_affinity": "cookie",
847
+ "session_affinity_attributes": {
848
+ "drain_duration": 100,
849
+ "headers": ["x"],
850
+ "require_all_headers": True,
851
+ "samesite": "Auto",
852
+ "secure": "Auto",
853
+ "zero_downtime_failover": "sticky",
854
+ },
855
+ "session_affinity_ttl": 1800,
856
+ "steering_policy": "dynamic_latency",
857
+ "ttl": 30,
858
+ },
859
+ "priority": 0,
860
+ "terminates": True,
861
+ }],
862
+ session_affinity="cookie",
863
+ session_affinity_attributes={
864
+ "drain_duration": 100,
865
+ "headers": ["x"],
866
+ "require_all_headers": True,
867
+ "samesite": "Auto",
868
+ "secure": "Auto",
869
+ "zero_downtime_failover": "sticky",
870
+ },
871
+ session_affinity_ttl=1800,
872
+ steering_policy="dynamic_latency",
873
+ ttl=30)
874
+ ```
875
+
735
876
  ## Import
736
877
 
737
878
  ```sh
@@ -770,6 +911,147 @@ class LoadBalancer(pulumi.CustomResource):
770
911
  """
771
912
  ## Example Usage
772
913
 
914
+ ```python
915
+ import pulumi
916
+ import pulumi_cloudflare as cloudflare
917
+
918
+ example_load_balancer = cloudflare.LoadBalancer("example_load_balancer",
919
+ zone_id="699d98642c564d2e855e9661899b7252",
920
+ default_pools=[
921
+ "17b5962d775c646f3f9725cbc7a53df4",
922
+ "9290f38c5d07c2e2f4df57b1f61d4196",
923
+ "00920f38ce07c2e2f4df50b1f61d4194",
924
+ ],
925
+ fallback_pool="fallback_pool",
926
+ name="www.example.com",
927
+ adaptive_routing={
928
+ "failover_across_pools": True,
929
+ },
930
+ country_pools={
931
+ "GB": ["abd90f38ced07c2e2f4df50b1f61d4194"],
932
+ "US": [
933
+ "de90f38ced07c2e2f4df50b1f61d4194",
934
+ "00920f38ce07c2e2f4df50b1f61d4194",
935
+ ],
936
+ },
937
+ description="Load Balancer for www.example.com",
938
+ location_strategy={
939
+ "mode": "resolver_ip",
940
+ "prefer_ecs": "always",
941
+ },
942
+ networks=["string"],
943
+ pop_pools={
944
+ "LAX": [
945
+ "de90f38ced07c2e2f4df50b1f61d4194",
946
+ "9290f38c5d07c2e2f4df57b1f61d4196",
947
+ ],
948
+ "LHR": [
949
+ "abd90f38ced07c2e2f4df50b1f61d4194",
950
+ "f9138c5d07c2e2f4df57b1f61d4196",
951
+ ],
952
+ "SJC": ["00920f38ce07c2e2f4df50b1f61d4194"],
953
+ },
954
+ proxied=True,
955
+ random_steering={
956
+ "default_weight": 0.2,
957
+ "pool_weights": {
958
+ "9290f38c5d07c2e2f4df57b1f61d4196": 0.5,
959
+ "de90f38ced07c2e2f4df50b1f61d4194": 0.3,
960
+ },
961
+ },
962
+ region_pools={
963
+ "ENAM": ["00920f38ce07c2e2f4df50b1f61d4194"],
964
+ "WNAM": [
965
+ "de90f38ced07c2e2f4df50b1f61d4194",
966
+ "9290f38c5d07c2e2f4df57b1f61d4196",
967
+ ],
968
+ },
969
+ rules=[{
970
+ "condition": "http.request.uri.path contains \\"/testing\\"",
971
+ "disabled": True,
972
+ "fixed_response": {
973
+ "content_type": "application/json",
974
+ "location": "www.example.com",
975
+ "message_body": "Testing Hello",
976
+ "status_code": 0,
977
+ },
978
+ "name": "route the path /testing to testing datacenter.",
979
+ "overrides": {
980
+ "adaptive_routing": {
981
+ "failover_across_pools": True,
982
+ },
983
+ "country_pools": {
984
+ "GB": ["abd90f38ced07c2e2f4df50b1f61d4194"],
985
+ "US": [
986
+ "de90f38ced07c2e2f4df50b1f61d4194",
987
+ "00920f38ce07c2e2f4df50b1f61d4194",
988
+ ],
989
+ },
990
+ "default_pools": [
991
+ "17b5962d775c646f3f9725cbc7a53df4",
992
+ "9290f38c5d07c2e2f4df57b1f61d4196",
993
+ "00920f38ce07c2e2f4df50b1f61d4194",
994
+ ],
995
+ "fallback_pool": "fallback_pool",
996
+ "location_strategy": {
997
+ "mode": "resolver_ip",
998
+ "prefer_ecs": "always",
999
+ },
1000
+ "pop_pools": {
1001
+ "LAX": [
1002
+ "de90f38ced07c2e2f4df50b1f61d4194",
1003
+ "9290f38c5d07c2e2f4df57b1f61d4196",
1004
+ ],
1005
+ "LHR": [
1006
+ "abd90f38ced07c2e2f4df50b1f61d4194",
1007
+ "f9138c5d07c2e2f4df57b1f61d4196",
1008
+ ],
1009
+ "SJC": ["00920f38ce07c2e2f4df50b1f61d4194"],
1010
+ },
1011
+ "random_steering": {
1012
+ "default_weight": 0.2,
1013
+ "pool_weights": {
1014
+ "9290f38c5d07c2e2f4df57b1f61d4196": 0.5,
1015
+ "de90f38ced07c2e2f4df50b1f61d4194": 0.3,
1016
+ },
1017
+ },
1018
+ "region_pools": {
1019
+ "ENAM": ["00920f38ce07c2e2f4df50b1f61d4194"],
1020
+ "WNAM": [
1021
+ "de90f38ced07c2e2f4df50b1f61d4194",
1022
+ "9290f38c5d07c2e2f4df57b1f61d4196",
1023
+ ],
1024
+ },
1025
+ "session_affinity": "cookie",
1026
+ "session_affinity_attributes": {
1027
+ "drain_duration": 100,
1028
+ "headers": ["x"],
1029
+ "require_all_headers": True,
1030
+ "samesite": "Auto",
1031
+ "secure": "Auto",
1032
+ "zero_downtime_failover": "sticky",
1033
+ },
1034
+ "session_affinity_ttl": 1800,
1035
+ "steering_policy": "dynamic_latency",
1036
+ "ttl": 30,
1037
+ },
1038
+ "priority": 0,
1039
+ "terminates": True,
1040
+ }],
1041
+ session_affinity="cookie",
1042
+ session_affinity_attributes={
1043
+ "drain_duration": 100,
1044
+ "headers": ["x"],
1045
+ "require_all_headers": True,
1046
+ "samesite": "Auto",
1047
+ "secure": "Auto",
1048
+ "zero_downtime_failover": "sticky",
1049
+ },
1050
+ session_affinity_ttl=1800,
1051
+ steering_policy="dynamic_latency",
1052
+ ttl=30)
1053
+ ```
1054
+
773
1055
  ## Import
774
1056
 
775
1057
  ```sh