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
@@ -42,7 +42,7 @@ class TeamsRuleArgs:
42
42
  :param pulumi.Input[_builtins.str] description: Specify the rule description.
43
43
  :param pulumi.Input[_builtins.bool] enabled: Specify whether the rule is enabled.
44
44
  :param pulumi.Input['TeamsRuleExpirationArgs'] expiration: Defines the expiration time stamp and default duration of a DNS policy. Takes precedence over the policy's `schedule` configuration, if any. This does not apply to HTTP or network policies. Settable only for `dns` rules.
45
- :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] filters: Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions.
45
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] filters: Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions. Can only contain a single value.
46
46
  :param pulumi.Input['TeamsRuleScheduleArgs'] schedule: Defines the schedule for activating DNS policies. Settable only for `dns` and `dns_resolver` rules.
47
47
  """
48
48
  pulumi.set(__self__, "account_id", account_id)
@@ -152,7 +152,7 @@ class TeamsRuleArgs:
152
152
  @pulumi.getter
153
153
  def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
154
154
  """
155
- Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions.
155
+ Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions. Can only contain a single value.
156
156
  """
157
157
  return pulumi.get(self, "filters")
158
158
 
@@ -241,7 +241,7 @@ class _TeamsRuleState:
241
241
  :param pulumi.Input[_builtins.str] description: Specify the rule description.
242
242
  :param pulumi.Input[_builtins.bool] enabled: Specify whether the rule is enabled.
243
243
  :param pulumi.Input['TeamsRuleExpirationArgs'] expiration: Defines the expiration time stamp and default duration of a DNS policy. Takes precedence over the policy's `schedule` configuration, if any. This does not apply to HTTP or network policies. Settable only for `dns` rules.
244
- :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] filters: Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions.
244
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] filters: Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions. Can only contain a single value.
245
245
  :param pulumi.Input[_builtins.str] name: Specify the rule name.
246
246
  :param pulumi.Input[_builtins.bool] read_only: Indicate that this rule is shared via the Orgs API and read only.
247
247
  :param pulumi.Input['TeamsRuleScheduleArgs'] schedule: Defines the schedule for activating DNS policies. Settable only for `dns` and `dns_resolver` rules.
@@ -385,7 +385,7 @@ class _TeamsRuleState:
385
385
  @pulumi.getter
386
386
  def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
387
387
  """
388
- Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions.
388
+ Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions. Can only contain a single value.
389
389
  """
390
390
  return pulumi.get(self, "filters")
391
391
 
@@ -551,6 +551,132 @@ class TeamsRule(pulumi.CustomResource):
551
551
  """
552
552
  ## Example Usage
553
553
 
554
+ ```python
555
+ import pulumi
556
+ import pulumi_cloudflare as cloudflare
557
+
558
+ example_zero_trust_gateway_policy = cloudflare.ZeroTrustGatewayPolicy("example_zero_trust_gateway_policy",
559
+ account_id="699d98642c564d2e855e9661899b7252",
560
+ action="allow",
561
+ name="block bad websites",
562
+ description="Block bad websites based on their host name.",
563
+ device_posture="any(device_posture.checks.passed[*] in {\\"1308749e-fcfb-4ebc-b051-fe022b632644\\"})",
564
+ enabled=True,
565
+ expiration={
566
+ "expires_at": "2014-01-01T05:20:20Z",
567
+ "duration": 10,
568
+ },
569
+ filters=["http"],
570
+ identity="any(identity.groups.name[*] in {\\"finance\\"})",
571
+ precedence=0,
572
+ rule_settings={
573
+ "add_headers": {
574
+ "My-Next-Header": [
575
+ "foo",
576
+ "bar",
577
+ ],
578
+ "X-Custom-Header-Name": ["somecustomvalue"],
579
+ },
580
+ "allow_child_bypass": False,
581
+ "audit_ssh": {
582
+ "command_logging": False,
583
+ },
584
+ "biso_admin_controls": {
585
+ "copy": "remote_only",
586
+ "dcp": True,
587
+ "dd": True,
588
+ "dk": True,
589
+ "download": "enabled",
590
+ "dp": False,
591
+ "du": True,
592
+ "keyboard": "enabled",
593
+ "paste": "enabled",
594
+ "printing": "enabled",
595
+ "upload": "enabled",
596
+ "version": "v1",
597
+ },
598
+ "block_page": {
599
+ "target_uri": "https://example.com",
600
+ "include_context": True,
601
+ },
602
+ "block_page_enabled": True,
603
+ "block_reason": "This website is a security risk",
604
+ "bypass_parent_rule": False,
605
+ "check_session": {
606
+ "duration": "300s",
607
+ "enforce": True,
608
+ },
609
+ "dns_resolvers": {
610
+ "ipv4s": [{
611
+ "ip": "2.2.2.2",
612
+ "port": 5053,
613
+ "route_through_private_network": True,
614
+ "vnet_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
615
+ }],
616
+ "ipv6s": [{
617
+ "ip": "2001:DB8::",
618
+ "port": 5053,
619
+ "route_through_private_network": True,
620
+ "vnet_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
621
+ }],
622
+ },
623
+ "egress": {
624
+ "ipv4": "192.0.2.2",
625
+ "ipv4_fallback": "192.0.2.3",
626
+ "ipv6": "2001:DB8::/64",
627
+ },
628
+ "ignore_cname_category_matches": True,
629
+ "insecure_disable_dnssec_validation": False,
630
+ "ip_categories": True,
631
+ "ip_indicator_feeds": True,
632
+ "l4override": {
633
+ "ip": "1.1.1.1",
634
+ "port": 0,
635
+ },
636
+ "notification_settings": {
637
+ "enabled": True,
638
+ "include_context": True,
639
+ "msg": "msg",
640
+ "support_url": "support_url",
641
+ },
642
+ "override_host": "example.com",
643
+ "override_ips": [
644
+ "1.1.1.1",
645
+ "2.2.2.2",
646
+ ],
647
+ "payload_log": {
648
+ "enabled": True,
649
+ },
650
+ "quarantine": {
651
+ "file_types": ["exe"],
652
+ },
653
+ "redirect": {
654
+ "target_uri": "https://example.com",
655
+ "include_context": True,
656
+ "preserve_path_and_query": True,
657
+ },
658
+ "resolve_dns_internally": {
659
+ "fallback": "none",
660
+ "view_id": "view_id",
661
+ },
662
+ "resolve_dns_through_cloudflare": True,
663
+ "untrusted_cert": {
664
+ "action": "error",
665
+ },
666
+ },
667
+ schedule={
668
+ "fri": "08:00-12:30,13:30-17:00",
669
+ "mon": "08:00-12:30,13:30-17:00",
670
+ "sat": "08:00-12:30,13:30-17:00",
671
+ "sun": "08:00-12:30,13:30-17:00",
672
+ "thu": "08:00-12:30,13:30-17:00",
673
+ "time_zone": "America/New York",
674
+ "tue": "08:00-12:30,13:30-17:00",
675
+ "wed": "08:00-12:30,13:30-17:00",
676
+ },
677
+ traffic="http.request.uri matches \\".*a/partial/uri.*\\" and http.request.host in $01302951-49f9-47c9-a400-0297e60b6a10")
678
+ ```
679
+
554
680
  ## Import
555
681
 
556
682
  ```sh
@@ -564,7 +690,7 @@ class TeamsRule(pulumi.CustomResource):
564
690
  :param pulumi.Input[_builtins.str] description: Specify the rule description.
565
691
  :param pulumi.Input[_builtins.bool] enabled: Specify whether the rule is enabled.
566
692
  :param pulumi.Input[Union['TeamsRuleExpirationArgs', 'TeamsRuleExpirationArgsDict']] expiration: Defines the expiration time stamp and default duration of a DNS policy. Takes precedence over the policy's `schedule` configuration, if any. This does not apply to HTTP or network policies. Settable only for `dns` rules.
567
- :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] filters: Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions.
693
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] filters: Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions. Can only contain a single value.
568
694
  :param pulumi.Input[_builtins.str] name: Specify the rule name.
569
695
  :param pulumi.Input[Union['TeamsRuleScheduleArgs', 'TeamsRuleScheduleArgsDict']] schedule: Defines the schedule for activating DNS policies. Settable only for `dns` and `dns_resolver` rules.
570
696
  """
@@ -577,6 +703,132 @@ class TeamsRule(pulumi.CustomResource):
577
703
  """
578
704
  ## Example Usage
579
705
 
706
+ ```python
707
+ import pulumi
708
+ import pulumi_cloudflare as cloudflare
709
+
710
+ example_zero_trust_gateway_policy = cloudflare.ZeroTrustGatewayPolicy("example_zero_trust_gateway_policy",
711
+ account_id="699d98642c564d2e855e9661899b7252",
712
+ action="allow",
713
+ name="block bad websites",
714
+ description="Block bad websites based on their host name.",
715
+ device_posture="any(device_posture.checks.passed[*] in {\\"1308749e-fcfb-4ebc-b051-fe022b632644\\"})",
716
+ enabled=True,
717
+ expiration={
718
+ "expires_at": "2014-01-01T05:20:20Z",
719
+ "duration": 10,
720
+ },
721
+ filters=["http"],
722
+ identity="any(identity.groups.name[*] in {\\"finance\\"})",
723
+ precedence=0,
724
+ rule_settings={
725
+ "add_headers": {
726
+ "My-Next-Header": [
727
+ "foo",
728
+ "bar",
729
+ ],
730
+ "X-Custom-Header-Name": ["somecustomvalue"],
731
+ },
732
+ "allow_child_bypass": False,
733
+ "audit_ssh": {
734
+ "command_logging": False,
735
+ },
736
+ "biso_admin_controls": {
737
+ "copy": "remote_only",
738
+ "dcp": True,
739
+ "dd": True,
740
+ "dk": True,
741
+ "download": "enabled",
742
+ "dp": False,
743
+ "du": True,
744
+ "keyboard": "enabled",
745
+ "paste": "enabled",
746
+ "printing": "enabled",
747
+ "upload": "enabled",
748
+ "version": "v1",
749
+ },
750
+ "block_page": {
751
+ "target_uri": "https://example.com",
752
+ "include_context": True,
753
+ },
754
+ "block_page_enabled": True,
755
+ "block_reason": "This website is a security risk",
756
+ "bypass_parent_rule": False,
757
+ "check_session": {
758
+ "duration": "300s",
759
+ "enforce": True,
760
+ },
761
+ "dns_resolvers": {
762
+ "ipv4s": [{
763
+ "ip": "2.2.2.2",
764
+ "port": 5053,
765
+ "route_through_private_network": True,
766
+ "vnet_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
767
+ }],
768
+ "ipv6s": [{
769
+ "ip": "2001:DB8::",
770
+ "port": 5053,
771
+ "route_through_private_network": True,
772
+ "vnet_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
773
+ }],
774
+ },
775
+ "egress": {
776
+ "ipv4": "192.0.2.2",
777
+ "ipv4_fallback": "192.0.2.3",
778
+ "ipv6": "2001:DB8::/64",
779
+ },
780
+ "ignore_cname_category_matches": True,
781
+ "insecure_disable_dnssec_validation": False,
782
+ "ip_categories": True,
783
+ "ip_indicator_feeds": True,
784
+ "l4override": {
785
+ "ip": "1.1.1.1",
786
+ "port": 0,
787
+ },
788
+ "notification_settings": {
789
+ "enabled": True,
790
+ "include_context": True,
791
+ "msg": "msg",
792
+ "support_url": "support_url",
793
+ },
794
+ "override_host": "example.com",
795
+ "override_ips": [
796
+ "1.1.1.1",
797
+ "2.2.2.2",
798
+ ],
799
+ "payload_log": {
800
+ "enabled": True,
801
+ },
802
+ "quarantine": {
803
+ "file_types": ["exe"],
804
+ },
805
+ "redirect": {
806
+ "target_uri": "https://example.com",
807
+ "include_context": True,
808
+ "preserve_path_and_query": True,
809
+ },
810
+ "resolve_dns_internally": {
811
+ "fallback": "none",
812
+ "view_id": "view_id",
813
+ },
814
+ "resolve_dns_through_cloudflare": True,
815
+ "untrusted_cert": {
816
+ "action": "error",
817
+ },
818
+ },
819
+ schedule={
820
+ "fri": "08:00-12:30,13:30-17:00",
821
+ "mon": "08:00-12:30,13:30-17:00",
822
+ "sat": "08:00-12:30,13:30-17:00",
823
+ "sun": "08:00-12:30,13:30-17:00",
824
+ "thu": "08:00-12:30,13:30-17:00",
825
+ "time_zone": "America/New York",
826
+ "tue": "08:00-12:30,13:30-17:00",
827
+ "wed": "08:00-12:30,13:30-17:00",
828
+ },
829
+ traffic="http.request.uri matches \\".*a/partial/uri.*\\" and http.request.host in $01302951-49f9-47c9-a400-0297e60b6a10")
830
+ ```
831
+
580
832
  ## Import
581
833
 
582
834
  ```sh
@@ -694,7 +946,7 @@ class TeamsRule(pulumi.CustomResource):
694
946
  :param pulumi.Input[_builtins.str] description: Specify the rule description.
695
947
  :param pulumi.Input[_builtins.bool] enabled: Specify whether the rule is enabled.
696
948
  :param pulumi.Input[Union['TeamsRuleExpirationArgs', 'TeamsRuleExpirationArgsDict']] expiration: Defines the expiration time stamp and default duration of a DNS policy. Takes precedence over the policy's `schedule` configuration, if any. This does not apply to HTTP or network policies. Settable only for `dns` rules.
697
- :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] filters: Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions.
949
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] filters: Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions. Can only contain a single value.
698
950
  :param pulumi.Input[_builtins.str] name: Specify the rule name.
699
951
  :param pulumi.Input[_builtins.bool] read_only: Indicate that this rule is shared via the Orgs API and read only.
700
952
  :param pulumi.Input[Union['TeamsRuleScheduleArgs', 'TeamsRuleScheduleArgsDict']] schedule: Defines the schedule for activating DNS policies. Settable only for `dns` and `dns_resolver` rules.
@@ -790,7 +1042,7 @@ class TeamsRule(pulumi.CustomResource):
790
1042
  @pulumi.getter
791
1043
  def filters(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
792
1044
  """
793
- Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions.
1045
+ Specify the protocol or layer to evaluate the traffic, identity, and device posture expressions. Can only contain a single value.
794
1046
  """
795
1047
  return pulumi.get(self, "filters")
796
1048
 
@@ -24,7 +24,8 @@ class TunnelConfigArgs:
24
24
  account_id: pulumi.Input[_builtins.str],
25
25
  tunnel_id: pulumi.Input[_builtins.str],
26
26
  config: Optional[pulumi.Input['TunnelConfigConfigArgs']] = None,
27
- source: Optional[pulumi.Input[_builtins.str]] = None):
27
+ source: Optional[pulumi.Input[_builtins.str]] = None,
28
+ warp_routing_enabled: Optional[pulumi.Input[_builtins.bool]] = None):
28
29
  """
29
30
  The set of arguments for constructing a TunnelConfig resource.
30
31
  :param pulumi.Input[_builtins.str] account_id: Identifier.
@@ -32,6 +33,7 @@ class TunnelConfigArgs:
32
33
  :param pulumi.Input['TunnelConfigConfigArgs'] config: The tunnel configuration and ingress rules.
33
34
  :param pulumi.Input[_builtins.str] source: Indicates if this is a locally or remotely configured tunnel. If `local`, manage the tunnel using a YAML file on the origin machine. If `cloudflare`, manage the tunnel's configuration on the Zero Trust dashboard.
34
35
  Available values: "local", "cloudflare".
36
+ :param pulumi.Input[_builtins.bool] warp_routing_enabled: Enable private network access from WARP users to private network routes. This is enabled if the tunnel has an assigned route.
35
37
  """
36
38
  pulumi.set(__self__, "account_id", account_id)
37
39
  pulumi.set(__self__, "tunnel_id", tunnel_id)
@@ -39,6 +41,8 @@ class TunnelConfigArgs:
39
41
  pulumi.set(__self__, "config", config)
40
42
  if source is not None:
41
43
  pulumi.set(__self__, "source", source)
44
+ if warp_routing_enabled is not None:
45
+ pulumi.set(__self__, "warp_routing_enabled", warp_routing_enabled)
42
46
 
43
47
  @_builtins.property
44
48
  @pulumi.getter(name="accountId")
@@ -89,6 +93,18 @@ class TunnelConfigArgs:
89
93
  def source(self, value: Optional[pulumi.Input[_builtins.str]]):
90
94
  pulumi.set(self, "source", value)
91
95
 
96
+ @_builtins.property
97
+ @pulumi.getter(name="warpRoutingEnabled")
98
+ def warp_routing_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
99
+ """
100
+ Enable private network access from WARP users to private network routes. This is enabled if the tunnel has an assigned route.
101
+ """
102
+ return pulumi.get(self, "warp_routing_enabled")
103
+
104
+ @warp_routing_enabled.setter
105
+ def warp_routing_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
106
+ pulumi.set(self, "warp_routing_enabled", value)
107
+
92
108
 
93
109
  @pulumi.input_type
94
110
  class _TunnelConfigState:
@@ -98,7 +114,8 @@ class _TunnelConfigState:
98
114
  created_at: Optional[pulumi.Input[_builtins.str]] = None,
99
115
  source: Optional[pulumi.Input[_builtins.str]] = None,
100
116
  tunnel_id: Optional[pulumi.Input[_builtins.str]] = None,
101
- version: Optional[pulumi.Input[_builtins.int]] = None):
117
+ version: Optional[pulumi.Input[_builtins.int]] = None,
118
+ warp_routing_enabled: Optional[pulumi.Input[_builtins.bool]] = None):
102
119
  """
103
120
  Input properties used for looking up and filtering TunnelConfig resources.
104
121
  :param pulumi.Input[_builtins.str] account_id: Identifier.
@@ -107,6 +124,7 @@ class _TunnelConfigState:
107
124
  Available values: "local", "cloudflare".
108
125
  :param pulumi.Input[_builtins.str] tunnel_id: UUID of the tunnel.
109
126
  :param pulumi.Input[_builtins.int] version: The version of the Tunnel Configuration.
127
+ :param pulumi.Input[_builtins.bool] warp_routing_enabled: Enable private network access from WARP users to private network routes. This is enabled if the tunnel has an assigned route.
110
128
  """
111
129
  if account_id is not None:
112
130
  pulumi.set(__self__, "account_id", account_id)
@@ -120,6 +138,8 @@ class _TunnelConfigState:
120
138
  pulumi.set(__self__, "tunnel_id", tunnel_id)
121
139
  if version is not None:
122
140
  pulumi.set(__self__, "version", version)
141
+ if warp_routing_enabled is not None:
142
+ pulumi.set(__self__, "warp_routing_enabled", warp_routing_enabled)
123
143
 
124
144
  @_builtins.property
125
145
  @pulumi.getter(name="accountId")
@@ -191,6 +211,18 @@ class _TunnelConfigState:
191
211
  def version(self, value: Optional[pulumi.Input[_builtins.int]]):
192
212
  pulumi.set(self, "version", value)
193
213
 
214
+ @_builtins.property
215
+ @pulumi.getter(name="warpRoutingEnabled")
216
+ def warp_routing_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
217
+ """
218
+ Enable private network access from WARP users to private network routes. This is enabled if the tunnel has an assigned route.
219
+ """
220
+ return pulumi.get(self, "warp_routing_enabled")
221
+
222
+ @warp_routing_enabled.setter
223
+ def warp_routing_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
224
+ pulumi.set(self, "warp_routing_enabled", value)
225
+
194
226
 
195
227
  warnings.warn("""cloudflare.index/tunnelconfig.TunnelConfig has been deprecated in favor of cloudflare.index/zerotrusttunnelcloudflaredconfig.ZeroTrustTunnelCloudflaredConfig""", DeprecationWarning)
196
228
 
@@ -207,6 +239,7 @@ class TunnelConfig(pulumi.CustomResource):
207
239
  config: Optional[pulumi.Input[Union['TunnelConfigConfigArgs', 'TunnelConfigConfigArgsDict']]] = None,
208
240
  source: Optional[pulumi.Input[_builtins.str]] = None,
209
241
  tunnel_id: Optional[pulumi.Input[_builtins.str]] = None,
242
+ warp_routing_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
210
243
  __props__=None):
211
244
  """
212
245
  ## Example Usage
@@ -224,6 +257,7 @@ class TunnelConfig(pulumi.CustomResource):
224
257
  :param pulumi.Input[_builtins.str] source: Indicates if this is a locally or remotely configured tunnel. If `local`, manage the tunnel using a YAML file on the origin machine. If `cloudflare`, manage the tunnel's configuration on the Zero Trust dashboard.
225
258
  Available values: "local", "cloudflare".
226
259
  :param pulumi.Input[_builtins.str] tunnel_id: UUID of the tunnel.
260
+ :param pulumi.Input[_builtins.bool] warp_routing_enabled: Enable private network access from WARP users to private network routes. This is enabled if the tunnel has an assigned route.
227
261
  """
228
262
  ...
229
263
  @overload
@@ -259,6 +293,7 @@ class TunnelConfig(pulumi.CustomResource):
259
293
  config: Optional[pulumi.Input[Union['TunnelConfigConfigArgs', 'TunnelConfigConfigArgsDict']]] = None,
260
294
  source: Optional[pulumi.Input[_builtins.str]] = None,
261
295
  tunnel_id: Optional[pulumi.Input[_builtins.str]] = None,
296
+ warp_routing_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
262
297
  __props__=None):
263
298
  pulumi.log.warn("""TunnelConfig is deprecated: cloudflare.index/tunnelconfig.TunnelConfig has been deprecated in favor of cloudflare.index/zerotrusttunnelcloudflaredconfig.ZeroTrustTunnelCloudflaredConfig""")
264
299
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -277,6 +312,7 @@ class TunnelConfig(pulumi.CustomResource):
277
312
  if tunnel_id is None and not opts.urn:
278
313
  raise TypeError("Missing required property 'tunnel_id'")
279
314
  __props__.__dict__["tunnel_id"] = tunnel_id
315
+ __props__.__dict__["warp_routing_enabled"] = warp_routing_enabled
280
316
  __props__.__dict__["created_at"] = None
281
317
  __props__.__dict__["version"] = None
282
318
  alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="cloudflare:index/tunnelConfig:TunnelConfig")])
@@ -296,7 +332,8 @@ class TunnelConfig(pulumi.CustomResource):
296
332
  created_at: Optional[pulumi.Input[_builtins.str]] = None,
297
333
  source: Optional[pulumi.Input[_builtins.str]] = None,
298
334
  tunnel_id: Optional[pulumi.Input[_builtins.str]] = None,
299
- version: Optional[pulumi.Input[_builtins.int]] = None) -> 'TunnelConfig':
335
+ version: Optional[pulumi.Input[_builtins.int]] = None,
336
+ warp_routing_enabled: Optional[pulumi.Input[_builtins.bool]] = None) -> 'TunnelConfig':
300
337
  """
301
338
  Get an existing TunnelConfig resource's state with the given name, id, and optional extra
302
339
  properties used to qualify the lookup.
@@ -310,6 +347,7 @@ class TunnelConfig(pulumi.CustomResource):
310
347
  Available values: "local", "cloudflare".
311
348
  :param pulumi.Input[_builtins.str] tunnel_id: UUID of the tunnel.
312
349
  :param pulumi.Input[_builtins.int] version: The version of the Tunnel Configuration.
350
+ :param pulumi.Input[_builtins.bool] warp_routing_enabled: Enable private network access from WARP users to private network routes. This is enabled if the tunnel has an assigned route.
313
351
  """
314
352
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
315
353
 
@@ -321,6 +359,7 @@ class TunnelConfig(pulumi.CustomResource):
321
359
  __props__.__dict__["source"] = source
322
360
  __props__.__dict__["tunnel_id"] = tunnel_id
323
361
  __props__.__dict__["version"] = version
362
+ __props__.__dict__["warp_routing_enabled"] = warp_routing_enabled
324
363
  return TunnelConfig(resource_name, opts=opts, __props__=__props__)
325
364
 
326
365
  @_builtins.property
@@ -369,3 +408,11 @@ class TunnelConfig(pulumi.CustomResource):
369
408
  """
370
409
  return pulumi.get(self, "version")
371
410
 
411
+ @_builtins.property
412
+ @pulumi.getter(name="warpRoutingEnabled")
413
+ def warp_routing_enabled(self) -> pulumi.Output[_builtins.bool]:
414
+ """
415
+ Enable private network access from WARP users to private network routes. This is enabled if the tunnel has an assigned route.
416
+ """
417
+ return pulumi.get(self, "warp_routing_enabled")
418
+
@@ -144,6 +144,7 @@ class _WorkerState:
144
144
  logpush: Optional[pulumi.Input[_builtins.bool]] = None,
145
145
  name: Optional[pulumi.Input[_builtins.str]] = None,
146
146
  observability: Optional[pulumi.Input['WorkerObservabilityArgs']] = None,
147
+ references: Optional[pulumi.Input['WorkerReferencesArgs']] = None,
147
148
  subdomain: Optional[pulumi.Input['WorkerSubdomainArgs']] = None,
148
149
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
149
150
  tail_consumers: Optional[pulumi.Input[Sequence[pulumi.Input['WorkerTailConsumerArgs']]]] = None,
@@ -155,6 +156,7 @@ class _WorkerState:
155
156
  :param pulumi.Input[_builtins.bool] logpush: Whether logpush is enabled for the Worker.
156
157
  :param pulumi.Input[_builtins.str] name: Name of the Worker.
157
158
  :param pulumi.Input['WorkerObservabilityArgs'] observability: Observability settings for the Worker.
159
+ :param pulumi.Input['WorkerReferencesArgs'] references: Other resources that reference the Worker and depend on it existing.
158
160
  :param pulumi.Input['WorkerSubdomainArgs'] subdomain: Subdomain settings for the Worker.
159
161
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags associated with the Worker.
160
162
  :param pulumi.Input[Sequence[pulumi.Input['WorkerTailConsumerArgs']]] tail_consumers: Other Workers that should consume logs from the Worker.
@@ -170,6 +172,8 @@ class _WorkerState:
170
172
  pulumi.set(__self__, "name", name)
171
173
  if observability is not None:
172
174
  pulumi.set(__self__, "observability", observability)
175
+ if references is not None:
176
+ pulumi.set(__self__, "references", references)
173
177
  if subdomain is not None:
174
178
  pulumi.set(__self__, "subdomain", subdomain)
175
179
  if tags is not None:
@@ -239,6 +243,18 @@ class _WorkerState:
239
243
  def observability(self, value: Optional[pulumi.Input['WorkerObservabilityArgs']]):
240
244
  pulumi.set(self, "observability", value)
241
245
 
246
+ @_builtins.property
247
+ @pulumi.getter
248
+ def references(self) -> Optional[pulumi.Input['WorkerReferencesArgs']]:
249
+ """
250
+ Other resources that reference the Worker and depend on it existing.
251
+ """
252
+ return pulumi.get(self, "references")
253
+
254
+ @references.setter
255
+ def references(self, value: Optional[pulumi.Input['WorkerReferencesArgs']]):
256
+ pulumi.set(self, "references", value)
257
+
242
258
  @_builtins.property
243
259
  @pulumi.getter
244
260
  def subdomain(self) -> Optional[pulumi.Input['WorkerSubdomainArgs']]:
@@ -305,6 +321,36 @@ class Worker(pulumi.CustomResource):
305
321
  """
306
322
  ## Example Usage
307
323
 
324
+ ```python
325
+ import pulumi
326
+ import pulumi_cloudflare as cloudflare
327
+
328
+ example_worker = cloudflare.Worker("example_worker",
329
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
330
+ name="my-worker",
331
+ logpush=True,
332
+ observability={
333
+ "enabled": True,
334
+ "head_sampling_rate": 1,
335
+ "logs": {
336
+ "enabled": True,
337
+ "head_sampling_rate": 1,
338
+ "invocation_logs": True,
339
+ },
340
+ },
341
+ subdomain={
342
+ "enabled": True,
343
+ "previews_enabled": True,
344
+ },
345
+ tags=[
346
+ "my-team",
347
+ "my-public-api",
348
+ ],
349
+ tail_consumers=[{
350
+ "name": "my-tail-consumer",
351
+ }])
352
+ ```
353
+
308
354
  ## Import
309
355
 
310
356
  ```sh
@@ -330,6 +376,36 @@ class Worker(pulumi.CustomResource):
330
376
  """
331
377
  ## Example Usage
332
378
 
379
+ ```python
380
+ import pulumi
381
+ import pulumi_cloudflare as cloudflare
382
+
383
+ example_worker = cloudflare.Worker("example_worker",
384
+ account_id="023e105f4ecef8ad9ca31a8372d0c353",
385
+ name="my-worker",
386
+ logpush=True,
387
+ observability={
388
+ "enabled": True,
389
+ "head_sampling_rate": 1,
390
+ "logs": {
391
+ "enabled": True,
392
+ "head_sampling_rate": 1,
393
+ "invocation_logs": True,
394
+ },
395
+ },
396
+ subdomain={
397
+ "enabled": True,
398
+ "previews_enabled": True,
399
+ },
400
+ tags=[
401
+ "my-team",
402
+ "my-public-api",
403
+ ],
404
+ tail_consumers=[{
405
+ "name": "my-tail-consumer",
406
+ }])
407
+ ```
408
+
333
409
  ## Import
334
410
 
335
411
  ```sh
@@ -379,6 +455,7 @@ class Worker(pulumi.CustomResource):
379
455
  __props__.__dict__["tags"] = tags
380
456
  __props__.__dict__["tail_consumers"] = tail_consumers
381
457
  __props__.__dict__["created_on"] = None
458
+ __props__.__dict__["references"] = None
382
459
  __props__.__dict__["updated_on"] = None
383
460
  super(Worker, __self__).__init__(
384
461
  'cloudflare:index/worker:Worker',
@@ -395,6 +472,7 @@ class Worker(pulumi.CustomResource):
395
472
  logpush: Optional[pulumi.Input[_builtins.bool]] = None,
396
473
  name: Optional[pulumi.Input[_builtins.str]] = None,
397
474
  observability: Optional[pulumi.Input[Union['WorkerObservabilityArgs', 'WorkerObservabilityArgsDict']]] = None,
475
+ references: Optional[pulumi.Input[Union['WorkerReferencesArgs', 'WorkerReferencesArgsDict']]] = None,
398
476
  subdomain: Optional[pulumi.Input[Union['WorkerSubdomainArgs', 'WorkerSubdomainArgsDict']]] = None,
399
477
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
400
478
  tail_consumers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WorkerTailConsumerArgs', 'WorkerTailConsumerArgsDict']]]]] = None,
@@ -411,6 +489,7 @@ class Worker(pulumi.CustomResource):
411
489
  :param pulumi.Input[_builtins.bool] logpush: Whether logpush is enabled for the Worker.
412
490
  :param pulumi.Input[_builtins.str] name: Name of the Worker.
413
491
  :param pulumi.Input[Union['WorkerObservabilityArgs', 'WorkerObservabilityArgsDict']] observability: Observability settings for the Worker.
492
+ :param pulumi.Input[Union['WorkerReferencesArgs', 'WorkerReferencesArgsDict']] references: Other resources that reference the Worker and depend on it existing.
414
493
  :param pulumi.Input[Union['WorkerSubdomainArgs', 'WorkerSubdomainArgsDict']] subdomain: Subdomain settings for the Worker.
415
494
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags associated with the Worker.
416
495
  :param pulumi.Input[Sequence[pulumi.Input[Union['WorkerTailConsumerArgs', 'WorkerTailConsumerArgsDict']]]] tail_consumers: Other Workers that should consume logs from the Worker.
@@ -425,6 +504,7 @@ class Worker(pulumi.CustomResource):
425
504
  __props__.__dict__["logpush"] = logpush
426
505
  __props__.__dict__["name"] = name
427
506
  __props__.__dict__["observability"] = observability
507
+ __props__.__dict__["references"] = references
428
508
  __props__.__dict__["subdomain"] = subdomain
429
509
  __props__.__dict__["tags"] = tags
430
510
  __props__.__dict__["tail_consumers"] = tail_consumers
@@ -471,6 +551,14 @@ class Worker(pulumi.CustomResource):
471
551
  """
472
552
  return pulumi.get(self, "observability")
473
553
 
554
+ @_builtins.property
555
+ @pulumi.getter
556
+ def references(self) -> pulumi.Output['outputs.WorkerReferences']:
557
+ """
558
+ Other resources that reference the Worker and depend on it existing.
559
+ """
560
+ return pulumi.get(self, "references")
561
+
474
562
  @_builtins.property
475
563
  @pulumi.getter
476
564
  def subdomain(self) -> pulumi.Output['outputs.WorkerSubdomain']: