pulumi-gcp 8.17.0a1738274430__py3-none-any.whl → 8.18.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 (137) hide show
  1. pulumi_gcp/__init__.py +115 -0
  2. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +28 -0
  3. pulumi_gcp/alloydb/cluster.py +75 -7
  4. pulumi_gcp/alloydb/user.py +10 -1
  5. pulumi_gcp/apigee/_inputs.py +91 -0
  6. pulumi_gcp/apigee/endpoint_attachment.py +0 -64
  7. pulumi_gcp/apigee/environment.py +54 -0
  8. pulumi_gcp/apigee/outputs.py +54 -0
  9. pulumi_gcp/apihub/__init__.py +10 -0
  10. pulumi_gcp/apihub/_inputs.py +154 -0
  11. pulumi_gcp/apihub/api_hub_instance.py +784 -0
  12. pulumi_gcp/apihub/outputs.py +124 -0
  13. pulumi_gcp/assuredworkloads/workload.py +7 -7
  14. pulumi_gcp/beyondcorp/__init__.py +4 -0
  15. pulumi_gcp/beyondcorp/_inputs.py +130 -0
  16. pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +180 -0
  17. pulumi_gcp/beyondcorp/outputs.py +76 -0
  18. pulumi_gcp/beyondcorp/security_gateway.py +52 -25
  19. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +1075 -0
  20. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +1075 -0
  21. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +894 -0
  22. pulumi_gcp/bigquery/_inputs.py +33 -0
  23. pulumi_gcp/bigquery/dataset.py +7 -7
  24. pulumi_gcp/bigquery/outputs.py +36 -0
  25. pulumi_gcp/bigquery/table.py +61 -7
  26. pulumi_gcp/chronicle/__init__.py +1 -0
  27. pulumi_gcp/chronicle/_inputs.py +124 -0
  28. pulumi_gcp/chronicle/outputs.py +112 -0
  29. pulumi_gcp/chronicle/retrohunt.py +629 -0
  30. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +23 -23
  31. pulumi_gcp/cloudrunv2/_inputs.py +197 -0
  32. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  33. pulumi_gcp/cloudrunv2/outputs.py +256 -0
  34. pulumi_gcp/cloudrunv2/service.py +159 -0
  35. pulumi_gcp/colab/__init__.py +5 -0
  36. pulumi_gcp/colab/_inputs.py +131 -0
  37. pulumi_gcp/colab/get_runtime_template_iam_policy.py +182 -0
  38. pulumi_gcp/colab/outputs.py +92 -0
  39. pulumi_gcp/colab/runtime.py +696 -0
  40. pulumi_gcp/colab/runtime_template_iam_binding.py +828 -0
  41. pulumi_gcp/colab/runtime_template_iam_member.py +828 -0
  42. pulumi_gcp/colab/runtime_template_iam_policy.py +667 -0
  43. pulumi_gcp/compute/__init__.py +4 -0
  44. pulumi_gcp/compute/_inputs.py +535 -9
  45. pulumi_gcp/compute/firewall_policy_rule.py +104 -22
  46. pulumi_gcp/compute/firewall_policy_with_rules.py +114 -42
  47. pulumi_gcp/compute/get_instance_template_iam_policy.py +159 -0
  48. pulumi_gcp/compute/get_network.py +3 -3
  49. pulumi_gcp/compute/instance_template_iam_binding.py +998 -0
  50. pulumi_gcp/compute/instance_template_iam_member.py +998 -0
  51. pulumi_gcp/compute/instance_template_iam_policy.py +817 -0
  52. pulumi_gcp/compute/interconnect_attachment.py +189 -2
  53. pulumi_gcp/compute/network.py +7 -7
  54. pulumi_gcp/compute/network_firewall_policy_rule.py +122 -10
  55. pulumi_gcp/compute/network_firewall_policy_with_rules.py +116 -44
  56. pulumi_gcp/compute/outputs.py +358 -6
  57. pulumi_gcp/compute/project_metadata_item.py +12 -0
  58. pulumi_gcp/compute/public_advertised_prefix.py +87 -0
  59. pulumi_gcp/compute/region_network_firewall_policy_rule.py +130 -10
  60. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +104 -32
  61. pulumi_gcp/compute/router_peer.py +227 -3
  62. pulumi_gcp/config/__init__.pyi +2 -0
  63. pulumi_gcp/config/vars.py +4 -0
  64. pulumi_gcp/container/_inputs.py +79 -20
  65. pulumi_gcp/container/outputs.py +75 -12
  66. pulumi_gcp/dataproc/_inputs.py +34 -0
  67. pulumi_gcp/dataproc/outputs.py +37 -0
  68. pulumi_gcp/dataproc/workflow_template.py +47 -0
  69. pulumi_gcp/filestore/get_instance.py +12 -1
  70. pulumi_gcp/filestore/instance.py +75 -0
  71. pulumi_gcp/firestore/field.py +60 -0
  72. pulumi_gcp/gemini/code_repository_index.py +29 -33
  73. pulumi_gcp/gemini/get_repository_group_iam_policy.py +28 -2
  74. pulumi_gcp/gemini/repository_group.py +76 -26
  75. pulumi_gcp/gemini/repository_group_iam_binding.py +258 -0
  76. pulumi_gcp/gemini/repository_group_iam_member.py +258 -0
  77. pulumi_gcp/gemini/repository_group_iam_policy.py +258 -0
  78. pulumi_gcp/gkehub/_inputs.py +20 -0
  79. pulumi_gcp/gkehub/membership_binding.py +6 -6
  80. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  81. pulumi_gcp/gkehub/namespace.py +4 -4
  82. pulumi_gcp/gkehub/outputs.py +26 -1
  83. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  84. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  85. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  86. pulumi_gcp/kms/__init__.py +1 -0
  87. pulumi_gcp/kms/get_key_handles.py +172 -0
  88. pulumi_gcp/kms/outputs.py +45 -0
  89. pulumi_gcp/netapp/storage_pool.py +1 -1
  90. pulumi_gcp/networkconnectivity/spoke.py +76 -14
  91. pulumi_gcp/networksecurity/_inputs.py +72 -0
  92. pulumi_gcp/networksecurity/outputs.py +76 -0
  93. pulumi_gcp/networksecurity/security_profile.py +233 -7
  94. pulumi_gcp/networksecurity/security_profile_group.py +218 -0
  95. pulumi_gcp/organizations/__init__.py +1 -0
  96. pulumi_gcp/organizations/get_s.py +128 -0
  97. pulumi_gcp/organizations/outputs.py +63 -0
  98. pulumi_gcp/orgpolicy/policy.py +2 -2
  99. pulumi_gcp/parametermanager/__init__.py +6 -0
  100. pulumi_gcp/parametermanager/get_parameter.py +211 -0
  101. pulumi_gcp/parametermanager/get_parameter_version.py +216 -0
  102. pulumi_gcp/parametermanager/get_parameters.py +140 -0
  103. pulumi_gcp/parametermanager/get_regional_parameter_version.py +235 -0
  104. pulumi_gcp/parametermanager/get_regional_parameters.py +157 -0
  105. pulumi_gcp/parametermanager/outputs.py +366 -0
  106. pulumi_gcp/parametermanager/parameter_version.py +496 -0
  107. pulumi_gcp/parametermanager/regional_parameter_version.py +10 -38
  108. pulumi_gcp/provider.py +20 -0
  109. pulumi_gcp/pubsub/_inputs.py +477 -1
  110. pulumi_gcp/pubsub/outputs.py +631 -2
  111. pulumi_gcp/pubsub/subscription.py +6 -6
  112. pulumi_gcp/pubsub/topic.py +112 -0
  113. pulumi_gcp/pulumi-plugin.json +1 -1
  114. pulumi_gcp/redis/__init__.py +1 -0
  115. pulumi_gcp/redis/_inputs.py +342 -6
  116. pulumi_gcp/redis/cluster.py +223 -102
  117. pulumi_gcp/redis/cluster_user_created_connections.py +845 -0
  118. pulumi_gcp/redis/outputs.py +268 -4
  119. pulumi_gcp/resourcemanager/lien.py +12 -0
  120. pulumi_gcp/secretmanager/regional_secret.py +4 -0
  121. pulumi_gcp/secretmanager/regional_secret_version.py +12 -0
  122. pulumi_gcp/secretmanager/secret.py +4 -0
  123. pulumi_gcp/secretmanager/secret_version.py +12 -0
  124. pulumi_gcp/securityposture/posture.py +4 -0
  125. pulumi_gcp/securityposture/posture_deployment.py +4 -0
  126. pulumi_gcp/serviceaccount/get_s.py +98 -8
  127. pulumi_gcp/spanner/_inputs.py +68 -0
  128. pulumi_gcp/spanner/backup_schedule.py +70 -4
  129. pulumi_gcp/spanner/outputs.py +60 -0
  130. pulumi_gcp/storage/get_bucket_object_content.py +4 -4
  131. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  132. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  133. pulumi_gcp/workflows/workflow.py +175 -0
  134. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/METADATA +1 -1
  135. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/RECORD +137 -110
  136. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/WHEEL +0 -0
  137. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/top_level.txt +0 -0
@@ -609,7 +609,7 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
609
609
  import pulumi_gcp as gcp
610
610
 
611
611
  basic_global_networksecurity_address_group = gcp.networksecurity.AddressGroup("basic_global_networksecurity_address_group",
612
- name="address",
612
+ name="address-group",
613
613
  parent="projects/my-project-name",
614
614
  description="Sample global networksecurity_address_group",
615
615
  location="global",
@@ -617,7 +617,7 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
617
617
  type="IPV4",
618
618
  capacity=100)
619
619
  basic_network_firewall_policy = gcp.compute.NetworkFirewallPolicy("basic_network_firewall_policy",
620
- name="policy",
620
+ name="fw-policy",
621
621
  description="Sample global network firewall policy",
622
622
  project="my-project-name")
623
623
  basic_network = gcp.compute.Network("basic_network", name="network")
@@ -625,14 +625,14 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
625
625
  description="For keyname resources.",
626
626
  parent="organizations/123456789",
627
627
  purpose="GCE_FIREWALL",
628
- short_name="tagkey",
628
+ short_name="tag-key",
629
629
  purpose_data={
630
630
  "network": basic_network.name.apply(lambda name: f"my-project-name/{name}"),
631
631
  })
632
632
  basic_value = gcp.tags.TagValue("basic_value",
633
633
  description="For valuename resources.",
634
634
  parent=basic_key.id,
635
- short_name="tagvalue")
635
+ short_name="tag-value")
636
636
  primary = gcp.compute.NetworkFirewallPolicyRule("primary",
637
637
  action="allow",
638
638
  description="This is a simple rule description",
@@ -644,6 +644,7 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
644
644
  rule_name="test-rule",
645
645
  target_service_accounts=["my@service-account.com"],
646
646
  match={
647
+ "src_address_groups": [basic_global_networksecurity_address_group.id],
647
648
  "src_ip_ranges": ["10.100.0.1/32"],
648
649
  "src_fqdns": ["google.com"],
649
650
  "src_region_codes": ["US"],
@@ -654,7 +655,62 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
654
655
  "layer4_configs": [{
655
656
  "ip_protocol": "all",
656
657
  }],
657
- "src_address_groups": [basic_global_networksecurity_address_group.id],
658
+ })
659
+ ```
660
+ ### Network Firewall Policy Rule Network Scope Egress
661
+
662
+ ```python
663
+ import pulumi
664
+ import pulumi_gcp as gcp
665
+
666
+ basic_network_firewall_policy = gcp.compute.NetworkFirewallPolicy("basic_network_firewall_policy",
667
+ name="fw-policy",
668
+ description="Sample global network firewall policy",
669
+ project="my-project-name")
670
+ primary = gcp.compute.NetworkFirewallPolicyRule("primary",
671
+ action="allow",
672
+ description="This is a simple rule description",
673
+ direction="EGRESS",
674
+ disabled=False,
675
+ enable_logging=True,
676
+ firewall_policy=basic_network_firewall_policy.name,
677
+ priority=1000,
678
+ rule_name="test-rule",
679
+ match={
680
+ "dest_ip_ranges": ["10.100.0.1/32"],
681
+ "dest_network_scope": "INTERNET",
682
+ "layer4_configs": [{
683
+ "ip_protocol": "all",
684
+ }],
685
+ })
686
+ ```
687
+ ### Network Firewall Policy Rule Network Scope Ingress
688
+
689
+ ```python
690
+ import pulumi
691
+ import pulumi_gcp as gcp
692
+
693
+ basic_network_firewall_policy = gcp.compute.NetworkFirewallPolicy("basic_network_firewall_policy",
694
+ name="fw-policy",
695
+ description="Sample global network firewall policy",
696
+ project="my-project-name")
697
+ network = gcp.compute.Network("network", name="network")
698
+ primary = gcp.compute.NetworkFirewallPolicyRule("primary",
699
+ action="allow",
700
+ description="This is a simple rule description",
701
+ direction="INGRESS",
702
+ disabled=False,
703
+ enable_logging=True,
704
+ firewall_policy=basic_network_firewall_policy.name,
705
+ priority=1000,
706
+ rule_name="test-rule",
707
+ match={
708
+ "src_ip_ranges": ["11.100.0.1/32"],
709
+ "src_network_scope": "VPC_NETWORKS",
710
+ "src_networks": [network.id],
711
+ "layer4_configs": [{
712
+ "ip_protocol": "all",
713
+ }],
658
714
  })
659
715
  ```
660
716
 
@@ -734,7 +790,7 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
734
790
  import pulumi_gcp as gcp
735
791
 
736
792
  basic_global_networksecurity_address_group = gcp.networksecurity.AddressGroup("basic_global_networksecurity_address_group",
737
- name="address",
793
+ name="address-group",
738
794
  parent="projects/my-project-name",
739
795
  description="Sample global networksecurity_address_group",
740
796
  location="global",
@@ -742,7 +798,7 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
742
798
  type="IPV4",
743
799
  capacity=100)
744
800
  basic_network_firewall_policy = gcp.compute.NetworkFirewallPolicy("basic_network_firewall_policy",
745
- name="policy",
801
+ name="fw-policy",
746
802
  description="Sample global network firewall policy",
747
803
  project="my-project-name")
748
804
  basic_network = gcp.compute.Network("basic_network", name="network")
@@ -750,14 +806,14 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
750
806
  description="For keyname resources.",
751
807
  parent="organizations/123456789",
752
808
  purpose="GCE_FIREWALL",
753
- short_name="tagkey",
809
+ short_name="tag-key",
754
810
  purpose_data={
755
811
  "network": basic_network.name.apply(lambda name: f"my-project-name/{name}"),
756
812
  })
757
813
  basic_value = gcp.tags.TagValue("basic_value",
758
814
  description="For valuename resources.",
759
815
  parent=basic_key.id,
760
- short_name="tagvalue")
816
+ short_name="tag-value")
761
817
  primary = gcp.compute.NetworkFirewallPolicyRule("primary",
762
818
  action="allow",
763
819
  description="This is a simple rule description",
@@ -769,6 +825,7 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
769
825
  rule_name="test-rule",
770
826
  target_service_accounts=["my@service-account.com"],
771
827
  match={
828
+ "src_address_groups": [basic_global_networksecurity_address_group.id],
772
829
  "src_ip_ranges": ["10.100.0.1/32"],
773
830
  "src_fqdns": ["google.com"],
774
831
  "src_region_codes": ["US"],
@@ -779,7 +836,62 @@ class NetworkFirewallPolicyRule(pulumi.CustomResource):
779
836
  "layer4_configs": [{
780
837
  "ip_protocol": "all",
781
838
  }],
782
- "src_address_groups": [basic_global_networksecurity_address_group.id],
839
+ })
840
+ ```
841
+ ### Network Firewall Policy Rule Network Scope Egress
842
+
843
+ ```python
844
+ import pulumi
845
+ import pulumi_gcp as gcp
846
+
847
+ basic_network_firewall_policy = gcp.compute.NetworkFirewallPolicy("basic_network_firewall_policy",
848
+ name="fw-policy",
849
+ description="Sample global network firewall policy",
850
+ project="my-project-name")
851
+ primary = gcp.compute.NetworkFirewallPolicyRule("primary",
852
+ action="allow",
853
+ description="This is a simple rule description",
854
+ direction="EGRESS",
855
+ disabled=False,
856
+ enable_logging=True,
857
+ firewall_policy=basic_network_firewall_policy.name,
858
+ priority=1000,
859
+ rule_name="test-rule",
860
+ match={
861
+ "dest_ip_ranges": ["10.100.0.1/32"],
862
+ "dest_network_scope": "INTERNET",
863
+ "layer4_configs": [{
864
+ "ip_protocol": "all",
865
+ }],
866
+ })
867
+ ```
868
+ ### Network Firewall Policy Rule Network Scope Ingress
869
+
870
+ ```python
871
+ import pulumi
872
+ import pulumi_gcp as gcp
873
+
874
+ basic_network_firewall_policy = gcp.compute.NetworkFirewallPolicy("basic_network_firewall_policy",
875
+ name="fw-policy",
876
+ description="Sample global network firewall policy",
877
+ project="my-project-name")
878
+ network = gcp.compute.Network("network", name="network")
879
+ primary = gcp.compute.NetworkFirewallPolicyRule("primary",
880
+ action="allow",
881
+ description="This is a simple rule description",
882
+ direction="INGRESS",
883
+ disabled=False,
884
+ enable_logging=True,
885
+ firewall_policy=basic_network_firewall_policy.name,
886
+ priority=1000,
887
+ rule_name="test-rule",
888
+ match={
889
+ "src_ip_ranges": ["11.100.0.1/32"],
890
+ "src_network_scope": "VPC_NETWORKS",
891
+ "src_networks": [network.id],
892
+ "layer4_configs": [{
893
+ "ip_protocol": "all",
894
+ }],
783
895
  })
784
896
  ```
785
897
 
@@ -316,7 +316,7 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
316
316
 
317
317
  project = gcp.organizations.get_project()
318
318
  address_group1 = gcp.networksecurity.AddressGroup("address_group_1",
319
- name="tf-address-group",
319
+ name="address-group",
320
320
  parent=project.id,
321
321
  description="Global address group",
322
322
  location="global",
@@ -327,26 +327,29 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
327
327
  description="Tag key",
328
328
  parent=project.id,
329
329
  purpose="GCE_FIREWALL",
330
- short_name="tf-tag-key",
330
+ short_name="tag-key",
331
331
  purpose_data={
332
332
  "network": f"{project.name}/default",
333
333
  })
334
334
  secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1",
335
335
  description="Tag value",
336
336
  parent=secure_tag_key1.id,
337
- short_name="tf-tag-value")
337
+ short_name="tag-value")
338
338
  security_profile1 = gcp.networksecurity.SecurityProfile("security_profile_1",
339
- name="tf-security-profile",
339
+ name="sp",
340
340
  type="THREAT_PREVENTION",
341
341
  parent="organizations/123456789",
342
342
  location="global")
343
343
  security_profile_group1 = gcp.networksecurity.SecurityProfileGroup("security_profile_group_1",
344
- name="tf-security-profile-group",
344
+ name="spg",
345
345
  parent="organizations/123456789",
346
346
  description="my description",
347
347
  threat_prevention_profile=security_profile1.id)
348
- network_firewall_policy_with_rules = gcp.compute.NetworkFirewallPolicyWithRules("network-firewall-policy-with-rules",
349
- name="tf-fw-policy-with-rules",
348
+ network = gcp.compute.Network("network",
349
+ name="network",
350
+ auto_create_subnetworks=False)
351
+ primary = gcp.compute.NetworkFirewallPolicyWithRules("primary",
352
+ name="fw-policy",
350
353
  description="Terraform test",
351
354
  rules=[
352
355
  {
@@ -356,13 +359,6 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
356
359
  "action": "allow",
357
360
  "direction": "EGRESS",
358
361
  "match": {
359
- "layer4_configs": [{
360
- "ip_protocol": "tcp",
361
- "ports": [
362
- "8080",
363
- "7070",
364
- ],
365
- }],
366
362
  "dest_ip_ranges": ["11.100.0.1/32"],
367
363
  "dest_fqdns": [
368
364
  "www.yyy.com",
@@ -377,6 +373,13 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
377
373
  "iplist-tor-exit-nodes",
378
374
  ],
379
375
  "dest_address_groups": [address_group1.id],
376
+ "layer4_configs": [{
377
+ "ip_protocol": "tcp",
378
+ "ports": [
379
+ "8080",
380
+ "7070",
381
+ ],
382
+ }],
380
383
  },
381
384
  "target_secure_tags": [{
382
385
  "name": secure_tag_value1.id,
@@ -388,10 +391,8 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
388
391
  "enable_logging": False,
389
392
  "action": "deny",
390
393
  "direction": "INGRESS",
394
+ "disabled": True,
391
395
  "match": {
392
- "layer4_configs": [{
393
- "ip_protocol": "udp",
394
- }],
395
396
  "src_ip_ranges": ["0.0.0.0/0"],
396
397
  "src_fqdns": [
397
398
  "www.abc.com",
@@ -409,8 +410,10 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
409
410
  "src_secure_tags": [{
410
411
  "name": secure_tag_value1.id,
411
412
  }],
413
+ "layer4_configs": [{
414
+ "ip_protocol": "udp",
415
+ }],
412
416
  },
413
- "disabled": True,
414
417
  },
415
418
  {
416
419
  "description": "security profile group rule",
@@ -419,15 +422,48 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
419
422
  "enable_logging": False,
420
423
  "action": "apply_security_profile_group",
421
424
  "direction": "INGRESS",
425
+ "target_service_accounts": ["test@google.com"],
426
+ "security_profile_group": security_profile_group1.id.apply(lambda id: f"//networksecurity.googleapis.com/{id}"),
427
+ "tls_inspect": True,
428
+ "match": {
429
+ "src_ip_ranges": ["0.0.0.0/0"],
430
+ "layer4_configs": [{
431
+ "ip_protocol": "tcp",
432
+ }],
433
+ },
434
+ },
435
+ {
436
+ "description": "network scope rule 1",
437
+ "rule_name": "network scope 1",
438
+ "priority": 4000,
439
+ "enable_logging": False,
440
+ "action": "allow",
441
+ "direction": "INGRESS",
422
442
  "match": {
443
+ "src_ip_ranges": ["11.100.0.1/32"],
444
+ "src_network_scope": "VPC_NETWORKS",
445
+ "src_networks": [network.id],
423
446
  "layer4_configs": [{
424
447
  "ip_protocol": "tcp",
448
+ "ports": ["8080"],
449
+ }],
450
+ },
451
+ },
452
+ {
453
+ "description": "network scope rule 2",
454
+ "rule_name": "network scope 2",
455
+ "priority": 5000,
456
+ "enable_logging": False,
457
+ "action": "allow",
458
+ "direction": "EGRESS",
459
+ "match": {
460
+ "dest_ip_ranges": ["0.0.0.0/0"],
461
+ "dest_network_scope": "INTERNET",
462
+ "layer4_configs": [{
463
+ "ip_protocol": "tcp",
464
+ "ports": ["8080"],
425
465
  }],
426
- "src_ip_ranges": ["0.0.0.0/0"],
427
466
  },
428
- "target_service_accounts": ["test@google.com"],
429
- "security_profile_group": security_profile_group1.id.apply(lambda id: f"//networksecurity.googleapis.com/{id}"),
430
- "tls_inspect": True,
431
467
  },
432
468
  ])
433
469
  ```
@@ -486,7 +522,7 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
486
522
 
487
523
  project = gcp.organizations.get_project()
488
524
  address_group1 = gcp.networksecurity.AddressGroup("address_group_1",
489
- name="tf-address-group",
525
+ name="address-group",
490
526
  parent=project.id,
491
527
  description="Global address group",
492
528
  location="global",
@@ -497,26 +533,29 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
497
533
  description="Tag key",
498
534
  parent=project.id,
499
535
  purpose="GCE_FIREWALL",
500
- short_name="tf-tag-key",
536
+ short_name="tag-key",
501
537
  purpose_data={
502
538
  "network": f"{project.name}/default",
503
539
  })
504
540
  secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1",
505
541
  description="Tag value",
506
542
  parent=secure_tag_key1.id,
507
- short_name="tf-tag-value")
543
+ short_name="tag-value")
508
544
  security_profile1 = gcp.networksecurity.SecurityProfile("security_profile_1",
509
- name="tf-security-profile",
545
+ name="sp",
510
546
  type="THREAT_PREVENTION",
511
547
  parent="organizations/123456789",
512
548
  location="global")
513
549
  security_profile_group1 = gcp.networksecurity.SecurityProfileGroup("security_profile_group_1",
514
- name="tf-security-profile-group",
550
+ name="spg",
515
551
  parent="organizations/123456789",
516
552
  description="my description",
517
553
  threat_prevention_profile=security_profile1.id)
518
- network_firewall_policy_with_rules = gcp.compute.NetworkFirewallPolicyWithRules("network-firewall-policy-with-rules",
519
- name="tf-fw-policy-with-rules",
554
+ network = gcp.compute.Network("network",
555
+ name="network",
556
+ auto_create_subnetworks=False)
557
+ primary = gcp.compute.NetworkFirewallPolicyWithRules("primary",
558
+ name="fw-policy",
520
559
  description="Terraform test",
521
560
  rules=[
522
561
  {
@@ -526,13 +565,6 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
526
565
  "action": "allow",
527
566
  "direction": "EGRESS",
528
567
  "match": {
529
- "layer4_configs": [{
530
- "ip_protocol": "tcp",
531
- "ports": [
532
- "8080",
533
- "7070",
534
- ],
535
- }],
536
568
  "dest_ip_ranges": ["11.100.0.1/32"],
537
569
  "dest_fqdns": [
538
570
  "www.yyy.com",
@@ -547,6 +579,13 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
547
579
  "iplist-tor-exit-nodes",
548
580
  ],
549
581
  "dest_address_groups": [address_group1.id],
582
+ "layer4_configs": [{
583
+ "ip_protocol": "tcp",
584
+ "ports": [
585
+ "8080",
586
+ "7070",
587
+ ],
588
+ }],
550
589
  },
551
590
  "target_secure_tags": [{
552
591
  "name": secure_tag_value1.id,
@@ -558,10 +597,8 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
558
597
  "enable_logging": False,
559
598
  "action": "deny",
560
599
  "direction": "INGRESS",
600
+ "disabled": True,
561
601
  "match": {
562
- "layer4_configs": [{
563
- "ip_protocol": "udp",
564
- }],
565
602
  "src_ip_ranges": ["0.0.0.0/0"],
566
603
  "src_fqdns": [
567
604
  "www.abc.com",
@@ -579,8 +616,10 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
579
616
  "src_secure_tags": [{
580
617
  "name": secure_tag_value1.id,
581
618
  }],
619
+ "layer4_configs": [{
620
+ "ip_protocol": "udp",
621
+ }],
582
622
  },
583
- "disabled": True,
584
623
  },
585
624
  {
586
625
  "description": "security profile group rule",
@@ -589,15 +628,48 @@ class NetworkFirewallPolicyWithRules(pulumi.CustomResource):
589
628
  "enable_logging": False,
590
629
  "action": "apply_security_profile_group",
591
630
  "direction": "INGRESS",
631
+ "target_service_accounts": ["test@google.com"],
632
+ "security_profile_group": security_profile_group1.id.apply(lambda id: f"//networksecurity.googleapis.com/{id}"),
633
+ "tls_inspect": True,
634
+ "match": {
635
+ "src_ip_ranges": ["0.0.0.0/0"],
636
+ "layer4_configs": [{
637
+ "ip_protocol": "tcp",
638
+ }],
639
+ },
640
+ },
641
+ {
642
+ "description": "network scope rule 1",
643
+ "rule_name": "network scope 1",
644
+ "priority": 4000,
645
+ "enable_logging": False,
646
+ "action": "allow",
647
+ "direction": "INGRESS",
592
648
  "match": {
649
+ "src_ip_ranges": ["11.100.0.1/32"],
650
+ "src_network_scope": "VPC_NETWORKS",
651
+ "src_networks": [network.id],
593
652
  "layer4_configs": [{
594
653
  "ip_protocol": "tcp",
654
+ "ports": ["8080"],
655
+ }],
656
+ },
657
+ },
658
+ {
659
+ "description": "network scope rule 2",
660
+ "rule_name": "network scope 2",
661
+ "priority": 5000,
662
+ "enable_logging": False,
663
+ "action": "allow",
664
+ "direction": "EGRESS",
665
+ "match": {
666
+ "dest_ip_ranges": ["0.0.0.0/0"],
667
+ "dest_network_scope": "INTERNET",
668
+ "layer4_configs": [{
669
+ "ip_protocol": "tcp",
670
+ "ports": ["8080"],
595
671
  }],
596
- "src_ip_ranges": ["0.0.0.0/0"],
597
672
  },
598
- "target_service_accounts": ["test@google.com"],
599
- "security_profile_group": security_profile_group1.id.apply(lambda id: f"//networksecurity.googleapis.com/{id}"),
600
- "tls_inspect": True,
601
673
  },
602
674
  ])
603
675
  ```