pulumi-gcp 7.20.0a1713986537__py3-none-any.whl → 7.21.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 (106) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/alloydb/_inputs.py +74 -0
  3. pulumi_gcp/alloydb/backup.py +0 -12
  4. pulumi_gcp/alloydb/cluster.py +0 -12
  5. pulumi_gcp/alloydb/instance.py +90 -81
  6. pulumi_gcp/alloydb/outputs.py +98 -0
  7. pulumi_gcp/apigee/environment.py +47 -0
  8. pulumi_gcp/apigee/sharedflow.py +0 -20
  9. pulumi_gcp/appengine/flexible_app_version.py +0 -20
  10. pulumi_gcp/applicationintegration/__init__.py +1 -0
  11. pulumi_gcp/applicationintegration/_inputs.py +843 -0
  12. pulumi_gcp/applicationintegration/auth_config.py +998 -0
  13. pulumi_gcp/applicationintegration/outputs.py +891 -0
  14. pulumi_gcp/bigquerydatapolicy/_inputs.py +21 -4
  15. pulumi_gcp/bigquerydatapolicy/data_policy.py +78 -0
  16. pulumi_gcp/bigquerydatapolicy/outputs.py +16 -3
  17. pulumi_gcp/certificateauthority/_inputs.py +92 -12
  18. pulumi_gcp/certificateauthority/authority.py +117 -27
  19. pulumi_gcp/certificateauthority/certificate.py +176 -0
  20. pulumi_gcp/certificateauthority/outputs.py +144 -12
  21. pulumi_gcp/cloudbuild/worker_pool.py +0 -12
  22. pulumi_gcp/cloudbuildv2/connection.py +0 -12
  23. pulumi_gcp/cloudbuildv2/repository.py +0 -12
  24. pulumi_gcp/clouddeploy/automation.py +0 -12
  25. pulumi_gcp/clouddeploy/custom_target_type.py +0 -12
  26. pulumi_gcp/clouddeploy/delivery_pipeline.py +0 -12
  27. pulumi_gcp/clouddeploy/target.py +0 -12
  28. pulumi_gcp/cloudrunv2/job.py +0 -12
  29. pulumi_gcp/cloudrunv2/service.py +0 -12
  30. pulumi_gcp/composer/__init__.py +1 -0
  31. pulumi_gcp/composer/environment.py +35 -47
  32. pulumi_gcp/composer/user_workloads_secret.py +441 -0
  33. pulumi_gcp/compute/__init__.py +1 -0
  34. pulumi_gcp/compute/_inputs.py +121 -58
  35. pulumi_gcp/compute/forwarding_rule.py +0 -13
  36. pulumi_gcp/compute/global_address.py +0 -12
  37. pulumi_gcp/compute/global_forwarding_rule.py +0 -282
  38. pulumi_gcp/compute/instance_from_machine_image.py +14 -46
  39. pulumi_gcp/compute/instance_from_template.py +14 -46
  40. pulumi_gcp/compute/outputs.py +120 -65
  41. pulumi_gcp/compute/region_instance_template.py +0 -13
  42. pulumi_gcp/compute/region_target_https_proxy.py +257 -0
  43. pulumi_gcp/compute/region_url_map.py +0 -470
  44. pulumi_gcp/compute/security_policy_rule.py +850 -0
  45. pulumi_gcp/container/attached_cluster.py +0 -12
  46. pulumi_gcp/container/aws_cluster.py +0 -12
  47. pulumi_gcp/container/aws_node_pool.py +0 -12
  48. pulumi_gcp/container/azure_cluster.py +0 -12
  49. pulumi_gcp/container/azure_node_pool.py +0 -12
  50. pulumi_gcp/container/cluster.py +0 -20
  51. pulumi_gcp/dataflow/flex_template_job.py +0 -39
  52. pulumi_gcp/dataloss/__init__.py +1 -0
  53. pulumi_gcp/dataloss/_inputs.py +1040 -0
  54. pulumi_gcp/dataloss/outputs.py +1123 -0
  55. pulumi_gcp/dataloss/prevention_discovery_config.py +737 -0
  56. pulumi_gcp/dataproc/cluster.py +0 -20
  57. pulumi_gcp/dataproc/workflow_template.py +21 -26
  58. pulumi_gcp/deploymentmanager/deployment.py +0 -34
  59. pulumi_gcp/dns/_inputs.py +2 -2
  60. pulumi_gcp/dns/outputs.py +2 -2
  61. pulumi_gcp/dns/record_set.py +2 -36
  62. pulumi_gcp/filestore/get_instance.py +11 -1
  63. pulumi_gcp/filestore/instance.py +101 -0
  64. pulumi_gcp/firebase/_inputs.py +16 -0
  65. pulumi_gcp/firebase/android_app.py +0 -27
  66. pulumi_gcp/firebase/app_check_play_integrity_config.py +20 -0
  67. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +10 -0
  68. pulumi_gcp/firebase/app_check_service_config.py +0 -125
  69. pulumi_gcp/firebase/apple_app.py +0 -27
  70. pulumi_gcp/firebase/hosting_custom_domain.py +0 -27
  71. pulumi_gcp/firebase/hosting_version.py +44 -0
  72. pulumi_gcp/firebase/outputs.py +12 -0
  73. pulumi_gcp/firebase/web_app.py +0 -20
  74. pulumi_gcp/firestore/database.py +0 -68
  75. pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py +0 -12
  76. pulumi_gcp/gkeonprem/bare_metal_cluster.py +0 -12
  77. pulumi_gcp/gkeonprem/bare_metal_node_pool.py +0 -12
  78. pulumi_gcp/gkeonprem/v_mware_cluster.py +0 -12
  79. pulumi_gcp/gkeonprem/v_mware_node_pool.py +0 -12
  80. pulumi_gcp/logging/folder_sink.py +54 -0
  81. pulumi_gcp/logging/organization_sink.py +54 -0
  82. pulumi_gcp/monitoring/_inputs.py +46 -2
  83. pulumi_gcp/monitoring/outputs.py +40 -2
  84. pulumi_gcp/monitoring/uptime_check_config.py +6 -0
  85. pulumi_gcp/netapp/active_directory.py +0 -20
  86. pulumi_gcp/netapp/volume_replication.py +0 -68
  87. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  88. pulumi_gcp/networkconnectivity/internal_range.py +1024 -0
  89. pulumi_gcp/provider.py +3 -1
  90. pulumi_gcp/secretmanager/get_secret.py +13 -3
  91. pulumi_gcp/secretmanager/outputs.py +20 -1
  92. pulumi_gcp/secretmanager/secret.py +90 -15
  93. pulumi_gcp/servicenetworking/connection.py +0 -20
  94. pulumi_gcp/spanner/database.py +0 -41
  95. pulumi_gcp/spanner/instance.py +0 -40
  96. pulumi_gcp/storage/__init__.py +1 -0
  97. pulumi_gcp/storage/bucket.py +0 -12
  98. pulumi_gcp/storage/get_bucket_objects.py +153 -0
  99. pulumi_gcp/storage/outputs.py +63 -0
  100. pulumi_gcp/workstations/workstation.py +0 -12
  101. pulumi_gcp/workstations/workstation_cluster.py +0 -12
  102. pulumi_gcp/workstations/workstation_config.py +0 -12
  103. {pulumi_gcp-7.20.0a1713986537.dist-info → pulumi_gcp-7.21.0.dist-info}/METADATA +1 -1
  104. {pulumi_gcp-7.20.0a1713986537.dist-info → pulumi_gcp-7.21.0.dist-info}/RECORD +106 -100
  105. {pulumi_gcp-7.20.0a1713986537.dist-info → pulumi_gcp-7.21.0.dist-info}/WHEEL +0 -0
  106. {pulumi_gcp-7.20.0a1713986537.dist-info → pulumi_gcp-7.21.0.dist-info}/top_level.txt +0 -0
@@ -18,16 +18,21 @@ __all__ = [
18
18
  @pulumi.input_type
19
19
  class DataPolicyDataMaskingPolicyArgs:
20
20
  def __init__(__self__, *,
21
- predefined_expression: pulumi.Input[str]):
21
+ predefined_expression: Optional[pulumi.Input[str]] = None,
22
+ routine: Optional[pulumi.Input[str]] = None):
22
23
  """
23
24
  :param pulumi.Input[str] predefined_expression: The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options.
24
25
  Possible values are: `SHA256`, `ALWAYS_NULL`, `DEFAULT_MASKING_VALUE`, `LAST_FOUR_CHARACTERS`, `FIRST_FOUR_CHARACTERS`, `EMAIL_MASK`, `DATE_YEAR_MASK`.
26
+ :param pulumi.Input[str] routine: The name of the BigQuery routine that contains the custom masking routine, in the format of projects/{projectNumber}/datasets/{dataset_id}/routines/{routine_id}.
25
27
  """
26
- pulumi.set(__self__, "predefined_expression", predefined_expression)
28
+ if predefined_expression is not None:
29
+ pulumi.set(__self__, "predefined_expression", predefined_expression)
30
+ if routine is not None:
31
+ pulumi.set(__self__, "routine", routine)
27
32
 
28
33
  @property
29
34
  @pulumi.getter(name="predefinedExpression")
30
- def predefined_expression(self) -> pulumi.Input[str]:
35
+ def predefined_expression(self) -> Optional[pulumi.Input[str]]:
31
36
  """
32
37
  The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options.
33
38
  Possible values are: `SHA256`, `ALWAYS_NULL`, `DEFAULT_MASKING_VALUE`, `LAST_FOUR_CHARACTERS`, `FIRST_FOUR_CHARACTERS`, `EMAIL_MASK`, `DATE_YEAR_MASK`.
@@ -35,9 +40,21 @@ class DataPolicyDataMaskingPolicyArgs:
35
40
  return pulumi.get(self, "predefined_expression")
36
41
 
37
42
  @predefined_expression.setter
38
- def predefined_expression(self, value: pulumi.Input[str]):
43
+ def predefined_expression(self, value: Optional[pulumi.Input[str]]):
39
44
  pulumi.set(self, "predefined_expression", value)
40
45
 
46
+ @property
47
+ @pulumi.getter
48
+ def routine(self) -> Optional[pulumi.Input[str]]:
49
+ """
50
+ The name of the BigQuery routine that contains the custom masking routine, in the format of projects/{projectNumber}/datasets/{dataset_id}/routines/{routine_id}.
51
+ """
52
+ return pulumi.get(self, "routine")
53
+
54
+ @routine.setter
55
+ def routine(self, value: Optional[pulumi.Input[str]]):
56
+ pulumi.set(self, "routine", value)
57
+
41
58
 
42
59
  @pulumi.input_type
43
60
  class DataPolicyIamBindingConditionArgs:
@@ -301,6 +301,45 @@ class DataPolicy(pulumi.CustomResource):
301
301
  policy_tag=policy_tag.name,
302
302
  data_policy_type="COLUMN_LEVEL_SECURITY_POLICY")
303
303
  ```
304
+ ### Bigquery Datapolicy Data Policy Routine
305
+
306
+ ```python
307
+ import pulumi
308
+ import pulumi_gcp as gcp
309
+
310
+ taxonomy = gcp.datacatalog.Taxonomy("taxonomy",
311
+ region="us-central1",
312
+ display_name="taxonomy",
313
+ description="A collection of policy tags",
314
+ activated_policy_types=["FINE_GRAINED_ACCESS_CONTROL"])
315
+ policy_tag = gcp.datacatalog.PolicyTag("policy_tag",
316
+ taxonomy=taxonomy.id,
317
+ display_name="Low security",
318
+ description="A policy tag normally associated with low security items")
319
+ test = gcp.bigquery.Dataset("test",
320
+ dataset_id="dataset_id",
321
+ location="us-central1")
322
+ custom_masking_routine = gcp.bigquery.Routine("custom_masking_routine",
323
+ dataset_id=test.dataset_id,
324
+ routine_id="custom_masking_routine",
325
+ routine_type="SCALAR_FUNCTION",
326
+ language="SQL",
327
+ data_governance_type="DATA_MASKING",
328
+ definition_body="SAFE.REGEXP_REPLACE(ssn, '[0-9]', 'X')",
329
+ return_type="{\\"typeKind\\" : \\"STRING\\"}",
330
+ arguments=[gcp.bigquery.RoutineArgumentArgs(
331
+ name="ssn",
332
+ data_type="{\\"typeKind\\" : \\"STRING\\"}",
333
+ )])
334
+ data_policy = gcp.bigquerydatapolicy.DataPolicy("data_policy",
335
+ location="us-central1",
336
+ data_policy_id="data_policy",
337
+ policy_tag=policy_tag.name,
338
+ data_policy_type="DATA_MASKING_POLICY",
339
+ data_masking_policy=gcp.bigquerydatapolicy.DataPolicyDataMaskingPolicyArgs(
340
+ routine=custom_masking_routine.id,
341
+ ))
342
+ ```
304
343
 
305
344
  ## Import
306
345
 
@@ -379,6 +418,45 @@ class DataPolicy(pulumi.CustomResource):
379
418
  policy_tag=policy_tag.name,
380
419
  data_policy_type="COLUMN_LEVEL_SECURITY_POLICY")
381
420
  ```
421
+ ### Bigquery Datapolicy Data Policy Routine
422
+
423
+ ```python
424
+ import pulumi
425
+ import pulumi_gcp as gcp
426
+
427
+ taxonomy = gcp.datacatalog.Taxonomy("taxonomy",
428
+ region="us-central1",
429
+ display_name="taxonomy",
430
+ description="A collection of policy tags",
431
+ activated_policy_types=["FINE_GRAINED_ACCESS_CONTROL"])
432
+ policy_tag = gcp.datacatalog.PolicyTag("policy_tag",
433
+ taxonomy=taxonomy.id,
434
+ display_name="Low security",
435
+ description="A policy tag normally associated with low security items")
436
+ test = gcp.bigquery.Dataset("test",
437
+ dataset_id="dataset_id",
438
+ location="us-central1")
439
+ custom_masking_routine = gcp.bigquery.Routine("custom_masking_routine",
440
+ dataset_id=test.dataset_id,
441
+ routine_id="custom_masking_routine",
442
+ routine_type="SCALAR_FUNCTION",
443
+ language="SQL",
444
+ data_governance_type="DATA_MASKING",
445
+ definition_body="SAFE.REGEXP_REPLACE(ssn, '[0-9]', 'X')",
446
+ return_type="{\\"typeKind\\" : \\"STRING\\"}",
447
+ arguments=[gcp.bigquery.RoutineArgumentArgs(
448
+ name="ssn",
449
+ data_type="{\\"typeKind\\" : \\"STRING\\"}",
450
+ )])
451
+ data_policy = gcp.bigquerydatapolicy.DataPolicy("data_policy",
452
+ location="us-central1",
453
+ data_policy_id="data_policy",
454
+ policy_tag=policy_tag.name,
455
+ data_policy_type="DATA_MASKING_POLICY",
456
+ data_masking_policy=gcp.bigquerydatapolicy.DataPolicyDataMaskingPolicyArgs(
457
+ routine=custom_masking_routine.id,
458
+ ))
459
+ ```
382
460
 
383
461
  ## Import
384
462
 
@@ -35,22 +35,35 @@ class DataPolicyDataMaskingPolicy(dict):
35
35
  return super().get(key, default)
36
36
 
37
37
  def __init__(__self__, *,
38
- predefined_expression: str):
38
+ predefined_expression: Optional[str] = None,
39
+ routine: Optional[str] = None):
39
40
  """
40
41
  :param str predefined_expression: The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options.
41
42
  Possible values are: `SHA256`, `ALWAYS_NULL`, `DEFAULT_MASKING_VALUE`, `LAST_FOUR_CHARACTERS`, `FIRST_FOUR_CHARACTERS`, `EMAIL_MASK`, `DATE_YEAR_MASK`.
43
+ :param str routine: The name of the BigQuery routine that contains the custom masking routine, in the format of projects/{projectNumber}/datasets/{dataset_id}/routines/{routine_id}.
42
44
  """
43
- pulumi.set(__self__, "predefined_expression", predefined_expression)
45
+ if predefined_expression is not None:
46
+ pulumi.set(__self__, "predefined_expression", predefined_expression)
47
+ if routine is not None:
48
+ pulumi.set(__self__, "routine", routine)
44
49
 
45
50
  @property
46
51
  @pulumi.getter(name="predefinedExpression")
47
- def predefined_expression(self) -> str:
52
+ def predefined_expression(self) -> Optional[str]:
48
53
  """
49
54
  The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options.
50
55
  Possible values are: `SHA256`, `ALWAYS_NULL`, `DEFAULT_MASKING_VALUE`, `LAST_FOUR_CHARACTERS`, `FIRST_FOUR_CHARACTERS`, `EMAIL_MASK`, `DATE_YEAR_MASK`.
51
56
  """
52
57
  return pulumi.get(self, "predefined_expression")
53
58
 
59
+ @property
60
+ @pulumi.getter
61
+ def routine(self) -> Optional[str]:
62
+ """
63
+ The name of the BigQuery routine that contains the custom masking routine, in the format of projects/{projectNumber}/datasets/{dataset_id}/routines/{routine_id}.
64
+ """
65
+ return pulumi.get(self, "routine")
66
+
54
67
 
55
68
  @pulumi.output_type
56
69
  class DataPolicyIamBindingCondition(dict):
@@ -15,6 +15,7 @@ __all__ = [
15
15
  'AuthorityConfigSubjectConfigArgs',
16
16
  'AuthorityConfigSubjectConfigSubjectArgs',
17
17
  'AuthorityConfigSubjectConfigSubjectAltNameArgs',
18
+ 'AuthorityConfigSubjectKeyIdArgs',
18
19
  'AuthorityConfigX509ConfigArgs',
19
20
  'AuthorityConfigX509ConfigAdditionalExtensionArgs',
20
21
  'AuthorityConfigX509ConfigAdditionalExtensionObjectIdArgs',
@@ -73,6 +74,7 @@ __all__ = [
73
74
  'CertificateConfigSubjectConfigArgs',
74
75
  'CertificateConfigSubjectConfigSubjectArgs',
75
76
  'CertificateConfigSubjectConfigSubjectAltNameArgs',
77
+ 'CertificateConfigSubjectKeyIdArgs',
76
78
  'CertificateConfigX509ConfigArgs',
77
79
  'CertificateConfigX509ConfigAdditionalExtensionArgs',
78
80
  'CertificateConfigX509ConfigAdditionalExtensionObjectIdArgs',
@@ -152,18 +154,20 @@ class AuthorityAccessUrlArgs:
152
154
  class AuthorityConfigArgs:
153
155
  def __init__(__self__, *,
154
156
  subject_config: pulumi.Input['AuthorityConfigSubjectConfigArgs'],
155
- x509_config: pulumi.Input['AuthorityConfigX509ConfigArgs']):
157
+ x509_config: pulumi.Input['AuthorityConfigX509ConfigArgs'],
158
+ subject_key_id: Optional[pulumi.Input['AuthorityConfigSubjectKeyIdArgs']] = None):
156
159
  """
157
160
  :param pulumi.Input['AuthorityConfigSubjectConfigArgs'] subject_config: Specifies some of the values in a certificate that are related to the subject.
158
161
  Structure is documented below.
159
-
160
-
161
- <a name="nested_x509_config"></a>The `x509_config` block supports:
162
162
  :param pulumi.Input['AuthorityConfigX509ConfigArgs'] x509_config: Describes how some of the technical X.509 fields in a certificate should be populated.
163
163
  Structure is documented below.
164
+ :param pulumi.Input['AuthorityConfigSubjectKeyIdArgs'] subject_key_id: When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..
165
+ Structure is documented below.
164
166
  """
165
167
  pulumi.set(__self__, "subject_config", subject_config)
166
168
  pulumi.set(__self__, "x509_config", x509_config)
169
+ if subject_key_id is not None:
170
+ pulumi.set(__self__, "subject_key_id", subject_key_id)
167
171
 
168
172
  @property
169
173
  @pulumi.getter(name="subjectConfig")
@@ -171,9 +175,6 @@ class AuthorityConfigArgs:
171
175
  """
172
176
  Specifies some of the values in a certificate that are related to the subject.
173
177
  Structure is documented below.
174
-
175
-
176
- <a name="nested_x509_config"></a>The `x509_config` block supports:
177
178
  """
178
179
  return pulumi.get(self, "subject_config")
179
180
 
@@ -194,6 +195,19 @@ class AuthorityConfigArgs:
194
195
  def x509_config(self, value: pulumi.Input['AuthorityConfigX509ConfigArgs']):
195
196
  pulumi.set(self, "x509_config", value)
196
197
 
198
+ @property
199
+ @pulumi.getter(name="subjectKeyId")
200
+ def subject_key_id(self) -> Optional[pulumi.Input['AuthorityConfigSubjectKeyIdArgs']]:
201
+ """
202
+ When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..
203
+ Structure is documented below.
204
+ """
205
+ return pulumi.get(self, "subject_key_id")
206
+
207
+ @subject_key_id.setter
208
+ def subject_key_id(self, value: Optional[pulumi.Input['AuthorityConfigSubjectKeyIdArgs']]):
209
+ pulumi.set(self, "subject_key_id", value)
210
+
197
211
 
198
212
  @pulumi.input_type
199
213
  class AuthorityConfigSubjectConfigArgs:
@@ -441,6 +455,33 @@ class AuthorityConfigSubjectConfigSubjectAltNameArgs:
441
455
  pulumi.set(self, "uris", value)
442
456
 
443
457
 
458
+ @pulumi.input_type
459
+ class AuthorityConfigSubjectKeyIdArgs:
460
+ def __init__(__self__, *,
461
+ key_id: Optional[pulumi.Input[str]] = None):
462
+ """
463
+ :param pulumi.Input[str] key_id: The value of the KeyId in lowercase hexidecimal.
464
+
465
+ <a name="nested_x509_config"></a>The `x509_config` block supports:
466
+ """
467
+ if key_id is not None:
468
+ pulumi.set(__self__, "key_id", key_id)
469
+
470
+ @property
471
+ @pulumi.getter(name="keyId")
472
+ def key_id(self) -> Optional[pulumi.Input[str]]:
473
+ """
474
+ The value of the KeyId in lowercase hexidecimal.
475
+
476
+ <a name="nested_x509_config"></a>The `x509_config` block supports:
477
+ """
478
+ return pulumi.get(self, "key_id")
479
+
480
+ @key_id.setter
481
+ def key_id(self, value: Optional[pulumi.Input[str]]):
482
+ pulumi.set(self, "key_id", value)
483
+
484
+
444
485
  @pulumi.input_type
445
486
  class AuthorityConfigX509ConfigArgs:
446
487
  def __init__(__self__, *,
@@ -3449,8 +3490,7 @@ class CertificateCertificateDescriptionSubjectKeyIdArgs:
3449
3490
  def __init__(__self__, *,
3450
3491
  key_id: Optional[pulumi.Input[str]] = None):
3451
3492
  """
3452
- :param pulumi.Input[str] key_id: (Output)
3453
- Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
3493
+ :param pulumi.Input[str] key_id: The value of the KeyId in lowercase hexidecimal.
3454
3494
  """
3455
3495
  if key_id is not None:
3456
3496
  pulumi.set(__self__, "key_id", key_id)
@@ -3459,8 +3499,7 @@ class CertificateCertificateDescriptionSubjectKeyIdArgs:
3459
3499
  @pulumi.getter(name="keyId")
3460
3500
  def key_id(self) -> Optional[pulumi.Input[str]]:
3461
3501
  """
3462
- (Output)
3463
- Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
3502
+ The value of the KeyId in lowercase hexidecimal.
3464
3503
  """
3465
3504
  return pulumi.get(self, "key_id")
3466
3505
 
@@ -4284,7 +4323,8 @@ class CertificateConfigArgs:
4284
4323
  def __init__(__self__, *,
4285
4324
  public_key: pulumi.Input['CertificateConfigPublicKeyArgs'],
4286
4325
  subject_config: pulumi.Input['CertificateConfigSubjectConfigArgs'],
4287
- x509_config: pulumi.Input['CertificateConfigX509ConfigArgs']):
4326
+ x509_config: pulumi.Input['CertificateConfigX509ConfigArgs'],
4327
+ subject_key_id: Optional[pulumi.Input['CertificateConfigSubjectKeyIdArgs']] = None):
4288
4328
  """
4289
4329
  :param pulumi.Input['CertificateConfigPublicKeyArgs'] public_key: A PublicKey describes a public key.
4290
4330
  Structure is documented below.
@@ -4295,10 +4335,14 @@ class CertificateConfigArgs:
4295
4335
  Structure is documented below.
4296
4336
  :param pulumi.Input['CertificateConfigX509ConfigArgs'] x509_config: Describes how some of the technical X.509 fields in a certificate should be populated.
4297
4337
  Structure is documented below.
4338
+ :param pulumi.Input['CertificateConfigSubjectKeyIdArgs'] subject_key_id: When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..
4339
+ Structure is documented below.
4298
4340
  """
4299
4341
  pulumi.set(__self__, "public_key", public_key)
4300
4342
  pulumi.set(__self__, "subject_config", subject_config)
4301
4343
  pulumi.set(__self__, "x509_config", x509_config)
4344
+ if subject_key_id is not None:
4345
+ pulumi.set(__self__, "subject_key_id", subject_key_id)
4302
4346
 
4303
4347
  @property
4304
4348
  @pulumi.getter(name="publicKey")
@@ -4342,6 +4386,19 @@ class CertificateConfigArgs:
4342
4386
  def x509_config(self, value: pulumi.Input['CertificateConfigX509ConfigArgs']):
4343
4387
  pulumi.set(self, "x509_config", value)
4344
4388
 
4389
+ @property
4390
+ @pulumi.getter(name="subjectKeyId")
4391
+ def subject_key_id(self) -> Optional[pulumi.Input['CertificateConfigSubjectKeyIdArgs']]:
4392
+ """
4393
+ When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..
4394
+ Structure is documented below.
4395
+ """
4396
+ return pulumi.get(self, "subject_key_id")
4397
+
4398
+ @subject_key_id.setter
4399
+ def subject_key_id(self, value: Optional[pulumi.Input['CertificateConfigSubjectKeyIdArgs']]):
4400
+ pulumi.set(self, "subject_key_id", value)
4401
+
4345
4402
 
4346
4403
  @pulumi.input_type
4347
4404
  class CertificateConfigPublicKeyArgs:
@@ -4629,6 +4686,29 @@ class CertificateConfigSubjectConfigSubjectAltNameArgs:
4629
4686
  pulumi.set(self, "uris", value)
4630
4687
 
4631
4688
 
4689
+ @pulumi.input_type
4690
+ class CertificateConfigSubjectKeyIdArgs:
4691
+ def __init__(__self__, *,
4692
+ key_id: Optional[pulumi.Input[str]] = None):
4693
+ """
4694
+ :param pulumi.Input[str] key_id: The value of the KeyId in lowercase hexidecimal.
4695
+ """
4696
+ if key_id is not None:
4697
+ pulumi.set(__self__, "key_id", key_id)
4698
+
4699
+ @property
4700
+ @pulumi.getter(name="keyId")
4701
+ def key_id(self) -> Optional[pulumi.Input[str]]:
4702
+ """
4703
+ The value of the KeyId in lowercase hexidecimal.
4704
+ """
4705
+ return pulumi.get(self, "key_id")
4706
+
4707
+ @key_id.setter
4708
+ def key_id(self, value: Optional[pulumi.Input[str]]):
4709
+ pulumi.set(self, "key_id", value)
4710
+
4711
+
4632
4712
  @pulumi.input_type
4633
4713
  class CertificateConfigX509ConfigArgs:
4634
4714
  def __init__(__self__, *,
@@ -44,8 +44,6 @@ class AuthorityArgs:
44
44
  :param pulumi.Input[str] location: Location of the CertificateAuthority. A full list of valid locations can be found by
45
45
  running `gcloud privateca locations list`.
46
46
  :param pulumi.Input[str] pool: The name of the CaPool this Certificate Authority belongs to.
47
- :param pulumi.Input[bool] deletion_protection: Whether or not to allow Terraform to destroy the CertificateAuthority. Unless this field is set to false in Terraform
48
- state, a 'terraform destroy' or 'terraform apply' that would delete the instance will fail.
49
47
  :param pulumi.Input[str] desired_state: Desired state of the CertificateAuthority. Set this field to 'STAGED' to create a 'STAGED' root CA.
50
48
  :param pulumi.Input[str] gcs_bucket: The name of a Cloud Storage bucket where this CertificateAuthority will publish content, such as the CA certificate and
51
49
  CRLs. This must be a bucket name, without any prefixes (such as 'gs://') or suffixes (such as '.googleapis.com'). For
@@ -65,7 +63,7 @@ class AuthorityArgs:
65
63
  'false'.
66
64
  :param pulumi.Input['AuthoritySubordinateConfigArgs'] subordinate_config: If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which
67
65
  describes its issuers.
68
- :param pulumi.Input[str] type: The Type of this CertificateAuthority. ~> **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
66
+ :param pulumi.Input[str] type: The Type of this CertificateAuthority. > **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
69
67
  before they can issue certificates. Default value: "SELF_SIGNED" Possible values: ["SELF_SIGNED", "SUBORDINATE"]
70
68
  """
71
69
  pulumi.set(__self__, "certificate_authority_id", certificate_authority_id)
@@ -164,10 +162,6 @@ class AuthorityArgs:
164
162
  @property
165
163
  @pulumi.getter(name="deletionProtection")
166
164
  def deletion_protection(self) -> Optional[pulumi.Input[bool]]:
167
- """
168
- Whether or not to allow Terraform to destroy the CertificateAuthority. Unless this field is set to false in Terraform
169
- state, a 'terraform destroy' or 'terraform apply' that would delete the instance will fail.
170
- """
171
165
  return pulumi.get(self, "deletion_protection")
172
166
 
173
167
  @deletion_protection.setter
@@ -294,7 +288,7 @@ class AuthorityArgs:
294
288
  @pulumi.getter
295
289
  def type(self) -> Optional[pulumi.Input[str]]:
296
290
  """
297
- The Type of this CertificateAuthority. ~> **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
291
+ The Type of this CertificateAuthority. > **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
298
292
  before they can issue certificates. Default value: "SELF_SIGNED" Possible values: ["SELF_SIGNED", "SUBORDINATE"]
299
293
  """
300
294
  return pulumi.get(self, "type")
@@ -341,8 +335,6 @@ class _AuthorityState:
341
335
  :param pulumi.Input[str] create_time: The time at which this CertificateAuthority was created.
342
336
  A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine
343
337
  fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
344
- :param pulumi.Input[bool] deletion_protection: Whether or not to allow Terraform to destroy the CertificateAuthority. Unless this field is set to false in Terraform
345
- state, a 'terraform destroy' or 'terraform apply' that would delete the instance will fail.
346
338
  :param pulumi.Input[str] desired_state: Desired state of the CertificateAuthority. Set this field to 'STAGED' to create a 'STAGED' root CA.
347
339
  :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.
348
340
  :param pulumi.Input[str] gcs_bucket: The name of a Cloud Storage bucket where this CertificateAuthority will publish content, such as the CA certificate and
@@ -379,7 +371,7 @@ class _AuthorityState:
379
371
  :param pulumi.Input[str] state: The State for this CertificateAuthority.
380
372
  :param pulumi.Input['AuthoritySubordinateConfigArgs'] subordinate_config: If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which
381
373
  describes its issuers.
382
- :param pulumi.Input[str] type: The Type of this CertificateAuthority. ~> **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
374
+ :param pulumi.Input[str] type: The Type of this CertificateAuthority. > **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
383
375
  before they can issue certificates. Default value: "SELF_SIGNED" Possible values: ["SELF_SIGNED", "SUBORDINATE"]
384
376
  :param pulumi.Input[str] update_time: The time at which this CertificateAuthority was updated.
385
377
  A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine
@@ -489,10 +481,6 @@ class _AuthorityState:
489
481
  @property
490
482
  @pulumi.getter(name="deletionProtection")
491
483
  def deletion_protection(self) -> Optional[pulumi.Input[bool]]:
492
- """
493
- Whether or not to allow Terraform to destroy the CertificateAuthority. Unless this field is set to false in Terraform
494
- state, a 'terraform destroy' or 'terraform apply' that would delete the instance will fail.
495
- """
496
484
  return pulumi.get(self, "deletion_protection")
497
485
 
498
486
  @deletion_protection.setter
@@ -724,7 +712,7 @@ class _AuthorityState:
724
712
  @pulumi.getter
725
713
  def type(self) -> Optional[pulumi.Input[str]]:
726
714
  """
727
- The Type of this CertificateAuthority. ~> **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
715
+ The Type of this CertificateAuthority. > **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
728
716
  before they can issue certificates. Default value: "SELF_SIGNED" Possible values: ["SELF_SIGNED", "SUBORDINATE"]
729
717
  """
730
718
  return pulumi.get(self, "type")
@@ -987,6 +975,61 @@ class Authority(pulumi.CustomResource):
987
975
  ),
988
976
  ))
989
977
  ```
978
+ ### Privateca Certificate Authority Custom Ski
979
+
980
+ ```python
981
+ import pulumi
982
+ import pulumi_gcp as gcp
983
+
984
+ default = gcp.certificateauthority.Authority("default",
985
+ pool="ca-pool",
986
+ certificate_authority_id="my-certificate-authority",
987
+ location="us-central1",
988
+ deletion_protection=True,
989
+ config=gcp.certificateauthority.AuthorityConfigArgs(
990
+ subject_config=gcp.certificateauthority.AuthorityConfigSubjectConfigArgs(
991
+ subject=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectArgs(
992
+ organization="HashiCorp",
993
+ common_name="my-certificate-authority",
994
+ ),
995
+ subject_alt_name=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs(
996
+ dns_names=["hashicorp.com"],
997
+ ),
998
+ ),
999
+ subject_key_id=gcp.certificateauthority.AuthorityConfigSubjectKeyIdArgs(
1000
+ key_id="4cf3372289b1d411b999dbb9ebcd44744b6b2fca",
1001
+ ),
1002
+ x509_config=gcp.certificateauthority.AuthorityConfigX509ConfigArgs(
1003
+ ca_options=gcp.certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs(
1004
+ is_ca=True,
1005
+ max_issuer_path_length=10,
1006
+ ),
1007
+ key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs(
1008
+ base_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs(
1009
+ digital_signature=True,
1010
+ content_commitment=True,
1011
+ key_encipherment=False,
1012
+ data_encipherment=True,
1013
+ key_agreement=True,
1014
+ cert_sign=True,
1015
+ crl_sign=True,
1016
+ decipher_only=True,
1017
+ ),
1018
+ extended_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs(
1019
+ server_auth=True,
1020
+ client_auth=False,
1021
+ email_protection=True,
1022
+ code_signing=True,
1023
+ time_stamping=True,
1024
+ ),
1025
+ ),
1026
+ ),
1027
+ ),
1028
+ lifetime="86400s",
1029
+ key_spec=gcp.certificateauthority.AuthorityKeySpecArgs(
1030
+ cloud_kms_key_version="projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1",
1031
+ ))
1032
+ ```
990
1033
 
991
1034
  ## Import
992
1035
 
@@ -1017,8 +1060,6 @@ class Authority(pulumi.CustomResource):
1017
1060
  :param pulumi.Input[str] certificate_authority_id: The user provided Resource ID for this Certificate Authority.
1018
1061
  :param pulumi.Input[pulumi.InputType['AuthorityConfigArgs']] config: The config used to create a self-signed X.509 certificate or CSR.
1019
1062
  Structure is documented below.
1020
- :param pulumi.Input[bool] deletion_protection: Whether or not to allow Terraform to destroy the CertificateAuthority. Unless this field is set to false in Terraform
1021
- state, a 'terraform destroy' or 'terraform apply' that would delete the instance will fail.
1022
1063
  :param pulumi.Input[str] desired_state: Desired state of the CertificateAuthority. Set this field to 'STAGED' to create a 'STAGED' root CA.
1023
1064
  :param pulumi.Input[str] gcs_bucket: The name of a Cloud Storage bucket where this CertificateAuthority will publish content, such as the CA certificate and
1024
1065
  CRLs. This must be a bucket name, without any prefixes (such as 'gs://') or suffixes (such as '.googleapis.com'). For
@@ -1045,7 +1086,7 @@ class Authority(pulumi.CustomResource):
1045
1086
  'false'.
1046
1087
  :param pulumi.Input[pulumi.InputType['AuthoritySubordinateConfigArgs']] subordinate_config: If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which
1047
1088
  describes its issuers.
1048
- :param pulumi.Input[str] type: The Type of this CertificateAuthority. ~> **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
1089
+ :param pulumi.Input[str] type: The Type of this CertificateAuthority. > **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
1049
1090
  before they can issue certificates. Default value: "SELF_SIGNED" Possible values: ["SELF_SIGNED", "SUBORDINATE"]
1050
1091
  """
1051
1092
  ...
@@ -1271,6 +1312,61 @@ class Authority(pulumi.CustomResource):
1271
1312
  ),
1272
1313
  ))
1273
1314
  ```
1315
+ ### Privateca Certificate Authority Custom Ski
1316
+
1317
+ ```python
1318
+ import pulumi
1319
+ import pulumi_gcp as gcp
1320
+
1321
+ default = gcp.certificateauthority.Authority("default",
1322
+ pool="ca-pool",
1323
+ certificate_authority_id="my-certificate-authority",
1324
+ location="us-central1",
1325
+ deletion_protection=True,
1326
+ config=gcp.certificateauthority.AuthorityConfigArgs(
1327
+ subject_config=gcp.certificateauthority.AuthorityConfigSubjectConfigArgs(
1328
+ subject=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectArgs(
1329
+ organization="HashiCorp",
1330
+ common_name="my-certificate-authority",
1331
+ ),
1332
+ subject_alt_name=gcp.certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs(
1333
+ dns_names=["hashicorp.com"],
1334
+ ),
1335
+ ),
1336
+ subject_key_id=gcp.certificateauthority.AuthorityConfigSubjectKeyIdArgs(
1337
+ key_id="4cf3372289b1d411b999dbb9ebcd44744b6b2fca",
1338
+ ),
1339
+ x509_config=gcp.certificateauthority.AuthorityConfigX509ConfigArgs(
1340
+ ca_options=gcp.certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs(
1341
+ is_ca=True,
1342
+ max_issuer_path_length=10,
1343
+ ),
1344
+ key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs(
1345
+ base_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs(
1346
+ digital_signature=True,
1347
+ content_commitment=True,
1348
+ key_encipherment=False,
1349
+ data_encipherment=True,
1350
+ key_agreement=True,
1351
+ cert_sign=True,
1352
+ crl_sign=True,
1353
+ decipher_only=True,
1354
+ ),
1355
+ extended_key_usage=gcp.certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs(
1356
+ server_auth=True,
1357
+ client_auth=False,
1358
+ email_protection=True,
1359
+ code_signing=True,
1360
+ time_stamping=True,
1361
+ ),
1362
+ ),
1363
+ ),
1364
+ ),
1365
+ lifetime="86400s",
1366
+ key_spec=gcp.certificateauthority.AuthorityKeySpecArgs(
1367
+ cloud_kms_key_version="projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1",
1368
+ ))
1369
+ ```
1274
1370
 
1275
1371
  ## Import
1276
1372
 
@@ -1421,8 +1517,6 @@ class Authority(pulumi.CustomResource):
1421
1517
  :param pulumi.Input[str] create_time: The time at which this CertificateAuthority was created.
1422
1518
  A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine
1423
1519
  fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
1424
- :param pulumi.Input[bool] deletion_protection: Whether or not to allow Terraform to destroy the CertificateAuthority. Unless this field is set to false in Terraform
1425
- state, a 'terraform destroy' or 'terraform apply' that would delete the instance will fail.
1426
1520
  :param pulumi.Input[str] desired_state: Desired state of the CertificateAuthority. Set this field to 'STAGED' to create a 'STAGED' root CA.
1427
1521
  :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.
1428
1522
  :param pulumi.Input[str] gcs_bucket: The name of a Cloud Storage bucket where this CertificateAuthority will publish content, such as the CA certificate and
@@ -1459,7 +1553,7 @@ class Authority(pulumi.CustomResource):
1459
1553
  :param pulumi.Input[str] state: The State for this CertificateAuthority.
1460
1554
  :param pulumi.Input[pulumi.InputType['AuthoritySubordinateConfigArgs']] subordinate_config: If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which
1461
1555
  describes its issuers.
1462
- :param pulumi.Input[str] type: The Type of this CertificateAuthority. ~> **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
1556
+ :param pulumi.Input[str] type: The Type of this CertificateAuthority. > **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
1463
1557
  before they can issue certificates. Default value: "SELF_SIGNED" Possible values: ["SELF_SIGNED", "SUBORDINATE"]
1464
1558
  :param pulumi.Input[str] update_time: The time at which this CertificateAuthority was updated.
1465
1559
  A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine
@@ -1534,10 +1628,6 @@ class Authority(pulumi.CustomResource):
1534
1628
  @property
1535
1629
  @pulumi.getter(name="deletionProtection")
1536
1630
  def deletion_protection(self) -> pulumi.Output[Optional[bool]]:
1537
- """
1538
- Whether or not to allow Terraform to destroy the CertificateAuthority. Unless this field is set to false in Terraform
1539
- state, a 'terraform destroy' or 'terraform apply' that would delete the instance will fail.
1540
- """
1541
1631
  return pulumi.get(self, "deletion_protection")
1542
1632
 
1543
1633
  @property
@@ -1697,7 +1787,7 @@ class Authority(pulumi.CustomResource):
1697
1787
  @pulumi.getter
1698
1788
  def type(self) -> pulumi.Output[Optional[str]]:
1699
1789
  """
1700
- The Type of this CertificateAuthority. ~> **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
1790
+ The Type of this CertificateAuthority. > **Note:** For 'SUBORDINATE' Certificate Authorities, they need to be activated
1701
1791
  before they can issue certificates. Default value: "SELF_SIGNED" Possible values: ["SELF_SIGNED", "SUBORDINATE"]
1702
1792
  """
1703
1793
  return pulumi.get(self, "type")