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.
- pulumi_gcp/__init__.py +88 -0
- pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py +2 -2
- pulumi_gcp/apigateway/api_config_iam_binding.py +13 -0
- pulumi_gcp/apigateway/api_config_iam_member.py +13 -0
- pulumi_gcp/apigateway/api_config_iam_policy.py +13 -0
- pulumi_gcp/apigateway/api_iam_binding.py +13 -0
- pulumi_gcp/apigateway/api_iam_member.py +13 -0
- pulumi_gcp/apigateway/api_iam_policy.py +13 -0
- pulumi_gcp/apigateway/gateway_iam_binding.py +13 -0
- pulumi_gcp/apigateway/gateway_iam_member.py +13 -0
- pulumi_gcp/apigateway/gateway_iam_policy.py +13 -0
- pulumi_gcp/apigateway/get_api_config_iam_policy.py +2 -0
- pulumi_gcp/apigateway/get_api_iam_policy.py +2 -0
- pulumi_gcp/apigateway/get_gateway_iam_policy.py +2 -0
- pulumi_gcp/apigee/environment_iam_binding.py +27 -0
- pulumi_gcp/apigee/environment_iam_member.py +27 -0
- pulumi_gcp/apigee/environment_iam_policy.py +27 -0
- pulumi_gcp/apigee/get_environment_iam_policy.py +6 -0
- pulumi_gcp/beyondcorp/__init__.py +1 -0
- pulumi_gcp/beyondcorp/application.py +8 -4
- pulumi_gcp/beyondcorp/application_iam_binding.py +26 -0
- pulumi_gcp/beyondcorp/application_iam_member.py +26 -0
- pulumi_gcp/beyondcorp/application_iam_policy.py +26 -0
- pulumi_gcp/beyondcorp/get_application_iam_policy.py +4 -0
- pulumi_gcp/beyondcorp/get_security_gateway.py +222 -0
- pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +2 -0
- pulumi_gcp/beyondcorp/outputs.py +45 -0
- pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +13 -0
- pulumi_gcp/beyondcorp/security_gateway_iam_member.py +13 -0
- pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +13 -0
- pulumi_gcp/bigquery/__init__.py +1 -0
- pulumi_gcp/bigquery/connection_iam_binding.py +4 -11
- pulumi_gcp/bigquery/connection_iam_member.py +4 -11
- pulumi_gcp/bigquery/connection_iam_policy.py +4 -11
- pulumi_gcp/bigquery/data_transfer_config.py +2 -2
- pulumi_gcp/bigquery/get_connection_iam_policy.py +2 -4
- pulumi_gcp/bigquery/get_table_iam_policy.py +4 -0
- pulumi_gcp/bigquery/iam_binding.py +26 -0
- pulumi_gcp/bigquery/iam_member.py +26 -0
- pulumi_gcp/bigquery/iam_policy.py +26 -0
- pulumi_gcp/bigquery/row_access_policy.py +787 -0
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +2 -2
- pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +2 -2
- pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +7 -7
- pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +6 -6
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +13 -0
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +13 -0
- pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +13 -0
- pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +2 -0
- pulumi_gcp/bigtable/logical_view.py +49 -0
- pulumi_gcp/cloudbuild/trigger.py +2 -2
- pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +6 -0
- pulumi_gcp/clouddeploy/get_target_iam_policy.py +6 -0
- pulumi_gcp/colab/schedule.py +2 -2
- pulumi_gcp/compute/_inputs.py +126 -0
- pulumi_gcp/compute/backend_service.py +259 -51
- pulumi_gcp/compute/get_backend_service.py +23 -1
- pulumi_gcp/compute/get_global_forwarding_rule.py +23 -1
- pulumi_gcp/compute/get_instance_template.py +12 -1
- pulumi_gcp/compute/get_network_endpoint_group.py +12 -1
- pulumi_gcp/compute/global_forwarding_rule.py +199 -0
- pulumi_gcp/compute/instance_template.py +28 -0
- pulumi_gcp/compute/network_endpoint_group.py +28 -0
- pulumi_gcp/compute/outputs.py +110 -0
- pulumi_gcp/compute/region_backend_service.py +58 -51
- pulumi_gcp/container/cluster.py +47 -0
- pulumi_gcp/container/get_cluster.py +12 -1
- pulumi_gcp/datacatalog/entry_group_iam_binding.py +34 -0
- pulumi_gcp/datacatalog/entry_group_iam_member.py +34 -0
- pulumi_gcp/datacatalog/entry_group_iam_policy.py +34 -0
- pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +8 -0
- pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +8 -0
- pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +8 -0
- pulumi_gcp/datacatalog/tag_template_iam_binding.py +34 -0
- pulumi_gcp/datacatalog/tag_template_iam_member.py +34 -0
- pulumi_gcp/datacatalog/tag_template_iam_policy.py +34 -0
- pulumi_gcp/datacatalog/taxonomy_iam_binding.py +34 -0
- pulumi_gcp/datacatalog/taxonomy_iam_member.py +34 -0
- pulumi_gcp/datacatalog/taxonomy_iam_policy.py +34 -0
- pulumi_gcp/dataplex/__init__.py +5 -0
- pulumi_gcp/dataplex/_inputs.py +98 -0
- pulumi_gcp/dataplex/aspect_type_iam_binding.py +13 -0
- pulumi_gcp/dataplex/aspect_type_iam_member.py +13 -0
- pulumi_gcp/dataplex/aspect_type_iam_policy.py +13 -0
- pulumi_gcp/dataplex/asset_iam_binding.py +53 -0
- pulumi_gcp/dataplex/asset_iam_member.py +53 -0
- pulumi_gcp/dataplex/asset_iam_policy.py +53 -0
- pulumi_gcp/dataplex/datascan_iam_binding.py +13 -0
- pulumi_gcp/dataplex/datascan_iam_member.py +13 -0
- pulumi_gcp/dataplex/datascan_iam_policy.py +13 -0
- pulumi_gcp/dataplex/entry_group_iam_binding.py +13 -0
- pulumi_gcp/dataplex/entry_group_iam_member.py +13 -0
- pulumi_gcp/dataplex/entry_group_iam_policy.py +13 -0
- pulumi_gcp/dataplex/entry_type_iam_binding.py +13 -0
- pulumi_gcp/dataplex/entry_type_iam_member.py +13 -0
- pulumi_gcp/dataplex/entry_type_iam_policy.py +13 -0
- pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_asset_iam_policy.py +10 -0
- pulumi_gcp/dataplex/get_datascan_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_entry_group_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_entry_type_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_glossary_iam_policy.py +185 -0
- pulumi_gcp/dataplex/get_lake_iam_policy.py +6 -0
- pulumi_gcp/dataplex/get_task_iam_policy.py +2 -0
- pulumi_gcp/dataplex/get_zone_iam_policy.py +8 -0
- pulumi_gcp/dataplex/glossary.py +772 -0
- pulumi_gcp/dataplex/glossary_iam_binding.py +837 -0
- pulumi_gcp/dataplex/glossary_iam_member.py +837 -0
- pulumi_gcp/dataplex/glossary_iam_policy.py +676 -0
- pulumi_gcp/dataplex/lake_iam_binding.py +27 -0
- pulumi_gcp/dataplex/lake_iam_member.py +27 -0
- pulumi_gcp/dataplex/lake_iam_policy.py +27 -0
- pulumi_gcp/dataplex/outputs.py +56 -0
- pulumi_gcp/dataplex/task_iam_binding.py +13 -0
- pulumi_gcp/dataplex/task_iam_member.py +13 -0
- pulumi_gcp/dataplex/task_iam_policy.py +13 -0
- pulumi_gcp/dataplex/zone_iam_binding.py +40 -0
- pulumi_gcp/dataplex/zone_iam_member.py +40 -0
- pulumi_gcp/dataplex/zone_iam_policy.py +40 -0
- pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +4 -25
- pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +4 -25
- pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +4 -25
- pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +2 -8
- pulumi_gcp/dataproc/get_metastore_database_iam_policy.py +8 -0
- pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +2 -0
- pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +2 -0
- pulumi_gcp/dataproc/get_metastore_table_iam_policy.py +10 -0
- pulumi_gcp/dataproc/metastore_database_iam_binding.py +40 -0
- pulumi_gcp/dataproc/metastore_database_iam_member.py +40 -0
- pulumi_gcp/dataproc/metastore_database_iam_policy.py +40 -0
- pulumi_gcp/dataproc/metastore_federation_iam_binding.py +13 -0
- pulumi_gcp/dataproc/metastore_federation_iam_member.py +13 -0
- pulumi_gcp/dataproc/metastore_federation_iam_policy.py +13 -0
- pulumi_gcp/dataproc/metastore_service_iam_binding.py +13 -0
- pulumi_gcp/dataproc/metastore_service_iam_member.py +13 -0
- pulumi_gcp/dataproc/metastore_service_iam_policy.py +13 -0
- pulumi_gcp/dataproc/metastore_table_iam_binding.py +53 -0
- pulumi_gcp/dataproc/metastore_table_iam_member.py +53 -0
- pulumi_gcp/dataproc/metastore_table_iam_policy.py +53 -0
- pulumi_gcp/diagflow/_inputs.py +56 -0
- pulumi_gcp/diagflow/cx_agent.py +60 -0
- pulumi_gcp/diagflow/cx_flow.py +2 -0
- pulumi_gcp/diagflow/entity_type.py +2 -2
- pulumi_gcp/diagflow/outputs.py +35 -0
- pulumi_gcp/edgecontainer/node_pool.py +2 -2
- pulumi_gcp/endpoints/consumers_iam_binding.py +26 -0
- pulumi_gcp/endpoints/consumers_iam_member.py +26 -0
- pulumi_gcp/endpoints/consumers_iam_policy.py +26 -0
- pulumi_gcp/endpoints/get_service_consumers_iam_policy.py +8 -0
- pulumi_gcp/endpoints/get_service_iam_policy.py +6 -0
- pulumi_gcp/endpoints/service_iam_binding.py +13 -0
- pulumi_gcp/endpoints/service_iam_member.py +13 -0
- pulumi_gcp/endpoints/service_iam_policy.py +13 -0
- pulumi_gcp/firebase/__init__.py +3 -0
- pulumi_gcp/firebase/_inputs.py +1527 -0
- pulumi_gcp/firebase/app_hosting_backend.py +104 -0
- pulumi_gcp/firebase/app_hosting_default_domain.py +721 -0
- pulumi_gcp/firebase/app_hosting_domain.py +796 -0
- pulumi_gcp/firebase/app_hosting_traffic.py +914 -0
- pulumi_gcp/firebase/extensions_instance.py +4 -4
- pulumi_gcp/firebase/outputs.py +1075 -0
- pulumi_gcp/firestore/database.py +9 -0
- pulumi_gcp/gemini/get_repository_group_iam_policy.py +4 -0
- pulumi_gcp/gemini/repository_group_iam_binding.py +26 -0
- pulumi_gcp/gemini/repository_group_iam_member.py +26 -0
- pulumi_gcp/gemini/repository_group_iam_policy.py +26 -0
- pulumi_gcp/gkebackup/backup_channel.py +9 -9
- pulumi_gcp/gkebackup/restore_channel.py +9 -9
- pulumi_gcp/gkehub/get_membership_iam_policy.py +2 -0
- pulumi_gcp/gkehub/get_scope_iam_policy.py +2 -0
- pulumi_gcp/gkehub/membership_iam_binding.py +13 -0
- pulumi_gcp/gkehub/membership_iam_member.py +13 -0
- pulumi_gcp/gkehub/membership_iam_policy.py +13 -0
- pulumi_gcp/gkehub/scope_iam_binding.py +13 -0
- pulumi_gcp/gkehub/scope_iam_member.py +13 -0
- pulumi_gcp/gkehub/scope_iam_policy.py +13 -0
- pulumi_gcp/iam/__init__.py +4 -0
- pulumi_gcp/iam/_inputs.py +432 -0
- pulumi_gcp/iam/get_workload_identity_pool.py +35 -1
- pulumi_gcp/iam/get_workload_identity_pool_iam_policy.py +156 -0
- pulumi_gcp/iam/oauth_client_credential.py +6 -0
- pulumi_gcp/iam/outputs.py +510 -0
- pulumi_gcp/iam/workload_identity_pool.py +446 -24
- pulumi_gcp/iam/workload_identity_pool_iam_binding.py +539 -0
- pulumi_gcp/iam/workload_identity_pool_iam_member.py +539 -0
- pulumi_gcp/iam/workload_identity_pool_iam_policy.py +358 -0
- pulumi_gcp/iap/app_engine_service_iam_binding.py +14 -14
- pulumi_gcp/iap/app_engine_service_iam_member.py +14 -14
- pulumi_gcp/iap/app_engine_service_iam_policy.py +14 -14
- pulumi_gcp/iap/app_engine_version_iam_binding.py +14 -14
- pulumi_gcp/iap/app_engine_version_iam_member.py +14 -14
- pulumi_gcp/iap/app_engine_version_iam_policy.py +14 -14
- pulumi_gcp/iap/get_app_engine_service_iam_policy.py +4 -4
- pulumi_gcp/iap/get_app_engine_version_iam_policy.py +4 -4
- pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +2 -0
- pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +6 -0
- pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +6 -0
- pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +2 -2
- pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +13 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_member.py +13 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +13 -0
- pulumi_gcp/iap/tunnel_instance_iam_binding.py +27 -0
- pulumi_gcp/iap/tunnel_instance_iam_member.py +27 -0
- pulumi_gcp/iap/tunnel_instance_iam_policy.py +27 -0
- pulumi_gcp/iap/web_region_backend_service_iam_binding.py +27 -0
- pulumi_gcp/iap/web_region_backend_service_iam_member.py +27 -0
- pulumi_gcp/iap/web_region_backend_service_iam_policy.py +27 -0
- pulumi_gcp/iap/web_type_app_enging_iam_binding.py +7 -7
- pulumi_gcp/iap/web_type_app_enging_iam_member.py +7 -7
- pulumi_gcp/iap/web_type_app_enging_iam_policy.py +7 -7
- pulumi_gcp/lustre/__init__.py +1 -0
- pulumi_gcp/lustre/get_instance.py +280 -0
- pulumi_gcp/lustre/instance.py +12 -0
- pulumi_gcp/netapp/backup.py +2 -2
- pulumi_gcp/networksecurity/intercept_deployment.py +10 -0
- pulumi_gcp/networksecurity/intercept_deployment_group.py +8 -0
- pulumi_gcp/networksecurity/intercept_endpoint_group.py +12 -0
- pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +16 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +2 -0
- pulumi_gcp/secretmanager/get_secret_iam_policy.py +2 -0
- pulumi_gcp/secretmanager/regional_secret_iam_binding.py +13 -0
- pulumi_gcp/secretmanager/regional_secret_iam_member.py +13 -0
- pulumi_gcp/secretmanager/regional_secret_iam_policy.py +13 -0
- pulumi_gcp/secretmanager/secret_iam_binding.py +13 -0
- pulumi_gcp/secretmanager/secret_iam_member.py +13 -0
- pulumi_gcp/secretmanager/secret_iam_policy.py +13 -0
- pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +2 -4
- pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +2 -4
- pulumi_gcp/securesourcemanager/repository_iam_binding.py +4 -11
- pulumi_gcp/securesourcemanager/repository_iam_member.py +4 -11
- pulumi_gcp/securesourcemanager/repository_iam_policy.py +4 -11
- pulumi_gcp/securitycenter/v2_organization_scc_big_query_export.py +2 -2
- pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +2 -2
- pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_binding.py +13 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_member.py +13 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview_iam_policy.py +13 -0
- pulumi_gcp/vertex/get_ai_feature_online_store_featureview_iam_policy.py +2 -0
- pulumi_gcp/vmwareengine/external_address.py +4 -4
- pulumi_gcp/workstations/get_workstation_config_iam_policy.py +6 -0
- pulumi_gcp/workstations/get_workstation_iam_policy.py +10 -0
- pulumi_gcp/workstations/workstation_config_iam_binding.py +33 -0
- pulumi_gcp/workstations/workstation_config_iam_member.py +33 -0
- pulumi_gcp/workstations/workstation_config_iam_policy.py +33 -0
- pulumi_gcp/workstations/workstation_iam_binding.py +53 -0
- pulumi_gcp/workstations/workstation_iam_member.py +53 -0
- pulumi_gcp/workstations/workstation_iam_policy.py +53 -0
- {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.33.0a1747896426.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.33.0a1747896426.dist-info}/RECORD +256 -241
- {pulumi_gcp-8.32.0a1747459264.dist-info → pulumi_gcp-8.33.0a1747896426.dist-info}/WHEEL +1 -1
- {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
|
+
|