pulumi-gcp 8.32.0a1747459264__py3-none-any.whl → 8.33.0a1747896426__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 (256) hide show
  1. pulumi_gcp/__init__.py +88 -0
  2. pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py +2 -2
  3. pulumi_gcp/apigateway/api_config_iam_binding.py +13 -0
  4. pulumi_gcp/apigateway/api_config_iam_member.py +13 -0
  5. pulumi_gcp/apigateway/api_config_iam_policy.py +13 -0
  6. pulumi_gcp/apigateway/api_iam_binding.py +13 -0
  7. pulumi_gcp/apigateway/api_iam_member.py +13 -0
  8. pulumi_gcp/apigateway/api_iam_policy.py +13 -0
  9. pulumi_gcp/apigateway/gateway_iam_binding.py +13 -0
  10. pulumi_gcp/apigateway/gateway_iam_member.py +13 -0
  11. pulumi_gcp/apigateway/gateway_iam_policy.py +13 -0
  12. pulumi_gcp/apigateway/get_api_config_iam_policy.py +2 -0
  13. pulumi_gcp/apigateway/get_api_iam_policy.py +2 -0
  14. pulumi_gcp/apigateway/get_gateway_iam_policy.py +2 -0
  15. pulumi_gcp/apigee/environment_iam_binding.py +27 -0
  16. pulumi_gcp/apigee/environment_iam_member.py +27 -0
  17. pulumi_gcp/apigee/environment_iam_policy.py +27 -0
  18. pulumi_gcp/apigee/get_environment_iam_policy.py +6 -0
  19. pulumi_gcp/beyondcorp/__init__.py +1 -0
  20. pulumi_gcp/beyondcorp/application.py +8 -4
  21. pulumi_gcp/beyondcorp/application_iam_binding.py +26 -0
  22. pulumi_gcp/beyondcorp/application_iam_member.py +26 -0
  23. pulumi_gcp/beyondcorp/application_iam_policy.py +26 -0
  24. pulumi_gcp/beyondcorp/get_application_iam_policy.py +4 -0
  25. pulumi_gcp/beyondcorp/get_security_gateway.py +222 -0
  26. pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +2 -0
  27. pulumi_gcp/beyondcorp/outputs.py +45 -0
  28. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +13 -0
  29. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +13 -0
  30. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +13 -0
  31. pulumi_gcp/bigquery/__init__.py +1 -0
  32. pulumi_gcp/bigquery/connection_iam_binding.py +4 -11
  33. pulumi_gcp/bigquery/connection_iam_member.py +4 -11
  34. pulumi_gcp/bigquery/connection_iam_policy.py +4 -11
  35. pulumi_gcp/bigquery/data_transfer_config.py +2 -2
  36. pulumi_gcp/bigquery/get_connection_iam_policy.py +2 -4
  37. pulumi_gcp/bigquery/get_table_iam_policy.py +4 -0
  38. pulumi_gcp/bigquery/iam_binding.py +26 -0
  39. pulumi_gcp/bigquery/iam_member.py +26 -0
  40. pulumi_gcp/bigquery/iam_policy.py +26 -0
  41. pulumi_gcp/bigquery/row_access_policy.py +787 -0
  42. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +7 -7
  43. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +7 -7
  44. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +7 -7
  45. pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +2 -2
  46. pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +2 -2
  47. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +7 -7
  48. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +7 -7
  49. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +7 -7
  50. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +6 -6
  51. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +13 -0
  52. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +13 -0
  53. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +13 -0
  54. pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +2 -0
  55. pulumi_gcp/bigtable/logical_view.py +49 -0
  56. pulumi_gcp/cloudbuild/trigger.py +2 -2
  57. pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +6 -0
  58. pulumi_gcp/clouddeploy/get_target_iam_policy.py +6 -0
  59. pulumi_gcp/colab/schedule.py +2 -2
  60. pulumi_gcp/compute/_inputs.py +126 -0
  61. pulumi_gcp/compute/backend_service.py +259 -51
  62. pulumi_gcp/compute/get_backend_service.py +23 -1
  63. pulumi_gcp/compute/get_global_forwarding_rule.py +23 -1
  64. pulumi_gcp/compute/get_instance_template.py +12 -1
  65. pulumi_gcp/compute/get_network_endpoint_group.py +12 -1
  66. pulumi_gcp/compute/global_forwarding_rule.py +199 -0
  67. pulumi_gcp/compute/instance_template.py +28 -0
  68. pulumi_gcp/compute/network_endpoint_group.py +28 -0
  69. pulumi_gcp/compute/outputs.py +110 -0
  70. pulumi_gcp/compute/region_backend_service.py +58 -51
  71. pulumi_gcp/container/cluster.py +47 -0
  72. pulumi_gcp/container/get_cluster.py +12 -1
  73. pulumi_gcp/datacatalog/entry_group_iam_binding.py +34 -0
  74. pulumi_gcp/datacatalog/entry_group_iam_member.py +34 -0
  75. pulumi_gcp/datacatalog/entry_group_iam_policy.py +34 -0
  76. pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +8 -0
  77. pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +8 -0
  78. pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +8 -0
  79. pulumi_gcp/datacatalog/tag_template_iam_binding.py +34 -0
  80. pulumi_gcp/datacatalog/tag_template_iam_member.py +34 -0
  81. pulumi_gcp/datacatalog/tag_template_iam_policy.py +34 -0
  82. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +34 -0
  83. pulumi_gcp/datacatalog/taxonomy_iam_member.py +34 -0
  84. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +34 -0
  85. pulumi_gcp/dataplex/__init__.py +5 -0
  86. pulumi_gcp/dataplex/_inputs.py +98 -0
  87. pulumi_gcp/dataplex/aspect_type_iam_binding.py +13 -0
  88. pulumi_gcp/dataplex/aspect_type_iam_member.py +13 -0
  89. pulumi_gcp/dataplex/aspect_type_iam_policy.py +13 -0
  90. pulumi_gcp/dataplex/asset_iam_binding.py +53 -0
  91. pulumi_gcp/dataplex/asset_iam_member.py +53 -0
  92. pulumi_gcp/dataplex/asset_iam_policy.py +53 -0
  93. pulumi_gcp/dataplex/datascan_iam_binding.py +13 -0
  94. pulumi_gcp/dataplex/datascan_iam_member.py +13 -0
  95. pulumi_gcp/dataplex/datascan_iam_policy.py +13 -0
  96. pulumi_gcp/dataplex/entry_group_iam_binding.py +13 -0
  97. pulumi_gcp/dataplex/entry_group_iam_member.py +13 -0
  98. pulumi_gcp/dataplex/entry_group_iam_policy.py +13 -0
  99. pulumi_gcp/dataplex/entry_type_iam_binding.py +13 -0
  100. pulumi_gcp/dataplex/entry_type_iam_member.py +13 -0
  101. pulumi_gcp/dataplex/entry_type_iam_policy.py +13 -0
  102. pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +2 -0
  103. pulumi_gcp/dataplex/get_asset_iam_policy.py +10 -0
  104. pulumi_gcp/dataplex/get_datascan_iam_policy.py +2 -0
  105. pulumi_gcp/dataplex/get_entry_group_iam_policy.py +2 -0
  106. pulumi_gcp/dataplex/get_entry_type_iam_policy.py +2 -0
  107. pulumi_gcp/dataplex/get_glossary_iam_policy.py +185 -0
  108. pulumi_gcp/dataplex/get_lake_iam_policy.py +6 -0
  109. pulumi_gcp/dataplex/get_task_iam_policy.py +2 -0
  110. pulumi_gcp/dataplex/get_zone_iam_policy.py +8 -0
  111. pulumi_gcp/dataplex/glossary.py +772 -0
  112. pulumi_gcp/dataplex/glossary_iam_binding.py +837 -0
  113. pulumi_gcp/dataplex/glossary_iam_member.py +837 -0
  114. pulumi_gcp/dataplex/glossary_iam_policy.py +676 -0
  115. pulumi_gcp/dataplex/lake_iam_binding.py +27 -0
  116. pulumi_gcp/dataplex/lake_iam_member.py +27 -0
  117. pulumi_gcp/dataplex/lake_iam_policy.py +27 -0
  118. pulumi_gcp/dataplex/outputs.py +56 -0
  119. pulumi_gcp/dataplex/task_iam_binding.py +13 -0
  120. pulumi_gcp/dataplex/task_iam_member.py +13 -0
  121. pulumi_gcp/dataplex/task_iam_policy.py +13 -0
  122. pulumi_gcp/dataplex/zone_iam_binding.py +40 -0
  123. pulumi_gcp/dataplex/zone_iam_member.py +40 -0
  124. pulumi_gcp/dataplex/zone_iam_policy.py +40 -0
  125. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +4 -25
  126. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +4 -25
  127. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +4 -25
  128. pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +2 -8
  129. pulumi_gcp/dataproc/get_metastore_database_iam_policy.py +8 -0
  130. pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +2 -0
  131. pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +2 -0
  132. pulumi_gcp/dataproc/get_metastore_table_iam_policy.py +10 -0
  133. pulumi_gcp/dataproc/metastore_database_iam_binding.py +40 -0
  134. pulumi_gcp/dataproc/metastore_database_iam_member.py +40 -0
  135. pulumi_gcp/dataproc/metastore_database_iam_policy.py +40 -0
  136. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +13 -0
  137. pulumi_gcp/dataproc/metastore_federation_iam_member.py +13 -0
  138. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +13 -0
  139. pulumi_gcp/dataproc/metastore_service_iam_binding.py +13 -0
  140. pulumi_gcp/dataproc/metastore_service_iam_member.py +13 -0
  141. pulumi_gcp/dataproc/metastore_service_iam_policy.py +13 -0
  142. pulumi_gcp/dataproc/metastore_table_iam_binding.py +53 -0
  143. pulumi_gcp/dataproc/metastore_table_iam_member.py +53 -0
  144. pulumi_gcp/dataproc/metastore_table_iam_policy.py +53 -0
  145. pulumi_gcp/diagflow/_inputs.py +56 -0
  146. pulumi_gcp/diagflow/cx_agent.py +60 -0
  147. pulumi_gcp/diagflow/cx_flow.py +2 -0
  148. pulumi_gcp/diagflow/entity_type.py +2 -2
  149. pulumi_gcp/diagflow/outputs.py +35 -0
  150. pulumi_gcp/edgecontainer/node_pool.py +2 -2
  151. pulumi_gcp/endpoints/consumers_iam_binding.py +26 -0
  152. pulumi_gcp/endpoints/consumers_iam_member.py +26 -0
  153. pulumi_gcp/endpoints/consumers_iam_policy.py +26 -0
  154. pulumi_gcp/endpoints/get_service_consumers_iam_policy.py +8 -0
  155. pulumi_gcp/endpoints/get_service_iam_policy.py +6 -0
  156. pulumi_gcp/endpoints/service_iam_binding.py +13 -0
  157. pulumi_gcp/endpoints/service_iam_member.py +13 -0
  158. pulumi_gcp/endpoints/service_iam_policy.py +13 -0
  159. pulumi_gcp/firebase/__init__.py +3 -0
  160. pulumi_gcp/firebase/_inputs.py +1527 -0
  161. pulumi_gcp/firebase/app_hosting_backend.py +104 -0
  162. pulumi_gcp/firebase/app_hosting_default_domain.py +721 -0
  163. pulumi_gcp/firebase/app_hosting_domain.py +796 -0
  164. pulumi_gcp/firebase/app_hosting_traffic.py +914 -0
  165. pulumi_gcp/firebase/extensions_instance.py +4 -4
  166. pulumi_gcp/firebase/outputs.py +1075 -0
  167. pulumi_gcp/firestore/database.py +9 -0
  168. pulumi_gcp/gemini/get_repository_group_iam_policy.py +4 -0
  169. pulumi_gcp/gemini/repository_group_iam_binding.py +26 -0
  170. pulumi_gcp/gemini/repository_group_iam_member.py +26 -0
  171. pulumi_gcp/gemini/repository_group_iam_policy.py +26 -0
  172. pulumi_gcp/gkebackup/backup_channel.py +9 -9
  173. pulumi_gcp/gkebackup/restore_channel.py +9 -9
  174. pulumi_gcp/gkehub/get_membership_iam_policy.py +2 -0
  175. pulumi_gcp/gkehub/get_scope_iam_policy.py +2 -0
  176. pulumi_gcp/gkehub/membership_iam_binding.py +13 -0
  177. pulumi_gcp/gkehub/membership_iam_member.py +13 -0
  178. pulumi_gcp/gkehub/membership_iam_policy.py +13 -0
  179. pulumi_gcp/gkehub/scope_iam_binding.py +13 -0
  180. pulumi_gcp/gkehub/scope_iam_member.py +13 -0
  181. pulumi_gcp/gkehub/scope_iam_policy.py +13 -0
  182. pulumi_gcp/iam/__init__.py +4 -0
  183. pulumi_gcp/iam/_inputs.py +432 -0
  184. pulumi_gcp/iam/get_workload_identity_pool.py +35 -1
  185. pulumi_gcp/iam/get_workload_identity_pool_iam_policy.py +156 -0
  186. pulumi_gcp/iam/oauth_client_credential.py +6 -0
  187. pulumi_gcp/iam/outputs.py +510 -0
  188. pulumi_gcp/iam/workload_identity_pool.py +446 -24
  189. pulumi_gcp/iam/workload_identity_pool_iam_binding.py +539 -0
  190. pulumi_gcp/iam/workload_identity_pool_iam_member.py +539 -0
  191. pulumi_gcp/iam/workload_identity_pool_iam_policy.py +358 -0
  192. pulumi_gcp/iap/app_engine_service_iam_binding.py +14 -14
  193. pulumi_gcp/iap/app_engine_service_iam_member.py +14 -14
  194. pulumi_gcp/iap/app_engine_service_iam_policy.py +14 -14
  195. pulumi_gcp/iap/app_engine_version_iam_binding.py +14 -14
  196. pulumi_gcp/iap/app_engine_version_iam_member.py +14 -14
  197. pulumi_gcp/iap/app_engine_version_iam_policy.py +14 -14
  198. pulumi_gcp/iap/get_app_engine_service_iam_policy.py +4 -4
  199. pulumi_gcp/iap/get_app_engine_version_iam_policy.py +4 -4
  200. pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +2 -0
  201. pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +6 -0
  202. pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +6 -0
  203. pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +2 -2
  204. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +13 -0
  205. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +13 -0
  206. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +13 -0
  207. pulumi_gcp/iap/tunnel_instance_iam_binding.py +27 -0
  208. pulumi_gcp/iap/tunnel_instance_iam_member.py +27 -0
  209. pulumi_gcp/iap/tunnel_instance_iam_policy.py +27 -0
  210. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +27 -0
  211. pulumi_gcp/iap/web_region_backend_service_iam_member.py +27 -0
  212. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +27 -0
  213. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +7 -7
  214. pulumi_gcp/iap/web_type_app_enging_iam_member.py +7 -7
  215. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +7 -7
  216. pulumi_gcp/lustre/__init__.py +1 -0
  217. pulumi_gcp/lustre/get_instance.py +280 -0
  218. pulumi_gcp/lustre/instance.py +12 -0
  219. pulumi_gcp/netapp/backup.py +2 -2
  220. pulumi_gcp/networksecurity/intercept_deployment.py +10 -0
  221. pulumi_gcp/networksecurity/intercept_deployment_group.py +8 -0
  222. pulumi_gcp/networksecurity/intercept_endpoint_group.py +12 -0
  223. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +16 -0
  224. pulumi_gcp/pulumi-plugin.json +1 -1
  225. pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +2 -0
  226. pulumi_gcp/secretmanager/get_secret_iam_policy.py +2 -0
  227. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +13 -0
  228. pulumi_gcp/secretmanager/regional_secret_iam_member.py +13 -0
  229. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +13 -0
  230. pulumi_gcp/secretmanager/secret_iam_binding.py +13 -0
  231. pulumi_gcp/secretmanager/secret_iam_member.py +13 -0
  232. pulumi_gcp/secretmanager/secret_iam_policy.py +13 -0
  233. pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +2 -4
  234. pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +2 -4
  235. pulumi_gcp/securesourcemanager/repository_iam_binding.py +4 -11
  236. pulumi_gcp/securesourcemanager/repository_iam_member.py +4 -11
  237. pulumi_gcp/securesourcemanager/repository_iam_policy.py +4 -11
  238. pulumi_gcp/securitycenter/v2_organization_scc_big_query_export.py +2 -2
  239. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +2 -2
  240. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_binding.py +13 -0
  241. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_member.py +13 -0
  242. pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_policy.py +13 -0
  243. pulumi_gcp/vertex/get_ai_feature_online_store_featureview_iam_policy.py +2 -0
  244. pulumi_gcp/vmwareengine/external_address.py +4 -4
  245. pulumi_gcp/workstations/get_workstation_config_iam_policy.py +6 -0
  246. pulumi_gcp/workstations/get_workstation_iam_policy.py +10 -0
  247. pulumi_gcp/workstations/workstation_config_iam_binding.py +33 -0
  248. pulumi_gcp/workstations/workstation_config_iam_member.py +33 -0
  249. pulumi_gcp/workstations/workstation_config_iam_policy.py +33 -0
  250. pulumi_gcp/workstations/workstation_iam_binding.py +53 -0
  251. pulumi_gcp/workstations/workstation_iam_member.py +53 -0
  252. pulumi_gcp/workstations/workstation_iam_policy.py +53 -0
  253. {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.33.0a1747896426.dist-info}/METADATA +1 -1
  254. {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.33.0a1747896426.dist-info}/RECORD +256 -241
  255. {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.33.0a1747896426.dist-info}/WHEEL +1 -1
  256. {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.33.0a1747896426.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,914 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from .. import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
19
+
20
+ __all__ = ['AppHostingTrafficArgs', 'AppHostingTraffic']
21
+
22
+ @pulumi.input_type
23
+ class AppHostingTrafficArgs:
24
+ def __init__(__self__, *,
25
+ backend: pulumi.Input[builtins.str],
26
+ location: pulumi.Input[builtins.str],
27
+ project: Optional[pulumi.Input[builtins.str]] = None,
28
+ rollout_policy: Optional[pulumi.Input['AppHostingTrafficRolloutPolicyArgs']] = None,
29
+ target: Optional[pulumi.Input['AppHostingTrafficTargetArgs']] = None):
30
+ """
31
+ The set of arguments for constructing a AppHostingTraffic resource.
32
+ :param pulumi.Input[builtins.str] backend: Id of the backend that this Traffic config applies to
33
+
34
+
35
+ - - -
36
+ :param pulumi.Input[builtins.str] location: The location the Backend that this Traffic config applies to
37
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
38
+ If it is not provided, the provider project is used.
39
+ :param pulumi.Input['AppHostingTrafficRolloutPolicyArgs'] rollout_policy: The policy for how builds and rollouts are triggered and rolled out.
40
+ Structure is documented below.
41
+ :param pulumi.Input['AppHostingTrafficTargetArgs'] target: Set to manually control the desired traffic for the backend. This will
42
+ cause current to eventually match this value. The percentages must add
43
+ up to 100.
44
+ Structure is documented below.
45
+ """
46
+ pulumi.set(__self__, "backend", backend)
47
+ pulumi.set(__self__, "location", location)
48
+ if project is not None:
49
+ pulumi.set(__self__, "project", project)
50
+ if rollout_policy is not None:
51
+ pulumi.set(__self__, "rollout_policy", rollout_policy)
52
+ if target is not None:
53
+ pulumi.set(__self__, "target", target)
54
+
55
+ @property
56
+ @pulumi.getter
57
+ def backend(self) -> pulumi.Input[builtins.str]:
58
+ """
59
+ Id of the backend that this Traffic config applies to
60
+
61
+
62
+ - - -
63
+ """
64
+ return pulumi.get(self, "backend")
65
+
66
+ @backend.setter
67
+ def backend(self, value: pulumi.Input[builtins.str]):
68
+ pulumi.set(self, "backend", value)
69
+
70
+ @property
71
+ @pulumi.getter
72
+ def location(self) -> pulumi.Input[builtins.str]:
73
+ """
74
+ The location the Backend that this Traffic config applies to
75
+ """
76
+ return pulumi.get(self, "location")
77
+
78
+ @location.setter
79
+ def location(self, value: pulumi.Input[builtins.str]):
80
+ pulumi.set(self, "location", value)
81
+
82
+ @property
83
+ @pulumi.getter
84
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
85
+ """
86
+ The ID of the project in which the resource belongs.
87
+ If it is not provided, the provider project is used.
88
+ """
89
+ return pulumi.get(self, "project")
90
+
91
+ @project.setter
92
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
93
+ pulumi.set(self, "project", value)
94
+
95
+ @property
96
+ @pulumi.getter(name="rolloutPolicy")
97
+ def rollout_policy(self) -> Optional[pulumi.Input['AppHostingTrafficRolloutPolicyArgs']]:
98
+ """
99
+ The policy for how builds and rollouts are triggered and rolled out.
100
+ Structure is documented below.
101
+ """
102
+ return pulumi.get(self, "rollout_policy")
103
+
104
+ @rollout_policy.setter
105
+ def rollout_policy(self, value: Optional[pulumi.Input['AppHostingTrafficRolloutPolicyArgs']]):
106
+ pulumi.set(self, "rollout_policy", value)
107
+
108
+ @property
109
+ @pulumi.getter
110
+ def target(self) -> Optional[pulumi.Input['AppHostingTrafficTargetArgs']]:
111
+ """
112
+ Set to manually control the desired traffic for the backend. This will
113
+ cause current to eventually match this value. The percentages must add
114
+ up to 100.
115
+ Structure is documented below.
116
+ """
117
+ return pulumi.get(self, "target")
118
+
119
+ @target.setter
120
+ def target(self, value: Optional[pulumi.Input['AppHostingTrafficTargetArgs']]):
121
+ pulumi.set(self, "target", value)
122
+
123
+
124
+ @pulumi.input_type
125
+ class _AppHostingTrafficState:
126
+ def __init__(__self__, *,
127
+ backend: Optional[pulumi.Input[builtins.str]] = None,
128
+ create_time: Optional[pulumi.Input[builtins.str]] = None,
129
+ currents: Optional[pulumi.Input[Sequence[pulumi.Input['AppHostingTrafficCurrentArgs']]]] = None,
130
+ delete_time: Optional[pulumi.Input[builtins.str]] = None,
131
+ etag: Optional[pulumi.Input[builtins.str]] = None,
132
+ location: Optional[pulumi.Input[builtins.str]] = None,
133
+ name: Optional[pulumi.Input[builtins.str]] = None,
134
+ project: Optional[pulumi.Input[builtins.str]] = None,
135
+ rollout_policy: Optional[pulumi.Input['AppHostingTrafficRolloutPolicyArgs']] = None,
136
+ target: Optional[pulumi.Input['AppHostingTrafficTargetArgs']] = None,
137
+ uid: Optional[pulumi.Input[builtins.str]] = None,
138
+ update_time: Optional[pulumi.Input[builtins.str]] = None):
139
+ """
140
+ Input properties used for looking up and filtering AppHostingTraffic resources.
141
+ :param pulumi.Input[builtins.str] backend: Id of the backend that this Traffic config applies to
142
+
143
+
144
+ - - -
145
+ :param pulumi.Input[builtins.str] create_time: Time at which the backend was created.
146
+ :param pulumi.Input[Sequence[pulumi.Input['AppHostingTrafficCurrentArgs']]] currents: Current state of traffic allocation for the backend.
147
+ When setting `target`, this field may differ for some time until the desired state is reached.
148
+ Structure is documented below.
149
+ :param pulumi.Input[builtins.str] delete_time: Time at which the backend was deleted.
150
+ :param pulumi.Input[builtins.str] etag: Server-computed checksum based on other values; may be sent
151
+ on update or delete to ensure operation is done on expected resource.
152
+ :param pulumi.Input[builtins.str] location: The location the Backend that this Traffic config applies to
153
+ :param pulumi.Input[builtins.str] name: Identifier. The resource name of the backend traffic config
154
+ Format:
155
+ `projects/{project}/locations/{locationId}/backends/{backendId}/traffic`.
156
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
157
+ If it is not provided, the provider project is used.
158
+ :param pulumi.Input['AppHostingTrafficRolloutPolicyArgs'] rollout_policy: The policy for how builds and rollouts are triggered and rolled out.
159
+ Structure is documented below.
160
+ :param pulumi.Input['AppHostingTrafficTargetArgs'] target: Set to manually control the desired traffic for the backend. This will
161
+ cause current to eventually match this value. The percentages must add
162
+ up to 100.
163
+ Structure is documented below.
164
+ :param pulumi.Input[builtins.str] uid: System-assigned, unique identifier.
165
+ :param pulumi.Input[builtins.str] update_time: Time at which the backend was last updated.
166
+ """
167
+ if backend is not None:
168
+ pulumi.set(__self__, "backend", backend)
169
+ if create_time is not None:
170
+ pulumi.set(__self__, "create_time", create_time)
171
+ if currents is not None:
172
+ pulumi.set(__self__, "currents", currents)
173
+ if delete_time is not None:
174
+ pulumi.set(__self__, "delete_time", delete_time)
175
+ if etag is not None:
176
+ pulumi.set(__self__, "etag", etag)
177
+ if location is not None:
178
+ pulumi.set(__self__, "location", location)
179
+ if name is not None:
180
+ pulumi.set(__self__, "name", name)
181
+ if project is not None:
182
+ pulumi.set(__self__, "project", project)
183
+ if rollout_policy is not None:
184
+ pulumi.set(__self__, "rollout_policy", rollout_policy)
185
+ if target is not None:
186
+ pulumi.set(__self__, "target", target)
187
+ if uid is not None:
188
+ pulumi.set(__self__, "uid", uid)
189
+ if update_time is not None:
190
+ pulumi.set(__self__, "update_time", update_time)
191
+
192
+ @property
193
+ @pulumi.getter
194
+ def backend(self) -> Optional[pulumi.Input[builtins.str]]:
195
+ """
196
+ Id of the backend that this Traffic config applies to
197
+
198
+
199
+ - - -
200
+ """
201
+ return pulumi.get(self, "backend")
202
+
203
+ @backend.setter
204
+ def backend(self, value: Optional[pulumi.Input[builtins.str]]):
205
+ pulumi.set(self, "backend", value)
206
+
207
+ @property
208
+ @pulumi.getter(name="createTime")
209
+ def create_time(self) -> Optional[pulumi.Input[builtins.str]]:
210
+ """
211
+ Time at which the backend was created.
212
+ """
213
+ return pulumi.get(self, "create_time")
214
+
215
+ @create_time.setter
216
+ def create_time(self, value: Optional[pulumi.Input[builtins.str]]):
217
+ pulumi.set(self, "create_time", value)
218
+
219
+ @property
220
+ @pulumi.getter
221
+ def currents(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AppHostingTrafficCurrentArgs']]]]:
222
+ """
223
+ Current state of traffic allocation for the backend.
224
+ When setting `target`, this field may differ for some time until the desired state is reached.
225
+ Structure is documented below.
226
+ """
227
+ return pulumi.get(self, "currents")
228
+
229
+ @currents.setter
230
+ def currents(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AppHostingTrafficCurrentArgs']]]]):
231
+ pulumi.set(self, "currents", value)
232
+
233
+ @property
234
+ @pulumi.getter(name="deleteTime")
235
+ def delete_time(self) -> Optional[pulumi.Input[builtins.str]]:
236
+ """
237
+ Time at which the backend was deleted.
238
+ """
239
+ return pulumi.get(self, "delete_time")
240
+
241
+ @delete_time.setter
242
+ def delete_time(self, value: Optional[pulumi.Input[builtins.str]]):
243
+ pulumi.set(self, "delete_time", value)
244
+
245
+ @property
246
+ @pulumi.getter
247
+ def etag(self) -> Optional[pulumi.Input[builtins.str]]:
248
+ """
249
+ Server-computed checksum based on other values; may be sent
250
+ on update or delete to ensure operation is done on expected resource.
251
+ """
252
+ return pulumi.get(self, "etag")
253
+
254
+ @etag.setter
255
+ def etag(self, value: Optional[pulumi.Input[builtins.str]]):
256
+ pulumi.set(self, "etag", value)
257
+
258
+ @property
259
+ @pulumi.getter
260
+ def location(self) -> Optional[pulumi.Input[builtins.str]]:
261
+ """
262
+ The location the Backend that this Traffic config applies to
263
+ """
264
+ return pulumi.get(self, "location")
265
+
266
+ @location.setter
267
+ def location(self, value: Optional[pulumi.Input[builtins.str]]):
268
+ pulumi.set(self, "location", value)
269
+
270
+ @property
271
+ @pulumi.getter
272
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
273
+ """
274
+ Identifier. The resource name of the backend traffic config
275
+ Format:
276
+ `projects/{project}/locations/{locationId}/backends/{backendId}/traffic`.
277
+ """
278
+ return pulumi.get(self, "name")
279
+
280
+ @name.setter
281
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
282
+ pulumi.set(self, "name", value)
283
+
284
+ @property
285
+ @pulumi.getter
286
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
287
+ """
288
+ The ID of the project in which the resource belongs.
289
+ If it is not provided, the provider project is used.
290
+ """
291
+ return pulumi.get(self, "project")
292
+
293
+ @project.setter
294
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
295
+ pulumi.set(self, "project", value)
296
+
297
+ @property
298
+ @pulumi.getter(name="rolloutPolicy")
299
+ def rollout_policy(self) -> Optional[pulumi.Input['AppHostingTrafficRolloutPolicyArgs']]:
300
+ """
301
+ The policy for how builds and rollouts are triggered and rolled out.
302
+ Structure is documented below.
303
+ """
304
+ return pulumi.get(self, "rollout_policy")
305
+
306
+ @rollout_policy.setter
307
+ def rollout_policy(self, value: Optional[pulumi.Input['AppHostingTrafficRolloutPolicyArgs']]):
308
+ pulumi.set(self, "rollout_policy", value)
309
+
310
+ @property
311
+ @pulumi.getter
312
+ def target(self) -> Optional[pulumi.Input['AppHostingTrafficTargetArgs']]:
313
+ """
314
+ Set to manually control the desired traffic for the backend. This will
315
+ cause current to eventually match this value. The percentages must add
316
+ up to 100.
317
+ Structure is documented below.
318
+ """
319
+ return pulumi.get(self, "target")
320
+
321
+ @target.setter
322
+ def target(self, value: Optional[pulumi.Input['AppHostingTrafficTargetArgs']]):
323
+ pulumi.set(self, "target", value)
324
+
325
+ @property
326
+ @pulumi.getter
327
+ def uid(self) -> Optional[pulumi.Input[builtins.str]]:
328
+ """
329
+ System-assigned, unique identifier.
330
+ """
331
+ return pulumi.get(self, "uid")
332
+
333
+ @uid.setter
334
+ def uid(self, value: Optional[pulumi.Input[builtins.str]]):
335
+ pulumi.set(self, "uid", value)
336
+
337
+ @property
338
+ @pulumi.getter(name="updateTime")
339
+ def update_time(self) -> Optional[pulumi.Input[builtins.str]]:
340
+ """
341
+ Time at which the backend was last updated.
342
+ """
343
+ return pulumi.get(self, "update_time")
344
+
345
+ @update_time.setter
346
+ def update_time(self, value: Optional[pulumi.Input[builtins.str]]):
347
+ pulumi.set(self, "update_time", value)
348
+
349
+
350
+ @pulumi.type_token("gcp:firebase/appHostingTraffic:AppHostingTraffic")
351
+ class AppHostingTraffic(pulumi.CustomResource):
352
+ @overload
353
+ def __init__(__self__,
354
+ resource_name: str,
355
+ opts: Optional[pulumi.ResourceOptions] = None,
356
+ backend: Optional[pulumi.Input[builtins.str]] = None,
357
+ location: Optional[pulumi.Input[builtins.str]] = None,
358
+ project: Optional[pulumi.Input[builtins.str]] = None,
359
+ rollout_policy: Optional[pulumi.Input[Union['AppHostingTrafficRolloutPolicyArgs', 'AppHostingTrafficRolloutPolicyArgsDict']]] = None,
360
+ target: Optional[pulumi.Input[Union['AppHostingTrafficTargetArgs', 'AppHostingTrafficTargetArgsDict']]] = None,
361
+ __props__=None):
362
+ """
363
+ Controls traffic configuration for a backend.
364
+
365
+ ## Example Usage
366
+
367
+ ### Firebase App Hosting Traffic Target
368
+
369
+ ```python
370
+ import pulumi
371
+ import pulumi_gcp as gcp
372
+
373
+ ### Include these blocks only once per project if you are starting from scratch ###
374
+ service_account = gcp.serviceaccount.Account("service_account",
375
+ project="my-project-name",
376
+ account_id="firebase-app-hosting-compute",
377
+ display_name="Firebase App Hosting compute service account",
378
+ create_ignore_already_exists=True)
379
+ fah = gcp.projects.Service("fah",
380
+ project="my-project-name",
381
+ service="firebaseapphosting.googleapis.com",
382
+ disable_on_destroy=False)
383
+ example_app_hosting_backend = gcp.firebase.AppHostingBackend("example",
384
+ project="my-project-name",
385
+ location="asia-east1",
386
+ backend_id="traffic-tg",
387
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
388
+ serving_locality="GLOBAL_ACCESS",
389
+ service_account=service_account.email,
390
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
391
+ example_app_hosting_build = gcp.firebase.AppHostingBuild("example",
392
+ project=example_app_hosting_backend.project,
393
+ location=example_app_hosting_backend.location,
394
+ backend=example_app_hosting_backend.backend_id,
395
+ build_id="target-build",
396
+ source={
397
+ "container": {
398
+ "image": "us-docker.pkg.dev/cloudrun/container/hello",
399
+ },
400
+ })
401
+ example = gcp.firebase.AppHostingTraffic("example",
402
+ project=example_app_hosting_backend.project,
403
+ location=example_app_hosting_backend.location,
404
+ backend=example_app_hosting_backend.backend_id,
405
+ target={
406
+ "splits": [{
407
+ "build": example_app_hosting_build.name,
408
+ "percent": 100,
409
+ }],
410
+ })
411
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
412
+ project="my-project-name",
413
+ role="roles/firebaseapphosting.computeRunner",
414
+ member=service_account.member)
415
+ ```
416
+ ### Firebase App Hosting Traffic Rollout Policy
417
+
418
+ ```python
419
+ import pulumi
420
+ import pulumi_gcp as gcp
421
+
422
+ ### Include these blocks only once per project if you are starting from scratch ###
423
+ service_account = gcp.serviceaccount.Account("service_account",
424
+ project="my-project-name",
425
+ account_id="firebase-app-hosting-compute",
426
+ display_name="Firebase App Hosting compute service account",
427
+ create_ignore_already_exists=True)
428
+ fah = gcp.projects.Service("fah",
429
+ project="my-project-name",
430
+ service="firebaseapphosting.googleapis.com",
431
+ disable_on_destroy=False)
432
+ example_app_hosting_backend = gcp.firebase.AppHostingBackend("example",
433
+ project="my-project-name",
434
+ location="asia-east1",
435
+ backend_id="traffic-rp",
436
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
437
+ serving_locality="GLOBAL_ACCESS",
438
+ service_account=service_account.email,
439
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
440
+ example = gcp.firebase.AppHostingTraffic("example",
441
+ project=example_app_hosting_backend.project,
442
+ location=example_app_hosting_backend.location,
443
+ backend=example_app_hosting_backend.backend_id,
444
+ rollout_policy={
445
+ "codebase_branch": "main",
446
+ })
447
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
448
+ project="my-project-name",
449
+ role="roles/firebaseapphosting.computeRunner",
450
+ member=service_account.member)
451
+ ```
452
+ ### Firebase App Hosting Traffic Rollout Policy Disabled
453
+
454
+ ```python
455
+ import pulumi
456
+ import pulumi_gcp as gcp
457
+
458
+ ### Include these blocks only once per project if you are starting from scratch ###
459
+ service_account = gcp.serviceaccount.Account("service_account",
460
+ project="my-project-name",
461
+ account_id="firebase-app-hosting-compute",
462
+ display_name="Firebase App Hosting compute service account",
463
+ create_ignore_already_exists=True)
464
+ fah = gcp.projects.Service("fah",
465
+ project="my-project-name",
466
+ service="firebaseapphosting.googleapis.com",
467
+ disable_on_destroy=False)
468
+ example_app_hosting_backend = gcp.firebase.AppHostingBackend("example",
469
+ project="my-project-name",
470
+ location="asia-east1",
471
+ backend_id="traffic-rpd",
472
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
473
+ serving_locality="GLOBAL_ACCESS",
474
+ service_account=service_account.email,
475
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
476
+ example = gcp.firebase.AppHostingTraffic("example",
477
+ project=example_app_hosting_backend.project,
478
+ location=example_app_hosting_backend.location,
479
+ backend=example_app_hosting_backend.backend_id,
480
+ rollout_policy={
481
+ "disabled": True,
482
+ "codebase_branch": "main",
483
+ })
484
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
485
+ project="my-project-name",
486
+ role="roles/firebaseapphosting.computeRunner",
487
+ member=service_account.member)
488
+ ```
489
+
490
+ ## Import
491
+
492
+ Traffic can be imported using any of these accepted formats:
493
+
494
+ * `projects/{{project}}/locations/{{location}}/backends/{{backend}}/traffic`
495
+
496
+ * `{{project}}/{{location}}/{{backend}}`
497
+
498
+ * `{{location}}/{{backend}}`
499
+
500
+ When using the `pulumi import` command, Traffic can be imported using one of the formats above. For example:
501
+
502
+ ```sh
503
+ $ pulumi import gcp:firebase/appHostingTraffic:AppHostingTraffic default projects/{{project}}/locations/{{location}}/backends/{{backend}}/traffic
504
+ ```
505
+
506
+ ```sh
507
+ $ pulumi import gcp:firebase/appHostingTraffic:AppHostingTraffic default {{project}}/{{location}}/{{backend}}
508
+ ```
509
+
510
+ ```sh
511
+ $ pulumi import gcp:firebase/appHostingTraffic:AppHostingTraffic default {{location}}/{{backend}}
512
+ ```
513
+
514
+ :param str resource_name: The name of the resource.
515
+ :param pulumi.ResourceOptions opts: Options for the resource.
516
+ :param pulumi.Input[builtins.str] backend: Id of the backend that this Traffic config applies to
517
+
518
+
519
+ - - -
520
+ :param pulumi.Input[builtins.str] location: The location the Backend that this Traffic config applies to
521
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
522
+ If it is not provided, the provider project is used.
523
+ :param pulumi.Input[Union['AppHostingTrafficRolloutPolicyArgs', 'AppHostingTrafficRolloutPolicyArgsDict']] rollout_policy: The policy for how builds and rollouts are triggered and rolled out.
524
+ Structure is documented below.
525
+ :param pulumi.Input[Union['AppHostingTrafficTargetArgs', 'AppHostingTrafficTargetArgsDict']] target: Set to manually control the desired traffic for the backend. This will
526
+ cause current to eventually match this value. The percentages must add
527
+ up to 100.
528
+ Structure is documented below.
529
+ """
530
+ ...
531
+ @overload
532
+ def __init__(__self__,
533
+ resource_name: str,
534
+ args: AppHostingTrafficArgs,
535
+ opts: Optional[pulumi.ResourceOptions] = None):
536
+ """
537
+ Controls traffic configuration for a backend.
538
+
539
+ ## Example Usage
540
+
541
+ ### Firebase App Hosting Traffic Target
542
+
543
+ ```python
544
+ import pulumi
545
+ import pulumi_gcp as gcp
546
+
547
+ ### Include these blocks only once per project if you are starting from scratch ###
548
+ service_account = gcp.serviceaccount.Account("service_account",
549
+ project="my-project-name",
550
+ account_id="firebase-app-hosting-compute",
551
+ display_name="Firebase App Hosting compute service account",
552
+ create_ignore_already_exists=True)
553
+ fah = gcp.projects.Service("fah",
554
+ project="my-project-name",
555
+ service="firebaseapphosting.googleapis.com",
556
+ disable_on_destroy=False)
557
+ example_app_hosting_backend = gcp.firebase.AppHostingBackend("example",
558
+ project="my-project-name",
559
+ location="asia-east1",
560
+ backend_id="traffic-tg",
561
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
562
+ serving_locality="GLOBAL_ACCESS",
563
+ service_account=service_account.email,
564
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
565
+ example_app_hosting_build = gcp.firebase.AppHostingBuild("example",
566
+ project=example_app_hosting_backend.project,
567
+ location=example_app_hosting_backend.location,
568
+ backend=example_app_hosting_backend.backend_id,
569
+ build_id="target-build",
570
+ source={
571
+ "container": {
572
+ "image": "us-docker.pkg.dev/cloudrun/container/hello",
573
+ },
574
+ })
575
+ example = gcp.firebase.AppHostingTraffic("example",
576
+ project=example_app_hosting_backend.project,
577
+ location=example_app_hosting_backend.location,
578
+ backend=example_app_hosting_backend.backend_id,
579
+ target={
580
+ "splits": [{
581
+ "build": example_app_hosting_build.name,
582
+ "percent": 100,
583
+ }],
584
+ })
585
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
586
+ project="my-project-name",
587
+ role="roles/firebaseapphosting.computeRunner",
588
+ member=service_account.member)
589
+ ```
590
+ ### Firebase App Hosting Traffic Rollout Policy
591
+
592
+ ```python
593
+ import pulumi
594
+ import pulumi_gcp as gcp
595
+
596
+ ### Include these blocks only once per project if you are starting from scratch ###
597
+ service_account = gcp.serviceaccount.Account("service_account",
598
+ project="my-project-name",
599
+ account_id="firebase-app-hosting-compute",
600
+ display_name="Firebase App Hosting compute service account",
601
+ create_ignore_already_exists=True)
602
+ fah = gcp.projects.Service("fah",
603
+ project="my-project-name",
604
+ service="firebaseapphosting.googleapis.com",
605
+ disable_on_destroy=False)
606
+ example_app_hosting_backend = gcp.firebase.AppHostingBackend("example",
607
+ project="my-project-name",
608
+ location="asia-east1",
609
+ backend_id="traffic-rp",
610
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
611
+ serving_locality="GLOBAL_ACCESS",
612
+ service_account=service_account.email,
613
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
614
+ example = gcp.firebase.AppHostingTraffic("example",
615
+ project=example_app_hosting_backend.project,
616
+ location=example_app_hosting_backend.location,
617
+ backend=example_app_hosting_backend.backend_id,
618
+ rollout_policy={
619
+ "codebase_branch": "main",
620
+ })
621
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
622
+ project="my-project-name",
623
+ role="roles/firebaseapphosting.computeRunner",
624
+ member=service_account.member)
625
+ ```
626
+ ### Firebase App Hosting Traffic Rollout Policy Disabled
627
+
628
+ ```python
629
+ import pulumi
630
+ import pulumi_gcp as gcp
631
+
632
+ ### Include these blocks only once per project if you are starting from scratch ###
633
+ service_account = gcp.serviceaccount.Account("service_account",
634
+ project="my-project-name",
635
+ account_id="firebase-app-hosting-compute",
636
+ display_name="Firebase App Hosting compute service account",
637
+ create_ignore_already_exists=True)
638
+ fah = gcp.projects.Service("fah",
639
+ project="my-project-name",
640
+ service="firebaseapphosting.googleapis.com",
641
+ disable_on_destroy=False)
642
+ example_app_hosting_backend = gcp.firebase.AppHostingBackend("example",
643
+ project="my-project-name",
644
+ location="asia-east1",
645
+ backend_id="traffic-rpd",
646
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
647
+ serving_locality="GLOBAL_ACCESS",
648
+ service_account=service_account.email,
649
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
650
+ example = gcp.firebase.AppHostingTraffic("example",
651
+ project=example_app_hosting_backend.project,
652
+ location=example_app_hosting_backend.location,
653
+ backend=example_app_hosting_backend.backend_id,
654
+ rollout_policy={
655
+ "disabled": True,
656
+ "codebase_branch": "main",
657
+ })
658
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
659
+ project="my-project-name",
660
+ role="roles/firebaseapphosting.computeRunner",
661
+ member=service_account.member)
662
+ ```
663
+
664
+ ## Import
665
+
666
+ Traffic can be imported using any of these accepted formats:
667
+
668
+ * `projects/{{project}}/locations/{{location}}/backends/{{backend}}/traffic`
669
+
670
+ * `{{project}}/{{location}}/{{backend}}`
671
+
672
+ * `{{location}}/{{backend}}`
673
+
674
+ When using the `pulumi import` command, Traffic can be imported using one of the formats above. For example:
675
+
676
+ ```sh
677
+ $ pulumi import gcp:firebase/appHostingTraffic:AppHostingTraffic default projects/{{project}}/locations/{{location}}/backends/{{backend}}/traffic
678
+ ```
679
+
680
+ ```sh
681
+ $ pulumi import gcp:firebase/appHostingTraffic:AppHostingTraffic default {{project}}/{{location}}/{{backend}}
682
+ ```
683
+
684
+ ```sh
685
+ $ pulumi import gcp:firebase/appHostingTraffic:AppHostingTraffic default {{location}}/{{backend}}
686
+ ```
687
+
688
+ :param str resource_name: The name of the resource.
689
+ :param AppHostingTrafficArgs args: The arguments to use to populate this resource's properties.
690
+ :param pulumi.ResourceOptions opts: Options for the resource.
691
+ """
692
+ ...
693
+ def __init__(__self__, resource_name: str, *args, **kwargs):
694
+ resource_args, opts = _utilities.get_resource_args_opts(AppHostingTrafficArgs, pulumi.ResourceOptions, *args, **kwargs)
695
+ if resource_args is not None:
696
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
697
+ else:
698
+ __self__._internal_init(resource_name, *args, **kwargs)
699
+
700
+ def _internal_init(__self__,
701
+ resource_name: str,
702
+ opts: Optional[pulumi.ResourceOptions] = None,
703
+ backend: Optional[pulumi.Input[builtins.str]] = None,
704
+ location: Optional[pulumi.Input[builtins.str]] = None,
705
+ project: Optional[pulumi.Input[builtins.str]] = None,
706
+ rollout_policy: Optional[pulumi.Input[Union['AppHostingTrafficRolloutPolicyArgs', 'AppHostingTrafficRolloutPolicyArgsDict']]] = None,
707
+ target: Optional[pulumi.Input[Union['AppHostingTrafficTargetArgs', 'AppHostingTrafficTargetArgsDict']]] = None,
708
+ __props__=None):
709
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
710
+ if not isinstance(opts, pulumi.ResourceOptions):
711
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
712
+ if opts.id is None:
713
+ if __props__ is not None:
714
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
715
+ __props__ = AppHostingTrafficArgs.__new__(AppHostingTrafficArgs)
716
+
717
+ if backend is None and not opts.urn:
718
+ raise TypeError("Missing required property 'backend'")
719
+ __props__.__dict__["backend"] = backend
720
+ if location is None and not opts.urn:
721
+ raise TypeError("Missing required property 'location'")
722
+ __props__.__dict__["location"] = location
723
+ __props__.__dict__["project"] = project
724
+ __props__.__dict__["rollout_policy"] = rollout_policy
725
+ __props__.__dict__["target"] = target
726
+ __props__.__dict__["create_time"] = None
727
+ __props__.__dict__["currents"] = None
728
+ __props__.__dict__["delete_time"] = None
729
+ __props__.__dict__["etag"] = None
730
+ __props__.__dict__["name"] = None
731
+ __props__.__dict__["uid"] = None
732
+ __props__.__dict__["update_time"] = None
733
+ super(AppHostingTraffic, __self__).__init__(
734
+ 'gcp:firebase/appHostingTraffic:AppHostingTraffic',
735
+ resource_name,
736
+ __props__,
737
+ opts)
738
+
739
+ @staticmethod
740
+ def get(resource_name: str,
741
+ id: pulumi.Input[str],
742
+ opts: Optional[pulumi.ResourceOptions] = None,
743
+ backend: Optional[pulumi.Input[builtins.str]] = None,
744
+ create_time: Optional[pulumi.Input[builtins.str]] = None,
745
+ currents: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AppHostingTrafficCurrentArgs', 'AppHostingTrafficCurrentArgsDict']]]]] = None,
746
+ delete_time: Optional[pulumi.Input[builtins.str]] = None,
747
+ etag: Optional[pulumi.Input[builtins.str]] = None,
748
+ location: Optional[pulumi.Input[builtins.str]] = None,
749
+ name: Optional[pulumi.Input[builtins.str]] = None,
750
+ project: Optional[pulumi.Input[builtins.str]] = None,
751
+ rollout_policy: Optional[pulumi.Input[Union['AppHostingTrafficRolloutPolicyArgs', 'AppHostingTrafficRolloutPolicyArgsDict']]] = None,
752
+ target: Optional[pulumi.Input[Union['AppHostingTrafficTargetArgs', 'AppHostingTrafficTargetArgsDict']]] = None,
753
+ uid: Optional[pulumi.Input[builtins.str]] = None,
754
+ update_time: Optional[pulumi.Input[builtins.str]] = None) -> 'AppHostingTraffic':
755
+ """
756
+ Get an existing AppHostingTraffic resource's state with the given name, id, and optional extra
757
+ properties used to qualify the lookup.
758
+
759
+ :param str resource_name: The unique name of the resulting resource.
760
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
761
+ :param pulumi.ResourceOptions opts: Options for the resource.
762
+ :param pulumi.Input[builtins.str] backend: Id of the backend that this Traffic config applies to
763
+
764
+
765
+ - - -
766
+ :param pulumi.Input[builtins.str] create_time: Time at which the backend was created.
767
+ :param pulumi.Input[Sequence[pulumi.Input[Union['AppHostingTrafficCurrentArgs', 'AppHostingTrafficCurrentArgsDict']]]] currents: Current state of traffic allocation for the backend.
768
+ When setting `target`, this field may differ for some time until the desired state is reached.
769
+ Structure is documented below.
770
+ :param pulumi.Input[builtins.str] delete_time: Time at which the backend was deleted.
771
+ :param pulumi.Input[builtins.str] etag: Server-computed checksum based on other values; may be sent
772
+ on update or delete to ensure operation is done on expected resource.
773
+ :param pulumi.Input[builtins.str] location: The location the Backend that this Traffic config applies to
774
+ :param pulumi.Input[builtins.str] name: Identifier. The resource name of the backend traffic config
775
+ Format:
776
+ `projects/{project}/locations/{locationId}/backends/{backendId}/traffic`.
777
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
778
+ If it is not provided, the provider project is used.
779
+ :param pulumi.Input[Union['AppHostingTrafficRolloutPolicyArgs', 'AppHostingTrafficRolloutPolicyArgsDict']] rollout_policy: The policy for how builds and rollouts are triggered and rolled out.
780
+ Structure is documented below.
781
+ :param pulumi.Input[Union['AppHostingTrafficTargetArgs', 'AppHostingTrafficTargetArgsDict']] target: Set to manually control the desired traffic for the backend. This will
782
+ cause current to eventually match this value. The percentages must add
783
+ up to 100.
784
+ Structure is documented below.
785
+ :param pulumi.Input[builtins.str] uid: System-assigned, unique identifier.
786
+ :param pulumi.Input[builtins.str] update_time: Time at which the backend was last updated.
787
+ """
788
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
789
+
790
+ __props__ = _AppHostingTrafficState.__new__(_AppHostingTrafficState)
791
+
792
+ __props__.__dict__["backend"] = backend
793
+ __props__.__dict__["create_time"] = create_time
794
+ __props__.__dict__["currents"] = currents
795
+ __props__.__dict__["delete_time"] = delete_time
796
+ __props__.__dict__["etag"] = etag
797
+ __props__.__dict__["location"] = location
798
+ __props__.__dict__["name"] = name
799
+ __props__.__dict__["project"] = project
800
+ __props__.__dict__["rollout_policy"] = rollout_policy
801
+ __props__.__dict__["target"] = target
802
+ __props__.__dict__["uid"] = uid
803
+ __props__.__dict__["update_time"] = update_time
804
+ return AppHostingTraffic(resource_name, opts=opts, __props__=__props__)
805
+
806
+ @property
807
+ @pulumi.getter
808
+ def backend(self) -> pulumi.Output[builtins.str]:
809
+ """
810
+ Id of the backend that this Traffic config applies to
811
+
812
+
813
+ - - -
814
+ """
815
+ return pulumi.get(self, "backend")
816
+
817
+ @property
818
+ @pulumi.getter(name="createTime")
819
+ def create_time(self) -> pulumi.Output[builtins.str]:
820
+ """
821
+ Time at which the backend was created.
822
+ """
823
+ return pulumi.get(self, "create_time")
824
+
825
+ @property
826
+ @pulumi.getter
827
+ def currents(self) -> pulumi.Output[Sequence['outputs.AppHostingTrafficCurrent']]:
828
+ """
829
+ Current state of traffic allocation for the backend.
830
+ When setting `target`, this field may differ for some time until the desired state is reached.
831
+ Structure is documented below.
832
+ """
833
+ return pulumi.get(self, "currents")
834
+
835
+ @property
836
+ @pulumi.getter(name="deleteTime")
837
+ def delete_time(self) -> pulumi.Output[builtins.str]:
838
+ """
839
+ Time at which the backend was deleted.
840
+ """
841
+ return pulumi.get(self, "delete_time")
842
+
843
+ @property
844
+ @pulumi.getter
845
+ def etag(self) -> pulumi.Output[builtins.str]:
846
+ """
847
+ Server-computed checksum based on other values; may be sent
848
+ on update or delete to ensure operation is done on expected resource.
849
+ """
850
+ return pulumi.get(self, "etag")
851
+
852
+ @property
853
+ @pulumi.getter
854
+ def location(self) -> pulumi.Output[builtins.str]:
855
+ """
856
+ The location the Backend that this Traffic config applies to
857
+ """
858
+ return pulumi.get(self, "location")
859
+
860
+ @property
861
+ @pulumi.getter
862
+ def name(self) -> pulumi.Output[builtins.str]:
863
+ """
864
+ Identifier. The resource name of the backend traffic config
865
+ Format:
866
+ `projects/{project}/locations/{locationId}/backends/{backendId}/traffic`.
867
+ """
868
+ return pulumi.get(self, "name")
869
+
870
+ @property
871
+ @pulumi.getter
872
+ def project(self) -> pulumi.Output[builtins.str]:
873
+ """
874
+ The ID of the project in which the resource belongs.
875
+ If it is not provided, the provider project is used.
876
+ """
877
+ return pulumi.get(self, "project")
878
+
879
+ @property
880
+ @pulumi.getter(name="rolloutPolicy")
881
+ def rollout_policy(self) -> pulumi.Output[Optional['outputs.AppHostingTrafficRolloutPolicy']]:
882
+ """
883
+ The policy for how builds and rollouts are triggered and rolled out.
884
+ Structure is documented below.
885
+ """
886
+ return pulumi.get(self, "rollout_policy")
887
+
888
+ @property
889
+ @pulumi.getter
890
+ def target(self) -> pulumi.Output[Optional['outputs.AppHostingTrafficTarget']]:
891
+ """
892
+ Set to manually control the desired traffic for the backend. This will
893
+ cause current to eventually match this value. The percentages must add
894
+ up to 100.
895
+ Structure is documented below.
896
+ """
897
+ return pulumi.get(self, "target")
898
+
899
+ @property
900
+ @pulumi.getter
901
+ def uid(self) -> pulumi.Output[builtins.str]:
902
+ """
903
+ System-assigned, unique identifier.
904
+ """
905
+ return pulumi.get(self, "uid")
906
+
907
+ @property
908
+ @pulumi.getter(name="updateTime")
909
+ def update_time(self) -> pulumi.Output[builtins.str]:
910
+ """
911
+ Time at which the backend was last updated.
912
+ """
913
+ return pulumi.get(self, "update_time")
914
+