pulumi-gcp 8.12.0a1734477662__py3-none-any.whl → 8.12.1__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 (48) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +0 -29
  3. pulumi_gcp/accesscontextmanager/outputs.py +0 -18
  4. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -36
  5. pulumi_gcp/artifactregistry/get_repository_iam_policy.py +12 -4
  6. pulumi_gcp/artifactregistry/repository.py +86 -39
  7. pulumi_gcp/artifactregistry/repository_iam_binding.py +42 -14
  8. pulumi_gcp/artifactregistry/repository_iam_member.py +42 -14
  9. pulumi_gcp/artifactregistry/repository_iam_policy.py +42 -14
  10. pulumi_gcp/compute/get_global_forwarding_rule.py +12 -1
  11. pulumi_gcp/compute/global_forwarding_rule.py +114 -2
  12. pulumi_gcp/compute/project_cloud_armor_tier.py +7 -7
  13. pulumi_gcp/firebase/_inputs.py +99 -0
  14. pulumi_gcp/firebase/database_instance.py +24 -6
  15. pulumi_gcp/firebase/hosting_version.py +96 -0
  16. pulumi_gcp/firebase/outputs.py +59 -0
  17. pulumi_gcp/firebase/project.py +6 -6
  18. pulumi_gcp/identityplatform/_inputs.py +6 -6
  19. pulumi_gcp/identityplatform/config.py +2 -2
  20. pulumi_gcp/identityplatform/outputs.py +4 -4
  21. pulumi_gcp/looker/instance.py +35 -14
  22. pulumi_gcp/networkconnectivity/_inputs.py +10 -12
  23. pulumi_gcp/networkconnectivity/outputs.py +6 -8
  24. pulumi_gcp/networksecurity/__init__.py +3 -0
  25. pulumi_gcp/networksecurity/_inputs.py +1903 -0
  26. pulumi_gcp/networksecurity/authz_policy.py +1008 -0
  27. pulumi_gcp/networksecurity/intercept_deployment.py +846 -0
  28. pulumi_gcp/networksecurity/intercept_deployment_group.py +752 -0
  29. pulumi_gcp/networksecurity/outputs.py +1393 -0
  30. pulumi_gcp/networkservices/__init__.py +1 -0
  31. pulumi_gcp/networkservices/authz_extension.py +1080 -0
  32. pulumi_gcp/oracledatabase/autonomous_database.py +4 -4
  33. pulumi_gcp/orgpolicy/_inputs.py +40 -0
  34. pulumi_gcp/orgpolicy/outputs.py +24 -0
  35. pulumi_gcp/orgpolicy/policy.py +64 -8
  36. pulumi_gcp/pulumi-plugin.json +1 -1
  37. pulumi_gcp/sql/_inputs.py +3 -3
  38. pulumi_gcp/sql/database_instance.py +14 -14
  39. pulumi_gcp/sql/outputs.py +2 -2
  40. pulumi_gcp/storage/_inputs.py +53 -6
  41. pulumi_gcp/storage/outputs.py +33 -4
  42. pulumi_gcp/tpu/_inputs.py +26 -18
  43. pulumi_gcp/tpu/outputs.py +18 -12
  44. pulumi_gcp/tpu/v2_vm.py +63 -0
  45. {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/METADATA +1 -1
  46. {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/RECORD +48 -44
  47. {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/WHEEL +0 -0
  48. {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/top_level.txt +0 -0
@@ -24,7 +24,7 @@ class ProjectCloudArmorTierArgs:
24
24
  """
25
25
  The set of arguments for constructing a ProjectCloudArmorTier resource.
26
26
  :param pulumi.Input[str] cloud_armor_tier: Managed protection tier to be set.
27
- Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`.
27
+ Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`, `CA_ENTERPRISE_ANNUAL`.
28
28
 
29
29
 
30
30
  - - -
@@ -40,7 +40,7 @@ class ProjectCloudArmorTierArgs:
40
40
  def cloud_armor_tier(self) -> pulumi.Input[str]:
41
41
  """
42
42
  Managed protection tier to be set.
43
- Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`.
43
+ Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`, `CA_ENTERPRISE_ANNUAL`.
44
44
 
45
45
 
46
46
  - - -
@@ -73,7 +73,7 @@ class _ProjectCloudArmorTierState:
73
73
  """
74
74
  Input properties used for looking up and filtering ProjectCloudArmorTier resources.
75
75
  :param pulumi.Input[str] cloud_armor_tier: Managed protection tier to be set.
76
- Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`.
76
+ Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`, `CA_ENTERPRISE_ANNUAL`.
77
77
 
78
78
 
79
79
  - - -
@@ -90,7 +90,7 @@ class _ProjectCloudArmorTierState:
90
90
  def cloud_armor_tier(self) -> Optional[pulumi.Input[str]]:
91
91
  """
92
92
  Managed protection tier to be set.
93
- Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`.
93
+ Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`, `CA_ENTERPRISE_ANNUAL`.
94
94
 
95
95
 
96
96
  - - -
@@ -184,7 +184,7 @@ class ProjectCloudArmorTier(pulumi.CustomResource):
184
184
  :param str resource_name: The name of the resource.
185
185
  :param pulumi.ResourceOptions opts: Options for the resource.
186
186
  :param pulumi.Input[str] cloud_armor_tier: Managed protection tier to be set.
187
- Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`.
187
+ Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`, `CA_ENTERPRISE_ANNUAL`.
188
188
 
189
189
 
190
190
  - - -
@@ -305,7 +305,7 @@ class ProjectCloudArmorTier(pulumi.CustomResource):
305
305
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
306
306
  :param pulumi.ResourceOptions opts: Options for the resource.
307
307
  :param pulumi.Input[str] cloud_armor_tier: Managed protection tier to be set.
308
- Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`.
308
+ Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`, `CA_ENTERPRISE_ANNUAL`.
309
309
 
310
310
 
311
311
  - - -
@@ -325,7 +325,7 @@ class ProjectCloudArmorTier(pulumi.CustomResource):
325
325
  def cloud_armor_tier(self) -> pulumi.Output[str]:
326
326
  """
327
327
  Managed protection tier to be set.
328
- Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`.
328
+ Possible values are: `CA_STANDARD`, `CA_ENTERPRISE_PAYGO`, `CA_ENTERPRISE_ANNUAL`.
329
329
 
330
330
 
331
331
  - - -
@@ -55,6 +55,8 @@ __all__ = [
55
55
  'HostingCustomDomainRequiredDnsUpdateDiscoveredRecordArgsDict',
56
56
  'HostingVersionConfigArgs',
57
57
  'HostingVersionConfigArgsDict',
58
+ 'HostingVersionConfigHeaderArgs',
59
+ 'HostingVersionConfigHeaderArgsDict',
58
60
  'HostingVersionConfigRedirectArgs',
59
61
  'HostingVersionConfigRedirectArgsDict',
60
62
  'HostingVersionConfigRewriteArgs',
@@ -1694,6 +1696,12 @@ class HostingCustomDomainRequiredDnsUpdateDiscoveredRecordArgs:
1694
1696
 
1695
1697
  if not MYPY:
1696
1698
  class HostingVersionConfigArgsDict(TypedDict):
1699
+ headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigHeaderArgsDict']]]]
1700
+ """
1701
+ An array of objects, where each object specifies a URL pattern that, if matched to the request URL path,
1702
+ triggers Hosting to apply the specified custom response headers.
1703
+ Structure is documented below.
1704
+ """
1697
1705
  redirects: NotRequired[pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigRedirectArgsDict']]]]
1698
1706
  """
1699
1707
  An array of objects (called redirect rules), where each rule specifies a URL pattern that, if matched to the request URL path,
@@ -1712,9 +1720,13 @@ elif False:
1712
1720
  @pulumi.input_type
1713
1721
  class HostingVersionConfigArgs:
1714
1722
  def __init__(__self__, *,
1723
+ headers: Optional[pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigHeaderArgs']]]] = None,
1715
1724
  redirects: Optional[pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigRedirectArgs']]]] = None,
1716
1725
  rewrites: Optional[pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigRewriteArgs']]]] = None):
1717
1726
  """
1727
+ :param pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigHeaderArgs']]] headers: An array of objects, where each object specifies a URL pattern that, if matched to the request URL path,
1728
+ triggers Hosting to apply the specified custom response headers.
1729
+ Structure is documented below.
1718
1730
  :param pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigRedirectArgs']]] redirects: An array of objects (called redirect rules), where each rule specifies a URL pattern that, if matched to the request URL path,
1719
1731
  triggers Hosting to respond with a redirect to the specified destination path.
1720
1732
  Structure is documented below.
@@ -1722,11 +1734,27 @@ class HostingVersionConfigArgs:
1722
1734
  request URL path, triggers Hosting to respond as if the service were given the specified destination URL.
1723
1735
  Structure is documented below.
1724
1736
  """
1737
+ if headers is not None:
1738
+ pulumi.set(__self__, "headers", headers)
1725
1739
  if redirects is not None:
1726
1740
  pulumi.set(__self__, "redirects", redirects)
1727
1741
  if rewrites is not None:
1728
1742
  pulumi.set(__self__, "rewrites", rewrites)
1729
1743
 
1744
+ @property
1745
+ @pulumi.getter
1746
+ def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigHeaderArgs']]]]:
1747
+ """
1748
+ An array of objects, where each object specifies a URL pattern that, if matched to the request URL path,
1749
+ triggers Hosting to apply the specified custom response headers.
1750
+ Structure is documented below.
1751
+ """
1752
+ return pulumi.get(self, "headers")
1753
+
1754
+ @headers.setter
1755
+ def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigHeaderArgs']]]]):
1756
+ pulumi.set(self, "headers", value)
1757
+
1730
1758
  @property
1731
1759
  @pulumi.getter
1732
1760
  def redirects(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['HostingVersionConfigRedirectArgs']]]]:
@@ -1756,6 +1784,77 @@ class HostingVersionConfigArgs:
1756
1784
  pulumi.set(self, "rewrites", value)
1757
1785
 
1758
1786
 
1787
+ if not MYPY:
1788
+ class HostingVersionConfigHeaderArgsDict(TypedDict):
1789
+ headers: pulumi.Input[Mapping[str, pulumi.Input[str]]]
1790
+ """
1791
+ The additional headers to add to the response. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1792
+ """
1793
+ glob: NotRequired[pulumi.Input[str]]
1794
+ """
1795
+ The user-supplied glob to match against the request URL path.
1796
+ """
1797
+ regex: NotRequired[pulumi.Input[str]]
1798
+ """
1799
+ The user-supplied RE2 regular expression to match against the request URL path.
1800
+ """
1801
+ elif False:
1802
+ HostingVersionConfigHeaderArgsDict: TypeAlias = Mapping[str, Any]
1803
+
1804
+ @pulumi.input_type
1805
+ class HostingVersionConfigHeaderArgs:
1806
+ def __init__(__self__, *,
1807
+ headers: pulumi.Input[Mapping[str, pulumi.Input[str]]],
1808
+ glob: Optional[pulumi.Input[str]] = None,
1809
+ regex: Optional[pulumi.Input[str]] = None):
1810
+ """
1811
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] headers: The additional headers to add to the response. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1812
+ :param pulumi.Input[str] glob: The user-supplied glob to match against the request URL path.
1813
+ :param pulumi.Input[str] regex: The user-supplied RE2 regular expression to match against the request URL path.
1814
+ """
1815
+ pulumi.set(__self__, "headers", headers)
1816
+ if glob is not None:
1817
+ pulumi.set(__self__, "glob", glob)
1818
+ if regex is not None:
1819
+ pulumi.set(__self__, "regex", regex)
1820
+
1821
+ @property
1822
+ @pulumi.getter
1823
+ def headers(self) -> pulumi.Input[Mapping[str, pulumi.Input[str]]]:
1824
+ """
1825
+ The additional headers to add to the response. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1826
+ """
1827
+ return pulumi.get(self, "headers")
1828
+
1829
+ @headers.setter
1830
+ def headers(self, value: pulumi.Input[Mapping[str, pulumi.Input[str]]]):
1831
+ pulumi.set(self, "headers", value)
1832
+
1833
+ @property
1834
+ @pulumi.getter
1835
+ def glob(self) -> Optional[pulumi.Input[str]]:
1836
+ """
1837
+ The user-supplied glob to match against the request URL path.
1838
+ """
1839
+ return pulumi.get(self, "glob")
1840
+
1841
+ @glob.setter
1842
+ def glob(self, value: Optional[pulumi.Input[str]]):
1843
+ pulumi.set(self, "glob", value)
1844
+
1845
+ @property
1846
+ @pulumi.getter
1847
+ def regex(self) -> Optional[pulumi.Input[str]]:
1848
+ """
1849
+ The user-supplied RE2 regular expression to match against the request URL path.
1850
+ """
1851
+ return pulumi.get(self, "regex")
1852
+
1853
+ @regex.setter
1854
+ def regex(self, value: Optional[pulumi.Input[str]]):
1855
+ pulumi.set(self, "regex", value)
1856
+
1857
+
1759
1858
  if not MYPY:
1760
1859
  class HostingVersionConfigRedirectArgsDict(TypedDict):
1761
1860
  location: pulumi.Input[str]
@@ -333,6 +333,7 @@ class DatabaseInstance(pulumi.CustomResource):
333
333
  ```python
334
334
  import pulumi
335
335
  import pulumi_gcp as gcp
336
+ import pulumi_time as time
336
337
 
337
338
  default = gcp.organizations.Project("default",
338
339
  project_id="rtdb-project",
@@ -342,16 +343,24 @@ class DatabaseInstance(pulumi.CustomResource):
342
343
  labels={
343
344
  "firebase": "enabled",
344
345
  })
345
- default_project = gcp.firebase.Project("default", project=default.project_id)
346
+ firebase = gcp.projects.Service("firebase",
347
+ project=default.project_id,
348
+ service="firebase.googleapis.com",
349
+ disable_on_destroy=False)
350
+ default_project = gcp.firebase.Project("default", project=default.project_id,
351
+ opts = pulumi.ResourceOptions(depends_on=[firebase]))
346
352
  firebase_database = gcp.projects.Service("firebase_database",
347
353
  project=default_project.project,
348
- service="firebasedatabase.googleapis.com")
354
+ service="firebasedatabase.googleapis.com",
355
+ disable_on_destroy=False)
356
+ wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s,
357
+ opts = pulumi.ResourceOptions(depends_on=[firebase_database]))
349
358
  default_database_instance = gcp.firebase.DatabaseInstance("default",
350
359
  project=default_project.project,
351
360
  region="us-central1",
352
361
  instance_id="rtdb-project-default-rtdb",
353
362
  type="DEFAULT_DATABASE",
354
- opts = pulumi.ResourceOptions(depends_on=[firebase_database]))
363
+ opts = pulumi.ResourceOptions(depends_on=[wait60_seconds]))
355
364
  ```
356
365
 
357
366
  ## Import
@@ -441,6 +450,7 @@ class DatabaseInstance(pulumi.CustomResource):
441
450
  ```python
442
451
  import pulumi
443
452
  import pulumi_gcp as gcp
453
+ import pulumi_time as time
444
454
 
445
455
  default = gcp.organizations.Project("default",
446
456
  project_id="rtdb-project",
@@ -450,16 +460,24 @@ class DatabaseInstance(pulumi.CustomResource):
450
460
  labels={
451
461
  "firebase": "enabled",
452
462
  })
453
- default_project = gcp.firebase.Project("default", project=default.project_id)
463
+ firebase = gcp.projects.Service("firebase",
464
+ project=default.project_id,
465
+ service="firebase.googleapis.com",
466
+ disable_on_destroy=False)
467
+ default_project = gcp.firebase.Project("default", project=default.project_id,
468
+ opts = pulumi.ResourceOptions(depends_on=[firebase]))
454
469
  firebase_database = gcp.projects.Service("firebase_database",
455
470
  project=default_project.project,
456
- service="firebasedatabase.googleapis.com")
471
+ service="firebasedatabase.googleapis.com",
472
+ disable_on_destroy=False)
473
+ wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s,
474
+ opts = pulumi.ResourceOptions(depends_on=[firebase_database]))
457
475
  default_database_instance = gcp.firebase.DatabaseInstance("default",
458
476
  project=default_project.project,
459
477
  region="us-central1",
460
478
  instance_id="rtdb-project-default-rtdb",
461
479
  type="DEFAULT_DATABASE",
462
- opts = pulumi.ResourceOptions(depends_on=[firebase_database]))
480
+ opts = pulumi.ResourceOptions(depends_on=[wait60_seconds]))
463
481
  ```
464
482
 
465
483
  ## Import
@@ -181,6 +181,54 @@ class HostingVersion(pulumi.CustomResource):
181
181
  version_name=default_hosting_version.name,
182
182
  message="Redirect to Google")
183
183
  ```
184
+ ### Firebasehosting Version Headers
185
+
186
+ ```python
187
+ import pulumi
188
+ import pulumi_gcp as gcp
189
+
190
+ default = gcp.firebase.HostingSite("default",
191
+ project="my-project-name",
192
+ site_id="site-id")
193
+ default_hosting_version = gcp.firebase.HostingVersion("default",
194
+ site_id=default.site_id,
195
+ config={
196
+ "headers": [{
197
+ "glob": "/headers/**",
198
+ "headers": {
199
+ "my-header": "my-value",
200
+ },
201
+ }],
202
+ })
203
+ default_hosting_release = gcp.firebase.HostingRelease("default",
204
+ site_id=default.site_id,
205
+ version_name=default_hosting_version.name,
206
+ message="With custom headers")
207
+ ```
208
+ ### Firebasehosting Version Headers Regex
209
+
210
+ ```python
211
+ import pulumi
212
+ import pulumi_gcp as gcp
213
+
214
+ default = gcp.firebase.HostingSite("default",
215
+ project="my-project-name",
216
+ site_id="site-id")
217
+ default_hosting_version = gcp.firebase.HostingVersion("default",
218
+ site_id=default.site_id,
219
+ config={
220
+ "headers": [{
221
+ "regex": "^~/headers$",
222
+ "headers": {
223
+ "my-header": "my-value",
224
+ },
225
+ }],
226
+ })
227
+ default_hosting_release = gcp.firebase.HostingRelease("default",
228
+ site_id=default.site_id,
229
+ version_name=default_hosting_version.name,
230
+ message="With custom headers")
231
+ ```
184
232
  ### Firebasehosting Version Path
185
233
 
186
234
  ```python
@@ -340,6 +388,54 @@ class HostingVersion(pulumi.CustomResource):
340
388
  version_name=default_hosting_version.name,
341
389
  message="Redirect to Google")
342
390
  ```
391
+ ### Firebasehosting Version Headers
392
+
393
+ ```python
394
+ import pulumi
395
+ import pulumi_gcp as gcp
396
+
397
+ default = gcp.firebase.HostingSite("default",
398
+ project="my-project-name",
399
+ site_id="site-id")
400
+ default_hosting_version = gcp.firebase.HostingVersion("default",
401
+ site_id=default.site_id,
402
+ config={
403
+ "headers": [{
404
+ "glob": "/headers/**",
405
+ "headers": {
406
+ "my-header": "my-value",
407
+ },
408
+ }],
409
+ })
410
+ default_hosting_release = gcp.firebase.HostingRelease("default",
411
+ site_id=default.site_id,
412
+ version_name=default_hosting_version.name,
413
+ message="With custom headers")
414
+ ```
415
+ ### Firebasehosting Version Headers Regex
416
+
417
+ ```python
418
+ import pulumi
419
+ import pulumi_gcp as gcp
420
+
421
+ default = gcp.firebase.HostingSite("default",
422
+ project="my-project-name",
423
+ site_id="site-id")
424
+ default_hosting_version = gcp.firebase.HostingVersion("default",
425
+ site_id=default.site_id,
426
+ config={
427
+ "headers": [{
428
+ "regex": "^~/headers$",
429
+ "headers": {
430
+ "my-header": "my-value",
431
+ },
432
+ }],
433
+ })
434
+ default_hosting_release = gcp.firebase.HostingRelease("default",
435
+ site_id=default.site_id,
436
+ version_name=default_hosting_version.name,
437
+ message="With custom headers")
438
+ ```
343
439
  ### Firebasehosting Version Path
344
440
 
345
441
  ```python
@@ -36,6 +36,7 @@ __all__ = [
36
36
  'HostingCustomDomainRequiredDnsUpdateDiscovered',
37
37
  'HostingCustomDomainRequiredDnsUpdateDiscoveredRecord',
38
38
  'HostingVersionConfig',
39
+ 'HostingVersionConfigHeader',
39
40
  'HostingVersionConfigRedirect',
40
41
  'HostingVersionConfigRewrite',
41
42
  'HostingVersionConfigRewriteRun',
@@ -1308,9 +1309,13 @@ class HostingCustomDomainRequiredDnsUpdateDiscoveredRecord(dict):
1308
1309
  @pulumi.output_type
1309
1310
  class HostingVersionConfig(dict):
1310
1311
  def __init__(__self__, *,
1312
+ headers: Optional[Sequence['outputs.HostingVersionConfigHeader']] = None,
1311
1313
  redirects: Optional[Sequence['outputs.HostingVersionConfigRedirect']] = None,
1312
1314
  rewrites: Optional[Sequence['outputs.HostingVersionConfigRewrite']] = None):
1313
1315
  """
1316
+ :param Sequence['HostingVersionConfigHeaderArgs'] headers: An array of objects, where each object specifies a URL pattern that, if matched to the request URL path,
1317
+ triggers Hosting to apply the specified custom response headers.
1318
+ Structure is documented below.
1314
1319
  :param Sequence['HostingVersionConfigRedirectArgs'] redirects: An array of objects (called redirect rules), where each rule specifies a URL pattern that, if matched to the request URL path,
1315
1320
  triggers Hosting to respond with a redirect to the specified destination path.
1316
1321
  Structure is documented below.
@@ -1318,11 +1323,23 @@ class HostingVersionConfig(dict):
1318
1323
  request URL path, triggers Hosting to respond as if the service were given the specified destination URL.
1319
1324
  Structure is documented below.
1320
1325
  """
1326
+ if headers is not None:
1327
+ pulumi.set(__self__, "headers", headers)
1321
1328
  if redirects is not None:
1322
1329
  pulumi.set(__self__, "redirects", redirects)
1323
1330
  if rewrites is not None:
1324
1331
  pulumi.set(__self__, "rewrites", rewrites)
1325
1332
 
1333
+ @property
1334
+ @pulumi.getter
1335
+ def headers(self) -> Optional[Sequence['outputs.HostingVersionConfigHeader']]:
1336
+ """
1337
+ An array of objects, where each object specifies a URL pattern that, if matched to the request URL path,
1338
+ triggers Hosting to apply the specified custom response headers.
1339
+ Structure is documented below.
1340
+ """
1341
+ return pulumi.get(self, "headers")
1342
+
1326
1343
  @property
1327
1344
  @pulumi.getter
1328
1345
  def redirects(self) -> Optional[Sequence['outputs.HostingVersionConfigRedirect']]:
@@ -1344,6 +1361,48 @@ class HostingVersionConfig(dict):
1344
1361
  return pulumi.get(self, "rewrites")
1345
1362
 
1346
1363
 
1364
+ @pulumi.output_type
1365
+ class HostingVersionConfigHeader(dict):
1366
+ def __init__(__self__, *,
1367
+ headers: Mapping[str, str],
1368
+ glob: Optional[str] = None,
1369
+ regex: Optional[str] = None):
1370
+ """
1371
+ :param Mapping[str, str] headers: The additional headers to add to the response. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1372
+ :param str glob: The user-supplied glob to match against the request URL path.
1373
+ :param str regex: The user-supplied RE2 regular expression to match against the request URL path.
1374
+ """
1375
+ pulumi.set(__self__, "headers", headers)
1376
+ if glob is not None:
1377
+ pulumi.set(__self__, "glob", glob)
1378
+ if regex is not None:
1379
+ pulumi.set(__self__, "regex", regex)
1380
+
1381
+ @property
1382
+ @pulumi.getter
1383
+ def headers(self) -> Mapping[str, str]:
1384
+ """
1385
+ The additional headers to add to the response. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
1386
+ """
1387
+ return pulumi.get(self, "headers")
1388
+
1389
+ @property
1390
+ @pulumi.getter
1391
+ def glob(self) -> Optional[str]:
1392
+ """
1393
+ The user-supplied glob to match against the request URL path.
1394
+ """
1395
+ return pulumi.get(self, "glob")
1396
+
1397
+ @property
1398
+ @pulumi.getter
1399
+ def regex(self) -> Optional[str]:
1400
+ """
1401
+ The user-supplied RE2 regular expression to match against the request URL path.
1402
+ """
1403
+ return pulumi.get(self, "regex")
1404
+
1405
+
1347
1406
  @pulumi.output_type
1348
1407
  class HostingVersionConfigRedirect(dict):
1349
1408
  @staticmethod
@@ -53,7 +53,7 @@ class _ProjectState:
53
53
  :param pulumi.Input[str] display_name: The GCP project display name
54
54
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
55
55
  If it is not provided, the provider project is used.
56
- :param pulumi.Input[str] project_number: The number of the google project that firebase is enabled on.
56
+ :param pulumi.Input[str] project_number: The number of the Google Project that Firebase is enabled on.
57
57
  """
58
58
  if display_name is not None:
59
59
  pulumi.set(__self__, "display_name", display_name)
@@ -91,7 +91,7 @@ class _ProjectState:
91
91
  @pulumi.getter(name="projectNumber")
92
92
  def project_number(self) -> Optional[pulumi.Input[str]]:
93
93
  """
94
- The number of the google project that firebase is enabled on.
94
+ The number of the Google Project that Firebase is enabled on.
95
95
  """
96
96
  return pulumi.get(self, "project_number")
97
97
 
@@ -108,7 +108,7 @@ class Project(pulumi.CustomResource):
108
108
  project: Optional[pulumi.Input[str]] = None,
109
109
  __props__=None):
110
110
  """
111
- A Google Cloud Firebase instance. This enables Firebase resources on a given google project.
111
+ A Google Cloud Firebase instance. This enables Firebase resources on a given Google Project.
112
112
  Since a FirebaseProject is actually also a GCP Project, a FirebaseProject uses underlying GCP
113
113
  identifiers (most importantly, the projectId) as its own for easy interop with GCP APIs.
114
114
  Once Firebase has been added to a Google Project it cannot be removed.
@@ -172,7 +172,7 @@ class Project(pulumi.CustomResource):
172
172
  args: Optional[ProjectArgs] = None,
173
173
  opts: Optional[pulumi.ResourceOptions] = None):
174
174
  """
175
- A Google Cloud Firebase instance. This enables Firebase resources on a given google project.
175
+ A Google Cloud Firebase instance. This enables Firebase resources on a given Google Project.
176
176
  Since a FirebaseProject is actually also a GCP Project, a FirebaseProject uses underlying GCP
177
177
  identifiers (most importantly, the projectId) as its own for easy interop with GCP APIs.
178
178
  Once Firebase has been added to a Google Project it cannot be removed.
@@ -275,7 +275,7 @@ class Project(pulumi.CustomResource):
275
275
  :param pulumi.Input[str] display_name: The GCP project display name
276
276
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
277
277
  If it is not provided, the provider project is used.
278
- :param pulumi.Input[str] project_number: The number of the google project that firebase is enabled on.
278
+ :param pulumi.Input[str] project_number: The number of the Google Project that Firebase is enabled on.
279
279
  """
280
280
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
281
281
 
@@ -307,7 +307,7 @@ class Project(pulumi.CustomResource):
307
307
  @pulumi.getter(name="projectNumber")
308
308
  def project_number(self) -> pulumi.Output[str]:
309
309
  """
310
- The number of the google project that firebase is enabled on.
310
+ The number of the Google Project that Firebase is enabled on.
311
311
  """
312
312
  return pulumi.get(self, "project_number")
313
313
 
@@ -718,7 +718,7 @@ if not MYPY:
718
718
  class ConfigQuotaArgsDict(TypedDict):
719
719
  sign_up_quota_config: NotRequired[pulumi.Input['ConfigQuotaSignUpQuotaConfigArgsDict']]
720
720
  """
721
- Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP.
721
+ Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP. None of quota, startTime, or quotaDuration can be skipped.
722
722
  Structure is documented below.
723
723
  """
724
724
  elif False:
@@ -729,7 +729,7 @@ class ConfigQuotaArgs:
729
729
  def __init__(__self__, *,
730
730
  sign_up_quota_config: Optional[pulumi.Input['ConfigQuotaSignUpQuotaConfigArgs']] = None):
731
731
  """
732
- :param pulumi.Input['ConfigQuotaSignUpQuotaConfigArgs'] sign_up_quota_config: Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP.
732
+ :param pulumi.Input['ConfigQuotaSignUpQuotaConfigArgs'] sign_up_quota_config: Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP. None of quota, startTime, or quotaDuration can be skipped.
733
733
  Structure is documented below.
734
734
  """
735
735
  if sign_up_quota_config is not None:
@@ -739,7 +739,7 @@ class ConfigQuotaArgs:
739
739
  @pulumi.getter(name="signUpQuotaConfig")
740
740
  def sign_up_quota_config(self) -> Optional[pulumi.Input['ConfigQuotaSignUpQuotaConfigArgs']]:
741
741
  """
742
- Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP.
742
+ Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP. None of quota, startTime, or quotaDuration can be skipped.
743
743
  Structure is documented below.
744
744
  """
745
745
  return pulumi.get(self, "sign_up_quota_config")
@@ -753,7 +753,7 @@ if not MYPY:
753
753
  class ConfigQuotaSignUpQuotaConfigArgsDict(TypedDict):
754
754
  quota: NotRequired[pulumi.Input[int]]
755
755
  """
756
- A sign up APIs quota that customers can override temporarily.
756
+ A sign up APIs quota that customers can override temporarily. Value can be in between 1 and 1000.
757
757
  """
758
758
  quota_duration: NotRequired[pulumi.Input[str]]
759
759
  """
@@ -773,7 +773,7 @@ class ConfigQuotaSignUpQuotaConfigArgs:
773
773
  quota_duration: Optional[pulumi.Input[str]] = None,
774
774
  start_time: Optional[pulumi.Input[str]] = None):
775
775
  """
776
- :param pulumi.Input[int] quota: A sign up APIs quota that customers can override temporarily.
776
+ :param pulumi.Input[int] quota: A sign up APIs quota that customers can override temporarily. Value can be in between 1 and 1000.
777
777
  :param pulumi.Input[str] quota_duration: How long this quota will be active for. It is measurred in seconds, e.g., Example: "9.615s".
778
778
  :param pulumi.Input[str] start_time: When this quota will take affect.
779
779
  """
@@ -788,7 +788,7 @@ class ConfigQuotaSignUpQuotaConfigArgs:
788
788
  @pulumi.getter
789
789
  def quota(self) -> Optional[pulumi.Input[int]]:
790
790
  """
791
- A sign up APIs quota that customers can override temporarily.
791
+ A sign up APIs quota that customers can override temporarily. Value can be in between 1 and 1000.
792
792
  """
793
793
  return pulumi.get(self, "quota")
794
794
 
@@ -531,7 +531,7 @@ class Config(pulumi.CustomResource):
531
531
  quota={
532
532
  "sign_up_quota_config": {
533
533
  "quota": 1000,
534
- "start_time": "",
534
+ "start_time": "2014-10-02T15:01:23Z",
535
535
  "quota_duration": "7200s",
536
536
  },
537
537
  },
@@ -671,7 +671,7 @@ class Config(pulumi.CustomResource):
671
671
  quota={
672
672
  "sign_up_quota_config": {
673
673
  "quota": 1000,
674
- "start_time": "",
674
+ "start_time": "2014-10-02T15:01:23Z",
675
675
  "quota_duration": "7200s",
676
676
  },
677
677
  },
@@ -637,7 +637,7 @@ class ConfigQuota(dict):
637
637
  def __init__(__self__, *,
638
638
  sign_up_quota_config: Optional['outputs.ConfigQuotaSignUpQuotaConfig'] = None):
639
639
  """
640
- :param 'ConfigQuotaSignUpQuotaConfigArgs' sign_up_quota_config: Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP.
640
+ :param 'ConfigQuotaSignUpQuotaConfigArgs' sign_up_quota_config: Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP. None of quota, startTime, or quotaDuration can be skipped.
641
641
  Structure is documented below.
642
642
  """
643
643
  if sign_up_quota_config is not None:
@@ -647,7 +647,7 @@ class ConfigQuota(dict):
647
647
  @pulumi.getter(name="signUpQuotaConfig")
648
648
  def sign_up_quota_config(self) -> Optional['outputs.ConfigQuotaSignUpQuotaConfig']:
649
649
  """
650
- Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP.
650
+ Quota for the Signup endpoint, if overwritten. Signup quota is measured in sign ups per project per hour per IP. None of quota, startTime, or quotaDuration can be skipped.
651
651
  Structure is documented below.
652
652
  """
653
653
  return pulumi.get(self, "sign_up_quota_config")
@@ -679,7 +679,7 @@ class ConfigQuotaSignUpQuotaConfig(dict):
679
679
  quota_duration: Optional[str] = None,
680
680
  start_time: Optional[str] = None):
681
681
  """
682
- :param int quota: A sign up APIs quota that customers can override temporarily.
682
+ :param int quota: A sign up APIs quota that customers can override temporarily. Value can be in between 1 and 1000.
683
683
  :param str quota_duration: How long this quota will be active for. It is measurred in seconds, e.g., Example: "9.615s".
684
684
  :param str start_time: When this quota will take affect.
685
685
  """
@@ -694,7 +694,7 @@ class ConfigQuotaSignUpQuotaConfig(dict):
694
694
  @pulumi.getter
695
695
  def quota(self) -> Optional[int]:
696
696
  """
697
- A sign up APIs quota that customers can override temporarily.
697
+ A sign up APIs quota that customers can override temporarily. Value can be in between 1 and 1000.
698
698
  """
699
699
  return pulumi.get(self, "quota")
700
700