pulumi-gcp 7.31.0a1720850808__py3-none-any.whl → 7.32.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 (103) hide show
  1. pulumi_gcp/__init__.py +51 -0
  2. pulumi_gcp/alloydb/cluster.py +0 -24
  3. pulumi_gcp/applicationintegration/auth_config.py +2 -2
  4. pulumi_gcp/bigquery/_inputs.py +0 -12
  5. pulumi_gcp/bigquery/dataset.py +0 -28
  6. pulumi_gcp/bigquery/dataset_access.py +0 -28
  7. pulumi_gcp/bigquery/outputs.py +0 -24
  8. pulumi_gcp/bigquery/reservation_assignment.py +48 -30
  9. pulumi_gcp/bigtable/authorized_view.py +104 -0
  10. pulumi_gcp/certificateauthority/certificate_template.py +2 -2
  11. pulumi_gcp/certificatemanager/_inputs.py +33 -0
  12. pulumi_gcp/certificatemanager/outputs.py +36 -0
  13. pulumi_gcp/certificatemanager/trust_config.py +107 -0
  14. pulumi_gcp/compute/_inputs.py +3 -6
  15. pulumi_gcp/compute/ca_external_account_key.py +2 -2
  16. pulumi_gcp/compute/get_health_check.py +11 -1
  17. pulumi_gcp/compute/global_address.py +16 -4
  18. pulumi_gcp/compute/global_forwarding_rule.py +2 -4
  19. pulumi_gcp/compute/health_check.py +124 -0
  20. pulumi_gcp/compute/instance.py +14 -14
  21. pulumi_gcp/compute/instance_group_membership.py +2 -2
  22. pulumi_gcp/compute/outputs.py +4 -8
  23. pulumi_gcp/compute/region_network_endpoint.py +2 -2
  24. pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
  25. pulumi_gcp/compute/subnetwork.py +2 -2
  26. pulumi_gcp/compute/target_instance.py +2 -2
  27. pulumi_gcp/config/__init__.pyi +4 -0
  28. pulumi_gcp/config/vars.py +8 -0
  29. pulumi_gcp/container/_inputs.py +3 -3
  30. pulumi_gcp/container/outputs.py +4 -4
  31. pulumi_gcp/containeranalysis/note.py +2 -2
  32. pulumi_gcp/dataloss/_inputs.py +3 -0
  33. pulumi_gcp/dataloss/outputs.py +2 -0
  34. pulumi_gcp/dataloss/prevention_job_trigger.py +90 -0
  35. pulumi_gcp/dataplex/_inputs.py +56 -0
  36. pulumi_gcp/dataplex/datascan.py +12 -0
  37. pulumi_gcp/dataplex/outputs.py +52 -0
  38. pulumi_gcp/filestore/backup.py +2 -2
  39. pulumi_gcp/filestore/instance.py +2 -2
  40. pulumi_gcp/filestore/snapshot.py +2 -2
  41. pulumi_gcp/gkehub/__init__.py +1 -0
  42. pulumi_gcp/gkehub/_inputs.py +20 -0
  43. pulumi_gcp/gkehub/get_membership_binding.py +222 -0
  44. pulumi_gcp/gkehub/outputs.py +31 -0
  45. pulumi_gcp/iap/client.py +7 -7
  46. pulumi_gcp/kms/__init__.py +2 -0
  47. pulumi_gcp/kms/_inputs.py +40 -0
  48. pulumi_gcp/kms/crypto_key.py +110 -7
  49. pulumi_gcp/kms/get_crypto_keys.py +143 -0
  50. pulumi_gcp/kms/get_key_rings.py +119 -0
  51. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  52. pulumi_gcp/kms/outputs.py +382 -0
  53. pulumi_gcp/logging/_inputs.py +12 -12
  54. pulumi_gcp/logging/folder_bucket_config.py +6 -6
  55. pulumi_gcp/logging/organization_bucket_config.py +6 -6
  56. pulumi_gcp/logging/outputs.py +8 -8
  57. pulumi_gcp/logging/project_bucket_config.py +6 -6
  58. pulumi_gcp/looker/instance.py +2 -2
  59. pulumi_gcp/monitoring/custom_service.py +2 -2
  60. pulumi_gcp/monitoring/generic_service.py +2 -2
  61. pulumi_gcp/monitoring/notification_channel.py +2 -2
  62. pulumi_gcp/monitoring/slo.py +2 -2
  63. pulumi_gcp/netapp/storage_pool.py +132 -53
  64. pulumi_gcp/netapp/volume.py +60 -4
  65. pulumi_gcp/networksecurity/address_group.py +85 -1
  66. pulumi_gcp/networksecurity/firewall_endpoint.py +2 -2
  67. pulumi_gcp/networksecurity/firewall_endpoint_association.py +2 -2
  68. pulumi_gcp/networksecurity/security_profile_group.py +2 -2
  69. pulumi_gcp/orgpolicy/_inputs.py +40 -10
  70. pulumi_gcp/orgpolicy/outputs.py +28 -8
  71. pulumi_gcp/orgpolicy/policy.py +52 -35
  72. pulumi_gcp/privilegedaccessmanager/entitlement.py +4 -0
  73. pulumi_gcp/provider.py +40 -0
  74. pulumi_gcp/pubsub/_inputs.py +3 -3
  75. pulumi_gcp/pubsub/outputs.py +4 -4
  76. pulumi_gcp/pulumi-plugin.json +1 -1
  77. pulumi_gcp/securesourcemanager/__init__.py +5 -0
  78. pulumi_gcp/securesourcemanager/_inputs.py +284 -0
  79. pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +177 -0
  80. pulumi_gcp/securesourcemanager/outputs.py +202 -0
  81. pulumi_gcp/securesourcemanager/repository.py +715 -0
  82. pulumi_gcp/securesourcemanager/repository_iam_binding.py +804 -0
  83. pulumi_gcp/securesourcemanager/repository_iam_member.py +804 -0
  84. pulumi_gcp/securesourcemanager/repository_iam_policy.py +643 -0
  85. pulumi_gcp/securitycenter/__init__.py +2 -0
  86. pulumi_gcp/securitycenter/_inputs.py +186 -0
  87. pulumi_gcp/securitycenter/outputs.py +118 -0
  88. pulumi_gcp/securitycenter/project_notification_config.py +518 -0
  89. pulumi_gcp/securitycenter/v2_organization_notification_config.py +576 -0
  90. pulumi_gcp/securityposture/posture_deployment.py +0 -78
  91. pulumi_gcp/servicenetworking/vpc_service_controls.py +2 -2
  92. pulumi_gcp/siteverification/__init__.py +8 -0
  93. pulumi_gcp/siteverification/get_token.py +221 -0
  94. pulumi_gcp/vertex/_inputs.py +21 -1
  95. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +222 -0
  96. pulumi_gcp/vertex/outputs.py +15 -1
  97. pulumi_gcp/workstations/_inputs.py +33 -1
  98. pulumi_gcp/workstations/outputs.py +23 -1
  99. pulumi_gcp/workstations/workstation_config.py +18 -0
  100. {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.32.0.dist-info}/METADATA +1 -1
  101. {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.32.0.dist-info}/RECORD +103 -91
  102. {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.32.0.dist-info}/WHEEL +0 -0
  103. {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.32.0.dist-info}/top_level.txt +0 -0
@@ -43,6 +43,7 @@ __all__ = [
43
43
  'DatascanDataQualitySpecRuleRegexExpectation',
44
44
  'DatascanDataQualitySpecRuleRowConditionExpectation',
45
45
  'DatascanDataQualitySpecRuleSetExpectation',
46
+ 'DatascanDataQualitySpecRuleSqlAssertion',
46
47
  'DatascanDataQualitySpecRuleStatisticRangeExpectation',
47
48
  'DatascanDataQualitySpecRuleTableConditionExpectation',
48
49
  'DatascanDataQualitySpecRuleUniquenessExpectation',
@@ -1248,6 +1249,8 @@ class DatascanDataQualitySpecRule(dict):
1248
1249
  suggest = "row_condition_expectation"
1249
1250
  elif key == "setExpectation":
1250
1251
  suggest = "set_expectation"
1252
+ elif key == "sqlAssertion":
1253
+ suggest = "sql_assertion"
1251
1254
  elif key == "statisticRangeExpectation":
1252
1255
  suggest = "statistic_range_expectation"
1253
1256
  elif key == "tableConditionExpectation":
@@ -1277,6 +1280,7 @@ class DatascanDataQualitySpecRule(dict):
1277
1280
  regex_expectation: Optional['outputs.DatascanDataQualitySpecRuleRegexExpectation'] = None,
1278
1281
  row_condition_expectation: Optional['outputs.DatascanDataQualitySpecRuleRowConditionExpectation'] = None,
1279
1282
  set_expectation: Optional['outputs.DatascanDataQualitySpecRuleSetExpectation'] = None,
1283
+ sql_assertion: Optional['outputs.DatascanDataQualitySpecRuleSqlAssertion'] = None,
1280
1284
  statistic_range_expectation: Optional['outputs.DatascanDataQualitySpecRuleStatisticRangeExpectation'] = None,
1281
1285
  table_condition_expectation: Optional['outputs.DatascanDataQualitySpecRuleTableConditionExpectation'] = None,
1282
1286
  threshold: Optional[float] = None,
@@ -1301,6 +1305,8 @@ class DatascanDataQualitySpecRule(dict):
1301
1305
  Structure is documented below.
1302
1306
  :param 'DatascanDataQualitySpecRuleSetExpectationArgs' set_expectation: ColumnMap rule which evaluates whether each column value is contained by a specified set.
1303
1307
  Structure is documented below.
1308
+ :param 'DatascanDataQualitySpecRuleSqlAssertionArgs' sql_assertion: Table rule which evaluates whether any row matches invalid state.
1309
+ Structure is documented below.
1304
1310
  :param 'DatascanDataQualitySpecRuleStatisticRangeExpectationArgs' statistic_range_expectation: ColumnAggregate rule which evaluates whether the column aggregate statistic lies between a specified range.
1305
1311
  Structure is documented below.
1306
1312
  :param 'DatascanDataQualitySpecRuleTableConditionExpectationArgs' table_condition_expectation: Table rule which evaluates whether the provided expression is true.
@@ -1327,6 +1333,8 @@ class DatascanDataQualitySpecRule(dict):
1327
1333
  pulumi.set(__self__, "row_condition_expectation", row_condition_expectation)
1328
1334
  if set_expectation is not None:
1329
1335
  pulumi.set(__self__, "set_expectation", set_expectation)
1336
+ if sql_assertion is not None:
1337
+ pulumi.set(__self__, "sql_assertion", sql_assertion)
1330
1338
  if statistic_range_expectation is not None:
1331
1339
  pulumi.set(__self__, "statistic_range_expectation", statistic_range_expectation)
1332
1340
  if table_condition_expectation is not None:
@@ -1425,6 +1433,15 @@ class DatascanDataQualitySpecRule(dict):
1425
1433
  """
1426
1434
  return pulumi.get(self, "set_expectation")
1427
1435
 
1436
+ @property
1437
+ @pulumi.getter(name="sqlAssertion")
1438
+ def sql_assertion(self) -> Optional['outputs.DatascanDataQualitySpecRuleSqlAssertion']:
1439
+ """
1440
+ Table rule which evaluates whether any row matches invalid state.
1441
+ Structure is documented below.
1442
+ """
1443
+ return pulumi.get(self, "sql_assertion")
1444
+
1428
1445
  @property
1429
1446
  @pulumi.getter(name="statisticRangeExpectation")
1430
1447
  def statistic_range_expectation(self) -> Optional['outputs.DatascanDataQualitySpecRuleStatisticRangeExpectation']:
@@ -1619,6 +1636,41 @@ class DatascanDataQualitySpecRuleSetExpectation(dict):
1619
1636
  return pulumi.get(self, "values")
1620
1637
 
1621
1638
 
1639
+ @pulumi.output_type
1640
+ class DatascanDataQualitySpecRuleSqlAssertion(dict):
1641
+ @staticmethod
1642
+ def __key_warning(key: str):
1643
+ suggest = None
1644
+ if key == "sqlStatement":
1645
+ suggest = "sql_statement"
1646
+
1647
+ if suggest:
1648
+ pulumi.log.warn(f"Key '{key}' not found in DatascanDataQualitySpecRuleSqlAssertion. Access the value via the '{suggest}' property getter instead.")
1649
+
1650
+ def __getitem__(self, key: str) -> Any:
1651
+ DatascanDataQualitySpecRuleSqlAssertion.__key_warning(key)
1652
+ return super().__getitem__(key)
1653
+
1654
+ def get(self, key: str, default = None) -> Any:
1655
+ DatascanDataQualitySpecRuleSqlAssertion.__key_warning(key)
1656
+ return super().get(key, default)
1657
+
1658
+ def __init__(__self__, *,
1659
+ sql_statement: str):
1660
+ """
1661
+ :param str sql_statement: The SQL statement.
1662
+ """
1663
+ pulumi.set(__self__, "sql_statement", sql_statement)
1664
+
1665
+ @property
1666
+ @pulumi.getter(name="sqlStatement")
1667
+ def sql_statement(self) -> str:
1668
+ """
1669
+ The SQL statement.
1670
+ """
1671
+ return pulumi.get(self, "sql_statement")
1672
+
1673
+
1622
1674
  @pulumi.output_type
1623
1675
  class DatascanDataQualitySpecRuleStatisticRangeExpectation(dict):
1624
1676
  @staticmethod
@@ -471,8 +471,8 @@ class Backup(pulumi.CustomResource):
471
471
 
472
472
  * [API documentation](https://cloud.google.com/filestore/docs/reference/rest/v1/projects.locations.instances.backups)
473
473
  * How-to Guides
474
- * [Official Documentation](https://cloud.google.com/filestore/docs/backups)
475
474
  * [Creating Backups](https://cloud.google.com/filestore/docs/create-backups)
475
+ * [Official Documentation](https://cloud.google.com/filestore/docs/backups)
476
476
 
477
477
  ## Example Usage
478
478
 
@@ -567,8 +567,8 @@ class Backup(pulumi.CustomResource):
567
567
 
568
568
  * [API documentation](https://cloud.google.com/filestore/docs/reference/rest/v1/projects.locations.instances.backups)
569
569
  * How-to Guides
570
- * [Official Documentation](https://cloud.google.com/filestore/docs/backups)
571
570
  * [Creating Backups](https://cloud.google.com/filestore/docs/create-backups)
571
+ * [Official Documentation](https://cloud.google.com/filestore/docs/backups)
572
572
 
573
573
  ## Example Usage
574
574
 
@@ -511,9 +511,9 @@ class Instance(pulumi.CustomResource):
511
511
 
512
512
  * [API documentation](https://cloud.google.com/filestore/docs/reference/rest/v1beta1/projects.locations.instances/create)
513
513
  * How-to Guides
514
+ * [Copying Data In/Out](https://cloud.google.com/filestore/docs/copying-data)
514
515
  * [Official Documentation](https://cloud.google.com/filestore/docs/creating-instances)
515
516
  * [Use with Kubernetes](https://cloud.google.com/filestore/docs/accessing-fileshares)
516
- * [Copying Data In/Out](https://cloud.google.com/filestore/docs/copying-data)
517
517
 
518
518
  ## Example Usage
519
519
 
@@ -676,9 +676,9 @@ class Instance(pulumi.CustomResource):
676
676
 
677
677
  * [API documentation](https://cloud.google.com/filestore/docs/reference/rest/v1beta1/projects.locations.instances/create)
678
678
  * How-to Guides
679
+ * [Copying Data In/Out](https://cloud.google.com/filestore/docs/copying-data)
679
680
  * [Official Documentation](https://cloud.google.com/filestore/docs/creating-instances)
680
681
  * [Use with Kubernetes](https://cloud.google.com/filestore/docs/accessing-fileshares)
681
- * [Copying Data In/Out](https://cloud.google.com/filestore/docs/copying-data)
682
682
 
683
683
  ## Example Usage
684
684
 
@@ -375,8 +375,8 @@ class Snapshot(pulumi.CustomResource):
375
375
 
376
376
  * [API documentation](https://cloud.google.com/filestore/docs/reference/rest/v1/projects.locations.instances.snapshots)
377
377
  * How-to Guides
378
- * [Official Documentation](https://cloud.google.com/filestore/docs/snapshots)
379
378
  * [Creating Snapshots](https://cloud.google.com/filestore/docs/create-snapshots)
379
+ * [Official Documentation](https://cloud.google.com/filestore/docs/snapshots)
380
380
 
381
381
  ## Example Usage
382
382
 
@@ -490,8 +490,8 @@ class Snapshot(pulumi.CustomResource):
490
490
 
491
491
  * [API documentation](https://cloud.google.com/filestore/docs/reference/rest/v1/projects.locations.instances.snapshots)
492
492
  * How-to Guides
493
- * [Official Documentation](https://cloud.google.com/filestore/docs/snapshots)
494
493
  * [Creating Snapshots](https://cloud.google.com/filestore/docs/create-snapshots)
494
+ * [Official Documentation](https://cloud.google.com/filestore/docs/snapshots)
495
495
 
496
496
  ## Example Usage
497
497
 
@@ -12,6 +12,7 @@ from .feature_iam_policy import *
12
12
  from .feature_membership import *
13
13
  from .fleet import *
14
14
  from .get_feature_iam_policy import *
15
+ from .get_membership_binding import *
15
16
  from .get_membership_iam_policy import *
16
17
  from .get_scope_iam_policy import *
17
18
  from .membership import *
@@ -301,6 +301,10 @@ class FeatureFleetDefaultMemberConfigConfigmanagementArgs:
301
301
 
302
302
  if not MYPY:
303
303
  class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgsDict(TypedDict):
304
+ enabled: NotRequired[pulumi.Input[bool]]
305
+ """
306
+ Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
307
+ """
304
308
  git: NotRequired[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgsDict']]
305
309
  """
306
310
  Git repo configuration for the cluster
@@ -325,11 +329,13 @@ elif False:
325
329
  @pulumi.input_type
326
330
  class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
327
331
  def __init__(__self__, *,
332
+ enabled: Optional[pulumi.Input[bool]] = None,
328
333
  git: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs']] = None,
329
334
  oci: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs']] = None,
330
335
  prevent_drift: Optional[pulumi.Input[bool]] = None,
331
336
  source_format: Optional[pulumi.Input[str]] = None):
332
337
  """
338
+ :param pulumi.Input[bool] enabled: Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
333
339
  :param pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs'] git: Git repo configuration for the cluster
334
340
  Structure is documented below.
335
341
  :param pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs'] oci: OCI repo configuration for the cluster
@@ -337,6 +343,8 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
337
343
  :param pulumi.Input[bool] prevent_drift: Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
338
344
  :param pulumi.Input[str] source_format: Specifies whether the Config Sync Repo is in hierarchical or unstructured mode
339
345
  """
346
+ if enabled is not None:
347
+ pulumi.set(__self__, "enabled", enabled)
340
348
  if git is not None:
341
349
  pulumi.set(__self__, "git", git)
342
350
  if oci is not None:
@@ -346,6 +354,18 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
346
354
  if source_format is not None:
347
355
  pulumi.set(__self__, "source_format", source_format)
348
356
 
357
+ @property
358
+ @pulumi.getter
359
+ def enabled(self) -> Optional[pulumi.Input[bool]]:
360
+ """
361
+ Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
362
+ """
363
+ return pulumi.get(self, "enabled")
364
+
365
+ @enabled.setter
366
+ def enabled(self, value: Optional[pulumi.Input[bool]]):
367
+ pulumi.set(self, "enabled", value)
368
+
349
369
  @property
350
370
  @pulumi.getter
351
371
  def git(self) -> Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs']]:
@@ -0,0 +1,222 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+
18
+ __all__ = [
19
+ 'GetMembershipBindingResult',
20
+ 'AwaitableGetMembershipBindingResult',
21
+ 'get_membership_binding',
22
+ 'get_membership_binding_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetMembershipBindingResult:
27
+ """
28
+ A collection of values returned by getMembershipBinding.
29
+ """
30
+ def __init__(__self__, create_time=None, delete_time=None, effective_labels=None, id=None, labels=None, location=None, membership_binding_id=None, membership_id=None, name=None, project=None, pulumi_labels=None, scope=None, states=None, uid=None, update_time=None):
31
+ if create_time and not isinstance(create_time, str):
32
+ raise TypeError("Expected argument 'create_time' to be a str")
33
+ pulumi.set(__self__, "create_time", create_time)
34
+ if delete_time and not isinstance(delete_time, str):
35
+ raise TypeError("Expected argument 'delete_time' to be a str")
36
+ pulumi.set(__self__, "delete_time", delete_time)
37
+ if effective_labels and not isinstance(effective_labels, dict):
38
+ raise TypeError("Expected argument 'effective_labels' to be a dict")
39
+ pulumi.set(__self__, "effective_labels", effective_labels)
40
+ if id and not isinstance(id, str):
41
+ raise TypeError("Expected argument 'id' to be a str")
42
+ pulumi.set(__self__, "id", id)
43
+ if labels and not isinstance(labels, dict):
44
+ raise TypeError("Expected argument 'labels' to be a dict")
45
+ pulumi.set(__self__, "labels", labels)
46
+ if location and not isinstance(location, str):
47
+ raise TypeError("Expected argument 'location' to be a str")
48
+ pulumi.set(__self__, "location", location)
49
+ if membership_binding_id and not isinstance(membership_binding_id, str):
50
+ raise TypeError("Expected argument 'membership_binding_id' to be a str")
51
+ pulumi.set(__self__, "membership_binding_id", membership_binding_id)
52
+ if membership_id and not isinstance(membership_id, str):
53
+ raise TypeError("Expected argument 'membership_id' to be a str")
54
+ pulumi.set(__self__, "membership_id", membership_id)
55
+ if name and not isinstance(name, str):
56
+ raise TypeError("Expected argument 'name' to be a str")
57
+ pulumi.set(__self__, "name", name)
58
+ if project and not isinstance(project, str):
59
+ raise TypeError("Expected argument 'project' to be a str")
60
+ pulumi.set(__self__, "project", project)
61
+ if pulumi_labels and not isinstance(pulumi_labels, dict):
62
+ raise TypeError("Expected argument 'pulumi_labels' to be a dict")
63
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
64
+ if scope and not isinstance(scope, str):
65
+ raise TypeError("Expected argument 'scope' to be a str")
66
+ pulumi.set(__self__, "scope", scope)
67
+ if states and not isinstance(states, list):
68
+ raise TypeError("Expected argument 'states' to be a list")
69
+ pulumi.set(__self__, "states", states)
70
+ if uid and not isinstance(uid, str):
71
+ raise TypeError("Expected argument 'uid' to be a str")
72
+ pulumi.set(__self__, "uid", uid)
73
+ if update_time and not isinstance(update_time, str):
74
+ raise TypeError("Expected argument 'update_time' to be a str")
75
+ pulumi.set(__self__, "update_time", update_time)
76
+
77
+ @property
78
+ @pulumi.getter(name="createTime")
79
+ def create_time(self) -> str:
80
+ return pulumi.get(self, "create_time")
81
+
82
+ @property
83
+ @pulumi.getter(name="deleteTime")
84
+ def delete_time(self) -> str:
85
+ return pulumi.get(self, "delete_time")
86
+
87
+ @property
88
+ @pulumi.getter(name="effectiveLabels")
89
+ def effective_labels(self) -> Mapping[str, str]:
90
+ return pulumi.get(self, "effective_labels")
91
+
92
+ @property
93
+ @pulumi.getter
94
+ def id(self) -> str:
95
+ """
96
+ The provider-assigned unique ID for this managed resource.
97
+ """
98
+ return pulumi.get(self, "id")
99
+
100
+ @property
101
+ @pulumi.getter
102
+ def labels(self) -> Mapping[str, str]:
103
+ return pulumi.get(self, "labels")
104
+
105
+ @property
106
+ @pulumi.getter
107
+ def location(self) -> str:
108
+ return pulumi.get(self, "location")
109
+
110
+ @property
111
+ @pulumi.getter(name="membershipBindingId")
112
+ def membership_binding_id(self) -> str:
113
+ return pulumi.get(self, "membership_binding_id")
114
+
115
+ @property
116
+ @pulumi.getter(name="membershipId")
117
+ def membership_id(self) -> str:
118
+ return pulumi.get(self, "membership_id")
119
+
120
+ @property
121
+ @pulumi.getter
122
+ def name(self) -> str:
123
+ return pulumi.get(self, "name")
124
+
125
+ @property
126
+ @pulumi.getter
127
+ def project(self) -> Optional[str]:
128
+ return pulumi.get(self, "project")
129
+
130
+ @property
131
+ @pulumi.getter(name="pulumiLabels")
132
+ def pulumi_labels(self) -> Mapping[str, str]:
133
+ return pulumi.get(self, "pulumi_labels")
134
+
135
+ @property
136
+ @pulumi.getter
137
+ def scope(self) -> str:
138
+ return pulumi.get(self, "scope")
139
+
140
+ @property
141
+ @pulumi.getter
142
+ def states(self) -> Sequence['outputs.GetMembershipBindingStateResult']:
143
+ return pulumi.get(self, "states")
144
+
145
+ @property
146
+ @pulumi.getter
147
+ def uid(self) -> str:
148
+ return pulumi.get(self, "uid")
149
+
150
+ @property
151
+ @pulumi.getter(name="updateTime")
152
+ def update_time(self) -> str:
153
+ return pulumi.get(self, "update_time")
154
+
155
+
156
+ class AwaitableGetMembershipBindingResult(GetMembershipBindingResult):
157
+ # pylint: disable=using-constant-test
158
+ def __await__(self):
159
+ if False:
160
+ yield self
161
+ return GetMembershipBindingResult(
162
+ create_time=self.create_time,
163
+ delete_time=self.delete_time,
164
+ effective_labels=self.effective_labels,
165
+ id=self.id,
166
+ labels=self.labels,
167
+ location=self.location,
168
+ membership_binding_id=self.membership_binding_id,
169
+ membership_id=self.membership_id,
170
+ name=self.name,
171
+ project=self.project,
172
+ pulumi_labels=self.pulumi_labels,
173
+ scope=self.scope,
174
+ states=self.states,
175
+ uid=self.uid,
176
+ update_time=self.update_time)
177
+
178
+
179
+ def get_membership_binding(location: Optional[str] = None,
180
+ membership_binding_id: Optional[str] = None,
181
+ membership_id: Optional[str] = None,
182
+ project: Optional[str] = None,
183
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetMembershipBindingResult:
184
+ """
185
+ Use this data source to access information about an existing resource.
186
+ """
187
+ __args__ = dict()
188
+ __args__['location'] = location
189
+ __args__['membershipBindingId'] = membership_binding_id
190
+ __args__['membershipId'] = membership_id
191
+ __args__['project'] = project
192
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
193
+ __ret__ = pulumi.runtime.invoke('gcp:gkehub/getMembershipBinding:getMembershipBinding', __args__, opts=opts, typ=GetMembershipBindingResult).value
194
+
195
+ return AwaitableGetMembershipBindingResult(
196
+ create_time=pulumi.get(__ret__, 'create_time'),
197
+ delete_time=pulumi.get(__ret__, 'delete_time'),
198
+ effective_labels=pulumi.get(__ret__, 'effective_labels'),
199
+ id=pulumi.get(__ret__, 'id'),
200
+ labels=pulumi.get(__ret__, 'labels'),
201
+ location=pulumi.get(__ret__, 'location'),
202
+ membership_binding_id=pulumi.get(__ret__, 'membership_binding_id'),
203
+ membership_id=pulumi.get(__ret__, 'membership_id'),
204
+ name=pulumi.get(__ret__, 'name'),
205
+ project=pulumi.get(__ret__, 'project'),
206
+ pulumi_labels=pulumi.get(__ret__, 'pulumi_labels'),
207
+ scope=pulumi.get(__ret__, 'scope'),
208
+ states=pulumi.get(__ret__, 'states'),
209
+ uid=pulumi.get(__ret__, 'uid'),
210
+ update_time=pulumi.get(__ret__, 'update_time'))
211
+
212
+
213
+ @_utilities.lift_output_func(get_membership_binding)
214
+ def get_membership_binding_output(location: Optional[pulumi.Input[str]] = None,
215
+ membership_binding_id: Optional[pulumi.Input[str]] = None,
216
+ membership_id: Optional[pulumi.Input[str]] = None,
217
+ project: Optional[pulumi.Input[Optional[str]]] = None,
218
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetMembershipBindingResult]:
219
+ """
220
+ Use this data source to access information about an existing resource.
221
+ """
222
+ ...
@@ -88,6 +88,7 @@ __all__ = [
88
88
  'ScopeRbacRoleBindingRole',
89
89
  'ScopeRbacRoleBindingState',
90
90
  'ScopeState',
91
+ 'GetMembershipBindingStateResult',
91
92
  ]
92
93
 
93
94
  @pulumi.output_type
@@ -211,11 +212,13 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(dict):
211
212
  return super().get(key, default)
212
213
 
213
214
  def __init__(__self__, *,
215
+ enabled: Optional[bool] = None,
214
216
  git: Optional['outputs.FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit'] = None,
215
217
  oci: Optional['outputs.FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci'] = None,
216
218
  prevent_drift: Optional[bool] = None,
217
219
  source_format: Optional[str] = None):
218
220
  """
221
+ :param bool enabled: Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
219
222
  :param 'FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs' git: Git repo configuration for the cluster
220
223
  Structure is documented below.
221
224
  :param 'FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs' oci: OCI repo configuration for the cluster
@@ -223,6 +226,8 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(dict):
223
226
  :param bool prevent_drift: Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
224
227
  :param str source_format: Specifies whether the Config Sync Repo is in hierarchical or unstructured mode
225
228
  """
229
+ if enabled is not None:
230
+ pulumi.set(__self__, "enabled", enabled)
226
231
  if git is not None:
227
232
  pulumi.set(__self__, "git", git)
228
233
  if oci is not None:
@@ -232,6 +237,14 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(dict):
232
237
  if source_format is not None:
233
238
  pulumi.set(__self__, "source_format", source_format)
234
239
 
240
+ @property
241
+ @pulumi.getter
242
+ def enabled(self) -> Optional[bool]:
243
+ """
244
+ Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
245
+ """
246
+ return pulumi.get(self, "enabled")
247
+
235
248
  @property
236
249
  @pulumi.getter
237
250
  def git(self) -> Optional['outputs.FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit']:
@@ -3576,3 +3589,21 @@ class ScopeState(dict):
3576
3589
  return pulumi.get(self, "code")
3577
3590
 
3578
3591
 
3592
+ @pulumi.output_type
3593
+ class GetMembershipBindingStateResult(dict):
3594
+ def __init__(__self__, *,
3595
+ code: str):
3596
+ """
3597
+ :param str code: Code describes the state of a MembershipBinding resource.
3598
+ """
3599
+ pulumi.set(__self__, "code", code)
3600
+
3601
+ @property
3602
+ @pulumi.getter
3603
+ def code(self) -> str:
3604
+ """
3605
+ Code describes the state of a MembershipBinding resource.
3606
+ """
3607
+ return pulumi.get(self, "code")
3608
+
3609
+
pulumi_gcp/iap/client.py CHANGED
@@ -25,7 +25,7 @@ class ClientArgs:
25
25
  The set of arguments for constructing a Client resource.
26
26
  :param pulumi.Input[str] brand: Identifier of the brand to which this client
27
27
  is attached to. The format is
28
- `projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}`.
28
+ `projects/{project_number}/brands/{brand_id}`.
29
29
 
30
30
 
31
31
  - - -
@@ -40,7 +40,7 @@ class ClientArgs:
40
40
  """
41
41
  Identifier of the brand to which this client
42
42
  is attached to. The format is
43
- `projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}`.
43
+ `projects/{project_number}/brands/{brand_id}`.
44
44
 
45
45
 
46
46
  - - -
@@ -75,7 +75,7 @@ class _ClientState:
75
75
  Input properties used for looking up and filtering Client resources.
76
76
  :param pulumi.Input[str] brand: Identifier of the brand to which this client
77
77
  is attached to. The format is
78
- `projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}`.
78
+ `projects/{project_number}/brands/{brand_id}`.
79
79
 
80
80
 
81
81
  - - -
@@ -99,7 +99,7 @@ class _ClientState:
99
99
  """
100
100
  Identifier of the brand to which this client
101
101
  is attached to. The format is
102
- `projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}`.
102
+ `projects/{project_number}/brands/{brand_id}`.
103
103
 
104
104
 
105
105
  - - -
@@ -215,7 +215,7 @@ class Client(pulumi.CustomResource):
215
215
  :param pulumi.ResourceOptions opts: Options for the resource.
216
216
  :param pulumi.Input[str] brand: Identifier of the brand to which this client
217
217
  is attached to. The format is
218
- `projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}`.
218
+ `projects/{project_number}/brands/{brand_id}`.
219
219
 
220
220
 
221
221
  - - -
@@ -341,7 +341,7 @@ class Client(pulumi.CustomResource):
341
341
  :param pulumi.ResourceOptions opts: Options for the resource.
342
342
  :param pulumi.Input[str] brand: Identifier of the brand to which this client
343
343
  is attached to. The format is
344
- `projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}`.
344
+ `projects/{project_number}/brands/{brand_id}`.
345
345
 
346
346
 
347
347
  - - -
@@ -366,7 +366,7 @@ class Client(pulumi.CustomResource):
366
366
  """
367
367
  Identifier of the brand to which this client
368
368
  is attached to. The format is
369
- `projects/{project_number}/brands/{brand_id}/identityAwareProxyClients/{client_id}`.
369
+ `projects/{project_number}/brands/{brand_id}`.
370
370
 
371
371
 
372
372
  - - -
@@ -13,7 +13,9 @@ from .crypto_key_iam_policy import *
13
13
  from .crypto_key_version import *
14
14
  from .ekm_connection import *
15
15
  from .get_crypto_key_iam_policy import *
16
+ from .get_crypto_keys import *
16
17
  from .get_key_ring_iam_policy import *
18
+ from .get_key_rings import *
17
19
  from .get_kms_crypto_key import *
18
20
  from .get_kms_crypto_key_version import *
19
21
  from .get_kms_key_ring import *
pulumi_gcp/kms/_inputs.py CHANGED
@@ -19,6 +19,8 @@ __all__ = [
19
19
  'CryptoKeyIAMBindingConditionArgsDict',
20
20
  'CryptoKeyIAMMemberConditionArgs',
21
21
  'CryptoKeyIAMMemberConditionArgsDict',
22
+ 'CryptoKeyKeyAccessJustificationsPolicyArgs',
23
+ 'CryptoKeyKeyAccessJustificationsPolicyArgsDict',
22
24
  'CryptoKeyPrimaryArgs',
23
25
  'CryptoKeyPrimaryArgsDict',
24
26
  'CryptoKeyVersionAttestationArgs',
@@ -211,6 +213,44 @@ class CryptoKeyIAMMemberConditionArgs:
211
213
  pulumi.set(self, "description", value)
212
214
 
213
215
 
216
+ if not MYPY:
217
+ class CryptoKeyKeyAccessJustificationsPolicyArgsDict(TypedDict):
218
+ allowed_access_reasons: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
219
+ """
220
+ The list of allowed reasons for access to this CryptoKey. Zero allowed
221
+ access reasons means all encrypt, decrypt, and sign operations for
222
+ this CryptoKey will fail.
223
+ """
224
+ elif False:
225
+ CryptoKeyKeyAccessJustificationsPolicyArgsDict: TypeAlias = Mapping[str, Any]
226
+
227
+ @pulumi.input_type
228
+ class CryptoKeyKeyAccessJustificationsPolicyArgs:
229
+ def __init__(__self__, *,
230
+ allowed_access_reasons: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
231
+ """
232
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_access_reasons: The list of allowed reasons for access to this CryptoKey. Zero allowed
233
+ access reasons means all encrypt, decrypt, and sign operations for
234
+ this CryptoKey will fail.
235
+ """
236
+ if allowed_access_reasons is not None:
237
+ pulumi.set(__self__, "allowed_access_reasons", allowed_access_reasons)
238
+
239
+ @property
240
+ @pulumi.getter(name="allowedAccessReasons")
241
+ def allowed_access_reasons(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
242
+ """
243
+ The list of allowed reasons for access to this CryptoKey. Zero allowed
244
+ access reasons means all encrypt, decrypt, and sign operations for
245
+ this CryptoKey will fail.
246
+ """
247
+ return pulumi.get(self, "allowed_access_reasons")
248
+
249
+ @allowed_access_reasons.setter
250
+ def allowed_access_reasons(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
251
+ pulumi.set(self, "allowed_access_reasons", value)
252
+
253
+
214
254
  if not MYPY:
215
255
  class CryptoKeyPrimaryArgsDict(TypedDict):
216
256
  name: NotRequired[pulumi.Input[str]]