pulumi-gcp 8.10.2a1733856242__py3-none-any.whl → 8.11.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 (142) hide show
  1. pulumi_gcp/__init__.py +91 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +29 -0
  3. pulumi_gcp/accesscontextmanager/outputs.py +18 -0
  4. pulumi_gcp/accesscontextmanager/service_perimeter.py +36 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +6 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +6 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +6 -0
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +6 -0
  9. pulumi_gcp/apigee/app_group.py +7 -7
  10. pulumi_gcp/applicationintegration/client.py +8 -6
  11. pulumi_gcp/artifactregistry/_inputs.py +24 -15
  12. pulumi_gcp/artifactregistry/outputs.py +32 -20
  13. pulumi_gcp/artifactregistry/repository.py +128 -0
  14. pulumi_gcp/assuredworkloads/workload.py +7 -7
  15. pulumi_gcp/backupdisasterrecovery/__init__.py +2 -0
  16. pulumi_gcp/backupdisasterrecovery/backup_plan.py +2 -2
  17. pulumi_gcp/backupdisasterrecovery/backup_vault.py +12 -8
  18. pulumi_gcp/backupdisasterrecovery/get_backup.py +153 -0
  19. pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +415 -0
  20. pulumi_gcp/backupdisasterrecovery/outputs.py +63 -0
  21. pulumi_gcp/bigquery/app_profile.py +75 -0
  22. pulumi_gcp/billing/_inputs.py +6 -6
  23. pulumi_gcp/billing/outputs.py +4 -4
  24. pulumi_gcp/certificateauthority/_inputs.py +9 -9
  25. pulumi_gcp/certificateauthority/outputs.py +8 -8
  26. pulumi_gcp/cloudbuild/_inputs.py +53 -0
  27. pulumi_gcp/cloudbuild/outputs.py +50 -0
  28. pulumi_gcp/cloudbuild/worker_pool.py +47 -0
  29. pulumi_gcp/clouddeploy/_inputs.py +254 -0
  30. pulumi_gcp/clouddeploy/outputs.py +211 -0
  31. pulumi_gcp/clouddeploy/target.py +47 -0
  32. pulumi_gcp/cloudfunctionsv2/_inputs.py +6 -6
  33. pulumi_gcp/cloudfunctionsv2/outputs.py +8 -8
  34. pulumi_gcp/cloudrunv2/job.py +4 -4
  35. pulumi_gcp/cloudrunv2/service.py +4 -4
  36. pulumi_gcp/composer/get_user_workloads_config_map.py +4 -0
  37. pulumi_gcp/composer/get_user_workloads_secret.py +4 -0
  38. pulumi_gcp/composer/user_workloads_config_map.py +14 -0
  39. pulumi_gcp/composer/user_workloads_secret.py +6 -0
  40. pulumi_gcp/compute/_inputs.py +566 -25
  41. pulumi_gcp/compute/disk.py +21 -7
  42. pulumi_gcp/compute/firewall_policy_rule.py +12 -0
  43. pulumi_gcp/compute/get_forwarding_rules.py +2 -2
  44. pulumi_gcp/compute/get_global_forwarding_rule.py +12 -1
  45. pulumi_gcp/compute/get_instance_group_manager.py +12 -1
  46. pulumi_gcp/compute/get_network.py +35 -1
  47. pulumi_gcp/compute/get_region_instance_group_manager.py +12 -1
  48. pulumi_gcp/compute/get_region_network_endpoint_group.py +12 -1
  49. pulumi_gcp/compute/global_forwarding_rule.py +28 -0
  50. pulumi_gcp/compute/instance_group_manager.py +28 -0
  51. pulumi_gcp/compute/network.py +75 -0
  52. pulumi_gcp/compute/outputs.py +655 -26
  53. pulumi_gcp/compute/region_health_check.py +28 -0
  54. pulumi_gcp/compute/region_instance_group_manager.py +28 -0
  55. pulumi_gcp/compute/region_network_endpoint.py +28 -0
  56. pulumi_gcp/compute/region_network_endpoint_group.py +70 -2
  57. pulumi_gcp/compute/subnetwork.py +30 -2
  58. pulumi_gcp/compute/url_map.py +7 -7
  59. pulumi_gcp/config/__init__.pyi +4 -0
  60. pulumi_gcp/config/vars.py +8 -0
  61. pulumi_gcp/container/_inputs.py +201 -3
  62. pulumi_gcp/container/cluster.py +68 -14
  63. pulumi_gcp/container/get_cluster.py +12 -1
  64. pulumi_gcp/container/outputs.py +249 -3
  65. pulumi_gcp/dataproc/_inputs.py +209 -1
  66. pulumi_gcp/dataproc/batch.py +76 -0
  67. pulumi_gcp/dataproc/outputs.py +169 -3
  68. pulumi_gcp/diagflow/_inputs.py +3 -3
  69. pulumi_gcp/diagflow/outputs.py +2 -2
  70. pulumi_gcp/discoveryengine/search_engine.py +7 -7
  71. pulumi_gcp/firebaserules/release.py +76 -0
  72. pulumi_gcp/firestore/field.py +4 -4
  73. pulumi_gcp/gemini/__init__.py +15 -0
  74. pulumi_gcp/gemini/_inputs.py +183 -0
  75. pulumi_gcp/gemini/code_repository_index.py +659 -0
  76. pulumi_gcp/gemini/get_repository_group_iam_policy.py +171 -0
  77. pulumi_gcp/gemini/outputs.py +130 -0
  78. pulumi_gcp/gemini/repository_group.py +586 -0
  79. pulumi_gcp/gemini/repository_group_iam_binding.py +604 -0
  80. pulumi_gcp/gemini/repository_group_iam_member.py +604 -0
  81. pulumi_gcp/gemini/repository_group_iam_policy.py +443 -0
  82. pulumi_gcp/gkehub/_inputs.py +30 -10
  83. pulumi_gcp/gkehub/membership_binding.py +6 -6
  84. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  85. pulumi_gcp/gkehub/namespace.py +4 -4
  86. pulumi_gcp/gkehub/outputs.py +21 -7
  87. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  88. pulumi_gcp/iam/__init__.py +1 -0
  89. pulumi_gcp/iam/_inputs.py +137 -0
  90. pulumi_gcp/iam/folders_policy_binding.py +16 -0
  91. pulumi_gcp/iam/organizations_policy_binding.py +16 -0
  92. pulumi_gcp/iam/outputs.py +99 -0
  93. pulumi_gcp/iam/principal_access_boundary_policy.py +16 -0
  94. pulumi_gcp/iam/projects_policy_binding.py +917 -0
  95. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  96. pulumi_gcp/integrationconnectors/_inputs.py +15 -15
  97. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  98. pulumi_gcp/integrationconnectors/outputs.py +10 -10
  99. pulumi_gcp/monitoring/_inputs.py +13 -6
  100. pulumi_gcp/monitoring/outputs.py +10 -4
  101. pulumi_gcp/netapp/_inputs.py +3 -3
  102. pulumi_gcp/netapp/active_directory.py +7 -7
  103. pulumi_gcp/netapp/outputs.py +2 -2
  104. pulumi_gcp/netapp/volume.py +11 -11
  105. pulumi_gcp/networkconnectivity/spoke.py +10 -10
  106. pulumi_gcp/networksecurity/__init__.py +4 -0
  107. pulumi_gcp/networksecurity/_inputs.py +115 -0
  108. pulumi_gcp/networksecurity/mirroring_deployment.py +848 -0
  109. pulumi_gcp/networksecurity/mirroring_deployment_group.py +752 -0
  110. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +737 -0
  111. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +840 -0
  112. pulumi_gcp/networksecurity/outputs.py +70 -0
  113. pulumi_gcp/oracledatabase/autonomous_database.py +42 -4
  114. pulumi_gcp/oracledatabase/cloud_exadata_infrastructure.py +42 -4
  115. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +50 -8
  116. pulumi_gcp/oracledatabase/get_autonomous_database.py +12 -1
  117. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructure.py +12 -1
  118. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +12 -1
  119. pulumi_gcp/oracledatabase/outputs.py +21 -0
  120. pulumi_gcp/orgpolicy/policy.py +2 -2
  121. pulumi_gcp/parallelstore/instance.py +4 -0
  122. pulumi_gcp/provider.py +20 -0
  123. pulumi_gcp/pubsub/subscription.py +6 -6
  124. pulumi_gcp/pulumi-plugin.json +1 -1
  125. pulumi_gcp/redis/_inputs.py +435 -3
  126. pulumi_gcp/redis/cluster.py +287 -16
  127. pulumi_gcp/redis/outputs.py +304 -2
  128. pulumi_gcp/serviceaccount/get_account_id_token.py +2 -2
  129. pulumi_gcp/serviceaccount/get_account_key.py +2 -2
  130. pulumi_gcp/storage/get_bucket.py +2 -2
  131. pulumi_gcp/storage/get_bucket_object_content.py +2 -2
  132. pulumi_gcp/tpu/__init__.py +1 -0
  133. pulumi_gcp/tpu/_inputs.py +188 -6
  134. pulumi_gcp/tpu/outputs.py +164 -4
  135. pulumi_gcp/tpu/v2_queued_resource.py +434 -0
  136. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  137. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  138. pulumi_gcp/vertex/ai_index_endpoint.py +2 -2
  139. {pulumi_gcp-8.10.2a1733856242.dist-info → pulumi_gcp-8.11.0.dist-info}/METADATA +3 -3
  140. {pulumi_gcp-8.10.2a1733856242.dist-info → pulumi_gcp-8.11.0.dist-info}/RECORD +142 -125
  141. {pulumi_gcp-8.10.2a1733856242.dist-info → pulumi_gcp-8.11.0.dist-info}/WHEEL +0 -0
  142. {pulumi_gcp-8.10.2a1733856242.dist-info → pulumi_gcp-8.11.0.dist-info}/top_level.txt +0 -0
@@ -428,9 +428,9 @@ class Namespace(pulumi.CustomResource):
428
428
  import pulumi
429
429
  import pulumi_gcp as gcp
430
430
 
431
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_2605")
431
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_34535")
432
432
  namespace = gcp.gkehub.Namespace("namespace",
433
- scope_namespace_id="tf-test-namespace_34535",
433
+ scope_namespace_id="tf-test-namespace_22375",
434
434
  scope_id=scope.scope_id,
435
435
  scope=scope.name,
436
436
  namespace_labels={
@@ -513,9 +513,9 @@ class Namespace(pulumi.CustomResource):
513
513
  import pulumi
514
514
  import pulumi_gcp as gcp
515
515
 
516
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_2605")
516
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_34535")
517
517
  namespace = gcp.gkehub.Namespace("namespace",
518
- scope_namespace_id="tf-test-namespace_34535",
518
+ scope_namespace_id="tf-test-namespace_22375",
519
519
  scope_id=scope.scope_id,
520
520
  scope=scope.name,
521
521
  namespace_labels={
@@ -1146,7 +1146,7 @@ class FeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPo
1146
1146
  installation: Optional[str] = None):
1147
1147
  """
1148
1148
  :param str installation: Configures the manner in which the template library is installed on the cluster.
1149
- Possible values are: `INSTALATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1149
+ Possible values are: `INSTALLATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1150
1150
  """
1151
1151
  if installation is not None:
1152
1152
  pulumi.set(__self__, "installation", installation)
@@ -1156,7 +1156,7 @@ class FeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPo
1156
1156
  def installation(self) -> Optional[str]:
1157
1157
  """
1158
1158
  Configures the manner in which the template library is installed on the cluster.
1159
- Possible values are: `INSTALATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1159
+ Possible values are: `INSTALLATION_UNSPECIFIED`, `NOT_INSTALLED`, `ALL`.
1160
1160
  """
1161
1161
  return pulumi.get(self, "installation")
1162
1162
 
@@ -1361,6 +1361,8 @@ class FeatureMembershipConfigmanagementConfigSync(dict):
1361
1361
  suggest = "prevent_drift"
1362
1362
  elif key == "sourceFormat":
1363
1363
  suggest = "source_format"
1364
+ elif key == "stopSyncing":
1365
+ suggest = "stop_syncing"
1364
1366
 
1365
1367
  if suggest:
1366
1368
  pulumi.log.warn(f"Key '{key}' not found in FeatureMembershipConfigmanagementConfigSync. Access the value via the '{suggest}' property getter instead.")
@@ -1379,16 +1381,18 @@ class FeatureMembershipConfigmanagementConfigSync(dict):
1379
1381
  metrics_gcp_service_account_email: Optional[str] = None,
1380
1382
  oci: Optional['outputs.FeatureMembershipConfigmanagementConfigSyncOci'] = None,
1381
1383
  prevent_drift: Optional[bool] = None,
1382
- source_format: Optional[str] = None):
1384
+ source_format: Optional[str] = None,
1385
+ stop_syncing: Optional[bool] = None):
1383
1386
  """
1384
1387
  :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.
1385
1388
  :param 'FeatureMembershipConfigmanagementConfigSyncGitArgs' git: (Optional) Structure is documented below.
1386
- :param str metrics_gcp_service_account_email: The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
1389
+ :param str metrics_gcp_service_account_email: Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
1387
1390
  :param 'FeatureMembershipConfigmanagementConfigSyncOciArgs' oci: (Optional) Supported from Config Sync versions 1.12.0 onwards. Structure is documented below.
1388
1391
 
1389
1392
  Use either `git` or `oci` config option.
1390
- :param bool prevent_drift: Supported from Config Sync versions 1.10.0 onwards. 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.
1393
+ :param bool prevent_drift: Supported from Config Sync versions 1.10.0 onwards. 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.
1391
1394
  :param str source_format: Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.
1395
+ :param bool stop_syncing: Set to `true` to stop syncing configurations for a single cluster. This field is only available on clusters using Config Sync [auto-upgrades](http://cloud/kubernetes-engine/enterprise/config-sync/docs/how-to/upgrade-config-sync#auto-upgrade-config) or on Config Sync version 1.20.0 or later. Defaults: `false`.
1392
1396
  """
1393
1397
  if enabled is not None:
1394
1398
  pulumi.set(__self__, "enabled", enabled)
@@ -1402,6 +1406,8 @@ class FeatureMembershipConfigmanagementConfigSync(dict):
1402
1406
  pulumi.set(__self__, "prevent_drift", prevent_drift)
1403
1407
  if source_format is not None:
1404
1408
  pulumi.set(__self__, "source_format", source_format)
1409
+ if stop_syncing is not None:
1410
+ pulumi.set(__self__, "stop_syncing", stop_syncing)
1405
1411
 
1406
1412
  @property
1407
1413
  @pulumi.getter
@@ -1423,7 +1429,7 @@ class FeatureMembershipConfigmanagementConfigSync(dict):
1423
1429
  @pulumi.getter(name="metricsGcpServiceAccountEmail")
1424
1430
  def metrics_gcp_service_account_email(self) -> Optional[str]:
1425
1431
  """
1426
- The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
1432
+ Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
1427
1433
  """
1428
1434
  return pulumi.get(self, "metrics_gcp_service_account_email")
1429
1435
 
@@ -1441,7 +1447,7 @@ class FeatureMembershipConfigmanagementConfigSync(dict):
1441
1447
  @pulumi.getter(name="preventDrift")
1442
1448
  def prevent_drift(self) -> Optional[bool]:
1443
1449
  """
1444
- Supported from Config Sync versions 1.10.0 onwards. 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.
1450
+ Supported from Config Sync versions 1.10.0 onwards. 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.
1445
1451
  """
1446
1452
  return pulumi.get(self, "prevent_drift")
1447
1453
 
@@ -1453,6 +1459,14 @@ class FeatureMembershipConfigmanagementConfigSync(dict):
1453
1459
  """
1454
1460
  return pulumi.get(self, "source_format")
1455
1461
 
1462
+ @property
1463
+ @pulumi.getter(name="stopSyncing")
1464
+ def stop_syncing(self) -> Optional[bool]:
1465
+ """
1466
+ Set to `true` to stop syncing configurations for a single cluster. This field is only available on clusters using Config Sync [auto-upgrades](http://cloud/kubernetes-engine/enterprise/config-sync/docs/how-to/upgrade-config-sync#auto-upgrade-config) or on Config Sync version 1.20.0 or later. Defaults: `false`.
1467
+ """
1468
+ return pulumi.get(self, "stop_syncing")
1469
+
1456
1470
 
1457
1471
  @pulumi.output_type
1458
1472
  class FeatureMembershipConfigmanagementConfigSyncGit(dict):
@@ -429,9 +429,9 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
429
429
  import pulumi
430
430
  import pulumi_gcp as gcp
431
431
 
432
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_22375")
432
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_29439")
433
433
  scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
434
- scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_29439",
434
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_87786",
435
435
  scope_id=scope.scope_id,
436
436
  user="test-email@gmail.com",
437
437
  role={
@@ -504,9 +504,9 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
504
504
  import pulumi
505
505
  import pulumi_gcp as gcp
506
506
 
507
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_22375")
507
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_29439")
508
508
  scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
509
- scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_29439",
509
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_87786",
510
510
  scope_id=scope.scope_id,
511
511
  user="test-email@gmail.com",
512
512
  role={
@@ -14,6 +14,7 @@ from .get_workload_identity_pool import *
14
14
  from .get_workload_identity_pool_provider import *
15
15
  from .organizations_policy_binding import *
16
16
  from .principal_access_boundary_policy import *
17
+ from .projects_policy_binding import *
17
18
  from .workforce_pool import *
18
19
  from .workforce_pool_provider import *
19
20
  from .workload_identity_pool import *
pulumi_gcp/iam/_inputs.py CHANGED
@@ -39,6 +39,10 @@ __all__ = [
39
39
  'PrincipalAccessBoundaryPolicyDetailsArgsDict',
40
40
  'PrincipalAccessBoundaryPolicyDetailsRuleArgs',
41
41
  'PrincipalAccessBoundaryPolicyDetailsRuleArgsDict',
42
+ 'ProjectsPolicyBindingConditionArgs',
43
+ 'ProjectsPolicyBindingConditionArgsDict',
44
+ 'ProjectsPolicyBindingTargetArgs',
45
+ 'ProjectsPolicyBindingTargetArgsDict',
42
46
  'WorkforcePoolAccessRestrictionsArgs',
43
47
  'WorkforcePoolAccessRestrictionsArgsDict',
44
48
  'WorkforcePoolAccessRestrictionsAllowedServiceArgs',
@@ -1026,6 +1030,139 @@ class PrincipalAccessBoundaryPolicyDetailsRuleArgs:
1026
1030
  pulumi.set(self, "description", value)
1027
1031
 
1028
1032
 
1033
+ if not MYPY:
1034
+ class ProjectsPolicyBindingConditionArgsDict(TypedDict):
1035
+ description: NotRequired[pulumi.Input[str]]
1036
+ """
1037
+ Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
1038
+ """
1039
+ expression: NotRequired[pulumi.Input[str]]
1040
+ """
1041
+ Textual representation of an expression in Common Expression Language syntax.
1042
+ """
1043
+ location: NotRequired[pulumi.Input[str]]
1044
+ """
1045
+ Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
1046
+ """
1047
+ title: NotRequired[pulumi.Input[str]]
1048
+ """
1049
+ Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
1050
+ """
1051
+ elif False:
1052
+ ProjectsPolicyBindingConditionArgsDict: TypeAlias = Mapping[str, Any]
1053
+
1054
+ @pulumi.input_type
1055
+ class ProjectsPolicyBindingConditionArgs:
1056
+ def __init__(__self__, *,
1057
+ description: Optional[pulumi.Input[str]] = None,
1058
+ expression: Optional[pulumi.Input[str]] = None,
1059
+ location: Optional[pulumi.Input[str]] = None,
1060
+ title: Optional[pulumi.Input[str]] = None):
1061
+ """
1062
+ :param pulumi.Input[str] description: Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
1063
+ :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax.
1064
+ :param pulumi.Input[str] location: Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
1065
+ :param pulumi.Input[str] title: Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
1066
+ """
1067
+ if description is not None:
1068
+ pulumi.set(__self__, "description", description)
1069
+ if expression is not None:
1070
+ pulumi.set(__self__, "expression", expression)
1071
+ if location is not None:
1072
+ pulumi.set(__self__, "location", location)
1073
+ if title is not None:
1074
+ pulumi.set(__self__, "title", title)
1075
+
1076
+ @property
1077
+ @pulumi.getter
1078
+ def description(self) -> Optional[pulumi.Input[str]]:
1079
+ """
1080
+ Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
1081
+ """
1082
+ return pulumi.get(self, "description")
1083
+
1084
+ @description.setter
1085
+ def description(self, value: Optional[pulumi.Input[str]]):
1086
+ pulumi.set(self, "description", value)
1087
+
1088
+ @property
1089
+ @pulumi.getter
1090
+ def expression(self) -> Optional[pulumi.Input[str]]:
1091
+ """
1092
+ Textual representation of an expression in Common Expression Language syntax.
1093
+ """
1094
+ return pulumi.get(self, "expression")
1095
+
1096
+ @expression.setter
1097
+ def expression(self, value: Optional[pulumi.Input[str]]):
1098
+ pulumi.set(self, "expression", value)
1099
+
1100
+ @property
1101
+ @pulumi.getter
1102
+ def location(self) -> Optional[pulumi.Input[str]]:
1103
+ """
1104
+ Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
1105
+ """
1106
+ return pulumi.get(self, "location")
1107
+
1108
+ @location.setter
1109
+ def location(self, value: Optional[pulumi.Input[str]]):
1110
+ pulumi.set(self, "location", value)
1111
+
1112
+ @property
1113
+ @pulumi.getter
1114
+ def title(self) -> Optional[pulumi.Input[str]]:
1115
+ """
1116
+ Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
1117
+ """
1118
+ return pulumi.get(self, "title")
1119
+
1120
+ @title.setter
1121
+ def title(self, value: Optional[pulumi.Input[str]]):
1122
+ pulumi.set(self, "title", value)
1123
+
1124
+
1125
+ if not MYPY:
1126
+ class ProjectsPolicyBindingTargetArgsDict(TypedDict):
1127
+ principal_set: NotRequired[pulumi.Input[str]]
1128
+ """
1129
+ Required. Immutable. The resource name of the policy to be bound.
1130
+ The binding parent and policy must belong to the same Organization (or Project).
1131
+
1132
+ - - -
1133
+ """
1134
+ elif False:
1135
+ ProjectsPolicyBindingTargetArgsDict: TypeAlias = Mapping[str, Any]
1136
+
1137
+ @pulumi.input_type
1138
+ class ProjectsPolicyBindingTargetArgs:
1139
+ def __init__(__self__, *,
1140
+ principal_set: Optional[pulumi.Input[str]] = None):
1141
+ """
1142
+ :param pulumi.Input[str] principal_set: Required. Immutable. The resource name of the policy to be bound.
1143
+ The binding parent and policy must belong to the same Organization (or Project).
1144
+
1145
+ - - -
1146
+ """
1147
+ if principal_set is not None:
1148
+ pulumi.set(__self__, "principal_set", principal_set)
1149
+
1150
+ @property
1151
+ @pulumi.getter(name="principalSet")
1152
+ def principal_set(self) -> Optional[pulumi.Input[str]]:
1153
+ """
1154
+ Required. Immutable. The resource name of the policy to be bound.
1155
+ The binding parent and policy must belong to the same Organization (or Project).
1156
+
1157
+ - - -
1158
+ """
1159
+ return pulumi.get(self, "principal_set")
1160
+
1161
+ @principal_set.setter
1162
+ def principal_set(self, value: Optional[pulumi.Input[str]]):
1163
+ pulumi.set(self, "principal_set", value)
1164
+
1165
+
1029
1166
  if not MYPY:
1030
1167
  class WorkforcePoolAccessRestrictionsArgsDict(TypedDict):
1031
1168
  allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input['WorkforcePoolAccessRestrictionsAllowedServiceArgsDict']]]]
@@ -497,6 +497,14 @@ class FoldersPolicyBinding(pulumi.CustomResource):
497
497
  target: Optional[pulumi.Input[Union['FoldersPolicyBindingTargetArgs', 'FoldersPolicyBindingTargetArgsDict']]] = None,
498
498
  __props__=None):
499
499
  """
500
+ A policy binding to a folder
501
+
502
+ To get more information about FoldersPolicyBinding, see:
503
+
504
+ * [API documentation](https://cloud.google.com/iam/docs/reference/rest/v3/folders.locations.policyBindings)
505
+ * How-to Guides
506
+ * [Apply a policy binding](https://cloud.google.com/iam/docs/principal-access-boundary-policies-create#create_binding)
507
+
500
508
  ## Example Usage
501
509
 
502
510
  ### Iam Folders Policy Binding
@@ -581,6 +589,14 @@ class FoldersPolicyBinding(pulumi.CustomResource):
581
589
  args: FoldersPolicyBindingArgs,
582
590
  opts: Optional[pulumi.ResourceOptions] = None):
583
591
  """
592
+ A policy binding to a folder
593
+
594
+ To get more information about FoldersPolicyBinding, see:
595
+
596
+ * [API documentation](https://cloud.google.com/iam/docs/reference/rest/v3/folders.locations.policyBindings)
597
+ * How-to Guides
598
+ * [Apply a policy binding](https://cloud.google.com/iam/docs/principal-access-boundary-policies-create#create_binding)
599
+
584
600
  ## Example Usage
585
601
 
586
602
  ### Iam Folders Policy Binding
@@ -497,6 +497,14 @@ class OrganizationsPolicyBinding(pulumi.CustomResource):
497
497
  target: Optional[pulumi.Input[Union['OrganizationsPolicyBindingTargetArgs', 'OrganizationsPolicyBindingTargetArgsDict']]] = None,
498
498
  __props__=None):
499
499
  """
500
+ A policy binding to an organizations
501
+
502
+ To get more information about OrganizationsPolicyBinding, see:
503
+
504
+ * [API documentation](https://cloud.google.com/iam/docs/reference/rest/v3/organizations.locations.policyBindings)
505
+ * How-to Guides
506
+ * [Apply a policy binding](https://cloud.google.com/iam/docs/principal-access-boundary-policies-create#create_binding)
507
+
500
508
  ## Example Usage
501
509
 
502
510
  ### Iam Organizations Policy Binding
@@ -573,6 +581,14 @@ class OrganizationsPolicyBinding(pulumi.CustomResource):
573
581
  args: OrganizationsPolicyBindingArgs,
574
582
  opts: Optional[pulumi.ResourceOptions] = None):
575
583
  """
584
+ A policy binding to an organizations
585
+
586
+ To get more information about OrganizationsPolicyBinding, see:
587
+
588
+ * [API documentation](https://cloud.google.com/iam/docs/reference/rest/v3/organizations.locations.policyBindings)
589
+ * How-to Guides
590
+ * [Apply a policy binding](https://cloud.google.com/iam/docs/principal-access-boundary-policies-create#create_binding)
591
+
576
592
  ## Example Usage
577
593
 
578
594
  ### Iam Organizations Policy Binding
pulumi_gcp/iam/outputs.py CHANGED
@@ -28,6 +28,8 @@ __all__ = [
28
28
  'OrganizationsPolicyBindingTarget',
29
29
  'PrincipalAccessBoundaryPolicyDetails',
30
30
  'PrincipalAccessBoundaryPolicyDetailsRule',
31
+ 'ProjectsPolicyBindingCondition',
32
+ 'ProjectsPolicyBindingTarget',
31
33
  'WorkforcePoolAccessRestrictions',
32
34
  'WorkforcePoolAccessRestrictionsAllowedService',
33
35
  'WorkforcePoolProviderExtraAttributesOauth2Client',
@@ -758,6 +760,103 @@ class PrincipalAccessBoundaryPolicyDetailsRule(dict):
758
760
  return pulumi.get(self, "description")
759
761
 
760
762
 
763
+ @pulumi.output_type
764
+ class ProjectsPolicyBindingCondition(dict):
765
+ def __init__(__self__, *,
766
+ description: Optional[str] = None,
767
+ expression: Optional[str] = None,
768
+ location: Optional[str] = None,
769
+ title: Optional[str] = None):
770
+ """
771
+ :param str description: Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
772
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
773
+ :param str location: Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
774
+ :param str title: Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
775
+ """
776
+ if description is not None:
777
+ pulumi.set(__self__, "description", description)
778
+ if expression is not None:
779
+ pulumi.set(__self__, "expression", expression)
780
+ if location is not None:
781
+ pulumi.set(__self__, "location", location)
782
+ if title is not None:
783
+ pulumi.set(__self__, "title", title)
784
+
785
+ @property
786
+ @pulumi.getter
787
+ def description(self) -> Optional[str]:
788
+ """
789
+ Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
790
+ """
791
+ return pulumi.get(self, "description")
792
+
793
+ @property
794
+ @pulumi.getter
795
+ def expression(self) -> Optional[str]:
796
+ """
797
+ Textual representation of an expression in Common Expression Language syntax.
798
+ """
799
+ return pulumi.get(self, "expression")
800
+
801
+ @property
802
+ @pulumi.getter
803
+ def location(self) -> Optional[str]:
804
+ """
805
+ Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
806
+ """
807
+ return pulumi.get(self, "location")
808
+
809
+ @property
810
+ @pulumi.getter
811
+ def title(self) -> Optional[str]:
812
+ """
813
+ Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
814
+ """
815
+ return pulumi.get(self, "title")
816
+
817
+
818
+ @pulumi.output_type
819
+ class ProjectsPolicyBindingTarget(dict):
820
+ @staticmethod
821
+ def __key_warning(key: str):
822
+ suggest = None
823
+ if key == "principalSet":
824
+ suggest = "principal_set"
825
+
826
+ if suggest:
827
+ pulumi.log.warn(f"Key '{key}' not found in ProjectsPolicyBindingTarget. Access the value via the '{suggest}' property getter instead.")
828
+
829
+ def __getitem__(self, key: str) -> Any:
830
+ ProjectsPolicyBindingTarget.__key_warning(key)
831
+ return super().__getitem__(key)
832
+
833
+ def get(self, key: str, default = None) -> Any:
834
+ ProjectsPolicyBindingTarget.__key_warning(key)
835
+ return super().get(key, default)
836
+
837
+ def __init__(__self__, *,
838
+ principal_set: Optional[str] = None):
839
+ """
840
+ :param str principal_set: Required. Immutable. The resource name of the policy to be bound.
841
+ The binding parent and policy must belong to the same Organization (or Project).
842
+
843
+ - - -
844
+ """
845
+ if principal_set is not None:
846
+ pulumi.set(__self__, "principal_set", principal_set)
847
+
848
+ @property
849
+ @pulumi.getter(name="principalSet")
850
+ def principal_set(self) -> Optional[str]:
851
+ """
852
+ Required. Immutable. The resource name of the policy to be bound.
853
+ The binding parent and policy must belong to the same Organization (or Project).
854
+
855
+ - - -
856
+ """
857
+ return pulumi.get(self, "principal_set")
858
+
859
+
761
860
  @pulumi.output_type
762
861
  class WorkforcePoolAccessRestrictions(dict):
763
862
  @staticmethod
@@ -366,6 +366,14 @@ class PrincipalAccessBoundaryPolicy(pulumi.CustomResource):
366
366
  principal_access_boundary_policy_id: Optional[pulumi.Input[str]] = None,
367
367
  __props__=None):
368
368
  """
369
+ An IAM Principal Access Boundary Policy resource
370
+
371
+ To get more information about PrincipalAccessBoundaryPolicy, see:
372
+
373
+ * [API documentation](https://cloud.google.com/iam/docs/reference/rest/v3/organizations.locations.principalAccessBoundaryPolicies)
374
+ * How-to Guides
375
+ * [Create and apply Principal Access Boundaries](https://cloud.google.com/iam/docs/principal-access-boundary-policies-create)
376
+
369
377
  ## Example Usage
370
378
 
371
379
  ### Iam Principal Access Boundary Policy
@@ -424,6 +432,14 @@ class PrincipalAccessBoundaryPolicy(pulumi.CustomResource):
424
432
  args: PrincipalAccessBoundaryPolicyArgs,
425
433
  opts: Optional[pulumi.ResourceOptions] = None):
426
434
  """
435
+ An IAM Principal Access Boundary Policy resource
436
+
437
+ To get more information about PrincipalAccessBoundaryPolicy, see:
438
+
439
+ * [API documentation](https://cloud.google.com/iam/docs/reference/rest/v3/organizations.locations.principalAccessBoundaryPolicies)
440
+ * How-to Guides
441
+ * [Create and apply Principal Access Boundaries](https://cloud.google.com/iam/docs/principal-access-boundary-policies-create)
442
+
427
443
  ## Example Usage
428
444
 
429
445
  ### Iam Principal Access Boundary Policy