pulumi-gcp 9.0.0a1__py3-none-any.whl → 9.0.0a1758219982__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 (209) hide show
  1. pulumi_gcp/__init__.py +48 -0
  2. pulumi_gcp/activedirectory/peering.py +16 -0
  3. pulumi_gcp/apigateway/api_config_iam_binding.py +4 -4
  4. pulumi_gcp/apigateway/api_config_iam_member.py +4 -4
  5. pulumi_gcp/apigateway/api_config_iam_policy.py +4 -4
  6. pulumi_gcp/apigateway/api_iam_binding.py +4 -4
  7. pulumi_gcp/apigateway/api_iam_member.py +4 -4
  8. pulumi_gcp/apigateway/api_iam_policy.py +4 -4
  9. pulumi_gcp/apigateway/gateway_iam_binding.py +4 -4
  10. pulumi_gcp/apigateway/gateway_iam_member.py +4 -4
  11. pulumi_gcp/apigateway/gateway_iam_policy.py +4 -4
  12. pulumi_gcp/artifactregistry/__init__.py +1 -0
  13. pulumi_gcp/artifactregistry/get_python_package.py +237 -0
  14. pulumi_gcp/artifactregistry/get_repository.py +12 -1
  15. pulumi_gcp/artifactregistry/repository.py +28 -0
  16. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  17. pulumi_gcp/backupdisasterrecovery/backup_plan.py +4 -4
  18. pulumi_gcp/backupdisasterrecovery/get_backup.py +12 -1
  19. pulumi_gcp/backupdisasterrecovery/get_backup_plan_association.py +4 -0
  20. pulumi_gcp/backupdisasterrecovery/get_data_source_references.py +135 -0
  21. pulumi_gcp/backupdisasterrecovery/get_management_server.py +4 -0
  22. pulumi_gcp/backupdisasterrecovery/outputs.py +103 -0
  23. pulumi_gcp/bigquery/app_profile.py +14 -49
  24. pulumi_gcp/bigquery/dataset_access.py +4 -8
  25. pulumi_gcp/bigquery/table.py +7 -21
  26. pulumi_gcp/bigqueryanalyticshub/data_exchange_subscription.py +20 -0
  27. pulumi_gcp/bigtable/app_profile.py +14 -49
  28. pulumi_gcp/bigtable/table.py +42 -42
  29. pulumi_gcp/certificatemanager/certificate_map_entry.py +7 -7
  30. pulumi_gcp/chronicle/_inputs.py +6 -5
  31. pulumi_gcp/chronicle/outputs.py +4 -3
  32. pulumi_gcp/chronicle/reference_list.py +53 -5
  33. pulumi_gcp/cloudasset/get_resources_search_all.py +8 -0
  34. pulumi_gcp/cloudbuild/_inputs.py +20 -0
  35. pulumi_gcp/cloudbuild/outputs.py +14 -0
  36. pulumi_gcp/cloudbuild/trigger.py +4 -2
  37. pulumi_gcp/cloudbuild/worker_pool.py +28 -21
  38. pulumi_gcp/cloudfunctions/function.py +4 -8
  39. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +16 -0
  40. pulumi_gcp/cloudrunv2/_inputs.py +57 -0
  41. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  42. pulumi_gcp/cloudrunv2/outputs.py +81 -0
  43. pulumi_gcp/cloudrunv2/service.py +54 -0
  44. pulumi_gcp/cloudrunv2/worker_pool.py +2 -2
  45. pulumi_gcp/composer/environment.py +28 -49
  46. pulumi_gcp/compute/_inputs.py +804 -24
  47. pulumi_gcp/compute/backend_bucket.py +14 -0
  48. pulumi_gcp/compute/backend_bucket_iam_binding.py +236 -0
  49. pulumi_gcp/compute/backend_bucket_iam_member.py +236 -0
  50. pulumi_gcp/compute/backend_bucket_iam_policy.py +236 -0
  51. pulumi_gcp/compute/backend_service_iam_binding.py +464 -0
  52. pulumi_gcp/compute/backend_service_iam_member.py +464 -0
  53. pulumi_gcp/compute/backend_service_iam_policy.py +464 -0
  54. pulumi_gcp/compute/cross_site_network.py +16 -0
  55. pulumi_gcp/compute/future_reservation.py +32 -0
  56. pulumi_gcp/compute/get_region_backend_service.py +12 -1
  57. pulumi_gcp/compute/get_resource_policy.py +2 -20
  58. pulumi_gcp/compute/instance_from_machine_image.py +75 -110
  59. pulumi_gcp/compute/instance_from_template.py +75 -110
  60. pulumi_gcp/compute/instance_group_manager.py +7 -14
  61. pulumi_gcp/compute/instance_template.py +7 -14
  62. pulumi_gcp/compute/interconnect.py +4 -8
  63. pulumi_gcp/compute/machine_image_iam_binding.py +8 -4
  64. pulumi_gcp/compute/machine_image_iam_member.py +8 -4
  65. pulumi_gcp/compute/machine_image_iam_policy.py +8 -4
  66. pulumi_gcp/compute/network_edge_security_service.py +16 -0
  67. pulumi_gcp/compute/network_firewall_policy_packet_mirroring_rule.py +12 -0
  68. pulumi_gcp/compute/outputs.py +671 -16
  69. pulumi_gcp/compute/preview_feature.py +16 -0
  70. pulumi_gcp/compute/public_delegated_prefix.py +42 -0
  71. pulumi_gcp/compute/region_backend_service.py +54 -0
  72. pulumi_gcp/compute/region_backend_service_iam_binding.py +488 -0
  73. pulumi_gcp/compute/region_backend_service_iam_member.py +488 -0
  74. pulumi_gcp/compute/region_backend_service_iam_policy.py +488 -0
  75. pulumi_gcp/compute/region_instance_group_manager.py +7 -14
  76. pulumi_gcp/compute/region_network_endpoint_group.py +1 -3
  77. pulumi_gcp/compute/region_resize_request.py +24 -0
  78. pulumi_gcp/compute/region_url_map.py +75 -0
  79. pulumi_gcp/compute/wire_group.py +16 -0
  80. pulumi_gcp/container/_inputs.py +446 -18
  81. pulumi_gcp/container/aws_cluster.py +28 -42
  82. pulumi_gcp/container/aws_node_pool.py +28 -42
  83. pulumi_gcp/container/azure_cluster.py +35 -70
  84. pulumi_gcp/container/azure_node_pool.py +28 -42
  85. pulumi_gcp/container/cluster.py +16 -7
  86. pulumi_gcp/container/outputs.py +423 -15
  87. pulumi_gcp/dataflow/flex_template_job.py +10 -0
  88. pulumi_gcp/dataform/repository.py +16 -0
  89. pulumi_gcp/dataform/repository_release_config.py +16 -0
  90. pulumi_gcp/dataform/repository_workflow_config.py +16 -0
  91. pulumi_gcp/dataplex/asset.py +28 -21
  92. pulumi_gcp/dataplex/zone.py +28 -21
  93. pulumi_gcp/dataproc/cluster.py +21 -14
  94. pulumi_gcp/dataproc/workflow_template.py +42 -105
  95. pulumi_gcp/discoveryengine/__init__.py +1 -0
  96. pulumi_gcp/discoveryengine/_inputs.py +94 -0
  97. pulumi_gcp/discoveryengine/acl_config.py +393 -0
  98. pulumi_gcp/discoveryengine/outputs.py +92 -0
  99. pulumi_gcp/firebase/android_app.py +16 -0
  100. pulumi_gcp/firebase/apple_app.py +16 -0
  101. pulumi_gcp/firebase/database_instance.py +16 -0
  102. pulumi_gcp/firebase/extensions_instance.py +12 -0
  103. pulumi_gcp/firebase/get_android_app.py +4 -2
  104. pulumi_gcp/firebase/get_apple_app.py +4 -2
  105. pulumi_gcp/firebase/get_apple_app_config.py +16 -2
  106. pulumi_gcp/firebase/get_hosting_channel.py +4 -2
  107. pulumi_gcp/firebase/hosting_channel.py +20 -0
  108. pulumi_gcp/firebase/hosting_custom_domain.py +20 -0
  109. pulumi_gcp/firebase/hosting_release.py +16 -0
  110. pulumi_gcp/firebase/hosting_site.py +16 -0
  111. pulumi_gcp/firebase/hosting_version.py +16 -0
  112. pulumi_gcp/firebase/storage_bucket.py +18 -0
  113. pulumi_gcp/firestore/index.py +118 -3
  114. pulumi_gcp/folder/service_identity.py +26 -0
  115. pulumi_gcp/gkehub/membership_rbac_role_binding.py +16 -0
  116. pulumi_gcp/healthcare/_inputs.py +205 -0
  117. pulumi_gcp/healthcare/fhir_store.py +128 -0
  118. pulumi_gcp/healthcare/outputs.py +163 -0
  119. pulumi_gcp/iam/workload_identity_pool_iam_binding.py +464 -0
  120. pulumi_gcp/iam/workload_identity_pool_iam_member.py +464 -0
  121. pulumi_gcp/iam/workload_identity_pool_iam_policy.py +464 -0
  122. pulumi_gcp/iam/workload_identity_pool_managed_identity.py +18 -0
  123. pulumi_gcp/iam/workload_identity_pool_namespace.py +20 -0
  124. pulumi_gcp/iap/__init__.py +4 -0
  125. pulumi_gcp/iap/_inputs.py +130 -0
  126. pulumi_gcp/iap/get_web_forwarding_rule_service_iam_policy.py +159 -0
  127. pulumi_gcp/iap/outputs.py +76 -0
  128. pulumi_gcp/iap/web_forwarding_rule_service_iam_binding.py +1002 -0
  129. pulumi_gcp/iap/web_forwarding_rule_service_iam_member.py +1002 -0
  130. pulumi_gcp/iap/web_forwarding_rule_service_iam_policy.py +821 -0
  131. pulumi_gcp/kms/get_kms_secret_asymmetric.py +22 -0
  132. pulumi_gcp/logging/billing_account_bucket_config.py +7 -21
  133. pulumi_gcp/logging/folder_bucket_config.py +7 -21
  134. pulumi_gcp/logging/organization_bucket_config.py +7 -21
  135. pulumi_gcp/logging/organization_sink.py +7 -7
  136. pulumi_gcp/managedkafka/connect_cluster.py +4 -0
  137. pulumi_gcp/managedkafka/connector.py +4 -0
  138. pulumi_gcp/memorystore/instance.py +14 -14
  139. pulumi_gcp/monitoring/dashboard.py +7 -14
  140. pulumi_gcp/netapp/storage_pool.py +91 -2
  141. pulumi_gcp/netapp/volume.py +47 -0
  142. pulumi_gcp/networkmanagement/__init__.py +1 -0
  143. pulumi_gcp/networkmanagement/organization_vpc_flow_logs_config.py +1028 -0
  144. pulumi_gcp/networksecurity/authorization_policy.py +12 -0
  145. pulumi_gcp/networkservices/gateway.py +7 -7
  146. pulumi_gcp/networkservices/service_lb_policies.py +12 -0
  147. pulumi_gcp/oracledatabase/autonomous_database.py +2 -2
  148. pulumi_gcp/organizations/project.py +7 -21
  149. pulumi_gcp/projects/service.py +0 -7
  150. pulumi_gcp/pulumi-plugin.json +1 -1
  151. pulumi_gcp/resourcemanager/capability.py +16 -0
  152. pulumi_gcp/runtimeconfig/config.py +16 -0
  153. pulumi_gcp/runtimeconfig/config_iam_binding.py +236 -0
  154. pulumi_gcp/runtimeconfig/config_iam_member.py +236 -0
  155. pulumi_gcp/runtimeconfig/config_iam_policy.py +236 -0
  156. pulumi_gcp/runtimeconfig/variable.py +10 -0
  157. pulumi_gcp/saasruntime/__init__.py +1 -0
  158. pulumi_gcp/saasruntime/_inputs.py +458 -0
  159. pulumi_gcp/saasruntime/outputs.py +392 -0
  160. pulumi_gcp/saasruntime/saa_s.py +4 -0
  161. pulumi_gcp/saasruntime/unit_kind.py +1024 -0
  162. pulumi_gcp/securesourcemanager/instance.py +7 -7
  163. pulumi_gcp/securesourcemanager/repository.py +7 -7
  164. pulumi_gcp/servicedirectory/namespace_iam_binding.py +4 -4
  165. pulumi_gcp/servicedirectory/namespace_iam_member.py +4 -4
  166. pulumi_gcp/servicedirectory/namespace_iam_policy.py +4 -4
  167. pulumi_gcp/servicedirectory/service_iam_binding.py +4 -4
  168. pulumi_gcp/servicedirectory/service_iam_member.py +4 -4
  169. pulumi_gcp/servicedirectory/service_iam_policy.py +4 -4
  170. pulumi_gcp/sql/_inputs.py +135 -1
  171. pulumi_gcp/sql/database_instance.py +54 -14
  172. pulumi_gcp/sql/get_database_instance.py +12 -1
  173. pulumi_gcp/sql/outputs.py +265 -3
  174. pulumi_gcp/storage/_inputs.py +246 -0
  175. pulumi_gcp/storage/bucket.py +7 -14
  176. pulumi_gcp/storage/bucket_object.py +0 -9
  177. pulumi_gcp/storage/outputs.py +191 -1
  178. pulumi_gcp/storage/transfer_job.py +47 -0
  179. pulumi_gcp/tpu/v2_queued_resource.py +16 -0
  180. pulumi_gcp/tpu/v2_vm.py +16 -0
  181. pulumi_gcp/vertex/ai_feature_group_iam_binding.py +236 -0
  182. pulumi_gcp/vertex/ai_feature_group_iam_member.py +236 -0
  183. pulumi_gcp/vertex/ai_feature_group_iam_policy.py +236 -0
  184. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_binding.py +248 -0
  185. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_member.py +248 -0
  186. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_policy.py +248 -0
  187. pulumi_gcp/vertex/ai_feature_online_store_iam_binding.py +236 -0
  188. pulumi_gcp/vertex/ai_feature_online_store_iam_member.py +236 -0
  189. pulumi_gcp/vertex/ai_feature_online_store_iam_policy.py +236 -0
  190. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_binding.py +238 -0
  191. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_member.py +238 -0
  192. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_policy.py +238 -0
  193. pulumi_gcp/vertex/ai_feature_store_iam_binding.py +248 -0
  194. pulumi_gcp/vertex/ai_feature_store_iam_member.py +248 -0
  195. pulumi_gcp/vertex/ai_feature_store_iam_policy.py +248 -0
  196. pulumi_gcp/vertex/ai_metadata_store.py +16 -0
  197. pulumi_gcp/workstations/workstation.py +16 -0
  198. pulumi_gcp/workstations/workstation_cluster.py +16 -0
  199. pulumi_gcp/workstations/workstation_config.py +16 -0
  200. pulumi_gcp/workstations/workstation_config_iam_binding.py +260 -0
  201. pulumi_gcp/workstations/workstation_config_iam_member.py +260 -0
  202. pulumi_gcp/workstations/workstation_config_iam_policy.py +260 -0
  203. pulumi_gcp/workstations/workstation_iam_binding.py +272 -0
  204. pulumi_gcp/workstations/workstation_iam_member.py +272 -0
  205. pulumi_gcp/workstations/workstation_iam_policy.py +272 -0
  206. {pulumi_gcp-9.0.0a1.dist-info → pulumi_gcp-9.0.0a1758219982.dist-info}/METADATA +1 -1
  207. {pulumi_gcp-9.0.0a1.dist-info → pulumi_gcp-9.0.0a1758219982.dist-info}/RECORD +209 -200
  208. {pulumi_gcp-9.0.0a1.dist-info → pulumi_gcp-9.0.0a1758219982.dist-info}/WHEEL +0 -0
  209. {pulumi_gcp-9.0.0a1.dist-info → pulumi_gcp-9.0.0a1758219982.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1002 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
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
+ from ._inputs import *
18
+
19
+ __all__ = ['WebForwardingRuleServiceIamBindingArgs', 'WebForwardingRuleServiceIamBinding']
20
+
21
+ @pulumi.input_type
22
+ class WebForwardingRuleServiceIamBindingArgs:
23
+ def __init__(__self__, *,
24
+ forwarding_rule_service_name: pulumi.Input[_builtins.str],
25
+ members: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
26
+ role: pulumi.Input[_builtins.str],
27
+ condition: Optional[pulumi.Input['WebForwardingRuleServiceIamBindingConditionArgs']] = None,
28
+ project: Optional[pulumi.Input[_builtins.str]] = None):
29
+ """
30
+ The set of arguments for constructing a WebForwardingRuleServiceIamBinding resource.
31
+ :param pulumi.Input[_builtins.str] forwarding_rule_service_name: Used to find the parent resource to bind the IAM policy to
32
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] members: Identities that will be granted the privilege in `role`.
33
+ Each entry can have one of the following values:
34
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
35
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
36
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
37
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
38
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
39
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
40
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
41
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
42
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
43
+ :param pulumi.Input[_builtins.str] role: The role that should be applied. Only one
44
+ `iap.WebForwardingRuleServiceIamBinding` can be used per role. Note that custom roles must be of the format
45
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
46
+ :param pulumi.Input['WebForwardingRuleServiceIamBindingConditionArgs'] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
47
+ Structure is documented below.
48
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
49
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
50
+ """
51
+ pulumi.set(__self__, "forwarding_rule_service_name", forwarding_rule_service_name)
52
+ pulumi.set(__self__, "members", members)
53
+ pulumi.set(__self__, "role", role)
54
+ if condition is not None:
55
+ pulumi.set(__self__, "condition", condition)
56
+ if project is not None:
57
+ pulumi.set(__self__, "project", project)
58
+
59
+ @_builtins.property
60
+ @pulumi.getter(name="forwardingRuleServiceName")
61
+ def forwarding_rule_service_name(self) -> pulumi.Input[_builtins.str]:
62
+ """
63
+ Used to find the parent resource to bind the IAM policy to
64
+ """
65
+ return pulumi.get(self, "forwarding_rule_service_name")
66
+
67
+ @forwarding_rule_service_name.setter
68
+ def forwarding_rule_service_name(self, value: pulumi.Input[_builtins.str]):
69
+ pulumi.set(self, "forwarding_rule_service_name", value)
70
+
71
+ @_builtins.property
72
+ @pulumi.getter
73
+ def members(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
74
+ """
75
+ Identities that will be granted the privilege in `role`.
76
+ Each entry can have one of the following values:
77
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
78
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
79
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
80
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
81
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
82
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
83
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
84
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
85
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
86
+ """
87
+ return pulumi.get(self, "members")
88
+
89
+ @members.setter
90
+ def members(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
91
+ pulumi.set(self, "members", value)
92
+
93
+ @_builtins.property
94
+ @pulumi.getter
95
+ def role(self) -> pulumi.Input[_builtins.str]:
96
+ """
97
+ The role that should be applied. Only one
98
+ `iap.WebForwardingRuleServiceIamBinding` can be used per role. Note that custom roles must be of the format
99
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
100
+ """
101
+ return pulumi.get(self, "role")
102
+
103
+ @role.setter
104
+ def role(self, value: pulumi.Input[_builtins.str]):
105
+ pulumi.set(self, "role", value)
106
+
107
+ @_builtins.property
108
+ @pulumi.getter
109
+ def condition(self) -> Optional[pulumi.Input['WebForwardingRuleServiceIamBindingConditionArgs']]:
110
+ """
111
+ An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
112
+ Structure is documented below.
113
+ """
114
+ return pulumi.get(self, "condition")
115
+
116
+ @condition.setter
117
+ def condition(self, value: Optional[pulumi.Input['WebForwardingRuleServiceIamBindingConditionArgs']]):
118
+ pulumi.set(self, "condition", value)
119
+
120
+ @_builtins.property
121
+ @pulumi.getter
122
+ def project(self) -> Optional[pulumi.Input[_builtins.str]]:
123
+ """
124
+ The ID of the project in which the resource belongs.
125
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
126
+ """
127
+ return pulumi.get(self, "project")
128
+
129
+ @project.setter
130
+ def project(self, value: Optional[pulumi.Input[_builtins.str]]):
131
+ pulumi.set(self, "project", value)
132
+
133
+
134
+ @pulumi.input_type
135
+ class _WebForwardingRuleServiceIamBindingState:
136
+ def __init__(__self__, *,
137
+ condition: Optional[pulumi.Input['WebForwardingRuleServiceIamBindingConditionArgs']] = None,
138
+ etag: Optional[pulumi.Input[_builtins.str]] = None,
139
+ forwarding_rule_service_name: Optional[pulumi.Input[_builtins.str]] = None,
140
+ members: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
141
+ project: Optional[pulumi.Input[_builtins.str]] = None,
142
+ role: Optional[pulumi.Input[_builtins.str]] = None):
143
+ """
144
+ Input properties used for looking up and filtering WebForwardingRuleServiceIamBinding resources.
145
+ :param pulumi.Input['WebForwardingRuleServiceIamBindingConditionArgs'] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
146
+ Structure is documented below.
147
+ :param pulumi.Input[_builtins.str] etag: (Computed) The etag of the IAM policy.
148
+ :param pulumi.Input[_builtins.str] forwarding_rule_service_name: Used to find the parent resource to bind the IAM policy to
149
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] members: Identities that will be granted the privilege in `role`.
150
+ Each entry can have one of the following values:
151
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
152
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
153
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
154
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
155
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
156
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
157
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
158
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
159
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
160
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
161
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
162
+ :param pulumi.Input[_builtins.str] role: The role that should be applied. Only one
163
+ `iap.WebForwardingRuleServiceIamBinding` can be used per role. Note that custom roles must be of the format
164
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
165
+ """
166
+ if condition is not None:
167
+ pulumi.set(__self__, "condition", condition)
168
+ if etag is not None:
169
+ pulumi.set(__self__, "etag", etag)
170
+ if forwarding_rule_service_name is not None:
171
+ pulumi.set(__self__, "forwarding_rule_service_name", forwarding_rule_service_name)
172
+ if members is not None:
173
+ pulumi.set(__self__, "members", members)
174
+ if project is not None:
175
+ pulumi.set(__self__, "project", project)
176
+ if role is not None:
177
+ pulumi.set(__self__, "role", role)
178
+
179
+ @_builtins.property
180
+ @pulumi.getter
181
+ def condition(self) -> Optional[pulumi.Input['WebForwardingRuleServiceIamBindingConditionArgs']]:
182
+ """
183
+ An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
184
+ Structure is documented below.
185
+ """
186
+ return pulumi.get(self, "condition")
187
+
188
+ @condition.setter
189
+ def condition(self, value: Optional[pulumi.Input['WebForwardingRuleServiceIamBindingConditionArgs']]):
190
+ pulumi.set(self, "condition", value)
191
+
192
+ @_builtins.property
193
+ @pulumi.getter
194
+ def etag(self) -> Optional[pulumi.Input[_builtins.str]]:
195
+ """
196
+ (Computed) The etag of the IAM policy.
197
+ """
198
+ return pulumi.get(self, "etag")
199
+
200
+ @etag.setter
201
+ def etag(self, value: Optional[pulumi.Input[_builtins.str]]):
202
+ pulumi.set(self, "etag", value)
203
+
204
+ @_builtins.property
205
+ @pulumi.getter(name="forwardingRuleServiceName")
206
+ def forwarding_rule_service_name(self) -> Optional[pulumi.Input[_builtins.str]]:
207
+ """
208
+ Used to find the parent resource to bind the IAM policy to
209
+ """
210
+ return pulumi.get(self, "forwarding_rule_service_name")
211
+
212
+ @forwarding_rule_service_name.setter
213
+ def forwarding_rule_service_name(self, value: Optional[pulumi.Input[_builtins.str]]):
214
+ pulumi.set(self, "forwarding_rule_service_name", value)
215
+
216
+ @_builtins.property
217
+ @pulumi.getter
218
+ def members(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
219
+ """
220
+ Identities that will be granted the privilege in `role`.
221
+ Each entry can have one of the following values:
222
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
223
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
224
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
225
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
226
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
227
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
228
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
229
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
230
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
231
+ """
232
+ return pulumi.get(self, "members")
233
+
234
+ @members.setter
235
+ def members(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
236
+ pulumi.set(self, "members", value)
237
+
238
+ @_builtins.property
239
+ @pulumi.getter
240
+ def project(self) -> Optional[pulumi.Input[_builtins.str]]:
241
+ """
242
+ The ID of the project in which the resource belongs.
243
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
244
+ """
245
+ return pulumi.get(self, "project")
246
+
247
+ @project.setter
248
+ def project(self, value: Optional[pulumi.Input[_builtins.str]]):
249
+ pulumi.set(self, "project", value)
250
+
251
+ @_builtins.property
252
+ @pulumi.getter
253
+ def role(self) -> Optional[pulumi.Input[_builtins.str]]:
254
+ """
255
+ The role that should be applied. Only one
256
+ `iap.WebForwardingRuleServiceIamBinding` can be used per role. Note that custom roles must be of the format
257
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
258
+ """
259
+ return pulumi.get(self, "role")
260
+
261
+ @role.setter
262
+ def role(self, value: Optional[pulumi.Input[_builtins.str]]):
263
+ pulumi.set(self, "role", value)
264
+
265
+
266
+ @pulumi.type_token("gcp:iap/webForwardingRuleServiceIamBinding:WebForwardingRuleServiceIamBinding")
267
+ class WebForwardingRuleServiceIamBinding(pulumi.CustomResource):
268
+ @overload
269
+ def __init__(__self__,
270
+ resource_name: str,
271
+ opts: Optional[pulumi.ResourceOptions] = None,
272
+ condition: Optional[pulumi.Input[Union['WebForwardingRuleServiceIamBindingConditionArgs', 'WebForwardingRuleServiceIamBindingConditionArgsDict']]] = None,
273
+ forwarding_rule_service_name: Optional[pulumi.Input[_builtins.str]] = None,
274
+ members: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
275
+ project: Optional[pulumi.Input[_builtins.str]] = None,
276
+ role: Optional[pulumi.Input[_builtins.str]] = None,
277
+ __props__=None):
278
+ """
279
+ Three different resources help you manage your IAM policy for Identity-Aware Proxy WebForwardingRuleService. Each of these resources serves a different use case:
280
+
281
+ * `iap.WebForwardingRuleServiceIamPolicy`: Authoritative. Sets the IAM policy for the webforwardingruleservice and replaces any existing policy already attached.
282
+ * `iap.WebForwardingRuleServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the webforwardingruleservice are preserved.
283
+ * `iap.WebForwardingRuleServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the webforwardingruleservice are preserved.
284
+
285
+ A data source can be used to retrieve policy data in advent you do not need creation
286
+
287
+ * `iap.WebForwardingRuleServiceIamPolicy`: Retrieves the IAM policy for the webforwardingruleservice
288
+
289
+ > **Note:** `iap.WebForwardingRuleServiceIamPolicy` **cannot** be used in conjunction with `iap.WebForwardingRuleServiceIamBinding` and `iap.WebForwardingRuleServiceIamMember` or they will fight over what your policy should be.
290
+
291
+ > **Note:** `iap.WebForwardingRuleServiceIamBinding` resources **can be** used in conjunction with `iap.WebForwardingRuleServiceIamMember` resources **only if** they do not grant privilege to the same role.
292
+
293
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
294
+
295
+ ## iap.WebForwardingRuleServiceIamPolicy
296
+
297
+ ```python
298
+ import pulumi
299
+ import pulumi_gcp as gcp
300
+
301
+ admin = gcp.organizations.get_iam_policy(bindings=[{
302
+ "role": "roles/iap.httpsResourceAccessor",
303
+ "members": ["user:jane@example.com"],
304
+ }])
305
+ policy = gcp.iap.WebForwardingRuleServiceIamPolicy("policy",
306
+ project=default["project"],
307
+ forwarding_rule_service_name=default["name"],
308
+ policy_data=admin.policy_data)
309
+ ```
310
+
311
+ With IAM Conditions:
312
+
313
+ ```python
314
+ import pulumi
315
+ import pulumi_gcp as gcp
316
+
317
+ admin = gcp.organizations.get_iam_policy(bindings=[{
318
+ "role": "roles/iap.httpsResourceAccessor",
319
+ "members": ["user:jane@example.com"],
320
+ "condition": {
321
+ "title": "expires_after_2019_12_31",
322
+ "description": "Expiring at midnight of 2019-12-31",
323
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
324
+ },
325
+ }])
326
+ policy = gcp.iap.WebForwardingRuleServiceIamPolicy("policy",
327
+ project=default["project"],
328
+ forwarding_rule_service_name=default["name"],
329
+ policy_data=admin.policy_data)
330
+ ```
331
+ ## iap.WebForwardingRuleServiceIamBinding
332
+
333
+ ```python
334
+ import pulumi
335
+ import pulumi_gcp as gcp
336
+
337
+ binding = gcp.iap.WebForwardingRuleServiceIamBinding("binding",
338
+ project=default["project"],
339
+ forwarding_rule_service_name=default["name"],
340
+ role="roles/iap.httpsResourceAccessor",
341
+ members=["user:jane@example.com"])
342
+ ```
343
+
344
+ With IAM Conditions:
345
+
346
+ ```python
347
+ import pulumi
348
+ import pulumi_gcp as gcp
349
+
350
+ binding = gcp.iap.WebForwardingRuleServiceIamBinding("binding",
351
+ project=default["project"],
352
+ forwarding_rule_service_name=default["name"],
353
+ role="roles/iap.httpsResourceAccessor",
354
+ members=["user:jane@example.com"],
355
+ condition={
356
+ "title": "expires_after_2019_12_31",
357
+ "description": "Expiring at midnight of 2019-12-31",
358
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
359
+ })
360
+ ```
361
+ ## iap.WebForwardingRuleServiceIamMember
362
+
363
+ ```python
364
+ import pulumi
365
+ import pulumi_gcp as gcp
366
+
367
+ member = gcp.iap.WebForwardingRuleServiceIamMember("member",
368
+ project=default["project"],
369
+ forwarding_rule_service_name=default["name"],
370
+ role="roles/iap.httpsResourceAccessor",
371
+ member="user:jane@example.com")
372
+ ```
373
+
374
+ With IAM Conditions:
375
+
376
+ ```python
377
+ import pulumi
378
+ import pulumi_gcp as gcp
379
+
380
+ member = gcp.iap.WebForwardingRuleServiceIamMember("member",
381
+ project=default["project"],
382
+ forwarding_rule_service_name=default["name"],
383
+ role="roles/iap.httpsResourceAccessor",
384
+ member="user:jane@example.com",
385
+ condition={
386
+ "title": "expires_after_2019_12_31",
387
+ "description": "Expiring at midnight of 2019-12-31",
388
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
389
+ })
390
+ ```
391
+
392
+ ## This resource supports User Project Overrides.
393
+
394
+ -
395
+
396
+ # IAM policy for Identity-Aware Proxy WebForwardingRuleService
397
+
398
+ Three different resources help you manage your IAM policy for Identity-Aware Proxy WebForwardingRuleService. Each of these resources serves a different use case:
399
+
400
+ * `iap.WebForwardingRuleServiceIamPolicy`: Authoritative. Sets the IAM policy for the webforwardingruleservice and replaces any existing policy already attached.
401
+ * `iap.WebForwardingRuleServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the webforwardingruleservice are preserved.
402
+ * `iap.WebForwardingRuleServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the webforwardingruleservice are preserved.
403
+
404
+ A data source can be used to retrieve policy data in advent you do not need creation
405
+
406
+ * `iap.WebForwardingRuleServiceIamPolicy`: Retrieves the IAM policy for the webforwardingruleservice
407
+
408
+ > **Note:** `iap.WebForwardingRuleServiceIamPolicy` **cannot** be used in conjunction with `iap.WebForwardingRuleServiceIamBinding` and `iap.WebForwardingRuleServiceIamMember` or they will fight over what your policy should be.
409
+
410
+ > **Note:** `iap.WebForwardingRuleServiceIamBinding` resources **can be** used in conjunction with `iap.WebForwardingRuleServiceIamMember` resources **only if** they do not grant privilege to the same role.
411
+
412
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
413
+
414
+ ## iap.WebForwardingRuleServiceIamPolicy
415
+
416
+ ```python
417
+ import pulumi
418
+ import pulumi_gcp as gcp
419
+
420
+ admin = gcp.organizations.get_iam_policy(bindings=[{
421
+ "role": "roles/iap.httpsResourceAccessor",
422
+ "members": ["user:jane@example.com"],
423
+ }])
424
+ policy = gcp.iap.WebForwardingRuleServiceIamPolicy("policy",
425
+ project=default["project"],
426
+ forwarding_rule_service_name=default["name"],
427
+ policy_data=admin.policy_data)
428
+ ```
429
+
430
+ With IAM Conditions:
431
+
432
+ ```python
433
+ import pulumi
434
+ import pulumi_gcp as gcp
435
+
436
+ admin = gcp.organizations.get_iam_policy(bindings=[{
437
+ "role": "roles/iap.httpsResourceAccessor",
438
+ "members": ["user:jane@example.com"],
439
+ "condition": {
440
+ "title": "expires_after_2019_12_31",
441
+ "description": "Expiring at midnight of 2019-12-31",
442
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
443
+ },
444
+ }])
445
+ policy = gcp.iap.WebForwardingRuleServiceIamPolicy("policy",
446
+ project=default["project"],
447
+ forwarding_rule_service_name=default["name"],
448
+ policy_data=admin.policy_data)
449
+ ```
450
+ ## iap.WebForwardingRuleServiceIamBinding
451
+
452
+ ```python
453
+ import pulumi
454
+ import pulumi_gcp as gcp
455
+
456
+ binding = gcp.iap.WebForwardingRuleServiceIamBinding("binding",
457
+ project=default["project"],
458
+ forwarding_rule_service_name=default["name"],
459
+ role="roles/iap.httpsResourceAccessor",
460
+ members=["user:jane@example.com"])
461
+ ```
462
+
463
+ With IAM Conditions:
464
+
465
+ ```python
466
+ import pulumi
467
+ import pulumi_gcp as gcp
468
+
469
+ binding = gcp.iap.WebForwardingRuleServiceIamBinding("binding",
470
+ project=default["project"],
471
+ forwarding_rule_service_name=default["name"],
472
+ role="roles/iap.httpsResourceAccessor",
473
+ members=["user:jane@example.com"],
474
+ condition={
475
+ "title": "expires_after_2019_12_31",
476
+ "description": "Expiring at midnight of 2019-12-31",
477
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
478
+ })
479
+ ```
480
+ ## iap.WebForwardingRuleServiceIamMember
481
+
482
+ ```python
483
+ import pulumi
484
+ import pulumi_gcp as gcp
485
+
486
+ member = gcp.iap.WebForwardingRuleServiceIamMember("member",
487
+ project=default["project"],
488
+ forwarding_rule_service_name=default["name"],
489
+ role="roles/iap.httpsResourceAccessor",
490
+ member="user:jane@example.com")
491
+ ```
492
+
493
+ With IAM Conditions:
494
+
495
+ ```python
496
+ import pulumi
497
+ import pulumi_gcp as gcp
498
+
499
+ member = gcp.iap.WebForwardingRuleServiceIamMember("member",
500
+ project=default["project"],
501
+ forwarding_rule_service_name=default["name"],
502
+ role="roles/iap.httpsResourceAccessor",
503
+ member="user:jane@example.com",
504
+ condition={
505
+ "title": "expires_after_2019_12_31",
506
+ "description": "Expiring at midnight of 2019-12-31",
507
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
508
+ })
509
+ ```
510
+
511
+ ## Import
512
+
513
+ For all import syntaxes, the "resource in question" can take any of the following forms:
514
+
515
+ * projects/{{project}}/iap_web/forwarding_rule/services/{{name}}
516
+
517
+ * {{project}}/{{name}}
518
+
519
+ * {{name}}
520
+
521
+ Any variables not passed in the import command will be taken from the provider configuration.
522
+
523
+ Identity-Aware Proxy webforwardingruleservice IAM resources can be imported using the resource identifiers, role, and member.
524
+
525
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
526
+
527
+ ```sh
528
+ $ pulumi import gcp:iap/webForwardingRuleServiceIamBinding:WebForwardingRuleServiceIamBinding editor "projects/{{project}}/iap_web/forwarding_rule/services/{{web_forwarding_rule_service}} roles/iap.httpsResourceAccessor user:jane@example.com"
529
+ ```
530
+
531
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
532
+
533
+ ```sh
534
+ $ pulumi import gcp:iap/webForwardingRuleServiceIamBinding:WebForwardingRuleServiceIamBinding editor "projects/{{project}}/iap_web/forwarding_rule/services/{{web_forwarding_rule_service}} roles/iap.httpsResourceAccessor"
535
+ ```
536
+
537
+ IAM policy imports use the identifier of the resource in question, e.g.
538
+
539
+ ```sh
540
+ $ pulumi import gcp:iap/webForwardingRuleServiceIamBinding:WebForwardingRuleServiceIamBinding editor projects/{{project}}/iap_web/forwarding_rule/services/{{web_forwarding_rule_service}}
541
+ ```
542
+
543
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
544
+
545
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
546
+
547
+ :param str resource_name: The name of the resource.
548
+ :param pulumi.ResourceOptions opts: Options for the resource.
549
+ :param pulumi.Input[Union['WebForwardingRuleServiceIamBindingConditionArgs', 'WebForwardingRuleServiceIamBindingConditionArgsDict']] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
550
+ Structure is documented below.
551
+ :param pulumi.Input[_builtins.str] forwarding_rule_service_name: Used to find the parent resource to bind the IAM policy to
552
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] members: Identities that will be granted the privilege in `role`.
553
+ Each entry can have one of the following values:
554
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
555
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
556
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
557
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
558
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
559
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
560
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
561
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
562
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
563
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
564
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
565
+ :param pulumi.Input[_builtins.str] role: The role that should be applied. Only one
566
+ `iap.WebForwardingRuleServiceIamBinding` can be used per role. Note that custom roles must be of the format
567
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
568
+ """
569
+ ...
570
+ @overload
571
+ def __init__(__self__,
572
+ resource_name: str,
573
+ args: WebForwardingRuleServiceIamBindingArgs,
574
+ opts: Optional[pulumi.ResourceOptions] = None):
575
+ """
576
+ Three different resources help you manage your IAM policy for Identity-Aware Proxy WebForwardingRuleService. Each of these resources serves a different use case:
577
+
578
+ * `iap.WebForwardingRuleServiceIamPolicy`: Authoritative. Sets the IAM policy for the webforwardingruleservice and replaces any existing policy already attached.
579
+ * `iap.WebForwardingRuleServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the webforwardingruleservice are preserved.
580
+ * `iap.WebForwardingRuleServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the webforwardingruleservice are preserved.
581
+
582
+ A data source can be used to retrieve policy data in advent you do not need creation
583
+
584
+ * `iap.WebForwardingRuleServiceIamPolicy`: Retrieves the IAM policy for the webforwardingruleservice
585
+
586
+ > **Note:** `iap.WebForwardingRuleServiceIamPolicy` **cannot** be used in conjunction with `iap.WebForwardingRuleServiceIamBinding` and `iap.WebForwardingRuleServiceIamMember` or they will fight over what your policy should be.
587
+
588
+ > **Note:** `iap.WebForwardingRuleServiceIamBinding` resources **can be** used in conjunction with `iap.WebForwardingRuleServiceIamMember` resources **only if** they do not grant privilege to the same role.
589
+
590
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
591
+
592
+ ## iap.WebForwardingRuleServiceIamPolicy
593
+
594
+ ```python
595
+ import pulumi
596
+ import pulumi_gcp as gcp
597
+
598
+ admin = gcp.organizations.get_iam_policy(bindings=[{
599
+ "role": "roles/iap.httpsResourceAccessor",
600
+ "members": ["user:jane@example.com"],
601
+ }])
602
+ policy = gcp.iap.WebForwardingRuleServiceIamPolicy("policy",
603
+ project=default["project"],
604
+ forwarding_rule_service_name=default["name"],
605
+ policy_data=admin.policy_data)
606
+ ```
607
+
608
+ With IAM Conditions:
609
+
610
+ ```python
611
+ import pulumi
612
+ import pulumi_gcp as gcp
613
+
614
+ admin = gcp.organizations.get_iam_policy(bindings=[{
615
+ "role": "roles/iap.httpsResourceAccessor",
616
+ "members": ["user:jane@example.com"],
617
+ "condition": {
618
+ "title": "expires_after_2019_12_31",
619
+ "description": "Expiring at midnight of 2019-12-31",
620
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
621
+ },
622
+ }])
623
+ policy = gcp.iap.WebForwardingRuleServiceIamPolicy("policy",
624
+ project=default["project"],
625
+ forwarding_rule_service_name=default["name"],
626
+ policy_data=admin.policy_data)
627
+ ```
628
+ ## iap.WebForwardingRuleServiceIamBinding
629
+
630
+ ```python
631
+ import pulumi
632
+ import pulumi_gcp as gcp
633
+
634
+ binding = gcp.iap.WebForwardingRuleServiceIamBinding("binding",
635
+ project=default["project"],
636
+ forwarding_rule_service_name=default["name"],
637
+ role="roles/iap.httpsResourceAccessor",
638
+ members=["user:jane@example.com"])
639
+ ```
640
+
641
+ With IAM Conditions:
642
+
643
+ ```python
644
+ import pulumi
645
+ import pulumi_gcp as gcp
646
+
647
+ binding = gcp.iap.WebForwardingRuleServiceIamBinding("binding",
648
+ project=default["project"],
649
+ forwarding_rule_service_name=default["name"],
650
+ role="roles/iap.httpsResourceAccessor",
651
+ members=["user:jane@example.com"],
652
+ condition={
653
+ "title": "expires_after_2019_12_31",
654
+ "description": "Expiring at midnight of 2019-12-31",
655
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
656
+ })
657
+ ```
658
+ ## iap.WebForwardingRuleServiceIamMember
659
+
660
+ ```python
661
+ import pulumi
662
+ import pulumi_gcp as gcp
663
+
664
+ member = gcp.iap.WebForwardingRuleServiceIamMember("member",
665
+ project=default["project"],
666
+ forwarding_rule_service_name=default["name"],
667
+ role="roles/iap.httpsResourceAccessor",
668
+ member="user:jane@example.com")
669
+ ```
670
+
671
+ With IAM Conditions:
672
+
673
+ ```python
674
+ import pulumi
675
+ import pulumi_gcp as gcp
676
+
677
+ member = gcp.iap.WebForwardingRuleServiceIamMember("member",
678
+ project=default["project"],
679
+ forwarding_rule_service_name=default["name"],
680
+ role="roles/iap.httpsResourceAccessor",
681
+ member="user:jane@example.com",
682
+ condition={
683
+ "title": "expires_after_2019_12_31",
684
+ "description": "Expiring at midnight of 2019-12-31",
685
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
686
+ })
687
+ ```
688
+
689
+ ## This resource supports User Project Overrides.
690
+
691
+ -
692
+
693
+ # IAM policy for Identity-Aware Proxy WebForwardingRuleService
694
+
695
+ Three different resources help you manage your IAM policy for Identity-Aware Proxy WebForwardingRuleService. Each of these resources serves a different use case:
696
+
697
+ * `iap.WebForwardingRuleServiceIamPolicy`: Authoritative. Sets the IAM policy for the webforwardingruleservice and replaces any existing policy already attached.
698
+ * `iap.WebForwardingRuleServiceIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the webforwardingruleservice are preserved.
699
+ * `iap.WebForwardingRuleServiceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the webforwardingruleservice are preserved.
700
+
701
+ A data source can be used to retrieve policy data in advent you do not need creation
702
+
703
+ * `iap.WebForwardingRuleServiceIamPolicy`: Retrieves the IAM policy for the webforwardingruleservice
704
+
705
+ > **Note:** `iap.WebForwardingRuleServiceIamPolicy` **cannot** be used in conjunction with `iap.WebForwardingRuleServiceIamBinding` and `iap.WebForwardingRuleServiceIamMember` or they will fight over what your policy should be.
706
+
707
+ > **Note:** `iap.WebForwardingRuleServiceIamBinding` resources **can be** used in conjunction with `iap.WebForwardingRuleServiceIamMember` resources **only if** they do not grant privilege to the same role.
708
+
709
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
710
+
711
+ ## iap.WebForwardingRuleServiceIamPolicy
712
+
713
+ ```python
714
+ import pulumi
715
+ import pulumi_gcp as gcp
716
+
717
+ admin = gcp.organizations.get_iam_policy(bindings=[{
718
+ "role": "roles/iap.httpsResourceAccessor",
719
+ "members": ["user:jane@example.com"],
720
+ }])
721
+ policy = gcp.iap.WebForwardingRuleServiceIamPolicy("policy",
722
+ project=default["project"],
723
+ forwarding_rule_service_name=default["name"],
724
+ policy_data=admin.policy_data)
725
+ ```
726
+
727
+ With IAM Conditions:
728
+
729
+ ```python
730
+ import pulumi
731
+ import pulumi_gcp as gcp
732
+
733
+ admin = gcp.organizations.get_iam_policy(bindings=[{
734
+ "role": "roles/iap.httpsResourceAccessor",
735
+ "members": ["user:jane@example.com"],
736
+ "condition": {
737
+ "title": "expires_after_2019_12_31",
738
+ "description": "Expiring at midnight of 2019-12-31",
739
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
740
+ },
741
+ }])
742
+ policy = gcp.iap.WebForwardingRuleServiceIamPolicy("policy",
743
+ project=default["project"],
744
+ forwarding_rule_service_name=default["name"],
745
+ policy_data=admin.policy_data)
746
+ ```
747
+ ## iap.WebForwardingRuleServiceIamBinding
748
+
749
+ ```python
750
+ import pulumi
751
+ import pulumi_gcp as gcp
752
+
753
+ binding = gcp.iap.WebForwardingRuleServiceIamBinding("binding",
754
+ project=default["project"],
755
+ forwarding_rule_service_name=default["name"],
756
+ role="roles/iap.httpsResourceAccessor",
757
+ members=["user:jane@example.com"])
758
+ ```
759
+
760
+ With IAM Conditions:
761
+
762
+ ```python
763
+ import pulumi
764
+ import pulumi_gcp as gcp
765
+
766
+ binding = gcp.iap.WebForwardingRuleServiceIamBinding("binding",
767
+ project=default["project"],
768
+ forwarding_rule_service_name=default["name"],
769
+ role="roles/iap.httpsResourceAccessor",
770
+ members=["user:jane@example.com"],
771
+ condition={
772
+ "title": "expires_after_2019_12_31",
773
+ "description": "Expiring at midnight of 2019-12-31",
774
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
775
+ })
776
+ ```
777
+ ## iap.WebForwardingRuleServiceIamMember
778
+
779
+ ```python
780
+ import pulumi
781
+ import pulumi_gcp as gcp
782
+
783
+ member = gcp.iap.WebForwardingRuleServiceIamMember("member",
784
+ project=default["project"],
785
+ forwarding_rule_service_name=default["name"],
786
+ role="roles/iap.httpsResourceAccessor",
787
+ member="user:jane@example.com")
788
+ ```
789
+
790
+ With IAM Conditions:
791
+
792
+ ```python
793
+ import pulumi
794
+ import pulumi_gcp as gcp
795
+
796
+ member = gcp.iap.WebForwardingRuleServiceIamMember("member",
797
+ project=default["project"],
798
+ forwarding_rule_service_name=default["name"],
799
+ role="roles/iap.httpsResourceAccessor",
800
+ member="user:jane@example.com",
801
+ condition={
802
+ "title": "expires_after_2019_12_31",
803
+ "description": "Expiring at midnight of 2019-12-31",
804
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
805
+ })
806
+ ```
807
+
808
+ ## Import
809
+
810
+ For all import syntaxes, the "resource in question" can take any of the following forms:
811
+
812
+ * projects/{{project}}/iap_web/forwarding_rule/services/{{name}}
813
+
814
+ * {{project}}/{{name}}
815
+
816
+ * {{name}}
817
+
818
+ Any variables not passed in the import command will be taken from the provider configuration.
819
+
820
+ Identity-Aware Proxy webforwardingruleservice IAM resources can be imported using the resource identifiers, role, and member.
821
+
822
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
823
+
824
+ ```sh
825
+ $ pulumi import gcp:iap/webForwardingRuleServiceIamBinding:WebForwardingRuleServiceIamBinding editor "projects/{{project}}/iap_web/forwarding_rule/services/{{web_forwarding_rule_service}} roles/iap.httpsResourceAccessor user:jane@example.com"
826
+ ```
827
+
828
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
829
+
830
+ ```sh
831
+ $ pulumi import gcp:iap/webForwardingRuleServiceIamBinding:WebForwardingRuleServiceIamBinding editor "projects/{{project}}/iap_web/forwarding_rule/services/{{web_forwarding_rule_service}} roles/iap.httpsResourceAccessor"
832
+ ```
833
+
834
+ IAM policy imports use the identifier of the resource in question, e.g.
835
+
836
+ ```sh
837
+ $ pulumi import gcp:iap/webForwardingRuleServiceIamBinding:WebForwardingRuleServiceIamBinding editor projects/{{project}}/iap_web/forwarding_rule/services/{{web_forwarding_rule_service}}
838
+ ```
839
+
840
+ -> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the
841
+
842
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
843
+
844
+ :param str resource_name: The name of the resource.
845
+ :param WebForwardingRuleServiceIamBindingArgs args: The arguments to use to populate this resource's properties.
846
+ :param pulumi.ResourceOptions opts: Options for the resource.
847
+ """
848
+ ...
849
+ def __init__(__self__, resource_name: str, *args, **kwargs):
850
+ resource_args, opts = _utilities.get_resource_args_opts(WebForwardingRuleServiceIamBindingArgs, pulumi.ResourceOptions, *args, **kwargs)
851
+ if resource_args is not None:
852
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
853
+ else:
854
+ __self__._internal_init(resource_name, *args, **kwargs)
855
+
856
+ def _internal_init(__self__,
857
+ resource_name: str,
858
+ opts: Optional[pulumi.ResourceOptions] = None,
859
+ condition: Optional[pulumi.Input[Union['WebForwardingRuleServiceIamBindingConditionArgs', 'WebForwardingRuleServiceIamBindingConditionArgsDict']]] = None,
860
+ forwarding_rule_service_name: Optional[pulumi.Input[_builtins.str]] = None,
861
+ members: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
862
+ project: Optional[pulumi.Input[_builtins.str]] = None,
863
+ role: Optional[pulumi.Input[_builtins.str]] = None,
864
+ __props__=None):
865
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
866
+ if not isinstance(opts, pulumi.ResourceOptions):
867
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
868
+ if opts.id is None:
869
+ if __props__ is not None:
870
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
871
+ __props__ = WebForwardingRuleServiceIamBindingArgs.__new__(WebForwardingRuleServiceIamBindingArgs)
872
+
873
+ __props__.__dict__["condition"] = condition
874
+ if forwarding_rule_service_name is None and not opts.urn:
875
+ raise TypeError("Missing required property 'forwarding_rule_service_name'")
876
+ __props__.__dict__["forwarding_rule_service_name"] = forwarding_rule_service_name
877
+ if members is None and not opts.urn:
878
+ raise TypeError("Missing required property 'members'")
879
+ __props__.__dict__["members"] = members
880
+ __props__.__dict__["project"] = project
881
+ if role is None and not opts.urn:
882
+ raise TypeError("Missing required property 'role'")
883
+ __props__.__dict__["role"] = role
884
+ __props__.__dict__["etag"] = None
885
+ super(WebForwardingRuleServiceIamBinding, __self__).__init__(
886
+ 'gcp:iap/webForwardingRuleServiceIamBinding:WebForwardingRuleServiceIamBinding',
887
+ resource_name,
888
+ __props__,
889
+ opts)
890
+
891
+ @staticmethod
892
+ def get(resource_name: str,
893
+ id: pulumi.Input[str],
894
+ opts: Optional[pulumi.ResourceOptions] = None,
895
+ condition: Optional[pulumi.Input[Union['WebForwardingRuleServiceIamBindingConditionArgs', 'WebForwardingRuleServiceIamBindingConditionArgsDict']]] = None,
896
+ etag: Optional[pulumi.Input[_builtins.str]] = None,
897
+ forwarding_rule_service_name: Optional[pulumi.Input[_builtins.str]] = None,
898
+ members: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
899
+ project: Optional[pulumi.Input[_builtins.str]] = None,
900
+ role: Optional[pulumi.Input[_builtins.str]] = None) -> 'WebForwardingRuleServiceIamBinding':
901
+ """
902
+ Get an existing WebForwardingRuleServiceIamBinding resource's state with the given name, id, and optional extra
903
+ properties used to qualify the lookup.
904
+
905
+ :param str resource_name: The unique name of the resulting resource.
906
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
907
+ :param pulumi.ResourceOptions opts: Options for the resource.
908
+ :param pulumi.Input[Union['WebForwardingRuleServiceIamBindingConditionArgs', 'WebForwardingRuleServiceIamBindingConditionArgsDict']] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
909
+ Structure is documented below.
910
+ :param pulumi.Input[_builtins.str] etag: (Computed) The etag of the IAM policy.
911
+ :param pulumi.Input[_builtins.str] forwarding_rule_service_name: Used to find the parent resource to bind the IAM policy to
912
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] members: Identities that will be granted the privilege in `role`.
913
+ Each entry can have one of the following values:
914
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
915
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
916
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
917
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
918
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
919
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
920
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
921
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
922
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
923
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
924
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
925
+ :param pulumi.Input[_builtins.str] role: The role that should be applied. Only one
926
+ `iap.WebForwardingRuleServiceIamBinding` can be used per role. Note that custom roles must be of the format
927
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
928
+ """
929
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
930
+
931
+ __props__ = _WebForwardingRuleServiceIamBindingState.__new__(_WebForwardingRuleServiceIamBindingState)
932
+
933
+ __props__.__dict__["condition"] = condition
934
+ __props__.__dict__["etag"] = etag
935
+ __props__.__dict__["forwarding_rule_service_name"] = forwarding_rule_service_name
936
+ __props__.__dict__["members"] = members
937
+ __props__.__dict__["project"] = project
938
+ __props__.__dict__["role"] = role
939
+ return WebForwardingRuleServiceIamBinding(resource_name, opts=opts, __props__=__props__)
940
+
941
+ @_builtins.property
942
+ @pulumi.getter
943
+ def condition(self) -> pulumi.Output[Optional['outputs.WebForwardingRuleServiceIamBindingCondition']]:
944
+ """
945
+ An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
946
+ Structure is documented below.
947
+ """
948
+ return pulumi.get(self, "condition")
949
+
950
+ @_builtins.property
951
+ @pulumi.getter
952
+ def etag(self) -> pulumi.Output[_builtins.str]:
953
+ """
954
+ (Computed) The etag of the IAM policy.
955
+ """
956
+ return pulumi.get(self, "etag")
957
+
958
+ @_builtins.property
959
+ @pulumi.getter(name="forwardingRuleServiceName")
960
+ def forwarding_rule_service_name(self) -> pulumi.Output[_builtins.str]:
961
+ """
962
+ Used to find the parent resource to bind the IAM policy to
963
+ """
964
+ return pulumi.get(self, "forwarding_rule_service_name")
965
+
966
+ @_builtins.property
967
+ @pulumi.getter
968
+ def members(self) -> pulumi.Output[Sequence[_builtins.str]]:
969
+ """
970
+ Identities that will be granted the privilege in `role`.
971
+ Each entry can have one of the following values:
972
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
973
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
974
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
975
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
976
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
977
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
978
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
979
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
980
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
981
+ """
982
+ return pulumi.get(self, "members")
983
+
984
+ @_builtins.property
985
+ @pulumi.getter
986
+ def project(self) -> pulumi.Output[_builtins.str]:
987
+ """
988
+ The ID of the project in which the resource belongs.
989
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
990
+ """
991
+ return pulumi.get(self, "project")
992
+
993
+ @_builtins.property
994
+ @pulumi.getter
995
+ def role(self) -> pulumi.Output[_builtins.str]:
996
+ """
997
+ The role that should be applied. Only one
998
+ `iap.WebForwardingRuleServiceIamBinding` can be used per role. Note that custom roles must be of the format
999
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
1000
+ """
1001
+ return pulumi.get(self, "role")
1002
+