pulumi-gcp 7.36.0a1723456487__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.
Files changed (53) hide show
  1. pulumi_gcp/__init__.py +72 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +2 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +780 -0
  4. pulumi_gcp/accesscontextmanager/outputs.py +601 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +323 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +332 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +2 -24
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +2 -24
  9. pulumi_gcp/applicationintegration/client.py +2 -2
  10. pulumi_gcp/clouddeploy/_inputs.py +21 -1
  11. pulumi_gcp/clouddeploy/outputs.py +15 -1
  12. pulumi_gcp/cloudrunv2/_inputs.py +40 -0
  13. pulumi_gcp/cloudrunv2/outputs.py +46 -0
  14. pulumi_gcp/compute/region_target_https_proxy.py +28 -0
  15. pulumi_gcp/container/_inputs.py +26 -0
  16. pulumi_gcp/container/outputs.py +29 -0
  17. pulumi_gcp/dataform/repository.py +80 -2
  18. pulumi_gcp/discoveryengine/data_store.py +93 -2
  19. pulumi_gcp/gkehub/_inputs.py +63 -0
  20. pulumi_gcp/gkehub/outputs.py +38 -0
  21. pulumi_gcp/logging/get_log_view_iam_policy.py +28 -2
  22. pulumi_gcp/logging/log_view_iam_binding.py +512 -0
  23. pulumi_gcp/logging/log_view_iam_member.py +512 -0
  24. pulumi_gcp/logging/log_view_iam_policy.py +512 -0
  25. pulumi_gcp/netapp/_inputs.py +6 -6
  26. pulumi_gcp/netapp/outputs.py +4 -4
  27. pulumi_gcp/networkconnectivity/regional_endpoint.py +6 -6
  28. pulumi_gcp/organizations/get_project.py +11 -1
  29. pulumi_gcp/organizations/project.py +76 -21
  30. pulumi_gcp/pulumi-plugin.json +1 -1
  31. pulumi_gcp/securitycenter/__init__.py +8 -0
  32. pulumi_gcp/securitycenter/_inputs.py +191 -0
  33. pulumi_gcp/securitycenter/get_v2_organization_source_iam_policy.py +146 -0
  34. pulumi_gcp/securitycenter/outputs.py +115 -0
  35. pulumi_gcp/securitycenter/v2_folder_mute_config.py +679 -0
  36. pulumi_gcp/securitycenter/v2_organization_source.py +416 -0
  37. pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +722 -0
  38. pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +722 -0
  39. pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +561 -0
  40. pulumi_gcp/securitycenter/v2_project_mute_config.py +684 -0
  41. pulumi_gcp/securitycenter/v2_project_notification_config.py +559 -0
  42. pulumi_gcp/spanner/instance.py +0 -7
  43. pulumi_gcp/sql/_inputs.py +3 -3
  44. pulumi_gcp/sql/outputs.py +6 -6
  45. pulumi_gcp/storage/bucket_object.py +28 -0
  46. pulumi_gcp/storage/get_bucket_object.py +14 -1
  47. pulumi_gcp/storage/get_bucket_object_content.py +11 -1
  48. pulumi_gcp/storage/managed_folder.py +72 -2
  49. pulumi_gcp/vmwareengine/network_policy.py +6 -6
  50. {pulumi_gcp-7.36.0a1723456487.dist-info → pulumi_gcp-7.37.0.dist-info}/METADATA +1 -1
  51. {pulumi_gcp-7.36.0a1723456487.dist-info → pulumi_gcp-7.37.0.dist-info}/RECORD +53 -43
  52. {pulumi_gcp-7.36.0a1723456487.dist-info → pulumi_gcp-7.37.0.dist-info}/WHEEL +1 -1
  53. {pulumi_gcp-7.36.0a1723456487.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
+