pulumi-gcp 7.36.0a1723631483__py3-none-any.whl → 7.37.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 +72 -0
- pulumi_gcp/accesscontextmanager/__init__.py +2 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +780 -0
- pulumi_gcp/accesscontextmanager/outputs.py +601 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +323 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +332 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +2 -24
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +2 -24
- pulumi_gcp/applicationintegration/client.py +2 -2
- pulumi_gcp/clouddeploy/_inputs.py +21 -1
- pulumi_gcp/clouddeploy/outputs.py +15 -1
- pulumi_gcp/cloudrunv2/_inputs.py +40 -0
- pulumi_gcp/cloudrunv2/outputs.py +46 -0
- pulumi_gcp/compute/region_target_https_proxy.py +28 -0
- pulumi_gcp/container/_inputs.py +26 -0
- pulumi_gcp/container/outputs.py +29 -0
- pulumi_gcp/dataform/repository.py +80 -2
- pulumi_gcp/discoveryengine/data_store.py +93 -2
- pulumi_gcp/gkehub/_inputs.py +63 -0
- pulumi_gcp/gkehub/outputs.py +38 -0
- pulumi_gcp/logging/get_log_view_iam_policy.py +28 -2
- pulumi_gcp/logging/log_view_iam_binding.py +512 -0
- pulumi_gcp/logging/log_view_iam_member.py +512 -0
- pulumi_gcp/logging/log_view_iam_policy.py +512 -0
- pulumi_gcp/netapp/_inputs.py +6 -6
- pulumi_gcp/netapp/outputs.py +4 -4
- pulumi_gcp/networkconnectivity/regional_endpoint.py +6 -6
- pulumi_gcp/organizations/get_project.py +11 -1
- pulumi_gcp/organizations/project.py +76 -21
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/securitycenter/__init__.py +8 -0
- pulumi_gcp/securitycenter/_inputs.py +191 -0
- pulumi_gcp/securitycenter/get_v2_organization_source_iam_policy.py +146 -0
- pulumi_gcp/securitycenter/outputs.py +115 -0
- pulumi_gcp/securitycenter/v2_folder_mute_config.py +679 -0
- pulumi_gcp/securitycenter/v2_organization_source.py +416 -0
- pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +722 -0
- pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +722 -0
- pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +561 -0
- pulumi_gcp/securitycenter/v2_project_mute_config.py +684 -0
- pulumi_gcp/securitycenter/v2_project_notification_config.py +559 -0
- pulumi_gcp/spanner/instance.py +0 -7
- pulumi_gcp/sql/_inputs.py +3 -3
- pulumi_gcp/sql/outputs.py +6 -6
- pulumi_gcp/storage/bucket_object.py +28 -0
- pulumi_gcp/storage/get_bucket_object.py +14 -1
- pulumi_gcp/storage/get_bucket_object_content.py +11 -1
- pulumi_gcp/storage/managed_folder.py +72 -2
- pulumi_gcp/vmwareengine/network_policy.py +6 -6
- {pulumi_gcp-7.36.0a1723631483.dist-info → pulumi_gcp-7.37.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.36.0a1723631483.dist-info → pulumi_gcp-7.37.0.dist-info}/RECORD +53 -43
- {pulumi_gcp-7.36.0a1723631483.dist-info → pulumi_gcp-7.37.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.36.0a1723631483.dist-info → pulumi_gcp-7.37.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,323 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import copy
|
6
|
+
import warnings
|
7
|
+
import sys
|
8
|
+
import pulumi
|
9
|
+
import pulumi.runtime
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
11
|
+
if sys.version_info >= (3, 11):
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
13
|
+
else:
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
15
|
+
from .. import _utilities
|
16
|
+
from . import outputs
|
17
|
+
from ._inputs import *
|
18
|
+
|
19
|
+
__all__ = ['ServicePerimeterDryRunEgressPolicyArgs', 'ServicePerimeterDryRunEgressPolicy']
|
20
|
+
|
21
|
+
@pulumi.input_type
|
22
|
+
class ServicePerimeterDryRunEgressPolicyArgs:
|
23
|
+
def __init__(__self__, *,
|
24
|
+
perimeter: pulumi.Input[str],
|
25
|
+
egress_from: Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromArgs']] = None,
|
26
|
+
egress_to: Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToArgs']] = None):
|
27
|
+
"""
|
28
|
+
The set of arguments for constructing a ServicePerimeterDryRunEgressPolicy resource.
|
29
|
+
:param pulumi.Input[str] perimeter: The name of the Service Perimeter to add this resource to.
|
30
|
+
|
31
|
+
|
32
|
+
- - -
|
33
|
+
:param pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromArgs'] egress_from: Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
34
|
+
Structure is documented below.
|
35
|
+
:param pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToArgs'] egress_to: Defines the conditions on the `ApiOperation` and destination resources that
|
36
|
+
cause this `EgressPolicy` to apply.
|
37
|
+
Structure is documented below.
|
38
|
+
"""
|
39
|
+
pulumi.set(__self__, "perimeter", perimeter)
|
40
|
+
if egress_from is not None:
|
41
|
+
pulumi.set(__self__, "egress_from", egress_from)
|
42
|
+
if egress_to is not None:
|
43
|
+
pulumi.set(__self__, "egress_to", egress_to)
|
44
|
+
|
45
|
+
@property
|
46
|
+
@pulumi.getter
|
47
|
+
def perimeter(self) -> pulumi.Input[str]:
|
48
|
+
"""
|
49
|
+
The name of the Service Perimeter to add this resource to.
|
50
|
+
|
51
|
+
|
52
|
+
- - -
|
53
|
+
"""
|
54
|
+
return pulumi.get(self, "perimeter")
|
55
|
+
|
56
|
+
@perimeter.setter
|
57
|
+
def perimeter(self, value: pulumi.Input[str]):
|
58
|
+
pulumi.set(self, "perimeter", value)
|
59
|
+
|
60
|
+
@property
|
61
|
+
@pulumi.getter(name="egressFrom")
|
62
|
+
def egress_from(self) -> Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromArgs']]:
|
63
|
+
"""
|
64
|
+
Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
65
|
+
Structure is documented below.
|
66
|
+
"""
|
67
|
+
return pulumi.get(self, "egress_from")
|
68
|
+
|
69
|
+
@egress_from.setter
|
70
|
+
def egress_from(self, value: Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromArgs']]):
|
71
|
+
pulumi.set(self, "egress_from", value)
|
72
|
+
|
73
|
+
@property
|
74
|
+
@pulumi.getter(name="egressTo")
|
75
|
+
def egress_to(self) -> Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToArgs']]:
|
76
|
+
"""
|
77
|
+
Defines the conditions on the `ApiOperation` and destination resources that
|
78
|
+
cause this `EgressPolicy` to apply.
|
79
|
+
Structure is documented below.
|
80
|
+
"""
|
81
|
+
return pulumi.get(self, "egress_to")
|
82
|
+
|
83
|
+
@egress_to.setter
|
84
|
+
def egress_to(self, value: Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToArgs']]):
|
85
|
+
pulumi.set(self, "egress_to", value)
|
86
|
+
|
87
|
+
|
88
|
+
@pulumi.input_type
|
89
|
+
class _ServicePerimeterDryRunEgressPolicyState:
|
90
|
+
def __init__(__self__, *,
|
91
|
+
egress_from: Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromArgs']] = None,
|
92
|
+
egress_to: Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToArgs']] = None,
|
93
|
+
perimeter: Optional[pulumi.Input[str]] = None):
|
94
|
+
"""
|
95
|
+
Input properties used for looking up and filtering ServicePerimeterDryRunEgressPolicy resources.
|
96
|
+
:param pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromArgs'] egress_from: Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
97
|
+
Structure is documented below.
|
98
|
+
:param pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToArgs'] egress_to: Defines the conditions on the `ApiOperation` and destination resources that
|
99
|
+
cause this `EgressPolicy` to apply.
|
100
|
+
Structure is documented below.
|
101
|
+
:param pulumi.Input[str] perimeter: The name of the Service Perimeter to add this resource to.
|
102
|
+
|
103
|
+
|
104
|
+
- - -
|
105
|
+
"""
|
106
|
+
if egress_from is not None:
|
107
|
+
pulumi.set(__self__, "egress_from", egress_from)
|
108
|
+
if egress_to is not None:
|
109
|
+
pulumi.set(__self__, "egress_to", egress_to)
|
110
|
+
if perimeter is not None:
|
111
|
+
pulumi.set(__self__, "perimeter", perimeter)
|
112
|
+
|
113
|
+
@property
|
114
|
+
@pulumi.getter(name="egressFrom")
|
115
|
+
def egress_from(self) -> Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromArgs']]:
|
116
|
+
"""
|
117
|
+
Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
118
|
+
Structure is documented below.
|
119
|
+
"""
|
120
|
+
return pulumi.get(self, "egress_from")
|
121
|
+
|
122
|
+
@egress_from.setter
|
123
|
+
def egress_from(self, value: Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromArgs']]):
|
124
|
+
pulumi.set(self, "egress_from", value)
|
125
|
+
|
126
|
+
@property
|
127
|
+
@pulumi.getter(name="egressTo")
|
128
|
+
def egress_to(self) -> Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToArgs']]:
|
129
|
+
"""
|
130
|
+
Defines the conditions on the `ApiOperation` and destination resources that
|
131
|
+
cause this `EgressPolicy` to apply.
|
132
|
+
Structure is documented below.
|
133
|
+
"""
|
134
|
+
return pulumi.get(self, "egress_to")
|
135
|
+
|
136
|
+
@egress_to.setter
|
137
|
+
def egress_to(self, value: Optional[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToArgs']]):
|
138
|
+
pulumi.set(self, "egress_to", value)
|
139
|
+
|
140
|
+
@property
|
141
|
+
@pulumi.getter
|
142
|
+
def perimeter(self) -> Optional[pulumi.Input[str]]:
|
143
|
+
"""
|
144
|
+
The name of the Service Perimeter to add this resource to.
|
145
|
+
|
146
|
+
|
147
|
+
- - -
|
148
|
+
"""
|
149
|
+
return pulumi.get(self, "perimeter")
|
150
|
+
|
151
|
+
@perimeter.setter
|
152
|
+
def perimeter(self, value: Optional[pulumi.Input[str]]):
|
153
|
+
pulumi.set(self, "perimeter", value)
|
154
|
+
|
155
|
+
|
156
|
+
class ServicePerimeterDryRunEgressPolicy(pulumi.CustomResource):
|
157
|
+
@overload
|
158
|
+
def __init__(__self__,
|
159
|
+
resource_name: str,
|
160
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
161
|
+
egress_from: Optional[pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressFromArgs', 'ServicePerimeterDryRunEgressPolicyEgressFromArgsDict']]] = None,
|
162
|
+
egress_to: Optional[pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressToArgs', 'ServicePerimeterDryRunEgressPolicyEgressToArgsDict']]] = None,
|
163
|
+
perimeter: Optional[pulumi.Input[str]] = None,
|
164
|
+
__props__=None):
|
165
|
+
"""
|
166
|
+
Manage a single EgressPolicy in the spec (dry-run) configuration for a service perimeter.
|
167
|
+
EgressPolicies match requests based on egressFrom and egressTo stanzas.
|
168
|
+
For an EgressPolicy to match, both egressFrom and egressTo stanzas must be matched.
|
169
|
+
If an EgressPolicy matches a request, the request is allowed to span the ServicePerimeter
|
170
|
+
boundary. For example, an EgressPolicy can be used to allow VMs on networks
|
171
|
+
within the ServicePerimeter to access a defined set of projects outside the
|
172
|
+
perimeter in certain contexts (e.g. to read data from a Cloud Storage bucket
|
173
|
+
or query against a BigQuery dataset).
|
174
|
+
|
175
|
+
> **Note:** By default, updates to this resource will remove the EgressPolicy from the
|
176
|
+
from the perimeter and add it back in a non-atomic manner. To ensure that the new EgressPolicy
|
177
|
+
is added before the old one is removed, add a `lifecycle` block with `create_before_destroy = true` to this resource.
|
178
|
+
|
179
|
+
To get more information about ServicePerimeterDryRunEgressPolicy, see:
|
180
|
+
|
181
|
+
* [API documentation](https://cloud.google.com/access-context-manager/docs/reference/rest/v1/accessPolicies.servicePerimeters#egresspolicy)
|
182
|
+
|
183
|
+
## Example Usage
|
184
|
+
|
185
|
+
:param str resource_name: The name of the resource.
|
186
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
187
|
+
:param pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressFromArgs', 'ServicePerimeterDryRunEgressPolicyEgressFromArgsDict']] egress_from: Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
188
|
+
Structure is documented below.
|
189
|
+
:param pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressToArgs', 'ServicePerimeterDryRunEgressPolicyEgressToArgsDict']] egress_to: Defines the conditions on the `ApiOperation` and destination resources that
|
190
|
+
cause this `EgressPolicy` to apply.
|
191
|
+
Structure is documented below.
|
192
|
+
:param pulumi.Input[str] perimeter: The name of the Service Perimeter to add this resource to.
|
193
|
+
|
194
|
+
|
195
|
+
- - -
|
196
|
+
"""
|
197
|
+
...
|
198
|
+
@overload
|
199
|
+
def __init__(__self__,
|
200
|
+
resource_name: str,
|
201
|
+
args: ServicePerimeterDryRunEgressPolicyArgs,
|
202
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
203
|
+
"""
|
204
|
+
Manage a single EgressPolicy in the spec (dry-run) configuration for a service perimeter.
|
205
|
+
EgressPolicies match requests based on egressFrom and egressTo stanzas.
|
206
|
+
For an EgressPolicy to match, both egressFrom and egressTo stanzas must be matched.
|
207
|
+
If an EgressPolicy matches a request, the request is allowed to span the ServicePerimeter
|
208
|
+
boundary. For example, an EgressPolicy can be used to allow VMs on networks
|
209
|
+
within the ServicePerimeter to access a defined set of projects outside the
|
210
|
+
perimeter in certain contexts (e.g. to read data from a Cloud Storage bucket
|
211
|
+
or query against a BigQuery dataset).
|
212
|
+
|
213
|
+
> **Note:** By default, updates to this resource will remove the EgressPolicy from the
|
214
|
+
from the perimeter and add it back in a non-atomic manner. To ensure that the new EgressPolicy
|
215
|
+
is added before the old one is removed, add a `lifecycle` block with `create_before_destroy = true` to this resource.
|
216
|
+
|
217
|
+
To get more information about ServicePerimeterDryRunEgressPolicy, see:
|
218
|
+
|
219
|
+
* [API documentation](https://cloud.google.com/access-context-manager/docs/reference/rest/v1/accessPolicies.servicePerimeters#egresspolicy)
|
220
|
+
|
221
|
+
## Example Usage
|
222
|
+
|
223
|
+
:param str resource_name: The name of the resource.
|
224
|
+
:param ServicePerimeterDryRunEgressPolicyArgs args: The arguments to use to populate this resource's properties.
|
225
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
226
|
+
"""
|
227
|
+
...
|
228
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
229
|
+
resource_args, opts = _utilities.get_resource_args_opts(ServicePerimeterDryRunEgressPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
|
230
|
+
if resource_args is not None:
|
231
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
232
|
+
else:
|
233
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
234
|
+
|
235
|
+
def _internal_init(__self__,
|
236
|
+
resource_name: str,
|
237
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
238
|
+
egress_from: Optional[pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressFromArgs', 'ServicePerimeterDryRunEgressPolicyEgressFromArgsDict']]] = None,
|
239
|
+
egress_to: Optional[pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressToArgs', 'ServicePerimeterDryRunEgressPolicyEgressToArgsDict']]] = None,
|
240
|
+
perimeter: Optional[pulumi.Input[str]] = None,
|
241
|
+
__props__=None):
|
242
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
243
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
244
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
245
|
+
if opts.id is None:
|
246
|
+
if __props__ is not None:
|
247
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
248
|
+
__props__ = ServicePerimeterDryRunEgressPolicyArgs.__new__(ServicePerimeterDryRunEgressPolicyArgs)
|
249
|
+
|
250
|
+
__props__.__dict__["egress_from"] = egress_from
|
251
|
+
__props__.__dict__["egress_to"] = egress_to
|
252
|
+
if perimeter is None and not opts.urn:
|
253
|
+
raise TypeError("Missing required property 'perimeter'")
|
254
|
+
__props__.__dict__["perimeter"] = perimeter
|
255
|
+
super(ServicePerimeterDryRunEgressPolicy, __self__).__init__(
|
256
|
+
'gcp:accesscontextmanager/servicePerimeterDryRunEgressPolicy:ServicePerimeterDryRunEgressPolicy',
|
257
|
+
resource_name,
|
258
|
+
__props__,
|
259
|
+
opts)
|
260
|
+
|
261
|
+
@staticmethod
|
262
|
+
def get(resource_name: str,
|
263
|
+
id: pulumi.Input[str],
|
264
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
265
|
+
egress_from: Optional[pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressFromArgs', 'ServicePerimeterDryRunEgressPolicyEgressFromArgsDict']]] = None,
|
266
|
+
egress_to: Optional[pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressToArgs', 'ServicePerimeterDryRunEgressPolicyEgressToArgsDict']]] = None,
|
267
|
+
perimeter: Optional[pulumi.Input[str]] = None) -> 'ServicePerimeterDryRunEgressPolicy':
|
268
|
+
"""
|
269
|
+
Get an existing ServicePerimeterDryRunEgressPolicy resource's state with the given name, id, and optional extra
|
270
|
+
properties used to qualify the lookup.
|
271
|
+
|
272
|
+
:param str resource_name: The unique name of the resulting resource.
|
273
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
274
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
275
|
+
:param pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressFromArgs', 'ServicePerimeterDryRunEgressPolicyEgressFromArgsDict']] egress_from: Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
276
|
+
Structure is documented below.
|
277
|
+
:param pulumi.Input[Union['ServicePerimeterDryRunEgressPolicyEgressToArgs', 'ServicePerimeterDryRunEgressPolicyEgressToArgsDict']] egress_to: Defines the conditions on the `ApiOperation` and destination resources that
|
278
|
+
cause this `EgressPolicy` to apply.
|
279
|
+
Structure is documented below.
|
280
|
+
:param pulumi.Input[str] perimeter: The name of the Service Perimeter to add this resource to.
|
281
|
+
|
282
|
+
|
283
|
+
- - -
|
284
|
+
"""
|
285
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
286
|
+
|
287
|
+
__props__ = _ServicePerimeterDryRunEgressPolicyState.__new__(_ServicePerimeterDryRunEgressPolicyState)
|
288
|
+
|
289
|
+
__props__.__dict__["egress_from"] = egress_from
|
290
|
+
__props__.__dict__["egress_to"] = egress_to
|
291
|
+
__props__.__dict__["perimeter"] = perimeter
|
292
|
+
return ServicePerimeterDryRunEgressPolicy(resource_name, opts=opts, __props__=__props__)
|
293
|
+
|
294
|
+
@property
|
295
|
+
@pulumi.getter(name="egressFrom")
|
296
|
+
def egress_from(self) -> pulumi.Output[Optional['outputs.ServicePerimeterDryRunEgressPolicyEgressFrom']]:
|
297
|
+
"""
|
298
|
+
Defines conditions on the source of a request causing this `EgressPolicy` to apply.
|
299
|
+
Structure is documented below.
|
300
|
+
"""
|
301
|
+
return pulumi.get(self, "egress_from")
|
302
|
+
|
303
|
+
@property
|
304
|
+
@pulumi.getter(name="egressTo")
|
305
|
+
def egress_to(self) -> pulumi.Output[Optional['outputs.ServicePerimeterDryRunEgressPolicyEgressTo']]:
|
306
|
+
"""
|
307
|
+
Defines the conditions on the `ApiOperation` and destination resources that
|
308
|
+
cause this `EgressPolicy` to apply.
|
309
|
+
Structure is documented below.
|
310
|
+
"""
|
311
|
+
return pulumi.get(self, "egress_to")
|
312
|
+
|
313
|
+
@property
|
314
|
+
@pulumi.getter
|
315
|
+
def perimeter(self) -> pulumi.Output[str]:
|
316
|
+
"""
|
317
|
+
The name of the Service Perimeter to add this resource to.
|
318
|
+
|
319
|
+
|
320
|
+
- - -
|
321
|
+
"""
|
322
|
+
return pulumi.get(self, "perimeter")
|
323
|
+
|
@@ -0,0 +1,332 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import copy
|
6
|
+
import warnings
|
7
|
+
import sys
|
8
|
+
import pulumi
|
9
|
+
import pulumi.runtime
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
11
|
+
if sys.version_info >= (3, 11):
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
13
|
+
else:
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
15
|
+
from .. import _utilities
|
16
|
+
from . import outputs
|
17
|
+
from ._inputs import *
|
18
|
+
|
19
|
+
__all__ = ['ServicePerimeterDryRunIngressPolicyArgs', 'ServicePerimeterDryRunIngressPolicy']
|
20
|
+
|
21
|
+
@pulumi.input_type
|
22
|
+
class ServicePerimeterDryRunIngressPolicyArgs:
|
23
|
+
def __init__(__self__, *,
|
24
|
+
perimeter: pulumi.Input[str],
|
25
|
+
ingress_from: Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromArgs']] = None,
|
26
|
+
ingress_to: Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToArgs']] = None):
|
27
|
+
"""
|
28
|
+
The set of arguments for constructing a ServicePerimeterDryRunIngressPolicy resource.
|
29
|
+
:param pulumi.Input[str] perimeter: The name of the Service Perimeter to add this resource to.
|
30
|
+
|
31
|
+
|
32
|
+
- - -
|
33
|
+
:param pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromArgs'] ingress_from: Defines the conditions on the source of a request causing this `IngressPolicy`
|
34
|
+
to apply.
|
35
|
+
Structure is documented below.
|
36
|
+
:param pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToArgs'] ingress_to: Defines the conditions on the `ApiOperation` and request destination that cause
|
37
|
+
this `IngressPolicy` to apply.
|
38
|
+
Structure is documented below.
|
39
|
+
"""
|
40
|
+
pulumi.set(__self__, "perimeter", perimeter)
|
41
|
+
if ingress_from is not None:
|
42
|
+
pulumi.set(__self__, "ingress_from", ingress_from)
|
43
|
+
if ingress_to is not None:
|
44
|
+
pulumi.set(__self__, "ingress_to", ingress_to)
|
45
|
+
|
46
|
+
@property
|
47
|
+
@pulumi.getter
|
48
|
+
def perimeter(self) -> pulumi.Input[str]:
|
49
|
+
"""
|
50
|
+
The name of the Service Perimeter to add this resource to.
|
51
|
+
|
52
|
+
|
53
|
+
- - -
|
54
|
+
"""
|
55
|
+
return pulumi.get(self, "perimeter")
|
56
|
+
|
57
|
+
@perimeter.setter
|
58
|
+
def perimeter(self, value: pulumi.Input[str]):
|
59
|
+
pulumi.set(self, "perimeter", value)
|
60
|
+
|
61
|
+
@property
|
62
|
+
@pulumi.getter(name="ingressFrom")
|
63
|
+
def ingress_from(self) -> Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromArgs']]:
|
64
|
+
"""
|
65
|
+
Defines the conditions on the source of a request causing this `IngressPolicy`
|
66
|
+
to apply.
|
67
|
+
Structure is documented below.
|
68
|
+
"""
|
69
|
+
return pulumi.get(self, "ingress_from")
|
70
|
+
|
71
|
+
@ingress_from.setter
|
72
|
+
def ingress_from(self, value: Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromArgs']]):
|
73
|
+
pulumi.set(self, "ingress_from", value)
|
74
|
+
|
75
|
+
@property
|
76
|
+
@pulumi.getter(name="ingressTo")
|
77
|
+
def ingress_to(self) -> Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToArgs']]:
|
78
|
+
"""
|
79
|
+
Defines the conditions on the `ApiOperation` and request destination that cause
|
80
|
+
this `IngressPolicy` to apply.
|
81
|
+
Structure is documented below.
|
82
|
+
"""
|
83
|
+
return pulumi.get(self, "ingress_to")
|
84
|
+
|
85
|
+
@ingress_to.setter
|
86
|
+
def ingress_to(self, value: Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToArgs']]):
|
87
|
+
pulumi.set(self, "ingress_to", value)
|
88
|
+
|
89
|
+
|
90
|
+
@pulumi.input_type
|
91
|
+
class _ServicePerimeterDryRunIngressPolicyState:
|
92
|
+
def __init__(__self__, *,
|
93
|
+
ingress_from: Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromArgs']] = None,
|
94
|
+
ingress_to: Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToArgs']] = None,
|
95
|
+
perimeter: Optional[pulumi.Input[str]] = None):
|
96
|
+
"""
|
97
|
+
Input properties used for looking up and filtering ServicePerimeterDryRunIngressPolicy resources.
|
98
|
+
:param pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromArgs'] ingress_from: Defines the conditions on the source of a request causing this `IngressPolicy`
|
99
|
+
to apply.
|
100
|
+
Structure is documented below.
|
101
|
+
:param pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToArgs'] ingress_to: Defines the conditions on the `ApiOperation` and request destination that cause
|
102
|
+
this `IngressPolicy` to apply.
|
103
|
+
Structure is documented below.
|
104
|
+
:param pulumi.Input[str] perimeter: The name of the Service Perimeter to add this resource to.
|
105
|
+
|
106
|
+
|
107
|
+
- - -
|
108
|
+
"""
|
109
|
+
if ingress_from is not None:
|
110
|
+
pulumi.set(__self__, "ingress_from", ingress_from)
|
111
|
+
if ingress_to is not None:
|
112
|
+
pulumi.set(__self__, "ingress_to", ingress_to)
|
113
|
+
if perimeter is not None:
|
114
|
+
pulumi.set(__self__, "perimeter", perimeter)
|
115
|
+
|
116
|
+
@property
|
117
|
+
@pulumi.getter(name="ingressFrom")
|
118
|
+
def ingress_from(self) -> Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromArgs']]:
|
119
|
+
"""
|
120
|
+
Defines the conditions on the source of a request causing this `IngressPolicy`
|
121
|
+
to apply.
|
122
|
+
Structure is documented below.
|
123
|
+
"""
|
124
|
+
return pulumi.get(self, "ingress_from")
|
125
|
+
|
126
|
+
@ingress_from.setter
|
127
|
+
def ingress_from(self, value: Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromArgs']]):
|
128
|
+
pulumi.set(self, "ingress_from", value)
|
129
|
+
|
130
|
+
@property
|
131
|
+
@pulumi.getter(name="ingressTo")
|
132
|
+
def ingress_to(self) -> Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToArgs']]:
|
133
|
+
"""
|
134
|
+
Defines the conditions on the `ApiOperation` and request destination that cause
|
135
|
+
this `IngressPolicy` to apply.
|
136
|
+
Structure is documented below.
|
137
|
+
"""
|
138
|
+
return pulumi.get(self, "ingress_to")
|
139
|
+
|
140
|
+
@ingress_to.setter
|
141
|
+
def ingress_to(self, value: Optional[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToArgs']]):
|
142
|
+
pulumi.set(self, "ingress_to", value)
|
143
|
+
|
144
|
+
@property
|
145
|
+
@pulumi.getter
|
146
|
+
def perimeter(self) -> Optional[pulumi.Input[str]]:
|
147
|
+
"""
|
148
|
+
The name of the Service Perimeter to add this resource to.
|
149
|
+
|
150
|
+
|
151
|
+
- - -
|
152
|
+
"""
|
153
|
+
return pulumi.get(self, "perimeter")
|
154
|
+
|
155
|
+
@perimeter.setter
|
156
|
+
def perimeter(self, value: Optional[pulumi.Input[str]]):
|
157
|
+
pulumi.set(self, "perimeter", value)
|
158
|
+
|
159
|
+
|
160
|
+
class ServicePerimeterDryRunIngressPolicy(pulumi.CustomResource):
|
161
|
+
@overload
|
162
|
+
def __init__(__self__,
|
163
|
+
resource_name: str,
|
164
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
165
|
+
ingress_from: Optional[pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressFromArgs', 'ServicePerimeterDryRunIngressPolicyIngressFromArgsDict']]] = None,
|
166
|
+
ingress_to: Optional[pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressToArgs', 'ServicePerimeterDryRunIngressPolicyIngressToArgsDict']]] = None,
|
167
|
+
perimeter: Optional[pulumi.Input[str]] = None,
|
168
|
+
__props__=None):
|
169
|
+
"""
|
170
|
+
Manage a single IngressPolicy in the spec (dry-run) configuration for a service perimeter.
|
171
|
+
IngressPolicies match requests based on ingressFrom and ingressTo stanzas. For an ingress policy to match,
|
172
|
+
both the ingressFrom and ingressTo stanzas must be matched. If an IngressPolicy matches a request,
|
173
|
+
the request is allowed through the perimeter boundary from outside the perimeter.
|
174
|
+
For example, access from the internet can be allowed either based on an AccessLevel or,
|
175
|
+
for traffic hosted on Google Cloud, the project of the source network.
|
176
|
+
For access from private networks, using the project of the hosting network is required.
|
177
|
+
Individual ingress policies can be limited by restricting which services and/
|
178
|
+
or actions they match using the ingressTo field.
|
179
|
+
|
180
|
+
> **Note:** By default, updates to this resource will remove the IngressPolicy from the
|
181
|
+
from the perimeter and add it back in a non-atomic manner. To ensure that the new IngressPolicy
|
182
|
+
is added before the old one is removed, add a `lifecycle` block with `create_before_destroy = true` to this resource.
|
183
|
+
|
184
|
+
To get more information about ServicePerimeterDryRunIngressPolicy, see:
|
185
|
+
|
186
|
+
* [API documentation](https://cloud.google.com/access-context-manager/docs/reference/rest/v1/accessPolicies.servicePerimeters#ingresspolicy)
|
187
|
+
|
188
|
+
## Example Usage
|
189
|
+
|
190
|
+
:param str resource_name: The name of the resource.
|
191
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
192
|
+
:param pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressFromArgs', 'ServicePerimeterDryRunIngressPolicyIngressFromArgsDict']] ingress_from: Defines the conditions on the source of a request causing this `IngressPolicy`
|
193
|
+
to apply.
|
194
|
+
Structure is documented below.
|
195
|
+
:param pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressToArgs', 'ServicePerimeterDryRunIngressPolicyIngressToArgsDict']] ingress_to: Defines the conditions on the `ApiOperation` and request destination that cause
|
196
|
+
this `IngressPolicy` to apply.
|
197
|
+
Structure is documented below.
|
198
|
+
:param pulumi.Input[str] perimeter: The name of the Service Perimeter to add this resource to.
|
199
|
+
|
200
|
+
|
201
|
+
- - -
|
202
|
+
"""
|
203
|
+
...
|
204
|
+
@overload
|
205
|
+
def __init__(__self__,
|
206
|
+
resource_name: str,
|
207
|
+
args: ServicePerimeterDryRunIngressPolicyArgs,
|
208
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
209
|
+
"""
|
210
|
+
Manage a single IngressPolicy in the spec (dry-run) configuration for a service perimeter.
|
211
|
+
IngressPolicies match requests based on ingressFrom and ingressTo stanzas. For an ingress policy to match,
|
212
|
+
both the ingressFrom and ingressTo stanzas must be matched. If an IngressPolicy matches a request,
|
213
|
+
the request is allowed through the perimeter boundary from outside the perimeter.
|
214
|
+
For example, access from the internet can be allowed either based on an AccessLevel or,
|
215
|
+
for traffic hosted on Google Cloud, the project of the source network.
|
216
|
+
For access from private networks, using the project of the hosting network is required.
|
217
|
+
Individual ingress policies can be limited by restricting which services and/
|
218
|
+
or actions they match using the ingressTo field.
|
219
|
+
|
220
|
+
> **Note:** By default, updates to this resource will remove the IngressPolicy from the
|
221
|
+
from the perimeter and add it back in a non-atomic manner. To ensure that the new IngressPolicy
|
222
|
+
is added before the old one is removed, add a `lifecycle` block with `create_before_destroy = true` to this resource.
|
223
|
+
|
224
|
+
To get more information about ServicePerimeterDryRunIngressPolicy, see:
|
225
|
+
|
226
|
+
* [API documentation](https://cloud.google.com/access-context-manager/docs/reference/rest/v1/accessPolicies.servicePerimeters#ingresspolicy)
|
227
|
+
|
228
|
+
## Example Usage
|
229
|
+
|
230
|
+
:param str resource_name: The name of the resource.
|
231
|
+
:param ServicePerimeterDryRunIngressPolicyArgs args: The arguments to use to populate this resource's properties.
|
232
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
233
|
+
"""
|
234
|
+
...
|
235
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
236
|
+
resource_args, opts = _utilities.get_resource_args_opts(ServicePerimeterDryRunIngressPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
|
237
|
+
if resource_args is not None:
|
238
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
239
|
+
else:
|
240
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
241
|
+
|
242
|
+
def _internal_init(__self__,
|
243
|
+
resource_name: str,
|
244
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
245
|
+
ingress_from: Optional[pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressFromArgs', 'ServicePerimeterDryRunIngressPolicyIngressFromArgsDict']]] = None,
|
246
|
+
ingress_to: Optional[pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressToArgs', 'ServicePerimeterDryRunIngressPolicyIngressToArgsDict']]] = None,
|
247
|
+
perimeter: Optional[pulumi.Input[str]] = None,
|
248
|
+
__props__=None):
|
249
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
250
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
251
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
252
|
+
if opts.id is None:
|
253
|
+
if __props__ is not None:
|
254
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
255
|
+
__props__ = ServicePerimeterDryRunIngressPolicyArgs.__new__(ServicePerimeterDryRunIngressPolicyArgs)
|
256
|
+
|
257
|
+
__props__.__dict__["ingress_from"] = ingress_from
|
258
|
+
__props__.__dict__["ingress_to"] = ingress_to
|
259
|
+
if perimeter is None and not opts.urn:
|
260
|
+
raise TypeError("Missing required property 'perimeter'")
|
261
|
+
__props__.__dict__["perimeter"] = perimeter
|
262
|
+
super(ServicePerimeterDryRunIngressPolicy, __self__).__init__(
|
263
|
+
'gcp:accesscontextmanager/servicePerimeterDryRunIngressPolicy:ServicePerimeterDryRunIngressPolicy',
|
264
|
+
resource_name,
|
265
|
+
__props__,
|
266
|
+
opts)
|
267
|
+
|
268
|
+
@staticmethod
|
269
|
+
def get(resource_name: str,
|
270
|
+
id: pulumi.Input[str],
|
271
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
272
|
+
ingress_from: Optional[pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressFromArgs', 'ServicePerimeterDryRunIngressPolicyIngressFromArgsDict']]] = None,
|
273
|
+
ingress_to: Optional[pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressToArgs', 'ServicePerimeterDryRunIngressPolicyIngressToArgsDict']]] = None,
|
274
|
+
perimeter: Optional[pulumi.Input[str]] = None) -> 'ServicePerimeterDryRunIngressPolicy':
|
275
|
+
"""
|
276
|
+
Get an existing ServicePerimeterDryRunIngressPolicy resource's state with the given name, id, and optional extra
|
277
|
+
properties used to qualify the lookup.
|
278
|
+
|
279
|
+
:param str resource_name: The unique name of the resulting resource.
|
280
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
281
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
282
|
+
:param pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressFromArgs', 'ServicePerimeterDryRunIngressPolicyIngressFromArgsDict']] ingress_from: Defines the conditions on the source of a request causing this `IngressPolicy`
|
283
|
+
to apply.
|
284
|
+
Structure is documented below.
|
285
|
+
:param pulumi.Input[Union['ServicePerimeterDryRunIngressPolicyIngressToArgs', 'ServicePerimeterDryRunIngressPolicyIngressToArgsDict']] ingress_to: Defines the conditions on the `ApiOperation` and request destination that cause
|
286
|
+
this `IngressPolicy` to apply.
|
287
|
+
Structure is documented below.
|
288
|
+
:param pulumi.Input[str] perimeter: The name of the Service Perimeter to add this resource to.
|
289
|
+
|
290
|
+
|
291
|
+
- - -
|
292
|
+
"""
|
293
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
294
|
+
|
295
|
+
__props__ = _ServicePerimeterDryRunIngressPolicyState.__new__(_ServicePerimeterDryRunIngressPolicyState)
|
296
|
+
|
297
|
+
__props__.__dict__["ingress_from"] = ingress_from
|
298
|
+
__props__.__dict__["ingress_to"] = ingress_to
|
299
|
+
__props__.__dict__["perimeter"] = perimeter
|
300
|
+
return ServicePerimeterDryRunIngressPolicy(resource_name, opts=opts, __props__=__props__)
|
301
|
+
|
302
|
+
@property
|
303
|
+
@pulumi.getter(name="ingressFrom")
|
304
|
+
def ingress_from(self) -> pulumi.Output[Optional['outputs.ServicePerimeterDryRunIngressPolicyIngressFrom']]:
|
305
|
+
"""
|
306
|
+
Defines the conditions on the source of a request causing this `IngressPolicy`
|
307
|
+
to apply.
|
308
|
+
Structure is documented below.
|
309
|
+
"""
|
310
|
+
return pulumi.get(self, "ingress_from")
|
311
|
+
|
312
|
+
@property
|
313
|
+
@pulumi.getter(name="ingressTo")
|
314
|
+
def ingress_to(self) -> pulumi.Output[Optional['outputs.ServicePerimeterDryRunIngressPolicyIngressTo']]:
|
315
|
+
"""
|
316
|
+
Defines the conditions on the `ApiOperation` and request destination that cause
|
317
|
+
this `IngressPolicy` to apply.
|
318
|
+
Structure is documented below.
|
319
|
+
"""
|
320
|
+
return pulumi.get(self, "ingress_to")
|
321
|
+
|
322
|
+
@property
|
323
|
+
@pulumi.getter
|
324
|
+
def perimeter(self) -> pulumi.Output[str]:
|
325
|
+
"""
|
326
|
+
The name of the Service Perimeter to add this resource to.
|
327
|
+
|
328
|
+
|
329
|
+
- - -
|
330
|
+
"""
|
331
|
+
return pulumi.get(self, "perimeter")
|
332
|
+
|