pulumi-gcp 8.3.1a1727284265__py3-none-any.whl → 8.4.0a1727795436__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 (49) hide show
  1. pulumi_gcp/__init__.py +24 -0
  2. pulumi_gcp/apigee/nat_address.py +155 -2
  3. pulumi_gcp/bigquery/_inputs.py +102 -0
  4. pulumi_gcp/bigquery/outputs.py +83 -0
  5. pulumi_gcp/bigquery/table.py +47 -0
  6. pulumi_gcp/cloudrun/_inputs.py +26 -0
  7. pulumi_gcp/cloudrun/outputs.py +33 -0
  8. pulumi_gcp/cloudrun/service.py +76 -0
  9. pulumi_gcp/cloudrunv2/_inputs.py +65 -9
  10. pulumi_gcp/cloudrunv2/outputs.py +73 -8
  11. pulumi_gcp/cloudrunv2/service.py +64 -0
  12. pulumi_gcp/compute/__init__.py +3 -0
  13. pulumi_gcp/compute/_inputs.py +1941 -2
  14. pulumi_gcp/compute/get_region_instance_group_manager.py +438 -0
  15. pulumi_gcp/compute/get_router_nat.py +11 -1
  16. pulumi_gcp/compute/instance.py +7 -7
  17. pulumi_gcp/compute/instance_from_machine_image.py +7 -7
  18. pulumi_gcp/compute/instance_from_template.py +7 -7
  19. pulumi_gcp/compute/interconnect.py +76 -64
  20. pulumi_gcp/compute/outputs.py +4637 -2640
  21. pulumi_gcp/compute/region_commitment.py +47 -0
  22. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +835 -0
  23. pulumi_gcp/compute/router_nat.py +56 -2
  24. pulumi_gcp/compute/router_nat_address.py +514 -0
  25. pulumi_gcp/compute/subnetwork.py +14 -14
  26. pulumi_gcp/container/_inputs.py +222 -0
  27. pulumi_gcp/container/outputs.py +279 -2
  28. pulumi_gcp/logging/__init__.py +1 -0
  29. pulumi_gcp/logging/log_scope.py +492 -0
  30. pulumi_gcp/looker/_inputs.py +157 -0
  31. pulumi_gcp/looker/instance.py +143 -0
  32. pulumi_gcp/looker/outputs.py +136 -0
  33. pulumi_gcp/networkconnectivity/_inputs.py +72 -3
  34. pulumi_gcp/networkconnectivity/outputs.py +51 -3
  35. pulumi_gcp/networkconnectivity/spoke.py +310 -0
  36. pulumi_gcp/networksecurity/security_profile.py +2 -2
  37. pulumi_gcp/privilegedaccessmanager/__init__.py +1 -0
  38. pulumi_gcp/privilegedaccessmanager/get_entitlement.py +219 -0
  39. pulumi_gcp/privilegedaccessmanager/outputs.py +312 -0
  40. pulumi_gcp/pulumi-plugin.json +1 -1
  41. pulumi_gcp/secretmanager/__init__.py +2 -0
  42. pulumi_gcp/secretmanager/get_regional_secret_version.py +2 -2
  43. pulumi_gcp/secretmanager/get_regional_secret_version_access.py +188 -0
  44. pulumi_gcp/secretmanager/get_regional_secrets.py +156 -0
  45. pulumi_gcp/secretmanager/outputs.py +265 -0
  46. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/METADATA +1 -1
  47. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/RECORD +49 -42
  48. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/WHEEL +0 -0
  49. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,835 @@
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__ = ['RegionNetworkFirewallPolicyWithRulesArgs', 'RegionNetworkFirewallPolicyWithRules']
20
+
21
+ @pulumi.input_type
22
+ class RegionNetworkFirewallPolicyWithRulesArgs:
23
+ def __init__(__self__, *,
24
+ rules: pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleArgs']]],
25
+ description: Optional[pulumi.Input[str]] = None,
26
+ name: Optional[pulumi.Input[str]] = None,
27
+ project: Optional[pulumi.Input[str]] = None,
28
+ region: Optional[pulumi.Input[str]] = None):
29
+ """
30
+ The set of arguments for constructing a RegionNetworkFirewallPolicyWithRules resource.
31
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleArgs']]] rules: A list of firewall policy rules.
32
+ Structure is documented below.
33
+ :param pulumi.Input[str] description: (Output)
34
+ A description of the rule.
35
+ :param pulumi.Input[str] name: User-provided name of the Network firewall policy.
36
+ The name should be unique in the project in which the firewall policy is created.
37
+ The name must be 1-63 characters long, and comply with RFC1035. Specifically,
38
+ the name must be 1-63 characters long and match the regular expression a-z?
39
+ which means the first character must be a lowercase letter, and all following characters must be a dash,
40
+ lowercase letter, or digit, except the last character, which cannot be a dash.
41
+ :param pulumi.Input[str] region: The region of this resource.
42
+ """
43
+ pulumi.set(__self__, "rules", rules)
44
+ if description is not None:
45
+ pulumi.set(__self__, "description", description)
46
+ if name is not None:
47
+ pulumi.set(__self__, "name", name)
48
+ if project is not None:
49
+ pulumi.set(__self__, "project", project)
50
+ if region is not None:
51
+ pulumi.set(__self__, "region", region)
52
+
53
+ @property
54
+ @pulumi.getter
55
+ def rules(self) -> pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleArgs']]]:
56
+ """
57
+ A list of firewall policy rules.
58
+ Structure is documented below.
59
+ """
60
+ return pulumi.get(self, "rules")
61
+
62
+ @rules.setter
63
+ def rules(self, value: pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleArgs']]]):
64
+ pulumi.set(self, "rules", value)
65
+
66
+ @property
67
+ @pulumi.getter
68
+ def description(self) -> Optional[pulumi.Input[str]]:
69
+ """
70
+ (Output)
71
+ A description of the rule.
72
+ """
73
+ return pulumi.get(self, "description")
74
+
75
+ @description.setter
76
+ def description(self, value: Optional[pulumi.Input[str]]):
77
+ pulumi.set(self, "description", value)
78
+
79
+ @property
80
+ @pulumi.getter
81
+ def name(self) -> Optional[pulumi.Input[str]]:
82
+ """
83
+ User-provided name of the Network firewall policy.
84
+ The name should be unique in the project in which the firewall policy is created.
85
+ The name must be 1-63 characters long, and comply with RFC1035. Specifically,
86
+ the name must be 1-63 characters long and match the regular expression a-z?
87
+ which means the first character must be a lowercase letter, and all following characters must be a dash,
88
+ lowercase letter, or digit, except the last character, which cannot be a dash.
89
+ """
90
+ return pulumi.get(self, "name")
91
+
92
+ @name.setter
93
+ def name(self, value: Optional[pulumi.Input[str]]):
94
+ pulumi.set(self, "name", value)
95
+
96
+ @property
97
+ @pulumi.getter
98
+ def project(self) -> Optional[pulumi.Input[str]]:
99
+ return pulumi.get(self, "project")
100
+
101
+ @project.setter
102
+ def project(self, value: Optional[pulumi.Input[str]]):
103
+ pulumi.set(self, "project", value)
104
+
105
+ @property
106
+ @pulumi.getter
107
+ def region(self) -> Optional[pulumi.Input[str]]:
108
+ """
109
+ The region of this resource.
110
+ """
111
+ return pulumi.get(self, "region")
112
+
113
+ @region.setter
114
+ def region(self, value: Optional[pulumi.Input[str]]):
115
+ pulumi.set(self, "region", value)
116
+
117
+
118
+ @pulumi.input_type
119
+ class _RegionNetworkFirewallPolicyWithRulesState:
120
+ def __init__(__self__, *,
121
+ creation_timestamp: Optional[pulumi.Input[str]] = None,
122
+ description: Optional[pulumi.Input[str]] = None,
123
+ fingerprint: Optional[pulumi.Input[str]] = None,
124
+ name: Optional[pulumi.Input[str]] = None,
125
+ network_firewall_policy_id: Optional[pulumi.Input[str]] = None,
126
+ predefined_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgs']]]] = None,
127
+ project: Optional[pulumi.Input[str]] = None,
128
+ region: Optional[pulumi.Input[str]] = None,
129
+ rule_tuple_count: Optional[pulumi.Input[int]] = None,
130
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleArgs']]]] = None,
131
+ self_link: Optional[pulumi.Input[str]] = None,
132
+ self_link_with_id: Optional[pulumi.Input[str]] = None):
133
+ """
134
+ Input properties used for looking up and filtering RegionNetworkFirewallPolicyWithRules resources.
135
+ :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
136
+ :param pulumi.Input[str] description: (Output)
137
+ A description of the rule.
138
+ :param pulumi.Input[str] fingerprint: Fingerprint of the resource. This field is used internally during updates of this resource.
139
+ :param pulumi.Input[str] name: User-provided name of the Network firewall policy.
140
+ The name should be unique in the project in which the firewall policy is created.
141
+ The name must be 1-63 characters long, and comply with RFC1035. Specifically,
142
+ the name must be 1-63 characters long and match the regular expression a-z?
143
+ which means the first character must be a lowercase letter, and all following characters must be a dash,
144
+ lowercase letter, or digit, except the last character, which cannot be a dash.
145
+ :param pulumi.Input[str] network_firewall_policy_id: The unique identifier for the resource. This identifier is defined by the server.
146
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgs']]] predefined_rules: A list of firewall policy pre-defined rules.
147
+ Structure is documented below.
148
+ :param pulumi.Input[str] region: The region of this resource.
149
+ :param pulumi.Input[int] rule_tuple_count: Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.
150
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleArgs']]] rules: A list of firewall policy rules.
151
+ Structure is documented below.
152
+ :param pulumi.Input[str] self_link: Server-defined URL for the resource.
153
+ :param pulumi.Input[str] self_link_with_id: Server-defined URL for this resource with the resource id.
154
+ """
155
+ if creation_timestamp is not None:
156
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
157
+ if description is not None:
158
+ pulumi.set(__self__, "description", description)
159
+ if fingerprint is not None:
160
+ pulumi.set(__self__, "fingerprint", fingerprint)
161
+ if name is not None:
162
+ pulumi.set(__self__, "name", name)
163
+ if network_firewall_policy_id is not None:
164
+ pulumi.set(__self__, "network_firewall_policy_id", network_firewall_policy_id)
165
+ if predefined_rules is not None:
166
+ pulumi.set(__self__, "predefined_rules", predefined_rules)
167
+ if project is not None:
168
+ pulumi.set(__self__, "project", project)
169
+ if region is not None:
170
+ pulumi.set(__self__, "region", region)
171
+ if rule_tuple_count is not None:
172
+ pulumi.set(__self__, "rule_tuple_count", rule_tuple_count)
173
+ if rules is not None:
174
+ pulumi.set(__self__, "rules", rules)
175
+ if self_link is not None:
176
+ pulumi.set(__self__, "self_link", self_link)
177
+ if self_link_with_id is not None:
178
+ pulumi.set(__self__, "self_link_with_id", self_link_with_id)
179
+
180
+ @property
181
+ @pulumi.getter(name="creationTimestamp")
182
+ def creation_timestamp(self) -> Optional[pulumi.Input[str]]:
183
+ """
184
+ Creation timestamp in RFC3339 text format.
185
+ """
186
+ return pulumi.get(self, "creation_timestamp")
187
+
188
+ @creation_timestamp.setter
189
+ def creation_timestamp(self, value: Optional[pulumi.Input[str]]):
190
+ pulumi.set(self, "creation_timestamp", value)
191
+
192
+ @property
193
+ @pulumi.getter
194
+ def description(self) -> Optional[pulumi.Input[str]]:
195
+ """
196
+ (Output)
197
+ A description of the rule.
198
+ """
199
+ return pulumi.get(self, "description")
200
+
201
+ @description.setter
202
+ def description(self, value: Optional[pulumi.Input[str]]):
203
+ pulumi.set(self, "description", value)
204
+
205
+ @property
206
+ @pulumi.getter
207
+ def fingerprint(self) -> Optional[pulumi.Input[str]]:
208
+ """
209
+ Fingerprint of the resource. This field is used internally during updates of this resource.
210
+ """
211
+ return pulumi.get(self, "fingerprint")
212
+
213
+ @fingerprint.setter
214
+ def fingerprint(self, value: Optional[pulumi.Input[str]]):
215
+ pulumi.set(self, "fingerprint", value)
216
+
217
+ @property
218
+ @pulumi.getter
219
+ def name(self) -> Optional[pulumi.Input[str]]:
220
+ """
221
+ User-provided name of the Network firewall policy.
222
+ The name should be unique in the project in which the firewall policy is created.
223
+ The name must be 1-63 characters long, and comply with RFC1035. Specifically,
224
+ the name must be 1-63 characters long and match the regular expression a-z?
225
+ which means the first character must be a lowercase letter, and all following characters must be a dash,
226
+ lowercase letter, or digit, except the last character, which cannot be a dash.
227
+ """
228
+ return pulumi.get(self, "name")
229
+
230
+ @name.setter
231
+ def name(self, value: Optional[pulumi.Input[str]]):
232
+ pulumi.set(self, "name", value)
233
+
234
+ @property
235
+ @pulumi.getter(name="networkFirewallPolicyId")
236
+ def network_firewall_policy_id(self) -> Optional[pulumi.Input[str]]:
237
+ """
238
+ The unique identifier for the resource. This identifier is defined by the server.
239
+ """
240
+ return pulumi.get(self, "network_firewall_policy_id")
241
+
242
+ @network_firewall_policy_id.setter
243
+ def network_firewall_policy_id(self, value: Optional[pulumi.Input[str]]):
244
+ pulumi.set(self, "network_firewall_policy_id", value)
245
+
246
+ @property
247
+ @pulumi.getter(name="predefinedRules")
248
+ def predefined_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgs']]]]:
249
+ """
250
+ A list of firewall policy pre-defined rules.
251
+ Structure is documented below.
252
+ """
253
+ return pulumi.get(self, "predefined_rules")
254
+
255
+ @predefined_rules.setter
256
+ def predefined_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgs']]]]):
257
+ pulumi.set(self, "predefined_rules", value)
258
+
259
+ @property
260
+ @pulumi.getter
261
+ def project(self) -> Optional[pulumi.Input[str]]:
262
+ return pulumi.get(self, "project")
263
+
264
+ @project.setter
265
+ def project(self, value: Optional[pulumi.Input[str]]):
266
+ pulumi.set(self, "project", value)
267
+
268
+ @property
269
+ @pulumi.getter
270
+ def region(self) -> Optional[pulumi.Input[str]]:
271
+ """
272
+ The region of this resource.
273
+ """
274
+ return pulumi.get(self, "region")
275
+
276
+ @region.setter
277
+ def region(self, value: Optional[pulumi.Input[str]]):
278
+ pulumi.set(self, "region", value)
279
+
280
+ @property
281
+ @pulumi.getter(name="ruleTupleCount")
282
+ def rule_tuple_count(self) -> Optional[pulumi.Input[int]]:
283
+ """
284
+ Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.
285
+ """
286
+ return pulumi.get(self, "rule_tuple_count")
287
+
288
+ @rule_tuple_count.setter
289
+ def rule_tuple_count(self, value: Optional[pulumi.Input[int]]):
290
+ pulumi.set(self, "rule_tuple_count", value)
291
+
292
+ @property
293
+ @pulumi.getter
294
+ def rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleArgs']]]]:
295
+ """
296
+ A list of firewall policy rules.
297
+ Structure is documented below.
298
+ """
299
+ return pulumi.get(self, "rules")
300
+
301
+ @rules.setter
302
+ def rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleArgs']]]]):
303
+ pulumi.set(self, "rules", value)
304
+
305
+ @property
306
+ @pulumi.getter(name="selfLink")
307
+ def self_link(self) -> Optional[pulumi.Input[str]]:
308
+ """
309
+ Server-defined URL for the resource.
310
+ """
311
+ return pulumi.get(self, "self_link")
312
+
313
+ @self_link.setter
314
+ def self_link(self, value: Optional[pulumi.Input[str]]):
315
+ pulumi.set(self, "self_link", value)
316
+
317
+ @property
318
+ @pulumi.getter(name="selfLinkWithId")
319
+ def self_link_with_id(self) -> Optional[pulumi.Input[str]]:
320
+ """
321
+ Server-defined URL for this resource with the resource id.
322
+ """
323
+ return pulumi.get(self, "self_link_with_id")
324
+
325
+ @self_link_with_id.setter
326
+ def self_link_with_id(self, value: Optional[pulumi.Input[str]]):
327
+ pulumi.set(self, "self_link_with_id", value)
328
+
329
+
330
+ class RegionNetworkFirewallPolicyWithRules(pulumi.CustomResource):
331
+ @overload
332
+ def __init__(__self__,
333
+ resource_name: str,
334
+ opts: Optional[pulumi.ResourceOptions] = None,
335
+ description: Optional[pulumi.Input[str]] = None,
336
+ name: Optional[pulumi.Input[str]] = None,
337
+ project: Optional[pulumi.Input[str]] = None,
338
+ region: Optional[pulumi.Input[str]] = None,
339
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionNetworkFirewallPolicyWithRulesRuleArgs', 'RegionNetworkFirewallPolicyWithRulesRuleArgsDict']]]]] = None,
340
+ __props__=None):
341
+ """
342
+ ## Example Usage
343
+
344
+ ### Compute Region Network Firewall Policy With Rules Full
345
+
346
+ ```python
347
+ import pulumi
348
+ import pulumi_gcp as gcp
349
+
350
+ project = gcp.organizations.get_project()
351
+ address_group1 = gcp.networksecurity.AddressGroup("address_group_1",
352
+ name="tf-address-group",
353
+ parent=f"projects/{project.name}",
354
+ description="Regional address group",
355
+ location="us-west2",
356
+ items=["208.80.154.224/32"],
357
+ type="IPV4",
358
+ capacity=100)
359
+ secure_tag_key1 = gcp.tags.TagKey("secure_tag_key_1",
360
+ description="Tag key",
361
+ parent=f"projects/{project.name}",
362
+ purpose="GCE_FIREWALL",
363
+ short_name="tf-tag-key",
364
+ purpose_data={
365
+ "network": f"{project.name}/default",
366
+ })
367
+ secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1",
368
+ description="Tag value",
369
+ parent=secure_tag_key1.name.apply(lambda name: f"tagKeys/{name}"),
370
+ short_name="tf-tag-value")
371
+ region_network_firewall_policy_with_rules = gcp.compute.RegionNetworkFirewallPolicyWithRules("region-network-firewall-policy-with-rules",
372
+ name="tf-region-fw-policy-with-rules",
373
+ region="us-west2",
374
+ description="Terraform test",
375
+ rules=[
376
+ {
377
+ "description": "tcp rule",
378
+ "priority": 1000,
379
+ "enable_logging": True,
380
+ "action": "allow",
381
+ "direction": "EGRESS",
382
+ "match": {
383
+ "layer4_configs": [{
384
+ "ip_protocol": "tcp",
385
+ "ports": [
386
+ "8080",
387
+ "7070",
388
+ ],
389
+ }],
390
+ "dest_ip_ranges": ["11.100.0.1/32"],
391
+ "dest_fqdns": [
392
+ "www.yyy.com",
393
+ "www.zzz.com",
394
+ ],
395
+ "dest_region_codes": [
396
+ "HK",
397
+ "IN",
398
+ ],
399
+ "dest_threat_intelligences": [
400
+ "iplist-search-engines-crawlers",
401
+ "iplist-tor-exit-nodes",
402
+ ],
403
+ "dest_address_groups": [address_group1.id],
404
+ },
405
+ "target_secure_tags": [{
406
+ "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"),
407
+ }],
408
+ },
409
+ {
410
+ "description": "udp rule",
411
+ "rule_name": "test-rule",
412
+ "priority": 2000,
413
+ "enable_logging": False,
414
+ "action": "deny",
415
+ "direction": "INGRESS",
416
+ "match": {
417
+ "layer4_configs": [{
418
+ "ip_protocol": "udp",
419
+ }],
420
+ "src_ip_ranges": ["0.0.0.0/0"],
421
+ "src_fqdns": [
422
+ "www.abc.com",
423
+ "www.def.com",
424
+ ],
425
+ "src_region_codes": [
426
+ "US",
427
+ "CA",
428
+ ],
429
+ "src_threat_intelligences": [
430
+ "iplist-known-malicious-ips",
431
+ "iplist-public-clouds",
432
+ ],
433
+ "src_address_groups": [address_group1.id],
434
+ "src_secure_tags": [{
435
+ "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"),
436
+ }],
437
+ },
438
+ "disabled": True,
439
+ },
440
+ ])
441
+ ```
442
+
443
+ ## Import
444
+
445
+ RegionNetworkFirewallPolicyWithRules can be imported using any of these accepted formats:
446
+
447
+ * `projects/{{project}}/regions/{{region}}/firewallPolicies/{{name}}`
448
+
449
+ * `{{project}}/{{region}}/{{name}}`
450
+
451
+ * `{{region}}/{{name}}`
452
+
453
+ * `{{name}}`
454
+
455
+ When using the `pulumi import` command, RegionNetworkFirewallPolicyWithRules can be imported using one of the formats above. For example:
456
+
457
+ ```sh
458
+ $ pulumi import gcp:compute/regionNetworkFirewallPolicyWithRules:RegionNetworkFirewallPolicyWithRules default projects/{{project}}/regions/{{region}}/firewallPolicies/{{name}}
459
+ ```
460
+
461
+ ```sh
462
+ $ pulumi import gcp:compute/regionNetworkFirewallPolicyWithRules:RegionNetworkFirewallPolicyWithRules default {{project}}/{{region}}/{{name}}
463
+ ```
464
+
465
+ ```sh
466
+ $ pulumi import gcp:compute/regionNetworkFirewallPolicyWithRules:RegionNetworkFirewallPolicyWithRules default {{region}}/{{name}}
467
+ ```
468
+
469
+ ```sh
470
+ $ pulumi import gcp:compute/regionNetworkFirewallPolicyWithRules:RegionNetworkFirewallPolicyWithRules default {{name}}
471
+ ```
472
+
473
+ :param str resource_name: The name of the resource.
474
+ :param pulumi.ResourceOptions opts: Options for the resource.
475
+ :param pulumi.Input[str] description: (Output)
476
+ A description of the rule.
477
+ :param pulumi.Input[str] name: User-provided name of the Network firewall policy.
478
+ The name should be unique in the project in which the firewall policy is created.
479
+ The name must be 1-63 characters long, and comply with RFC1035. Specifically,
480
+ the name must be 1-63 characters long and match the regular expression a-z?
481
+ which means the first character must be a lowercase letter, and all following characters must be a dash,
482
+ lowercase letter, or digit, except the last character, which cannot be a dash.
483
+ :param pulumi.Input[str] region: The region of this resource.
484
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RegionNetworkFirewallPolicyWithRulesRuleArgs', 'RegionNetworkFirewallPolicyWithRulesRuleArgsDict']]]] rules: A list of firewall policy rules.
485
+ Structure is documented below.
486
+ """
487
+ ...
488
+ @overload
489
+ def __init__(__self__,
490
+ resource_name: str,
491
+ args: RegionNetworkFirewallPolicyWithRulesArgs,
492
+ opts: Optional[pulumi.ResourceOptions] = None):
493
+ """
494
+ ## Example Usage
495
+
496
+ ### Compute Region Network Firewall Policy With Rules Full
497
+
498
+ ```python
499
+ import pulumi
500
+ import pulumi_gcp as gcp
501
+
502
+ project = gcp.organizations.get_project()
503
+ address_group1 = gcp.networksecurity.AddressGroup("address_group_1",
504
+ name="tf-address-group",
505
+ parent=f"projects/{project.name}",
506
+ description="Regional address group",
507
+ location="us-west2",
508
+ items=["208.80.154.224/32"],
509
+ type="IPV4",
510
+ capacity=100)
511
+ secure_tag_key1 = gcp.tags.TagKey("secure_tag_key_1",
512
+ description="Tag key",
513
+ parent=f"projects/{project.name}",
514
+ purpose="GCE_FIREWALL",
515
+ short_name="tf-tag-key",
516
+ purpose_data={
517
+ "network": f"{project.name}/default",
518
+ })
519
+ secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1",
520
+ description="Tag value",
521
+ parent=secure_tag_key1.name.apply(lambda name: f"tagKeys/{name}"),
522
+ short_name="tf-tag-value")
523
+ region_network_firewall_policy_with_rules = gcp.compute.RegionNetworkFirewallPolicyWithRules("region-network-firewall-policy-with-rules",
524
+ name="tf-region-fw-policy-with-rules",
525
+ region="us-west2",
526
+ description="Terraform test",
527
+ rules=[
528
+ {
529
+ "description": "tcp rule",
530
+ "priority": 1000,
531
+ "enable_logging": True,
532
+ "action": "allow",
533
+ "direction": "EGRESS",
534
+ "match": {
535
+ "layer4_configs": [{
536
+ "ip_protocol": "tcp",
537
+ "ports": [
538
+ "8080",
539
+ "7070",
540
+ ],
541
+ }],
542
+ "dest_ip_ranges": ["11.100.0.1/32"],
543
+ "dest_fqdns": [
544
+ "www.yyy.com",
545
+ "www.zzz.com",
546
+ ],
547
+ "dest_region_codes": [
548
+ "HK",
549
+ "IN",
550
+ ],
551
+ "dest_threat_intelligences": [
552
+ "iplist-search-engines-crawlers",
553
+ "iplist-tor-exit-nodes",
554
+ ],
555
+ "dest_address_groups": [address_group1.id],
556
+ },
557
+ "target_secure_tags": [{
558
+ "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"),
559
+ }],
560
+ },
561
+ {
562
+ "description": "udp rule",
563
+ "rule_name": "test-rule",
564
+ "priority": 2000,
565
+ "enable_logging": False,
566
+ "action": "deny",
567
+ "direction": "INGRESS",
568
+ "match": {
569
+ "layer4_configs": [{
570
+ "ip_protocol": "udp",
571
+ }],
572
+ "src_ip_ranges": ["0.0.0.0/0"],
573
+ "src_fqdns": [
574
+ "www.abc.com",
575
+ "www.def.com",
576
+ ],
577
+ "src_region_codes": [
578
+ "US",
579
+ "CA",
580
+ ],
581
+ "src_threat_intelligences": [
582
+ "iplist-known-malicious-ips",
583
+ "iplist-public-clouds",
584
+ ],
585
+ "src_address_groups": [address_group1.id],
586
+ "src_secure_tags": [{
587
+ "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"),
588
+ }],
589
+ },
590
+ "disabled": True,
591
+ },
592
+ ])
593
+ ```
594
+
595
+ ## Import
596
+
597
+ RegionNetworkFirewallPolicyWithRules can be imported using any of these accepted formats:
598
+
599
+ * `projects/{{project}}/regions/{{region}}/firewallPolicies/{{name}}`
600
+
601
+ * `{{project}}/{{region}}/{{name}}`
602
+
603
+ * `{{region}}/{{name}}`
604
+
605
+ * `{{name}}`
606
+
607
+ When using the `pulumi import` command, RegionNetworkFirewallPolicyWithRules can be imported using one of the formats above. For example:
608
+
609
+ ```sh
610
+ $ pulumi import gcp:compute/regionNetworkFirewallPolicyWithRules:RegionNetworkFirewallPolicyWithRules default projects/{{project}}/regions/{{region}}/firewallPolicies/{{name}}
611
+ ```
612
+
613
+ ```sh
614
+ $ pulumi import gcp:compute/regionNetworkFirewallPolicyWithRules:RegionNetworkFirewallPolicyWithRules default {{project}}/{{region}}/{{name}}
615
+ ```
616
+
617
+ ```sh
618
+ $ pulumi import gcp:compute/regionNetworkFirewallPolicyWithRules:RegionNetworkFirewallPolicyWithRules default {{region}}/{{name}}
619
+ ```
620
+
621
+ ```sh
622
+ $ pulumi import gcp:compute/regionNetworkFirewallPolicyWithRules:RegionNetworkFirewallPolicyWithRules default {{name}}
623
+ ```
624
+
625
+ :param str resource_name: The name of the resource.
626
+ :param RegionNetworkFirewallPolicyWithRulesArgs args: The arguments to use to populate this resource's properties.
627
+ :param pulumi.ResourceOptions opts: Options for the resource.
628
+ """
629
+ ...
630
+ def __init__(__self__, resource_name: str, *args, **kwargs):
631
+ resource_args, opts = _utilities.get_resource_args_opts(RegionNetworkFirewallPolicyWithRulesArgs, pulumi.ResourceOptions, *args, **kwargs)
632
+ if resource_args is not None:
633
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
634
+ else:
635
+ __self__._internal_init(resource_name, *args, **kwargs)
636
+
637
+ def _internal_init(__self__,
638
+ resource_name: str,
639
+ opts: Optional[pulumi.ResourceOptions] = None,
640
+ description: Optional[pulumi.Input[str]] = None,
641
+ name: Optional[pulumi.Input[str]] = None,
642
+ project: Optional[pulumi.Input[str]] = None,
643
+ region: Optional[pulumi.Input[str]] = None,
644
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionNetworkFirewallPolicyWithRulesRuleArgs', 'RegionNetworkFirewallPolicyWithRulesRuleArgsDict']]]]] = None,
645
+ __props__=None):
646
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
647
+ if not isinstance(opts, pulumi.ResourceOptions):
648
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
649
+ if opts.id is None:
650
+ if __props__ is not None:
651
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
652
+ __props__ = RegionNetworkFirewallPolicyWithRulesArgs.__new__(RegionNetworkFirewallPolicyWithRulesArgs)
653
+
654
+ __props__.__dict__["description"] = description
655
+ __props__.__dict__["name"] = name
656
+ __props__.__dict__["project"] = project
657
+ __props__.__dict__["region"] = region
658
+ if rules is None and not opts.urn:
659
+ raise TypeError("Missing required property 'rules'")
660
+ __props__.__dict__["rules"] = rules
661
+ __props__.__dict__["creation_timestamp"] = None
662
+ __props__.__dict__["fingerprint"] = None
663
+ __props__.__dict__["network_firewall_policy_id"] = None
664
+ __props__.__dict__["predefined_rules"] = None
665
+ __props__.__dict__["rule_tuple_count"] = None
666
+ __props__.__dict__["self_link"] = None
667
+ __props__.__dict__["self_link_with_id"] = None
668
+ super(RegionNetworkFirewallPolicyWithRules, __self__).__init__(
669
+ 'gcp:compute/regionNetworkFirewallPolicyWithRules:RegionNetworkFirewallPolicyWithRules',
670
+ resource_name,
671
+ __props__,
672
+ opts)
673
+
674
+ @staticmethod
675
+ def get(resource_name: str,
676
+ id: pulumi.Input[str],
677
+ opts: Optional[pulumi.ResourceOptions] = None,
678
+ creation_timestamp: Optional[pulumi.Input[str]] = None,
679
+ description: Optional[pulumi.Input[str]] = None,
680
+ fingerprint: Optional[pulumi.Input[str]] = None,
681
+ name: Optional[pulumi.Input[str]] = None,
682
+ network_firewall_policy_id: Optional[pulumi.Input[str]] = None,
683
+ predefined_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgs', 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgsDict']]]]] = None,
684
+ project: Optional[pulumi.Input[str]] = None,
685
+ region: Optional[pulumi.Input[str]] = None,
686
+ rule_tuple_count: Optional[pulumi.Input[int]] = None,
687
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionNetworkFirewallPolicyWithRulesRuleArgs', 'RegionNetworkFirewallPolicyWithRulesRuleArgsDict']]]]] = None,
688
+ self_link: Optional[pulumi.Input[str]] = None,
689
+ self_link_with_id: Optional[pulumi.Input[str]] = None) -> 'RegionNetworkFirewallPolicyWithRules':
690
+ """
691
+ Get an existing RegionNetworkFirewallPolicyWithRules resource's state with the given name, id, and optional extra
692
+ properties used to qualify the lookup.
693
+
694
+ :param str resource_name: The unique name of the resulting resource.
695
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
696
+ :param pulumi.ResourceOptions opts: Options for the resource.
697
+ :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
698
+ :param pulumi.Input[str] description: (Output)
699
+ A description of the rule.
700
+ :param pulumi.Input[str] fingerprint: Fingerprint of the resource. This field is used internally during updates of this resource.
701
+ :param pulumi.Input[str] name: User-provided name of the Network firewall policy.
702
+ The name should be unique in the project in which the firewall policy is created.
703
+ The name must be 1-63 characters long, and comply with RFC1035. Specifically,
704
+ the name must be 1-63 characters long and match the regular expression a-z?
705
+ which means the first character must be a lowercase letter, and all following characters must be a dash,
706
+ lowercase letter, or digit, except the last character, which cannot be a dash.
707
+ :param pulumi.Input[str] network_firewall_policy_id: The unique identifier for the resource. This identifier is defined by the server.
708
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgs', 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgsDict']]]] predefined_rules: A list of firewall policy pre-defined rules.
709
+ Structure is documented below.
710
+ :param pulumi.Input[str] region: The region of this resource.
711
+ :param pulumi.Input[int] rule_tuple_count: Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.
712
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RegionNetworkFirewallPolicyWithRulesRuleArgs', 'RegionNetworkFirewallPolicyWithRulesRuleArgsDict']]]] rules: A list of firewall policy rules.
713
+ Structure is documented below.
714
+ :param pulumi.Input[str] self_link: Server-defined URL for the resource.
715
+ :param pulumi.Input[str] self_link_with_id: Server-defined URL for this resource with the resource id.
716
+ """
717
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
718
+
719
+ __props__ = _RegionNetworkFirewallPolicyWithRulesState.__new__(_RegionNetworkFirewallPolicyWithRulesState)
720
+
721
+ __props__.__dict__["creation_timestamp"] = creation_timestamp
722
+ __props__.__dict__["description"] = description
723
+ __props__.__dict__["fingerprint"] = fingerprint
724
+ __props__.__dict__["name"] = name
725
+ __props__.__dict__["network_firewall_policy_id"] = network_firewall_policy_id
726
+ __props__.__dict__["predefined_rules"] = predefined_rules
727
+ __props__.__dict__["project"] = project
728
+ __props__.__dict__["region"] = region
729
+ __props__.__dict__["rule_tuple_count"] = rule_tuple_count
730
+ __props__.__dict__["rules"] = rules
731
+ __props__.__dict__["self_link"] = self_link
732
+ __props__.__dict__["self_link_with_id"] = self_link_with_id
733
+ return RegionNetworkFirewallPolicyWithRules(resource_name, opts=opts, __props__=__props__)
734
+
735
+ @property
736
+ @pulumi.getter(name="creationTimestamp")
737
+ def creation_timestamp(self) -> pulumi.Output[str]:
738
+ """
739
+ Creation timestamp in RFC3339 text format.
740
+ """
741
+ return pulumi.get(self, "creation_timestamp")
742
+
743
+ @property
744
+ @pulumi.getter
745
+ def description(self) -> pulumi.Output[Optional[str]]:
746
+ """
747
+ (Output)
748
+ A description of the rule.
749
+ """
750
+ return pulumi.get(self, "description")
751
+
752
+ @property
753
+ @pulumi.getter
754
+ def fingerprint(self) -> pulumi.Output[str]:
755
+ """
756
+ Fingerprint of the resource. This field is used internally during updates of this resource.
757
+ """
758
+ return pulumi.get(self, "fingerprint")
759
+
760
+ @property
761
+ @pulumi.getter
762
+ def name(self) -> pulumi.Output[str]:
763
+ """
764
+ User-provided name of the Network firewall policy.
765
+ The name should be unique in the project in which the firewall policy is created.
766
+ The name must be 1-63 characters long, and comply with RFC1035. Specifically,
767
+ the name must be 1-63 characters long and match the regular expression a-z?
768
+ which means the first character must be a lowercase letter, and all following characters must be a dash,
769
+ lowercase letter, or digit, except the last character, which cannot be a dash.
770
+ """
771
+ return pulumi.get(self, "name")
772
+
773
+ @property
774
+ @pulumi.getter(name="networkFirewallPolicyId")
775
+ def network_firewall_policy_id(self) -> pulumi.Output[str]:
776
+ """
777
+ The unique identifier for the resource. This identifier is defined by the server.
778
+ """
779
+ return pulumi.get(self, "network_firewall_policy_id")
780
+
781
+ @property
782
+ @pulumi.getter(name="predefinedRules")
783
+ def predefined_rules(self) -> pulumi.Output[Sequence['outputs.RegionNetworkFirewallPolicyWithRulesPredefinedRule']]:
784
+ """
785
+ A list of firewall policy pre-defined rules.
786
+ Structure is documented below.
787
+ """
788
+ return pulumi.get(self, "predefined_rules")
789
+
790
+ @property
791
+ @pulumi.getter
792
+ def project(self) -> pulumi.Output[str]:
793
+ return pulumi.get(self, "project")
794
+
795
+ @property
796
+ @pulumi.getter
797
+ def region(self) -> pulumi.Output[str]:
798
+ """
799
+ The region of this resource.
800
+ """
801
+ return pulumi.get(self, "region")
802
+
803
+ @property
804
+ @pulumi.getter(name="ruleTupleCount")
805
+ def rule_tuple_count(self) -> pulumi.Output[int]:
806
+ """
807
+ Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.
808
+ """
809
+ return pulumi.get(self, "rule_tuple_count")
810
+
811
+ @property
812
+ @pulumi.getter
813
+ def rules(self) -> pulumi.Output[Sequence['outputs.RegionNetworkFirewallPolicyWithRulesRule']]:
814
+ """
815
+ A list of firewall policy rules.
816
+ Structure is documented below.
817
+ """
818
+ return pulumi.get(self, "rules")
819
+
820
+ @property
821
+ @pulumi.getter(name="selfLink")
822
+ def self_link(self) -> pulumi.Output[str]:
823
+ """
824
+ Server-defined URL for the resource.
825
+ """
826
+ return pulumi.get(self, "self_link")
827
+
828
+ @property
829
+ @pulumi.getter(name="selfLinkWithId")
830
+ def self_link_with_id(self) -> pulumi.Output[str]:
831
+ """
832
+ Server-defined URL for this resource with the resource id.
833
+ """
834
+ return pulumi.get(self, "self_link_with_id")
835
+