pulumi-gcp 8.16.0a1738046179__py3-none-any.whl → 8.17.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 (83) hide show
  1. pulumi_gcp/__init__.py +91 -0
  2. pulumi_gcp/alloydb/cluster.py +75 -7
  3. pulumi_gcp/apigee/_inputs.py +91 -0
  4. pulumi_gcp/apigee/endpoint_attachment.py +0 -64
  5. pulumi_gcp/apigee/environment.py +54 -0
  6. pulumi_gcp/apigee/outputs.py +54 -0
  7. pulumi_gcp/apihub/__init__.py +10 -0
  8. pulumi_gcp/apihub/_inputs.py +154 -0
  9. pulumi_gcp/apihub/api_hub_instance.py +784 -0
  10. pulumi_gcp/apihub/outputs.py +124 -0
  11. pulumi_gcp/chronicle/__init__.py +1 -0
  12. pulumi_gcp/chronicle/_inputs.py +124 -0
  13. pulumi_gcp/chronicle/outputs.py +112 -0
  14. pulumi_gcp/chronicle/retrohunt.py +645 -0
  15. pulumi_gcp/cloudrunv2/_inputs.py +197 -0
  16. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  17. pulumi_gcp/cloudrunv2/outputs.py +256 -0
  18. pulumi_gcp/cloudrunv2/service.py +159 -0
  19. pulumi_gcp/colab/__init__.py +5 -0
  20. pulumi_gcp/colab/_inputs.py +131 -0
  21. pulumi_gcp/colab/get_runtime_template_iam_policy.py +182 -0
  22. pulumi_gcp/colab/outputs.py +92 -0
  23. pulumi_gcp/colab/runtime.py +696 -0
  24. pulumi_gcp/colab/runtime_template_iam_binding.py +828 -0
  25. pulumi_gcp/colab/runtime_template_iam_member.py +828 -0
  26. pulumi_gcp/colab/runtime_template_iam_policy.py +667 -0
  27. pulumi_gcp/compute/__init__.py +4 -0
  28. pulumi_gcp/compute/_inputs.py +526 -0
  29. pulumi_gcp/compute/firewall_policy_rule.py +104 -22
  30. pulumi_gcp/compute/firewall_policy_with_rules.py +114 -42
  31. pulumi_gcp/compute/get_instance_template_iam_policy.py +159 -0
  32. pulumi_gcp/compute/instance_template_iam_binding.py +998 -0
  33. pulumi_gcp/compute/instance_template_iam_member.py +998 -0
  34. pulumi_gcp/compute/instance_template_iam_policy.py +817 -0
  35. pulumi_gcp/compute/interconnect_attachment.py +189 -2
  36. pulumi_gcp/compute/network_firewall_policy_rule.py +122 -10
  37. pulumi_gcp/compute/network_firewall_policy_with_rules.py +116 -44
  38. pulumi_gcp/compute/outputs.py +352 -0
  39. pulumi_gcp/compute/project_metadata_item.py +12 -0
  40. pulumi_gcp/compute/public_advertised_prefix.py +87 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_rule.py +130 -10
  42. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +104 -32
  43. pulumi_gcp/compute/router_peer.py +115 -3
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/filestore/get_instance.py +12 -1
  47. pulumi_gcp/filestore/instance.py +75 -0
  48. pulumi_gcp/gemini/code_repository_index.py +29 -33
  49. pulumi_gcp/gemini/get_repository_group_iam_policy.py +28 -2
  50. pulumi_gcp/gemini/repository_group.py +76 -26
  51. pulumi_gcp/gemini/repository_group_iam_binding.py +258 -0
  52. pulumi_gcp/gemini/repository_group_iam_member.py +258 -0
  53. pulumi_gcp/gemini/repository_group_iam_policy.py +258 -0
  54. pulumi_gcp/kms/__init__.py +1 -0
  55. pulumi_gcp/kms/get_key_handles.py +172 -0
  56. pulumi_gcp/kms/outputs.py +45 -0
  57. pulumi_gcp/networksecurity/_inputs.py +72 -0
  58. pulumi_gcp/networksecurity/outputs.py +76 -0
  59. pulumi_gcp/networksecurity/security_profile.py +233 -7
  60. pulumi_gcp/networksecurity/security_profile_group.py +218 -0
  61. pulumi_gcp/organizations/__init__.py +1 -0
  62. pulumi_gcp/organizations/get_s.py +128 -0
  63. pulumi_gcp/organizations/outputs.py +63 -0
  64. pulumi_gcp/parametermanager/__init__.py +3 -0
  65. pulumi_gcp/parametermanager/get_parameter.py +211 -0
  66. pulumi_gcp/parametermanager/get_regional_parameters.py +157 -0
  67. pulumi_gcp/parametermanager/outputs.py +210 -0
  68. pulumi_gcp/parametermanager/parameter_version.py +496 -0
  69. pulumi_gcp/parametermanager/regional_parameter_version.py +10 -38
  70. pulumi_gcp/provider.py +20 -0
  71. pulumi_gcp/pubsub/_inputs.py +213 -1
  72. pulumi_gcp/pubsub/outputs.py +278 -2
  73. pulumi_gcp/pubsub/topic.py +42 -0
  74. pulumi_gcp/pulumi-plugin.json +1 -1
  75. pulumi_gcp/redis/__init__.py +1 -0
  76. pulumi_gcp/redis/_inputs.py +342 -6
  77. pulumi_gcp/redis/cluster.py +223 -102
  78. pulumi_gcp/redis/cluster_user_created_connections.py +845 -0
  79. pulumi_gcp/redis/outputs.py +268 -4
  80. {pulumi_gcp-8.16.0a1738046179.dist-info → pulumi_gcp-8.17.0.dist-info}/METADATA +1 -1
  81. {pulumi_gcp-8.16.0a1738046179.dist-info → pulumi_gcp-8.17.0.dist-info}/RECORD +83 -63
  82. {pulumi_gcp-8.16.0a1738046179.dist-info → pulumi_gcp-8.17.0.dist-info}/WHEEL +0 -0
  83. {pulumi_gcp-8.16.0a1738046179.dist-info → pulumi_gcp-8.17.0.dist-info}/top_level.txt +0 -0
@@ -30,6 +30,7 @@ class InterconnectAttachmentArgs:
30
30
  encryption: Optional[pulumi.Input[str]] = None,
31
31
  interconnect: Optional[pulumi.Input[str]] = None,
32
32
  ipsec_internal_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
33
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
33
34
  mtu: Optional[pulumi.Input[str]] = None,
34
35
  name: Optional[pulumi.Input[str]] = None,
35
36
  project: Optional[pulumi.Input[str]] = None,
@@ -97,6 +98,11 @@ class InterconnectAttachmentArgs:
97
98
  encryption option as IPSEC, later on when creating HA VPN gateway on this
98
99
  interconnect attachment, the HA VPN gateway's IP address will be
99
100
  allocated from regional external IP address pool.
101
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for this resource. These can only be added or modified by the setLabels
102
+ method. Each label key/value pair must comply with RFC1035. Label values may be empty.
103
+
104
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
105
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
100
106
  :param pulumi.Input[str] mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing through
101
107
  this interconnect attachment. Currently, only 1440 and 1500 are allowed. If not specified, the value will default to 1440.
102
108
  :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The
@@ -145,6 +151,8 @@ class InterconnectAttachmentArgs:
145
151
  pulumi.set(__self__, "interconnect", interconnect)
146
152
  if ipsec_internal_addresses is not None:
147
153
  pulumi.set(__self__, "ipsec_internal_addresses", ipsec_internal_addresses)
154
+ if labels is not None:
155
+ pulumi.set(__self__, "labels", labels)
148
156
  if mtu is not None:
149
157
  pulumi.set(__self__, "mtu", mtu)
150
158
  if name is not None:
@@ -318,6 +326,22 @@ class InterconnectAttachmentArgs:
318
326
  def ipsec_internal_addresses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
319
327
  pulumi.set(self, "ipsec_internal_addresses", value)
320
328
 
329
+ @property
330
+ @pulumi.getter
331
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
332
+ """
333
+ Labels for this resource. These can only be added or modified by the setLabels
334
+ method. Each label key/value pair must comply with RFC1035. Label values may be empty.
335
+
336
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
337
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
338
+ """
339
+ return pulumi.get(self, "labels")
340
+
341
+ @labels.setter
342
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
343
+ pulumi.set(self, "labels", value)
344
+
321
345
  @property
322
346
  @pulumi.getter
323
347
  def mtu(self) -> Optional[pulumi.Input[str]]:
@@ -450,16 +474,20 @@ class _InterconnectAttachmentState:
450
474
  customer_router_ipv6_address: Optional[pulumi.Input[str]] = None,
451
475
  description: Optional[pulumi.Input[str]] = None,
452
476
  edge_availability_domain: Optional[pulumi.Input[str]] = None,
477
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
453
478
  encryption: Optional[pulumi.Input[str]] = None,
454
479
  google_reference_id: Optional[pulumi.Input[str]] = None,
455
480
  interconnect: Optional[pulumi.Input[str]] = None,
456
481
  ipsec_internal_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
482
+ label_fingerprint: Optional[pulumi.Input[str]] = None,
483
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
457
484
  mtu: Optional[pulumi.Input[str]] = None,
458
485
  name: Optional[pulumi.Input[str]] = None,
459
486
  pairing_key: Optional[pulumi.Input[str]] = None,
460
487
  partner_asn: Optional[pulumi.Input[str]] = None,
461
488
  private_interconnect_infos: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentPrivateInterconnectInfoArgs']]]] = None,
462
489
  project: Optional[pulumi.Input[str]] = None,
490
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
463
491
  region: Optional[pulumi.Input[str]] = None,
464
492
  router: Optional[pulumi.Input[str]] = None,
465
493
  self_link: Optional[pulumi.Input[str]] = None,
@@ -501,6 +529,7 @@ class _InterconnectAttachmentState:
501
529
  selected availability domain will be provided to the Partner via the
502
530
  pairing key so that the provisioned circuit will lie in the specified
503
531
  domain. If not specified, the value will default to AVAILABILITY_DOMAIN_ANY.
532
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
504
533
  :param pulumi.Input[str] encryption: Indicates the user-supplied encryption option of this interconnect
505
534
  attachment. Can only be specified at attachment creation for PARTNER or
506
535
  DEDICATED attachments.
@@ -534,6 +563,16 @@ class _InterconnectAttachmentState:
534
563
  encryption option as IPSEC, later on when creating HA VPN gateway on this
535
564
  interconnect attachment, the HA VPN gateway's IP address will be
536
565
  allocated from regional external IP address pool.
566
+ :param pulumi.Input[str] label_fingerprint: A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
567
+ of the labels set used for optimistic locking. The fingerprint is initially generated by
568
+ Compute Engine and changes after every request to modify or update labels.
569
+ You must always provide an up-to-date fingerprint hash in order to update or change labels,
570
+ otherwise the request will fail with error 412 conditionNotMet.
571
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for this resource. These can only be added or modified by the setLabels
572
+ method. Each label key/value pair must comply with RFC1035. Label values may be empty.
573
+
574
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
575
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
537
576
  :param pulumi.Input[str] mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing through
538
577
  this interconnect attachment. Currently, only 1440 and 1500 are allowed. If not specified, the value will default to 1440.
539
578
  :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The
@@ -556,6 +595,8 @@ class _InterconnectAttachmentState:
556
595
  Structure is documented below.
557
596
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
558
597
  If it is not provided, the provider project is used.
598
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
599
+ and default labels configured on the provider.
559
600
  :param pulumi.Input[str] region: Region where the regional interconnect attachment resides.
560
601
  :param pulumi.Input[str] router: URL of the cloud router to be used for dynamic routing. This router must be in
561
602
  the same region as this InterconnectAttachment. The InterconnectAttachment will
@@ -600,6 +641,8 @@ class _InterconnectAttachmentState:
600
641
  pulumi.set(__self__, "description", description)
601
642
  if edge_availability_domain is not None:
602
643
  pulumi.set(__self__, "edge_availability_domain", edge_availability_domain)
644
+ if effective_labels is not None:
645
+ pulumi.set(__self__, "effective_labels", effective_labels)
603
646
  if encryption is not None:
604
647
  pulumi.set(__self__, "encryption", encryption)
605
648
  if google_reference_id is not None:
@@ -608,6 +651,10 @@ class _InterconnectAttachmentState:
608
651
  pulumi.set(__self__, "interconnect", interconnect)
609
652
  if ipsec_internal_addresses is not None:
610
653
  pulumi.set(__self__, "ipsec_internal_addresses", ipsec_internal_addresses)
654
+ if label_fingerprint is not None:
655
+ pulumi.set(__self__, "label_fingerprint", label_fingerprint)
656
+ if labels is not None:
657
+ pulumi.set(__self__, "labels", labels)
611
658
  if mtu is not None:
612
659
  pulumi.set(__self__, "mtu", mtu)
613
660
  if name is not None:
@@ -620,6 +667,8 @@ class _InterconnectAttachmentState:
620
667
  pulumi.set(__self__, "private_interconnect_infos", private_interconnect_infos)
621
668
  if project is not None:
622
669
  pulumi.set(__self__, "project", project)
670
+ if pulumi_labels is not None:
671
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
623
672
  if region is not None:
624
673
  pulumi.set(__self__, "region", region)
625
674
  if router is not None:
@@ -778,6 +827,18 @@ class _InterconnectAttachmentState:
778
827
  def edge_availability_domain(self, value: Optional[pulumi.Input[str]]):
779
828
  pulumi.set(self, "edge_availability_domain", value)
780
829
 
830
+ @property
831
+ @pulumi.getter(name="effectiveLabels")
832
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
833
+ """
834
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
835
+ """
836
+ return pulumi.get(self, "effective_labels")
837
+
838
+ @effective_labels.setter
839
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
840
+ pulumi.set(self, "effective_labels", value)
841
+
781
842
  @property
782
843
  @pulumi.getter
783
844
  def encryption(self) -> Optional[pulumi.Input[str]]:
@@ -855,6 +916,38 @@ class _InterconnectAttachmentState:
855
916
  def ipsec_internal_addresses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
856
917
  pulumi.set(self, "ipsec_internal_addresses", value)
857
918
 
919
+ @property
920
+ @pulumi.getter(name="labelFingerprint")
921
+ def label_fingerprint(self) -> Optional[pulumi.Input[str]]:
922
+ """
923
+ A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
924
+ of the labels set used for optimistic locking. The fingerprint is initially generated by
925
+ Compute Engine and changes after every request to modify or update labels.
926
+ You must always provide an up-to-date fingerprint hash in order to update or change labels,
927
+ otherwise the request will fail with error 412 conditionNotMet.
928
+ """
929
+ return pulumi.get(self, "label_fingerprint")
930
+
931
+ @label_fingerprint.setter
932
+ def label_fingerprint(self, value: Optional[pulumi.Input[str]]):
933
+ pulumi.set(self, "label_fingerprint", value)
934
+
935
+ @property
936
+ @pulumi.getter
937
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
938
+ """
939
+ Labels for this resource. These can only be added or modified by the setLabels
940
+ method. Each label key/value pair must comply with RFC1035. Label values may be empty.
941
+
942
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
943
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
944
+ """
945
+ return pulumi.get(self, "labels")
946
+
947
+ @labels.setter
948
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
949
+ pulumi.set(self, "labels", value)
950
+
858
951
  @property
859
952
  @pulumi.getter
860
953
  def mtu(self) -> Optional[pulumi.Input[str]]:
@@ -943,6 +1036,19 @@ class _InterconnectAttachmentState:
943
1036
  def project(self, value: Optional[pulumi.Input[str]]):
944
1037
  pulumi.set(self, "project", value)
945
1038
 
1039
+ @property
1040
+ @pulumi.getter(name="pulumiLabels")
1041
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
1042
+ """
1043
+ The combination of labels configured directly on the resource
1044
+ and default labels configured on the provider.
1045
+ """
1046
+ return pulumi.get(self, "pulumi_labels")
1047
+
1048
+ @pulumi_labels.setter
1049
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
1050
+ pulumi.set(self, "pulumi_labels", value)
1051
+
946
1052
  @property
947
1053
  @pulumi.getter
948
1054
  def region(self) -> Optional[pulumi.Input[str]]:
@@ -1068,6 +1174,7 @@ class InterconnectAttachment(pulumi.CustomResource):
1068
1174
  encryption: Optional[pulumi.Input[str]] = None,
1069
1175
  interconnect: Optional[pulumi.Input[str]] = None,
1070
1176
  ipsec_internal_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1177
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1071
1178
  mtu: Optional[pulumi.Input[str]] = None,
1072
1179
  name: Optional[pulumi.Input[str]] = None,
1073
1180
  project: Optional[pulumi.Input[str]] = None,
@@ -1104,7 +1211,10 @@ class InterconnectAttachment(pulumi.CustomResource):
1104
1211
  edge_availability_domain="AVAILABILITY_DOMAIN_1",
1105
1212
  type="PARTNER",
1106
1213
  router=foobar.id,
1107
- mtu="1500")
1214
+ mtu="1500",
1215
+ labels={
1216
+ "mykey": "myvalue",
1217
+ })
1108
1218
  ```
1109
1219
  ### Compute Interconnect Attachment Ipsec Encryption
1110
1220
 
@@ -1223,6 +1333,11 @@ class InterconnectAttachment(pulumi.CustomResource):
1223
1333
  encryption option as IPSEC, later on when creating HA VPN gateway on this
1224
1334
  interconnect attachment, the HA VPN gateway's IP address will be
1225
1335
  allocated from regional external IP address pool.
1336
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for this resource. These can only be added or modified by the setLabels
1337
+ method. Each label key/value pair must comply with RFC1035. Label values may be empty.
1338
+
1339
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1340
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1226
1341
  :param pulumi.Input[str] mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing through
1227
1342
  this interconnect attachment. Currently, only 1440 and 1500 are allowed. If not specified, the value will default to 1440.
1228
1343
  :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The
@@ -1290,7 +1405,10 @@ class InterconnectAttachment(pulumi.CustomResource):
1290
1405
  edge_availability_domain="AVAILABILITY_DOMAIN_1",
1291
1406
  type="PARTNER",
1292
1407
  router=foobar.id,
1293
- mtu="1500")
1408
+ mtu="1500",
1409
+ labels={
1410
+ "mykey": "myvalue",
1411
+ })
1294
1412
  ```
1295
1413
  ### Compute Interconnect Attachment Ipsec Encryption
1296
1414
 
@@ -1377,6 +1495,7 @@ class InterconnectAttachment(pulumi.CustomResource):
1377
1495
  encryption: Optional[pulumi.Input[str]] = None,
1378
1496
  interconnect: Optional[pulumi.Input[str]] = None,
1379
1497
  ipsec_internal_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1498
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1380
1499
  mtu: Optional[pulumi.Input[str]] = None,
1381
1500
  name: Optional[pulumi.Input[str]] = None,
1382
1501
  project: Optional[pulumi.Input[str]] = None,
@@ -1403,6 +1522,7 @@ class InterconnectAttachment(pulumi.CustomResource):
1403
1522
  __props__.__dict__["encryption"] = encryption
1404
1523
  __props__.__dict__["interconnect"] = interconnect
1405
1524
  __props__.__dict__["ipsec_internal_addresses"] = ipsec_internal_addresses
1525
+ __props__.__dict__["labels"] = labels
1406
1526
  __props__.__dict__["mtu"] = mtu
1407
1527
  __props__.__dict__["name"] = name
1408
1528
  __props__.__dict__["project"] = project
@@ -1419,12 +1539,17 @@ class InterconnectAttachment(pulumi.CustomResource):
1419
1539
  __props__.__dict__["creation_timestamp"] = None
1420
1540
  __props__.__dict__["customer_router_ip_address"] = None
1421
1541
  __props__.__dict__["customer_router_ipv6_address"] = None
1542
+ __props__.__dict__["effective_labels"] = None
1422
1543
  __props__.__dict__["google_reference_id"] = None
1544
+ __props__.__dict__["label_fingerprint"] = None
1423
1545
  __props__.__dict__["pairing_key"] = None
1424
1546
  __props__.__dict__["partner_asn"] = None
1425
1547
  __props__.__dict__["private_interconnect_infos"] = None
1548
+ __props__.__dict__["pulumi_labels"] = None
1426
1549
  __props__.__dict__["self_link"] = None
1427
1550
  __props__.__dict__["state"] = None
1551
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
1552
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
1428
1553
  super(InterconnectAttachment, __self__).__init__(
1429
1554
  'gcp:compute/interconnectAttachment:InterconnectAttachment',
1430
1555
  resource_name,
@@ -1445,16 +1570,20 @@ class InterconnectAttachment(pulumi.CustomResource):
1445
1570
  customer_router_ipv6_address: Optional[pulumi.Input[str]] = None,
1446
1571
  description: Optional[pulumi.Input[str]] = None,
1447
1572
  edge_availability_domain: Optional[pulumi.Input[str]] = None,
1573
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1448
1574
  encryption: Optional[pulumi.Input[str]] = None,
1449
1575
  google_reference_id: Optional[pulumi.Input[str]] = None,
1450
1576
  interconnect: Optional[pulumi.Input[str]] = None,
1451
1577
  ipsec_internal_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1578
+ label_fingerprint: Optional[pulumi.Input[str]] = None,
1579
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1452
1580
  mtu: Optional[pulumi.Input[str]] = None,
1453
1581
  name: Optional[pulumi.Input[str]] = None,
1454
1582
  pairing_key: Optional[pulumi.Input[str]] = None,
1455
1583
  partner_asn: Optional[pulumi.Input[str]] = None,
1456
1584
  private_interconnect_infos: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentPrivateInterconnectInfoArgs', 'InterconnectAttachmentPrivateInterconnectInfoArgsDict']]]]] = None,
1457
1585
  project: Optional[pulumi.Input[str]] = None,
1586
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1458
1587
  region: Optional[pulumi.Input[str]] = None,
1459
1588
  router: Optional[pulumi.Input[str]] = None,
1460
1589
  self_link: Optional[pulumi.Input[str]] = None,
@@ -1501,6 +1630,7 @@ class InterconnectAttachment(pulumi.CustomResource):
1501
1630
  selected availability domain will be provided to the Partner via the
1502
1631
  pairing key so that the provisioned circuit will lie in the specified
1503
1632
  domain. If not specified, the value will default to AVAILABILITY_DOMAIN_ANY.
1633
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1504
1634
  :param pulumi.Input[str] encryption: Indicates the user-supplied encryption option of this interconnect
1505
1635
  attachment. Can only be specified at attachment creation for PARTNER or
1506
1636
  DEDICATED attachments.
@@ -1534,6 +1664,16 @@ class InterconnectAttachment(pulumi.CustomResource):
1534
1664
  encryption option as IPSEC, later on when creating HA VPN gateway on this
1535
1665
  interconnect attachment, the HA VPN gateway's IP address will be
1536
1666
  allocated from regional external IP address pool.
1667
+ :param pulumi.Input[str] label_fingerprint: A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
1668
+ of the labels set used for optimistic locking. The fingerprint is initially generated by
1669
+ Compute Engine and changes after every request to modify or update labels.
1670
+ You must always provide an up-to-date fingerprint hash in order to update or change labels,
1671
+ otherwise the request will fail with error 412 conditionNotMet.
1672
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for this resource. These can only be added or modified by the setLabels
1673
+ method. Each label key/value pair must comply with RFC1035. Label values may be empty.
1674
+
1675
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1676
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1537
1677
  :param pulumi.Input[str] mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing through
1538
1678
  this interconnect attachment. Currently, only 1440 and 1500 are allowed. If not specified, the value will default to 1440.
1539
1679
  :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The
@@ -1556,6 +1696,8 @@ class InterconnectAttachment(pulumi.CustomResource):
1556
1696
  Structure is documented below.
1557
1697
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1558
1698
  If it is not provided, the provider project is used.
1699
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
1700
+ and default labels configured on the provider.
1559
1701
  :param pulumi.Input[str] region: Region where the regional interconnect attachment resides.
1560
1702
  :param pulumi.Input[str] router: URL of the cloud router to be used for dynamic routing. This router must be in
1561
1703
  the same region as this InterconnectAttachment. The InterconnectAttachment will
@@ -1594,16 +1736,20 @@ class InterconnectAttachment(pulumi.CustomResource):
1594
1736
  __props__.__dict__["customer_router_ipv6_address"] = customer_router_ipv6_address
1595
1737
  __props__.__dict__["description"] = description
1596
1738
  __props__.__dict__["edge_availability_domain"] = edge_availability_domain
1739
+ __props__.__dict__["effective_labels"] = effective_labels
1597
1740
  __props__.__dict__["encryption"] = encryption
1598
1741
  __props__.__dict__["google_reference_id"] = google_reference_id
1599
1742
  __props__.__dict__["interconnect"] = interconnect
1600
1743
  __props__.__dict__["ipsec_internal_addresses"] = ipsec_internal_addresses
1744
+ __props__.__dict__["label_fingerprint"] = label_fingerprint
1745
+ __props__.__dict__["labels"] = labels
1601
1746
  __props__.__dict__["mtu"] = mtu
1602
1747
  __props__.__dict__["name"] = name
1603
1748
  __props__.__dict__["pairing_key"] = pairing_key
1604
1749
  __props__.__dict__["partner_asn"] = partner_asn
1605
1750
  __props__.__dict__["private_interconnect_infos"] = private_interconnect_infos
1606
1751
  __props__.__dict__["project"] = project
1752
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
1607
1753
  __props__.__dict__["region"] = region
1608
1754
  __props__.__dict__["router"] = router
1609
1755
  __props__.__dict__["self_link"] = self_link
@@ -1715,6 +1861,14 @@ class InterconnectAttachment(pulumi.CustomResource):
1715
1861
  """
1716
1862
  return pulumi.get(self, "edge_availability_domain")
1717
1863
 
1864
+ @property
1865
+ @pulumi.getter(name="effectiveLabels")
1866
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
1867
+ """
1868
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1869
+ """
1870
+ return pulumi.get(self, "effective_labels")
1871
+
1718
1872
  @property
1719
1873
  @pulumi.getter
1720
1874
  def encryption(self) -> pulumi.Output[Optional[str]]:
@@ -1776,6 +1930,30 @@ class InterconnectAttachment(pulumi.CustomResource):
1776
1930
  """
1777
1931
  return pulumi.get(self, "ipsec_internal_addresses")
1778
1932
 
1933
+ @property
1934
+ @pulumi.getter(name="labelFingerprint")
1935
+ def label_fingerprint(self) -> pulumi.Output[str]:
1936
+ """
1937
+ A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
1938
+ of the labels set used for optimistic locking. The fingerprint is initially generated by
1939
+ Compute Engine and changes after every request to modify or update labels.
1940
+ You must always provide an up-to-date fingerprint hash in order to update or change labels,
1941
+ otherwise the request will fail with error 412 conditionNotMet.
1942
+ """
1943
+ return pulumi.get(self, "label_fingerprint")
1944
+
1945
+ @property
1946
+ @pulumi.getter
1947
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1948
+ """
1949
+ Labels for this resource. These can only be added or modified by the setLabels
1950
+ method. Each label key/value pair must comply with RFC1035. Label values may be empty.
1951
+
1952
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1953
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1954
+ """
1955
+ return pulumi.get(self, "labels")
1956
+
1779
1957
  @property
1780
1958
  @pulumi.getter
1781
1959
  def mtu(self) -> pulumi.Output[str]:
@@ -1840,6 +2018,15 @@ class InterconnectAttachment(pulumi.CustomResource):
1840
2018
  """
1841
2019
  return pulumi.get(self, "project")
1842
2020
 
2021
+ @property
2022
+ @pulumi.getter(name="pulumiLabels")
2023
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
2024
+ """
2025
+ The combination of labels configured directly on the resource
2026
+ and default labels configured on the provider.
2027
+ """
2028
+ return pulumi.get(self, "pulumi_labels")
2029
+
1843
2030
  @property
1844
2031
  @pulumi.getter
1845
2032
  def region(self) -> pulumi.Output[str]:
@@ -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