pulumi-gcp 7.16.0a1711520590__py3-none-any.whl → 7.17.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. pulumi_gcp/__init__.py +35 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +1 -0
  3. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +345 -0
  4. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +80 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +86 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +4 -2
  7. pulumi_gcp/apphub/__init__.py +1 -0
  8. pulumi_gcp/apphub/get_application.py +220 -0
  9. pulumi_gcp/apphub/outputs.py +214 -0
  10. pulumi_gcp/applicationintegration/__init__.py +10 -0
  11. pulumi_gcp/applicationintegration/_inputs.py +119 -0
  12. pulumi_gcp/applicationintegration/client.py +566 -0
  13. pulumi_gcp/applicationintegration/outputs.py +122 -0
  14. pulumi_gcp/bigquery/_inputs.py +16 -0
  15. pulumi_gcp/bigquery/outputs.py +14 -0
  16. pulumi_gcp/bigquery/routine.py +98 -0
  17. pulumi_gcp/bigtable/_inputs.py +4 -4
  18. pulumi_gcp/bigtable/gc_policy.py +8 -0
  19. pulumi_gcp/bigtable/outputs.py +4 -4
  20. pulumi_gcp/billing/_inputs.py +4 -4
  21. pulumi_gcp/billing/outputs.py +4 -4
  22. pulumi_gcp/billing/project_info.py +4 -4
  23. pulumi_gcp/cloudfunctionsv2/_inputs.py +2 -2
  24. pulumi_gcp/cloudfunctionsv2/outputs.py +4 -4
  25. pulumi_gcp/cloudquota/__init__.py +3 -0
  26. pulumi_gcp/cloudquota/_inputs.py +131 -0
  27. pulumi_gcp/cloudquota/get_s_quota_infos.py +136 -0
  28. pulumi_gcp/cloudquota/outputs.py +388 -0
  29. pulumi_gcp/cloudquota/s_quota_preference.py +777 -0
  30. pulumi_gcp/cloudrunv2/_inputs.py +59 -2
  31. pulumi_gcp/cloudrunv2/outputs.py +107 -4
  32. pulumi_gcp/cloudrunv2/service.py +13 -13
  33. pulumi_gcp/composer/_inputs.py +30 -4
  34. pulumi_gcp/composer/outputs.py +45 -10
  35. pulumi_gcp/compute/_inputs.py +145 -51
  36. pulumi_gcp/compute/autoscaler.py +14 -14
  37. pulumi_gcp/compute/interconnect_attachment.py +64 -0
  38. pulumi_gcp/compute/network_endpoint.py +8 -0
  39. pulumi_gcp/compute/network_endpoint_list.py +8 -0
  40. pulumi_gcp/compute/outputs.py +202 -69
  41. pulumi_gcp/compute/region_autoscaler.py +14 -14
  42. pulumi_gcp/compute/region_backend_service.py +28 -0
  43. pulumi_gcp/compute/region_url_map.py +152 -0
  44. pulumi_gcp/compute/target_instance.py +4 -4
  45. pulumi_gcp/config/__init__.pyi +2 -0
  46. pulumi_gcp/config/vars.py +4 -0
  47. pulumi_gcp/container/_inputs.py +148 -16
  48. pulumi_gcp/container/outputs.py +148 -16
  49. pulumi_gcp/databasemigrationservice/connection_profile.py +6 -6
  50. pulumi_gcp/dataflow/flex_template_job.py +84 -112
  51. pulumi_gcp/dataform/repository.py +4 -74
  52. pulumi_gcp/dataloss/_inputs.py +6 -6
  53. pulumi_gcp/dataloss/outputs.py +6 -6
  54. pulumi_gcp/dataplex/task.py +16 -16
  55. pulumi_gcp/dataproc/_inputs.py +85 -10
  56. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  57. pulumi_gcp/dataproc/metastore_service.py +120 -0
  58. pulumi_gcp/dataproc/outputs.py +142 -10
  59. pulumi_gcp/firebase/android_app.py +41 -40
  60. pulumi_gcp/firebase/app_check_service_config.py +2 -2
  61. pulumi_gcp/firestore/backup_schedule.py +14 -14
  62. pulumi_gcp/firestore/field.py +4 -4
  63. pulumi_gcp/firestore/index.py +34 -48
  64. pulumi_gcp/gkehub/membership_binding.py +6 -6
  65. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  66. pulumi_gcp/gkehub/namespace.py +4 -4
  67. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  68. pulumi_gcp/iam/_inputs.py +76 -0
  69. pulumi_gcp/iam/outputs.py +76 -0
  70. pulumi_gcp/iam/workforce_pool_provider.py +35 -0
  71. pulumi_gcp/iam/workload_identity_pool_provider.py +140 -0
  72. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  73. pulumi_gcp/kms/_inputs.py +46 -0
  74. pulumi_gcp/kms/crypto_key.py +54 -0
  75. pulumi_gcp/kms/crypto_key_version.py +54 -0
  76. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  77. pulumi_gcp/kms/outputs.py +54 -0
  78. pulumi_gcp/logging/_inputs.py +8 -8
  79. pulumi_gcp/logging/metric.py +7 -7
  80. pulumi_gcp/logging/outputs.py +8 -8
  81. pulumi_gcp/monitoring/_inputs.py +4 -2
  82. pulumi_gcp/monitoring/outputs.py +4 -2
  83. pulumi_gcp/monitoring/slo.py +4 -4
  84. pulumi_gcp/networksecurity/firewall_endpoint.py +48 -0
  85. pulumi_gcp/networkservices/_inputs.py +6 -6
  86. pulumi_gcp/networkservices/outputs.py +6 -6
  87. pulumi_gcp/orgpolicy/policy.py +2 -2
  88. pulumi_gcp/provider.py +20 -0
  89. pulumi_gcp/pubsub/_inputs.py +108 -0
  90. pulumi_gcp/pubsub/get_topic.py +11 -1
  91. pulumi_gcp/pubsub/outputs.py +213 -0
  92. pulumi_gcp/pubsub/subscription.py +4 -4
  93. pulumi_gcp/pubsub/topic.py +92 -0
  94. pulumi_gcp/serviceusage/consumer_quota_override.py +7 -7
  95. pulumi_gcp/sql/_inputs.py +20 -2
  96. pulumi_gcp/sql/database_instance.py +2 -2
  97. pulumi_gcp/sql/outputs.py +20 -2
  98. pulumi_gcp/storage/_inputs.py +42 -2
  99. pulumi_gcp/storage/bucket.py +54 -0
  100. pulumi_gcp/storage/get_bucket.py +11 -1
  101. pulumi_gcp/storage/outputs.py +83 -2
  102. pulumi_gcp/vertex/__init__.py +1 -0
  103. pulumi_gcp/vertex/_inputs.py +175 -8
  104. pulumi_gcp/vertex/ai_deployment_resource_pool.py +477 -0
  105. pulumi_gcp/vertex/outputs.py +202 -10
  106. pulumi_gcp/vpcaccess/connector.py +77 -28
  107. pulumi_gcp/workstations/_inputs.py +113 -0
  108. pulumi_gcp/workstations/outputs.py +109 -1
  109. pulumi_gcp/workstations/workstation_config.py +106 -0
  110. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.17.0.dist-info}/METADATA +1 -1
  111. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.17.0.dist-info}/RECORD +113 -103
  112. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.17.0.dist-info}/WHEEL +0 -0
  113. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.17.0.dist-info}/top_level.txt +0 -0
@@ -81,6 +81,11 @@ class WorkforcePoolProviderArgs:
81
81
  For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute.
82
82
  For example, the following maps the sub claim of the incoming credential to the `subject` attribute
83
83
  on a Google token:
84
+ ```
85
+ {"google.subject": "assertion.sub"}
86
+ ```
87
+ An object containing a list of `"key": value` pairs.
88
+ Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
84
89
  :param pulumi.Input[str] description: A user-specified description of the provider. Cannot exceed 256 characters.
85
90
  :param pulumi.Input[bool] disabled: Whether the provider is disabled. You cannot use a disabled provider to exchange tokens.
86
91
  However, existing tokens still grant access.
@@ -209,6 +214,11 @@ class WorkforcePoolProviderArgs:
209
214
  For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute.
210
215
  For example, the following maps the sub claim of the incoming credential to the `subject` attribute
211
216
  on a Google token:
217
+ ```
218
+ {"google.subject": "assertion.sub"}
219
+ ```
220
+ An object containing a list of `"key": value` pairs.
221
+ Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
212
222
  """
213
223
  return pulumi.get(self, "attribute_mapping")
214
224
 
@@ -339,6 +349,11 @@ class _WorkforcePoolProviderState:
339
349
  For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute.
340
350
  For example, the following maps the sub claim of the incoming credential to the `subject` attribute
341
351
  on a Google token:
352
+ ```
353
+ {"google.subject": "assertion.sub"}
354
+ ```
355
+ An object containing a list of `"key": value` pairs.
356
+ Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
342
357
  :param pulumi.Input[str] description: A user-specified description of the provider. Cannot exceed 256 characters.
343
358
  :param pulumi.Input[bool] disabled: Whether the provider is disabled. You cannot use a disabled provider to exchange tokens.
344
359
  However, existing tokens still grant access.
@@ -449,6 +464,11 @@ class _WorkforcePoolProviderState:
449
464
  For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute.
450
465
  For example, the following maps the sub claim of the incoming credential to the `subject` attribute
451
466
  on a Google token:
467
+ ```
468
+ {"google.subject": "assertion.sub"}
469
+ ```
470
+ An object containing a list of `"key": value` pairs.
471
+ Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
452
472
  """
453
473
  return pulumi.get(self, "attribute_mapping")
454
474
 
@@ -811,6 +831,11 @@ class WorkforcePoolProvider(pulumi.CustomResource):
811
831
  For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute.
812
832
  For example, the following maps the sub claim of the incoming credential to the `subject` attribute
813
833
  on a Google token:
834
+ ```
835
+ {"google.subject": "assertion.sub"}
836
+ ```
837
+ An object containing a list of `"key": value` pairs.
838
+ Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
814
839
  :param pulumi.Input[str] description: A user-specified description of the provider. Cannot exceed 256 characters.
815
840
  :param pulumi.Input[bool] disabled: Whether the provider is disabled. You cannot use a disabled provider to exchange tokens.
816
841
  However, existing tokens still grant access.
@@ -1117,6 +1142,11 @@ class WorkforcePoolProvider(pulumi.CustomResource):
1117
1142
  For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute.
1118
1143
  For example, the following maps the sub claim of the incoming credential to the `subject` attribute
1119
1144
  on a Google token:
1145
+ ```
1146
+ {"google.subject": "assertion.sub"}
1147
+ ```
1148
+ An object containing a list of `"key": value` pairs.
1149
+ Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
1120
1150
  :param pulumi.Input[str] description: A user-specified description of the provider. Cannot exceed 256 characters.
1121
1151
  :param pulumi.Input[bool] disabled: Whether the provider is disabled. You cannot use a disabled provider to exchange tokens.
1122
1152
  However, existing tokens still grant access.
@@ -1216,6 +1246,11 @@ class WorkforcePoolProvider(pulumi.CustomResource):
1216
1246
  For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute.
1217
1247
  For example, the following maps the sub claim of the incoming credential to the `subject` attribute
1218
1248
  on a Google token:
1249
+ ```
1250
+ {"google.subject": "assertion.sub"}
1251
+ ```
1252
+ An object containing a list of `"key": value` pairs.
1253
+ Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
1219
1254
  """
1220
1255
  return pulumi.get(self, "attribute_mapping")
1221
1256
 
@@ -74,6 +74,26 @@ class WorkloadIdentityPoolProviderArgs:
74
74
  the total size of all mapped attributes must not exceed 8KB.
75
75
  For AWS providers, the following rules apply:
76
76
  - If no attribute mapping is defined, the following default mapping applies:
77
+ ```
78
+ {
79
+ "google.subject":"assertion.arn",
80
+ "attribute.aws_role":
81
+ "assertion.arn.contains('assumed-role')"
82
+ " ? assertion.arn.extract('{account_arn}assumed-role/')"
83
+ " + 'assumed-role/'"
84
+ " + assertion.arn.extract('assumed-role/{role_name}/')"
85
+ " : assertion.arn",
86
+ }
87
+ ```
88
+ - If any custom attribute mappings are defined, they must include a mapping to the
89
+ `google.subject` attribute.
90
+ For OIDC providers, the following rules apply:
91
+ - Custom attribute mappings must be defined, and must include a mapping to the
92
+ `google.subject` attribute. For example, the following maps the `sub` claim of the
93
+ incoming credential to the `subject` attribute on a Google token.
94
+ ```
95
+ {"google.subject": "assertion.sub"}
96
+ ```
77
97
  :param pulumi.Input['WorkloadIdentityPoolProviderAwsArgs'] aws: An Amazon Web Services identity provider. Not compatible with the property oidc or saml.
78
98
  Structure is documented below.
79
99
  :param pulumi.Input[str] description: A description for the provider. Cannot exceed 256 characters.
@@ -190,6 +210,26 @@ class WorkloadIdentityPoolProviderArgs:
190
210
  the total size of all mapped attributes must not exceed 8KB.
191
211
  For AWS providers, the following rules apply:
192
212
  - If no attribute mapping is defined, the following default mapping applies:
213
+ ```
214
+ {
215
+ "google.subject":"assertion.arn",
216
+ "attribute.aws_role":
217
+ "assertion.arn.contains('assumed-role')"
218
+ " ? assertion.arn.extract('{account_arn}assumed-role/')"
219
+ " + 'assumed-role/'"
220
+ " + assertion.arn.extract('assumed-role/{role_name}/')"
221
+ " : assertion.arn",
222
+ }
223
+ ```
224
+ - If any custom attribute mappings are defined, they must include a mapping to the
225
+ `google.subject` attribute.
226
+ For OIDC providers, the following rules apply:
227
+ - Custom attribute mappings must be defined, and must include a mapping to the
228
+ `google.subject` attribute. For example, the following maps the `sub` claim of the
229
+ incoming credential to the `subject` attribute on a Google token.
230
+ ```
231
+ {"google.subject": "assertion.sub"}
232
+ ```
193
233
  """
194
234
  return pulumi.get(self, "attribute_mapping")
195
235
 
@@ -341,6 +381,26 @@ class _WorkloadIdentityPoolProviderState:
341
381
  the total size of all mapped attributes must not exceed 8KB.
342
382
  For AWS providers, the following rules apply:
343
383
  - If no attribute mapping is defined, the following default mapping applies:
384
+ ```
385
+ {
386
+ "google.subject":"assertion.arn",
387
+ "attribute.aws_role":
388
+ "assertion.arn.contains('assumed-role')"
389
+ " ? assertion.arn.extract('{account_arn}assumed-role/')"
390
+ " + 'assumed-role/'"
391
+ " + assertion.arn.extract('assumed-role/{role_name}/')"
392
+ " : assertion.arn",
393
+ }
394
+ ```
395
+ - If any custom attribute mappings are defined, they must include a mapping to the
396
+ `google.subject` attribute.
397
+ For OIDC providers, the following rules apply:
398
+ - Custom attribute mappings must be defined, and must include a mapping to the
399
+ `google.subject` attribute. For example, the following maps the `sub` claim of the
400
+ incoming credential to the `subject` attribute on a Google token.
401
+ ```
402
+ {"google.subject": "assertion.sub"}
403
+ ```
344
404
  :param pulumi.Input['WorkloadIdentityPoolProviderAwsArgs'] aws: An Amazon Web Services identity provider. Not compatible with the property oidc or saml.
345
405
  Structure is documented below.
346
406
  :param pulumi.Input[str] description: A description for the provider. Cannot exceed 256 characters.
@@ -450,6 +510,26 @@ class _WorkloadIdentityPoolProviderState:
450
510
  the total size of all mapped attributes must not exceed 8KB.
451
511
  For AWS providers, the following rules apply:
452
512
  - If no attribute mapping is defined, the following default mapping applies:
513
+ ```
514
+ {
515
+ "google.subject":"assertion.arn",
516
+ "attribute.aws_role":
517
+ "assertion.arn.contains('assumed-role')"
518
+ " ? assertion.arn.extract('{account_arn}assumed-role/')"
519
+ " + 'assumed-role/'"
520
+ " + assertion.arn.extract('assumed-role/{role_name}/')"
521
+ " : assertion.arn",
522
+ }
523
+ ```
524
+ - If any custom attribute mappings are defined, they must include a mapping to the
525
+ `google.subject` attribute.
526
+ For OIDC providers, the following rules apply:
527
+ - Custom attribute mappings must be defined, and must include a mapping to the
528
+ `google.subject` attribute. For example, the following maps the `sub` claim of the
529
+ incoming credential to the `subject` attribute on a Google token.
530
+ ```
531
+ {"google.subject": "assertion.sub"}
532
+ ```
453
533
  """
454
534
  return pulumi.get(self, "attribute_mapping")
455
535
 
@@ -874,6 +954,26 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
874
954
  the total size of all mapped attributes must not exceed 8KB.
875
955
  For AWS providers, the following rules apply:
876
956
  - If no attribute mapping is defined, the following default mapping applies:
957
+ ```
958
+ {
959
+ "google.subject":"assertion.arn",
960
+ "attribute.aws_role":
961
+ "assertion.arn.contains('assumed-role')"
962
+ " ? assertion.arn.extract('{account_arn}assumed-role/')"
963
+ " + 'assumed-role/'"
964
+ " + assertion.arn.extract('assumed-role/{role_name}/')"
965
+ " : assertion.arn",
966
+ }
967
+ ```
968
+ - If any custom attribute mappings are defined, they must include a mapping to the
969
+ `google.subject` attribute.
970
+ For OIDC providers, the following rules apply:
971
+ - Custom attribute mappings must be defined, and must include a mapping to the
972
+ `google.subject` attribute. For example, the following maps the `sub` claim of the
973
+ incoming credential to the `subject` attribute on a Google token.
974
+ ```
975
+ {"google.subject": "assertion.sub"}
976
+ ```
877
977
  :param pulumi.Input[pulumi.InputType['WorkloadIdentityPoolProviderAwsArgs']] aws: An Amazon Web Services identity provider. Not compatible with the property oidc or saml.
878
978
  Structure is documented below.
879
979
  :param pulumi.Input[str] description: A description for the provider. Cannot exceed 256 characters.
@@ -1230,6 +1330,26 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1230
1330
  the total size of all mapped attributes must not exceed 8KB.
1231
1331
  For AWS providers, the following rules apply:
1232
1332
  - If no attribute mapping is defined, the following default mapping applies:
1333
+ ```
1334
+ {
1335
+ "google.subject":"assertion.arn",
1336
+ "attribute.aws_role":
1337
+ "assertion.arn.contains('assumed-role')"
1338
+ " ? assertion.arn.extract('{account_arn}assumed-role/')"
1339
+ " + 'assumed-role/'"
1340
+ " + assertion.arn.extract('assumed-role/{role_name}/')"
1341
+ " : assertion.arn",
1342
+ }
1343
+ ```
1344
+ - If any custom attribute mappings are defined, they must include a mapping to the
1345
+ `google.subject` attribute.
1346
+ For OIDC providers, the following rules apply:
1347
+ - Custom attribute mappings must be defined, and must include a mapping to the
1348
+ `google.subject` attribute. For example, the following maps the `sub` claim of the
1349
+ incoming credential to the `subject` attribute on a Google token.
1350
+ ```
1351
+ {"google.subject": "assertion.sub"}
1352
+ ```
1233
1353
  :param pulumi.Input[pulumi.InputType['WorkloadIdentityPoolProviderAwsArgs']] aws: An Amazon Web Services identity provider. Not compatible with the property oidc or saml.
1234
1354
  Structure is documented below.
1235
1355
  :param pulumi.Input[str] description: A description for the provider. Cannot exceed 256 characters.
@@ -1327,6 +1447,26 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1327
1447
  the total size of all mapped attributes must not exceed 8KB.
1328
1448
  For AWS providers, the following rules apply:
1329
1449
  - If no attribute mapping is defined, the following default mapping applies:
1450
+ ```
1451
+ {
1452
+ "google.subject":"assertion.arn",
1453
+ "attribute.aws_role":
1454
+ "assertion.arn.contains('assumed-role')"
1455
+ " ? assertion.arn.extract('{account_arn}assumed-role/')"
1456
+ " + 'assumed-role/'"
1457
+ " + assertion.arn.extract('assumed-role/{role_name}/')"
1458
+ " : assertion.arn",
1459
+ }
1460
+ ```
1461
+ - If any custom attribute mappings are defined, they must include a mapping to the
1462
+ `google.subject` attribute.
1463
+ For OIDC providers, the following rules apply:
1464
+ - Custom attribute mappings must be defined, and must include a mapping to the
1465
+ `google.subject` attribute. For example, the following maps the `sub` claim of the
1466
+ incoming credential to the `subject` attribute on a Google token.
1467
+ ```
1468
+ {"google.subject": "assertion.sub"}
1469
+ ```
1330
1470
  """
1331
1471
  return pulumi.get(self, "attribute_mapping")
1332
1472
 
@@ -249,7 +249,7 @@ class TunnelDestGroup(pulumi.CustomResource):
249
249
 
250
250
  dest_group = gcp.iap.TunnelDestGroup("dest_group",
251
251
  region="us-central1",
252
- group_name="testgroup_75223",
252
+ group_name="testgroup_41819",
253
253
  cidrs=[
254
254
  "10.1.0.0/16",
255
255
  "192.168.10.0/24",
@@ -337,7 +337,7 @@ class TunnelDestGroup(pulumi.CustomResource):
337
337
 
338
338
  dest_group = gcp.iap.TunnelDestGroup("dest_group",
339
339
  region="us-central1",
340
- group_name="testgroup_75223",
340
+ group_name="testgroup_41819",
341
341
  cidrs=[
342
342
  "10.1.0.0/16",
343
343
  "192.168.10.0/24",
pulumi_gcp/kms/_inputs.py CHANGED
@@ -16,6 +16,7 @@ __all__ = [
16
16
  'CryptoKeyVersionAttestationArgs',
17
17
  'CryptoKeyVersionAttestationCertChainsArgs',
18
18
  'CryptoKeyVersionAttestationExternalProtectionLevelOptionsArgs',
19
+ 'CryptoKeyVersionExternalProtectionLevelOptionsArgs',
19
20
  'CryptoKeyVersionTemplateArgs',
20
21
  'EkmConnectionServiceResolverArgs',
21
22
  'EkmConnectionServiceResolverServerCertificateArgs',
@@ -209,6 +210,9 @@ class CryptoKeyVersionAttestationArgs:
209
210
  pulumi.set(__self__, "cert_chains", cert_chains)
210
211
  if content is not None:
211
212
  pulumi.set(__self__, "content", content)
213
+ if external_protection_level_options is not None:
214
+ warnings.warn("""`externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""", DeprecationWarning)
215
+ pulumi.log.warn("""external_protection_level_options is deprecated: `externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""")
212
216
  if external_protection_level_options is not None:
213
217
  pulumi.set(__self__, "external_protection_level_options", external_protection_level_options)
214
218
  if format is not None:
@@ -247,6 +251,9 @@ class CryptoKeyVersionAttestationArgs:
247
251
  ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
248
252
  Structure is documented below.
249
253
  """
254
+ warnings.warn("""`externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""", DeprecationWarning)
255
+ pulumi.log.warn("""external_protection_level_options is deprecated: `externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""")
256
+
250
257
  return pulumi.get(self, "external_protection_level_options")
251
258
 
252
259
  @external_protection_level_options.setter
@@ -361,6 +368,45 @@ class CryptoKeyVersionAttestationExternalProtectionLevelOptionsArgs:
361
368
  pulumi.set(self, "external_key_uri", value)
362
369
 
363
370
 
371
+ @pulumi.input_type
372
+ class CryptoKeyVersionExternalProtectionLevelOptionsArgs:
373
+ def __init__(__self__, *,
374
+ ekm_connection_key_path: Optional[pulumi.Input[str]] = None,
375
+ external_key_uri: Optional[pulumi.Input[str]] = None):
376
+ """
377
+ :param pulumi.Input[str] ekm_connection_key_path: The path to the external key material on the EKM when using EkmConnection e.g., "v0/my/key". Set this field instead of externalKeyUri when using an EkmConnection.
378
+ :param pulumi.Input[str] external_key_uri: The URI for an external resource that this CryptoKeyVersion represents.
379
+ """
380
+ if ekm_connection_key_path is not None:
381
+ pulumi.set(__self__, "ekm_connection_key_path", ekm_connection_key_path)
382
+ if external_key_uri is not None:
383
+ pulumi.set(__self__, "external_key_uri", external_key_uri)
384
+
385
+ @property
386
+ @pulumi.getter(name="ekmConnectionKeyPath")
387
+ def ekm_connection_key_path(self) -> Optional[pulumi.Input[str]]:
388
+ """
389
+ The path to the external key material on the EKM when using EkmConnection e.g., "v0/my/key". Set this field instead of externalKeyUri when using an EkmConnection.
390
+ """
391
+ return pulumi.get(self, "ekm_connection_key_path")
392
+
393
+ @ekm_connection_key_path.setter
394
+ def ekm_connection_key_path(self, value: Optional[pulumi.Input[str]]):
395
+ pulumi.set(self, "ekm_connection_key_path", value)
396
+
397
+ @property
398
+ @pulumi.getter(name="externalKeyUri")
399
+ def external_key_uri(self) -> Optional[pulumi.Input[str]]:
400
+ """
401
+ The URI for an external resource that this CryptoKeyVersion represents.
402
+ """
403
+ return pulumi.get(self, "external_key_uri")
404
+
405
+ @external_key_uri.setter
406
+ def external_key_uri(self, value: Optional[pulumi.Input[str]]):
407
+ pulumi.set(self, "external_key_uri", value)
408
+
409
+
364
410
  @pulumi.input_type
365
411
  class CryptoKeyVersionTemplateArgs:
366
412
  def __init__(__self__, *,
@@ -17,6 +17,7 @@ __all__ = ['CryptoKeyArgs', 'CryptoKey']
17
17
  class CryptoKeyArgs:
18
18
  def __init__(__self__, *,
19
19
  key_ring: pulumi.Input[str],
20
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
20
21
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
21
22
  import_only: Optional[pulumi.Input[bool]] = None,
22
23
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -32,6 +33,8 @@ class CryptoKeyArgs:
32
33
 
33
34
 
34
35
  - - -
36
+ :param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
37
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
35
38
  :param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
36
39
  If not specified at creation time, the default duration is 24 hours.
37
40
  :param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
@@ -54,6 +57,8 @@ class CryptoKeyArgs:
54
57
  Structure is documented below.
55
58
  """
56
59
  pulumi.set(__self__, "key_ring", key_ring)
60
+ if crypto_key_backend is not None:
61
+ pulumi.set(__self__, "crypto_key_backend", crypto_key_backend)
57
62
  if destroy_scheduled_duration is not None:
58
63
  pulumi.set(__self__, "destroy_scheduled_duration", destroy_scheduled_duration)
59
64
  if import_only is not None:
@@ -87,6 +92,19 @@ class CryptoKeyArgs:
87
92
  def key_ring(self, value: pulumi.Input[str]):
88
93
  pulumi.set(self, "key_ring", value)
89
94
 
95
+ @property
96
+ @pulumi.getter(name="cryptoKeyBackend")
97
+ def crypto_key_backend(self) -> Optional[pulumi.Input[str]]:
98
+ """
99
+ The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
100
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
101
+ """
102
+ return pulumi.get(self, "crypto_key_backend")
103
+
104
+ @crypto_key_backend.setter
105
+ def crypto_key_backend(self, value: Optional[pulumi.Input[str]]):
106
+ pulumi.set(self, "crypto_key_backend", value)
107
+
90
108
  @property
91
109
  @pulumi.getter(name="destroyScheduledDuration")
92
110
  def destroy_scheduled_duration(self) -> Optional[pulumi.Input[str]]:
@@ -199,6 +217,7 @@ class CryptoKeyArgs:
199
217
  @pulumi.input_type
200
218
  class _CryptoKeyState:
201
219
  def __init__(__self__, *,
220
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
202
221
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
203
222
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
204
223
  import_only: Optional[pulumi.Input[bool]] = None,
@@ -213,6 +232,8 @@ class _CryptoKeyState:
213
232
  version_template: Optional[pulumi.Input['CryptoKeyVersionTemplateArgs']] = None):
214
233
  """
215
234
  Input properties used for looking up and filtering CryptoKey resources.
235
+ :param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
236
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
216
237
  :param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
217
238
  If not specified at creation time, the default duration is 24 hours.
218
239
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
@@ -245,6 +266,8 @@ class _CryptoKeyState:
245
266
  :param pulumi.Input['CryptoKeyVersionTemplateArgs'] version_template: A template describing settings for new crypto key versions.
246
267
  Structure is documented below.
247
268
  """
269
+ if crypto_key_backend is not None:
270
+ pulumi.set(__self__, "crypto_key_backend", crypto_key_backend)
248
271
  if destroy_scheduled_duration is not None:
249
272
  pulumi.set(__self__, "destroy_scheduled_duration", destroy_scheduled_duration)
250
273
  if effective_labels is not None:
@@ -270,6 +293,19 @@ class _CryptoKeyState:
270
293
  if version_template is not None:
271
294
  pulumi.set(__self__, "version_template", version_template)
272
295
 
296
+ @property
297
+ @pulumi.getter(name="cryptoKeyBackend")
298
+ def crypto_key_backend(self) -> Optional[pulumi.Input[str]]:
299
+ """
300
+ The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
301
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
302
+ """
303
+ return pulumi.get(self, "crypto_key_backend")
304
+
305
+ @crypto_key_backend.setter
306
+ def crypto_key_backend(self, value: Optional[pulumi.Input[str]]):
307
+ pulumi.set(self, "crypto_key_backend", value)
308
+
273
309
  @property
274
310
  @pulumi.getter(name="destroyScheduledDuration")
275
311
  def destroy_scheduled_duration(self) -> Optional[pulumi.Input[str]]:
@@ -439,6 +475,7 @@ class CryptoKey(pulumi.CustomResource):
439
475
  def __init__(__self__,
440
476
  resource_name: str,
441
477
  opts: Optional[pulumi.ResourceOptions] = None,
478
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
442
479
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
443
480
  import_only: Optional[pulumi.Input[bool]] = None,
444
481
  key_ring: Optional[pulumi.Input[str]] = None,
@@ -525,6 +562,8 @@ class CryptoKey(pulumi.CustomResource):
525
562
 
526
563
  :param str resource_name: The name of the resource.
527
564
  :param pulumi.ResourceOptions opts: Options for the resource.
565
+ :param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
566
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
528
567
  :param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
529
568
  If not specified at creation time, the default duration is 24 hours.
530
569
  :param pulumi.Input[bool] import_only: Whether this key may contain imported versions only.
@@ -646,6 +685,7 @@ class CryptoKey(pulumi.CustomResource):
646
685
  def _internal_init(__self__,
647
686
  resource_name: str,
648
687
  opts: Optional[pulumi.ResourceOptions] = None,
688
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
649
689
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
650
690
  import_only: Optional[pulumi.Input[bool]] = None,
651
691
  key_ring: Optional[pulumi.Input[str]] = None,
@@ -664,6 +704,7 @@ class CryptoKey(pulumi.CustomResource):
664
704
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
665
705
  __props__ = CryptoKeyArgs.__new__(CryptoKeyArgs)
666
706
 
707
+ __props__.__dict__["crypto_key_backend"] = crypto_key_backend
667
708
  __props__.__dict__["destroy_scheduled_duration"] = destroy_scheduled_duration
668
709
  __props__.__dict__["import_only"] = import_only
669
710
  if key_ring is None and not opts.urn:
@@ -690,6 +731,7 @@ class CryptoKey(pulumi.CustomResource):
690
731
  def get(resource_name: str,
691
732
  id: pulumi.Input[str],
692
733
  opts: Optional[pulumi.ResourceOptions] = None,
734
+ crypto_key_backend: Optional[pulumi.Input[str]] = None,
693
735
  destroy_scheduled_duration: Optional[pulumi.Input[str]] = None,
694
736
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
695
737
  import_only: Optional[pulumi.Input[bool]] = None,
@@ -709,6 +751,8 @@ class CryptoKey(pulumi.CustomResource):
709
751
  :param str resource_name: The unique name of the resulting resource.
710
752
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
711
753
  :param pulumi.ResourceOptions opts: Options for the resource.
754
+ :param pulumi.Input[str] crypto_key_backend: The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
755
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
712
756
  :param pulumi.Input[str] destroy_scheduled_duration: The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
713
757
  If not specified at creation time, the default duration is 24 hours.
714
758
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
@@ -745,6 +789,7 @@ class CryptoKey(pulumi.CustomResource):
745
789
 
746
790
  __props__ = _CryptoKeyState.__new__(_CryptoKeyState)
747
791
 
792
+ __props__.__dict__["crypto_key_backend"] = crypto_key_backend
748
793
  __props__.__dict__["destroy_scheduled_duration"] = destroy_scheduled_duration
749
794
  __props__.__dict__["effective_labels"] = effective_labels
750
795
  __props__.__dict__["import_only"] = import_only
@@ -759,6 +804,15 @@ class CryptoKey(pulumi.CustomResource):
759
804
  __props__.__dict__["version_template"] = version_template
760
805
  return CryptoKey(resource_name, opts=opts, __props__=__props__)
761
806
 
807
+ @property
808
+ @pulumi.getter(name="cryptoKeyBackend")
809
+ def crypto_key_backend(self) -> pulumi.Output[str]:
810
+ """
811
+ The resource name of the backend environment associated with all CryptoKeyVersions within this CryptoKey.
812
+ The resource name is in the format "projects/*/locations/*/ekmConnections/*" and only applies to "EXTERNAL_VPC" keys.
813
+ """
814
+ return pulumi.get(self, "crypto_key_backend")
815
+
762
816
  @property
763
817
  @pulumi.getter(name="destroyScheduledDuration")
764
818
  def destroy_scheduled_duration(self) -> pulumi.Output[str]: