pulumi-gcp 7.31.0a1720765508__py3-none-any.whl → 7.31.0a1721039192__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 (86) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/applicationintegration/auth_config.py +2 -2
  3. pulumi_gcp/bigquery/reservation_assignment.py +48 -30
  4. pulumi_gcp/certificateauthority/certificate_template.py +2 -2
  5. pulumi_gcp/certificatemanager/_inputs.py +33 -0
  6. pulumi_gcp/certificatemanager/outputs.py +36 -0
  7. pulumi_gcp/certificatemanager/trust_config.py +107 -0
  8. pulumi_gcp/compute/_inputs.py +3 -6
  9. pulumi_gcp/compute/ca_external_account_key.py +2 -2
  10. pulumi_gcp/compute/get_health_check.py +11 -1
  11. pulumi_gcp/compute/global_forwarding_rule.py +2 -4
  12. pulumi_gcp/compute/health_check.py +124 -0
  13. pulumi_gcp/compute/instance.py +14 -14
  14. pulumi_gcp/compute/instance_group_membership.py +2 -2
  15. pulumi_gcp/compute/outputs.py +4 -8
  16. pulumi_gcp/compute/region_network_endpoint.py +2 -2
  17. pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
  18. pulumi_gcp/compute/subnetwork.py +2 -2
  19. pulumi_gcp/config/__init__.pyi +2 -0
  20. pulumi_gcp/config/vars.py +4 -0
  21. pulumi_gcp/container/_inputs.py +3 -3
  22. pulumi_gcp/container/outputs.py +4 -4
  23. pulumi_gcp/containeranalysis/note.py +2 -2
  24. pulumi_gcp/dataloss/_inputs.py +3 -0
  25. pulumi_gcp/dataloss/outputs.py +2 -0
  26. pulumi_gcp/dataloss/prevention_job_trigger.py +90 -0
  27. pulumi_gcp/dataplex/_inputs.py +56 -0
  28. pulumi_gcp/dataplex/datascan.py +12 -0
  29. pulumi_gcp/dataplex/outputs.py +52 -0
  30. pulumi_gcp/filestore/backup.py +2 -2
  31. pulumi_gcp/filestore/instance.py +2 -2
  32. pulumi_gcp/filestore/snapshot.py +2 -2
  33. pulumi_gcp/gkehub/_inputs.py +20 -0
  34. pulumi_gcp/gkehub/outputs.py +12 -0
  35. pulumi_gcp/kms/__init__.py +2 -0
  36. pulumi_gcp/kms/crypto_key.py +7 -7
  37. pulumi_gcp/kms/get_crypto_keys.py +143 -0
  38. pulumi_gcp/kms/get_key_rings.py +119 -0
  39. pulumi_gcp/kms/outputs.py +270 -0
  40. pulumi_gcp/logging/_inputs.py +12 -12
  41. pulumi_gcp/logging/folder_bucket_config.py +6 -6
  42. pulumi_gcp/logging/organization_bucket_config.py +6 -6
  43. pulumi_gcp/logging/outputs.py +8 -8
  44. pulumi_gcp/logging/project_bucket_config.py +6 -6
  45. pulumi_gcp/looker/instance.py +2 -2
  46. pulumi_gcp/monitoring/custom_service.py +2 -2
  47. pulumi_gcp/monitoring/generic_service.py +2 -2
  48. pulumi_gcp/monitoring/notification_channel.py +2 -2
  49. pulumi_gcp/monitoring/slo.py +2 -2
  50. pulumi_gcp/netapp/storage_pool.py +132 -53
  51. pulumi_gcp/netapp/volume.py +60 -4
  52. pulumi_gcp/networksecurity/address_group.py +85 -1
  53. pulumi_gcp/networksecurity/firewall_endpoint.py +2 -2
  54. pulumi_gcp/networksecurity/firewall_endpoint_association.py +2 -2
  55. pulumi_gcp/networksecurity/security_profile_group.py +2 -2
  56. pulumi_gcp/orgpolicy/_inputs.py +40 -10
  57. pulumi_gcp/orgpolicy/outputs.py +28 -8
  58. pulumi_gcp/orgpolicy/policy.py +52 -35
  59. pulumi_gcp/provider.py +20 -0
  60. pulumi_gcp/pubsub/_inputs.py +3 -3
  61. pulumi_gcp/pubsub/outputs.py +4 -4
  62. pulumi_gcp/pulumi-plugin.json +1 -1
  63. pulumi_gcp/securesourcemanager/__init__.py +5 -0
  64. pulumi_gcp/securesourcemanager/_inputs.py +284 -0
  65. pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +177 -0
  66. pulumi_gcp/securesourcemanager/outputs.py +202 -0
  67. pulumi_gcp/securesourcemanager/repository.py +715 -0
  68. pulumi_gcp/securesourcemanager/repository_iam_binding.py +804 -0
  69. pulumi_gcp/securesourcemanager/repository_iam_member.py +804 -0
  70. pulumi_gcp/securesourcemanager/repository_iam_policy.py +643 -0
  71. pulumi_gcp/securitycenter/__init__.py +1 -0
  72. pulumi_gcp/securitycenter/_inputs.py +93 -0
  73. pulumi_gcp/securitycenter/outputs.py +59 -0
  74. pulumi_gcp/securitycenter/v2_organization_notification_config.py +576 -0
  75. pulumi_gcp/securityposture/posture_deployment.py +0 -78
  76. pulumi_gcp/servicenetworking/vpc_service_controls.py +2 -2
  77. pulumi_gcp/vertex/_inputs.py +21 -1
  78. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +222 -0
  79. pulumi_gcp/vertex/outputs.py +15 -1
  80. pulumi_gcp/workstations/_inputs.py +33 -1
  81. pulumi_gcp/workstations/outputs.py +23 -1
  82. pulumi_gcp/workstations/workstation_config.py +18 -0
  83. {pulumi_gcp-7.31.0a1720765508.dist-info → pulumi_gcp-7.31.0a1721039192.dist-info}/METADATA +1 -1
  84. {pulumi_gcp-7.31.0a1720765508.dist-info → pulumi_gcp-7.31.0a1721039192.dist-info}/RECORD +86 -78
  85. {pulumi_gcp-7.31.0a1720765508.dist-info → pulumi_gcp-7.31.0a1721039192.dist-info}/WHEEL +0 -0
  86. {pulumi_gcp-7.31.0a1720765508.dist-info → pulumi_gcp-7.31.0a1721039192.dist-info}/top_level.txt +0 -0
pulumi_gcp/__init__.py CHANGED
@@ -6895,6 +6895,38 @@ _utilities.register(
6895
6895
  "gcp:securesourcemanager/instanceIamPolicy:InstanceIamPolicy": "InstanceIamPolicy"
6896
6896
  }
6897
6897
  },
6898
+ {
6899
+ "pkg": "gcp",
6900
+ "mod": "securesourcemanager/repository",
6901
+ "fqn": "pulumi_gcp.securesourcemanager",
6902
+ "classes": {
6903
+ "gcp:securesourcemanager/repository:Repository": "Repository"
6904
+ }
6905
+ },
6906
+ {
6907
+ "pkg": "gcp",
6908
+ "mod": "securesourcemanager/repositoryIamBinding",
6909
+ "fqn": "pulumi_gcp.securesourcemanager",
6910
+ "classes": {
6911
+ "gcp:securesourcemanager/repositoryIamBinding:RepositoryIamBinding": "RepositoryIamBinding"
6912
+ }
6913
+ },
6914
+ {
6915
+ "pkg": "gcp",
6916
+ "mod": "securesourcemanager/repositoryIamMember",
6917
+ "fqn": "pulumi_gcp.securesourcemanager",
6918
+ "classes": {
6919
+ "gcp:securesourcemanager/repositoryIamMember:RepositoryIamMember": "RepositoryIamMember"
6920
+ }
6921
+ },
6922
+ {
6923
+ "pkg": "gcp",
6924
+ "mod": "securesourcemanager/repositoryIamPolicy",
6925
+ "fqn": "pulumi_gcp.securesourcemanager",
6926
+ "classes": {
6927
+ "gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy": "RepositoryIamPolicy"
6928
+ }
6929
+ },
6898
6930
  {
6899
6931
  "pkg": "gcp",
6900
6932
  "mod": "securitycenter/eventThreatDetectionCustomModule",
@@ -7031,6 +7063,14 @@ _utilities.register(
7031
7063
  "gcp:securitycenter/sourceIamPolicy:SourceIamPolicy": "SourceIamPolicy"
7032
7064
  }
7033
7065
  },
7066
+ {
7067
+ "pkg": "gcp",
7068
+ "mod": "securitycenter/v2OrganizationNotificationConfig",
7069
+ "fqn": "pulumi_gcp.securitycenter",
7070
+ "classes": {
7071
+ "gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig": "V2OrganizationNotificationConfig"
7072
+ }
7073
+ },
7034
7074
  {
7035
7075
  "pkg": "gcp",
7036
7076
  "mod": "securityposture/posture",
@@ -562,8 +562,8 @@ class AuthConfig(pulumi.CustomResource):
562
562
 
563
563
  * [API documentation](https://cloud.google.com/application-integration/docs/reference/rest/v1/projects.locations.authConfigs)
564
564
  * How-to Guides
565
- * [Official Documentation](https://cloud.google.com/application-integration/docs/overview)
566
565
  * [Manage authentication profiles](https://cloud.google.com/application-integration/docs/configure-authentication-profiles)
566
+ * [Official Documentation](https://cloud.google.com/application-integration/docs/overview)
567
567
 
568
568
  ## Example Usage
569
569
 
@@ -634,8 +634,8 @@ class AuthConfig(pulumi.CustomResource):
634
634
 
635
635
  * [API documentation](https://cloud.google.com/application-integration/docs/reference/rest/v1/projects.locations.authConfigs)
636
636
  * How-to Guides
637
- * [Official Documentation](https://cloud.google.com/application-integration/docs/overview)
638
637
  * [Manage authentication profiles](https://cloud.google.com/application-integration/docs/configure-authentication-profiles)
638
+ * [Official Documentation](https://cloud.google.com/application-integration/docs/overview)
639
639
 
640
640
  ## Example Usage
641
641
 
@@ -31,10 +31,10 @@ class ReservationAssignmentArgs:
31
31
  :param pulumi.Input[str] reservation: The reservation for the resource
32
32
 
33
33
 
34
-
35
34
  - - -
36
35
  :param pulumi.Input[str] location: The location for the resource
37
- :param pulumi.Input[str] project: The project for the resource
36
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
37
+ If it is not provided, the provider project is used.
38
38
  """
39
39
  pulumi.set(__self__, "assignee", assignee)
40
40
  pulumi.set(__self__, "job_type", job_type)
@@ -75,7 +75,6 @@ class ReservationAssignmentArgs:
75
75
  The reservation for the resource
76
76
 
77
77
 
78
-
79
78
  - - -
80
79
  """
81
80
  return pulumi.get(self, "reservation")
@@ -100,7 +99,8 @@ class ReservationAssignmentArgs:
100
99
  @pulumi.getter
101
100
  def project(self) -> Optional[pulumi.Input[str]]:
102
101
  """
103
- The project for the resource
102
+ The ID of the project in which the resource belongs.
103
+ If it is not provided, the provider project is used.
104
104
  """
105
105
  return pulumi.get(self, "project")
106
106
 
@@ -125,13 +125,14 @@ class _ReservationAssignmentState:
125
125
  :param pulumi.Input[str] job_type: Types of job, which could be specified when using the reservation. Possible values: JOB_TYPE_UNSPECIFIED, PIPELINE, QUERY
126
126
  :param pulumi.Input[str] location: The location for the resource
127
127
  :param pulumi.Input[str] name: Output only. The resource name of the assignment.
128
- :param pulumi.Input[str] project: The project for the resource
128
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
129
+ If it is not provided, the provider project is used.
129
130
  :param pulumi.Input[str] reservation: The reservation for the resource
130
131
 
131
132
 
132
-
133
133
  - - -
134
- :param pulumi.Input[str] state: Assignment will remain in PENDING state if no active capacity commitment is present. It will become ACTIVE when some capacity commitment becomes active. Possible values: STATE_UNSPECIFIED, PENDING, ACTIVE
134
+ :param pulumi.Input[str] state: Assignment will remain in PENDING state if no active capacity commitment is present. It will become ACTIVE when some capacity commitment becomes active.
135
+ Possible values: STATE_UNSPECIFIED, PENDING, ACTIVE
135
136
  """
136
137
  if assignee is not None:
137
138
  pulumi.set(__self__, "assignee", assignee)
@@ -200,7 +201,8 @@ class _ReservationAssignmentState:
200
201
  @pulumi.getter
201
202
  def project(self) -> Optional[pulumi.Input[str]]:
202
203
  """
203
- The project for the resource
204
+ The ID of the project in which the resource belongs.
205
+ If it is not provided, the provider project is used.
204
206
  """
205
207
  return pulumi.get(self, "project")
206
208
 
@@ -215,7 +217,6 @@ class _ReservationAssignmentState:
215
217
  The reservation for the resource
216
218
 
217
219
 
218
-
219
220
  - - -
220
221
  """
221
222
  return pulumi.get(self, "reservation")
@@ -228,7 +229,8 @@ class _ReservationAssignmentState:
228
229
  @pulumi.getter
229
230
  def state(self) -> Optional[pulumi.Input[str]]:
230
231
  """
231
- Assignment will remain in PENDING state if no active capacity commitment is present. It will become ACTIVE when some capacity commitment becomes active. Possible values: STATE_UNSPECIFIED, PENDING, ACTIVE
232
+ Assignment will remain in PENDING state if no active capacity commitment is present. It will become ACTIVE when some capacity commitment becomes active.
233
+ Possible values: STATE_UNSPECIFIED, PENDING, ACTIVE
232
234
  """
233
235
  return pulumi.get(self, "state")
234
236
 
@@ -249,22 +251,29 @@ class ReservationAssignment(pulumi.CustomResource):
249
251
  reservation: Optional[pulumi.Input[str]] = None,
250
252
  __props__=None):
251
253
  """
252
- The BigqueryReservation Assignment resource
254
+ The BigqueryReservation Assignment resource.
255
+
256
+ To get more information about ReservationAssignment, see:
257
+
258
+ * [API documentation](https://cloud.google.com/bigquery/docs/reference/reservations/rest/v1/projects.locations.reservations.assignments)
259
+ * How-to Guides
260
+ * [Work with reservation assignments](https://cloud.google.com/bigquery/docs/reservations-assignments)
253
261
 
254
262
  ## Example Usage
255
263
 
256
- ### Basic
264
+ ### Bigquery Reservation Assignment Basic
265
+
257
266
  ```python
258
267
  import pulumi
259
268
  import pulumi_gcp as gcp
260
269
 
261
270
  basic = gcp.bigquery.Reservation("basic",
262
- name="tf-test-my-reservation",
271
+ name="example-reservation",
263
272
  project="my-project-name",
264
273
  location="us-central1",
265
274
  slot_capacity=0,
266
275
  ignore_idle_slots=False)
267
- primary = gcp.bigquery.ReservationAssignment("primary",
276
+ assignment = gcp.bigquery.ReservationAssignment("assignment",
268
277
  assignee="projects/my-project-name",
269
278
  job_type="PIPELINE",
270
279
  reservation=basic.id)
@@ -272,7 +281,7 @@ class ReservationAssignment(pulumi.CustomResource):
272
281
 
273
282
  ## Import
274
283
 
275
- Assignment can be imported using any of these accepted formats:
284
+ ReservationAssignment can be imported using any of these accepted formats:
276
285
 
277
286
  * `projects/{{project}}/locations/{{location}}/reservations/{{reservation}}/assignments/{{name}}`
278
287
 
@@ -280,7 +289,7 @@ class ReservationAssignment(pulumi.CustomResource):
280
289
 
281
290
  * `{{location}}/{{reservation}}/{{name}}`
282
291
 
283
- When using the `pulumi import` command, Assignment can be imported using one of the formats above. For example:
292
+ When using the `pulumi import` command, ReservationAssignment can be imported using one of the formats above. For example:
284
293
 
285
294
  ```sh
286
295
  $ pulumi import gcp:bigquery/reservationAssignment:ReservationAssignment default projects/{{project}}/locations/{{location}}/reservations/{{reservation}}/assignments/{{name}}
@@ -299,11 +308,11 @@ class ReservationAssignment(pulumi.CustomResource):
299
308
  :param pulumi.Input[str] assignee: The resource which will use the reservation. E.g. projects/myproject, folders/123, organizations/456.
300
309
  :param pulumi.Input[str] job_type: Types of job, which could be specified when using the reservation. Possible values: JOB_TYPE_UNSPECIFIED, PIPELINE, QUERY
301
310
  :param pulumi.Input[str] location: The location for the resource
302
- :param pulumi.Input[str] project: The project for the resource
311
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
312
+ If it is not provided, the provider project is used.
303
313
  :param pulumi.Input[str] reservation: The reservation for the resource
304
314
 
305
315
 
306
-
307
316
  - - -
308
317
  """
309
318
  ...
@@ -313,22 +322,29 @@ class ReservationAssignment(pulumi.CustomResource):
313
322
  args: ReservationAssignmentArgs,
314
323
  opts: Optional[pulumi.ResourceOptions] = None):
315
324
  """
316
- The BigqueryReservation Assignment resource
325
+ The BigqueryReservation Assignment resource.
326
+
327
+ To get more information about ReservationAssignment, see:
328
+
329
+ * [API documentation](https://cloud.google.com/bigquery/docs/reference/reservations/rest/v1/projects.locations.reservations.assignments)
330
+ * How-to Guides
331
+ * [Work with reservation assignments](https://cloud.google.com/bigquery/docs/reservations-assignments)
317
332
 
318
333
  ## Example Usage
319
334
 
320
- ### Basic
335
+ ### Bigquery Reservation Assignment Basic
336
+
321
337
  ```python
322
338
  import pulumi
323
339
  import pulumi_gcp as gcp
324
340
 
325
341
  basic = gcp.bigquery.Reservation("basic",
326
- name="tf-test-my-reservation",
342
+ name="example-reservation",
327
343
  project="my-project-name",
328
344
  location="us-central1",
329
345
  slot_capacity=0,
330
346
  ignore_idle_slots=False)
331
- primary = gcp.bigquery.ReservationAssignment("primary",
347
+ assignment = gcp.bigquery.ReservationAssignment("assignment",
332
348
  assignee="projects/my-project-name",
333
349
  job_type="PIPELINE",
334
350
  reservation=basic.id)
@@ -336,7 +352,7 @@ class ReservationAssignment(pulumi.CustomResource):
336
352
 
337
353
  ## Import
338
354
 
339
- Assignment can be imported using any of these accepted formats:
355
+ ReservationAssignment can be imported using any of these accepted formats:
340
356
 
341
357
  * `projects/{{project}}/locations/{{location}}/reservations/{{reservation}}/assignments/{{name}}`
342
358
 
@@ -344,7 +360,7 @@ class ReservationAssignment(pulumi.CustomResource):
344
360
 
345
361
  * `{{location}}/{{reservation}}/{{name}}`
346
362
 
347
- When using the `pulumi import` command, Assignment can be imported using one of the formats above. For example:
363
+ When using the `pulumi import` command, ReservationAssignment can be imported using one of the formats above. For example:
348
364
 
349
365
  ```sh
350
366
  $ pulumi import gcp:bigquery/reservationAssignment:ReservationAssignment default projects/{{project}}/locations/{{location}}/reservations/{{reservation}}/assignments/{{name}}
@@ -428,13 +444,14 @@ class ReservationAssignment(pulumi.CustomResource):
428
444
  :param pulumi.Input[str] job_type: Types of job, which could be specified when using the reservation. Possible values: JOB_TYPE_UNSPECIFIED, PIPELINE, QUERY
429
445
  :param pulumi.Input[str] location: The location for the resource
430
446
  :param pulumi.Input[str] name: Output only. The resource name of the assignment.
431
- :param pulumi.Input[str] project: The project for the resource
447
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
448
+ If it is not provided, the provider project is used.
432
449
  :param pulumi.Input[str] reservation: The reservation for the resource
433
450
 
434
451
 
435
-
436
452
  - - -
437
- :param pulumi.Input[str] state: Assignment will remain in PENDING state if no active capacity commitment is present. It will become ACTIVE when some capacity commitment becomes active. Possible values: STATE_UNSPECIFIED, PENDING, ACTIVE
453
+ :param pulumi.Input[str] state: Assignment will remain in PENDING state if no active capacity commitment is present. It will become ACTIVE when some capacity commitment becomes active.
454
+ Possible values: STATE_UNSPECIFIED, PENDING, ACTIVE
438
455
  """
439
456
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
440
457
 
@@ -485,7 +502,8 @@ class ReservationAssignment(pulumi.CustomResource):
485
502
  @pulumi.getter
486
503
  def project(self) -> pulumi.Output[str]:
487
504
  """
488
- The project for the resource
505
+ The ID of the project in which the resource belongs.
506
+ If it is not provided, the provider project is used.
489
507
  """
490
508
  return pulumi.get(self, "project")
491
509
 
@@ -496,7 +514,6 @@ class ReservationAssignment(pulumi.CustomResource):
496
514
  The reservation for the resource
497
515
 
498
516
 
499
-
500
517
  - - -
501
518
  """
502
519
  return pulumi.get(self, "reservation")
@@ -505,7 +522,8 @@ class ReservationAssignment(pulumi.CustomResource):
505
522
  @pulumi.getter
506
523
  def state(self) -> pulumi.Output[str]:
507
524
  """
508
- Assignment will remain in PENDING state if no active capacity commitment is present. It will become ACTIVE when some capacity commitment becomes active. Possible values: STATE_UNSPECIFIED, PENDING, ACTIVE
525
+ Assignment will remain in PENDING state if no active capacity commitment is present. It will become ACTIVE when some capacity commitment becomes active.
526
+ Possible values: STATE_UNSPECIFIED, PENDING, ACTIVE
509
527
  """
510
528
  return pulumi.get(self, "state")
511
529
 
@@ -445,9 +445,9 @@ class CertificateTemplate(pulumi.CustomResource):
445
445
 
446
446
  * [API documentation](https://cloud.google.com/certificate-authority-service/docs/reference/rest)
447
447
  * How-to Guides
448
+ * [Common configurations and Certificate Profiles](https://cloud.google.com/certificate-authority-service/docs/certificate-profile)
448
449
  * [Official Documentation](https://cloud.google.com/certificate-authority-service)
449
450
  * [Understanding Certificate Templates](https://cloud.google.com/certificate-authority-service/docs/certificate-template)
450
- * [Common configurations and Certificate Profiles](https://cloud.google.com/certificate-authority-service/docs/certificate-profile)
451
451
 
452
452
  ## Example Usage
453
453
 
@@ -594,9 +594,9 @@ class CertificateTemplate(pulumi.CustomResource):
594
594
 
595
595
  * [API documentation](https://cloud.google.com/certificate-authority-service/docs/reference/rest)
596
596
  * How-to Guides
597
+ * [Common configurations and Certificate Profiles](https://cloud.google.com/certificate-authority-service/docs/certificate-profile)
597
598
  * [Official Documentation](https://cloud.google.com/certificate-authority-service)
598
599
  * [Understanding Certificate Templates](https://cloud.google.com/certificate-authority-service/docs/certificate-template)
599
- * [Common configurations and Certificate Profiles](https://cloud.google.com/certificate-authority-service/docs/certificate-profile)
600
600
 
601
601
  ## Example Usage
602
602
 
@@ -33,6 +33,8 @@ __all__ = [
33
33
  'CertificateSelfManagedArgsDict',
34
34
  'DnsAuthorizationDnsResourceRecordArgs',
35
35
  'DnsAuthorizationDnsResourceRecordArgsDict',
36
+ 'TrustConfigAllowlistedCertificateArgs',
37
+ 'TrustConfigAllowlistedCertificateArgsDict',
36
38
  'TrustConfigTrustStoreArgs',
37
39
  'TrustConfigTrustStoreArgsDict',
38
40
  'TrustConfigTrustStoreIntermediateCaArgs',
@@ -828,6 +830,37 @@ class DnsAuthorizationDnsResourceRecordArgs:
828
830
  pulumi.set(self, "type", value)
829
831
 
830
832
 
833
+ if not MYPY:
834
+ class TrustConfigAllowlistedCertificateArgsDict(TypedDict):
835
+ pem_certificate: pulumi.Input[str]
836
+ """
837
+ PEM certificate that is allowlisted. The certificate can be up to 5k bytes, and must be a parseable X.509 certificate.
838
+ """
839
+ elif False:
840
+ TrustConfigAllowlistedCertificateArgsDict: TypeAlias = Mapping[str, Any]
841
+
842
+ @pulumi.input_type
843
+ class TrustConfigAllowlistedCertificateArgs:
844
+ def __init__(__self__, *,
845
+ pem_certificate: pulumi.Input[str]):
846
+ """
847
+ :param pulumi.Input[str] pem_certificate: PEM certificate that is allowlisted. The certificate can be up to 5k bytes, and must be a parseable X.509 certificate.
848
+ """
849
+ pulumi.set(__self__, "pem_certificate", pem_certificate)
850
+
851
+ @property
852
+ @pulumi.getter(name="pemCertificate")
853
+ def pem_certificate(self) -> pulumi.Input[str]:
854
+ """
855
+ PEM certificate that is allowlisted. The certificate can be up to 5k bytes, and must be a parseable X.509 certificate.
856
+ """
857
+ return pulumi.get(self, "pem_certificate")
858
+
859
+ @pem_certificate.setter
860
+ def pem_certificate(self, value: pulumi.Input[str]):
861
+ pulumi.set(self, "pem_certificate", value)
862
+
863
+
831
864
  if not MYPY:
832
865
  class TrustConfigTrustStoreArgsDict(TypedDict):
833
866
  intermediate_cas: NotRequired[pulumi.Input[Sequence[pulumi.Input['TrustConfigTrustStoreIntermediateCaArgsDict']]]]
@@ -25,6 +25,7 @@ __all__ = [
25
25
  'CertificateMapGclbTargetIpConfig',
26
26
  'CertificateSelfManaged',
27
27
  'DnsAuthorizationDnsResourceRecord',
28
+ 'TrustConfigAllowlistedCertificate',
28
29
  'TrustConfigTrustStore',
29
30
  'TrustConfigTrustStoreIntermediateCa',
30
31
  'TrustConfigTrustStoreTrustAnchor',
@@ -643,6 +644,41 @@ class DnsAuthorizationDnsResourceRecord(dict):
643
644
  return pulumi.get(self, "type")
644
645
 
645
646
 
647
+ @pulumi.output_type
648
+ class TrustConfigAllowlistedCertificate(dict):
649
+ @staticmethod
650
+ def __key_warning(key: str):
651
+ suggest = None
652
+ if key == "pemCertificate":
653
+ suggest = "pem_certificate"
654
+
655
+ if suggest:
656
+ pulumi.log.warn(f"Key '{key}' not found in TrustConfigAllowlistedCertificate. Access the value via the '{suggest}' property getter instead.")
657
+
658
+ def __getitem__(self, key: str) -> Any:
659
+ TrustConfigAllowlistedCertificate.__key_warning(key)
660
+ return super().__getitem__(key)
661
+
662
+ def get(self, key: str, default = None) -> Any:
663
+ TrustConfigAllowlistedCertificate.__key_warning(key)
664
+ return super().get(key, default)
665
+
666
+ def __init__(__self__, *,
667
+ pem_certificate: str):
668
+ """
669
+ :param str pem_certificate: PEM certificate that is allowlisted. The certificate can be up to 5k bytes, and must be a parseable X.509 certificate.
670
+ """
671
+ pulumi.set(__self__, "pem_certificate", pem_certificate)
672
+
673
+ @property
674
+ @pulumi.getter(name="pemCertificate")
675
+ def pem_certificate(self) -> str:
676
+ """
677
+ PEM certificate that is allowlisted. The certificate can be up to 5k bytes, and must be a parseable X.509 certificate.
678
+ """
679
+ return pulumi.get(self, "pem_certificate")
680
+
681
+
646
682
  @pulumi.output_type
647
683
  class TrustConfigTrustStore(dict):
648
684
  @staticmethod
@@ -22,6 +22,7 @@ __all__ = ['TrustConfigArgs', 'TrustConfig']
22
22
  class TrustConfigArgs:
23
23
  def __init__(__self__, *,
24
24
  location: pulumi.Input[str],
25
+ allowlisted_certificates: Optional[pulumi.Input[Sequence[pulumi.Input['TrustConfigAllowlistedCertificateArgs']]]] = None,
25
26
  description: Optional[pulumi.Input[str]] = None,
26
27
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
27
28
  name: Optional[pulumi.Input[str]] = None,
@@ -33,6 +34,9 @@ class TrustConfigArgs:
33
34
 
34
35
 
35
36
  - - -
37
+ :param pulumi.Input[Sequence[pulumi.Input['TrustConfigAllowlistedCertificateArgs']]] allowlisted_certificates: Allowlisted PEM-encoded certificates. A certificate matching an allowlisted certificate is always considered valid as long as
38
+ the certificate is parseable, proof of private key possession is established, and constraints on the certificate's SAN field are met.
39
+ Structure is documented below.
36
40
  :param pulumi.Input[str] description: One or more paragraphs of text description of a trust config.
37
41
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of label tags associated with the trust config.
38
42
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
@@ -45,6 +49,8 @@ class TrustConfigArgs:
45
49
  Structure is documented below.
46
50
  """
47
51
  pulumi.set(__self__, "location", location)
52
+ if allowlisted_certificates is not None:
53
+ pulumi.set(__self__, "allowlisted_certificates", allowlisted_certificates)
48
54
  if description is not None:
49
55
  pulumi.set(__self__, "description", description)
50
56
  if labels is not None:
@@ -71,6 +77,20 @@ class TrustConfigArgs:
71
77
  def location(self, value: pulumi.Input[str]):
72
78
  pulumi.set(self, "location", value)
73
79
 
80
+ @property
81
+ @pulumi.getter(name="allowlistedCertificates")
82
+ def allowlisted_certificates(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TrustConfigAllowlistedCertificateArgs']]]]:
83
+ """
84
+ Allowlisted PEM-encoded certificates. A certificate matching an allowlisted certificate is always considered valid as long as
85
+ the certificate is parseable, proof of private key possession is established, and constraints on the certificate's SAN field are met.
86
+ Structure is documented below.
87
+ """
88
+ return pulumi.get(self, "allowlisted_certificates")
89
+
90
+ @allowlisted_certificates.setter
91
+ def allowlisted_certificates(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TrustConfigAllowlistedCertificateArgs']]]]):
92
+ pulumi.set(self, "allowlisted_certificates", value)
93
+
74
94
  @property
75
95
  @pulumi.getter
76
96
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -140,6 +160,7 @@ class TrustConfigArgs:
140
160
  @pulumi.input_type
141
161
  class _TrustConfigState:
142
162
  def __init__(__self__, *,
163
+ allowlisted_certificates: Optional[pulumi.Input[Sequence[pulumi.Input['TrustConfigAllowlistedCertificateArgs']]]] = None,
143
164
  create_time: Optional[pulumi.Input[str]] = None,
144
165
  description: Optional[pulumi.Input[str]] = None,
145
166
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -152,6 +173,9 @@ class _TrustConfigState:
152
173
  update_time: Optional[pulumi.Input[str]] = None):
153
174
  """
154
175
  Input properties used for looking up and filtering TrustConfig resources.
176
+ :param pulumi.Input[Sequence[pulumi.Input['TrustConfigAllowlistedCertificateArgs']]] allowlisted_certificates: Allowlisted PEM-encoded certificates. A certificate matching an allowlisted certificate is always considered valid as long as
177
+ the certificate is parseable, proof of private key possession is established, and constraints on the certificate's SAN field are met.
178
+ Structure is documented below.
155
179
  :param pulumi.Input[str] create_time: The creation timestamp of a TrustConfig.
156
180
  A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
157
181
  Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
@@ -176,6 +200,8 @@ class _TrustConfigState:
176
200
  A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
177
201
  Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
178
202
  """
203
+ if allowlisted_certificates is not None:
204
+ pulumi.set(__self__, "allowlisted_certificates", allowlisted_certificates)
179
205
  if create_time is not None:
180
206
  pulumi.set(__self__, "create_time", create_time)
181
207
  if description is not None:
@@ -197,6 +223,20 @@ class _TrustConfigState:
197
223
  if update_time is not None:
198
224
  pulumi.set(__self__, "update_time", update_time)
199
225
 
226
+ @property
227
+ @pulumi.getter(name="allowlistedCertificates")
228
+ def allowlisted_certificates(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TrustConfigAllowlistedCertificateArgs']]]]:
229
+ """
230
+ Allowlisted PEM-encoded certificates. A certificate matching an allowlisted certificate is always considered valid as long as
231
+ the certificate is parseable, proof of private key possession is established, and constraints on the certificate's SAN field are met.
232
+ Structure is documented below.
233
+ """
234
+ return pulumi.get(self, "allowlisted_certificates")
235
+
236
+ @allowlisted_certificates.setter
237
+ def allowlisted_certificates(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TrustConfigAllowlistedCertificateArgs']]]]):
238
+ pulumi.set(self, "allowlisted_certificates", value)
239
+
200
240
  @property
201
241
  @pulumi.getter(name="createTime")
202
242
  def create_time(self) -> Optional[pulumi.Input[str]]:
@@ -336,6 +376,7 @@ class TrustConfig(pulumi.CustomResource):
336
376
  def __init__(__self__,
337
377
  resource_name: str,
338
378
  opts: Optional[pulumi.ResourceOptions] = None,
379
+ allowlisted_certificates: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TrustConfigAllowlistedCertificateArgs', 'TrustConfigAllowlistedCertificateArgsDict']]]]] = None,
339
380
  description: Optional[pulumi.Input[str]] = None,
340
381
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
341
382
  location: Optional[pulumi.Input[str]] = None,
@@ -377,6 +418,29 @@ class TrustConfig(pulumi.CustomResource):
377
418
  "foo": "bar",
378
419
  })
379
420
  ```
421
+ ### Certificate Manager Trust Config Allowlisted Certificates
422
+
423
+ ```python
424
+ import pulumi
425
+ import pulumi_gcp as gcp
426
+ import pulumi_std as std
427
+
428
+ default = gcp.certificatemanager.TrustConfig("default",
429
+ name="trust-config",
430
+ description="A sample trust config resource with allowlisted certificates",
431
+ location="global",
432
+ allowlisted_certificates=[
433
+ {
434
+ "pemCertificate": std.file(input="test-fixtures/cert.pem").result,
435
+ },
436
+ {
437
+ "pemCertificate": std.file(input="test-fixtures/cert2.pem").result,
438
+ },
439
+ ],
440
+ labels={
441
+ "foo": "bar",
442
+ })
443
+ ```
380
444
 
381
445
  ## Import
382
446
 
@@ -404,6 +468,9 @@ class TrustConfig(pulumi.CustomResource):
404
468
 
405
469
  :param str resource_name: The name of the resource.
406
470
  :param pulumi.ResourceOptions opts: Options for the resource.
471
+ :param pulumi.Input[Sequence[pulumi.Input[Union['TrustConfigAllowlistedCertificateArgs', 'TrustConfigAllowlistedCertificateArgsDict']]]] allowlisted_certificates: Allowlisted PEM-encoded certificates. A certificate matching an allowlisted certificate is always considered valid as long as
472
+ the certificate is parseable, proof of private key possession is established, and constraints on the certificate's SAN field are met.
473
+ Structure is documented below.
407
474
  :param pulumi.Input[str] description: One or more paragraphs of text description of a trust config.
408
475
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of label tags associated with the trust config.
409
476
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
@@ -459,6 +526,29 @@ class TrustConfig(pulumi.CustomResource):
459
526
  "foo": "bar",
460
527
  })
461
528
  ```
529
+ ### Certificate Manager Trust Config Allowlisted Certificates
530
+
531
+ ```python
532
+ import pulumi
533
+ import pulumi_gcp as gcp
534
+ import pulumi_std as std
535
+
536
+ default = gcp.certificatemanager.TrustConfig("default",
537
+ name="trust-config",
538
+ description="A sample trust config resource with allowlisted certificates",
539
+ location="global",
540
+ allowlisted_certificates=[
541
+ {
542
+ "pemCertificate": std.file(input="test-fixtures/cert.pem").result,
543
+ },
544
+ {
545
+ "pemCertificate": std.file(input="test-fixtures/cert2.pem").result,
546
+ },
547
+ ],
548
+ labels={
549
+ "foo": "bar",
550
+ })
551
+ ```
462
552
 
463
553
  ## Import
464
554
 
@@ -499,6 +589,7 @@ class TrustConfig(pulumi.CustomResource):
499
589
  def _internal_init(__self__,
500
590
  resource_name: str,
501
591
  opts: Optional[pulumi.ResourceOptions] = None,
592
+ allowlisted_certificates: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TrustConfigAllowlistedCertificateArgs', 'TrustConfigAllowlistedCertificateArgsDict']]]]] = None,
502
593
  description: Optional[pulumi.Input[str]] = None,
503
594
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
504
595
  location: Optional[pulumi.Input[str]] = None,
@@ -514,6 +605,7 @@ class TrustConfig(pulumi.CustomResource):
514
605
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
515
606
  __props__ = TrustConfigArgs.__new__(TrustConfigArgs)
516
607
 
608
+ __props__.__dict__["allowlisted_certificates"] = allowlisted_certificates
517
609
  __props__.__dict__["description"] = description
518
610
  __props__.__dict__["labels"] = labels
519
611
  if location is None and not opts.urn:
@@ -538,6 +630,7 @@ class TrustConfig(pulumi.CustomResource):
538
630
  def get(resource_name: str,
539
631
  id: pulumi.Input[str],
540
632
  opts: Optional[pulumi.ResourceOptions] = None,
633
+ allowlisted_certificates: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TrustConfigAllowlistedCertificateArgs', 'TrustConfigAllowlistedCertificateArgsDict']]]]] = None,
541
634
  create_time: Optional[pulumi.Input[str]] = None,
542
635
  description: Optional[pulumi.Input[str]] = None,
543
636
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -555,6 +648,9 @@ class TrustConfig(pulumi.CustomResource):
555
648
  :param str resource_name: The unique name of the resulting resource.
556
649
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
557
650
  :param pulumi.ResourceOptions opts: Options for the resource.
651
+ :param pulumi.Input[Sequence[pulumi.Input[Union['TrustConfigAllowlistedCertificateArgs', 'TrustConfigAllowlistedCertificateArgsDict']]]] allowlisted_certificates: Allowlisted PEM-encoded certificates. A certificate matching an allowlisted certificate is always considered valid as long as
652
+ the certificate is parseable, proof of private key possession is established, and constraints on the certificate's SAN field are met.
653
+ Structure is documented below.
558
654
  :param pulumi.Input[str] create_time: The creation timestamp of a TrustConfig.
559
655
  A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
560
656
  Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
@@ -583,6 +679,7 @@ class TrustConfig(pulumi.CustomResource):
583
679
 
584
680
  __props__ = _TrustConfigState.__new__(_TrustConfigState)
585
681
 
682
+ __props__.__dict__["allowlisted_certificates"] = allowlisted_certificates
586
683
  __props__.__dict__["create_time"] = create_time
587
684
  __props__.__dict__["description"] = description
588
685
  __props__.__dict__["effective_labels"] = effective_labels
@@ -595,6 +692,16 @@ class TrustConfig(pulumi.CustomResource):
595
692
  __props__.__dict__["update_time"] = update_time
596
693
  return TrustConfig(resource_name, opts=opts, __props__=__props__)
597
694
 
695
+ @property
696
+ @pulumi.getter(name="allowlistedCertificates")
697
+ def allowlisted_certificates(self) -> pulumi.Output[Optional[Sequence['outputs.TrustConfigAllowlistedCertificate']]]:
698
+ """
699
+ Allowlisted PEM-encoded certificates. A certificate matching an allowlisted certificate is always considered valid as long as
700
+ the certificate is parseable, proof of private key possession is established, and constraints on the certificate's SAN field are met.
701
+ Structure is documented below.
702
+ """
703
+ return pulumi.get(self, "allowlisted_certificates")
704
+
598
705
  @property
599
706
  @pulumi.getter(name="createTime")
600
707
  def create_time(self) -> pulumi.Output[str]: