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
@@ -52,6 +52,7 @@ __all__ = [
52
52
  'BackendServiceOutlierDetectionBaseEjectionTime',
53
53
  'BackendServiceOutlierDetectionInterval',
54
54
  'BackendServiceSecuritySettings',
55
+ 'BackendServiceSecuritySettingsAwsV4Authentication',
55
56
  'DiskAsyncPrimaryDisk',
56
57
  'DiskAsyncReplicationSecondaryDisk',
57
58
  'DiskDiskEncryptionKey',
@@ -409,6 +410,25 @@ __all__ = [
409
410
  'ReservationSpecificReservationInstanceProperties',
410
411
  'ReservationSpecificReservationInstancePropertiesGuestAccelerator',
411
412
  'ReservationSpecificReservationInstancePropertiesLocalSsd',
413
+ 'ResizeRequestRequestedRunDuration',
414
+ 'ResizeRequestStatus',
415
+ 'ResizeRequestStatusError',
416
+ 'ResizeRequestStatusErrorError',
417
+ 'ResizeRequestStatusErrorErrorErrorDetail',
418
+ 'ResizeRequestStatusErrorErrorErrorDetailErrorInfo',
419
+ 'ResizeRequestStatusErrorErrorErrorDetailHelp',
420
+ 'ResizeRequestStatusErrorErrorErrorDetailHelpLink',
421
+ 'ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage',
422
+ 'ResizeRequestStatusErrorErrorErrorDetailQuotaInfo',
423
+ 'ResizeRequestStatusLastAttempt',
424
+ 'ResizeRequestStatusLastAttemptError',
425
+ 'ResizeRequestStatusLastAttemptErrorError',
426
+ 'ResizeRequestStatusLastAttemptErrorErrorErrorDetail',
427
+ 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo',
428
+ 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp',
429
+ 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink',
430
+ 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage',
431
+ 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo',
412
432
  'ResourcePolicyDiskConsistencyGroupPolicy',
413
433
  'ResourcePolicyGroupPlacementPolicy',
414
434
  'ResourcePolicyInstanceSchedulePolicy',
@@ -430,7 +450,11 @@ __all__ = [
430
450
  'RouterNatSubnetwork',
431
451
  'RouterPeerAdvertisedIpRange',
432
452
  'RouterPeerBfd',
453
+ 'RouterPeerCustomLearnedIpRange',
433
454
  'RouterPeerMd5AuthenticationKey',
455
+ 'RouterRoutePolicyTerm',
456
+ 'RouterRoutePolicyTermAction',
457
+ 'RouterRoutePolicyTermMatch',
434
458
  'RouterStatusBestRouteResult',
435
459
  'RouterStatusBestRoutesForRouterResult',
436
460
  'SecurityPolicyAdaptiveProtectionConfig',
@@ -587,6 +611,7 @@ __all__ = [
587
611
  'GetBackendServiceOutlierDetectionBaseEjectionTimeResult',
588
612
  'GetBackendServiceOutlierDetectionIntervalResult',
589
613
  'GetBackendServiceSecuritySettingResult',
614
+ 'GetBackendServiceSecuritySettingAwsV4AuthenticationResult',
590
615
  'GetDiskAsyncPrimaryDiskResult',
591
616
  'GetDiskDiskEncryptionKeyResult',
592
617
  'GetDiskGuestOsFeatureResult',
@@ -3597,7 +3622,9 @@ class BackendServiceSecuritySettings(dict):
3597
3622
  @staticmethod
3598
3623
  def __key_warning(key: str):
3599
3624
  suggest = None
3600
- if key == "clientTlsPolicy":
3625
+ if key == "awsV4Authentication":
3626
+ suggest = "aws_v4_authentication"
3627
+ elif key == "clientTlsPolicy":
3601
3628
  suggest = "client_tls_policy"
3602
3629
  elif key == "subjectAltNames":
3603
3630
  suggest = "subject_alt_names"
@@ -3614,9 +3641,16 @@ class BackendServiceSecuritySettings(dict):
3614
3641
  return super().get(key, default)
3615
3642
 
3616
3643
  def __init__(__self__, *,
3617
- client_tls_policy: str,
3618
- subject_alt_names: Sequence[str]):
3644
+ aws_v4_authentication: Optional['outputs.BackendServiceSecuritySettingsAwsV4Authentication'] = None,
3645
+ client_tls_policy: Optional[str] = None,
3646
+ subject_alt_names: Optional[Sequence[str]] = None):
3619
3647
  """
3648
+ :param 'BackendServiceSecuritySettingsAwsV4AuthenticationArgs' aws_v4_authentication: The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication.
3649
+ Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends.
3650
+ Structure is documented below.
3651
+
3652
+
3653
+ <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports:
3620
3654
  :param str client_tls_policy: ClientTlsPolicy is a resource that specifies how a client should authenticate
3621
3655
  connections to backends of a service. This resource itself does not affect
3622
3656
  configuration unless it is attached to a backend service resource.
@@ -3624,12 +3658,29 @@ class BackendServiceSecuritySettings(dict):
3624
3658
  If specified, the client will verify that the server certificate's subject
3625
3659
  alt name matches one of the specified values.
3626
3660
  """
3627
- pulumi.set(__self__, "client_tls_policy", client_tls_policy)
3628
- pulumi.set(__self__, "subject_alt_names", subject_alt_names)
3661
+ if aws_v4_authentication is not None:
3662
+ pulumi.set(__self__, "aws_v4_authentication", aws_v4_authentication)
3663
+ if client_tls_policy is not None:
3664
+ pulumi.set(__self__, "client_tls_policy", client_tls_policy)
3665
+ if subject_alt_names is not None:
3666
+ pulumi.set(__self__, "subject_alt_names", subject_alt_names)
3667
+
3668
+ @property
3669
+ @pulumi.getter(name="awsV4Authentication")
3670
+ def aws_v4_authentication(self) -> Optional['outputs.BackendServiceSecuritySettingsAwsV4Authentication']:
3671
+ """
3672
+ The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication.
3673
+ Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends.
3674
+ Structure is documented below.
3675
+
3676
+
3677
+ <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports:
3678
+ """
3679
+ return pulumi.get(self, "aws_v4_authentication")
3629
3680
 
3630
3681
  @property
3631
3682
  @pulumi.getter(name="clientTlsPolicy")
3632
- def client_tls_policy(self) -> str:
3683
+ def client_tls_policy(self) -> Optional[str]:
3633
3684
  """
3634
3685
  ClientTlsPolicy is a resource that specifies how a client should authenticate
3635
3686
  connections to backends of a service. This resource itself does not affect
@@ -3639,7 +3690,7 @@ class BackendServiceSecuritySettings(dict):
3639
3690
 
3640
3691
  @property
3641
3692
  @pulumi.getter(name="subjectAltNames")
3642
- def subject_alt_names(self) -> Sequence[str]:
3693
+ def subject_alt_names(self) -> Optional[Sequence[str]]:
3643
3694
  """
3644
3695
  A list of alternate names to verify the subject identity in the certificate.
3645
3696
  If specified, the client will verify that the server certificate's subject
@@ -3648,6 +3699,88 @@ class BackendServiceSecuritySettings(dict):
3648
3699
  return pulumi.get(self, "subject_alt_names")
3649
3700
 
3650
3701
 
3702
+ @pulumi.output_type
3703
+ class BackendServiceSecuritySettingsAwsV4Authentication(dict):
3704
+ @staticmethod
3705
+ def __key_warning(key: str):
3706
+ suggest = None
3707
+ if key == "accessKey":
3708
+ suggest = "access_key"
3709
+ elif key == "accessKeyId":
3710
+ suggest = "access_key_id"
3711
+ elif key == "accessKeyVersion":
3712
+ suggest = "access_key_version"
3713
+ elif key == "originRegion":
3714
+ suggest = "origin_region"
3715
+
3716
+ if suggest:
3717
+ pulumi.log.warn(f"Key '{key}' not found in BackendServiceSecuritySettingsAwsV4Authentication. Access the value via the '{suggest}' property getter instead.")
3718
+
3719
+ def __getitem__(self, key: str) -> Any:
3720
+ BackendServiceSecuritySettingsAwsV4Authentication.__key_warning(key)
3721
+ return super().__getitem__(key)
3722
+
3723
+ def get(self, key: str, default = None) -> Any:
3724
+ BackendServiceSecuritySettingsAwsV4Authentication.__key_warning(key)
3725
+ return super().get(key, default)
3726
+
3727
+ def __init__(__self__, *,
3728
+ access_key: Optional[str] = None,
3729
+ access_key_id: Optional[str] = None,
3730
+ access_key_version: Optional[str] = None,
3731
+ origin_region: Optional[str] = None):
3732
+ """
3733
+ :param str access_key: The access key used for s3 bucket authentication.
3734
+ Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request.
3735
+ :param str access_key_id: The identifier of an access key used for s3 bucket authentication.
3736
+ :param str access_key_version: The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.
3737
+ :param str origin_region: The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin.
3738
+ For example, "us-east-1" for AWS or "us-ashburn-1" for OCI.
3739
+ """
3740
+ if access_key is not None:
3741
+ pulumi.set(__self__, "access_key", access_key)
3742
+ if access_key_id is not None:
3743
+ pulumi.set(__self__, "access_key_id", access_key_id)
3744
+ if access_key_version is not None:
3745
+ pulumi.set(__self__, "access_key_version", access_key_version)
3746
+ if origin_region is not None:
3747
+ pulumi.set(__self__, "origin_region", origin_region)
3748
+
3749
+ @property
3750
+ @pulumi.getter(name="accessKey")
3751
+ def access_key(self) -> Optional[str]:
3752
+ """
3753
+ The access key used for s3 bucket authentication.
3754
+ Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request.
3755
+ """
3756
+ return pulumi.get(self, "access_key")
3757
+
3758
+ @property
3759
+ @pulumi.getter(name="accessKeyId")
3760
+ def access_key_id(self) -> Optional[str]:
3761
+ """
3762
+ The identifier of an access key used for s3 bucket authentication.
3763
+ """
3764
+ return pulumi.get(self, "access_key_id")
3765
+
3766
+ @property
3767
+ @pulumi.getter(name="accessKeyVersion")
3768
+ def access_key_version(self) -> Optional[str]:
3769
+ """
3770
+ The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.
3771
+ """
3772
+ return pulumi.get(self, "access_key_version")
3773
+
3774
+ @property
3775
+ @pulumi.getter(name="originRegion")
3776
+ def origin_region(self) -> Optional[str]:
3777
+ """
3778
+ The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin.
3779
+ For example, "us-east-1" for AWS or "us-ashburn-1" for OCI.
3780
+ """
3781
+ return pulumi.get(self, "origin_region")
3782
+
3783
+
3651
3784
  @pulumi.output_type
3652
3785
  class DiskAsyncPrimaryDisk(dict):
3653
3786
  def __init__(__self__, *,
@@ -6212,6 +6345,8 @@ class InstanceBootDiskInitializeParams(dict):
6212
6345
  suggest = "provisioned_throughput"
6213
6346
  elif key == "resourceManagerTags":
6214
6347
  suggest = "resource_manager_tags"
6348
+ elif key == "storagePool":
6349
+ suggest = "storage_pool"
6215
6350
 
6216
6351
  if suggest:
6217
6352
  pulumi.log.warn(f"Key '{key}' not found in InstanceBootDiskInitializeParams. Access the value via the '{suggest}' property getter instead.")
@@ -6232,6 +6367,7 @@ class InstanceBootDiskInitializeParams(dict):
6232
6367
  provisioned_throughput: Optional[int] = None,
6233
6368
  resource_manager_tags: Optional[Mapping[str, Any]] = None,
6234
6369
  size: Optional[int] = None,
6370
+ storage_pool: Optional[str] = None,
6235
6371
  type: Optional[str] = None):
6236
6372
  """
6237
6373
  :param bool enable_confidential_compute: Whether this disk is using confidential compute mode.
@@ -6264,6 +6400,10 @@ class InstanceBootDiskInitializeParams(dict):
6264
6400
  :param Mapping[str, Any] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
6265
6401
  :param int size: The size of the image in gigabytes. If not specified, it
6266
6402
  will inherit the size of its base image.
6403
+ :param str storage_pool: The URL of the storage pool in which the new disk is created.
6404
+ For example:
6405
+ * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}
6406
+ * /projects/{project}/zones/{zone}/storagePools/{storagePool}
6267
6407
  :param str type: The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.
6268
6408
  """
6269
6409
  if enable_confidential_compute is not None:
@@ -6280,6 +6420,8 @@ class InstanceBootDiskInitializeParams(dict):
6280
6420
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
6281
6421
  if size is not None:
6282
6422
  pulumi.set(__self__, "size", size)
6423
+ if storage_pool is not None:
6424
+ pulumi.set(__self__, "storage_pool", storage_pool)
6283
6425
  if type is not None:
6284
6426
  pulumi.set(__self__, "type", type)
6285
6427
 
@@ -6362,6 +6504,17 @@ class InstanceBootDiskInitializeParams(dict):
6362
6504
  """
6363
6505
  return pulumi.get(self, "size")
6364
6506
 
6507
+ @property
6508
+ @pulumi.getter(name="storagePool")
6509
+ def storage_pool(self) -> Optional[str]:
6510
+ """
6511
+ The URL of the storage pool in which the new disk is created.
6512
+ For example:
6513
+ * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}
6514
+ * /projects/{project}/zones/{zone}/storagePools/{storagePool}
6515
+ """
6516
+ return pulumi.get(self, "storage_pool")
6517
+
6365
6518
  @property
6366
6519
  @pulumi.getter
6367
6520
  def type(self) -> Optional[str]:
@@ -6729,6 +6882,8 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6729
6882
  suggest = "provisioned_throughput"
6730
6883
  elif key == "resourceManagerTags":
6731
6884
  suggest = "resource_manager_tags"
6885
+ elif key == "storagePool":
6886
+ suggest = "storage_pool"
6732
6887
 
6733
6888
  if suggest:
6734
6889
  pulumi.log.warn(f"Key '{key}' not found in InstanceFromMachineImageBootDiskInitializeParams. Access the value via the '{suggest}' property getter instead.")
@@ -6749,6 +6904,7 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6749
6904
  provisioned_throughput: Optional[int] = None,
6750
6905
  resource_manager_tags: Optional[Mapping[str, Any]] = None,
6751
6906
  size: Optional[int] = None,
6907
+ storage_pool: Optional[str] = None,
6752
6908
  type: Optional[str] = None):
6753
6909
  """
6754
6910
  :param bool enable_confidential_compute: A flag to enable confidential compute mode on boot disk
@@ -6758,6 +6914,7 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6758
6914
  :param int provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.
6759
6915
  :param Mapping[str, Any] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
6760
6916
  :param int size: The size of the image in gigabytes.
6917
+ :param str storage_pool: The URL of the storage pool in which the new disk is created
6761
6918
  :param str type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
6762
6919
  """
6763
6920
  if enable_confidential_compute is not None:
@@ -6774,6 +6931,8 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6774
6931
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
6775
6932
  if size is not None:
6776
6933
  pulumi.set(__self__, "size", size)
6934
+ if storage_pool is not None:
6935
+ pulumi.set(__self__, "storage_pool", storage_pool)
6777
6936
  if type is not None:
6778
6937
  pulumi.set(__self__, "type", type)
6779
6938
 
@@ -6833,6 +6992,14 @@ class InstanceFromMachineImageBootDiskInitializeParams(dict):
6833
6992
  """
6834
6993
  return pulumi.get(self, "size")
6835
6994
 
6995
+ @property
6996
+ @pulumi.getter(name="storagePool")
6997
+ def storage_pool(self) -> Optional[str]:
6998
+ """
6999
+ The URL of the storage pool in which the new disk is created
7000
+ """
7001
+ return pulumi.get(self, "storage_pool")
7002
+
6836
7003
  @property
6837
7004
  @pulumi.getter
6838
7005
  def type(self) -> Optional[str]:
@@ -8321,6 +8488,8 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8321
8488
  suggest = "provisioned_throughput"
8322
8489
  elif key == "resourceManagerTags":
8323
8490
  suggest = "resource_manager_tags"
8491
+ elif key == "storagePool":
8492
+ suggest = "storage_pool"
8324
8493
 
8325
8494
  if suggest:
8326
8495
  pulumi.log.warn(f"Key '{key}' not found in InstanceFromTemplateBootDiskInitializeParams. Access the value via the '{suggest}' property getter instead.")
@@ -8341,6 +8510,7 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8341
8510
  provisioned_throughput: Optional[int] = None,
8342
8511
  resource_manager_tags: Optional[Mapping[str, Any]] = None,
8343
8512
  size: Optional[int] = None,
8513
+ storage_pool: Optional[str] = None,
8344
8514
  type: Optional[str] = None):
8345
8515
  """
8346
8516
  :param bool enable_confidential_compute: A flag to enable confidential compute mode on boot disk
@@ -8350,6 +8520,7 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8350
8520
  :param int provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.
8351
8521
  :param Mapping[str, Any] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
8352
8522
  :param int size: The size of the image in gigabytes.
8523
+ :param str storage_pool: The URL of the storage pool in which the new disk is created
8353
8524
  :param str type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
8354
8525
  """
8355
8526
  if enable_confidential_compute is not None:
@@ -8366,6 +8537,8 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8366
8537
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
8367
8538
  if size is not None:
8368
8539
  pulumi.set(__self__, "size", size)
8540
+ if storage_pool is not None:
8541
+ pulumi.set(__self__, "storage_pool", storage_pool)
8369
8542
  if type is not None:
8370
8543
  pulumi.set(__self__, "type", type)
8371
8544
 
@@ -8425,6 +8598,14 @@ class InstanceFromTemplateBootDiskInitializeParams(dict):
8425
8598
  """
8426
8599
  return pulumi.get(self, "size")
8427
8600
 
8601
+ @property
8602
+ @pulumi.getter(name="storagePool")
8603
+ def storage_pool(self) -> Optional[str]:
8604
+ """
8605
+ The URL of the storage pool in which the new disk is created
8606
+ """
8607
+ return pulumi.get(self, "storage_pool")
8608
+
8428
8609
  @property
8429
8610
  @pulumi.getter
8430
8611
  def type(self) -> Optional[str]:
@@ -29486,6 +29667,1021 @@ class ReservationSpecificReservationInstancePropertiesLocalSsd(dict):
29486
29667
  return pulumi.get(self, "interface")
29487
29668
 
29488
29669
 
29670
+ @pulumi.output_type
29671
+ class ResizeRequestRequestedRunDuration(dict):
29672
+ def __init__(__self__, *,
29673
+ seconds: str,
29674
+ nanos: Optional[int] = None):
29675
+ """
29676
+ :param str seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
29677
+ :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
29678
+ """
29679
+ pulumi.set(__self__, "seconds", seconds)
29680
+ if nanos is not None:
29681
+ pulumi.set(__self__, "nanos", nanos)
29682
+
29683
+ @property
29684
+ @pulumi.getter
29685
+ def seconds(self) -> str:
29686
+ """
29687
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
29688
+ """
29689
+ return pulumi.get(self, "seconds")
29690
+
29691
+ @property
29692
+ @pulumi.getter
29693
+ def nanos(self) -> Optional[int]:
29694
+ """
29695
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
29696
+ """
29697
+ return pulumi.get(self, "nanos")
29698
+
29699
+
29700
+ @pulumi.output_type
29701
+ class ResizeRequestStatus(dict):
29702
+ @staticmethod
29703
+ def __key_warning(key: str):
29704
+ suggest = None
29705
+ if key == "lastAttempts":
29706
+ suggest = "last_attempts"
29707
+
29708
+ if suggest:
29709
+ pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatus. Access the value via the '{suggest}' property getter instead.")
29710
+
29711
+ def __getitem__(self, key: str) -> Any:
29712
+ ResizeRequestStatus.__key_warning(key)
29713
+ return super().__getitem__(key)
29714
+
29715
+ def get(self, key: str, default = None) -> Any:
29716
+ ResizeRequestStatus.__key_warning(key)
29717
+ return super().get(key, default)
29718
+
29719
+ def __init__(__self__, *,
29720
+ errors: Optional[Sequence['outputs.ResizeRequestStatusError']] = None,
29721
+ last_attempts: Optional[Sequence['outputs.ResizeRequestStatusLastAttempt']] = None):
29722
+ """
29723
+ :param Sequence['ResizeRequestStatusErrorArgs'] errors: (Output)
29724
+ [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
29725
+ Structure is documented below.
29726
+ :param Sequence['ResizeRequestStatusLastAttemptArgs'] last_attempts: (Output)
29727
+ [Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only.
29728
+ Structure is documented below.
29729
+ """
29730
+ if errors is not None:
29731
+ pulumi.set(__self__, "errors", errors)
29732
+ if last_attempts is not None:
29733
+ pulumi.set(__self__, "last_attempts", last_attempts)
29734
+
29735
+ @property
29736
+ @pulumi.getter
29737
+ def errors(self) -> Optional[Sequence['outputs.ResizeRequestStatusError']]:
29738
+ """
29739
+ (Output)
29740
+ [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
29741
+ Structure is documented below.
29742
+ """
29743
+ return pulumi.get(self, "errors")
29744
+
29745
+ @property
29746
+ @pulumi.getter(name="lastAttempts")
29747
+ def last_attempts(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttempt']]:
29748
+ """
29749
+ (Output)
29750
+ [Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only.
29751
+ Structure is documented below.
29752
+ """
29753
+ return pulumi.get(self, "last_attempts")
29754
+
29755
+
29756
+ @pulumi.output_type
29757
+ class ResizeRequestStatusError(dict):
29758
+ def __init__(__self__, *,
29759
+ errors: Optional[Sequence['outputs.ResizeRequestStatusErrorError']] = None):
29760
+ """
29761
+ :param Sequence['ResizeRequestStatusErrorErrorArgs'] errors: (Output)
29762
+ [Output Only] The array of errors encountered while processing this operation.
29763
+ Structure is documented below.
29764
+ """
29765
+ if errors is not None:
29766
+ pulumi.set(__self__, "errors", errors)
29767
+
29768
+ @property
29769
+ @pulumi.getter
29770
+ def errors(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorError']]:
29771
+ """
29772
+ (Output)
29773
+ [Output Only] The array of errors encountered while processing this operation.
29774
+ Structure is documented below.
29775
+ """
29776
+ return pulumi.get(self, "errors")
29777
+
29778
+
29779
+ @pulumi.output_type
29780
+ class ResizeRequestStatusErrorError(dict):
29781
+ @staticmethod
29782
+ def __key_warning(key: str):
29783
+ suggest = None
29784
+ if key == "errorDetails":
29785
+ suggest = "error_details"
29786
+
29787
+ if suggest:
29788
+ pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusErrorError. Access the value via the '{suggest}' property getter instead.")
29789
+
29790
+ def __getitem__(self, key: str) -> Any:
29791
+ ResizeRequestStatusErrorError.__key_warning(key)
29792
+ return super().__getitem__(key)
29793
+
29794
+ def get(self, key: str, default = None) -> Any:
29795
+ ResizeRequestStatusErrorError.__key_warning(key)
29796
+ return super().get(key, default)
29797
+
29798
+ def __init__(__self__, *,
29799
+ code: Optional[str] = None,
29800
+ error_details: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetail']] = None,
29801
+ location: Optional[str] = None,
29802
+ message: Optional[str] = None):
29803
+ """
29804
+ :param str code: (Output)
29805
+ [Output Only] The error type identifier for this error.
29806
+ :param Sequence['ResizeRequestStatusErrorErrorErrorDetailArgs'] error_details: (Output)
29807
+ [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
29808
+ Structure is documented below.
29809
+ :param str location: (Output)
29810
+ Output Only] Indicates the field in the request that caused the error. This property is optional.
29811
+ :param str message: (Output)
29812
+ The localized error message in the above locale.
29813
+ """
29814
+ if code is not None:
29815
+ pulumi.set(__self__, "code", code)
29816
+ if error_details is not None:
29817
+ pulumi.set(__self__, "error_details", error_details)
29818
+ if location is not None:
29819
+ pulumi.set(__self__, "location", location)
29820
+ if message is not None:
29821
+ pulumi.set(__self__, "message", message)
29822
+
29823
+ @property
29824
+ @pulumi.getter
29825
+ def code(self) -> Optional[str]:
29826
+ """
29827
+ (Output)
29828
+ [Output Only] The error type identifier for this error.
29829
+ """
29830
+ return pulumi.get(self, "code")
29831
+
29832
+ @property
29833
+ @pulumi.getter(name="errorDetails")
29834
+ def error_details(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetail']]:
29835
+ """
29836
+ (Output)
29837
+ [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
29838
+ Structure is documented below.
29839
+ """
29840
+ return pulumi.get(self, "error_details")
29841
+
29842
+ @property
29843
+ @pulumi.getter
29844
+ def location(self) -> Optional[str]:
29845
+ """
29846
+ (Output)
29847
+ Output Only] Indicates the field in the request that caused the error. This property is optional.
29848
+ """
29849
+ return pulumi.get(self, "location")
29850
+
29851
+ @property
29852
+ @pulumi.getter
29853
+ def message(self) -> Optional[str]:
29854
+ """
29855
+ (Output)
29856
+ The localized error message in the above locale.
29857
+ """
29858
+ return pulumi.get(self, "message")
29859
+
29860
+
29861
+ @pulumi.output_type
29862
+ class ResizeRequestStatusErrorErrorErrorDetail(dict):
29863
+ @staticmethod
29864
+ def __key_warning(key: str):
29865
+ suggest = None
29866
+ if key == "errorInfos":
29867
+ suggest = "error_infos"
29868
+ elif key == "localizedMessages":
29869
+ suggest = "localized_messages"
29870
+ elif key == "quotaInfos":
29871
+ suggest = "quota_infos"
29872
+
29873
+ if suggest:
29874
+ pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusErrorErrorErrorDetail. Access the value via the '{suggest}' property getter instead.")
29875
+
29876
+ def __getitem__(self, key: str) -> Any:
29877
+ ResizeRequestStatusErrorErrorErrorDetail.__key_warning(key)
29878
+ return super().__getitem__(key)
29879
+
29880
+ def get(self, key: str, default = None) -> Any:
29881
+ ResizeRequestStatusErrorErrorErrorDetail.__key_warning(key)
29882
+ return super().get(key, default)
29883
+
29884
+ def __init__(__self__, *,
29885
+ error_infos: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailErrorInfo']] = None,
29886
+ helps: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailHelp']] = None,
29887
+ localized_messages: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage']] = None,
29888
+ quota_infos: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailQuotaInfo']] = None):
29889
+ """
29890
+ :param Sequence['ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs'] error_infos: (Output)
29891
+ [Output Only]
29892
+ Structure is documented below.
29893
+ :param Sequence['ResizeRequestStatusErrorErrorErrorDetailHelpArgs'] helps: (Output)
29894
+ [Output Only]
29895
+ Structure is documented below.
29896
+ :param Sequence['ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs'] localized_messages: (Output)
29897
+ [Output Only]
29898
+ Structure is documented below.
29899
+ :param Sequence['ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs'] quota_infos: (Output)
29900
+ [Output Only]
29901
+ Structure is documented below.
29902
+ """
29903
+ if error_infos is not None:
29904
+ pulumi.set(__self__, "error_infos", error_infos)
29905
+ if helps is not None:
29906
+ pulumi.set(__self__, "helps", helps)
29907
+ if localized_messages is not None:
29908
+ pulumi.set(__self__, "localized_messages", localized_messages)
29909
+ if quota_infos is not None:
29910
+ pulumi.set(__self__, "quota_infos", quota_infos)
29911
+
29912
+ @property
29913
+ @pulumi.getter(name="errorInfos")
29914
+ def error_infos(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailErrorInfo']]:
29915
+ """
29916
+ (Output)
29917
+ [Output Only]
29918
+ Structure is documented below.
29919
+ """
29920
+ return pulumi.get(self, "error_infos")
29921
+
29922
+ @property
29923
+ @pulumi.getter
29924
+ def helps(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailHelp']]:
29925
+ """
29926
+ (Output)
29927
+ [Output Only]
29928
+ Structure is documented below.
29929
+ """
29930
+ return pulumi.get(self, "helps")
29931
+
29932
+ @property
29933
+ @pulumi.getter(name="localizedMessages")
29934
+ def localized_messages(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage']]:
29935
+ """
29936
+ (Output)
29937
+ [Output Only]
29938
+ Structure is documented below.
29939
+ """
29940
+ return pulumi.get(self, "localized_messages")
29941
+
29942
+ @property
29943
+ @pulumi.getter(name="quotaInfos")
29944
+ def quota_infos(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailQuotaInfo']]:
29945
+ """
29946
+ (Output)
29947
+ [Output Only]
29948
+ Structure is documented below.
29949
+ """
29950
+ return pulumi.get(self, "quota_infos")
29951
+
29952
+
29953
+ @pulumi.output_type
29954
+ class ResizeRequestStatusErrorErrorErrorDetailErrorInfo(dict):
29955
+ def __init__(__self__, *,
29956
+ domain: Optional[str] = None,
29957
+ metadatas: Optional[Mapping[str, str]] = None,
29958
+ reason: Optional[str] = None):
29959
+ """
29960
+ :param str domain: (Output)
29961
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".
29962
+ :param Mapping[str, str] metadatas: (Output)
29963
+ Additional structured details about this error.
29964
+ Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.
29965
+ :param str reason: (Output)
29966
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.
29967
+ """
29968
+ if domain is not None:
29969
+ pulumi.set(__self__, "domain", domain)
29970
+ if metadatas is not None:
29971
+ pulumi.set(__self__, "metadatas", metadatas)
29972
+ if reason is not None:
29973
+ pulumi.set(__self__, "reason", reason)
29974
+
29975
+ @property
29976
+ @pulumi.getter
29977
+ def domain(self) -> Optional[str]:
29978
+ """
29979
+ (Output)
29980
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".
29981
+ """
29982
+ return pulumi.get(self, "domain")
29983
+
29984
+ @property
29985
+ @pulumi.getter
29986
+ def metadatas(self) -> Optional[Mapping[str, str]]:
29987
+ """
29988
+ (Output)
29989
+ Additional structured details about this error.
29990
+ Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.
29991
+ """
29992
+ return pulumi.get(self, "metadatas")
29993
+
29994
+ @property
29995
+ @pulumi.getter
29996
+ def reason(self) -> Optional[str]:
29997
+ """
29998
+ (Output)
29999
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.
30000
+ """
30001
+ return pulumi.get(self, "reason")
30002
+
30003
+
30004
+ @pulumi.output_type
30005
+ class ResizeRequestStatusErrorErrorErrorDetailHelp(dict):
30006
+ def __init__(__self__, *,
30007
+ links: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailHelpLink']] = None):
30008
+ """
30009
+ :param Sequence['ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs'] links: (Output)
30010
+ [Output Only]
30011
+ Structure is documented below.
30012
+ """
30013
+ if links is not None:
30014
+ pulumi.set(__self__, "links", links)
30015
+
30016
+ @property
30017
+ @pulumi.getter
30018
+ def links(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailHelpLink']]:
30019
+ """
30020
+ (Output)
30021
+ [Output Only]
30022
+ Structure is documented below.
30023
+ """
30024
+ return pulumi.get(self, "links")
30025
+
30026
+
30027
+ @pulumi.output_type
30028
+ class ResizeRequestStatusErrorErrorErrorDetailHelpLink(dict):
30029
+ def __init__(__self__, *,
30030
+ description: Optional[str] = None,
30031
+ url: Optional[str] = None):
30032
+ """
30033
+ :param str description: An optional description of this resize-request.
30034
+ :param str url: (Output)
30035
+ The URL of the link.
30036
+ """
30037
+ if description is not None:
30038
+ pulumi.set(__self__, "description", description)
30039
+ if url is not None:
30040
+ pulumi.set(__self__, "url", url)
30041
+
30042
+ @property
30043
+ @pulumi.getter
30044
+ def description(self) -> Optional[str]:
30045
+ """
30046
+ An optional description of this resize-request.
30047
+ """
30048
+ return pulumi.get(self, "description")
30049
+
30050
+ @property
30051
+ @pulumi.getter
30052
+ def url(self) -> Optional[str]:
30053
+ """
30054
+ (Output)
30055
+ The URL of the link.
30056
+ """
30057
+ return pulumi.get(self, "url")
30058
+
30059
+
30060
+ @pulumi.output_type
30061
+ class ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage(dict):
30062
+ def __init__(__self__, *,
30063
+ locale: Optional[str] = None,
30064
+ message: Optional[str] = None):
30065
+ """
30066
+ :param str locale: (Output)
30067
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
30068
+ :param str message: (Output)
30069
+ The localized error message in the above locale.
30070
+ """
30071
+ if locale is not None:
30072
+ pulumi.set(__self__, "locale", locale)
30073
+ if message is not None:
30074
+ pulumi.set(__self__, "message", message)
30075
+
30076
+ @property
30077
+ @pulumi.getter
30078
+ def locale(self) -> Optional[str]:
30079
+ """
30080
+ (Output)
30081
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
30082
+ """
30083
+ return pulumi.get(self, "locale")
30084
+
30085
+ @property
30086
+ @pulumi.getter
30087
+ def message(self) -> Optional[str]:
30088
+ """
30089
+ (Output)
30090
+ The localized error message in the above locale.
30091
+ """
30092
+ return pulumi.get(self, "message")
30093
+
30094
+
30095
+ @pulumi.output_type
30096
+ class ResizeRequestStatusErrorErrorErrorDetailQuotaInfo(dict):
30097
+ @staticmethod
30098
+ def __key_warning(key: str):
30099
+ suggest = None
30100
+ if key == "futureLimit":
30101
+ suggest = "future_limit"
30102
+ elif key == "limitName":
30103
+ suggest = "limit_name"
30104
+ elif key == "metricName":
30105
+ suggest = "metric_name"
30106
+ elif key == "rolloutStatus":
30107
+ suggest = "rollout_status"
30108
+
30109
+ if suggest:
30110
+ pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusErrorErrorErrorDetailQuotaInfo. Access the value via the '{suggest}' property getter instead.")
30111
+
30112
+ def __getitem__(self, key: str) -> Any:
30113
+ ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.__key_warning(key)
30114
+ return super().__getitem__(key)
30115
+
30116
+ def get(self, key: str, default = None) -> Any:
30117
+ ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.__key_warning(key)
30118
+ return super().get(key, default)
30119
+
30120
+ def __init__(__self__, *,
30121
+ dimensions: Optional[Mapping[str, str]] = None,
30122
+ future_limit: Optional[int] = None,
30123
+ limit: Optional[int] = None,
30124
+ limit_name: Optional[str] = None,
30125
+ metric_name: Optional[str] = None,
30126
+ rollout_status: Optional[str] = None):
30127
+ """
30128
+ :param Mapping[str, str] dimensions: (Output)
30129
+ The map holding related quota dimensions
30130
+ :param int future_limit: (Output)
30131
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
30132
+ :param int limit: (Output)
30133
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
30134
+ :param str limit_name: (Output)
30135
+ The name of the quota limit.
30136
+ :param str metric_name: (Output)
30137
+ The Compute Engine quota metric name.
30138
+ :param str rollout_status: (Output)
30139
+ Rollout status of the future quota limit.
30140
+ """
30141
+ if dimensions is not None:
30142
+ pulumi.set(__self__, "dimensions", dimensions)
30143
+ if future_limit is not None:
30144
+ pulumi.set(__self__, "future_limit", future_limit)
30145
+ if limit is not None:
30146
+ pulumi.set(__self__, "limit", limit)
30147
+ if limit_name is not None:
30148
+ pulumi.set(__self__, "limit_name", limit_name)
30149
+ if metric_name is not None:
30150
+ pulumi.set(__self__, "metric_name", metric_name)
30151
+ if rollout_status is not None:
30152
+ pulumi.set(__self__, "rollout_status", rollout_status)
30153
+
30154
+ @property
30155
+ @pulumi.getter
30156
+ def dimensions(self) -> Optional[Mapping[str, str]]:
30157
+ """
30158
+ (Output)
30159
+ The map holding related quota dimensions
30160
+ """
30161
+ return pulumi.get(self, "dimensions")
30162
+
30163
+ @property
30164
+ @pulumi.getter(name="futureLimit")
30165
+ def future_limit(self) -> Optional[int]:
30166
+ """
30167
+ (Output)
30168
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
30169
+ """
30170
+ return pulumi.get(self, "future_limit")
30171
+
30172
+ @property
30173
+ @pulumi.getter
30174
+ def limit(self) -> Optional[int]:
30175
+ """
30176
+ (Output)
30177
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
30178
+ """
30179
+ return pulumi.get(self, "limit")
30180
+
30181
+ @property
30182
+ @pulumi.getter(name="limitName")
30183
+ def limit_name(self) -> Optional[str]:
30184
+ """
30185
+ (Output)
30186
+ The name of the quota limit.
30187
+ """
30188
+ return pulumi.get(self, "limit_name")
30189
+
30190
+ @property
30191
+ @pulumi.getter(name="metricName")
30192
+ def metric_name(self) -> Optional[str]:
30193
+ """
30194
+ (Output)
30195
+ The Compute Engine quota metric name.
30196
+ """
30197
+ return pulumi.get(self, "metric_name")
30198
+
30199
+ @property
30200
+ @pulumi.getter(name="rolloutStatus")
30201
+ def rollout_status(self) -> Optional[str]:
30202
+ """
30203
+ (Output)
30204
+ Rollout status of the future quota limit.
30205
+ """
30206
+ return pulumi.get(self, "rollout_status")
30207
+
30208
+
30209
+ @pulumi.output_type
30210
+ class ResizeRequestStatusLastAttempt(dict):
30211
+ def __init__(__self__, *,
30212
+ errors: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptError']] = None):
30213
+ """
30214
+ :param Sequence['ResizeRequestStatusLastAttemptErrorArgs'] errors: (Output)
30215
+ [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
30216
+ Structure is documented below.
30217
+ """
30218
+ if errors is not None:
30219
+ pulumi.set(__self__, "errors", errors)
30220
+
30221
+ @property
30222
+ @pulumi.getter
30223
+ def errors(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptError']]:
30224
+ """
30225
+ (Output)
30226
+ [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
30227
+ Structure is documented below.
30228
+ """
30229
+ return pulumi.get(self, "errors")
30230
+
30231
+
30232
+ @pulumi.output_type
30233
+ class ResizeRequestStatusLastAttemptError(dict):
30234
+ def __init__(__self__, *,
30235
+ errors: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorError']] = None):
30236
+ """
30237
+ :param Sequence['ResizeRequestStatusLastAttemptErrorErrorArgs'] errors: (Output)
30238
+ [Output Only] The array of errors encountered while processing this operation.
30239
+ Structure is documented below.
30240
+ """
30241
+ if errors is not None:
30242
+ pulumi.set(__self__, "errors", errors)
30243
+
30244
+ @property
30245
+ @pulumi.getter
30246
+ def errors(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorError']]:
30247
+ """
30248
+ (Output)
30249
+ [Output Only] The array of errors encountered while processing this operation.
30250
+ Structure is documented below.
30251
+ """
30252
+ return pulumi.get(self, "errors")
30253
+
30254
+
30255
+ @pulumi.output_type
30256
+ class ResizeRequestStatusLastAttemptErrorError(dict):
30257
+ @staticmethod
30258
+ def __key_warning(key: str):
30259
+ suggest = None
30260
+ if key == "errorDetails":
30261
+ suggest = "error_details"
30262
+
30263
+ if suggest:
30264
+ pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusLastAttemptErrorError. Access the value via the '{suggest}' property getter instead.")
30265
+
30266
+ def __getitem__(self, key: str) -> Any:
30267
+ ResizeRequestStatusLastAttemptErrorError.__key_warning(key)
30268
+ return super().__getitem__(key)
30269
+
30270
+ def get(self, key: str, default = None) -> Any:
30271
+ ResizeRequestStatusLastAttemptErrorError.__key_warning(key)
30272
+ return super().get(key, default)
30273
+
30274
+ def __init__(__self__, *,
30275
+ code: Optional[str] = None,
30276
+ error_details: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetail']] = None,
30277
+ location: Optional[str] = None,
30278
+ message: Optional[str] = None):
30279
+ """
30280
+ :param str code: (Output)
30281
+ [Output Only] The error type identifier for this error.
30282
+ :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs'] error_details: (Output)
30283
+ [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
30284
+ Structure is documented below.
30285
+ :param str location: (Output)
30286
+ Output Only] Indicates the field in the request that caused the error. This property is optional.
30287
+ :param str message: (Output)
30288
+ The localized error message in the above locale.
30289
+ """
30290
+ if code is not None:
30291
+ pulumi.set(__self__, "code", code)
30292
+ if error_details is not None:
30293
+ pulumi.set(__self__, "error_details", error_details)
30294
+ if location is not None:
30295
+ pulumi.set(__self__, "location", location)
30296
+ if message is not None:
30297
+ pulumi.set(__self__, "message", message)
30298
+
30299
+ @property
30300
+ @pulumi.getter
30301
+ def code(self) -> Optional[str]:
30302
+ """
30303
+ (Output)
30304
+ [Output Only] The error type identifier for this error.
30305
+ """
30306
+ return pulumi.get(self, "code")
30307
+
30308
+ @property
30309
+ @pulumi.getter(name="errorDetails")
30310
+ def error_details(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetail']]:
30311
+ """
30312
+ (Output)
30313
+ [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
30314
+ Structure is documented below.
30315
+ """
30316
+ return pulumi.get(self, "error_details")
30317
+
30318
+ @property
30319
+ @pulumi.getter
30320
+ def location(self) -> Optional[str]:
30321
+ """
30322
+ (Output)
30323
+ Output Only] Indicates the field in the request that caused the error. This property is optional.
30324
+ """
30325
+ return pulumi.get(self, "location")
30326
+
30327
+ @property
30328
+ @pulumi.getter
30329
+ def message(self) -> Optional[str]:
30330
+ """
30331
+ (Output)
30332
+ The localized error message in the above locale.
30333
+ """
30334
+ return pulumi.get(self, "message")
30335
+
30336
+
30337
+ @pulumi.output_type
30338
+ class ResizeRequestStatusLastAttemptErrorErrorErrorDetail(dict):
30339
+ @staticmethod
30340
+ def __key_warning(key: str):
30341
+ suggest = None
30342
+ if key == "errorInfos":
30343
+ suggest = "error_infos"
30344
+ elif key == "localizedMessages":
30345
+ suggest = "localized_messages"
30346
+ elif key == "quotaInfos":
30347
+ suggest = "quota_infos"
30348
+
30349
+ if suggest:
30350
+ pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusLastAttemptErrorErrorErrorDetail. Access the value via the '{suggest}' property getter instead.")
30351
+
30352
+ def __getitem__(self, key: str) -> Any:
30353
+ ResizeRequestStatusLastAttemptErrorErrorErrorDetail.__key_warning(key)
30354
+ return super().__getitem__(key)
30355
+
30356
+ def get(self, key: str, default = None) -> Any:
30357
+ ResizeRequestStatusLastAttemptErrorErrorErrorDetail.__key_warning(key)
30358
+ return super().get(key, default)
30359
+
30360
+ def __init__(__self__, *,
30361
+ error_infos: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo']] = None,
30362
+ helps: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp']] = None,
30363
+ localized_messages: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage']] = None,
30364
+ quota_infos: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo']] = None):
30365
+ """
30366
+ :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs'] error_infos: (Output)
30367
+ [Output Only]
30368
+ Structure is documented below.
30369
+ :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs'] helps: (Output)
30370
+ [Output Only]
30371
+ Structure is documented below.
30372
+ :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs'] localized_messages: (Output)
30373
+ [Output Only]
30374
+ Structure is documented below.
30375
+ :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs'] quota_infos: (Output)
30376
+ [Output Only]
30377
+ Structure is documented below.
30378
+ """
30379
+ if error_infos is not None:
30380
+ pulumi.set(__self__, "error_infos", error_infos)
30381
+ if helps is not None:
30382
+ pulumi.set(__self__, "helps", helps)
30383
+ if localized_messages is not None:
30384
+ pulumi.set(__self__, "localized_messages", localized_messages)
30385
+ if quota_infos is not None:
30386
+ pulumi.set(__self__, "quota_infos", quota_infos)
30387
+
30388
+ @property
30389
+ @pulumi.getter(name="errorInfos")
30390
+ def error_infos(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo']]:
30391
+ """
30392
+ (Output)
30393
+ [Output Only]
30394
+ Structure is documented below.
30395
+ """
30396
+ return pulumi.get(self, "error_infos")
30397
+
30398
+ @property
30399
+ @pulumi.getter
30400
+ def helps(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp']]:
30401
+ """
30402
+ (Output)
30403
+ [Output Only]
30404
+ Structure is documented below.
30405
+ """
30406
+ return pulumi.get(self, "helps")
30407
+
30408
+ @property
30409
+ @pulumi.getter(name="localizedMessages")
30410
+ def localized_messages(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage']]:
30411
+ """
30412
+ (Output)
30413
+ [Output Only]
30414
+ Structure is documented below.
30415
+ """
30416
+ return pulumi.get(self, "localized_messages")
30417
+
30418
+ @property
30419
+ @pulumi.getter(name="quotaInfos")
30420
+ def quota_infos(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo']]:
30421
+ """
30422
+ (Output)
30423
+ [Output Only]
30424
+ Structure is documented below.
30425
+ """
30426
+ return pulumi.get(self, "quota_infos")
30427
+
30428
+
30429
+ @pulumi.output_type
30430
+ class ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo(dict):
30431
+ def __init__(__self__, *,
30432
+ domain: Optional[str] = None,
30433
+ metadatas: Optional[Mapping[str, str]] = None,
30434
+ reason: Optional[str] = None):
30435
+ """
30436
+ :param str domain: (Output)
30437
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".
30438
+ :param Mapping[str, str] metadatas: (Output)
30439
+ Additional structured details about this error.
30440
+ Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.
30441
+ :param str reason: (Output)
30442
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.
30443
+ """
30444
+ if domain is not None:
30445
+ pulumi.set(__self__, "domain", domain)
30446
+ if metadatas is not None:
30447
+ pulumi.set(__self__, "metadatas", metadatas)
30448
+ if reason is not None:
30449
+ pulumi.set(__self__, "reason", reason)
30450
+
30451
+ @property
30452
+ @pulumi.getter
30453
+ def domain(self) -> Optional[str]:
30454
+ """
30455
+ (Output)
30456
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".
30457
+ """
30458
+ return pulumi.get(self, "domain")
30459
+
30460
+ @property
30461
+ @pulumi.getter
30462
+ def metadatas(self) -> Optional[Mapping[str, str]]:
30463
+ """
30464
+ (Output)
30465
+ Additional structured details about this error.
30466
+ Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.
30467
+ """
30468
+ return pulumi.get(self, "metadatas")
30469
+
30470
+ @property
30471
+ @pulumi.getter
30472
+ def reason(self) -> Optional[str]:
30473
+ """
30474
+ (Output)
30475
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.
30476
+ """
30477
+ return pulumi.get(self, "reason")
30478
+
30479
+
30480
+ @pulumi.output_type
30481
+ class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp(dict):
30482
+ def __init__(__self__, *,
30483
+ links: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink']] = None):
30484
+ """
30485
+ :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs'] links: (Output)
30486
+ [Output Only]
30487
+ Structure is documented below.
30488
+ """
30489
+ if links is not None:
30490
+ pulumi.set(__self__, "links", links)
30491
+
30492
+ @property
30493
+ @pulumi.getter
30494
+ def links(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink']]:
30495
+ """
30496
+ (Output)
30497
+ [Output Only]
30498
+ Structure is documented below.
30499
+ """
30500
+ return pulumi.get(self, "links")
30501
+
30502
+
30503
+ @pulumi.output_type
30504
+ class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink(dict):
30505
+ def __init__(__self__, *,
30506
+ description: Optional[str] = None,
30507
+ url: Optional[str] = None):
30508
+ """
30509
+ :param str description: An optional description of this resize-request.
30510
+ :param str url: (Output)
30511
+ The URL of the link.
30512
+ """
30513
+ if description is not None:
30514
+ pulumi.set(__self__, "description", description)
30515
+ if url is not None:
30516
+ pulumi.set(__self__, "url", url)
30517
+
30518
+ @property
30519
+ @pulumi.getter
30520
+ def description(self) -> Optional[str]:
30521
+ """
30522
+ An optional description of this resize-request.
30523
+ """
30524
+ return pulumi.get(self, "description")
30525
+
30526
+ @property
30527
+ @pulumi.getter
30528
+ def url(self) -> Optional[str]:
30529
+ """
30530
+ (Output)
30531
+ The URL of the link.
30532
+ """
30533
+ return pulumi.get(self, "url")
30534
+
30535
+
30536
+ @pulumi.output_type
30537
+ class ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage(dict):
30538
+ def __init__(__self__, *,
30539
+ locale: Optional[str] = None,
30540
+ message: Optional[str] = None):
30541
+ """
30542
+ :param str locale: (Output)
30543
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
30544
+ :param str message: (Output)
30545
+ The localized error message in the above locale.
30546
+ """
30547
+ if locale is not None:
30548
+ pulumi.set(__self__, "locale", locale)
30549
+ if message is not None:
30550
+ pulumi.set(__self__, "message", message)
30551
+
30552
+ @property
30553
+ @pulumi.getter
30554
+ def locale(self) -> Optional[str]:
30555
+ """
30556
+ (Output)
30557
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
30558
+ """
30559
+ return pulumi.get(self, "locale")
30560
+
30561
+ @property
30562
+ @pulumi.getter
30563
+ def message(self) -> Optional[str]:
30564
+ """
30565
+ (Output)
30566
+ The localized error message in the above locale.
30567
+ """
30568
+ return pulumi.get(self, "message")
30569
+
30570
+
30571
+ @pulumi.output_type
30572
+ class ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo(dict):
30573
+ @staticmethod
30574
+ def __key_warning(key: str):
30575
+ suggest = None
30576
+ if key == "futureLimit":
30577
+ suggest = "future_limit"
30578
+ elif key == "limitName":
30579
+ suggest = "limit_name"
30580
+ elif key == "metricName":
30581
+ suggest = "metric_name"
30582
+ elif key == "rolloutStatus":
30583
+ suggest = "rollout_status"
30584
+
30585
+ if suggest:
30586
+ pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo. Access the value via the '{suggest}' property getter instead.")
30587
+
30588
+ def __getitem__(self, key: str) -> Any:
30589
+ ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.__key_warning(key)
30590
+ return super().__getitem__(key)
30591
+
30592
+ def get(self, key: str, default = None) -> Any:
30593
+ ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.__key_warning(key)
30594
+ return super().get(key, default)
30595
+
30596
+ def __init__(__self__, *,
30597
+ dimensions: Optional[Mapping[str, str]] = None,
30598
+ future_limit: Optional[int] = None,
30599
+ limit: Optional[int] = None,
30600
+ limit_name: Optional[str] = None,
30601
+ metric_name: Optional[str] = None,
30602
+ rollout_status: Optional[str] = None):
30603
+ """
30604
+ :param Mapping[str, str] dimensions: (Output)
30605
+ The map holding related quota dimensions
30606
+ :param int future_limit: (Output)
30607
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
30608
+ :param int limit: (Output)
30609
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
30610
+ :param str limit_name: (Output)
30611
+ The name of the quota limit.
30612
+ :param str metric_name: (Output)
30613
+ The Compute Engine quota metric name.
30614
+ :param str rollout_status: (Output)
30615
+ Rollout status of the future quota limit.
30616
+ """
30617
+ if dimensions is not None:
30618
+ pulumi.set(__self__, "dimensions", dimensions)
30619
+ if future_limit is not None:
30620
+ pulumi.set(__self__, "future_limit", future_limit)
30621
+ if limit is not None:
30622
+ pulumi.set(__self__, "limit", limit)
30623
+ if limit_name is not None:
30624
+ pulumi.set(__self__, "limit_name", limit_name)
30625
+ if metric_name is not None:
30626
+ pulumi.set(__self__, "metric_name", metric_name)
30627
+ if rollout_status is not None:
30628
+ pulumi.set(__self__, "rollout_status", rollout_status)
30629
+
30630
+ @property
30631
+ @pulumi.getter
30632
+ def dimensions(self) -> Optional[Mapping[str, str]]:
30633
+ """
30634
+ (Output)
30635
+ The map holding related quota dimensions
30636
+ """
30637
+ return pulumi.get(self, "dimensions")
30638
+
30639
+ @property
30640
+ @pulumi.getter(name="futureLimit")
30641
+ def future_limit(self) -> Optional[int]:
30642
+ """
30643
+ (Output)
30644
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
30645
+ """
30646
+ return pulumi.get(self, "future_limit")
30647
+
30648
+ @property
30649
+ @pulumi.getter
30650
+ def limit(self) -> Optional[int]:
30651
+ """
30652
+ (Output)
30653
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
30654
+ """
30655
+ return pulumi.get(self, "limit")
30656
+
30657
+ @property
30658
+ @pulumi.getter(name="limitName")
30659
+ def limit_name(self) -> Optional[str]:
30660
+ """
30661
+ (Output)
30662
+ The name of the quota limit.
30663
+ """
30664
+ return pulumi.get(self, "limit_name")
30665
+
30666
+ @property
30667
+ @pulumi.getter(name="metricName")
30668
+ def metric_name(self) -> Optional[str]:
30669
+ """
30670
+ (Output)
30671
+ The Compute Engine quota metric name.
30672
+ """
30673
+ return pulumi.get(self, "metric_name")
30674
+
30675
+ @property
30676
+ @pulumi.getter(name="rolloutStatus")
30677
+ def rollout_status(self) -> Optional[str]:
30678
+ """
30679
+ (Output)
30680
+ Rollout status of the future quota limit.
30681
+ """
30682
+ return pulumi.get(self, "rollout_status")
30683
+
30684
+
29489
30685
  @pulumi.output_type
29490
30686
  class ResourcePolicyDiskConsistencyGroupPolicy(dict):
29491
30687
  def __init__(__self__, *,
@@ -30807,6 +32003,26 @@ class RouterPeerBfd(dict):
30807
32003
  return pulumi.get(self, "multiplier")
30808
32004
 
30809
32005
 
32006
+ @pulumi.output_type
32007
+ class RouterPeerCustomLearnedIpRange(dict):
32008
+ def __init__(__self__, *,
32009
+ range: str):
32010
+ """
32011
+ :param str range: The IP range to advertise. The value must be a
32012
+ CIDR-formatted string.
32013
+ """
32014
+ pulumi.set(__self__, "range", range)
32015
+
32016
+ @property
32017
+ @pulumi.getter
32018
+ def range(self) -> str:
32019
+ """
32020
+ The IP range to advertise. The value must be a
32021
+ CIDR-formatted string.
32022
+ """
32023
+ return pulumi.get(self, "range")
32024
+
32025
+
30810
32026
  @pulumi.output_type
30811
32027
  class RouterPeerMd5AuthenticationKey(dict):
30812
32028
  def __init__(__self__, *,
@@ -30846,6 +32062,170 @@ class RouterPeerMd5AuthenticationKey(dict):
30846
32062
  return pulumi.get(self, "name")
30847
32063
 
30848
32064
 
32065
+ @pulumi.output_type
32066
+ class RouterRoutePolicyTerm(dict):
32067
+ def __init__(__self__, *,
32068
+ priority: int,
32069
+ actions: Optional[Sequence['outputs.RouterRoutePolicyTermAction']] = None,
32070
+ match: Optional['outputs.RouterRoutePolicyTermMatch'] = None):
32071
+ """
32072
+ :param int priority: The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list.
32073
+ :param Sequence['RouterRoutePolicyTermActionArgs'] actions: 'CEL expressions to evaluate to modify a route when this term matches.'\\
32074
+ Structure is documented below.
32075
+ :param 'RouterRoutePolicyTermMatchArgs' match: CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes.
32076
+ Structure is documented below.
32077
+ """
32078
+ pulumi.set(__self__, "priority", priority)
32079
+ if actions is not None:
32080
+ pulumi.set(__self__, "actions", actions)
32081
+ if match is not None:
32082
+ pulumi.set(__self__, "match", match)
32083
+
32084
+ @property
32085
+ @pulumi.getter
32086
+ def priority(self) -> int:
32087
+ """
32088
+ The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list.
32089
+ """
32090
+ return pulumi.get(self, "priority")
32091
+
32092
+ @property
32093
+ @pulumi.getter
32094
+ def actions(self) -> Optional[Sequence['outputs.RouterRoutePolicyTermAction']]:
32095
+ """
32096
+ 'CEL expressions to evaluate to modify a route when this term matches.'\\
32097
+ Structure is documented below.
32098
+ """
32099
+ return pulumi.get(self, "actions")
32100
+
32101
+ @property
32102
+ @pulumi.getter
32103
+ def match(self) -> Optional['outputs.RouterRoutePolicyTermMatch']:
32104
+ """
32105
+ CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes.
32106
+ Structure is documented below.
32107
+ """
32108
+ return pulumi.get(self, "match")
32109
+
32110
+
32111
+ @pulumi.output_type
32112
+ class RouterRoutePolicyTermAction(dict):
32113
+ def __init__(__self__, *,
32114
+ expression: str,
32115
+ description: Optional[str] = None,
32116
+ location: Optional[str] = None,
32117
+ title: Optional[str] = None):
32118
+ """
32119
+ :param str expression: Textual representation of an expression in Common Expression
32120
+ Language syntax.
32121
+ :param str description: Description of the expression
32122
+ :param str location: String indicating the location of the expression for error
32123
+ reporting, e.g. a file name and a position in the file
32124
+
32125
+ - - -
32126
+ :param str title: Title for the expression, i.e. a short string describing its
32127
+ purpose.
32128
+ """
32129
+ pulumi.set(__self__, "expression", expression)
32130
+ if description is not None:
32131
+ pulumi.set(__self__, "description", description)
32132
+ if location is not None:
32133
+ pulumi.set(__self__, "location", location)
32134
+ if title is not None:
32135
+ pulumi.set(__self__, "title", title)
32136
+
32137
+ @property
32138
+ @pulumi.getter
32139
+ def expression(self) -> str:
32140
+ """
32141
+ Textual representation of an expression in Common Expression
32142
+ Language syntax.
32143
+ """
32144
+ return pulumi.get(self, "expression")
32145
+
32146
+ @property
32147
+ @pulumi.getter
32148
+ def description(self) -> Optional[str]:
32149
+ """
32150
+ Description of the expression
32151
+ """
32152
+ return pulumi.get(self, "description")
32153
+
32154
+ @property
32155
+ @pulumi.getter
32156
+ def location(self) -> Optional[str]:
32157
+ """
32158
+ String indicating the location of the expression for error
32159
+ reporting, e.g. a file name and a position in the file
32160
+
32161
+ - - -
32162
+ """
32163
+ return pulumi.get(self, "location")
32164
+
32165
+ @property
32166
+ @pulumi.getter
32167
+ def title(self) -> Optional[str]:
32168
+ """
32169
+ Title for the expression, i.e. a short string describing its
32170
+ purpose.
32171
+ """
32172
+ return pulumi.get(self, "title")
32173
+
32174
+
32175
+ @pulumi.output_type
32176
+ class RouterRoutePolicyTermMatch(dict):
32177
+ def __init__(__self__, *,
32178
+ expression: str,
32179
+ description: Optional[str] = None,
32180
+ location: Optional[str] = None,
32181
+ title: Optional[str] = None):
32182
+ """
32183
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
32184
+ :param str description: Description of the expression
32185
+ :param str location: String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
32186
+ :param str title: Title for the expression, i.e. a short string describing its purpose.
32187
+ """
32188
+ pulumi.set(__self__, "expression", expression)
32189
+ if description is not None:
32190
+ pulumi.set(__self__, "description", description)
32191
+ if location is not None:
32192
+ pulumi.set(__self__, "location", location)
32193
+ if title is not None:
32194
+ pulumi.set(__self__, "title", title)
32195
+
32196
+ @property
32197
+ @pulumi.getter
32198
+ def expression(self) -> str:
32199
+ """
32200
+ Textual representation of an expression in Common Expression Language syntax.
32201
+ """
32202
+ return pulumi.get(self, "expression")
32203
+
32204
+ @property
32205
+ @pulumi.getter
32206
+ def description(self) -> Optional[str]:
32207
+ """
32208
+ Description of the expression
32209
+ """
32210
+ return pulumi.get(self, "description")
32211
+
32212
+ @property
32213
+ @pulumi.getter
32214
+ def location(self) -> Optional[str]:
32215
+ """
32216
+ String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
32217
+ """
32218
+ return pulumi.get(self, "location")
32219
+
32220
+ @property
32221
+ @pulumi.getter
32222
+ def title(self) -> Optional[str]:
32223
+ """
32224
+ Title for the expression, i.e. a short string describing its purpose.
32225
+ """
32226
+ return pulumi.get(self, "title")
32227
+
32228
+
30849
32229
  @pulumi.output_type
30850
32230
  class RouterStatusBestRouteResult(dict):
30851
32231
  def __init__(__self__, *,
@@ -42265,9 +43645,12 @@ class GetBackendServiceOutlierDetectionIntervalResult(dict):
42265
43645
  @pulumi.output_type
42266
43646
  class GetBackendServiceSecuritySettingResult(dict):
42267
43647
  def __init__(__self__, *,
43648
+ aws_v4_authentications: Sequence['outputs.GetBackendServiceSecuritySettingAwsV4AuthenticationResult'],
42268
43649
  client_tls_policy: str,
42269
43650
  subject_alt_names: Sequence[str]):
42270
43651
  """
43652
+ :param Sequence['GetBackendServiceSecuritySettingAwsV4AuthenticationArgs'] aws_v4_authentications: The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication.
43653
+ Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends.
42271
43654
  :param str client_tls_policy: ClientTlsPolicy is a resource that specifies how a client should authenticate
42272
43655
  connections to backends of a service. This resource itself does not affect
42273
43656
  configuration unless it is attached to a backend service resource.
@@ -42275,9 +43658,19 @@ class GetBackendServiceSecuritySettingResult(dict):
42275
43658
  If specified, the client will verify that the server certificate's subject
42276
43659
  alt name matches one of the specified values.
42277
43660
  """
43661
+ pulumi.set(__self__, "aws_v4_authentications", aws_v4_authentications)
42278
43662
  pulumi.set(__self__, "client_tls_policy", client_tls_policy)
42279
43663
  pulumi.set(__self__, "subject_alt_names", subject_alt_names)
42280
43664
 
43665
+ @property
43666
+ @pulumi.getter(name="awsV4Authentications")
43667
+ def aws_v4_authentications(self) -> Sequence['outputs.GetBackendServiceSecuritySettingAwsV4AuthenticationResult']:
43668
+ """
43669
+ The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication.
43670
+ Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends.
43671
+ """
43672
+ return pulumi.get(self, "aws_v4_authentications")
43673
+
42281
43674
  @property
42282
43675
  @pulumi.getter(name="clientTlsPolicy")
42283
43676
  def client_tls_policy(self) -> str:
@@ -42299,6 +43692,61 @@ class GetBackendServiceSecuritySettingResult(dict):
42299
43692
  return pulumi.get(self, "subject_alt_names")
42300
43693
 
42301
43694
 
43695
+ @pulumi.output_type
43696
+ class GetBackendServiceSecuritySettingAwsV4AuthenticationResult(dict):
43697
+ def __init__(__self__, *,
43698
+ access_key: str,
43699
+ access_key_id: str,
43700
+ access_key_version: str,
43701
+ origin_region: str):
43702
+ """
43703
+ :param str access_key: The access key used for s3 bucket authentication.
43704
+ Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request.
43705
+ :param str access_key_id: The identifier of an access key used for s3 bucket authentication.
43706
+ :param str access_key_version: The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.
43707
+ :param str origin_region: The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin.
43708
+ For example, "us-east-1" for AWS or "us-ashburn-1" for OCI.
43709
+ """
43710
+ pulumi.set(__self__, "access_key", access_key)
43711
+ pulumi.set(__self__, "access_key_id", access_key_id)
43712
+ pulumi.set(__self__, "access_key_version", access_key_version)
43713
+ pulumi.set(__self__, "origin_region", origin_region)
43714
+
43715
+ @property
43716
+ @pulumi.getter(name="accessKey")
43717
+ def access_key(self) -> str:
43718
+ """
43719
+ The access key used for s3 bucket authentication.
43720
+ Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request.
43721
+ """
43722
+ return pulumi.get(self, "access_key")
43723
+
43724
+ @property
43725
+ @pulumi.getter(name="accessKeyId")
43726
+ def access_key_id(self) -> str:
43727
+ """
43728
+ The identifier of an access key used for s3 bucket authentication.
43729
+ """
43730
+ return pulumi.get(self, "access_key_id")
43731
+
43732
+ @property
43733
+ @pulumi.getter(name="accessKeyVersion")
43734
+ def access_key_version(self) -> str:
43735
+ """
43736
+ The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.
43737
+ """
43738
+ return pulumi.get(self, "access_key_version")
43739
+
43740
+ @property
43741
+ @pulumi.getter(name="originRegion")
43742
+ def origin_region(self) -> str:
43743
+ """
43744
+ The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin.
43745
+ For example, "us-east-1" for AWS or "us-ashburn-1" for OCI.
43746
+ """
43747
+ return pulumi.get(self, "origin_region")
43748
+
43749
+
42302
43750
  @pulumi.output_type
42303
43751
  class GetDiskAsyncPrimaryDiskResult(dict):
42304
43752
  def __init__(__self__, *,
@@ -44504,6 +45952,7 @@ class GetInstanceBootDiskInitializeParamResult(dict):
44504
45952
  provisioned_throughput: int,
44505
45953
  resource_manager_tags: Mapping[str, Any],
44506
45954
  size: int,
45955
+ storage_pool: str,
44507
45956
  type: str):
44508
45957
  """
44509
45958
  :param bool enable_confidential_compute: A flag to enable confidential compute mode on boot disk
@@ -44513,6 +45962,7 @@ class GetInstanceBootDiskInitializeParamResult(dict):
44513
45962
  :param int provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.
44514
45963
  :param Mapping[str, Any] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
44515
45964
  :param int size: The size of the image in gigabytes.
45965
+ :param str storage_pool: The URL of the storage pool in which the new disk is created
44516
45966
  :param str type: The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`.
44517
45967
  """
44518
45968
  pulumi.set(__self__, "enable_confidential_compute", enable_confidential_compute)
@@ -44522,6 +45972,7 @@ class GetInstanceBootDiskInitializeParamResult(dict):
44522
45972
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
44523
45973
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
44524
45974
  pulumi.set(__self__, "size", size)
45975
+ pulumi.set(__self__, "storage_pool", storage_pool)
44525
45976
  pulumi.set(__self__, "type", type)
44526
45977
 
44527
45978
  @property
@@ -44580,6 +46031,14 @@ class GetInstanceBootDiskInitializeParamResult(dict):
44580
46031
  """
44581
46032
  return pulumi.get(self, "size")
44582
46033
 
46034
+ @property
46035
+ @pulumi.getter(name="storagePool")
46036
+ def storage_pool(self) -> str:
46037
+ """
46038
+ The URL of the storage pool in which the new disk is created
46039
+ """
46040
+ return pulumi.get(self, "storage_pool")
46041
+
44583
46042
  @property
44584
46043
  @pulumi.getter
44585
46044
  def type(self) -> str: