pulumi-gcp 8.26.0a1744267117__py3-none-any.whl → 8.27.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 (116) hide show
  1. pulumi_gcp/__init__.py +128 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +117 -0
  3. pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +81 -26
  4. pulumi_gcp/accesscontextmanager/outputs.py +95 -0
  5. pulumi_gcp/apigee/__init__.py +1 -0
  6. pulumi_gcp/apigee/control_plane_access.py +419 -0
  7. pulumi_gcp/bigquery/_inputs.py +87 -30
  8. pulumi_gcp/bigquery/outputs.py +58 -20
  9. pulumi_gcp/bigquery/table.py +28 -14
  10. pulumi_gcp/clouddeploy/__init__.py +1 -0
  11. pulumi_gcp/clouddeploy/_inputs.py +2876 -1314
  12. pulumi_gcp/clouddeploy/automation.py +64 -2
  13. pulumi_gcp/clouddeploy/deploy_policy.py +1179 -0
  14. pulumi_gcp/clouddeploy/outputs.py +1130 -5
  15. pulumi_gcp/cloudrun/service.py +46 -0
  16. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  17. pulumi_gcp/cloudrunv2/service.py +87 -2
  18. pulumi_gcp/compute/_inputs.py +448 -1
  19. pulumi_gcp/compute/image.py +183 -0
  20. pulumi_gcp/compute/outputs.py +387 -3
  21. pulumi_gcp/compute/region_backend_service.py +6 -2
  22. pulumi_gcp/compute/resource_policy.py +30 -0
  23. pulumi_gcp/compute/snapshot.py +6 -0
  24. pulumi_gcp/databasemigrationservice/_inputs.py +27 -24
  25. pulumi_gcp/databasemigrationservice/connection_profile.py +168 -0
  26. pulumi_gcp/databasemigrationservice/migration_job.py +6 -0
  27. pulumi_gcp/databasemigrationservice/outputs.py +18 -15
  28. pulumi_gcp/datastream/_inputs.py +506 -0
  29. pulumi_gcp/datastream/outputs.py +376 -0
  30. pulumi_gcp/datastream/stream.py +0 -2
  31. pulumi_gcp/developerconnect/__init__.py +1 -0
  32. pulumi_gcp/developerconnect/_inputs.py +77 -0
  33. pulumi_gcp/developerconnect/account_connector.py +866 -0
  34. pulumi_gcp/developerconnect/outputs.py +64 -0
  35. pulumi_gcp/firebase/hosting_version.py +34 -14
  36. pulumi_gcp/firestore/database.py +82 -0
  37. pulumi_gcp/firestore/index.py +263 -7
  38. pulumi_gcp/folder/__init__.py +1 -0
  39. pulumi_gcp/folder/service_identity.py +314 -0
  40. pulumi_gcp/gemini/__init__.py +2 -0
  41. pulumi_gcp/gemini/_inputs.py +176 -0
  42. pulumi_gcp/gemini/code_tools_setting.py +601 -0
  43. pulumi_gcp/gemini/code_tools_setting_binding.py +753 -0
  44. pulumi_gcp/gemini/outputs.py +124 -0
  45. pulumi_gcp/gkeonprem/v_mware_cluster.py +49 -0
  46. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +28 -0
  47. pulumi_gcp/managedkafka/_inputs.py +6 -6
  48. pulumi_gcp/managedkafka/connect_cluster.py +84 -40
  49. pulumi_gcp/managedkafka/connector.py +98 -44
  50. pulumi_gcp/managedkafka/outputs.py +4 -4
  51. pulumi_gcp/memorystore/_inputs.py +205 -0
  52. pulumi_gcp/memorystore/get_instance.py +45 -1
  53. pulumi_gcp/memorystore/instance.py +194 -0
  54. pulumi_gcp/memorystore/outputs.py +270 -0
  55. pulumi_gcp/ml/engine_model.py +0 -22
  56. pulumi_gcp/monitoring/_inputs.py +37 -19
  57. pulumi_gcp/monitoring/outputs.py +39 -11
  58. pulumi_gcp/monitoring/uptime_check_config.py +8 -0
  59. pulumi_gcp/netapp/_inputs.py +92 -6
  60. pulumi_gcp/netapp/outputs.py +77 -4
  61. pulumi_gcp/netapp/volume_replication.py +12 -2
  62. pulumi_gcp/networkconnectivity/service_connection_policy.py +4 -2
  63. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  64. pulumi_gcp/orgpolicy/policy.py +2 -2
  65. pulumi_gcp/osconfig/__init__.py +1 -0
  66. pulumi_gcp/osconfig/_inputs.py +5439 -0
  67. pulumi_gcp/osconfig/outputs.py +3978 -0
  68. pulumi_gcp/osconfig/v2_policy_orchestrator.py +8 -0
  69. pulumi_gcp/osconfig/v2_policy_orchestrator_for_organization.py +1055 -0
  70. pulumi_gcp/parametermanager/get_regional_parameter.py +12 -1
  71. pulumi_gcp/parametermanager/get_regional_parameter_version.py +15 -1
  72. pulumi_gcp/parametermanager/outputs.py +11 -0
  73. pulumi_gcp/parametermanager/regional_parameter.py +78 -0
  74. pulumi_gcp/parametermanager/regional_parameter_version.py +66 -0
  75. pulumi_gcp/pubsub/subscription.py +6 -6
  76. pulumi_gcp/pulumi-plugin.json +1 -1
  77. pulumi_gcp/redis/_inputs.py +69 -0
  78. pulumi_gcp/redis/cluster.py +140 -0
  79. pulumi_gcp/redis/outputs.py +40 -0
  80. pulumi_gcp/spanner/database.py +0 -34
  81. pulumi_gcp/storage/_inputs.py +111 -0
  82. pulumi_gcp/storage/bucket_object.py +28 -0
  83. pulumi_gcp/storage/control_folder_intelligence_config.py +32 -0
  84. pulumi_gcp/storage/control_organization_intelligence_config.py +32 -0
  85. pulumi_gcp/storage/control_project_intelligence_config.py +32 -0
  86. pulumi_gcp/storage/get_bucket_object.py +12 -1
  87. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  88. pulumi_gcp/storage/get_control_folder_intelligence_config.py +12 -1
  89. pulumi_gcp/storage/get_control_organization_intelligence_config.py +12 -1
  90. pulumi_gcp/storage/get_control_project_intelligence_config.py +12 -1
  91. pulumi_gcp/storage/outputs.py +174 -0
  92. pulumi_gcp/vertex/__init__.py +12 -0
  93. pulumi_gcp/vertex/_inputs.py +294 -0
  94. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  95. pulumi_gcp/vertex/ai_feature_group.py +1 -1
  96. pulumi_gcp/vertex/ai_feature_group_iam_binding.py +583 -0
  97. pulumi_gcp/vertex/ai_feature_group_iam_member.py +583 -0
  98. pulumi_gcp/vertex/ai_feature_group_iam_policy.py +422 -0
  99. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +26 -27
  100. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_binding.py +614 -0
  101. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_member.py +614 -0
  102. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_policy.py +453 -0
  103. pulumi_gcp/vertex/ai_feature_online_store_iam_binding.py +583 -0
  104. pulumi_gcp/vertex/ai_feature_online_store_iam_member.py +583 -0
  105. pulumi_gcp/vertex/ai_feature_online_store_iam_policy.py +422 -0
  106. pulumi_gcp/vertex/get_ai_feature_group_iam_policy.py +177 -0
  107. pulumi_gcp/vertex/get_ai_feature_online_store_featureview_iam_policy.py +194 -0
  108. pulumi_gcp/vertex/get_ai_feature_online_store_iam_policy.py +177 -0
  109. pulumi_gcp/vertex/outputs.py +168 -0
  110. pulumi_gcp/workbench/_inputs.py +60 -0
  111. pulumi_gcp/workbench/instance.py +48 -0
  112. pulumi_gcp/workbench/outputs.py +55 -0
  113. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0.dist-info}/METADATA +1 -1
  114. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0.dist-info}/RECORD +116 -97
  115. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0.dist-info}/WHEEL +0 -0
  116. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0.dist-info}/top_level.txt +0 -0
@@ -103,6 +103,9 @@ __all__ = [
103
103
  'ImageShieldedInstanceInitialStateDbx',
104
104
  'ImageShieldedInstanceInitialStateKek',
105
105
  'ImageShieldedInstanceInitialStatePk',
106
+ 'ImageSourceDiskEncryptionKey',
107
+ 'ImageSourceImageEncryptionKey',
108
+ 'ImageSourceSnapshotEncryptionKey',
106
109
  'InstanceAdvancedMachineFeatures',
107
110
  'InstanceAttachedDisk',
108
111
  'InstanceBootDisk',
@@ -8022,6 +8025,306 @@ class ImageShieldedInstanceInitialStatePk(dict):
8022
8025
  return pulumi.get(self, "file_type")
8023
8026
 
8024
8027
 
8028
+ @pulumi.output_type
8029
+ class ImageSourceDiskEncryptionKey(dict):
8030
+ @staticmethod
8031
+ def __key_warning(key: str):
8032
+ suggest = None
8033
+ if key == "kmsKeySelfLink":
8034
+ suggest = "kms_key_self_link"
8035
+ elif key == "kmsKeyServiceAccount":
8036
+ suggest = "kms_key_service_account"
8037
+ elif key == "rawKey":
8038
+ suggest = "raw_key"
8039
+ elif key == "rsaEncryptedKey":
8040
+ suggest = "rsa_encrypted_key"
8041
+
8042
+ if suggest:
8043
+ pulumi.log.warn(f"Key '{key}' not found in ImageSourceDiskEncryptionKey. Access the value via the '{suggest}' property getter instead.")
8044
+
8045
+ def __getitem__(self, key: str) -> Any:
8046
+ ImageSourceDiskEncryptionKey.__key_warning(key)
8047
+ return super().__getitem__(key)
8048
+
8049
+ def get(self, key: str, default = None) -> Any:
8050
+ ImageSourceDiskEncryptionKey.__key_warning(key)
8051
+ return super().get(key, default)
8052
+
8053
+ def __init__(__self__, *,
8054
+ kms_key_self_link: Optional[builtins.str] = None,
8055
+ kms_key_service_account: Optional[builtins.str] = None,
8056
+ raw_key: Optional[builtins.str] = None,
8057
+ rsa_encrypted_key: Optional[builtins.str] = None):
8058
+ """
8059
+ :param builtins.str kms_key_self_link: The self link of the encryption key used to decrypt this resource. Also called KmsKeyName
8060
+ in the cloud console. Your project's Compute Engine System service account
8061
+ (`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have
8062
+ `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.
8063
+ See https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
8064
+ :param builtins.str kms_key_service_account: The service account being used for the encryption request for the
8065
+ given KMS key. If absent, the Compute Engine default service
8066
+ account is used.
8067
+ :param builtins.str raw_key: Specifies a 256-bit customer-supplied encryption key, encoded in
8068
+ RFC 4648 base64 to either encrypt or decrypt this resource.
8069
+ **Note**: This property is sensitive and will not be displayed in the plan.
8070
+ :param builtins.str rsa_encrypted_key: Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
8071
+ customer-supplied encryption key to either encrypt or decrypt
8072
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
8073
+ **Note**: This property is sensitive and will not be displayed in the plan.
8074
+ """
8075
+ if kms_key_self_link is not None:
8076
+ pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
8077
+ if kms_key_service_account is not None:
8078
+ pulumi.set(__self__, "kms_key_service_account", kms_key_service_account)
8079
+ if raw_key is not None:
8080
+ pulumi.set(__self__, "raw_key", raw_key)
8081
+ if rsa_encrypted_key is not None:
8082
+ pulumi.set(__self__, "rsa_encrypted_key", rsa_encrypted_key)
8083
+
8084
+ @property
8085
+ @pulumi.getter(name="kmsKeySelfLink")
8086
+ def kms_key_self_link(self) -> Optional[builtins.str]:
8087
+ """
8088
+ The self link of the encryption key used to decrypt this resource. Also called KmsKeyName
8089
+ in the cloud console. Your project's Compute Engine System service account
8090
+ (`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have
8091
+ `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.
8092
+ See https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
8093
+ """
8094
+ return pulumi.get(self, "kms_key_self_link")
8095
+
8096
+ @property
8097
+ @pulumi.getter(name="kmsKeyServiceAccount")
8098
+ def kms_key_service_account(self) -> Optional[builtins.str]:
8099
+ """
8100
+ The service account being used for the encryption request for the
8101
+ given KMS key. If absent, the Compute Engine default service
8102
+ account is used.
8103
+ """
8104
+ return pulumi.get(self, "kms_key_service_account")
8105
+
8106
+ @property
8107
+ @pulumi.getter(name="rawKey")
8108
+ def raw_key(self) -> Optional[builtins.str]:
8109
+ """
8110
+ Specifies a 256-bit customer-supplied encryption key, encoded in
8111
+ RFC 4648 base64 to either encrypt or decrypt this resource.
8112
+ **Note**: This property is sensitive and will not be displayed in the plan.
8113
+ """
8114
+ return pulumi.get(self, "raw_key")
8115
+
8116
+ @property
8117
+ @pulumi.getter(name="rsaEncryptedKey")
8118
+ def rsa_encrypted_key(self) -> Optional[builtins.str]:
8119
+ """
8120
+ Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
8121
+ customer-supplied encryption key to either encrypt or decrypt
8122
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
8123
+ **Note**: This property is sensitive and will not be displayed in the plan.
8124
+ """
8125
+ return pulumi.get(self, "rsa_encrypted_key")
8126
+
8127
+
8128
+ @pulumi.output_type
8129
+ class ImageSourceImageEncryptionKey(dict):
8130
+ @staticmethod
8131
+ def __key_warning(key: str):
8132
+ suggest = None
8133
+ if key == "kmsKeySelfLink":
8134
+ suggest = "kms_key_self_link"
8135
+ elif key == "kmsKeyServiceAccount":
8136
+ suggest = "kms_key_service_account"
8137
+ elif key == "rawKey":
8138
+ suggest = "raw_key"
8139
+ elif key == "rsaEncryptedKey":
8140
+ suggest = "rsa_encrypted_key"
8141
+
8142
+ if suggest:
8143
+ pulumi.log.warn(f"Key '{key}' not found in ImageSourceImageEncryptionKey. Access the value via the '{suggest}' property getter instead.")
8144
+
8145
+ def __getitem__(self, key: str) -> Any:
8146
+ ImageSourceImageEncryptionKey.__key_warning(key)
8147
+ return super().__getitem__(key)
8148
+
8149
+ def get(self, key: str, default = None) -> Any:
8150
+ ImageSourceImageEncryptionKey.__key_warning(key)
8151
+ return super().get(key, default)
8152
+
8153
+ def __init__(__self__, *,
8154
+ kms_key_self_link: Optional[builtins.str] = None,
8155
+ kms_key_service_account: Optional[builtins.str] = None,
8156
+ raw_key: Optional[builtins.str] = None,
8157
+ rsa_encrypted_key: Optional[builtins.str] = None):
8158
+ """
8159
+ :param builtins.str kms_key_self_link: The self link of the encryption key used to decrypt this resource. Also called KmsKeyName
8160
+ in the cloud console. Your project's Compute Engine System service account
8161
+ (`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have
8162
+ `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.
8163
+ See https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
8164
+ :param builtins.str kms_key_service_account: The service account being used for the encryption request for the
8165
+ given KMS key. If absent, the Compute Engine default service
8166
+ account is used.
8167
+ :param builtins.str raw_key: Specifies a 256-bit customer-supplied encryption key, encoded in
8168
+ RFC 4648 base64 to either encrypt or decrypt this resource.
8169
+ **Note**: This property is sensitive and will not be displayed in the plan.
8170
+ :param builtins.str rsa_encrypted_key: Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
8171
+ customer-supplied encryption key to either encrypt or decrypt
8172
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
8173
+ **Note**: This property is sensitive and will not be displayed in the plan.
8174
+ """
8175
+ if kms_key_self_link is not None:
8176
+ pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
8177
+ if kms_key_service_account is not None:
8178
+ pulumi.set(__self__, "kms_key_service_account", kms_key_service_account)
8179
+ if raw_key is not None:
8180
+ pulumi.set(__self__, "raw_key", raw_key)
8181
+ if rsa_encrypted_key is not None:
8182
+ pulumi.set(__self__, "rsa_encrypted_key", rsa_encrypted_key)
8183
+
8184
+ @property
8185
+ @pulumi.getter(name="kmsKeySelfLink")
8186
+ def kms_key_self_link(self) -> Optional[builtins.str]:
8187
+ """
8188
+ The self link of the encryption key used to decrypt this resource. Also called KmsKeyName
8189
+ in the cloud console. Your project's Compute Engine System service account
8190
+ (`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have
8191
+ `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.
8192
+ See https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
8193
+ """
8194
+ return pulumi.get(self, "kms_key_self_link")
8195
+
8196
+ @property
8197
+ @pulumi.getter(name="kmsKeyServiceAccount")
8198
+ def kms_key_service_account(self) -> Optional[builtins.str]:
8199
+ """
8200
+ The service account being used for the encryption request for the
8201
+ given KMS key. If absent, the Compute Engine default service
8202
+ account is used.
8203
+ """
8204
+ return pulumi.get(self, "kms_key_service_account")
8205
+
8206
+ @property
8207
+ @pulumi.getter(name="rawKey")
8208
+ def raw_key(self) -> Optional[builtins.str]:
8209
+ """
8210
+ Specifies a 256-bit customer-supplied encryption key, encoded in
8211
+ RFC 4648 base64 to either encrypt or decrypt this resource.
8212
+ **Note**: This property is sensitive and will not be displayed in the plan.
8213
+ """
8214
+ return pulumi.get(self, "raw_key")
8215
+
8216
+ @property
8217
+ @pulumi.getter(name="rsaEncryptedKey")
8218
+ def rsa_encrypted_key(self) -> Optional[builtins.str]:
8219
+ """
8220
+ Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
8221
+ customer-supplied encryption key to either encrypt or decrypt
8222
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
8223
+ **Note**: This property is sensitive and will not be displayed in the plan.
8224
+ """
8225
+ return pulumi.get(self, "rsa_encrypted_key")
8226
+
8227
+
8228
+ @pulumi.output_type
8229
+ class ImageSourceSnapshotEncryptionKey(dict):
8230
+ @staticmethod
8231
+ def __key_warning(key: str):
8232
+ suggest = None
8233
+ if key == "kmsKeySelfLink":
8234
+ suggest = "kms_key_self_link"
8235
+ elif key == "kmsKeyServiceAccount":
8236
+ suggest = "kms_key_service_account"
8237
+ elif key == "rawKey":
8238
+ suggest = "raw_key"
8239
+ elif key == "rsaEncryptedKey":
8240
+ suggest = "rsa_encrypted_key"
8241
+
8242
+ if suggest:
8243
+ pulumi.log.warn(f"Key '{key}' not found in ImageSourceSnapshotEncryptionKey. Access the value via the '{suggest}' property getter instead.")
8244
+
8245
+ def __getitem__(self, key: str) -> Any:
8246
+ ImageSourceSnapshotEncryptionKey.__key_warning(key)
8247
+ return super().__getitem__(key)
8248
+
8249
+ def get(self, key: str, default = None) -> Any:
8250
+ ImageSourceSnapshotEncryptionKey.__key_warning(key)
8251
+ return super().get(key, default)
8252
+
8253
+ def __init__(__self__, *,
8254
+ kms_key_self_link: Optional[builtins.str] = None,
8255
+ kms_key_service_account: Optional[builtins.str] = None,
8256
+ raw_key: Optional[builtins.str] = None,
8257
+ rsa_encrypted_key: Optional[builtins.str] = None):
8258
+ """
8259
+ :param builtins.str kms_key_self_link: The self link of the encryption key used to decrypt this resource. Also called KmsKeyName
8260
+ in the cloud console. Your project's Compute Engine System service account
8261
+ (`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have
8262
+ `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.
8263
+ See https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
8264
+ :param builtins.str kms_key_service_account: The service account being used for the encryption request for the
8265
+ given KMS key. If absent, the Compute Engine default service
8266
+ account is used.
8267
+ :param builtins.str raw_key: Specifies a 256-bit customer-supplied encryption key, encoded in
8268
+ RFC 4648 base64 to either encrypt or decrypt this resource.
8269
+ **Note**: This property is sensitive and will not be displayed in the plan.
8270
+ :param builtins.str rsa_encrypted_key: Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
8271
+ customer-supplied encryption key to either encrypt or decrypt
8272
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
8273
+ **Note**: This property is sensitive and will not be displayed in the plan.
8274
+ """
8275
+ if kms_key_self_link is not None:
8276
+ pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
8277
+ if kms_key_service_account is not None:
8278
+ pulumi.set(__self__, "kms_key_service_account", kms_key_service_account)
8279
+ if raw_key is not None:
8280
+ pulumi.set(__self__, "raw_key", raw_key)
8281
+ if rsa_encrypted_key is not None:
8282
+ pulumi.set(__self__, "rsa_encrypted_key", rsa_encrypted_key)
8283
+
8284
+ @property
8285
+ @pulumi.getter(name="kmsKeySelfLink")
8286
+ def kms_key_self_link(self) -> Optional[builtins.str]:
8287
+ """
8288
+ The self link of the encryption key used to decrypt this resource. Also called KmsKeyName
8289
+ in the cloud console. Your project's Compute Engine System service account
8290
+ (`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have
8291
+ `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.
8292
+ See https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys
8293
+ """
8294
+ return pulumi.get(self, "kms_key_self_link")
8295
+
8296
+ @property
8297
+ @pulumi.getter(name="kmsKeyServiceAccount")
8298
+ def kms_key_service_account(self) -> Optional[builtins.str]:
8299
+ """
8300
+ The service account being used for the encryption request for the
8301
+ given KMS key. If absent, the Compute Engine default service
8302
+ account is used.
8303
+ """
8304
+ return pulumi.get(self, "kms_key_service_account")
8305
+
8306
+ @property
8307
+ @pulumi.getter(name="rawKey")
8308
+ def raw_key(self) -> Optional[builtins.str]:
8309
+ """
8310
+ Specifies a 256-bit customer-supplied encryption key, encoded in
8311
+ RFC 4648 base64 to either encrypt or decrypt this resource.
8312
+ **Note**: This property is sensitive and will not be displayed in the plan.
8313
+ """
8314
+ return pulumi.get(self, "raw_key")
8315
+
8316
+ @property
8317
+ @pulumi.getter(name="rsaEncryptedKey")
8318
+ def rsa_encrypted_key(self) -> Optional[builtins.str]:
8319
+ """
8320
+ Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
8321
+ customer-supplied encryption key to either encrypt or decrypt
8322
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
8323
+ **Note**: This property is sensitive and will not be displayed in the plan.
8324
+ """
8325
+ return pulumi.get(self, "rsa_encrypted_key")
8326
+
8327
+
8025
8328
  @pulumi.output_type
8026
8329
  class InstanceAdvancedMachineFeatures(dict):
8027
8330
  @staticmethod
@@ -39836,6 +40139,8 @@ class ResourcePolicyGroupPlacementPolicy(dict):
39836
40139
  suggest = "gpu_topology"
39837
40140
  elif key == "maxDistance":
39838
40141
  suggest = "max_distance"
40142
+ elif key == "tpuTopology":
40143
+ suggest = "tpu_topology"
39839
40144
  elif key == "vmCount":
39840
40145
  suggest = "vm_count"
39841
40146
 
@@ -39855,6 +40160,7 @@ class ResourcePolicyGroupPlacementPolicy(dict):
39855
40160
  collocation: Optional[builtins.str] = None,
39856
40161
  gpu_topology: Optional[builtins.str] = None,
39857
40162
  max_distance: Optional[builtins.int] = None,
40163
+ tpu_topology: Optional[builtins.str] = None,
39858
40164
  vm_count: Optional[builtins.int] = None):
39859
40165
  """
39860
40166
  :param builtins.int availability_domain_count: The number of availability domains instances will be spread across. If two instances are in different
@@ -39866,6 +40172,7 @@ class ResourcePolicyGroupPlacementPolicy(dict):
39866
40172
  Possible values are: `COLLOCATED`.
39867
40173
  :param builtins.str gpu_topology: Specifies the shape of the GPU slice, in slice based GPU families eg. A4X.
39868
40174
  :param builtins.int max_distance: Specifies the number of max logical switches.
40175
+ :param builtins.str tpu_topology: Specifies the shape of the TPU slice.
39869
40176
  :param builtins.int vm_count: Number of VMs in this placement group. Google does not recommend that you use this field
39870
40177
  unless you use a compact policy and you want your policy to work only if it contains this
39871
40178
  exact number of VMs.
@@ -39878,6 +40185,8 @@ class ResourcePolicyGroupPlacementPolicy(dict):
39878
40185
  pulumi.set(__self__, "gpu_topology", gpu_topology)
39879
40186
  if max_distance is not None:
39880
40187
  pulumi.set(__self__, "max_distance", max_distance)
40188
+ if tpu_topology is not None:
40189
+ pulumi.set(__self__, "tpu_topology", tpu_topology)
39881
40190
  if vm_count is not None:
39882
40191
  pulumi.set(__self__, "vm_count", vm_count)
39883
40192
 
@@ -39918,6 +40227,14 @@ class ResourcePolicyGroupPlacementPolicy(dict):
39918
40227
  """
39919
40228
  return pulumi.get(self, "max_distance")
39920
40229
 
40230
+ @property
40231
+ @pulumi.getter(name="tpuTopology")
40232
+ def tpu_topology(self) -> Optional[builtins.str]:
40233
+ """
40234
+ Specifies the shape of the TPU slice.
40235
+ """
40236
+ return pulumi.get(self, "tpu_topology")
40237
+
39921
40238
  @property
39922
40239
  @pulumi.getter(name="vmCount")
39923
40240
  def vm_count(self) -> Optional[builtins.int]:
@@ -44866,10 +45183,14 @@ class SnapshotSourceDiskEncryptionKey(dict):
44866
45183
  @staticmethod
44867
45184
  def __key_warning(key: str):
44868
45185
  suggest = None
44869
- if key == "kmsKeyServiceAccount":
45186
+ if key == "kmsKeySelfLink":
45187
+ suggest = "kms_key_self_link"
45188
+ elif key == "kmsKeyServiceAccount":
44870
45189
  suggest = "kms_key_service_account"
44871
45190
  elif key == "rawKey":
44872
45191
  suggest = "raw_key"
45192
+ elif key == "rsaEncryptedKey":
45193
+ suggest = "rsa_encrypted_key"
44873
45194
 
44874
45195
  if suggest:
44875
45196
  pulumi.log.warn(f"Key '{key}' not found in SnapshotSourceDiskEncryptionKey. Access the value via the '{suggest}' property getter instead.")
@@ -44883,19 +45204,37 @@ class SnapshotSourceDiskEncryptionKey(dict):
44883
45204
  return super().get(key, default)
44884
45205
 
44885
45206
  def __init__(__self__, *,
45207
+ kms_key_self_link: Optional[builtins.str] = None,
44886
45208
  kms_key_service_account: Optional[builtins.str] = None,
44887
- raw_key: Optional[builtins.str] = None):
45209
+ raw_key: Optional[builtins.str] = None,
45210
+ rsa_encrypted_key: Optional[builtins.str] = None):
44888
45211
  """
45212
+ :param builtins.str kms_key_self_link: The name of the encryption key that is stored in Google Cloud KMS.
44889
45213
  :param builtins.str kms_key_service_account: The service account used for the encryption request for the given KMS key.
44890
45214
  If absent, the Compute Engine Service Agent service account is used.
44891
45215
  :param builtins.str raw_key: Specifies a 256-bit customer-supplied encryption key, encoded in
44892
45216
  RFC 4648 base64 to either encrypt or decrypt this resource.
44893
45217
  **Note**: This property is sensitive and will not be displayed in the plan.
45218
+ :param builtins.str rsa_encrypted_key: Specifies an encryption key stored in Google Cloud KMS, encoded in
45219
+ RFC 4648 base64 to either encrypt or decrypt this resource.
45220
+ **Note**: This property is sensitive and will not be displayed in the plan.
44894
45221
  """
45222
+ if kms_key_self_link is not None:
45223
+ pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
44895
45224
  if kms_key_service_account is not None:
44896
45225
  pulumi.set(__self__, "kms_key_service_account", kms_key_service_account)
44897
45226
  if raw_key is not None:
44898
45227
  pulumi.set(__self__, "raw_key", raw_key)
45228
+ if rsa_encrypted_key is not None:
45229
+ pulumi.set(__self__, "rsa_encrypted_key", rsa_encrypted_key)
45230
+
45231
+ @property
45232
+ @pulumi.getter(name="kmsKeySelfLink")
45233
+ def kms_key_self_link(self) -> Optional[builtins.str]:
45234
+ """
45235
+ The name of the encryption key that is stored in Google Cloud KMS.
45236
+ """
45237
+ return pulumi.get(self, "kms_key_self_link")
44899
45238
 
44900
45239
  @property
44901
45240
  @pulumi.getter(name="kmsKeyServiceAccount")
@@ -44916,6 +45255,16 @@ class SnapshotSourceDiskEncryptionKey(dict):
44916
45255
  """
44917
45256
  return pulumi.get(self, "raw_key")
44918
45257
 
45258
+ @property
45259
+ @pulumi.getter(name="rsaEncryptedKey")
45260
+ def rsa_encrypted_key(self) -> Optional[builtins.str]:
45261
+ """
45262
+ Specifies an encryption key stored in Google Cloud KMS, encoded in
45263
+ RFC 4648 base64 to either encrypt or decrypt this resource.
45264
+ **Note**: This property is sensitive and will not be displayed in the plan.
45265
+ """
45266
+ return pulumi.get(self, "rsa_encrypted_key")
45267
+
44919
45268
 
44920
45269
  @pulumi.output_type
44921
45270
  class SubnetworkIAMBindingCondition(dict):
@@ -64939,6 +65288,7 @@ class GetResourcePolicyGroupPlacementPolicyResult(dict):
64939
65288
  collocation: builtins.str,
64940
65289
  gpu_topology: builtins.str,
64941
65290
  max_distance: builtins.int,
65291
+ tpu_topology: builtins.str,
64942
65292
  vm_count: builtins.int):
64943
65293
  """
64944
65294
  :param builtins.int availability_domain_count: The number of availability domains instances will be spread across. If two instances are in different
@@ -64949,6 +65299,7 @@ class GetResourcePolicyGroupPlacementPolicyResult(dict):
64949
65299
  attached. Possible values: ["COLLOCATED"]
64950
65300
  :param builtins.str gpu_topology: Specifies the shape of the GPU slice, in slice based GPU families eg. A4X.
64951
65301
  :param builtins.int max_distance: Specifies the number of max logical switches.
65302
+ :param builtins.str tpu_topology: Specifies the shape of the TPU slice.
64952
65303
  :param builtins.int vm_count: Number of VMs in this placement group. Google does not recommend that you use this field
64953
65304
  unless you use a compact policy and you want your policy to work only if it contains this
64954
65305
  exact number of VMs.
@@ -64957,6 +65308,7 @@ class GetResourcePolicyGroupPlacementPolicyResult(dict):
64957
65308
  pulumi.set(__self__, "collocation", collocation)
64958
65309
  pulumi.set(__self__, "gpu_topology", gpu_topology)
64959
65310
  pulumi.set(__self__, "max_distance", max_distance)
65311
+ pulumi.set(__self__, "tpu_topology", tpu_topology)
64960
65312
  pulumi.set(__self__, "vm_count", vm_count)
64961
65313
 
64962
65314
  @property
@@ -64995,6 +65347,14 @@ class GetResourcePolicyGroupPlacementPolicyResult(dict):
64995
65347
  """
64996
65348
  return pulumi.get(self, "max_distance")
64997
65349
 
65350
+ @property
65351
+ @pulumi.getter(name="tpuTopology")
65352
+ def tpu_topology(self) -> builtins.str:
65353
+ """
65354
+ Specifies the shape of the TPU slice.
65355
+ """
65356
+ return pulumi.get(self, "tpu_topology")
65357
+
64998
65358
  @property
64999
65359
  @pulumi.getter(name="vmCount")
65000
65360
  def vm_count(self) -> builtins.int:
@@ -67920,16 +68280,31 @@ class GetSnapshotSnapshotEncryptionKeyResult(dict):
67920
68280
  @pulumi.output_type
67921
68281
  class GetSnapshotSourceDiskEncryptionKeyResult(dict):
67922
68282
  def __init__(__self__, *,
68283
+ kms_key_self_link: builtins.str,
67923
68284
  kms_key_service_account: builtins.str,
67924
- raw_key: builtins.str):
68285
+ raw_key: builtins.str,
68286
+ rsa_encrypted_key: builtins.str):
67925
68287
  """
68288
+ :param builtins.str kms_key_self_link: The name of the encryption key that is stored in Google Cloud KMS.
67926
68289
  :param builtins.str kms_key_service_account: The service account used for the encryption request for the given KMS key.
67927
68290
  If absent, the Compute Engine Service Agent service account is used.
67928
68291
  :param builtins.str raw_key: Specifies a 256-bit customer-supplied encryption key, encoded in
67929
68292
  RFC 4648 base64 to either encrypt or decrypt this resource.
68293
+ :param builtins.str rsa_encrypted_key: Specifies an encryption key stored in Google Cloud KMS, encoded in
68294
+ RFC 4648 base64 to either encrypt or decrypt this resource.
67930
68295
  """
68296
+ pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
67931
68297
  pulumi.set(__self__, "kms_key_service_account", kms_key_service_account)
67932
68298
  pulumi.set(__self__, "raw_key", raw_key)
68299
+ pulumi.set(__self__, "rsa_encrypted_key", rsa_encrypted_key)
68300
+
68301
+ @property
68302
+ @pulumi.getter(name="kmsKeySelfLink")
68303
+ def kms_key_self_link(self) -> builtins.str:
68304
+ """
68305
+ The name of the encryption key that is stored in Google Cloud KMS.
68306
+ """
68307
+ return pulumi.get(self, "kms_key_self_link")
67933
68308
 
67934
68309
  @property
67935
68310
  @pulumi.getter(name="kmsKeyServiceAccount")
@@ -67949,6 +68324,15 @@ class GetSnapshotSourceDiskEncryptionKeyResult(dict):
67949
68324
  """
67950
68325
  return pulumi.get(self, "raw_key")
67951
68326
 
68327
+ @property
68328
+ @pulumi.getter(name="rsaEncryptedKey")
68329
+ def rsa_encrypted_key(self) -> builtins.str:
68330
+ """
68331
+ Specifies an encryption key stored in Google Cloud KMS, encoded in
68332
+ RFC 4648 base64 to either encrypt or decrypt this resource.
68333
+ """
68334
+ return pulumi.get(self, "rsa_encrypted_key")
68335
+
67952
68336
 
67953
68337
  @pulumi.output_type
67954
68338
  class GetSubnetworkSecondaryIpRangeResult(dict):
@@ -1536,6 +1536,9 @@ class RegionBackendService(pulumi.CustomResource):
1536
1536
  A Region Backend Service defines a regionally-scoped group of virtual
1537
1537
  machines that will serve traffic for load balancing.
1538
1538
 
1539
+ > **Note:** Recreating a `compute.RegionBackendService` that references other dependent resources like `compute.InstanceGroup` will give a `resourceInUseByAnotherResource` error, when decreasing the number of other dependent resources.
1540
+ Use `lifecycle.create_before_destroy` on the dependent resources to avoid this type of error as shown in the Dynamic Backend Count example.
1541
+
1539
1542
  To get more information about RegionBackendService, see:
1540
1543
 
1541
1544
  * [API documentation](https://cloud.google.com/compute/docs/reference/latest/regionBackendServices)
@@ -1882,7 +1885,6 @@ class RegionBackendService(pulumi.CustomResource):
1882
1885
  ],
1883
1886
  }])
1884
1887
  ```
1885
-
1886
1888
  ## Import
1887
1889
 
1888
1890
  RegionBackendService can be imported using any of these accepted formats:
@@ -2072,6 +2074,9 @@ class RegionBackendService(pulumi.CustomResource):
2072
2074
  A Region Backend Service defines a regionally-scoped group of virtual
2073
2075
  machines that will serve traffic for load balancing.
2074
2076
 
2077
+ > **Note:** Recreating a `compute.RegionBackendService` that references other dependent resources like `compute.InstanceGroup` will give a `resourceInUseByAnotherResource` error, when decreasing the number of other dependent resources.
2078
+ Use `lifecycle.create_before_destroy` on the dependent resources to avoid this type of error as shown in the Dynamic Backend Count example.
2079
+
2075
2080
  To get more information about RegionBackendService, see:
2076
2081
 
2077
2082
  * [API documentation](https://cloud.google.com/compute/docs/reference/latest/regionBackendServices)
@@ -2418,7 +2423,6 @@ class RegionBackendService(pulumi.CustomResource):
2418
2423
  ],
2419
2424
  }])
2420
2425
  ```
2421
-
2422
2426
  ## Import
2423
2427
 
2424
2428
  RegionBackendService can be imported using any of these accepted formats:
@@ -619,6 +619,21 @@ class ResourcePolicy(pulumi.CustomResource):
619
619
  "gpu_topology": "1x72",
620
620
  })
621
621
  ```
622
+ ### Resource Policy Placement Policy Tpu Topology
623
+
624
+ ```python
625
+ import pulumi
626
+ import pulumi_gcp as gcp
627
+
628
+ baz = gcp.compute.ResourcePolicy("baz",
629
+ name="gce-policy",
630
+ region="us-central1",
631
+ group_placement_policy={
632
+ "vm_count": 2,
633
+ "collocation": "COLLOCATED",
634
+ "tpu_topology": "4x4",
635
+ })
636
+ ```
622
637
 
623
638
  ## Import
624
639
 
@@ -888,6 +903,21 @@ class ResourcePolicy(pulumi.CustomResource):
888
903
  "gpu_topology": "1x72",
889
904
  })
890
905
  ```
906
+ ### Resource Policy Placement Policy Tpu Topology
907
+
908
+ ```python
909
+ import pulumi
910
+ import pulumi_gcp as gcp
911
+
912
+ baz = gcp.compute.ResourcePolicy("baz",
913
+ name="gce-policy",
914
+ region="us-central1",
915
+ group_placement_policy={
916
+ "vm_count": 2,
917
+ "collocation": "COLLOCATED",
918
+ "tpu_topology": "4x4",
919
+ })
920
+ ```
891
921
 
892
922
  ## Import
893
923
 
@@ -668,6 +668,9 @@ class Snapshot(pulumi.CustomResource):
668
668
  * How-to Guides
669
669
  * [Official Documentation](https://cloud.google.com/compute/docs/disks/create-snapshots)
670
670
 
671
+ > **Warning:** All arguments including the following potentially sensitive
672
+ values will be stored in the raw state as plain text: `snapshot_encryption_key.raw_key`, `snapshot_encryption_key.rsa_encrypted_key`, `source_disk_encryption_key.raw_key`, `source_disk_encryption_key.rsa_encrypted_key`.
673
+
671
674
  ## Example Usage
672
675
 
673
676
  ### Snapshot Basic
@@ -811,6 +814,9 @@ class Snapshot(pulumi.CustomResource):
811
814
  * How-to Guides
812
815
  * [Official Documentation](https://cloud.google.com/compute/docs/disks/create-snapshots)
813
816
 
817
+ > **Warning:** All arguments including the following potentially sensitive
818
+ values will be stored in the raw state as plain text: `snapshot_encryption_key.raw_key`, `snapshot_encryption_key.rsa_encrypted_key`, `source_disk_encryption_key.raw_key`, `source_disk_encryption_key.rsa_encrypted_key`.
819
+
814
820
  ## Example Usage
815
821
 
816
822
  ### Snapshot Basic