pulumi-gcp 8.23.0a1742538920__py3-none-any.whl → 8.24.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/alloydb/_inputs.py +27 -1
  3. pulumi_gcp/alloydb/outputs.py +33 -2
  4. pulumi_gcp/applicationintegration/client.py +18 -24
  5. pulumi_gcp/bigquery/_inputs.py +178 -0
  6. pulumi_gcp/bigquery/outputs.py +127 -0
  7. pulumi_gcp/bigquery/reservation.py +189 -1
  8. pulumi_gcp/bigquery/table.py +61 -0
  9. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +11 -7
  10. pulumi_gcp/bigtable/table.py +7 -7
  11. pulumi_gcp/chronicle/data_access_label.py +16 -0
  12. pulumi_gcp/clouddeploy/_inputs.py +20 -0
  13. pulumi_gcp/clouddeploy/outputs.py +15 -1
  14. pulumi_gcp/cloudfunctions/function.py +11 -11
  15. pulumi_gcp/cloudfunctionsv2/function.py +24 -24
  16. pulumi_gcp/cloudidentity/get_group_transitive_memberships.py +41 -2
  17. pulumi_gcp/cloudidentity/outputs.py +18 -38
  18. pulumi_gcp/cloudrunv2/service.py +14 -14
  19. pulumi_gcp/compute/__init__.py +1 -0
  20. pulumi_gcp/compute/_inputs.py +616 -18
  21. pulumi_gcp/compute/firewall_policy.py +20 -0
  22. pulumi_gcp/compute/get_images.py +172 -0
  23. pulumi_gcp/compute/get_resource_policy.py +15 -4
  24. pulumi_gcp/compute/image.py +54 -0
  25. pulumi_gcp/compute/interconnect.py +14 -7
  26. pulumi_gcp/compute/outputs.py +710 -18
  27. pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
  28. pulumi_gcp/compute/resource_policy.py +169 -3
  29. pulumi_gcp/compute/router_route_policy.py +16 -0
  30. pulumi_gcp/compute/subnetwork.py +109 -1
  31. pulumi_gcp/compute/target_https_proxy.py +7 -7
  32. pulumi_gcp/config/__init__.pyi +8 -0
  33. pulumi_gcp/config/vars.py +16 -0
  34. pulumi_gcp/container/_inputs.py +265 -4
  35. pulumi_gcp/container/cluster.py +54 -0
  36. pulumi_gcp/container/get_attached_versions.py +2 -2
  37. pulumi_gcp/container/get_cluster.py +12 -1
  38. pulumi_gcp/container/outputs.py +301 -6
  39. pulumi_gcp/dataform/repository.py +49 -0
  40. pulumi_gcp/dataproc/_inputs.py +23 -0
  41. pulumi_gcp/dataproc/get_metastore_service.py +26 -4
  42. pulumi_gcp/dataproc/metastore_federation.py +56 -0
  43. pulumi_gcp/dataproc/metastore_service.py +58 -2
  44. pulumi_gcp/dataproc/outputs.py +27 -0
  45. pulumi_gcp/eventarc/__init__.py +1 -0
  46. pulumi_gcp/eventarc/_inputs.py +1758 -0
  47. pulumi_gcp/eventarc/outputs.py +1337 -0
  48. pulumi_gcp/eventarc/pipeline.py +1596 -0
  49. pulumi_gcp/firebase/__init__.py +1 -0
  50. pulumi_gcp/firebase/_inputs.py +154 -0
  51. pulumi_gcp/firebase/app_hosting_backend.py +1303 -0
  52. pulumi_gcp/firebase/hosting_version.py +2 -2
  53. pulumi_gcp/firebase/outputs.py +127 -0
  54. pulumi_gcp/kms/get_key_rings.py +39 -2
  55. pulumi_gcp/lustre/__init__.py +8 -0
  56. pulumi_gcp/lustre/instance.py +983 -0
  57. pulumi_gcp/managedkafka/__init__.py +2 -0
  58. pulumi_gcp/managedkafka/_inputs.py +263 -0
  59. pulumi_gcp/managedkafka/connect_cluster.py +795 -0
  60. pulumi_gcp/managedkafka/connector.py +695 -0
  61. pulumi_gcp/managedkafka/outputs.py +248 -0
  62. pulumi_gcp/memorystore/_inputs.py +419 -0
  63. pulumi_gcp/memorystore/get_instance.py +23 -1
  64. pulumi_gcp/memorystore/instance.py +144 -14
  65. pulumi_gcp/memorystore/outputs.py +544 -0
  66. pulumi_gcp/monitoring/uptime_check_config.py +2 -2
  67. pulumi_gcp/networkmanagement/_inputs.py +422 -91
  68. pulumi_gcp/networkmanagement/connectivity_test.py +233 -211
  69. pulumi_gcp/networkmanagement/outputs.py +280 -61
  70. pulumi_gcp/networksecurity/_inputs.py +1277 -242
  71. pulumi_gcp/networksecurity/gateway_security_policy.py +0 -7
  72. pulumi_gcp/networksecurity/intercept_deployment_group.py +44 -16
  73. pulumi_gcp/networksecurity/intercept_endpoint_group.py +90 -36
  74. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +53 -8
  75. pulumi_gcp/networksecurity/mirroring_deployment.py +22 -0
  76. pulumi_gcp/networksecurity/mirroring_deployment_group.py +20 -0
  77. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +24 -0
  78. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +28 -0
  79. pulumi_gcp/networksecurity/outputs.py +723 -8
  80. pulumi_gcp/networksecurity/tls_inspection_policy.py +14 -0
  81. pulumi_gcp/networkservices/gateway.py +242 -120
  82. pulumi_gcp/organizations/__init__.py +1 -0
  83. pulumi_gcp/organizations/get_iam_custom_role.py +198 -0
  84. pulumi_gcp/osconfig/__init__.py +1 -0
  85. pulumi_gcp/osconfig/_inputs.py +5413 -0
  86. pulumi_gcp/osconfig/outputs.py +3962 -0
  87. pulumi_gcp/osconfig/v2_policy_orchestrator.py +971 -0
  88. pulumi_gcp/projects/__init__.py +2 -0
  89. pulumi_gcp/projects/get_iam_custom_role.py +198 -0
  90. pulumi_gcp/projects/get_iam_custom_roles.py +164 -0
  91. pulumi_gcp/projects/outputs.py +96 -0
  92. pulumi_gcp/provider.py +80 -0
  93. pulumi_gcp/pulumi-plugin.json +1 -1
  94. pulumi_gcp/servicenetworking/peered_dns_domain.py +4 -0
  95. pulumi_gcp/sql/outputs.py +8 -8
  96. pulumi_gcp/storage/__init__.py +2 -0
  97. pulumi_gcp/storage/_inputs.py +740 -6
  98. pulumi_gcp/storage/control_project_intelligence_config.py +366 -0
  99. pulumi_gcp/storage/get_control_project_intelligence_config.py +130 -0
  100. pulumi_gcp/storage/insights_report_config.py +121 -20
  101. pulumi_gcp/storage/outputs.py +723 -4
  102. pulumi_gcp/workflows/workflow.py +75 -7
  103. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/METADATA +1 -1
  104. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/RECORD +106 -93
  105. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/WHEEL +1 -1
  106. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1303 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['AppHostingBackendArgs', 'AppHostingBackend']
20
+
21
+ @pulumi.input_type
22
+ class AppHostingBackendArgs:
23
+ def __init__(__self__, *,
24
+ app_id: pulumi.Input[str],
25
+ backend_id: pulumi.Input[str],
26
+ location: pulumi.Input[str],
27
+ service_account: pulumi.Input[str],
28
+ serving_locality: pulumi.Input[str],
29
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
30
+ codebase: Optional[pulumi.Input['AppHostingBackendCodebaseArgs']] = None,
31
+ display_name: Optional[pulumi.Input[str]] = None,
32
+ environment: Optional[pulumi.Input[str]] = None,
33
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
34
+ project: Optional[pulumi.Input[str]] = None):
35
+ """
36
+ The set of arguments for constructing a AppHostingBackend resource.
37
+ :param pulumi.Input[str] app_id: The [ID of a Web
38
+ App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id)
39
+ associated with the backend.
40
+ :param pulumi.Input[str] backend_id: Id of the backend. Also used as the service ID for Cloud Run, and as part
41
+ of the default domain name.
42
+
43
+
44
+ - - -
45
+ :param pulumi.Input[str] location: The canonical IDs of a Google Cloud location such as "us-east1".
46
+ :param pulumi.Input[str] service_account: The name of the service account used for Cloud Build and Cloud Run.
47
+ Should have the role roles/firebaseapphosting.computeRunner
48
+ or equivalent permissions.
49
+ :param pulumi.Input[str] serving_locality: Immutable. Specifies how App Hosting will serve the content for this backend. It will
50
+ either be contained to a single region (REGIONAL_STRICT) or allowed to use
51
+ App Hosting's global-replicated serving infrastructure (GLOBAL_ACCESS).
52
+ Possible values are: `REGIONAL_STRICT`, `GLOBAL_ACCESS`.
53
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Unstructured key value map that may be set by external tools to
54
+ store and arbitrary metadata. They are not queryable and should be
55
+ preserved when modifying objects.
56
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
57
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
58
+ :param pulumi.Input['AppHostingBackendCodebaseArgs'] codebase: The connection to an external source repository to watch for event-driven
59
+ updates to the backend.
60
+ Structure is documented below.
61
+ :param pulumi.Input[str] display_name: Human-readable name. 63 character limit.
62
+ :param pulumi.Input[str] environment: The environment name of the backend, used to load environment variables
63
+ from environment specific configuration.
64
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Unstructured key value map that can be used to organize and categorize
65
+ objects.
66
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
67
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
68
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
69
+ If it is not provided, the provider project is used.
70
+ """
71
+ pulumi.set(__self__, "app_id", app_id)
72
+ pulumi.set(__self__, "backend_id", backend_id)
73
+ pulumi.set(__self__, "location", location)
74
+ pulumi.set(__self__, "service_account", service_account)
75
+ pulumi.set(__self__, "serving_locality", serving_locality)
76
+ if annotations is not None:
77
+ pulumi.set(__self__, "annotations", annotations)
78
+ if codebase is not None:
79
+ pulumi.set(__self__, "codebase", codebase)
80
+ if display_name is not None:
81
+ pulumi.set(__self__, "display_name", display_name)
82
+ if environment is not None:
83
+ pulumi.set(__self__, "environment", environment)
84
+ if labels is not None:
85
+ pulumi.set(__self__, "labels", labels)
86
+ if project is not None:
87
+ pulumi.set(__self__, "project", project)
88
+
89
+ @property
90
+ @pulumi.getter(name="appId")
91
+ def app_id(self) -> pulumi.Input[str]:
92
+ """
93
+ The [ID of a Web
94
+ App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id)
95
+ associated with the backend.
96
+ """
97
+ return pulumi.get(self, "app_id")
98
+
99
+ @app_id.setter
100
+ def app_id(self, value: pulumi.Input[str]):
101
+ pulumi.set(self, "app_id", value)
102
+
103
+ @property
104
+ @pulumi.getter(name="backendId")
105
+ def backend_id(self) -> pulumi.Input[str]:
106
+ """
107
+ Id of the backend. Also used as the service ID for Cloud Run, and as part
108
+ of the default domain name.
109
+
110
+
111
+ - - -
112
+ """
113
+ return pulumi.get(self, "backend_id")
114
+
115
+ @backend_id.setter
116
+ def backend_id(self, value: pulumi.Input[str]):
117
+ pulumi.set(self, "backend_id", value)
118
+
119
+ @property
120
+ @pulumi.getter
121
+ def location(self) -> pulumi.Input[str]:
122
+ """
123
+ The canonical IDs of a Google Cloud location such as "us-east1".
124
+ """
125
+ return pulumi.get(self, "location")
126
+
127
+ @location.setter
128
+ def location(self, value: pulumi.Input[str]):
129
+ pulumi.set(self, "location", value)
130
+
131
+ @property
132
+ @pulumi.getter(name="serviceAccount")
133
+ def service_account(self) -> pulumi.Input[str]:
134
+ """
135
+ The name of the service account used for Cloud Build and Cloud Run.
136
+ Should have the role roles/firebaseapphosting.computeRunner
137
+ or equivalent permissions.
138
+ """
139
+ return pulumi.get(self, "service_account")
140
+
141
+ @service_account.setter
142
+ def service_account(self, value: pulumi.Input[str]):
143
+ pulumi.set(self, "service_account", value)
144
+
145
+ @property
146
+ @pulumi.getter(name="servingLocality")
147
+ def serving_locality(self) -> pulumi.Input[str]:
148
+ """
149
+ Immutable. Specifies how App Hosting will serve the content for this backend. It will
150
+ either be contained to a single region (REGIONAL_STRICT) or allowed to use
151
+ App Hosting's global-replicated serving infrastructure (GLOBAL_ACCESS).
152
+ Possible values are: `REGIONAL_STRICT`, `GLOBAL_ACCESS`.
153
+ """
154
+ return pulumi.get(self, "serving_locality")
155
+
156
+ @serving_locality.setter
157
+ def serving_locality(self, value: pulumi.Input[str]):
158
+ pulumi.set(self, "serving_locality", value)
159
+
160
+ @property
161
+ @pulumi.getter
162
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
163
+ """
164
+ Unstructured key value map that may be set by external tools to
165
+ store and arbitrary metadata. They are not queryable and should be
166
+ preserved when modifying objects.
167
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
168
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
169
+ """
170
+ return pulumi.get(self, "annotations")
171
+
172
+ @annotations.setter
173
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
174
+ pulumi.set(self, "annotations", value)
175
+
176
+ @property
177
+ @pulumi.getter
178
+ def codebase(self) -> Optional[pulumi.Input['AppHostingBackendCodebaseArgs']]:
179
+ """
180
+ The connection to an external source repository to watch for event-driven
181
+ updates to the backend.
182
+ Structure is documented below.
183
+ """
184
+ return pulumi.get(self, "codebase")
185
+
186
+ @codebase.setter
187
+ def codebase(self, value: Optional[pulumi.Input['AppHostingBackendCodebaseArgs']]):
188
+ pulumi.set(self, "codebase", value)
189
+
190
+ @property
191
+ @pulumi.getter(name="displayName")
192
+ def display_name(self) -> Optional[pulumi.Input[str]]:
193
+ """
194
+ Human-readable name. 63 character limit.
195
+ """
196
+ return pulumi.get(self, "display_name")
197
+
198
+ @display_name.setter
199
+ def display_name(self, value: Optional[pulumi.Input[str]]):
200
+ pulumi.set(self, "display_name", value)
201
+
202
+ @property
203
+ @pulumi.getter
204
+ def environment(self) -> Optional[pulumi.Input[str]]:
205
+ """
206
+ The environment name of the backend, used to load environment variables
207
+ from environment specific configuration.
208
+ """
209
+ return pulumi.get(self, "environment")
210
+
211
+ @environment.setter
212
+ def environment(self, value: Optional[pulumi.Input[str]]):
213
+ pulumi.set(self, "environment", value)
214
+
215
+ @property
216
+ @pulumi.getter
217
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
218
+ """
219
+ Unstructured key value map that can be used to organize and categorize
220
+ objects.
221
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
222
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
223
+ """
224
+ return pulumi.get(self, "labels")
225
+
226
+ @labels.setter
227
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
228
+ pulumi.set(self, "labels", value)
229
+
230
+ @property
231
+ @pulumi.getter
232
+ def project(self) -> Optional[pulumi.Input[str]]:
233
+ """
234
+ The ID of the project in which the resource belongs.
235
+ If it is not provided, the provider project is used.
236
+ """
237
+ return pulumi.get(self, "project")
238
+
239
+ @project.setter
240
+ def project(self, value: Optional[pulumi.Input[str]]):
241
+ pulumi.set(self, "project", value)
242
+
243
+
244
+ @pulumi.input_type
245
+ class _AppHostingBackendState:
246
+ def __init__(__self__, *,
247
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
248
+ app_id: Optional[pulumi.Input[str]] = None,
249
+ backend_id: Optional[pulumi.Input[str]] = None,
250
+ codebase: Optional[pulumi.Input['AppHostingBackendCodebaseArgs']] = None,
251
+ create_time: Optional[pulumi.Input[str]] = None,
252
+ delete_time: Optional[pulumi.Input[str]] = None,
253
+ display_name: Optional[pulumi.Input[str]] = None,
254
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
255
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
256
+ environment: Optional[pulumi.Input[str]] = None,
257
+ etag: Optional[pulumi.Input[str]] = None,
258
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
259
+ location: Optional[pulumi.Input[str]] = None,
260
+ managed_resources: Optional[pulumi.Input[Sequence[pulumi.Input['AppHostingBackendManagedResourceArgs']]]] = None,
261
+ name: Optional[pulumi.Input[str]] = None,
262
+ project: Optional[pulumi.Input[str]] = None,
263
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
264
+ service_account: Optional[pulumi.Input[str]] = None,
265
+ serving_locality: Optional[pulumi.Input[str]] = None,
266
+ uid: Optional[pulumi.Input[str]] = None,
267
+ update_time: Optional[pulumi.Input[str]] = None,
268
+ uri: Optional[pulumi.Input[str]] = None):
269
+ """
270
+ Input properties used for looking up and filtering AppHostingBackend resources.
271
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Unstructured key value map that may be set by external tools to
272
+ store and arbitrary metadata. They are not queryable and should be
273
+ preserved when modifying objects.
274
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
275
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
276
+ :param pulumi.Input[str] app_id: The [ID of a Web
277
+ App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id)
278
+ associated with the backend.
279
+ :param pulumi.Input[str] backend_id: Id of the backend. Also used as the service ID for Cloud Run, and as part
280
+ of the default domain name.
281
+
282
+
283
+ - - -
284
+ :param pulumi.Input['AppHostingBackendCodebaseArgs'] codebase: The connection to an external source repository to watch for event-driven
285
+ updates to the backend.
286
+ Structure is documented below.
287
+ :param pulumi.Input[str] create_time: Time at which the backend was created.
288
+ :param pulumi.Input[str] delete_time: Time at which the backend was deleted.
289
+ :param pulumi.Input[str] display_name: Human-readable name. 63 character limit.
290
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
291
+ :param pulumi.Input[str] environment: The environment name of the backend, used to load environment variables
292
+ from environment specific configuration.
293
+ :param pulumi.Input[str] etag: Server-computed checksum based on other values; may be sent
294
+ on update or delete to ensure operation is done on expected resource.
295
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Unstructured key value map that can be used to organize and categorize
296
+ objects.
297
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
298
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
299
+ :param pulumi.Input[str] location: The canonical IDs of a Google Cloud location such as "us-east1".
300
+ :param pulumi.Input[Sequence[pulumi.Input['AppHostingBackendManagedResourceArgs']]] managed_resources: A list of the resources managed by this backend.
301
+ Structure is documented below.
302
+ :param pulumi.Input[str] name: Identifier. The resource name of the backend.
303
+ Format:
304
+ `projects/{project}/locations/{locationId}/backends/{backendId}`.
305
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
306
+ If it is not provided, the provider project is used.
307
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
308
+ and default labels configured on the provider.
309
+ :param pulumi.Input[str] service_account: The name of the service account used for Cloud Build and Cloud Run.
310
+ Should have the role roles/firebaseapphosting.computeRunner
311
+ or equivalent permissions.
312
+ :param pulumi.Input[str] serving_locality: Immutable. Specifies how App Hosting will serve the content for this backend. It will
313
+ either be contained to a single region (REGIONAL_STRICT) or allowed to use
314
+ App Hosting's global-replicated serving infrastructure (GLOBAL_ACCESS).
315
+ Possible values are: `REGIONAL_STRICT`, `GLOBAL_ACCESS`.
316
+ :param pulumi.Input[str] uid: System-assigned, unique identifier.
317
+ :param pulumi.Input[str] update_time: Time at which the backend was last updated.
318
+ :param pulumi.Input[str] uri: The primary URI to communicate with the backend.
319
+ """
320
+ if annotations is not None:
321
+ pulumi.set(__self__, "annotations", annotations)
322
+ if app_id is not None:
323
+ pulumi.set(__self__, "app_id", app_id)
324
+ if backend_id is not None:
325
+ pulumi.set(__self__, "backend_id", backend_id)
326
+ if codebase is not None:
327
+ pulumi.set(__self__, "codebase", codebase)
328
+ if create_time is not None:
329
+ pulumi.set(__self__, "create_time", create_time)
330
+ if delete_time is not None:
331
+ pulumi.set(__self__, "delete_time", delete_time)
332
+ if display_name is not None:
333
+ pulumi.set(__self__, "display_name", display_name)
334
+ if effective_annotations is not None:
335
+ pulumi.set(__self__, "effective_annotations", effective_annotations)
336
+ if effective_labels is not None:
337
+ pulumi.set(__self__, "effective_labels", effective_labels)
338
+ if environment is not None:
339
+ pulumi.set(__self__, "environment", environment)
340
+ if etag is not None:
341
+ pulumi.set(__self__, "etag", etag)
342
+ if labels is not None:
343
+ pulumi.set(__self__, "labels", labels)
344
+ if location is not None:
345
+ pulumi.set(__self__, "location", location)
346
+ if managed_resources is not None:
347
+ pulumi.set(__self__, "managed_resources", managed_resources)
348
+ if name is not None:
349
+ pulumi.set(__self__, "name", name)
350
+ if project is not None:
351
+ pulumi.set(__self__, "project", project)
352
+ if pulumi_labels is not None:
353
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
354
+ if service_account is not None:
355
+ pulumi.set(__self__, "service_account", service_account)
356
+ if serving_locality is not None:
357
+ pulumi.set(__self__, "serving_locality", serving_locality)
358
+ if uid is not None:
359
+ pulumi.set(__self__, "uid", uid)
360
+ if update_time is not None:
361
+ pulumi.set(__self__, "update_time", update_time)
362
+ if uri is not None:
363
+ pulumi.set(__self__, "uri", uri)
364
+
365
+ @property
366
+ @pulumi.getter
367
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
368
+ """
369
+ Unstructured key value map that may be set by external tools to
370
+ store and arbitrary metadata. They are not queryable and should be
371
+ preserved when modifying objects.
372
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
373
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
374
+ """
375
+ return pulumi.get(self, "annotations")
376
+
377
+ @annotations.setter
378
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
379
+ pulumi.set(self, "annotations", value)
380
+
381
+ @property
382
+ @pulumi.getter(name="appId")
383
+ def app_id(self) -> Optional[pulumi.Input[str]]:
384
+ """
385
+ The [ID of a Web
386
+ App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id)
387
+ associated with the backend.
388
+ """
389
+ return pulumi.get(self, "app_id")
390
+
391
+ @app_id.setter
392
+ def app_id(self, value: Optional[pulumi.Input[str]]):
393
+ pulumi.set(self, "app_id", value)
394
+
395
+ @property
396
+ @pulumi.getter(name="backendId")
397
+ def backend_id(self) -> Optional[pulumi.Input[str]]:
398
+ """
399
+ Id of the backend. Also used as the service ID for Cloud Run, and as part
400
+ of the default domain name.
401
+
402
+
403
+ - - -
404
+ """
405
+ return pulumi.get(self, "backend_id")
406
+
407
+ @backend_id.setter
408
+ def backend_id(self, value: Optional[pulumi.Input[str]]):
409
+ pulumi.set(self, "backend_id", value)
410
+
411
+ @property
412
+ @pulumi.getter
413
+ def codebase(self) -> Optional[pulumi.Input['AppHostingBackendCodebaseArgs']]:
414
+ """
415
+ The connection to an external source repository to watch for event-driven
416
+ updates to the backend.
417
+ Structure is documented below.
418
+ """
419
+ return pulumi.get(self, "codebase")
420
+
421
+ @codebase.setter
422
+ def codebase(self, value: Optional[pulumi.Input['AppHostingBackendCodebaseArgs']]):
423
+ pulumi.set(self, "codebase", value)
424
+
425
+ @property
426
+ @pulumi.getter(name="createTime")
427
+ def create_time(self) -> Optional[pulumi.Input[str]]:
428
+ """
429
+ Time at which the backend was created.
430
+ """
431
+ return pulumi.get(self, "create_time")
432
+
433
+ @create_time.setter
434
+ def create_time(self, value: Optional[pulumi.Input[str]]):
435
+ pulumi.set(self, "create_time", value)
436
+
437
+ @property
438
+ @pulumi.getter(name="deleteTime")
439
+ def delete_time(self) -> Optional[pulumi.Input[str]]:
440
+ """
441
+ Time at which the backend was deleted.
442
+ """
443
+ return pulumi.get(self, "delete_time")
444
+
445
+ @delete_time.setter
446
+ def delete_time(self, value: Optional[pulumi.Input[str]]):
447
+ pulumi.set(self, "delete_time", value)
448
+
449
+ @property
450
+ @pulumi.getter(name="displayName")
451
+ def display_name(self) -> Optional[pulumi.Input[str]]:
452
+ """
453
+ Human-readable name. 63 character limit.
454
+ """
455
+ return pulumi.get(self, "display_name")
456
+
457
+ @display_name.setter
458
+ def display_name(self, value: Optional[pulumi.Input[str]]):
459
+ pulumi.set(self, "display_name", value)
460
+
461
+ @property
462
+ @pulumi.getter(name="effectiveAnnotations")
463
+ def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
464
+ return pulumi.get(self, "effective_annotations")
465
+
466
+ @effective_annotations.setter
467
+ def effective_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
468
+ pulumi.set(self, "effective_annotations", value)
469
+
470
+ @property
471
+ @pulumi.getter(name="effectiveLabels")
472
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
473
+ """
474
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
475
+ """
476
+ return pulumi.get(self, "effective_labels")
477
+
478
+ @effective_labels.setter
479
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
480
+ pulumi.set(self, "effective_labels", value)
481
+
482
+ @property
483
+ @pulumi.getter
484
+ def environment(self) -> Optional[pulumi.Input[str]]:
485
+ """
486
+ The environment name of the backend, used to load environment variables
487
+ from environment specific configuration.
488
+ """
489
+ return pulumi.get(self, "environment")
490
+
491
+ @environment.setter
492
+ def environment(self, value: Optional[pulumi.Input[str]]):
493
+ pulumi.set(self, "environment", value)
494
+
495
+ @property
496
+ @pulumi.getter
497
+ def etag(self) -> Optional[pulumi.Input[str]]:
498
+ """
499
+ Server-computed checksum based on other values; may be sent
500
+ on update or delete to ensure operation is done on expected resource.
501
+ """
502
+ return pulumi.get(self, "etag")
503
+
504
+ @etag.setter
505
+ def etag(self, value: Optional[pulumi.Input[str]]):
506
+ pulumi.set(self, "etag", value)
507
+
508
+ @property
509
+ @pulumi.getter
510
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
511
+ """
512
+ Unstructured key value map that can be used to organize and categorize
513
+ objects.
514
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
515
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
516
+ """
517
+ return pulumi.get(self, "labels")
518
+
519
+ @labels.setter
520
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
521
+ pulumi.set(self, "labels", value)
522
+
523
+ @property
524
+ @pulumi.getter
525
+ def location(self) -> Optional[pulumi.Input[str]]:
526
+ """
527
+ The canonical IDs of a Google Cloud location such as "us-east1".
528
+ """
529
+ return pulumi.get(self, "location")
530
+
531
+ @location.setter
532
+ def location(self, value: Optional[pulumi.Input[str]]):
533
+ pulumi.set(self, "location", value)
534
+
535
+ @property
536
+ @pulumi.getter(name="managedResources")
537
+ def managed_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AppHostingBackendManagedResourceArgs']]]]:
538
+ """
539
+ A list of the resources managed by this backend.
540
+ Structure is documented below.
541
+ """
542
+ return pulumi.get(self, "managed_resources")
543
+
544
+ @managed_resources.setter
545
+ def managed_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AppHostingBackendManagedResourceArgs']]]]):
546
+ pulumi.set(self, "managed_resources", value)
547
+
548
+ @property
549
+ @pulumi.getter
550
+ def name(self) -> Optional[pulumi.Input[str]]:
551
+ """
552
+ Identifier. The resource name of the backend.
553
+ Format:
554
+ `projects/{project}/locations/{locationId}/backends/{backendId}`.
555
+ """
556
+ return pulumi.get(self, "name")
557
+
558
+ @name.setter
559
+ def name(self, value: Optional[pulumi.Input[str]]):
560
+ pulumi.set(self, "name", value)
561
+
562
+ @property
563
+ @pulumi.getter
564
+ def project(self) -> Optional[pulumi.Input[str]]:
565
+ """
566
+ The ID of the project in which the resource belongs.
567
+ If it is not provided, the provider project is used.
568
+ """
569
+ return pulumi.get(self, "project")
570
+
571
+ @project.setter
572
+ def project(self, value: Optional[pulumi.Input[str]]):
573
+ pulumi.set(self, "project", value)
574
+
575
+ @property
576
+ @pulumi.getter(name="pulumiLabels")
577
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
578
+ """
579
+ The combination of labels configured directly on the resource
580
+ and default labels configured on the provider.
581
+ """
582
+ return pulumi.get(self, "pulumi_labels")
583
+
584
+ @pulumi_labels.setter
585
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
586
+ pulumi.set(self, "pulumi_labels", value)
587
+
588
+ @property
589
+ @pulumi.getter(name="serviceAccount")
590
+ def service_account(self) -> Optional[pulumi.Input[str]]:
591
+ """
592
+ The name of the service account used for Cloud Build and Cloud Run.
593
+ Should have the role roles/firebaseapphosting.computeRunner
594
+ or equivalent permissions.
595
+ """
596
+ return pulumi.get(self, "service_account")
597
+
598
+ @service_account.setter
599
+ def service_account(self, value: Optional[pulumi.Input[str]]):
600
+ pulumi.set(self, "service_account", value)
601
+
602
+ @property
603
+ @pulumi.getter(name="servingLocality")
604
+ def serving_locality(self) -> Optional[pulumi.Input[str]]:
605
+ """
606
+ Immutable. Specifies how App Hosting will serve the content for this backend. It will
607
+ either be contained to a single region (REGIONAL_STRICT) or allowed to use
608
+ App Hosting's global-replicated serving infrastructure (GLOBAL_ACCESS).
609
+ Possible values are: `REGIONAL_STRICT`, `GLOBAL_ACCESS`.
610
+ """
611
+ return pulumi.get(self, "serving_locality")
612
+
613
+ @serving_locality.setter
614
+ def serving_locality(self, value: Optional[pulumi.Input[str]]):
615
+ pulumi.set(self, "serving_locality", value)
616
+
617
+ @property
618
+ @pulumi.getter
619
+ def uid(self) -> Optional[pulumi.Input[str]]:
620
+ """
621
+ System-assigned, unique identifier.
622
+ """
623
+ return pulumi.get(self, "uid")
624
+
625
+ @uid.setter
626
+ def uid(self, value: Optional[pulumi.Input[str]]):
627
+ pulumi.set(self, "uid", value)
628
+
629
+ @property
630
+ @pulumi.getter(name="updateTime")
631
+ def update_time(self) -> Optional[pulumi.Input[str]]:
632
+ """
633
+ Time at which the backend was last updated.
634
+ """
635
+ return pulumi.get(self, "update_time")
636
+
637
+ @update_time.setter
638
+ def update_time(self, value: Optional[pulumi.Input[str]]):
639
+ pulumi.set(self, "update_time", value)
640
+
641
+ @property
642
+ @pulumi.getter
643
+ def uri(self) -> Optional[pulumi.Input[str]]:
644
+ """
645
+ The primary URI to communicate with the backend.
646
+ """
647
+ return pulumi.get(self, "uri")
648
+
649
+ @uri.setter
650
+ def uri(self, value: Optional[pulumi.Input[str]]):
651
+ pulumi.set(self, "uri", value)
652
+
653
+
654
+ class AppHostingBackend(pulumi.CustomResource):
655
+ @overload
656
+ def __init__(__self__,
657
+ resource_name: str,
658
+ opts: Optional[pulumi.ResourceOptions] = None,
659
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
660
+ app_id: Optional[pulumi.Input[str]] = None,
661
+ backend_id: Optional[pulumi.Input[str]] = None,
662
+ codebase: Optional[pulumi.Input[Union['AppHostingBackendCodebaseArgs', 'AppHostingBackendCodebaseArgsDict']]] = None,
663
+ display_name: Optional[pulumi.Input[str]] = None,
664
+ environment: Optional[pulumi.Input[str]] = None,
665
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
666
+ location: Optional[pulumi.Input[str]] = None,
667
+ project: Optional[pulumi.Input[str]] = None,
668
+ service_account: Optional[pulumi.Input[str]] = None,
669
+ serving_locality: Optional[pulumi.Input[str]] = None,
670
+ __props__=None):
671
+ """
672
+ A Backend is the primary resource of App Hosting.
673
+
674
+ ## Example Usage
675
+
676
+ ### Firebase App Hosting Backend Minimal
677
+
678
+ ```python
679
+ import pulumi
680
+ import pulumi_gcp as gcp
681
+
682
+ ### Include these blocks only once per project if you are starting from scratch ###
683
+ service_account = gcp.serviceaccount.Account("service_account",
684
+ project="my-project-name",
685
+ account_id="firebase-app-hosting-compute",
686
+ display_name="Firebase App Hosting compute service account",
687
+ create_ignore_already_exists=True)
688
+ fah = gcp.projects.Service("fah",
689
+ project="my-project-name",
690
+ service="firebaseapphosting.googleapis.com",
691
+ disable_on_destroy=False)
692
+ example = gcp.firebase.AppHostingBackend("example",
693
+ project="my-project-name",
694
+ location="us-central1",
695
+ backend_id="mini",
696
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
697
+ serving_locality="GLOBAL_ACCESS",
698
+ service_account=service_account.email,
699
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
700
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
701
+ project="my-project-name",
702
+ role="roles/firebaseapphosting.computeRunner",
703
+ member=service_account.member)
704
+ ```
705
+ ### Firebase App Hosting Backend Full
706
+
707
+ ```python
708
+ import pulumi
709
+ import pulumi_gcp as gcp
710
+
711
+ ### Include these blocks only once per project if you are starting from scratch ###
712
+ service_account = gcp.serviceaccount.Account("service_account",
713
+ project="my-project-name",
714
+ account_id="firebase-app-hosting-compute",
715
+ display_name="Firebase App Hosting compute service account",
716
+ create_ignore_already_exists=True)
717
+ fah = gcp.projects.Service("fah",
718
+ project="my-project-name",
719
+ service="firebaseapphosting.googleapis.com",
720
+ disable_on_destroy=False)
721
+ example = gcp.firebase.AppHostingBackend("example",
722
+ project="my-project-name",
723
+ location="us-central1",
724
+ backend_id="full",
725
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
726
+ display_name="My Backend",
727
+ serving_locality="GLOBAL_ACCESS",
728
+ service_account=service_account.email,
729
+ environment="prod",
730
+ annotations={
731
+ "key": "value",
732
+ },
733
+ labels={
734
+ "key": "value",
735
+ },
736
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
737
+ app_hosting_sa_developerconnect = gcp.projects.IAMMember("app_hosting_sa_developerconnect",
738
+ project="my-project-name",
739
+ role="roles/developerconnect.readTokenAccessor",
740
+ member=service_account.member)
741
+ app_hosting_sa_adminsdk = gcp.projects.IAMMember("app_hosting_sa_adminsdk",
742
+ project="my-project-name",
743
+ role="roles/firebase.sdkAdminServiceAgent",
744
+ member=service_account.member)
745
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
746
+ project="my-project-name",
747
+ role="roles/firebaseapphosting.computeRunner",
748
+ member=service_account.member)
749
+ ```
750
+ ## Import
751
+
752
+ Backend can be imported using any of these accepted formats:
753
+
754
+ * `projects/{{project}}/locations/{{location}}/backends/{{backend_id}}`
755
+
756
+ * `{{project}}/{{location}}/{{backend_id}}`
757
+
758
+ * `{{location}}/{{backend_id}}`
759
+
760
+ When using the `pulumi import` command, Backend can be imported using one of the formats above. For example:
761
+
762
+ ```sh
763
+ $ pulumi import gcp:firebase/appHostingBackend:AppHostingBackend default projects/{{project}}/locations/{{location}}/backends/{{backend_id}}
764
+ ```
765
+
766
+ ```sh
767
+ $ pulumi import gcp:firebase/appHostingBackend:AppHostingBackend default {{project}}/{{location}}/{{backend_id}}
768
+ ```
769
+
770
+ ```sh
771
+ $ pulumi import gcp:firebase/appHostingBackend:AppHostingBackend default {{location}}/{{backend_id}}
772
+ ```
773
+
774
+ :param str resource_name: The name of the resource.
775
+ :param pulumi.ResourceOptions opts: Options for the resource.
776
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Unstructured key value map that may be set by external tools to
777
+ store and arbitrary metadata. They are not queryable and should be
778
+ preserved when modifying objects.
779
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
780
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
781
+ :param pulumi.Input[str] app_id: The [ID of a Web
782
+ App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id)
783
+ associated with the backend.
784
+ :param pulumi.Input[str] backend_id: Id of the backend. Also used as the service ID for Cloud Run, and as part
785
+ of the default domain name.
786
+
787
+
788
+ - - -
789
+ :param pulumi.Input[Union['AppHostingBackendCodebaseArgs', 'AppHostingBackendCodebaseArgsDict']] codebase: The connection to an external source repository to watch for event-driven
790
+ updates to the backend.
791
+ Structure is documented below.
792
+ :param pulumi.Input[str] display_name: Human-readable name. 63 character limit.
793
+ :param pulumi.Input[str] environment: The environment name of the backend, used to load environment variables
794
+ from environment specific configuration.
795
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Unstructured key value map that can be used to organize and categorize
796
+ objects.
797
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
798
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
799
+ :param pulumi.Input[str] location: The canonical IDs of a Google Cloud location such as "us-east1".
800
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
801
+ If it is not provided, the provider project is used.
802
+ :param pulumi.Input[str] service_account: The name of the service account used for Cloud Build and Cloud Run.
803
+ Should have the role roles/firebaseapphosting.computeRunner
804
+ or equivalent permissions.
805
+ :param pulumi.Input[str] serving_locality: Immutable. Specifies how App Hosting will serve the content for this backend. It will
806
+ either be contained to a single region (REGIONAL_STRICT) or allowed to use
807
+ App Hosting's global-replicated serving infrastructure (GLOBAL_ACCESS).
808
+ Possible values are: `REGIONAL_STRICT`, `GLOBAL_ACCESS`.
809
+ """
810
+ ...
811
+ @overload
812
+ def __init__(__self__,
813
+ resource_name: str,
814
+ args: AppHostingBackendArgs,
815
+ opts: Optional[pulumi.ResourceOptions] = None):
816
+ """
817
+ A Backend is the primary resource of App Hosting.
818
+
819
+ ## Example Usage
820
+
821
+ ### Firebase App Hosting Backend Minimal
822
+
823
+ ```python
824
+ import pulumi
825
+ import pulumi_gcp as gcp
826
+
827
+ ### Include these blocks only once per project if you are starting from scratch ###
828
+ service_account = gcp.serviceaccount.Account("service_account",
829
+ project="my-project-name",
830
+ account_id="firebase-app-hosting-compute",
831
+ display_name="Firebase App Hosting compute service account",
832
+ create_ignore_already_exists=True)
833
+ fah = gcp.projects.Service("fah",
834
+ project="my-project-name",
835
+ service="firebaseapphosting.googleapis.com",
836
+ disable_on_destroy=False)
837
+ example = gcp.firebase.AppHostingBackend("example",
838
+ project="my-project-name",
839
+ location="us-central1",
840
+ backend_id="mini",
841
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
842
+ serving_locality="GLOBAL_ACCESS",
843
+ service_account=service_account.email,
844
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
845
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
846
+ project="my-project-name",
847
+ role="roles/firebaseapphosting.computeRunner",
848
+ member=service_account.member)
849
+ ```
850
+ ### Firebase App Hosting Backend Full
851
+
852
+ ```python
853
+ import pulumi
854
+ import pulumi_gcp as gcp
855
+
856
+ ### Include these blocks only once per project if you are starting from scratch ###
857
+ service_account = gcp.serviceaccount.Account("service_account",
858
+ project="my-project-name",
859
+ account_id="firebase-app-hosting-compute",
860
+ display_name="Firebase App Hosting compute service account",
861
+ create_ignore_already_exists=True)
862
+ fah = gcp.projects.Service("fah",
863
+ project="my-project-name",
864
+ service="firebaseapphosting.googleapis.com",
865
+ disable_on_destroy=False)
866
+ example = gcp.firebase.AppHostingBackend("example",
867
+ project="my-project-name",
868
+ location="us-central1",
869
+ backend_id="full",
870
+ app_id="1:0000000000:web:674cde32020e16fbce9dbd",
871
+ display_name="My Backend",
872
+ serving_locality="GLOBAL_ACCESS",
873
+ service_account=service_account.email,
874
+ environment="prod",
875
+ annotations={
876
+ "key": "value",
877
+ },
878
+ labels={
879
+ "key": "value",
880
+ },
881
+ opts = pulumi.ResourceOptions(depends_on=[fah]))
882
+ app_hosting_sa_developerconnect = gcp.projects.IAMMember("app_hosting_sa_developerconnect",
883
+ project="my-project-name",
884
+ role="roles/developerconnect.readTokenAccessor",
885
+ member=service_account.member)
886
+ app_hosting_sa_adminsdk = gcp.projects.IAMMember("app_hosting_sa_adminsdk",
887
+ project="my-project-name",
888
+ role="roles/firebase.sdkAdminServiceAgent",
889
+ member=service_account.member)
890
+ app_hosting_sa_runner = gcp.projects.IAMMember("app_hosting_sa_runner",
891
+ project="my-project-name",
892
+ role="roles/firebaseapphosting.computeRunner",
893
+ member=service_account.member)
894
+ ```
895
+ ## Import
896
+
897
+ Backend can be imported using any of these accepted formats:
898
+
899
+ * `projects/{{project}}/locations/{{location}}/backends/{{backend_id}}`
900
+
901
+ * `{{project}}/{{location}}/{{backend_id}}`
902
+
903
+ * `{{location}}/{{backend_id}}`
904
+
905
+ When using the `pulumi import` command, Backend can be imported using one of the formats above. For example:
906
+
907
+ ```sh
908
+ $ pulumi import gcp:firebase/appHostingBackend:AppHostingBackend default projects/{{project}}/locations/{{location}}/backends/{{backend_id}}
909
+ ```
910
+
911
+ ```sh
912
+ $ pulumi import gcp:firebase/appHostingBackend:AppHostingBackend default {{project}}/{{location}}/{{backend_id}}
913
+ ```
914
+
915
+ ```sh
916
+ $ pulumi import gcp:firebase/appHostingBackend:AppHostingBackend default {{location}}/{{backend_id}}
917
+ ```
918
+
919
+ :param str resource_name: The name of the resource.
920
+ :param AppHostingBackendArgs args: The arguments to use to populate this resource's properties.
921
+ :param pulumi.ResourceOptions opts: Options for the resource.
922
+ """
923
+ ...
924
+ def __init__(__self__, resource_name: str, *args, **kwargs):
925
+ resource_args, opts = _utilities.get_resource_args_opts(AppHostingBackendArgs, pulumi.ResourceOptions, *args, **kwargs)
926
+ if resource_args is not None:
927
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
928
+ else:
929
+ __self__._internal_init(resource_name, *args, **kwargs)
930
+
931
+ def _internal_init(__self__,
932
+ resource_name: str,
933
+ opts: Optional[pulumi.ResourceOptions] = None,
934
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
935
+ app_id: Optional[pulumi.Input[str]] = None,
936
+ backend_id: Optional[pulumi.Input[str]] = None,
937
+ codebase: Optional[pulumi.Input[Union['AppHostingBackendCodebaseArgs', 'AppHostingBackendCodebaseArgsDict']]] = None,
938
+ display_name: Optional[pulumi.Input[str]] = None,
939
+ environment: Optional[pulumi.Input[str]] = None,
940
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
941
+ location: Optional[pulumi.Input[str]] = None,
942
+ project: Optional[pulumi.Input[str]] = None,
943
+ service_account: Optional[pulumi.Input[str]] = None,
944
+ serving_locality: Optional[pulumi.Input[str]] = None,
945
+ __props__=None):
946
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
947
+ if not isinstance(opts, pulumi.ResourceOptions):
948
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
949
+ if opts.id is None:
950
+ if __props__ is not None:
951
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
952
+ __props__ = AppHostingBackendArgs.__new__(AppHostingBackendArgs)
953
+
954
+ __props__.__dict__["annotations"] = annotations
955
+ if app_id is None and not opts.urn:
956
+ raise TypeError("Missing required property 'app_id'")
957
+ __props__.__dict__["app_id"] = app_id
958
+ if backend_id is None and not opts.urn:
959
+ raise TypeError("Missing required property 'backend_id'")
960
+ __props__.__dict__["backend_id"] = backend_id
961
+ __props__.__dict__["codebase"] = codebase
962
+ __props__.__dict__["display_name"] = display_name
963
+ __props__.__dict__["environment"] = environment
964
+ __props__.__dict__["labels"] = labels
965
+ if location is None and not opts.urn:
966
+ raise TypeError("Missing required property 'location'")
967
+ __props__.__dict__["location"] = location
968
+ __props__.__dict__["project"] = project
969
+ if service_account is None and not opts.urn:
970
+ raise TypeError("Missing required property 'service_account'")
971
+ __props__.__dict__["service_account"] = service_account
972
+ if serving_locality is None and not opts.urn:
973
+ raise TypeError("Missing required property 'serving_locality'")
974
+ __props__.__dict__["serving_locality"] = serving_locality
975
+ __props__.__dict__["create_time"] = None
976
+ __props__.__dict__["delete_time"] = None
977
+ __props__.__dict__["effective_annotations"] = None
978
+ __props__.__dict__["effective_labels"] = None
979
+ __props__.__dict__["etag"] = None
980
+ __props__.__dict__["managed_resources"] = None
981
+ __props__.__dict__["name"] = None
982
+ __props__.__dict__["pulumi_labels"] = None
983
+ __props__.__dict__["uid"] = None
984
+ __props__.__dict__["update_time"] = None
985
+ __props__.__dict__["uri"] = None
986
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
987
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
988
+ super(AppHostingBackend, __self__).__init__(
989
+ 'gcp:firebase/appHostingBackend:AppHostingBackend',
990
+ resource_name,
991
+ __props__,
992
+ opts)
993
+
994
+ @staticmethod
995
+ def get(resource_name: str,
996
+ id: pulumi.Input[str],
997
+ opts: Optional[pulumi.ResourceOptions] = None,
998
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
999
+ app_id: Optional[pulumi.Input[str]] = None,
1000
+ backend_id: Optional[pulumi.Input[str]] = None,
1001
+ codebase: Optional[pulumi.Input[Union['AppHostingBackendCodebaseArgs', 'AppHostingBackendCodebaseArgsDict']]] = None,
1002
+ create_time: Optional[pulumi.Input[str]] = None,
1003
+ delete_time: Optional[pulumi.Input[str]] = None,
1004
+ display_name: Optional[pulumi.Input[str]] = None,
1005
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1006
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1007
+ environment: Optional[pulumi.Input[str]] = None,
1008
+ etag: Optional[pulumi.Input[str]] = None,
1009
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1010
+ location: Optional[pulumi.Input[str]] = None,
1011
+ managed_resources: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AppHostingBackendManagedResourceArgs', 'AppHostingBackendManagedResourceArgsDict']]]]] = None,
1012
+ name: Optional[pulumi.Input[str]] = None,
1013
+ project: Optional[pulumi.Input[str]] = None,
1014
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1015
+ service_account: Optional[pulumi.Input[str]] = None,
1016
+ serving_locality: Optional[pulumi.Input[str]] = None,
1017
+ uid: Optional[pulumi.Input[str]] = None,
1018
+ update_time: Optional[pulumi.Input[str]] = None,
1019
+ uri: Optional[pulumi.Input[str]] = None) -> 'AppHostingBackend':
1020
+ """
1021
+ Get an existing AppHostingBackend resource's state with the given name, id, and optional extra
1022
+ properties used to qualify the lookup.
1023
+
1024
+ :param str resource_name: The unique name of the resulting resource.
1025
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1026
+ :param pulumi.ResourceOptions opts: Options for the resource.
1027
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Unstructured key value map that may be set by external tools to
1028
+ store and arbitrary metadata. They are not queryable and should be
1029
+ preserved when modifying objects.
1030
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
1031
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
1032
+ :param pulumi.Input[str] app_id: The [ID of a Web
1033
+ App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id)
1034
+ associated with the backend.
1035
+ :param pulumi.Input[str] backend_id: Id of the backend. Also used as the service ID for Cloud Run, and as part
1036
+ of the default domain name.
1037
+
1038
+
1039
+ - - -
1040
+ :param pulumi.Input[Union['AppHostingBackendCodebaseArgs', 'AppHostingBackendCodebaseArgsDict']] codebase: The connection to an external source repository to watch for event-driven
1041
+ updates to the backend.
1042
+ Structure is documented below.
1043
+ :param pulumi.Input[str] create_time: Time at which the backend was created.
1044
+ :param pulumi.Input[str] delete_time: Time at which the backend was deleted.
1045
+ :param pulumi.Input[str] display_name: Human-readable name. 63 character limit.
1046
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1047
+ :param pulumi.Input[str] environment: The environment name of the backend, used to load environment variables
1048
+ from environment specific configuration.
1049
+ :param pulumi.Input[str] etag: Server-computed checksum based on other values; may be sent
1050
+ on update or delete to ensure operation is done on expected resource.
1051
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Unstructured key value map that can be used to organize and categorize
1052
+ objects.
1053
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1054
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1055
+ :param pulumi.Input[str] location: The canonical IDs of a Google Cloud location such as "us-east1".
1056
+ :param pulumi.Input[Sequence[pulumi.Input[Union['AppHostingBackendManagedResourceArgs', 'AppHostingBackendManagedResourceArgsDict']]]] managed_resources: A list of the resources managed by this backend.
1057
+ Structure is documented below.
1058
+ :param pulumi.Input[str] name: Identifier. The resource name of the backend.
1059
+ Format:
1060
+ `projects/{project}/locations/{locationId}/backends/{backendId}`.
1061
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1062
+ If it is not provided, the provider project is used.
1063
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
1064
+ and default labels configured on the provider.
1065
+ :param pulumi.Input[str] service_account: The name of the service account used for Cloud Build and Cloud Run.
1066
+ Should have the role roles/firebaseapphosting.computeRunner
1067
+ or equivalent permissions.
1068
+ :param pulumi.Input[str] serving_locality: Immutable. Specifies how App Hosting will serve the content for this backend. It will
1069
+ either be contained to a single region (REGIONAL_STRICT) or allowed to use
1070
+ App Hosting's global-replicated serving infrastructure (GLOBAL_ACCESS).
1071
+ Possible values are: `REGIONAL_STRICT`, `GLOBAL_ACCESS`.
1072
+ :param pulumi.Input[str] uid: System-assigned, unique identifier.
1073
+ :param pulumi.Input[str] update_time: Time at which the backend was last updated.
1074
+ :param pulumi.Input[str] uri: The primary URI to communicate with the backend.
1075
+ """
1076
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1077
+
1078
+ __props__ = _AppHostingBackendState.__new__(_AppHostingBackendState)
1079
+
1080
+ __props__.__dict__["annotations"] = annotations
1081
+ __props__.__dict__["app_id"] = app_id
1082
+ __props__.__dict__["backend_id"] = backend_id
1083
+ __props__.__dict__["codebase"] = codebase
1084
+ __props__.__dict__["create_time"] = create_time
1085
+ __props__.__dict__["delete_time"] = delete_time
1086
+ __props__.__dict__["display_name"] = display_name
1087
+ __props__.__dict__["effective_annotations"] = effective_annotations
1088
+ __props__.__dict__["effective_labels"] = effective_labels
1089
+ __props__.__dict__["environment"] = environment
1090
+ __props__.__dict__["etag"] = etag
1091
+ __props__.__dict__["labels"] = labels
1092
+ __props__.__dict__["location"] = location
1093
+ __props__.__dict__["managed_resources"] = managed_resources
1094
+ __props__.__dict__["name"] = name
1095
+ __props__.__dict__["project"] = project
1096
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
1097
+ __props__.__dict__["service_account"] = service_account
1098
+ __props__.__dict__["serving_locality"] = serving_locality
1099
+ __props__.__dict__["uid"] = uid
1100
+ __props__.__dict__["update_time"] = update_time
1101
+ __props__.__dict__["uri"] = uri
1102
+ return AppHostingBackend(resource_name, opts=opts, __props__=__props__)
1103
+
1104
+ @property
1105
+ @pulumi.getter
1106
+ def annotations(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1107
+ """
1108
+ Unstructured key value map that may be set by external tools to
1109
+ store and arbitrary metadata. They are not queryable and should be
1110
+ preserved when modifying objects.
1111
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
1112
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
1113
+ """
1114
+ return pulumi.get(self, "annotations")
1115
+
1116
+ @property
1117
+ @pulumi.getter(name="appId")
1118
+ def app_id(self) -> pulumi.Output[str]:
1119
+ """
1120
+ The [ID of a Web
1121
+ App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id)
1122
+ associated with the backend.
1123
+ """
1124
+ return pulumi.get(self, "app_id")
1125
+
1126
+ @property
1127
+ @pulumi.getter(name="backendId")
1128
+ def backend_id(self) -> pulumi.Output[str]:
1129
+ """
1130
+ Id of the backend. Also used as the service ID for Cloud Run, and as part
1131
+ of the default domain name.
1132
+
1133
+
1134
+ - - -
1135
+ """
1136
+ return pulumi.get(self, "backend_id")
1137
+
1138
+ @property
1139
+ @pulumi.getter
1140
+ def codebase(self) -> pulumi.Output[Optional['outputs.AppHostingBackendCodebase']]:
1141
+ """
1142
+ The connection to an external source repository to watch for event-driven
1143
+ updates to the backend.
1144
+ Structure is documented below.
1145
+ """
1146
+ return pulumi.get(self, "codebase")
1147
+
1148
+ @property
1149
+ @pulumi.getter(name="createTime")
1150
+ def create_time(self) -> pulumi.Output[str]:
1151
+ """
1152
+ Time at which the backend was created.
1153
+ """
1154
+ return pulumi.get(self, "create_time")
1155
+
1156
+ @property
1157
+ @pulumi.getter(name="deleteTime")
1158
+ def delete_time(self) -> pulumi.Output[str]:
1159
+ """
1160
+ Time at which the backend was deleted.
1161
+ """
1162
+ return pulumi.get(self, "delete_time")
1163
+
1164
+ @property
1165
+ @pulumi.getter(name="displayName")
1166
+ def display_name(self) -> pulumi.Output[Optional[str]]:
1167
+ """
1168
+ Human-readable name. 63 character limit.
1169
+ """
1170
+ return pulumi.get(self, "display_name")
1171
+
1172
+ @property
1173
+ @pulumi.getter(name="effectiveAnnotations")
1174
+ def effective_annotations(self) -> pulumi.Output[Mapping[str, str]]:
1175
+ return pulumi.get(self, "effective_annotations")
1176
+
1177
+ @property
1178
+ @pulumi.getter(name="effectiveLabels")
1179
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
1180
+ """
1181
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1182
+ """
1183
+ return pulumi.get(self, "effective_labels")
1184
+
1185
+ @property
1186
+ @pulumi.getter
1187
+ def environment(self) -> pulumi.Output[Optional[str]]:
1188
+ """
1189
+ The environment name of the backend, used to load environment variables
1190
+ from environment specific configuration.
1191
+ """
1192
+ return pulumi.get(self, "environment")
1193
+
1194
+ @property
1195
+ @pulumi.getter
1196
+ def etag(self) -> pulumi.Output[str]:
1197
+ """
1198
+ Server-computed checksum based on other values; may be sent
1199
+ on update or delete to ensure operation is done on expected resource.
1200
+ """
1201
+ return pulumi.get(self, "etag")
1202
+
1203
+ @property
1204
+ @pulumi.getter
1205
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1206
+ """
1207
+ Unstructured key value map that can be used to organize and categorize
1208
+ objects.
1209
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1210
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1211
+ """
1212
+ return pulumi.get(self, "labels")
1213
+
1214
+ @property
1215
+ @pulumi.getter
1216
+ def location(self) -> pulumi.Output[str]:
1217
+ """
1218
+ The canonical IDs of a Google Cloud location such as "us-east1".
1219
+ """
1220
+ return pulumi.get(self, "location")
1221
+
1222
+ @property
1223
+ @pulumi.getter(name="managedResources")
1224
+ def managed_resources(self) -> pulumi.Output[Sequence['outputs.AppHostingBackendManagedResource']]:
1225
+ """
1226
+ A list of the resources managed by this backend.
1227
+ Structure is documented below.
1228
+ """
1229
+ return pulumi.get(self, "managed_resources")
1230
+
1231
+ @property
1232
+ @pulumi.getter
1233
+ def name(self) -> pulumi.Output[str]:
1234
+ """
1235
+ Identifier. The resource name of the backend.
1236
+ Format:
1237
+ `projects/{project}/locations/{locationId}/backends/{backendId}`.
1238
+ """
1239
+ return pulumi.get(self, "name")
1240
+
1241
+ @property
1242
+ @pulumi.getter
1243
+ def project(self) -> pulumi.Output[str]:
1244
+ """
1245
+ The ID of the project in which the resource belongs.
1246
+ If it is not provided, the provider project is used.
1247
+ """
1248
+ return pulumi.get(self, "project")
1249
+
1250
+ @property
1251
+ @pulumi.getter(name="pulumiLabels")
1252
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
1253
+ """
1254
+ The combination of labels configured directly on the resource
1255
+ and default labels configured on the provider.
1256
+ """
1257
+ return pulumi.get(self, "pulumi_labels")
1258
+
1259
+ @property
1260
+ @pulumi.getter(name="serviceAccount")
1261
+ def service_account(self) -> pulumi.Output[str]:
1262
+ """
1263
+ The name of the service account used for Cloud Build and Cloud Run.
1264
+ Should have the role roles/firebaseapphosting.computeRunner
1265
+ or equivalent permissions.
1266
+ """
1267
+ return pulumi.get(self, "service_account")
1268
+
1269
+ @property
1270
+ @pulumi.getter(name="servingLocality")
1271
+ def serving_locality(self) -> pulumi.Output[str]:
1272
+ """
1273
+ Immutable. Specifies how App Hosting will serve the content for this backend. It will
1274
+ either be contained to a single region (REGIONAL_STRICT) or allowed to use
1275
+ App Hosting's global-replicated serving infrastructure (GLOBAL_ACCESS).
1276
+ Possible values are: `REGIONAL_STRICT`, `GLOBAL_ACCESS`.
1277
+ """
1278
+ return pulumi.get(self, "serving_locality")
1279
+
1280
+ @property
1281
+ @pulumi.getter
1282
+ def uid(self) -> pulumi.Output[str]:
1283
+ """
1284
+ System-assigned, unique identifier.
1285
+ """
1286
+ return pulumi.get(self, "uid")
1287
+
1288
+ @property
1289
+ @pulumi.getter(name="updateTime")
1290
+ def update_time(self) -> pulumi.Output[str]:
1291
+ """
1292
+ Time at which the backend was last updated.
1293
+ """
1294
+ return pulumi.get(self, "update_time")
1295
+
1296
+ @property
1297
+ @pulumi.getter
1298
+ def uri(self) -> pulumi.Output[str]:
1299
+ """
1300
+ The primary URI to communicate with the backend.
1301
+ """
1302
+ return pulumi.get(self, "uri")
1303
+