pulumi-gcp 7.15.0a1711038061__py3-none-any.whl → 7.16.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 (83) hide show
  1. pulumi_gcp/__init__.py +102 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +1 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +74 -58
  4. pulumi_gcp/accesscontextmanager/outputs.py +74 -58
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +345 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +80 -0
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +86 -0
  9. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +4 -2
  10. pulumi_gcp/apphub/__init__.py +15 -0
  11. pulumi_gcp/apphub/_inputs.py +1016 -0
  12. pulumi_gcp/apphub/application.py +775 -0
  13. pulumi_gcp/apphub/get_discovered_service.py +180 -0
  14. pulumi_gcp/apphub/get_discovered_workload.py +180 -0
  15. pulumi_gcp/apphub/outputs.py +1206 -0
  16. pulumi_gcp/apphub/service.py +1121 -0
  17. pulumi_gcp/apphub/service_project_attachment.py +516 -0
  18. pulumi_gcp/apphub/workload.py +1197 -0
  19. pulumi_gcp/cloudquota/__init__.py +10 -0
  20. pulumi_gcp/cloudquota/get_s_quota_info.py +322 -0
  21. pulumi_gcp/cloudquota/get_s_quota_infos.py +136 -0
  22. pulumi_gcp/cloudquota/outputs.py +375 -0
  23. pulumi_gcp/cloudrunv2/_inputs.py +85 -4
  24. pulumi_gcp/cloudrunv2/get_service.py +11 -1
  25. pulumi_gcp/cloudrunv2/outputs.py +165 -6
  26. pulumi_gcp/cloudrunv2/service.py +60 -6
  27. pulumi_gcp/composer/_inputs.py +16 -0
  28. pulumi_gcp/composer/outputs.py +23 -0
  29. pulumi_gcp/compute/_inputs.py +109 -11
  30. pulumi_gcp/compute/outputs.py +144 -13
  31. pulumi_gcp/compute/region_network_endpoint_group.py +30 -0
  32. pulumi_gcp/compute/region_url_map.py +152 -0
  33. pulumi_gcp/config/__init__.pyi +4 -0
  34. pulumi_gcp/config/vars.py +8 -0
  35. pulumi_gcp/dataform/repository.py +4 -74
  36. pulumi_gcp/firebase/__init__.py +1 -0
  37. pulumi_gcp/firebase/android_app.py +41 -40
  38. pulumi_gcp/firebase/app_check_device_check_config.py +572 -0
  39. pulumi_gcp/firestore/_inputs.py +69 -0
  40. pulumi_gcp/firestore/database.py +206 -0
  41. pulumi_gcp/firestore/index.py +34 -48
  42. pulumi_gcp/firestore/outputs.py +80 -0
  43. pulumi_gcp/gkeonprem/_inputs.py +1 -3
  44. pulumi_gcp/gkeonprem/outputs.py +1 -3
  45. pulumi_gcp/gkeonprem/v_mware_cluster.py +2 -0
  46. pulumi_gcp/iap/__init__.py +5 -0
  47. pulumi_gcp/iap/_inputs.py +100 -0
  48. pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +172 -0
  49. pulumi_gcp/iap/outputs.py +76 -0
  50. pulumi_gcp/iap/tunnel_dest_group.py +524 -0
  51. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +858 -0
  52. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +858 -0
  53. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +760 -0
  54. pulumi_gcp/kms/__init__.py +1 -0
  55. pulumi_gcp/kms/_inputs.py +246 -0
  56. pulumi_gcp/kms/ekm_connection.py +610 -0
  57. pulumi_gcp/kms/outputs.py +242 -0
  58. pulumi_gcp/monitoring/_inputs.py +2 -0
  59. pulumi_gcp/monitoring/outputs.py +2 -0
  60. pulumi_gcp/networksecurity/__init__.py +1 -0
  61. pulumi_gcp/networksecurity/firewall_endpoint.py +48 -0
  62. pulumi_gcp/networksecurity/firewall_endpoint_association.py +753 -0
  63. pulumi_gcp/notebooks/instance.py +8 -0
  64. pulumi_gcp/orgpolicy/policy.py +2 -2
  65. pulumi_gcp/provider.py +40 -0
  66. pulumi_gcp/pubsub/_inputs.py +108 -0
  67. pulumi_gcp/pubsub/get_topic.py +11 -1
  68. pulumi_gcp/pubsub/outputs.py +213 -0
  69. pulumi_gcp/pubsub/subscription.py +4 -4
  70. pulumi_gcp/pubsub/topic.py +92 -0
  71. pulumi_gcp/securityposture/posture.py +2 -2
  72. pulumi_gcp/securityposture/posture_deployment.py +2 -2
  73. pulumi_gcp/storage/_inputs.py +72 -15
  74. pulumi_gcp/storage/bucket.py +54 -0
  75. pulumi_gcp/storage/get_bucket.py +11 -1
  76. pulumi_gcp/storage/outputs.py +110 -14
  77. pulumi_gcp/workstations/_inputs.py +247 -4
  78. pulumi_gcp/workstations/outputs.py +261 -5
  79. pulumi_gcp/workstations/workstation_config.py +160 -0
  80. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/METADATA +1 -1
  81. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/RECORD +83 -61
  82. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/WHEEL +0 -0
  83. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,572 @@
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 pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+
12
+ __all__ = ['AppCheckDeviceCheckConfigArgs', 'AppCheckDeviceCheckConfig']
13
+
14
+ @pulumi.input_type
15
+ class AppCheckDeviceCheckConfigArgs:
16
+ def __init__(__self__, *,
17
+ app_id: pulumi.Input[str],
18
+ key_id: pulumi.Input[str],
19
+ private_key: pulumi.Input[str],
20
+ project: Optional[pulumi.Input[str]] = None,
21
+ token_ttl: Optional[pulumi.Input[str]] = None):
22
+ """
23
+ The set of arguments for constructing a AppCheckDeviceCheckConfig resource.
24
+ :param pulumi.Input[str] app_id: The ID of an
25
+ [Apple App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.iosApps#IosApp.FIELDS.app_id).
26
+
27
+
28
+ - - -
29
+ :param pulumi.Input[str] key_id: The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account.
30
+ :param pulumi.Input[str] private_key: The contents of the private key (.p8) file associated with the key specified by keyId.
31
+ **Note**: This property is sensitive and will not be displayed in the plan.
32
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
33
+ If it is not provided, the provider project is used.
34
+ :param pulumi.Input[str] token_ttl: Specifies the duration for which App Check tokens exchanged from DeviceCheck artifacts will be valid.
35
+ If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.
36
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
37
+ """
38
+ pulumi.set(__self__, "app_id", app_id)
39
+ pulumi.set(__self__, "key_id", key_id)
40
+ pulumi.set(__self__, "private_key", private_key)
41
+ if project is not None:
42
+ pulumi.set(__self__, "project", project)
43
+ if token_ttl is not None:
44
+ pulumi.set(__self__, "token_ttl", token_ttl)
45
+
46
+ @property
47
+ @pulumi.getter(name="appId")
48
+ def app_id(self) -> pulumi.Input[str]:
49
+ """
50
+ The ID of an
51
+ [Apple App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.iosApps#IosApp.FIELDS.app_id).
52
+
53
+
54
+ - - -
55
+ """
56
+ return pulumi.get(self, "app_id")
57
+
58
+ @app_id.setter
59
+ def app_id(self, value: pulumi.Input[str]):
60
+ pulumi.set(self, "app_id", value)
61
+
62
+ @property
63
+ @pulumi.getter(name="keyId")
64
+ def key_id(self) -> pulumi.Input[str]:
65
+ """
66
+ The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account.
67
+ """
68
+ return pulumi.get(self, "key_id")
69
+
70
+ @key_id.setter
71
+ def key_id(self, value: pulumi.Input[str]):
72
+ pulumi.set(self, "key_id", value)
73
+
74
+ @property
75
+ @pulumi.getter(name="privateKey")
76
+ def private_key(self) -> pulumi.Input[str]:
77
+ """
78
+ The contents of the private key (.p8) file associated with the key specified by keyId.
79
+ **Note**: This property is sensitive and will not be displayed in the plan.
80
+ """
81
+ return pulumi.get(self, "private_key")
82
+
83
+ @private_key.setter
84
+ def private_key(self, value: pulumi.Input[str]):
85
+ pulumi.set(self, "private_key", value)
86
+
87
+ @property
88
+ @pulumi.getter
89
+ def project(self) -> Optional[pulumi.Input[str]]:
90
+ """
91
+ The ID of the project in which the resource belongs.
92
+ If it is not provided, the provider project is used.
93
+ """
94
+ return pulumi.get(self, "project")
95
+
96
+ @project.setter
97
+ def project(self, value: Optional[pulumi.Input[str]]):
98
+ pulumi.set(self, "project", value)
99
+
100
+ @property
101
+ @pulumi.getter(name="tokenTtl")
102
+ def token_ttl(self) -> Optional[pulumi.Input[str]]:
103
+ """
104
+ Specifies the duration for which App Check tokens exchanged from DeviceCheck artifacts will be valid.
105
+ If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.
106
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
107
+ """
108
+ return pulumi.get(self, "token_ttl")
109
+
110
+ @token_ttl.setter
111
+ def token_ttl(self, value: Optional[pulumi.Input[str]]):
112
+ pulumi.set(self, "token_ttl", value)
113
+
114
+
115
+ @pulumi.input_type
116
+ class _AppCheckDeviceCheckConfigState:
117
+ def __init__(__self__, *,
118
+ app_id: Optional[pulumi.Input[str]] = None,
119
+ key_id: Optional[pulumi.Input[str]] = None,
120
+ name: Optional[pulumi.Input[str]] = None,
121
+ private_key: Optional[pulumi.Input[str]] = None,
122
+ private_key_set: Optional[pulumi.Input[bool]] = None,
123
+ project: Optional[pulumi.Input[str]] = None,
124
+ token_ttl: Optional[pulumi.Input[str]] = None):
125
+ """
126
+ Input properties used for looking up and filtering AppCheckDeviceCheckConfig resources.
127
+ :param pulumi.Input[str] app_id: The ID of an
128
+ [Apple App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.iosApps#IosApp.FIELDS.app_id).
129
+
130
+
131
+ - - -
132
+ :param pulumi.Input[str] key_id: The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account.
133
+ :param pulumi.Input[str] name: The relative resource name of the DeviceCheck configuration object
134
+ :param pulumi.Input[str] private_key: The contents of the private key (.p8) file associated with the key specified by keyId.
135
+ **Note**: This property is sensitive and will not be displayed in the plan.
136
+ :param pulumi.Input[bool] private_key_set: Whether the privateKey field was previously set. Since App Check will never return the
137
+ privateKey field, this field is the only way to find out whether it was previously set.
138
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
139
+ If it is not provided, the provider project is used.
140
+ :param pulumi.Input[str] token_ttl: Specifies the duration for which App Check tokens exchanged from DeviceCheck artifacts will be valid.
141
+ If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.
142
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
143
+ """
144
+ if app_id is not None:
145
+ pulumi.set(__self__, "app_id", app_id)
146
+ if key_id is not None:
147
+ pulumi.set(__self__, "key_id", key_id)
148
+ if name is not None:
149
+ pulumi.set(__self__, "name", name)
150
+ if private_key is not None:
151
+ pulumi.set(__self__, "private_key", private_key)
152
+ if private_key_set is not None:
153
+ pulumi.set(__self__, "private_key_set", private_key_set)
154
+ if project is not None:
155
+ pulumi.set(__self__, "project", project)
156
+ if token_ttl is not None:
157
+ pulumi.set(__self__, "token_ttl", token_ttl)
158
+
159
+ @property
160
+ @pulumi.getter(name="appId")
161
+ def app_id(self) -> Optional[pulumi.Input[str]]:
162
+ """
163
+ The ID of an
164
+ [Apple App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.iosApps#IosApp.FIELDS.app_id).
165
+
166
+
167
+ - - -
168
+ """
169
+ return pulumi.get(self, "app_id")
170
+
171
+ @app_id.setter
172
+ def app_id(self, value: Optional[pulumi.Input[str]]):
173
+ pulumi.set(self, "app_id", value)
174
+
175
+ @property
176
+ @pulumi.getter(name="keyId")
177
+ def key_id(self) -> Optional[pulumi.Input[str]]:
178
+ """
179
+ The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account.
180
+ """
181
+ return pulumi.get(self, "key_id")
182
+
183
+ @key_id.setter
184
+ def key_id(self, value: Optional[pulumi.Input[str]]):
185
+ pulumi.set(self, "key_id", value)
186
+
187
+ @property
188
+ @pulumi.getter
189
+ def name(self) -> Optional[pulumi.Input[str]]:
190
+ """
191
+ The relative resource name of the DeviceCheck configuration object
192
+ """
193
+ return pulumi.get(self, "name")
194
+
195
+ @name.setter
196
+ def name(self, value: Optional[pulumi.Input[str]]):
197
+ pulumi.set(self, "name", value)
198
+
199
+ @property
200
+ @pulumi.getter(name="privateKey")
201
+ def private_key(self) -> Optional[pulumi.Input[str]]:
202
+ """
203
+ The contents of the private key (.p8) file associated with the key specified by keyId.
204
+ **Note**: This property is sensitive and will not be displayed in the plan.
205
+ """
206
+ return pulumi.get(self, "private_key")
207
+
208
+ @private_key.setter
209
+ def private_key(self, value: Optional[pulumi.Input[str]]):
210
+ pulumi.set(self, "private_key", value)
211
+
212
+ @property
213
+ @pulumi.getter(name="privateKeySet")
214
+ def private_key_set(self) -> Optional[pulumi.Input[bool]]:
215
+ """
216
+ Whether the privateKey field was previously set. Since App Check will never return the
217
+ privateKey field, this field is the only way to find out whether it was previously set.
218
+ """
219
+ return pulumi.get(self, "private_key_set")
220
+
221
+ @private_key_set.setter
222
+ def private_key_set(self, value: Optional[pulumi.Input[bool]]):
223
+ pulumi.set(self, "private_key_set", value)
224
+
225
+ @property
226
+ @pulumi.getter
227
+ def project(self) -> Optional[pulumi.Input[str]]:
228
+ """
229
+ The ID of the project in which the resource belongs.
230
+ If it is not provided, the provider project is used.
231
+ """
232
+ return pulumi.get(self, "project")
233
+
234
+ @project.setter
235
+ def project(self, value: Optional[pulumi.Input[str]]):
236
+ pulumi.set(self, "project", value)
237
+
238
+ @property
239
+ @pulumi.getter(name="tokenTtl")
240
+ def token_ttl(self) -> Optional[pulumi.Input[str]]:
241
+ """
242
+ Specifies the duration for which App Check tokens exchanged from DeviceCheck artifacts will be valid.
243
+ If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.
244
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
245
+ """
246
+ return pulumi.get(self, "token_ttl")
247
+
248
+ @token_ttl.setter
249
+ def token_ttl(self, value: Optional[pulumi.Input[str]]):
250
+ pulumi.set(self, "token_ttl", value)
251
+
252
+
253
+ class AppCheckDeviceCheckConfig(pulumi.CustomResource):
254
+ @overload
255
+ def __init__(__self__,
256
+ resource_name: str,
257
+ opts: Optional[pulumi.ResourceOptions] = None,
258
+ app_id: Optional[pulumi.Input[str]] = None,
259
+ key_id: Optional[pulumi.Input[str]] = None,
260
+ private_key: Optional[pulumi.Input[str]] = None,
261
+ project: Optional[pulumi.Input[str]] = None,
262
+ token_ttl: Optional[pulumi.Input[str]] = None,
263
+ __props__=None):
264
+ """
265
+ An app's DeviceCheck configuration object. Note that the Team ID registered with your
266
+ app is used as part of the validation process. Make sure your `firebase.AppleApp` has a team_id present.
267
+
268
+ To get more information about DeviceCheckConfig, see:
269
+
270
+ * [API documentation](https://firebase.google.com/docs/reference/appcheck/rest/v1/projects.apps.deviceCheckConfig)
271
+ * How-to Guides
272
+ * [Official Documentation](https://firebase.google.com/docs/app-check)
273
+
274
+ ## Example Usage
275
+
276
+ ### Firebase App Check Device Check Config Full
277
+
278
+ <!--Start PulumiCodeChooser -->
279
+ ```python
280
+ import pulumi
281
+ import pulumi_gcp as gcp
282
+ import pulumi_std as std
283
+ import pulumi_time as time
284
+
285
+ default = gcp.firebase.AppleApp("default",
286
+ project="my-project-name",
287
+ display_name="Apple app",
288
+ bundle_id="bundle.id.devicecheck",
289
+ team_id="9987654321")
290
+ # It takes a while for App Check to recognize the new app
291
+ # If your app already exists, you don't have to wait 30 seconds.
292
+ wait30s = time.index.Sleep("wait_30s", create_duration=30s)
293
+ default_app_check_device_check_config = gcp.firebase.AppCheckDeviceCheckConfig("default",
294
+ project="my-project-name",
295
+ app_id=default.app_id,
296
+ token_ttl="7200s",
297
+ key_id="Key ID",
298
+ private_key=std.file(input="path/to/private-key.p8").result)
299
+ ```
300
+ <!--End PulumiCodeChooser -->
301
+
302
+ ## Import
303
+
304
+ DeviceCheckConfig can be imported using any of these accepted formats:
305
+
306
+ * `projects/{{project}}/apps/{{app_id}}/deviceCheckConfig`
307
+
308
+ * `{{project}}/{{app_id}}`
309
+
310
+ * `{{app_id}}`
311
+
312
+ When using the `pulumi import` command, DeviceCheckConfig can be imported using one of the formats above. For example:
313
+
314
+ ```sh
315
+ $ pulumi import gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig default projects/{{project}}/apps/{{app_id}}/deviceCheckConfig
316
+ ```
317
+
318
+ ```sh
319
+ $ pulumi import gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig default {{project}}/{{app_id}}
320
+ ```
321
+
322
+ ```sh
323
+ $ pulumi import gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig default {{app_id}}
324
+ ```
325
+
326
+ :param str resource_name: The name of the resource.
327
+ :param pulumi.ResourceOptions opts: Options for the resource.
328
+ :param pulumi.Input[str] app_id: The ID of an
329
+ [Apple App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.iosApps#IosApp.FIELDS.app_id).
330
+
331
+
332
+ - - -
333
+ :param pulumi.Input[str] key_id: The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account.
334
+ :param pulumi.Input[str] private_key: The contents of the private key (.p8) file associated with the key specified by keyId.
335
+ **Note**: This property is sensitive and will not be displayed in the plan.
336
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
337
+ If it is not provided, the provider project is used.
338
+ :param pulumi.Input[str] token_ttl: Specifies the duration for which App Check tokens exchanged from DeviceCheck artifacts will be valid.
339
+ If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.
340
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
341
+ """
342
+ ...
343
+ @overload
344
+ def __init__(__self__,
345
+ resource_name: str,
346
+ args: AppCheckDeviceCheckConfigArgs,
347
+ opts: Optional[pulumi.ResourceOptions] = None):
348
+ """
349
+ An app's DeviceCheck configuration object. Note that the Team ID registered with your
350
+ app is used as part of the validation process. Make sure your `firebase.AppleApp` has a team_id present.
351
+
352
+ To get more information about DeviceCheckConfig, see:
353
+
354
+ * [API documentation](https://firebase.google.com/docs/reference/appcheck/rest/v1/projects.apps.deviceCheckConfig)
355
+ * How-to Guides
356
+ * [Official Documentation](https://firebase.google.com/docs/app-check)
357
+
358
+ ## Example Usage
359
+
360
+ ### Firebase App Check Device Check Config Full
361
+
362
+ <!--Start PulumiCodeChooser -->
363
+ ```python
364
+ import pulumi
365
+ import pulumi_gcp as gcp
366
+ import pulumi_std as std
367
+ import pulumi_time as time
368
+
369
+ default = gcp.firebase.AppleApp("default",
370
+ project="my-project-name",
371
+ display_name="Apple app",
372
+ bundle_id="bundle.id.devicecheck",
373
+ team_id="9987654321")
374
+ # It takes a while for App Check to recognize the new app
375
+ # If your app already exists, you don't have to wait 30 seconds.
376
+ wait30s = time.index.Sleep("wait_30s", create_duration=30s)
377
+ default_app_check_device_check_config = gcp.firebase.AppCheckDeviceCheckConfig("default",
378
+ project="my-project-name",
379
+ app_id=default.app_id,
380
+ token_ttl="7200s",
381
+ key_id="Key ID",
382
+ private_key=std.file(input="path/to/private-key.p8").result)
383
+ ```
384
+ <!--End PulumiCodeChooser -->
385
+
386
+ ## Import
387
+
388
+ DeviceCheckConfig can be imported using any of these accepted formats:
389
+
390
+ * `projects/{{project}}/apps/{{app_id}}/deviceCheckConfig`
391
+
392
+ * `{{project}}/{{app_id}}`
393
+
394
+ * `{{app_id}}`
395
+
396
+ When using the `pulumi import` command, DeviceCheckConfig can be imported using one of the formats above. For example:
397
+
398
+ ```sh
399
+ $ pulumi import gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig default projects/{{project}}/apps/{{app_id}}/deviceCheckConfig
400
+ ```
401
+
402
+ ```sh
403
+ $ pulumi import gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig default {{project}}/{{app_id}}
404
+ ```
405
+
406
+ ```sh
407
+ $ pulumi import gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig default {{app_id}}
408
+ ```
409
+
410
+ :param str resource_name: The name of the resource.
411
+ :param AppCheckDeviceCheckConfigArgs args: The arguments to use to populate this resource's properties.
412
+ :param pulumi.ResourceOptions opts: Options for the resource.
413
+ """
414
+ ...
415
+ def __init__(__self__, resource_name: str, *args, **kwargs):
416
+ resource_args, opts = _utilities.get_resource_args_opts(AppCheckDeviceCheckConfigArgs, pulumi.ResourceOptions, *args, **kwargs)
417
+ if resource_args is not None:
418
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
419
+ else:
420
+ __self__._internal_init(resource_name, *args, **kwargs)
421
+
422
+ def _internal_init(__self__,
423
+ resource_name: str,
424
+ opts: Optional[pulumi.ResourceOptions] = None,
425
+ app_id: Optional[pulumi.Input[str]] = None,
426
+ key_id: Optional[pulumi.Input[str]] = None,
427
+ private_key: Optional[pulumi.Input[str]] = None,
428
+ project: Optional[pulumi.Input[str]] = None,
429
+ token_ttl: Optional[pulumi.Input[str]] = None,
430
+ __props__=None):
431
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
432
+ if not isinstance(opts, pulumi.ResourceOptions):
433
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
434
+ if opts.id is None:
435
+ if __props__ is not None:
436
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
437
+ __props__ = AppCheckDeviceCheckConfigArgs.__new__(AppCheckDeviceCheckConfigArgs)
438
+
439
+ if app_id is None and not opts.urn:
440
+ raise TypeError("Missing required property 'app_id'")
441
+ __props__.__dict__["app_id"] = app_id
442
+ if key_id is None and not opts.urn:
443
+ raise TypeError("Missing required property 'key_id'")
444
+ __props__.__dict__["key_id"] = key_id
445
+ if private_key is None and not opts.urn:
446
+ raise TypeError("Missing required property 'private_key'")
447
+ __props__.__dict__["private_key"] = None if private_key is None else pulumi.Output.secret(private_key)
448
+ __props__.__dict__["project"] = project
449
+ __props__.__dict__["token_ttl"] = token_ttl
450
+ __props__.__dict__["name"] = None
451
+ __props__.__dict__["private_key_set"] = None
452
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["privateKey"])
453
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
454
+ super(AppCheckDeviceCheckConfig, __self__).__init__(
455
+ 'gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig',
456
+ resource_name,
457
+ __props__,
458
+ opts)
459
+
460
+ @staticmethod
461
+ def get(resource_name: str,
462
+ id: pulumi.Input[str],
463
+ opts: Optional[pulumi.ResourceOptions] = None,
464
+ app_id: Optional[pulumi.Input[str]] = None,
465
+ key_id: Optional[pulumi.Input[str]] = None,
466
+ name: Optional[pulumi.Input[str]] = None,
467
+ private_key: Optional[pulumi.Input[str]] = None,
468
+ private_key_set: Optional[pulumi.Input[bool]] = None,
469
+ project: Optional[pulumi.Input[str]] = None,
470
+ token_ttl: Optional[pulumi.Input[str]] = None) -> 'AppCheckDeviceCheckConfig':
471
+ """
472
+ Get an existing AppCheckDeviceCheckConfig resource's state with the given name, id, and optional extra
473
+ properties used to qualify the lookup.
474
+
475
+ :param str resource_name: The unique name of the resulting resource.
476
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
477
+ :param pulumi.ResourceOptions opts: Options for the resource.
478
+ :param pulumi.Input[str] app_id: The ID of an
479
+ [Apple App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.iosApps#IosApp.FIELDS.app_id).
480
+
481
+
482
+ - - -
483
+ :param pulumi.Input[str] key_id: The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account.
484
+ :param pulumi.Input[str] name: The relative resource name of the DeviceCheck configuration object
485
+ :param pulumi.Input[str] private_key: The contents of the private key (.p8) file associated with the key specified by keyId.
486
+ **Note**: This property is sensitive and will not be displayed in the plan.
487
+ :param pulumi.Input[bool] private_key_set: Whether the privateKey field was previously set. Since App Check will never return the
488
+ privateKey field, this field is the only way to find out whether it was previously set.
489
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
490
+ If it is not provided, the provider project is used.
491
+ :param pulumi.Input[str] token_ttl: Specifies the duration for which App Check tokens exchanged from DeviceCheck artifacts will be valid.
492
+ If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.
493
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
494
+ """
495
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
496
+
497
+ __props__ = _AppCheckDeviceCheckConfigState.__new__(_AppCheckDeviceCheckConfigState)
498
+
499
+ __props__.__dict__["app_id"] = app_id
500
+ __props__.__dict__["key_id"] = key_id
501
+ __props__.__dict__["name"] = name
502
+ __props__.__dict__["private_key"] = private_key
503
+ __props__.__dict__["private_key_set"] = private_key_set
504
+ __props__.__dict__["project"] = project
505
+ __props__.__dict__["token_ttl"] = token_ttl
506
+ return AppCheckDeviceCheckConfig(resource_name, opts=opts, __props__=__props__)
507
+
508
+ @property
509
+ @pulumi.getter(name="appId")
510
+ def app_id(self) -> pulumi.Output[str]:
511
+ """
512
+ The ID of an
513
+ [Apple App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.iosApps#IosApp.FIELDS.app_id).
514
+
515
+
516
+ - - -
517
+ """
518
+ return pulumi.get(self, "app_id")
519
+
520
+ @property
521
+ @pulumi.getter(name="keyId")
522
+ def key_id(self) -> pulumi.Output[str]:
523
+ """
524
+ The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account.
525
+ """
526
+ return pulumi.get(self, "key_id")
527
+
528
+ @property
529
+ @pulumi.getter
530
+ def name(self) -> pulumi.Output[str]:
531
+ """
532
+ The relative resource name of the DeviceCheck configuration object
533
+ """
534
+ return pulumi.get(self, "name")
535
+
536
+ @property
537
+ @pulumi.getter(name="privateKey")
538
+ def private_key(self) -> pulumi.Output[str]:
539
+ """
540
+ The contents of the private key (.p8) file associated with the key specified by keyId.
541
+ **Note**: This property is sensitive and will not be displayed in the plan.
542
+ """
543
+ return pulumi.get(self, "private_key")
544
+
545
+ @property
546
+ @pulumi.getter(name="privateKeySet")
547
+ def private_key_set(self) -> pulumi.Output[bool]:
548
+ """
549
+ Whether the privateKey field was previously set. Since App Check will never return the
550
+ privateKey field, this field is the only way to find out whether it was previously set.
551
+ """
552
+ return pulumi.get(self, "private_key_set")
553
+
554
+ @property
555
+ @pulumi.getter
556
+ def project(self) -> pulumi.Output[str]:
557
+ """
558
+ The ID of the project in which the resource belongs.
559
+ If it is not provided, the provider project is used.
560
+ """
561
+ return pulumi.get(self, "project")
562
+
563
+ @property
564
+ @pulumi.getter(name="tokenTtl")
565
+ def token_ttl(self) -> pulumi.Output[str]:
566
+ """
567
+ Specifies the duration for which App Check tokens exchanged from DeviceCheck artifacts will be valid.
568
+ If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.
569
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
570
+ """
571
+ return pulumi.get(self, "token_ttl")
572
+
@@ -12,6 +12,7 @@ from .. import _utilities
12
12
  __all__ = [
13
13
  'BackupScheduleDailyRecurrenceArgs',
14
14
  'BackupScheduleWeeklyRecurrenceArgs',
15
+ 'DatabaseCmekConfigArgs',
15
16
  'FieldIndexConfigArgs',
16
17
  'FieldIndexConfigIndexArgs',
17
18
  'FieldTtlConfigArgs',
@@ -49,6 +50,74 @@ class BackupScheduleWeeklyRecurrenceArgs:
49
50
  pulumi.set(self, "day", value)
50
51
 
51
52
 
53
+ @pulumi.input_type
54
+ class DatabaseCmekConfigArgs:
55
+ def __init__(__self__, *,
56
+ kms_key_name: pulumi.Input[str],
57
+ active_key_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
58
+ """
59
+ :param pulumi.Input[str] kms_key_name: The resource ID of a Cloud KMS key. If set, the database created will
60
+ be a Customer-managed Encryption Key (CMEK) database encrypted with
61
+ this key. This feature is allowlist only in initial launch.
62
+ Only keys in the same location as this database are allowed to be used
63
+ for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS
64
+ multi-region us. For Firestore's eur3 multi-region, this corresponds to
65
+ Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations.
66
+ This value should be the KMS key resource ID in the format of
67
+ `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
68
+ How to retrive this resource ID is listed at
69
+ https://cloud.google.com/kms/docs/getting-resource-ids#getting_the_id_for_a_key_and_version.
70
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] active_key_versions: (Output)
71
+ Currently in-use KMS key versions (https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
72
+ During key rotation (https://cloud.google.com/kms/docs/key-rotation), there can be
73
+ multiple in-use key versions.
74
+ The expected format is
75
+ `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
76
+ """
77
+ pulumi.set(__self__, "kms_key_name", kms_key_name)
78
+ if active_key_versions is not None:
79
+ pulumi.set(__self__, "active_key_versions", active_key_versions)
80
+
81
+ @property
82
+ @pulumi.getter(name="kmsKeyName")
83
+ def kms_key_name(self) -> pulumi.Input[str]:
84
+ """
85
+ The resource ID of a Cloud KMS key. If set, the database created will
86
+ be a Customer-managed Encryption Key (CMEK) database encrypted with
87
+ this key. This feature is allowlist only in initial launch.
88
+ Only keys in the same location as this database are allowed to be used
89
+ for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS
90
+ multi-region us. For Firestore's eur3 multi-region, this corresponds to
91
+ Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations.
92
+ This value should be the KMS key resource ID in the format of
93
+ `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
94
+ How to retrive this resource ID is listed at
95
+ https://cloud.google.com/kms/docs/getting-resource-ids#getting_the_id_for_a_key_and_version.
96
+ """
97
+ return pulumi.get(self, "kms_key_name")
98
+
99
+ @kms_key_name.setter
100
+ def kms_key_name(self, value: pulumi.Input[str]):
101
+ pulumi.set(self, "kms_key_name", value)
102
+
103
+ @property
104
+ @pulumi.getter(name="activeKeyVersions")
105
+ def active_key_versions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
106
+ """
107
+ (Output)
108
+ Currently in-use KMS key versions (https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
109
+ During key rotation (https://cloud.google.com/kms/docs/key-rotation), there can be
110
+ multiple in-use key versions.
111
+ The expected format is
112
+ `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
113
+ """
114
+ return pulumi.get(self, "active_key_versions")
115
+
116
+ @active_key_versions.setter
117
+ def active_key_versions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
118
+ pulumi.set(self, "active_key_versions", value)
119
+
120
+
52
121
  @pulumi.input_type
53
122
  class FieldIndexConfigArgs:
54
123
  def __init__(__self__, *,