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.
- pulumi_gcp/__init__.py +32 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +0 -29
- pulumi_gcp/accesscontextmanager/outputs.py +0 -18
- pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -36
- pulumi_gcp/artifactregistry/get_repository_iam_policy.py +12 -4
- pulumi_gcp/artifactregistry/repository.py +86 -39
- pulumi_gcp/artifactregistry/repository_iam_binding.py +42 -14
- pulumi_gcp/artifactregistry/repository_iam_member.py +42 -14
- pulumi_gcp/artifactregistry/repository_iam_policy.py +42 -14
- pulumi_gcp/compute/get_global_forwarding_rule.py +12 -1
- pulumi_gcp/compute/global_forwarding_rule.py +114 -2
- pulumi_gcp/compute/project_cloud_armor_tier.py +7 -7
- pulumi_gcp/firebase/_inputs.py +99 -0
- pulumi_gcp/firebase/database_instance.py +24 -6
- pulumi_gcp/firebase/hosting_version.py +96 -0
- pulumi_gcp/firebase/outputs.py +59 -0
- pulumi_gcp/firebase/project.py +6 -6
- pulumi_gcp/identityplatform/_inputs.py +6 -6
- pulumi_gcp/identityplatform/config.py +2 -2
- pulumi_gcp/identityplatform/outputs.py +4 -4
- pulumi_gcp/looker/instance.py +35 -14
- pulumi_gcp/networkconnectivity/_inputs.py +10 -12
- pulumi_gcp/networkconnectivity/outputs.py +6 -8
- pulumi_gcp/networksecurity/__init__.py +3 -0
- pulumi_gcp/networksecurity/_inputs.py +1903 -0
- pulumi_gcp/networksecurity/authz_policy.py +1008 -0
- pulumi_gcp/networksecurity/intercept_deployment.py +846 -0
- pulumi_gcp/networksecurity/intercept_deployment_group.py +752 -0
- pulumi_gcp/networksecurity/outputs.py +1393 -0
- pulumi_gcp/networkservices/__init__.py +1 -0
- pulumi_gcp/networkservices/authz_extension.py +1080 -0
- pulumi_gcp/oracledatabase/autonomous_database.py +4 -4
- pulumi_gcp/orgpolicy/_inputs.py +40 -0
- pulumi_gcp/orgpolicy/outputs.py +24 -0
- pulumi_gcp/orgpolicy/policy.py +64 -8
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/sql/_inputs.py +3 -3
- pulumi_gcp/sql/database_instance.py +14 -14
- pulumi_gcp/sql/outputs.py +2 -2
- pulumi_gcp/storage/_inputs.py +53 -6
- pulumi_gcp/storage/outputs.py +33 -4
- pulumi_gcp/tpu/_inputs.py +26 -18
- pulumi_gcp/tpu/outputs.py +18 -12
- pulumi_gcp/tpu/v2_vm.py +63 -0
- {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/RECORD +48 -44
- {pulumi_gcp-8.12.0a1734477662.dist-info → pulumi_gcp-8.12.1.dist-info}/WHEEL +0 -0
- {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
|
- - -
|
pulumi_gcp/firebase/_inputs.py
CHANGED
@@ -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
|
-
|
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=[
|
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
|
-
|
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=[
|
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
|
pulumi_gcp/firebase/outputs.py
CHANGED
@@ -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
|
pulumi_gcp/firebase/project.py
CHANGED
@@ -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
|
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
|
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
|
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
|
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
|
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
|
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
|
|