pulumi-gcp 7.33.0a1721974181__py3-none-any.whl → 7.34.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.

Potentially problematic release.


This version of pulumi-gcp might be problematic. Click here for more details.

Files changed (78) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/alloydb/_inputs.py +174 -0
  3. pulumi_gcp/alloydb/instance.py +54 -0
  4. pulumi_gcp/alloydb/outputs.py +133 -0
  5. pulumi_gcp/apigee/__init__.py +2 -0
  6. pulumi_gcp/apigee/environment_keyvaluemaps.py +370 -0
  7. pulumi_gcp/apigee/environment_keyvaluemaps_entries.py +440 -0
  8. pulumi_gcp/apigee/instance.py +2 -2
  9. pulumi_gcp/apigee/nat_address.py +2 -2
  10. pulumi_gcp/apigee/organization.py +4 -4
  11. pulumi_gcp/apphub/service_project_attachment.py +11 -11
  12. pulumi_gcp/bigquery/_inputs.py +36 -0
  13. pulumi_gcp/bigquery/app_profile.py +54 -0
  14. pulumi_gcp/bigquery/outputs.py +38 -0
  15. pulumi_gcp/bigquery/reservation.py +34 -4
  16. pulumi_gcp/bigquery/table.py +65 -21
  17. pulumi_gcp/bigtable/table.py +27 -26
  18. pulumi_gcp/certificateauthority/authority.py +4 -4
  19. pulumi_gcp/cloudfunctions/function.py +47 -0
  20. pulumi_gcp/cloudfunctions/get_function.py +11 -1
  21. pulumi_gcp/cloudfunctionsv2/function.py +2 -2
  22. pulumi_gcp/cloudrun/_inputs.py +24 -21
  23. pulumi_gcp/cloudrun/outputs.py +20 -24
  24. pulumi_gcp/cloudrunv2/_inputs.py +3 -0
  25. pulumi_gcp/cloudrunv2/outputs.py +4 -0
  26. pulumi_gcp/compute/__init__.py +2 -0
  27. pulumi_gcp/compute/_inputs.py +2334 -329
  28. pulumi_gcp/compute/backend_service.py +6 -0
  29. pulumi_gcp/compute/outputs.py +1466 -7
  30. pulumi_gcp/compute/public_advertised_prefix.py +30 -2
  31. pulumi_gcp/compute/resize_request.py +782 -0
  32. pulumi_gcp/compute/router_peer.py +437 -0
  33. pulumi_gcp/compute/router_route_policy.py +616 -0
  34. pulumi_gcp/compute/service_attachment.py +7 -14
  35. pulumi_gcp/container/_inputs.py +215 -18
  36. pulumi_gcp/container/node_pool.py +0 -14
  37. pulumi_gcp/container/outputs.py +226 -12
  38. pulumi_gcp/databasemigrationservice/private_connection.py +10 -6
  39. pulumi_gcp/dataloss/_inputs.py +707 -21
  40. pulumi_gcp/dataloss/outputs.py +588 -14
  41. pulumi_gcp/datastore/data_store_index.py +24 -12
  42. pulumi_gcp/datastream/_inputs.py +83 -3
  43. pulumi_gcp/datastream/outputs.py +51 -3
  44. pulumi_gcp/datastream/stream.py +170 -0
  45. pulumi_gcp/firebase/database_instance.py +8 -8
  46. pulumi_gcp/firebase/hosting_site.py +8 -8
  47. pulumi_gcp/firestore/index.py +10 -10
  48. pulumi_gcp/gkeonprem/_inputs.py +78 -78
  49. pulumi_gcp/gkeonprem/outputs.py +52 -52
  50. pulumi_gcp/iap/client.py +4 -4
  51. pulumi_gcp/integrationconnectors/_inputs.py +30 -30
  52. pulumi_gcp/integrationconnectors/outputs.py +20 -20
  53. pulumi_gcp/netapp/volume.py +1 -1
  54. pulumi_gcp/networkconnectivity/_inputs.py +3 -6
  55. pulumi_gcp/networkconnectivity/hub.py +60 -49
  56. pulumi_gcp/networkconnectivity/outputs.py +2 -4
  57. pulumi_gcp/networkconnectivity/spoke.py +159 -104
  58. pulumi_gcp/networksecurity/tls_inspection_policy.py +2 -2
  59. pulumi_gcp/orgpolicy/policy.py +4 -4
  60. pulumi_gcp/projects/get_project_service.py +11 -1
  61. pulumi_gcp/projects/service.py +68 -0
  62. pulumi_gcp/projects/service_identity.py +30 -2
  63. pulumi_gcp/pubsub/subscription.py +6 -6
  64. pulumi_gcp/pulumi-plugin.json +1 -1
  65. pulumi_gcp/securesourcemanager/instance.py +528 -4
  66. pulumi_gcp/securitycenter/__init__.py +1 -0
  67. pulumi_gcp/securitycenter/v2_organization_mute_config.py +673 -0
  68. pulumi_gcp/sql/database_instance.py +2 -2
  69. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  70. pulumi_gcp/vmwareengine/get_private_cloud.py +21 -1
  71. pulumi_gcp/vmwareengine/private_cloud.py +121 -2
  72. pulumi_gcp/workbench/_inputs.py +77 -0
  73. pulumi_gcp/workbench/instance.py +18 -4
  74. pulumi_gcp/workbench/outputs.py +67 -1
  75. {pulumi_gcp-7.33.0a1721974181.dist-info → pulumi_gcp-7.34.0.dist-info}/METADATA +1 -1
  76. {pulumi_gcp-7.33.0a1721974181.dist-info → pulumi_gcp-7.34.0.dist-info}/RECORD +78 -73
  77. {pulumi_gcp-7.33.0a1721974181.dist-info → pulumi_gcp-7.34.0.dist-info}/WHEEL +1 -1
  78. {pulumi_gcp-7.33.0a1721974181.dist-info → pulumi_gcp-7.34.0.dist-info}/top_level.txt +0 -0
@@ -29,9 +29,13 @@ class RouterPeerArgs:
29
29
  advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerAdvertisedIpRangeArgs']]]] = None,
30
30
  advertised_route_priority: Optional[pulumi.Input[int]] = None,
31
31
  bfd: Optional[pulumi.Input['RouterPeerBfdArgs']] = None,
32
+ custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]] = None,
33
+ custom_learned_route_priority: Optional[pulumi.Input[int]] = None,
32
34
  enable: Optional[pulumi.Input[bool]] = None,
33
35
  enable_ipv4: Optional[pulumi.Input[bool]] = None,
34
36
  enable_ipv6: Optional[pulumi.Input[bool]] = None,
37
+ export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
38
+ import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35
39
  ip_address: Optional[pulumi.Input[str]] = None,
36
40
  ipv4_nexthop_address: Optional[pulumi.Input[str]] = None,
37
41
  ipv6_nexthop_address: Optional[pulumi.Input[str]] = None,
@@ -77,12 +81,21 @@ class RouterPeerArgs:
77
81
  length, the routes with the lowest priority value win.
78
82
  :param pulumi.Input['RouterPeerBfdArgs'] bfd: BFD configuration for the BGP peering.
79
83
  Structure is documented below.
84
+ :param pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a
85
+ subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.
86
+ :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route
87
+ ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a
88
+ priority of 100 to the ranges.
80
89
  :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session
81
90
  with the peer is terminated and all associated routing information is removed.
82
91
  If set to true, the peer connection can be established with routing information.
83
92
  The default is true.
84
93
  :param pulumi.Input[bool] enable_ipv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.
85
94
  :param pulumi.Input[bool] enable_ipv6: Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
95
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] export_policies: routers.list of export policies applied to this peer, in the order they must be evaluated.
96
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.
97
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] import_policies: routers.list of import policies applied to this peer, in the order they must be evaluated.
98
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.
86
99
  :param pulumi.Input[str] ip_address: IP address of the interface inside Google Cloud Platform.
87
100
  Only IPv4 is supported.
88
101
  :param pulumi.Input[str] ipv4_nexthop_address: IPv4 address of the interface inside Google Cloud Platform.
@@ -127,12 +140,20 @@ class RouterPeerArgs:
127
140
  pulumi.set(__self__, "advertised_route_priority", advertised_route_priority)
128
141
  if bfd is not None:
129
142
  pulumi.set(__self__, "bfd", bfd)
143
+ if custom_learned_ip_ranges is not None:
144
+ pulumi.set(__self__, "custom_learned_ip_ranges", custom_learned_ip_ranges)
145
+ if custom_learned_route_priority is not None:
146
+ pulumi.set(__self__, "custom_learned_route_priority", custom_learned_route_priority)
130
147
  if enable is not None:
131
148
  pulumi.set(__self__, "enable", enable)
132
149
  if enable_ipv4 is not None:
133
150
  pulumi.set(__self__, "enable_ipv4", enable_ipv4)
134
151
  if enable_ipv6 is not None:
135
152
  pulumi.set(__self__, "enable_ipv6", enable_ipv6)
153
+ if export_policies is not None:
154
+ pulumi.set(__self__, "export_policies", export_policies)
155
+ if import_policies is not None:
156
+ pulumi.set(__self__, "import_policies", import_policies)
136
157
  if ip_address is not None:
137
158
  pulumi.set(__self__, "ip_address", ip_address)
138
159
  if ipv4_nexthop_address is not None:
@@ -276,6 +297,33 @@ class RouterPeerArgs:
276
297
  def bfd(self, value: Optional[pulumi.Input['RouterPeerBfdArgs']]):
277
298
  pulumi.set(self, "bfd", value)
278
299
 
300
+ @property
301
+ @pulumi.getter(name="customLearnedIpRanges")
302
+ def custom_learned_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]:
303
+ """
304
+ The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a
305
+ subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.
306
+ """
307
+ return pulumi.get(self, "custom_learned_ip_ranges")
308
+
309
+ @custom_learned_ip_ranges.setter
310
+ def custom_learned_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]):
311
+ pulumi.set(self, "custom_learned_ip_ranges", value)
312
+
313
+ @property
314
+ @pulumi.getter(name="customLearnedRoutePriority")
315
+ def custom_learned_route_priority(self) -> Optional[pulumi.Input[int]]:
316
+ """
317
+ The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route
318
+ ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a
319
+ priority of 100 to the ranges.
320
+ """
321
+ return pulumi.get(self, "custom_learned_route_priority")
322
+
323
+ @custom_learned_route_priority.setter
324
+ def custom_learned_route_priority(self, value: Optional[pulumi.Input[int]]):
325
+ pulumi.set(self, "custom_learned_route_priority", value)
326
+
279
327
  @property
280
328
  @pulumi.getter
281
329
  def enable(self) -> Optional[pulumi.Input[bool]]:
@@ -315,6 +363,32 @@ class RouterPeerArgs:
315
363
  def enable_ipv6(self, value: Optional[pulumi.Input[bool]]):
316
364
  pulumi.set(self, "enable_ipv6", value)
317
365
 
366
+ @property
367
+ @pulumi.getter(name="exportPolicies")
368
+ def export_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
369
+ """
370
+ routers.list of export policies applied to this peer, in the order they must be evaluated.
371
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.
372
+ """
373
+ return pulumi.get(self, "export_policies")
374
+
375
+ @export_policies.setter
376
+ def export_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
377
+ pulumi.set(self, "export_policies", value)
378
+
379
+ @property
380
+ @pulumi.getter(name="importPolicies")
381
+ def import_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
382
+ """
383
+ routers.list of import policies applied to this peer, in the order they must be evaluated.
384
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.
385
+ """
386
+ return pulumi.get(self, "import_policies")
387
+
388
+ @import_policies.setter
389
+ def import_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
390
+ pulumi.set(self, "import_policies", value)
391
+
318
392
  @property
319
393
  @pulumi.getter(name="ipAddress")
320
394
  def ip_address(self) -> Optional[pulumi.Input[str]]:
@@ -475,9 +549,13 @@ class _RouterPeerState:
475
549
  advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerAdvertisedIpRangeArgs']]]] = None,
476
550
  advertised_route_priority: Optional[pulumi.Input[int]] = None,
477
551
  bfd: Optional[pulumi.Input['RouterPeerBfdArgs']] = None,
552
+ custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]] = None,
553
+ custom_learned_route_priority: Optional[pulumi.Input[int]] = None,
478
554
  enable: Optional[pulumi.Input[bool]] = None,
479
555
  enable_ipv4: Optional[pulumi.Input[bool]] = None,
480
556
  enable_ipv6: Optional[pulumi.Input[bool]] = None,
557
+ export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
558
+ import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
481
559
  interface: Optional[pulumi.Input[str]] = None,
482
560
  ip_address: Optional[pulumi.Input[str]] = None,
483
561
  ipv4_nexthop_address: Optional[pulumi.Input[str]] = None,
@@ -520,12 +598,21 @@ class _RouterPeerState:
520
598
  length, the routes with the lowest priority value win.
521
599
  :param pulumi.Input['RouterPeerBfdArgs'] bfd: BFD configuration for the BGP peering.
522
600
  Structure is documented below.
601
+ :param pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a
602
+ subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.
603
+ :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route
604
+ ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a
605
+ priority of 100 to the ranges.
523
606
  :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session
524
607
  with the peer is terminated and all associated routing information is removed.
525
608
  If set to true, the peer connection can be established with routing information.
526
609
  The default is true.
527
610
  :param pulumi.Input[bool] enable_ipv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.
528
611
  :param pulumi.Input[bool] enable_ipv6: Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
612
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] export_policies: routers.list of export policies applied to this peer, in the order they must be evaluated.
613
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.
614
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] import_policies: routers.list of import policies applied to this peer, in the order they must be evaluated.
615
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.
529
616
  :param pulumi.Input[str] interface: Name of the interface the BGP peer is associated with.
530
617
  :param pulumi.Input[str] ip_address: IP address of the interface inside Google Cloud Platform.
531
618
  Only IPv4 is supported.
@@ -583,12 +670,20 @@ class _RouterPeerState:
583
670
  pulumi.set(__self__, "advertised_route_priority", advertised_route_priority)
584
671
  if bfd is not None:
585
672
  pulumi.set(__self__, "bfd", bfd)
673
+ if custom_learned_ip_ranges is not None:
674
+ pulumi.set(__self__, "custom_learned_ip_ranges", custom_learned_ip_ranges)
675
+ if custom_learned_route_priority is not None:
676
+ pulumi.set(__self__, "custom_learned_route_priority", custom_learned_route_priority)
586
677
  if enable is not None:
587
678
  pulumi.set(__self__, "enable", enable)
588
679
  if enable_ipv4 is not None:
589
680
  pulumi.set(__self__, "enable_ipv4", enable_ipv4)
590
681
  if enable_ipv6 is not None:
591
682
  pulumi.set(__self__, "enable_ipv6", enable_ipv6)
683
+ if export_policies is not None:
684
+ pulumi.set(__self__, "export_policies", export_policies)
685
+ if import_policies is not None:
686
+ pulumi.set(__self__, "import_policies", import_policies)
592
687
  if interface is not None:
593
688
  pulumi.set(__self__, "interface", interface)
594
689
  if ip_address is not None:
@@ -700,6 +795,33 @@ class _RouterPeerState:
700
795
  def bfd(self, value: Optional[pulumi.Input['RouterPeerBfdArgs']]):
701
796
  pulumi.set(self, "bfd", value)
702
797
 
798
+ @property
799
+ @pulumi.getter(name="customLearnedIpRanges")
800
+ def custom_learned_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]:
801
+ """
802
+ The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a
803
+ subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.
804
+ """
805
+ return pulumi.get(self, "custom_learned_ip_ranges")
806
+
807
+ @custom_learned_ip_ranges.setter
808
+ def custom_learned_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]):
809
+ pulumi.set(self, "custom_learned_ip_ranges", value)
810
+
811
+ @property
812
+ @pulumi.getter(name="customLearnedRoutePriority")
813
+ def custom_learned_route_priority(self) -> Optional[pulumi.Input[int]]:
814
+ """
815
+ The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route
816
+ ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a
817
+ priority of 100 to the ranges.
818
+ """
819
+ return pulumi.get(self, "custom_learned_route_priority")
820
+
821
+ @custom_learned_route_priority.setter
822
+ def custom_learned_route_priority(self, value: Optional[pulumi.Input[int]]):
823
+ pulumi.set(self, "custom_learned_route_priority", value)
824
+
703
825
  @property
704
826
  @pulumi.getter
705
827
  def enable(self) -> Optional[pulumi.Input[bool]]:
@@ -739,6 +861,32 @@ class _RouterPeerState:
739
861
  def enable_ipv6(self, value: Optional[pulumi.Input[bool]]):
740
862
  pulumi.set(self, "enable_ipv6", value)
741
863
 
864
+ @property
865
+ @pulumi.getter(name="exportPolicies")
866
+ def export_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
867
+ """
868
+ routers.list of export policies applied to this peer, in the order they must be evaluated.
869
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.
870
+ """
871
+ return pulumi.get(self, "export_policies")
872
+
873
+ @export_policies.setter
874
+ def export_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
875
+ pulumi.set(self, "export_policies", value)
876
+
877
+ @property
878
+ @pulumi.getter(name="importPolicies")
879
+ def import_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
880
+ """
881
+ routers.list of import policies applied to this peer, in the order they must be evaluated.
882
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.
883
+ """
884
+ return pulumi.get(self, "import_policies")
885
+
886
+ @import_policies.setter
887
+ def import_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
888
+ pulumi.set(self, "import_policies", value)
889
+
742
890
  @property
743
891
  @pulumi.getter
744
892
  def interface(self) -> Optional[pulumi.Input[str]]:
@@ -961,9 +1109,13 @@ class RouterPeer(pulumi.CustomResource):
961
1109
  advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerAdvertisedIpRangeArgs', 'RouterPeerAdvertisedIpRangeArgsDict']]]]] = None,
962
1110
  advertised_route_priority: Optional[pulumi.Input[int]] = None,
963
1111
  bfd: Optional[pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']]] = None,
1112
+ custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]]] = None,
1113
+ custom_learned_route_priority: Optional[pulumi.Input[int]] = None,
964
1114
  enable: Optional[pulumi.Input[bool]] = None,
965
1115
  enable_ipv4: Optional[pulumi.Input[bool]] = None,
966
1116
  enable_ipv6: Optional[pulumi.Input[bool]] = None,
1117
+ export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1118
+ import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
967
1119
  interface: Optional[pulumi.Input[str]] = None,
968
1120
  ip_address: Optional[pulumi.Input[str]] = None,
969
1121
  ipv4_nexthop_address: Optional[pulumi.Input[str]] = None,
@@ -1149,6 +1301,113 @@ class RouterPeer(pulumi.CustomResource):
1149
1301
  })
1150
1302
  ```
1151
1303
 
1304
+ ### Router Peer Export And Import Policies
1305
+
1306
+ ```python
1307
+ import pulumi
1308
+ import pulumi_gcp as gcp
1309
+
1310
+ network = gcp.compute.Network("network",
1311
+ name="my-router-net",
1312
+ auto_create_subnetworks=False)
1313
+ subnetwork = gcp.compute.Subnetwork("subnetwork",
1314
+ name="my-router-subnet",
1315
+ network=network.self_link,
1316
+ ip_cidr_range="10.0.0.0/16",
1317
+ region="us-central1")
1318
+ address = gcp.compute.Address("address",
1319
+ name="my-router",
1320
+ region=subnetwork.region)
1321
+ vpn_gateway = gcp.compute.HaVpnGateway("vpn_gateway",
1322
+ name="my-router-gateway",
1323
+ network=network.self_link,
1324
+ region=subnetwork.region)
1325
+ external_gateway = gcp.compute.ExternalVpnGateway("external_gateway",
1326
+ name="my-router-external-gateway",
1327
+ redundancy_type="SINGLE_IP_INTERNALLY_REDUNDANT",
1328
+ description="An externally managed VPN gateway",
1329
+ interfaces=[{
1330
+ "id": 0,
1331
+ "ip_address": "8.8.8.8",
1332
+ }])
1333
+ router = gcp.compute.Router("router",
1334
+ name="my-router",
1335
+ region=subnetwork.region,
1336
+ network=network.self_link,
1337
+ bgp={
1338
+ "asn": 64514,
1339
+ })
1340
+ vpn_tunnel = gcp.compute.VPNTunnel("vpn_tunnel",
1341
+ name="my-router",
1342
+ region=subnetwork.region,
1343
+ vpn_gateway=vpn_gateway.id,
1344
+ peer_external_gateway=external_gateway.id,
1345
+ peer_external_gateway_interface=0,
1346
+ shared_secret="unguessable",
1347
+ router=router.name,
1348
+ vpn_gateway_interface=0)
1349
+ router_interface = gcp.compute.RouterInterface("router_interface",
1350
+ name="my-router",
1351
+ router=router.name,
1352
+ region=router.region,
1353
+ vpn_tunnel=vpn_tunnel.name)
1354
+ rp_export = gcp.compute.RouterRoutePolicy("rp-export",
1355
+ name="my-router-rp-export",
1356
+ router=router.name,
1357
+ region=router.region,
1358
+ type="ROUTE_POLICY_TYPE_EXPORT",
1359
+ terms=[{
1360
+ "priority": 2,
1361
+ "match": {
1362
+ "expression": "destination == '10.0.0.0/12'",
1363
+ "title": "export_expression",
1364
+ "description": "acceptance expression for export",
1365
+ },
1366
+ "actions": [{
1367
+ "expression": "accept()",
1368
+ }],
1369
+ }],
1370
+ opts = pulumi.ResourceOptions(depends_on=[router_interface]))
1371
+ rp_import = gcp.compute.RouterRoutePolicy("rp-import",
1372
+ name="my-router-rp-import",
1373
+ router=router.name,
1374
+ region=router.region,
1375
+ type="ROUTE_POLICY_TYPE_IMPORT",
1376
+ terms=[{
1377
+ "priority": 1,
1378
+ "match": {
1379
+ "expression": "destination == '10.0.0.0/12'",
1380
+ "title": "import_expression",
1381
+ "description": "acceptance expression for import",
1382
+ },
1383
+ "actions": [{
1384
+ "expression": "accept()",
1385
+ }],
1386
+ }],
1387
+ opts = pulumi.ResourceOptions(depends_on=[
1388
+ router_interface,
1389
+ rp_export,
1390
+ ]))
1391
+ router_peer = gcp.compute.RouterPeer("router_peer",
1392
+ name="my-router-peer",
1393
+ router=router.name,
1394
+ region=router.region,
1395
+ peer_asn=65515,
1396
+ advertised_route_priority=100,
1397
+ interface=router_interface.name,
1398
+ md5_authentication_key={
1399
+ "name": "my-router-peer-key",
1400
+ "key": "my-router-peer-key-value",
1401
+ },
1402
+ import_policies=[rp_import.name],
1403
+ export_policies=[rp_export.name],
1404
+ opts = pulumi.ResourceOptions(depends_on=[
1405
+ rp_export,
1406
+ rp_import,
1407
+ router_interface,
1408
+ ]))
1409
+ ```
1410
+
1152
1411
  ## Import
1153
1412
 
1154
1413
  RouterBgpPeer can be imported using any of these accepted formats:
@@ -1206,12 +1465,21 @@ class RouterPeer(pulumi.CustomResource):
1206
1465
  length, the routes with the lowest priority value win.
1207
1466
  :param pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']] bfd: BFD configuration for the BGP peering.
1208
1467
  Structure is documented below.
1468
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a
1469
+ subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.
1470
+ :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route
1471
+ ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a
1472
+ priority of 100 to the ranges.
1209
1473
  :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session
1210
1474
  with the peer is terminated and all associated routing information is removed.
1211
1475
  If set to true, the peer connection can be established with routing information.
1212
1476
  The default is true.
1213
1477
  :param pulumi.Input[bool] enable_ipv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.
1214
1478
  :param pulumi.Input[bool] enable_ipv6: Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
1479
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] export_policies: routers.list of export policies applied to this peer, in the order they must be evaluated.
1480
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.
1481
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] import_policies: routers.list of import policies applied to this peer, in the order they must be evaluated.
1482
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.
1215
1483
  :param pulumi.Input[str] interface: Name of the interface the BGP peer is associated with.
1216
1484
  :param pulumi.Input[str] ip_address: IP address of the interface inside Google Cloud Platform.
1217
1485
  Only IPv4 is supported.
@@ -1426,6 +1694,113 @@ class RouterPeer(pulumi.CustomResource):
1426
1694
  })
1427
1695
  ```
1428
1696
 
1697
+ ### Router Peer Export And Import Policies
1698
+
1699
+ ```python
1700
+ import pulumi
1701
+ import pulumi_gcp as gcp
1702
+
1703
+ network = gcp.compute.Network("network",
1704
+ name="my-router-net",
1705
+ auto_create_subnetworks=False)
1706
+ subnetwork = gcp.compute.Subnetwork("subnetwork",
1707
+ name="my-router-subnet",
1708
+ network=network.self_link,
1709
+ ip_cidr_range="10.0.0.0/16",
1710
+ region="us-central1")
1711
+ address = gcp.compute.Address("address",
1712
+ name="my-router",
1713
+ region=subnetwork.region)
1714
+ vpn_gateway = gcp.compute.HaVpnGateway("vpn_gateway",
1715
+ name="my-router-gateway",
1716
+ network=network.self_link,
1717
+ region=subnetwork.region)
1718
+ external_gateway = gcp.compute.ExternalVpnGateway("external_gateway",
1719
+ name="my-router-external-gateway",
1720
+ redundancy_type="SINGLE_IP_INTERNALLY_REDUNDANT",
1721
+ description="An externally managed VPN gateway",
1722
+ interfaces=[{
1723
+ "id": 0,
1724
+ "ip_address": "8.8.8.8",
1725
+ }])
1726
+ router = gcp.compute.Router("router",
1727
+ name="my-router",
1728
+ region=subnetwork.region,
1729
+ network=network.self_link,
1730
+ bgp={
1731
+ "asn": 64514,
1732
+ })
1733
+ vpn_tunnel = gcp.compute.VPNTunnel("vpn_tunnel",
1734
+ name="my-router",
1735
+ region=subnetwork.region,
1736
+ vpn_gateway=vpn_gateway.id,
1737
+ peer_external_gateway=external_gateway.id,
1738
+ peer_external_gateway_interface=0,
1739
+ shared_secret="unguessable",
1740
+ router=router.name,
1741
+ vpn_gateway_interface=0)
1742
+ router_interface = gcp.compute.RouterInterface("router_interface",
1743
+ name="my-router",
1744
+ router=router.name,
1745
+ region=router.region,
1746
+ vpn_tunnel=vpn_tunnel.name)
1747
+ rp_export = gcp.compute.RouterRoutePolicy("rp-export",
1748
+ name="my-router-rp-export",
1749
+ router=router.name,
1750
+ region=router.region,
1751
+ type="ROUTE_POLICY_TYPE_EXPORT",
1752
+ terms=[{
1753
+ "priority": 2,
1754
+ "match": {
1755
+ "expression": "destination == '10.0.0.0/12'",
1756
+ "title": "export_expression",
1757
+ "description": "acceptance expression for export",
1758
+ },
1759
+ "actions": [{
1760
+ "expression": "accept()",
1761
+ }],
1762
+ }],
1763
+ opts = pulumi.ResourceOptions(depends_on=[router_interface]))
1764
+ rp_import = gcp.compute.RouterRoutePolicy("rp-import",
1765
+ name="my-router-rp-import",
1766
+ router=router.name,
1767
+ region=router.region,
1768
+ type="ROUTE_POLICY_TYPE_IMPORT",
1769
+ terms=[{
1770
+ "priority": 1,
1771
+ "match": {
1772
+ "expression": "destination == '10.0.0.0/12'",
1773
+ "title": "import_expression",
1774
+ "description": "acceptance expression for import",
1775
+ },
1776
+ "actions": [{
1777
+ "expression": "accept()",
1778
+ }],
1779
+ }],
1780
+ opts = pulumi.ResourceOptions(depends_on=[
1781
+ router_interface,
1782
+ rp_export,
1783
+ ]))
1784
+ router_peer = gcp.compute.RouterPeer("router_peer",
1785
+ name="my-router-peer",
1786
+ router=router.name,
1787
+ region=router.region,
1788
+ peer_asn=65515,
1789
+ advertised_route_priority=100,
1790
+ interface=router_interface.name,
1791
+ md5_authentication_key={
1792
+ "name": "my-router-peer-key",
1793
+ "key": "my-router-peer-key-value",
1794
+ },
1795
+ import_policies=[rp_import.name],
1796
+ export_policies=[rp_export.name],
1797
+ opts = pulumi.ResourceOptions(depends_on=[
1798
+ rp_export,
1799
+ rp_import,
1800
+ router_interface,
1801
+ ]))
1802
+ ```
1803
+
1429
1804
  ## Import
1430
1805
 
1431
1806
  RouterBgpPeer can be imported using any of these accepted formats:
@@ -1476,9 +1851,13 @@ class RouterPeer(pulumi.CustomResource):
1476
1851
  advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerAdvertisedIpRangeArgs', 'RouterPeerAdvertisedIpRangeArgsDict']]]]] = None,
1477
1852
  advertised_route_priority: Optional[pulumi.Input[int]] = None,
1478
1853
  bfd: Optional[pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']]] = None,
1854
+ custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]]] = None,
1855
+ custom_learned_route_priority: Optional[pulumi.Input[int]] = None,
1479
1856
  enable: Optional[pulumi.Input[bool]] = None,
1480
1857
  enable_ipv4: Optional[pulumi.Input[bool]] = None,
1481
1858
  enable_ipv6: Optional[pulumi.Input[bool]] = None,
1859
+ export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1860
+ import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1482
1861
  interface: Optional[pulumi.Input[str]] = None,
1483
1862
  ip_address: Optional[pulumi.Input[str]] = None,
1484
1863
  ipv4_nexthop_address: Optional[pulumi.Input[str]] = None,
@@ -1507,9 +1886,13 @@ class RouterPeer(pulumi.CustomResource):
1507
1886
  __props__.__dict__["advertised_ip_ranges"] = advertised_ip_ranges
1508
1887
  __props__.__dict__["advertised_route_priority"] = advertised_route_priority
1509
1888
  __props__.__dict__["bfd"] = bfd
1889
+ __props__.__dict__["custom_learned_ip_ranges"] = custom_learned_ip_ranges
1890
+ __props__.__dict__["custom_learned_route_priority"] = custom_learned_route_priority
1510
1891
  __props__.__dict__["enable"] = enable
1511
1892
  __props__.__dict__["enable_ipv4"] = enable_ipv4
1512
1893
  __props__.__dict__["enable_ipv6"] = enable_ipv6
1894
+ __props__.__dict__["export_policies"] = export_policies
1895
+ __props__.__dict__["import_policies"] = import_policies
1513
1896
  if interface is None and not opts.urn:
1514
1897
  raise TypeError("Missing required property 'interface'")
1515
1898
  __props__.__dict__["interface"] = interface
@@ -1546,9 +1929,13 @@ class RouterPeer(pulumi.CustomResource):
1546
1929
  advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerAdvertisedIpRangeArgs', 'RouterPeerAdvertisedIpRangeArgsDict']]]]] = None,
1547
1930
  advertised_route_priority: Optional[pulumi.Input[int]] = None,
1548
1931
  bfd: Optional[pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']]] = None,
1932
+ custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]]] = None,
1933
+ custom_learned_route_priority: Optional[pulumi.Input[int]] = None,
1549
1934
  enable: Optional[pulumi.Input[bool]] = None,
1550
1935
  enable_ipv4: Optional[pulumi.Input[bool]] = None,
1551
1936
  enable_ipv6: Optional[pulumi.Input[bool]] = None,
1937
+ export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1938
+ import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1552
1939
  interface: Optional[pulumi.Input[str]] = None,
1553
1940
  ip_address: Optional[pulumi.Input[str]] = None,
1554
1941
  ipv4_nexthop_address: Optional[pulumi.Input[str]] = None,
@@ -1596,12 +1983,21 @@ class RouterPeer(pulumi.CustomResource):
1596
1983
  length, the routes with the lowest priority value win.
1597
1984
  :param pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']] bfd: BFD configuration for the BGP peering.
1598
1985
  Structure is documented below.
1986
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a
1987
+ subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.
1988
+ :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route
1989
+ ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a
1990
+ priority of 100 to the ranges.
1599
1991
  :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session
1600
1992
  with the peer is terminated and all associated routing information is removed.
1601
1993
  If set to true, the peer connection can be established with routing information.
1602
1994
  The default is true.
1603
1995
  :param pulumi.Input[bool] enable_ipv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.
1604
1996
  :param pulumi.Input[bool] enable_ipv6: Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
1997
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] export_policies: routers.list of export policies applied to this peer, in the order they must be evaluated.
1998
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.
1999
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] import_policies: routers.list of import policies applied to this peer, in the order they must be evaluated.
2000
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.
1605
2001
  :param pulumi.Input[str] interface: Name of the interface the BGP peer is associated with.
1606
2002
  :param pulumi.Input[str] ip_address: IP address of the interface inside Google Cloud Platform.
1607
2003
  Only IPv4 is supported.
@@ -1658,9 +2054,13 @@ class RouterPeer(pulumi.CustomResource):
1658
2054
  __props__.__dict__["advertised_ip_ranges"] = advertised_ip_ranges
1659
2055
  __props__.__dict__["advertised_route_priority"] = advertised_route_priority
1660
2056
  __props__.__dict__["bfd"] = bfd
2057
+ __props__.__dict__["custom_learned_ip_ranges"] = custom_learned_ip_ranges
2058
+ __props__.__dict__["custom_learned_route_priority"] = custom_learned_route_priority
1661
2059
  __props__.__dict__["enable"] = enable
1662
2060
  __props__.__dict__["enable_ipv4"] = enable_ipv4
1663
2061
  __props__.__dict__["enable_ipv6"] = enable_ipv6
2062
+ __props__.__dict__["export_policies"] = export_policies
2063
+ __props__.__dict__["import_policies"] = import_policies
1664
2064
  __props__.__dict__["interface"] = interface
1665
2065
  __props__.__dict__["ip_address"] = ip_address
1666
2066
  __props__.__dict__["ipv4_nexthop_address"] = ipv4_nexthop_address
@@ -1738,6 +2138,25 @@ class RouterPeer(pulumi.CustomResource):
1738
2138
  """
1739
2139
  return pulumi.get(self, "bfd")
1740
2140
 
2141
+ @property
2142
+ @pulumi.getter(name="customLearnedIpRanges")
2143
+ def custom_learned_ip_ranges(self) -> pulumi.Output[Optional[Sequence['outputs.RouterPeerCustomLearnedIpRange']]]:
2144
+ """
2145
+ The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a
2146
+ subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.
2147
+ """
2148
+ return pulumi.get(self, "custom_learned_ip_ranges")
2149
+
2150
+ @property
2151
+ @pulumi.getter(name="customLearnedRoutePriority")
2152
+ def custom_learned_route_priority(self) -> pulumi.Output[Optional[int]]:
2153
+ """
2154
+ The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route
2155
+ ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a
2156
+ priority of 100 to the ranges.
2157
+ """
2158
+ return pulumi.get(self, "custom_learned_route_priority")
2159
+
1741
2160
  @property
1742
2161
  @pulumi.getter
1743
2162
  def enable(self) -> pulumi.Output[Optional[bool]]:
@@ -1765,6 +2184,24 @@ class RouterPeer(pulumi.CustomResource):
1765
2184
  """
1766
2185
  return pulumi.get(self, "enable_ipv6")
1767
2186
 
2187
+ @property
2188
+ @pulumi.getter(name="exportPolicies")
2189
+ def export_policies(self) -> pulumi.Output[Optional[Sequence[str]]]:
2190
+ """
2191
+ routers.list of export policies applied to this peer, in the order they must be evaluated.
2192
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.
2193
+ """
2194
+ return pulumi.get(self, "export_policies")
2195
+
2196
+ @property
2197
+ @pulumi.getter(name="importPolicies")
2198
+ def import_policies(self) -> pulumi.Output[Optional[Sequence[str]]]:
2199
+ """
2200
+ routers.list of import policies applied to this peer, in the order they must be evaluated.
2201
+ The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.
2202
+ """
2203
+ return pulumi.get(self, "import_policies")
2204
+
1768
2205
  @property
1769
2206
  @pulumi.getter
1770
2207
  def interface(self) -> pulumi.Output[str]: