pulumi-gcp 7.21.0a1714543973__py3-none-any.whl → 7.21.0a1714596856__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 (56) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/alloydb/_inputs.py +74 -0
  3. pulumi_gcp/alloydb/instance.py +90 -0
  4. pulumi_gcp/alloydb/outputs.py +98 -0
  5. pulumi_gcp/apigee/environment.py +47 -0
  6. pulumi_gcp/applicationintegration/__init__.py +1 -0
  7. pulumi_gcp/applicationintegration/_inputs.py +843 -0
  8. pulumi_gcp/applicationintegration/auth_config.py +998 -0
  9. pulumi_gcp/applicationintegration/outputs.py +891 -0
  10. pulumi_gcp/bigquerydatapolicy/_inputs.py +21 -4
  11. pulumi_gcp/bigquerydatapolicy/data_policy.py +78 -0
  12. pulumi_gcp/bigquerydatapolicy/outputs.py +16 -3
  13. pulumi_gcp/certificateauthority/_inputs.py +92 -12
  14. pulumi_gcp/certificateauthority/authority.py +110 -0
  15. pulumi_gcp/certificateauthority/certificate.py +176 -0
  16. pulumi_gcp/certificateauthority/outputs.py +144 -12
  17. pulumi_gcp/composer/__init__.py +1 -0
  18. pulumi_gcp/composer/user_workloads_secret.py +441 -0
  19. pulumi_gcp/compute/__init__.py +1 -0
  20. pulumi_gcp/compute/_inputs.py +121 -58
  21. pulumi_gcp/compute/global_forwarding_rule.py +0 -282
  22. pulumi_gcp/compute/outputs.py +120 -57
  23. pulumi_gcp/compute/region_target_https_proxy.py +257 -0
  24. pulumi_gcp/compute/region_url_map.py +0 -470
  25. pulumi_gcp/compute/security_policy_rule.py +850 -0
  26. pulumi_gcp/dataloss/__init__.py +1 -0
  27. pulumi_gcp/dataloss/_inputs.py +1040 -0
  28. pulumi_gcp/dataloss/outputs.py +1123 -0
  29. pulumi_gcp/dataloss/prevention_discovery_config.py +737 -0
  30. pulumi_gcp/dns/_inputs.py +2 -2
  31. pulumi_gcp/dns/outputs.py +2 -2
  32. pulumi_gcp/dns/record_set.py +2 -2
  33. pulumi_gcp/filestore/get_instance.py +11 -1
  34. pulumi_gcp/filestore/instance.py +101 -0
  35. pulumi_gcp/firebase/_inputs.py +16 -0
  36. pulumi_gcp/firebase/app_check_play_integrity_config.py +20 -0
  37. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +10 -0
  38. pulumi_gcp/firebase/hosting_version.py +44 -0
  39. pulumi_gcp/firebase/outputs.py +12 -0
  40. pulumi_gcp/logging/folder_sink.py +54 -0
  41. pulumi_gcp/logging/organization_sink.py +54 -0
  42. pulumi_gcp/monitoring/_inputs.py +46 -2
  43. pulumi_gcp/monitoring/outputs.py +40 -2
  44. pulumi_gcp/monitoring/uptime_check_config.py +6 -0
  45. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  46. pulumi_gcp/networkconnectivity/internal_range.py +1024 -0
  47. pulumi_gcp/secretmanager/get_secret.py +13 -3
  48. pulumi_gcp/secretmanager/outputs.py +20 -1
  49. pulumi_gcp/secretmanager/secret.py +90 -3
  50. pulumi_gcp/storage/__init__.py +1 -0
  51. pulumi_gcp/storage/get_bucket_objects.py +153 -0
  52. pulumi_gcp/storage/outputs.py +63 -0
  53. {pulumi_gcp-7.21.0a1714543973.dist-info → pulumi_gcp-7.21.0a1714596856.dist-info}/METADATA +1 -1
  54. {pulumi_gcp-7.21.0a1714543973.dist-info → pulumi_gcp-7.21.0a1714596856.dist-info}/RECORD +56 -50
  55. {pulumi_gcp-7.21.0a1714543973.dist-info → pulumi_gcp-7.21.0a1714596856.dist-info}/WHEEL +0 -0
  56. {pulumi_gcp-7.21.0a1714543973.dist-info → pulumi_gcp-7.21.0a1714596856.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__, *,
@@ -975,6 +975,61 @@ class Authority(pulumi.CustomResource):
975
975
  ),
976
976
  ))
977
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
+ ```
978
1033
 
979
1034
  ## Import
980
1035
 
@@ -1257,6 +1312,61 @@ class Authority(pulumi.CustomResource):
1257
1312
  ),
1258
1313
  ))
1259
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
+ ```
1260
1370
 
1261
1371
  ## Import
1262
1372