pulumi-gcp 8.33.0a1749001887__py3-none-any.whl → 8.34.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.
- pulumi_gcp/__init__.py +40 -0
- pulumi_gcp/alloydb/cluster.py +16 -64
- pulumi_gcp/apigee/_inputs.py +89 -0
- pulumi_gcp/apigee/environment.py +68 -2
- pulumi_gcp/apigee/outputs.py +88 -0
- pulumi_gcp/apihub/__init__.py +1 -0
- pulumi_gcp/apihub/_inputs.py +184 -0
- pulumi_gcp/apihub/curation.py +812 -0
- pulumi_gcp/apihub/outputs.py +165 -0
- pulumi_gcp/beyondcorp/get_security_gateway.py +12 -1
- pulumi_gcp/beyondcorp/security_gateway.py +28 -0
- pulumi_gcp/bigquery/__init__.py +1 -0
- pulumi_gcp/bigquery/get_datasets.py +131 -0
- pulumi_gcp/bigquery/outputs.py +52 -0
- pulumi_gcp/cloudrunv2/_inputs.py +463 -0
- pulumi_gcp/cloudrunv2/outputs.py +581 -1
- pulumi_gcp/cloudrunv2/worker_pool.py +0 -8
- pulumi_gcp/colab/_inputs.py +14 -1
- pulumi_gcp/colab/outputs.py +8 -1
- pulumi_gcp/colab/runtime_template.py +5 -27
- pulumi_gcp/compute/__init__.py +3 -0
- pulumi_gcp/compute/_inputs.py +1829 -3
- pulumi_gcp/compute/backend_service.py +18 -2
- pulumi_gcp/compute/get_region_instance_template.py +12 -1
- pulumi_gcp/compute/get_router_nat.py +23 -1
- pulumi_gcp/compute/interconnect.py +32 -0
- pulumi_gcp/compute/interconnect_attachment.py +304 -0
- pulumi_gcp/compute/interconnect_attachment_group.py +636 -0
- pulumi_gcp/compute/interconnect_group.py +586 -0
- pulumi_gcp/compute/outputs.py +1321 -2
- pulumi_gcp/compute/region_instance_template.py +28 -0
- pulumi_gcp/compute/router_nat.py +143 -0
- pulumi_gcp/compute/snapshot_settings.py +285 -0
- pulumi_gcp/compute/url_map.py +338 -0
- pulumi_gcp/container/_inputs.py +57 -24
- pulumi_gcp/container/cluster.py +47 -0
- pulumi_gcp/container/get_cluster.py +12 -1
- pulumi_gcp/container/outputs.py +75 -20
- pulumi_gcp/dataplex/__init__.py +1 -0
- pulumi_gcp/dataplex/_inputs.py +492 -0
- pulumi_gcp/dataplex/datascan.py +2 -0
- pulumi_gcp/dataplex/entry.py +1038 -0
- pulumi_gcp/dataplex/outputs.py +357 -1
- pulumi_gcp/datastream/_inputs.py +48 -6
- pulumi_gcp/datastream/outputs.py +46 -4
- pulumi_gcp/datastream/private_connection.py +205 -35
- pulumi_gcp/dns/_inputs.py +73 -0
- pulumi_gcp/dns/outputs.py +60 -0
- pulumi_gcp/dns/policy.py +54 -0
- pulumi_gcp/eventarc/_inputs.py +12 -5
- pulumi_gcp/eventarc/outputs.py +8 -3
- pulumi_gcp/eventarc/pipeline.py +0 -12
- pulumi_gcp/filestore/_inputs.py +44 -1
- pulumi_gcp/filestore/instance.py +7 -7
- pulumi_gcp/filestore/outputs.py +52 -2
- pulumi_gcp/gemini/data_sharing_with_google_setting.py +58 -9
- pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +11 -16
- pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +51 -2
- pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +11 -16
- pulumi_gcp/gkehub/_inputs.py +84 -7
- pulumi_gcp/gkehub/feature.py +38 -0
- pulumi_gcp/gkehub/outputs.py +102 -7
- pulumi_gcp/gkehub/scope_rbac_role_binding.py +54 -2
- pulumi_gcp/gkeonprem/_inputs.py +54 -0
- pulumi_gcp/gkeonprem/outputs.py +49 -0
- pulumi_gcp/gkeonprem/vmware_admin_cluster.py +71 -0
- pulumi_gcp/iam/workload_identity_pool_namespace.py +4 -4
- pulumi_gcp/iap/tunnel_dest_group.py +2 -2
- pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
- pulumi_gcp/managedkafka/connect_cluster.py +4 -4
- pulumi_gcp/managedkafka/connector.py +4 -4
- pulumi_gcp/memorystore/_inputs.py +6 -6
- pulumi_gcp/memorystore/outputs.py +8 -8
- pulumi_gcp/netapp/_inputs.py +113 -0
- pulumi_gcp/netapp/backup_vault.py +56 -0
- pulumi_gcp/netapp/outputs.py +92 -0
- pulumi_gcp/networkconnectivity/_inputs.py +9 -9
- pulumi_gcp/networkconnectivity/outputs.py +6 -6
- pulumi_gcp/networkconnectivity/spoke.py +14 -14
- pulumi_gcp/networksecurity/backend_authentication_config.py +64 -0
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/pubsub/_inputs.py +392 -0
- pulumi_gcp/pubsub/get_subscription.py +12 -1
- pulumi_gcp/pubsub/get_topic.py +12 -1
- pulumi_gcp/pubsub/outputs.py +548 -0
- pulumi_gcp/pubsub/subscription.py +67 -6
- pulumi_gcp/pubsub/topic.py +61 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/redis/_inputs.py +3 -6
- pulumi_gcp/redis/outputs.py +2 -4
- pulumi_gcp/storage/bucket_object.py +4 -4
- pulumi_gcp/vertex/ai_endpoint.py +4 -4
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
- {pulumi_gcp-8.33.0a1749001887.dist-info → pulumi_gcp-8.34.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.33.0a1749001887.dist-info → pulumi_gcp-8.34.0.dist-info}/RECORD +97 -91
- {pulumi_gcp-8.33.0a1749001887.dist-info → pulumi_gcp-8.34.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.33.0a1749001887.dist-info → pulumi_gcp-8.34.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,285 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by pulumi-language-python. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import builtins
|
6
|
+
import copy
|
7
|
+
import warnings
|
8
|
+
import sys
|
9
|
+
import pulumi
|
10
|
+
import pulumi.runtime
|
11
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
12
|
+
if sys.version_info >= (3, 11):
|
13
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
14
|
+
else:
|
15
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
16
|
+
from .. import _utilities
|
17
|
+
from . import outputs
|
18
|
+
from ._inputs import *
|
19
|
+
|
20
|
+
__all__ = ['SnapshotSettingsArgs', 'SnapshotSettings']
|
21
|
+
|
22
|
+
@pulumi.input_type
|
23
|
+
class SnapshotSettingsArgs:
|
24
|
+
def __init__(__self__, *,
|
25
|
+
storage_location: pulumi.Input['SnapshotSettingsStorageLocationArgs'],
|
26
|
+
project: Optional[pulumi.Input[builtins.str]] = None):
|
27
|
+
"""
|
28
|
+
The set of arguments for constructing a SnapshotSettings resource.
|
29
|
+
:param pulumi.Input['SnapshotSettingsStorageLocationArgs'] storage_location: Policy of which storage location is going to be resolved, and additional data
|
30
|
+
that particularizes how the policy is going to be carried out
|
31
|
+
Structure is documented below.
|
32
|
+
"""
|
33
|
+
pulumi.set(__self__, "storage_location", storage_location)
|
34
|
+
if project is not None:
|
35
|
+
pulumi.set(__self__, "project", project)
|
36
|
+
|
37
|
+
@property
|
38
|
+
@pulumi.getter(name="storageLocation")
|
39
|
+
def storage_location(self) -> pulumi.Input['SnapshotSettingsStorageLocationArgs']:
|
40
|
+
"""
|
41
|
+
Policy of which storage location is going to be resolved, and additional data
|
42
|
+
that particularizes how the policy is going to be carried out
|
43
|
+
Structure is documented below.
|
44
|
+
"""
|
45
|
+
return pulumi.get(self, "storage_location")
|
46
|
+
|
47
|
+
@storage_location.setter
|
48
|
+
def storage_location(self, value: pulumi.Input['SnapshotSettingsStorageLocationArgs']):
|
49
|
+
pulumi.set(self, "storage_location", value)
|
50
|
+
|
51
|
+
@property
|
52
|
+
@pulumi.getter
|
53
|
+
def project(self) -> Optional[pulumi.Input[builtins.str]]:
|
54
|
+
return pulumi.get(self, "project")
|
55
|
+
|
56
|
+
@project.setter
|
57
|
+
def project(self, value: Optional[pulumi.Input[builtins.str]]):
|
58
|
+
pulumi.set(self, "project", value)
|
59
|
+
|
60
|
+
|
61
|
+
@pulumi.input_type
|
62
|
+
class _SnapshotSettingsState:
|
63
|
+
def __init__(__self__, *,
|
64
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
65
|
+
storage_location: Optional[pulumi.Input['SnapshotSettingsStorageLocationArgs']] = None):
|
66
|
+
"""
|
67
|
+
Input properties used for looking up and filtering SnapshotSettings resources.
|
68
|
+
:param pulumi.Input['SnapshotSettingsStorageLocationArgs'] storage_location: Policy of which storage location is going to be resolved, and additional data
|
69
|
+
that particularizes how the policy is going to be carried out
|
70
|
+
Structure is documented below.
|
71
|
+
"""
|
72
|
+
if project is not None:
|
73
|
+
pulumi.set(__self__, "project", project)
|
74
|
+
if storage_location is not None:
|
75
|
+
pulumi.set(__self__, "storage_location", storage_location)
|
76
|
+
|
77
|
+
@property
|
78
|
+
@pulumi.getter
|
79
|
+
def project(self) -> Optional[pulumi.Input[builtins.str]]:
|
80
|
+
return pulumi.get(self, "project")
|
81
|
+
|
82
|
+
@project.setter
|
83
|
+
def project(self, value: Optional[pulumi.Input[builtins.str]]):
|
84
|
+
pulumi.set(self, "project", value)
|
85
|
+
|
86
|
+
@property
|
87
|
+
@pulumi.getter(name="storageLocation")
|
88
|
+
def storage_location(self) -> Optional[pulumi.Input['SnapshotSettingsStorageLocationArgs']]:
|
89
|
+
"""
|
90
|
+
Policy of which storage location is going to be resolved, and additional data
|
91
|
+
that particularizes how the policy is going to be carried out
|
92
|
+
Structure is documented below.
|
93
|
+
"""
|
94
|
+
return pulumi.get(self, "storage_location")
|
95
|
+
|
96
|
+
@storage_location.setter
|
97
|
+
def storage_location(self, value: Optional[pulumi.Input['SnapshotSettingsStorageLocationArgs']]):
|
98
|
+
pulumi.set(self, "storage_location", value)
|
99
|
+
|
100
|
+
|
101
|
+
@pulumi.type_token("gcp:compute/snapshotSettings:SnapshotSettings")
|
102
|
+
class SnapshotSettings(pulumi.CustomResource):
|
103
|
+
@overload
|
104
|
+
def __init__(__self__,
|
105
|
+
resource_name: str,
|
106
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
107
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
108
|
+
storage_location: Optional[pulumi.Input[Union['SnapshotSettingsStorageLocationArgs', 'SnapshotSettingsStorageLocationArgsDict']]] = None,
|
109
|
+
__props__=None):
|
110
|
+
"""
|
111
|
+
Updates your project's snapshot settings and sets a new default storage location for snapshots.
|
112
|
+
|
113
|
+
To get more information about SnapshotSettings, see:
|
114
|
+
|
115
|
+
* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/snapshotSettings)
|
116
|
+
* How-to Guides
|
117
|
+
* [Official Documentation](https://cloud.google.com/compute/docs/disks/snapshot-settings#snapshot_settings_how_to_update)
|
118
|
+
|
119
|
+
## Example Usage
|
120
|
+
|
121
|
+
### Snapshot Settings Specific Locations
|
122
|
+
|
123
|
+
```python
|
124
|
+
import pulumi
|
125
|
+
import pulumi_gcp as gcp
|
126
|
+
|
127
|
+
tf_test_snapshot_settings = gcp.compute.SnapshotSettings("tf-test-snapshot-settings", storage_location={
|
128
|
+
"policy": "SPECIFIC_LOCATIONS",
|
129
|
+
"locations": [{
|
130
|
+
"name": "us-central1",
|
131
|
+
"location": "us-central1",
|
132
|
+
}],
|
133
|
+
})
|
134
|
+
```
|
135
|
+
|
136
|
+
## Import
|
137
|
+
|
138
|
+
SnapshotSettings can be imported using any of these accepted formats:
|
139
|
+
|
140
|
+
* `projects/{{project}}/global/snapshotSettings/`
|
141
|
+
|
142
|
+
* `{{project}}`
|
143
|
+
|
144
|
+
When using the `pulumi import` command, SnapshotSettings can be imported using one of the formats above. For example:
|
145
|
+
|
146
|
+
```sh
|
147
|
+
$ pulumi import gcp:compute/snapshotSettings:SnapshotSettings default projects/{{project}}/global/snapshotSettings/
|
148
|
+
```
|
149
|
+
|
150
|
+
```sh
|
151
|
+
$ pulumi import gcp:compute/snapshotSettings:SnapshotSettings default {{project}}
|
152
|
+
```
|
153
|
+
|
154
|
+
:param str resource_name: The name of the resource.
|
155
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
156
|
+
:param pulumi.Input[Union['SnapshotSettingsStorageLocationArgs', 'SnapshotSettingsStorageLocationArgsDict']] storage_location: Policy of which storage location is going to be resolved, and additional data
|
157
|
+
that particularizes how the policy is going to be carried out
|
158
|
+
Structure is documented below.
|
159
|
+
"""
|
160
|
+
...
|
161
|
+
@overload
|
162
|
+
def __init__(__self__,
|
163
|
+
resource_name: str,
|
164
|
+
args: SnapshotSettingsArgs,
|
165
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
166
|
+
"""
|
167
|
+
Updates your project's snapshot settings and sets a new default storage location for snapshots.
|
168
|
+
|
169
|
+
To get more information about SnapshotSettings, see:
|
170
|
+
|
171
|
+
* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/snapshotSettings)
|
172
|
+
* How-to Guides
|
173
|
+
* [Official Documentation](https://cloud.google.com/compute/docs/disks/snapshot-settings#snapshot_settings_how_to_update)
|
174
|
+
|
175
|
+
## Example Usage
|
176
|
+
|
177
|
+
### Snapshot Settings Specific Locations
|
178
|
+
|
179
|
+
```python
|
180
|
+
import pulumi
|
181
|
+
import pulumi_gcp as gcp
|
182
|
+
|
183
|
+
tf_test_snapshot_settings = gcp.compute.SnapshotSettings("tf-test-snapshot-settings", storage_location={
|
184
|
+
"policy": "SPECIFIC_LOCATIONS",
|
185
|
+
"locations": [{
|
186
|
+
"name": "us-central1",
|
187
|
+
"location": "us-central1",
|
188
|
+
}],
|
189
|
+
})
|
190
|
+
```
|
191
|
+
|
192
|
+
## Import
|
193
|
+
|
194
|
+
SnapshotSettings can be imported using any of these accepted formats:
|
195
|
+
|
196
|
+
* `projects/{{project}}/global/snapshotSettings/`
|
197
|
+
|
198
|
+
* `{{project}}`
|
199
|
+
|
200
|
+
When using the `pulumi import` command, SnapshotSettings can be imported using one of the formats above. For example:
|
201
|
+
|
202
|
+
```sh
|
203
|
+
$ pulumi import gcp:compute/snapshotSettings:SnapshotSettings default projects/{{project}}/global/snapshotSettings/
|
204
|
+
```
|
205
|
+
|
206
|
+
```sh
|
207
|
+
$ pulumi import gcp:compute/snapshotSettings:SnapshotSettings default {{project}}
|
208
|
+
```
|
209
|
+
|
210
|
+
:param str resource_name: The name of the resource.
|
211
|
+
:param SnapshotSettingsArgs args: The arguments to use to populate this resource's properties.
|
212
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
213
|
+
"""
|
214
|
+
...
|
215
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
216
|
+
resource_args, opts = _utilities.get_resource_args_opts(SnapshotSettingsArgs, pulumi.ResourceOptions, *args, **kwargs)
|
217
|
+
if resource_args is not None:
|
218
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
219
|
+
else:
|
220
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
221
|
+
|
222
|
+
def _internal_init(__self__,
|
223
|
+
resource_name: str,
|
224
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
225
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
226
|
+
storage_location: Optional[pulumi.Input[Union['SnapshotSettingsStorageLocationArgs', 'SnapshotSettingsStorageLocationArgsDict']]] = None,
|
227
|
+
__props__=None):
|
228
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
229
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
230
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
231
|
+
if opts.id is None:
|
232
|
+
if __props__ is not None:
|
233
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
234
|
+
__props__ = SnapshotSettingsArgs.__new__(SnapshotSettingsArgs)
|
235
|
+
|
236
|
+
__props__.__dict__["project"] = project
|
237
|
+
if storage_location is None and not opts.urn:
|
238
|
+
raise TypeError("Missing required property 'storage_location'")
|
239
|
+
__props__.__dict__["storage_location"] = storage_location
|
240
|
+
super(SnapshotSettings, __self__).__init__(
|
241
|
+
'gcp:compute/snapshotSettings:SnapshotSettings',
|
242
|
+
resource_name,
|
243
|
+
__props__,
|
244
|
+
opts)
|
245
|
+
|
246
|
+
@staticmethod
|
247
|
+
def get(resource_name: str,
|
248
|
+
id: pulumi.Input[str],
|
249
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
250
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
251
|
+
storage_location: Optional[pulumi.Input[Union['SnapshotSettingsStorageLocationArgs', 'SnapshotSettingsStorageLocationArgsDict']]] = None) -> 'SnapshotSettings':
|
252
|
+
"""
|
253
|
+
Get an existing SnapshotSettings resource's state with the given name, id, and optional extra
|
254
|
+
properties used to qualify the lookup.
|
255
|
+
|
256
|
+
:param str resource_name: The unique name of the resulting resource.
|
257
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
258
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
259
|
+
:param pulumi.Input[Union['SnapshotSettingsStorageLocationArgs', 'SnapshotSettingsStorageLocationArgsDict']] storage_location: Policy of which storage location is going to be resolved, and additional data
|
260
|
+
that particularizes how the policy is going to be carried out
|
261
|
+
Structure is documented below.
|
262
|
+
"""
|
263
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
264
|
+
|
265
|
+
__props__ = _SnapshotSettingsState.__new__(_SnapshotSettingsState)
|
266
|
+
|
267
|
+
__props__.__dict__["project"] = project
|
268
|
+
__props__.__dict__["storage_location"] = storage_location
|
269
|
+
return SnapshotSettings(resource_name, opts=opts, __props__=__props__)
|
270
|
+
|
271
|
+
@property
|
272
|
+
@pulumi.getter
|
273
|
+
def project(self) -> pulumi.Output[builtins.str]:
|
274
|
+
return pulumi.get(self, "project")
|
275
|
+
|
276
|
+
@property
|
277
|
+
@pulumi.getter(name="storageLocation")
|
278
|
+
def storage_location(self) -> pulumi.Output['outputs.SnapshotSettingsStorageLocation']:
|
279
|
+
"""
|
280
|
+
Policy of which storage location is going to be resolved, and additional data
|
281
|
+
that particularizes how the policy is going to be carried out
|
282
|
+
Structure is documented below.
|
283
|
+
"""
|
284
|
+
return pulumi.get(self, "storage_location")
|
285
|
+
|
pulumi_gcp/compute/url_map.py
CHANGED
@@ -1452,6 +1452,175 @@ class URLMap(pulumi.CustomResource):
|
|
1452
1452
|
}],
|
1453
1453
|
}])
|
1454
1454
|
```
|
1455
|
+
### Url Map Http Filter Configs
|
1456
|
+
|
1457
|
+
```python
|
1458
|
+
import pulumi
|
1459
|
+
import json
|
1460
|
+
import pulumi_gcp as gcp
|
1461
|
+
|
1462
|
+
default_health_check = gcp.compute.HealthCheck("default",
|
1463
|
+
name="health-check",
|
1464
|
+
http_health_check={
|
1465
|
+
"port": 80,
|
1466
|
+
})
|
1467
|
+
default = gcp.compute.BackendService("default",
|
1468
|
+
name="default-backend",
|
1469
|
+
port_name="http",
|
1470
|
+
protocol="HTTP",
|
1471
|
+
timeout_sec=10,
|
1472
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
1473
|
+
health_checks=default_health_check.id)
|
1474
|
+
service_a = gcp.compute.BackendService("service-a",
|
1475
|
+
name="service-a-backend",
|
1476
|
+
port_name="http",
|
1477
|
+
protocol="HTTP",
|
1478
|
+
timeout_sec=10,
|
1479
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
1480
|
+
health_checks=default_health_check.id)
|
1481
|
+
urlmap = gcp.compute.URLMap("urlmap",
|
1482
|
+
name="urlmap",
|
1483
|
+
description="Test for httpFilterConfigs in route rules",
|
1484
|
+
default_service=default.id,
|
1485
|
+
host_rules=[{
|
1486
|
+
"hosts": ["mysite.com"],
|
1487
|
+
"path_matcher": "allpaths",
|
1488
|
+
}],
|
1489
|
+
path_matchers=[{
|
1490
|
+
"name": "allpaths",
|
1491
|
+
"default_service": default.id,
|
1492
|
+
"route_rules": [{
|
1493
|
+
"priority": 1,
|
1494
|
+
"service": service_a.id,
|
1495
|
+
"match_rules": [{
|
1496
|
+
"prefix_match": "/",
|
1497
|
+
"ignore_case": True,
|
1498
|
+
}],
|
1499
|
+
"http_filter_configs": [{
|
1500
|
+
"filter_name": "envoy.wasm",
|
1501
|
+
"config_type_url": "type.googleapis.com/google.protobuf.Struct",
|
1502
|
+
"config": json.dumps({
|
1503
|
+
"name": "my-filter",
|
1504
|
+
"root_id": "my_root_id",
|
1505
|
+
"vm_config": {
|
1506
|
+
"vm_id": "my_vm_id",
|
1507
|
+
"runtime": "envoy.wasm.runtime.v8",
|
1508
|
+
"code": {
|
1509
|
+
"local": {
|
1510
|
+
"inline_string": "const WASM_BINARY = '...'",
|
1511
|
+
},
|
1512
|
+
},
|
1513
|
+
},
|
1514
|
+
}),
|
1515
|
+
}],
|
1516
|
+
}],
|
1517
|
+
}],
|
1518
|
+
tests=[{
|
1519
|
+
"service": default.id,
|
1520
|
+
"host": "mysite.com",
|
1521
|
+
"path": "/",
|
1522
|
+
}])
|
1523
|
+
```
|
1524
|
+
### Url Map Http Filter Metadata
|
1525
|
+
|
1526
|
+
```python
|
1527
|
+
import pulumi
|
1528
|
+
import json
|
1529
|
+
import pulumi_gcp as gcp
|
1530
|
+
|
1531
|
+
default_health_check = gcp.compute.HealthCheck("default",
|
1532
|
+
name="health-check",
|
1533
|
+
http_health_check={
|
1534
|
+
"port": 80,
|
1535
|
+
})
|
1536
|
+
default = gcp.compute.BackendService("default",
|
1537
|
+
name="default-backend",
|
1538
|
+
port_name="http",
|
1539
|
+
protocol="HTTP",
|
1540
|
+
timeout_sec=10,
|
1541
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
1542
|
+
health_checks=default_health_check.id)
|
1543
|
+
service_a = gcp.compute.BackendService("service-a",
|
1544
|
+
name="service-a-backend",
|
1545
|
+
port_name="http",
|
1546
|
+
protocol="HTTP",
|
1547
|
+
timeout_sec=10,
|
1548
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
1549
|
+
health_checks=default_health_check.id)
|
1550
|
+
service_b = gcp.compute.BackendService("service-b",
|
1551
|
+
name="service-b-backend",
|
1552
|
+
port_name="http",
|
1553
|
+
protocol="HTTP",
|
1554
|
+
timeout_sec=10,
|
1555
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
1556
|
+
health_checks=default_health_check.id)
|
1557
|
+
urlmap = gcp.compute.URLMap("urlmap",
|
1558
|
+
name="urlmap",
|
1559
|
+
description="Test for httpFilterMetadata in route rules",
|
1560
|
+
default_service=default.id,
|
1561
|
+
host_rules=[{
|
1562
|
+
"hosts": ["mysite.com"],
|
1563
|
+
"path_matcher": "allpaths",
|
1564
|
+
}],
|
1565
|
+
path_matchers=[{
|
1566
|
+
"name": "allpaths",
|
1567
|
+
"default_service": default.id,
|
1568
|
+
"route_rules": [
|
1569
|
+
{
|
1570
|
+
"priority": 1,
|
1571
|
+
"service": service_a.id,
|
1572
|
+
"match_rules": [{
|
1573
|
+
"prefix_match": "/",
|
1574
|
+
"ignore_case": True,
|
1575
|
+
}],
|
1576
|
+
"http_filter_metadatas": [{
|
1577
|
+
"filter_name": "envoy.wasm",
|
1578
|
+
"config_type_url": "type.googleapis.com/google.protobuf.Struct",
|
1579
|
+
"config": json.dumps({
|
1580
|
+
"fields": {
|
1581
|
+
"timeout": {
|
1582
|
+
"string_value": "30s",
|
1583
|
+
},
|
1584
|
+
"retries": {
|
1585
|
+
"number_value": 3,
|
1586
|
+
},
|
1587
|
+
"debug": {
|
1588
|
+
"bool_value": True,
|
1589
|
+
},
|
1590
|
+
},
|
1591
|
+
}),
|
1592
|
+
}],
|
1593
|
+
},
|
1594
|
+
{
|
1595
|
+
"priority": 2,
|
1596
|
+
"service": service_b.id,
|
1597
|
+
"match_rules": [{
|
1598
|
+
"prefix_match": "/api",
|
1599
|
+
"ignore_case": True,
|
1600
|
+
}],
|
1601
|
+
"http_filter_metadatas": [{
|
1602
|
+
"filter_name": "envoy.rate_limit",
|
1603
|
+
"config_type_url": "type.googleapis.com/google.protobuf.Struct",
|
1604
|
+
"config": json.dumps({
|
1605
|
+
"fields": {
|
1606
|
+
"requests_per_unit": {
|
1607
|
+
"number_value": 100,
|
1608
|
+
},
|
1609
|
+
"unit": {
|
1610
|
+
"string_value": "MINUTE",
|
1611
|
+
},
|
1612
|
+
},
|
1613
|
+
}),
|
1614
|
+
}],
|
1615
|
+
},
|
1616
|
+
],
|
1617
|
+
}],
|
1618
|
+
tests=[{
|
1619
|
+
"service": default.id,
|
1620
|
+
"host": "mysite.com",
|
1621
|
+
"path": "/",
|
1622
|
+
}])
|
1623
|
+
```
|
1455
1624
|
|
1456
1625
|
## Import
|
1457
1626
|
|
@@ -2376,6 +2545,175 @@ class URLMap(pulumi.CustomResource):
|
|
2376
2545
|
}],
|
2377
2546
|
}])
|
2378
2547
|
```
|
2548
|
+
### Url Map Http Filter Configs
|
2549
|
+
|
2550
|
+
```python
|
2551
|
+
import pulumi
|
2552
|
+
import json
|
2553
|
+
import pulumi_gcp as gcp
|
2554
|
+
|
2555
|
+
default_health_check = gcp.compute.HealthCheck("default",
|
2556
|
+
name="health-check",
|
2557
|
+
http_health_check={
|
2558
|
+
"port": 80,
|
2559
|
+
})
|
2560
|
+
default = gcp.compute.BackendService("default",
|
2561
|
+
name="default-backend",
|
2562
|
+
port_name="http",
|
2563
|
+
protocol="HTTP",
|
2564
|
+
timeout_sec=10,
|
2565
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
2566
|
+
health_checks=default_health_check.id)
|
2567
|
+
service_a = gcp.compute.BackendService("service-a",
|
2568
|
+
name="service-a-backend",
|
2569
|
+
port_name="http",
|
2570
|
+
protocol="HTTP",
|
2571
|
+
timeout_sec=10,
|
2572
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
2573
|
+
health_checks=default_health_check.id)
|
2574
|
+
urlmap = gcp.compute.URLMap("urlmap",
|
2575
|
+
name="urlmap",
|
2576
|
+
description="Test for httpFilterConfigs in route rules",
|
2577
|
+
default_service=default.id,
|
2578
|
+
host_rules=[{
|
2579
|
+
"hosts": ["mysite.com"],
|
2580
|
+
"path_matcher": "allpaths",
|
2581
|
+
}],
|
2582
|
+
path_matchers=[{
|
2583
|
+
"name": "allpaths",
|
2584
|
+
"default_service": default.id,
|
2585
|
+
"route_rules": [{
|
2586
|
+
"priority": 1,
|
2587
|
+
"service": service_a.id,
|
2588
|
+
"match_rules": [{
|
2589
|
+
"prefix_match": "/",
|
2590
|
+
"ignore_case": True,
|
2591
|
+
}],
|
2592
|
+
"http_filter_configs": [{
|
2593
|
+
"filter_name": "envoy.wasm",
|
2594
|
+
"config_type_url": "type.googleapis.com/google.protobuf.Struct",
|
2595
|
+
"config": json.dumps({
|
2596
|
+
"name": "my-filter",
|
2597
|
+
"root_id": "my_root_id",
|
2598
|
+
"vm_config": {
|
2599
|
+
"vm_id": "my_vm_id",
|
2600
|
+
"runtime": "envoy.wasm.runtime.v8",
|
2601
|
+
"code": {
|
2602
|
+
"local": {
|
2603
|
+
"inline_string": "const WASM_BINARY = '...'",
|
2604
|
+
},
|
2605
|
+
},
|
2606
|
+
},
|
2607
|
+
}),
|
2608
|
+
}],
|
2609
|
+
}],
|
2610
|
+
}],
|
2611
|
+
tests=[{
|
2612
|
+
"service": default.id,
|
2613
|
+
"host": "mysite.com",
|
2614
|
+
"path": "/",
|
2615
|
+
}])
|
2616
|
+
```
|
2617
|
+
### Url Map Http Filter Metadata
|
2618
|
+
|
2619
|
+
```python
|
2620
|
+
import pulumi
|
2621
|
+
import json
|
2622
|
+
import pulumi_gcp as gcp
|
2623
|
+
|
2624
|
+
default_health_check = gcp.compute.HealthCheck("default",
|
2625
|
+
name="health-check",
|
2626
|
+
http_health_check={
|
2627
|
+
"port": 80,
|
2628
|
+
})
|
2629
|
+
default = gcp.compute.BackendService("default",
|
2630
|
+
name="default-backend",
|
2631
|
+
port_name="http",
|
2632
|
+
protocol="HTTP",
|
2633
|
+
timeout_sec=10,
|
2634
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
2635
|
+
health_checks=default_health_check.id)
|
2636
|
+
service_a = gcp.compute.BackendService("service-a",
|
2637
|
+
name="service-a-backend",
|
2638
|
+
port_name="http",
|
2639
|
+
protocol="HTTP",
|
2640
|
+
timeout_sec=10,
|
2641
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
2642
|
+
health_checks=default_health_check.id)
|
2643
|
+
service_b = gcp.compute.BackendService("service-b",
|
2644
|
+
name="service-b-backend",
|
2645
|
+
port_name="http",
|
2646
|
+
protocol="HTTP",
|
2647
|
+
timeout_sec=10,
|
2648
|
+
load_balancing_scheme="INTERNAL_SELF_MANAGED",
|
2649
|
+
health_checks=default_health_check.id)
|
2650
|
+
urlmap = gcp.compute.URLMap("urlmap",
|
2651
|
+
name="urlmap",
|
2652
|
+
description="Test for httpFilterMetadata in route rules",
|
2653
|
+
default_service=default.id,
|
2654
|
+
host_rules=[{
|
2655
|
+
"hosts": ["mysite.com"],
|
2656
|
+
"path_matcher": "allpaths",
|
2657
|
+
}],
|
2658
|
+
path_matchers=[{
|
2659
|
+
"name": "allpaths",
|
2660
|
+
"default_service": default.id,
|
2661
|
+
"route_rules": [
|
2662
|
+
{
|
2663
|
+
"priority": 1,
|
2664
|
+
"service": service_a.id,
|
2665
|
+
"match_rules": [{
|
2666
|
+
"prefix_match": "/",
|
2667
|
+
"ignore_case": True,
|
2668
|
+
}],
|
2669
|
+
"http_filter_metadatas": [{
|
2670
|
+
"filter_name": "envoy.wasm",
|
2671
|
+
"config_type_url": "type.googleapis.com/google.protobuf.Struct",
|
2672
|
+
"config": json.dumps({
|
2673
|
+
"fields": {
|
2674
|
+
"timeout": {
|
2675
|
+
"string_value": "30s",
|
2676
|
+
},
|
2677
|
+
"retries": {
|
2678
|
+
"number_value": 3,
|
2679
|
+
},
|
2680
|
+
"debug": {
|
2681
|
+
"bool_value": True,
|
2682
|
+
},
|
2683
|
+
},
|
2684
|
+
}),
|
2685
|
+
}],
|
2686
|
+
},
|
2687
|
+
{
|
2688
|
+
"priority": 2,
|
2689
|
+
"service": service_b.id,
|
2690
|
+
"match_rules": [{
|
2691
|
+
"prefix_match": "/api",
|
2692
|
+
"ignore_case": True,
|
2693
|
+
}],
|
2694
|
+
"http_filter_metadatas": [{
|
2695
|
+
"filter_name": "envoy.rate_limit",
|
2696
|
+
"config_type_url": "type.googleapis.com/google.protobuf.Struct",
|
2697
|
+
"config": json.dumps({
|
2698
|
+
"fields": {
|
2699
|
+
"requests_per_unit": {
|
2700
|
+
"number_value": 100,
|
2701
|
+
},
|
2702
|
+
"unit": {
|
2703
|
+
"string_value": "MINUTE",
|
2704
|
+
},
|
2705
|
+
},
|
2706
|
+
}),
|
2707
|
+
}],
|
2708
|
+
},
|
2709
|
+
],
|
2710
|
+
}],
|
2711
|
+
tests=[{
|
2712
|
+
"service": default.id,
|
2713
|
+
"host": "mysite.com",
|
2714
|
+
"path": "/",
|
2715
|
+
}])
|
2716
|
+
```
|
2379
2717
|
|
2380
2718
|
## Import
|
2381
2719
|
|