pulumi-gcp 8.21.0a1741156431__py3-none-any.whl → 8.22.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 (110) hide show
  1. pulumi_gcp/__init__.py +96 -0
  2. pulumi_gcp/alloydb/_inputs.py +66 -0
  3. pulumi_gcp/alloydb/cluster.py +148 -0
  4. pulumi_gcp/alloydb/instance.py +28 -28
  5. pulumi_gcp/alloydb/outputs.py +95 -0
  6. pulumi_gcp/apihub/__init__.py +1 -0
  7. pulumi_gcp/apihub/host_project_registration.py +535 -0
  8. pulumi_gcp/backupdisasterrecovery/_inputs.py +3 -3
  9. pulumi_gcp/backupdisasterrecovery/outputs.py +4 -4
  10. pulumi_gcp/bigquery/table.py +1 -1
  11. pulumi_gcp/certificatemanager/certificate.py +53 -7
  12. pulumi_gcp/certificatemanager/outputs.py +8 -2
  13. pulumi_gcp/compute/__init__.py +6 -0
  14. pulumi_gcp/compute/_inputs.py +1370 -17
  15. pulumi_gcp/compute/backend_service.py +209 -14
  16. pulumi_gcp/compute/ca_external_account_key.py +48 -3
  17. pulumi_gcp/compute/disk.py +403 -0
  18. pulumi_gcp/compute/firewall_policy_association.py +28 -2
  19. pulumi_gcp/compute/get_backend_service.py +12 -1
  20. pulumi_gcp/compute/get_disk.py +78 -1
  21. pulumi_gcp/compute/get_instant_snapshot_iam_policy.py +182 -0
  22. pulumi_gcp/compute/get_region_disk.py +23 -1
  23. pulumi_gcp/compute/get_region_ssl_policy.py +203 -0
  24. pulumi_gcp/compute/instant_snapshot.py +796 -0
  25. pulumi_gcp/compute/instant_snapshot_iam_binding.py +1087 -0
  26. pulumi_gcp/compute/instant_snapshot_iam_member.py +1087 -0
  27. pulumi_gcp/compute/instant_snapshot_iam_policy.py +906 -0
  28. pulumi_gcp/compute/outputs.py +1952 -29
  29. pulumi_gcp/compute/region_backend_service.py +207 -14
  30. pulumi_gcp/compute/region_disk.py +114 -0
  31. pulumi_gcp/compute/route.py +228 -2
  32. pulumi_gcp/compute/shared_vpc_service_project.py +0 -4
  33. pulumi_gcp/compute/subnetwork.py +147 -0
  34. pulumi_gcp/compute/url_map.py +8 -0
  35. pulumi_gcp/container/_inputs.py +6 -6
  36. pulumi_gcp/container/outputs.py +8 -8
  37. pulumi_gcp/datacatalog/entry.py +4 -0
  38. pulumi_gcp/datacatalog/tag.py +4 -0
  39. pulumi_gcp/dataproc/_inputs.py +12 -15
  40. pulumi_gcp/dataproc/outputs.py +8 -10
  41. pulumi_gcp/datastream/_inputs.py +273 -0
  42. pulumi_gcp/datastream/connection_profile.py +54 -2
  43. pulumi_gcp/datastream/outputs.py +224 -0
  44. pulumi_gcp/discoveryengine/target_site.py +4 -4
  45. pulumi_gcp/eventarc/__init__.py +2 -0
  46. pulumi_gcp/eventarc/_inputs.py +80 -0
  47. pulumi_gcp/eventarc/channel.py +85 -93
  48. pulumi_gcp/eventarc/google_api_source.py +997 -0
  49. pulumi_gcp/eventarc/message_bus.py +927 -0
  50. pulumi_gcp/eventarc/outputs.py +82 -0
  51. pulumi_gcp/firebase/data_connect_service.py +40 -2
  52. pulumi_gcp/gemini/__init__.py +1 -0
  53. pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +20 -8
  54. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +6 -0
  55. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +734 -0
  56. pulumi_gcp/gemini/logging_setting_binding.py +7 -7
  57. pulumi_gcp/iam/__init__.py +2 -0
  58. pulumi_gcp/iam/_inputs.py +84 -27
  59. pulumi_gcp/iam/folders_policy_binding.py +10 -26
  60. pulumi_gcp/iam/oauth_client.py +979 -0
  61. pulumi_gcp/iam/oauth_client_credential.py +641 -0
  62. pulumi_gcp/iam/organizations_policy_binding.py +8 -24
  63. pulumi_gcp/iam/outputs.py +56 -18
  64. pulumi_gcp/iam/principal_access_boundary_policy.py +58 -22
  65. pulumi_gcp/iam/projects_policy_binding.py +8 -24
  66. pulumi_gcp/iam/workforce_pool_provider.py +2 -2
  67. pulumi_gcp/kms/crypto_key_version.py +14 -7
  68. pulumi_gcp/memorystore/__init__.py +1 -0
  69. pulumi_gcp/memorystore/get_instance.py +425 -0
  70. pulumi_gcp/memorystore/outputs.py +582 -0
  71. pulumi_gcp/monitoring/_inputs.py +15 -18
  72. pulumi_gcp/monitoring/alert_policy.py +46 -0
  73. pulumi_gcp/monitoring/outputs.py +10 -12
  74. pulumi_gcp/networkconnectivity/hub.py +84 -0
  75. pulumi_gcp/networksecurity/__init__.py +1 -0
  76. pulumi_gcp/networksecurity/_inputs.py +30 -18
  77. pulumi_gcp/networksecurity/backend_authentication_config.py +847 -0
  78. pulumi_gcp/networksecurity/intercept_deployment.py +178 -94
  79. pulumi_gcp/networksecurity/intercept_deployment_group.py +161 -77
  80. pulumi_gcp/networksecurity/intercept_endpoint_group.py +161 -66
  81. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +137 -80
  82. pulumi_gcp/networksecurity/mirroring_deployment.py +178 -94
  83. pulumi_gcp/networksecurity/mirroring_deployment_group.py +161 -77
  84. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +161 -80
  85. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +137 -105
  86. pulumi_gcp/networksecurity/outputs.py +20 -12
  87. pulumi_gcp/networkservices/endpoint_policy.py +12 -0
  88. pulumi_gcp/networkservices/grpc_route.py +128 -12
  89. pulumi_gcp/networkservices/http_route.py +16 -0
  90. pulumi_gcp/networkservices/mesh.py +16 -0
  91. pulumi_gcp/networkservices/service_binding.py +14 -0
  92. pulumi_gcp/networkservices/tcp_route.py +16 -0
  93. pulumi_gcp/networkservices/tls_route.py +12 -0
  94. pulumi_gcp/notebooks/location.py +4 -0
  95. pulumi_gcp/pulumi-plugin.json +1 -1
  96. pulumi_gcp/storage/__init__.py +1 -0
  97. pulumi_gcp/storage/_inputs.py +74 -0
  98. pulumi_gcp/storage/anywhere_cache.py +552 -0
  99. pulumi_gcp/storage/outputs.py +65 -0
  100. pulumi_gcp/storage/transfer_job.py +67 -0
  101. pulumi_gcp/tpu/_inputs.py +21 -1
  102. pulumi_gcp/tpu/outputs.py +13 -1
  103. pulumi_gcp/tpu/v2_vm.py +2 -0
  104. pulumi_gcp/vmwareengine/_inputs.py +6 -0
  105. pulumi_gcp/vmwareengine/outputs.py +8 -0
  106. pulumi_gcp/workstations/workstation_cluster.py +137 -1
  107. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/METADATA +1 -1
  108. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/RECORD +110 -95
  109. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/WHEEL +1 -1
  110. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/top_level.txt +0 -0
@@ -13,6 +13,8 @@ if sys.version_info >= (3, 11):
13
13
  else:
14
14
  from typing_extensions import NotRequired, TypedDict, TypeAlias
15
15
  from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
16
18
 
17
19
  __all__ = ['RouteArgs', 'Route']
18
20
 
@@ -317,11 +319,14 @@ class RouteArgs:
317
319
  @pulumi.input_type
318
320
  class _RouteState:
319
321
  def __init__(__self__, *,
322
+ as_paths: Optional[pulumi.Input[Sequence[pulumi.Input['RouteAsPathArgs']]]] = None,
323
+ creation_timestamp: Optional[pulumi.Input[str]] = None,
320
324
  description: Optional[pulumi.Input[str]] = None,
321
325
  dest_range: Optional[pulumi.Input[str]] = None,
322
326
  name: Optional[pulumi.Input[str]] = None,
323
327
  network: Optional[pulumi.Input[str]] = None,
324
328
  next_hop_gateway: Optional[pulumi.Input[str]] = None,
329
+ next_hop_hub: Optional[pulumi.Input[str]] = None,
325
330
  next_hop_ilb: Optional[pulumi.Input[str]] = None,
326
331
  next_hop_instance: Optional[pulumi.Input[str]] = None,
327
332
  next_hop_instance_zone: Optional[pulumi.Input[str]] = None,
@@ -330,13 +335,19 @@ class _RouteState:
330
335
  next_hop_med: Optional[pulumi.Input[str]] = None,
331
336
  next_hop_network: Optional[pulumi.Input[str]] = None,
332
337
  next_hop_origin: Optional[pulumi.Input[str]] = None,
338
+ next_hop_peering: Optional[pulumi.Input[str]] = None,
333
339
  next_hop_vpn_tunnel: Optional[pulumi.Input[str]] = None,
334
340
  priority: Optional[pulumi.Input[int]] = None,
335
341
  project: Optional[pulumi.Input[str]] = None,
342
+ route_status: Optional[pulumi.Input[str]] = None,
343
+ route_type: Optional[pulumi.Input[str]] = None,
336
344
  self_link: Optional[pulumi.Input[str]] = None,
337
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
345
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
346
+ warnings: Optional[pulumi.Input[Sequence[pulumi.Input['RouteWarningArgs']]]] = None):
338
347
  """
339
348
  Input properties used for looking up and filtering Route resources.
349
+ :param pulumi.Input[Sequence[pulumi.Input['RouteAsPathArgs']]] as_paths: Structure is documented below.
350
+ :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
340
351
  :param pulumi.Input[str] description: An optional description of this resource. Provide this property
341
352
  when you create the resource.
342
353
  :param pulumi.Input[str] dest_range: The destination range of outgoing packets that this route applies to.
@@ -359,6 +370,7 @@ class _RouteState:
359
370
  * `projects/project/global/gateways/default-internet-gateway`
360
371
  * `global/gateways/default-internet-gateway`
361
372
  * The string `default-internet-gateway`.
373
+ :param pulumi.Input[str] next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
362
374
  :param pulumi.Input[str] next_hop_ilb: The IP address or URL to a forwarding rule of type
363
375
  loadBalancingScheme=INTERNAL that should handle matching
364
376
  packets.
@@ -387,6 +399,7 @@ class _RouteState:
387
399
  :param pulumi.Input[str] next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
388
400
  :param pulumi.Input[str] next_hop_network: URL to a Network that should handle matching packets.
389
401
  :param pulumi.Input[str] next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
402
+ :param pulumi.Input[str] next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
390
403
  :param pulumi.Input[str] next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
391
404
  :param pulumi.Input[int] priority: The priority of this route. Priority is used to break ties in cases
392
405
  where there is more than one matching route of equal prefix length.
@@ -395,9 +408,23 @@ class _RouteState:
395
408
  Default value is 1000. Valid range is 0 through 65535.
396
409
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
397
410
  If it is not provided, the provider project is used.
411
+ :param pulumi.Input[str] route_status: The status of the route, which can be one of the following values:
412
+ - 'ACTIVE' for an active route
413
+ - 'INACTIVE' for an inactive route
414
+ :param pulumi.Input[str] route_type: The type of this route, which can be one of the following values:
415
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
416
+ - 'SUBNET' for a route from a subnet of the VPC
417
+ - 'BGP' for a route learned from a BGP peer of this router
418
+ - 'STATIC' for a static route
398
419
  :param pulumi.Input[str] self_link: The URI of the created resource.
399
420
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of instance tags to which this route applies.
421
+ :param pulumi.Input[Sequence[pulumi.Input['RouteWarningArgs']]] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
422
+ Structure is documented below.
400
423
  """
424
+ if as_paths is not None:
425
+ pulumi.set(__self__, "as_paths", as_paths)
426
+ if creation_timestamp is not None:
427
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
401
428
  if description is not None:
402
429
  pulumi.set(__self__, "description", description)
403
430
  if dest_range is not None:
@@ -408,6 +435,8 @@ class _RouteState:
408
435
  pulumi.set(__self__, "network", network)
409
436
  if next_hop_gateway is not None:
410
437
  pulumi.set(__self__, "next_hop_gateway", next_hop_gateway)
438
+ if next_hop_hub is not None:
439
+ pulumi.set(__self__, "next_hop_hub", next_hop_hub)
411
440
  if next_hop_ilb is not None:
412
441
  pulumi.set(__self__, "next_hop_ilb", next_hop_ilb)
413
442
  if next_hop_instance is not None:
@@ -424,16 +453,48 @@ class _RouteState:
424
453
  pulumi.set(__self__, "next_hop_network", next_hop_network)
425
454
  if next_hop_origin is not None:
426
455
  pulumi.set(__self__, "next_hop_origin", next_hop_origin)
456
+ if next_hop_peering is not None:
457
+ pulumi.set(__self__, "next_hop_peering", next_hop_peering)
427
458
  if next_hop_vpn_tunnel is not None:
428
459
  pulumi.set(__self__, "next_hop_vpn_tunnel", next_hop_vpn_tunnel)
429
460
  if priority is not None:
430
461
  pulumi.set(__self__, "priority", priority)
431
462
  if project is not None:
432
463
  pulumi.set(__self__, "project", project)
464
+ if route_status is not None:
465
+ pulumi.set(__self__, "route_status", route_status)
466
+ if route_type is not None:
467
+ pulumi.set(__self__, "route_type", route_type)
433
468
  if self_link is not None:
434
469
  pulumi.set(__self__, "self_link", self_link)
435
470
  if tags is not None:
436
471
  pulumi.set(__self__, "tags", tags)
472
+ if warnings is not None:
473
+ pulumi.set(__self__, "warnings", warnings)
474
+
475
+ @property
476
+ @pulumi.getter(name="asPaths")
477
+ def as_paths(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouteAsPathArgs']]]]:
478
+ """
479
+ Structure is documented below.
480
+ """
481
+ return pulumi.get(self, "as_paths")
482
+
483
+ @as_paths.setter
484
+ def as_paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouteAsPathArgs']]]]):
485
+ pulumi.set(self, "as_paths", value)
486
+
487
+ @property
488
+ @pulumi.getter(name="creationTimestamp")
489
+ def creation_timestamp(self) -> Optional[pulumi.Input[str]]:
490
+ """
491
+ Creation timestamp in RFC3339 text format.
492
+ """
493
+ return pulumi.get(self, "creation_timestamp")
494
+
495
+ @creation_timestamp.setter
496
+ def creation_timestamp(self, value: Optional[pulumi.Input[str]]):
497
+ pulumi.set(self, "creation_timestamp", value)
437
498
 
438
499
  @property
439
500
  @pulumi.getter
@@ -512,6 +573,18 @@ class _RouteState:
512
573
  def next_hop_gateway(self, value: Optional[pulumi.Input[str]]):
513
574
  pulumi.set(self, "next_hop_gateway", value)
514
575
 
576
+ @property
577
+ @pulumi.getter(name="nextHopHub")
578
+ def next_hop_hub(self) -> Optional[pulumi.Input[str]]:
579
+ """
580
+ The hub network that should handle matching packets, which should conform to RFC1035.
581
+ """
582
+ return pulumi.get(self, "next_hop_hub")
583
+
584
+ @next_hop_hub.setter
585
+ def next_hop_hub(self, value: Optional[pulumi.Input[str]]):
586
+ pulumi.set(self, "next_hop_hub", value)
587
+
515
588
  @property
516
589
  @pulumi.getter(name="nextHopIlb")
517
590
  def next_hop_ilb(self) -> Optional[pulumi.Input[str]]:
@@ -628,6 +701,18 @@ class _RouteState:
628
701
  def next_hop_origin(self, value: Optional[pulumi.Input[str]]):
629
702
  pulumi.set(self, "next_hop_origin", value)
630
703
 
704
+ @property
705
+ @pulumi.getter(name="nextHopPeering")
706
+ def next_hop_peering(self) -> Optional[pulumi.Input[str]]:
707
+ """
708
+ The network peering name that should handle matching packets, which should conform to RFC1035.
709
+ """
710
+ return pulumi.get(self, "next_hop_peering")
711
+
712
+ @next_hop_peering.setter
713
+ def next_hop_peering(self, value: Optional[pulumi.Input[str]]):
714
+ pulumi.set(self, "next_hop_peering", value)
715
+
631
716
  @property
632
717
  @pulumi.getter(name="nextHopVpnTunnel")
633
718
  def next_hop_vpn_tunnel(self) -> Optional[pulumi.Input[str]]:
@@ -669,6 +754,36 @@ class _RouteState:
669
754
  def project(self, value: Optional[pulumi.Input[str]]):
670
755
  pulumi.set(self, "project", value)
671
756
 
757
+ @property
758
+ @pulumi.getter(name="routeStatus")
759
+ def route_status(self) -> Optional[pulumi.Input[str]]:
760
+ """
761
+ The status of the route, which can be one of the following values:
762
+ - 'ACTIVE' for an active route
763
+ - 'INACTIVE' for an inactive route
764
+ """
765
+ return pulumi.get(self, "route_status")
766
+
767
+ @route_status.setter
768
+ def route_status(self, value: Optional[pulumi.Input[str]]):
769
+ pulumi.set(self, "route_status", value)
770
+
771
+ @property
772
+ @pulumi.getter(name="routeType")
773
+ def route_type(self) -> Optional[pulumi.Input[str]]:
774
+ """
775
+ The type of this route, which can be one of the following values:
776
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
777
+ - 'SUBNET' for a route from a subnet of the VPC
778
+ - 'BGP' for a route learned from a BGP peer of this router
779
+ - 'STATIC' for a static route
780
+ """
781
+ return pulumi.get(self, "route_type")
782
+
783
+ @route_type.setter
784
+ def route_type(self, value: Optional[pulumi.Input[str]]):
785
+ pulumi.set(self, "route_type", value)
786
+
672
787
  @property
673
788
  @pulumi.getter(name="selfLink")
674
789
  def self_link(self) -> Optional[pulumi.Input[str]]:
@@ -693,6 +808,19 @@ class _RouteState:
693
808
  def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
694
809
  pulumi.set(self, "tags", value)
695
810
 
811
+ @property
812
+ @pulumi.getter
813
+ def warnings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouteWarningArgs']]]]:
814
+ """
815
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
816
+ Structure is documented below.
817
+ """
818
+ return pulumi.get(self, "warnings")
819
+
820
+ @warnings.setter
821
+ def warnings(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouteWarningArgs']]]]):
822
+ pulumi.set(self, "warnings", value)
823
+
696
824
 
697
825
  class Route(pulumi.CustomResource):
698
826
  @overload
@@ -1181,11 +1309,18 @@ class Route(pulumi.CustomResource):
1181
1309
  __props__.__dict__["priority"] = priority
1182
1310
  __props__.__dict__["project"] = project
1183
1311
  __props__.__dict__["tags"] = tags
1312
+ __props__.__dict__["as_paths"] = None
1313
+ __props__.__dict__["creation_timestamp"] = None
1314
+ __props__.__dict__["next_hop_hub"] = None
1184
1315
  __props__.__dict__["next_hop_inter_region_cost"] = None
1185
1316
  __props__.__dict__["next_hop_med"] = None
1186
1317
  __props__.__dict__["next_hop_network"] = None
1187
1318
  __props__.__dict__["next_hop_origin"] = None
1319
+ __props__.__dict__["next_hop_peering"] = None
1320
+ __props__.__dict__["route_status"] = None
1321
+ __props__.__dict__["route_type"] = None
1188
1322
  __props__.__dict__["self_link"] = None
1323
+ __props__.__dict__["warnings"] = None
1189
1324
  super(Route, __self__).__init__(
1190
1325
  'gcp:compute/route:Route',
1191
1326
  resource_name,
@@ -1196,11 +1331,14 @@ class Route(pulumi.CustomResource):
1196
1331
  def get(resource_name: str,
1197
1332
  id: pulumi.Input[str],
1198
1333
  opts: Optional[pulumi.ResourceOptions] = None,
1334
+ as_paths: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouteAsPathArgs', 'RouteAsPathArgsDict']]]]] = None,
1335
+ creation_timestamp: Optional[pulumi.Input[str]] = None,
1199
1336
  description: Optional[pulumi.Input[str]] = None,
1200
1337
  dest_range: Optional[pulumi.Input[str]] = None,
1201
1338
  name: Optional[pulumi.Input[str]] = None,
1202
1339
  network: Optional[pulumi.Input[str]] = None,
1203
1340
  next_hop_gateway: Optional[pulumi.Input[str]] = None,
1341
+ next_hop_hub: Optional[pulumi.Input[str]] = None,
1204
1342
  next_hop_ilb: Optional[pulumi.Input[str]] = None,
1205
1343
  next_hop_instance: Optional[pulumi.Input[str]] = None,
1206
1344
  next_hop_instance_zone: Optional[pulumi.Input[str]] = None,
@@ -1209,11 +1347,15 @@ class Route(pulumi.CustomResource):
1209
1347
  next_hop_med: Optional[pulumi.Input[str]] = None,
1210
1348
  next_hop_network: Optional[pulumi.Input[str]] = None,
1211
1349
  next_hop_origin: Optional[pulumi.Input[str]] = None,
1350
+ next_hop_peering: Optional[pulumi.Input[str]] = None,
1212
1351
  next_hop_vpn_tunnel: Optional[pulumi.Input[str]] = None,
1213
1352
  priority: Optional[pulumi.Input[int]] = None,
1214
1353
  project: Optional[pulumi.Input[str]] = None,
1354
+ route_status: Optional[pulumi.Input[str]] = None,
1355
+ route_type: Optional[pulumi.Input[str]] = None,
1215
1356
  self_link: Optional[pulumi.Input[str]] = None,
1216
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'Route':
1357
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1358
+ warnings: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouteWarningArgs', 'RouteWarningArgsDict']]]]] = None) -> 'Route':
1217
1359
  """
1218
1360
  Get an existing Route resource's state with the given name, id, and optional extra
1219
1361
  properties used to qualify the lookup.
@@ -1221,6 +1363,8 @@ class Route(pulumi.CustomResource):
1221
1363
  :param str resource_name: The unique name of the resulting resource.
1222
1364
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1223
1365
  :param pulumi.ResourceOptions opts: Options for the resource.
1366
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RouteAsPathArgs', 'RouteAsPathArgsDict']]]] as_paths: Structure is documented below.
1367
+ :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
1224
1368
  :param pulumi.Input[str] description: An optional description of this resource. Provide this property
1225
1369
  when you create the resource.
1226
1370
  :param pulumi.Input[str] dest_range: The destination range of outgoing packets that this route applies to.
@@ -1243,6 +1387,7 @@ class Route(pulumi.CustomResource):
1243
1387
  * `projects/project/global/gateways/default-internet-gateway`
1244
1388
  * `global/gateways/default-internet-gateway`
1245
1389
  * The string `default-internet-gateway`.
1390
+ :param pulumi.Input[str] next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
1246
1391
  :param pulumi.Input[str] next_hop_ilb: The IP address or URL to a forwarding rule of type
1247
1392
  loadBalancingScheme=INTERNAL that should handle matching
1248
1393
  packets.
@@ -1271,6 +1416,7 @@ class Route(pulumi.CustomResource):
1271
1416
  :param pulumi.Input[str] next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
1272
1417
  :param pulumi.Input[str] next_hop_network: URL to a Network that should handle matching packets.
1273
1418
  :param pulumi.Input[str] next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
1419
+ :param pulumi.Input[str] next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
1274
1420
  :param pulumi.Input[str] next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
1275
1421
  :param pulumi.Input[int] priority: The priority of this route. Priority is used to break ties in cases
1276
1422
  where there is more than one matching route of equal prefix length.
@@ -1279,18 +1425,31 @@ class Route(pulumi.CustomResource):
1279
1425
  Default value is 1000. Valid range is 0 through 65535.
1280
1426
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1281
1427
  If it is not provided, the provider project is used.
1428
+ :param pulumi.Input[str] route_status: The status of the route, which can be one of the following values:
1429
+ - 'ACTIVE' for an active route
1430
+ - 'INACTIVE' for an inactive route
1431
+ :param pulumi.Input[str] route_type: The type of this route, which can be one of the following values:
1432
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
1433
+ - 'SUBNET' for a route from a subnet of the VPC
1434
+ - 'BGP' for a route learned from a BGP peer of this router
1435
+ - 'STATIC' for a static route
1282
1436
  :param pulumi.Input[str] self_link: The URI of the created resource.
1283
1437
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of instance tags to which this route applies.
1438
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RouteWarningArgs', 'RouteWarningArgsDict']]]] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
1439
+ Structure is documented below.
1284
1440
  """
1285
1441
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1286
1442
 
1287
1443
  __props__ = _RouteState.__new__(_RouteState)
1288
1444
 
1445
+ __props__.__dict__["as_paths"] = as_paths
1446
+ __props__.__dict__["creation_timestamp"] = creation_timestamp
1289
1447
  __props__.__dict__["description"] = description
1290
1448
  __props__.__dict__["dest_range"] = dest_range
1291
1449
  __props__.__dict__["name"] = name
1292
1450
  __props__.__dict__["network"] = network
1293
1451
  __props__.__dict__["next_hop_gateway"] = next_hop_gateway
1452
+ __props__.__dict__["next_hop_hub"] = next_hop_hub
1294
1453
  __props__.__dict__["next_hop_ilb"] = next_hop_ilb
1295
1454
  __props__.__dict__["next_hop_instance"] = next_hop_instance
1296
1455
  __props__.__dict__["next_hop_instance_zone"] = next_hop_instance_zone
@@ -1299,13 +1458,33 @@ class Route(pulumi.CustomResource):
1299
1458
  __props__.__dict__["next_hop_med"] = next_hop_med
1300
1459
  __props__.__dict__["next_hop_network"] = next_hop_network
1301
1460
  __props__.__dict__["next_hop_origin"] = next_hop_origin
1461
+ __props__.__dict__["next_hop_peering"] = next_hop_peering
1302
1462
  __props__.__dict__["next_hop_vpn_tunnel"] = next_hop_vpn_tunnel
1303
1463
  __props__.__dict__["priority"] = priority
1304
1464
  __props__.__dict__["project"] = project
1465
+ __props__.__dict__["route_status"] = route_status
1466
+ __props__.__dict__["route_type"] = route_type
1305
1467
  __props__.__dict__["self_link"] = self_link
1306
1468
  __props__.__dict__["tags"] = tags
1469
+ __props__.__dict__["warnings"] = warnings
1307
1470
  return Route(resource_name, opts=opts, __props__=__props__)
1308
1471
 
1472
+ @property
1473
+ @pulumi.getter(name="asPaths")
1474
+ def as_paths(self) -> pulumi.Output[Sequence['outputs.RouteAsPath']]:
1475
+ """
1476
+ Structure is documented below.
1477
+ """
1478
+ return pulumi.get(self, "as_paths")
1479
+
1480
+ @property
1481
+ @pulumi.getter(name="creationTimestamp")
1482
+ def creation_timestamp(self) -> pulumi.Output[str]:
1483
+ """
1484
+ Creation timestamp in RFC3339 text format.
1485
+ """
1486
+ return pulumi.get(self, "creation_timestamp")
1487
+
1309
1488
  @property
1310
1489
  @pulumi.getter
1311
1490
  def description(self) -> pulumi.Output[Optional[str]]:
@@ -1363,6 +1542,14 @@ class Route(pulumi.CustomResource):
1363
1542
  """
1364
1543
  return pulumi.get(self, "next_hop_gateway")
1365
1544
 
1545
+ @property
1546
+ @pulumi.getter(name="nextHopHub")
1547
+ def next_hop_hub(self) -> pulumi.Output[str]:
1548
+ """
1549
+ The hub network that should handle matching packets, which should conform to RFC1035.
1550
+ """
1551
+ return pulumi.get(self, "next_hop_hub")
1552
+
1366
1553
  @property
1367
1554
  @pulumi.getter(name="nextHopIlb")
1368
1555
  def next_hop_ilb(self) -> pulumi.Output[Optional[str]]:
@@ -1447,6 +1634,14 @@ class Route(pulumi.CustomResource):
1447
1634
  """
1448
1635
  return pulumi.get(self, "next_hop_origin")
1449
1636
 
1637
+ @property
1638
+ @pulumi.getter(name="nextHopPeering")
1639
+ def next_hop_peering(self) -> pulumi.Output[str]:
1640
+ """
1641
+ The network peering name that should handle matching packets, which should conform to RFC1035.
1642
+ """
1643
+ return pulumi.get(self, "next_hop_peering")
1644
+
1450
1645
  @property
1451
1646
  @pulumi.getter(name="nextHopVpnTunnel")
1452
1647
  def next_hop_vpn_tunnel(self) -> pulumi.Output[Optional[str]]:
@@ -1476,6 +1671,28 @@ class Route(pulumi.CustomResource):
1476
1671
  """
1477
1672
  return pulumi.get(self, "project")
1478
1673
 
1674
+ @property
1675
+ @pulumi.getter(name="routeStatus")
1676
+ def route_status(self) -> pulumi.Output[str]:
1677
+ """
1678
+ The status of the route, which can be one of the following values:
1679
+ - 'ACTIVE' for an active route
1680
+ - 'INACTIVE' for an inactive route
1681
+ """
1682
+ return pulumi.get(self, "route_status")
1683
+
1684
+ @property
1685
+ @pulumi.getter(name="routeType")
1686
+ def route_type(self) -> pulumi.Output[str]:
1687
+ """
1688
+ The type of this route, which can be one of the following values:
1689
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
1690
+ - 'SUBNET' for a route from a subnet of the VPC
1691
+ - 'BGP' for a route learned from a BGP peer of this router
1692
+ - 'STATIC' for a static route
1693
+ """
1694
+ return pulumi.get(self, "route_type")
1695
+
1479
1696
  @property
1480
1697
  @pulumi.getter(name="selfLink")
1481
1698
  def self_link(self) -> pulumi.Output[str]:
@@ -1492,3 +1709,12 @@ class Route(pulumi.CustomResource):
1492
1709
  """
1493
1710
  return pulumi.get(self, "tags")
1494
1711
 
1712
+ @property
1713
+ @pulumi.getter
1714
+ def warnings(self) -> pulumi.Output[Sequence['outputs.RouteWarning']]:
1715
+ """
1716
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
1717
+ Structure is documented below.
1718
+ """
1719
+ return pulumi.get(self, "warnings")
1720
+
@@ -145,8 +145,6 @@ class SharedVPCServiceProject(pulumi.CustomResource):
145
145
  [the Project API documentation](https://cloud.google.com/compute/docs/reference/latest/projects),
146
146
  where the Shared VPC feature is referred to by its former name "XPN".
147
147
 
148
- > **Note:** If Shared VPC Admin role is set at the folder level, use the google-beta provider. The google provider only supports this permission at project or organizational level currently. [[0]](https://cloud.google.com/vpc/docs/provisioning-shared-vpc#enable-shared-vpc-host)
149
-
150
148
  ## Example Usage
151
149
 
152
150
  ```python
@@ -195,8 +193,6 @@ class SharedVPCServiceProject(pulumi.CustomResource):
195
193
  [the Project API documentation](https://cloud.google.com/compute/docs/reference/latest/projects),
196
194
  where the Shared VPC feature is referred to by its former name "XPN".
197
195
 
198
- > **Note:** If Shared VPC Admin role is set at the folder level, use the google-beta provider. The google provider only supports this permission at project or organizational level currently. [[0]](https://cloud.google.com/vpc/docs/provisioning-shared-vpc#enable-shared-vpc-host)
199
-
200
196
  ## Example Usage
201
197
 
202
198
  ```python