pulumi-gcp 8.19.0a1739289542__py3-none-any.whl → 8.19.0a1739382259__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 (75) hide show
  1. pulumi_gcp/__init__.py +80 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +288 -78
  3. pulumi_gcp/accesscontextmanager/outputs.py +186 -54
  4. pulumi_gcp/appengine/_inputs.py +3 -0
  5. pulumi_gcp/appengine/outputs.py +2 -0
  6. pulumi_gcp/beyondcorp/__init__.py +5 -0
  7. pulumi_gcp/beyondcorp/_inputs.py +189 -0
  8. pulumi_gcp/beyondcorp/application.py +604 -0
  9. pulumi_gcp/beyondcorp/application_iam_binding.py +1049 -0
  10. pulumi_gcp/beyondcorp/application_iam_member.py +1049 -0
  11. pulumi_gcp/beyondcorp/application_iam_policy.py +868 -0
  12. pulumi_gcp/beyondcorp/get_application_iam_policy.py +174 -0
  13. pulumi_gcp/beyondcorp/outputs.py +111 -0
  14. pulumi_gcp/bigqueryanalyticshub/__init__.py +1 -0
  15. pulumi_gcp/bigqueryanalyticshub/_inputs.py +318 -0
  16. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +808 -0
  17. pulumi_gcp/bigqueryanalyticshub/outputs.py +263 -0
  18. pulumi_gcp/certificateauthority/_inputs.py +54 -0
  19. pulumi_gcp/certificateauthority/authority.py +149 -3
  20. pulumi_gcp/certificateauthority/get_authority.py +15 -4
  21. pulumi_gcp/certificateauthority/outputs.py +81 -0
  22. pulumi_gcp/cloudrunv2/_inputs.py +112 -0
  23. pulumi_gcp/cloudrunv2/outputs.py +144 -1
  24. pulumi_gcp/cloudrunv2/service.py +2 -0
  25. pulumi_gcp/colab/__init__.py +2 -0
  26. pulumi_gcp/colab/_inputs.py +655 -0
  27. pulumi_gcp/colab/notebook_execution.py +1259 -0
  28. pulumi_gcp/colab/outputs.py +512 -0
  29. pulumi_gcp/colab/runtime.py +266 -2
  30. pulumi_gcp/colab/runtime_template.py +79 -3
  31. pulumi_gcp/colab/schedule.py +1318 -0
  32. pulumi_gcp/compute/__init__.py +1 -0
  33. pulumi_gcp/compute/_inputs.py +204 -0
  34. pulumi_gcp/compute/firewall_policy.py +54 -43
  35. pulumi_gcp/compute/forwarding_rule.py +103 -0
  36. pulumi_gcp/compute/get_forwarding_rule.py +12 -1
  37. pulumi_gcp/compute/interconnect_attachment.py +12 -0
  38. pulumi_gcp/compute/network_firewall_policy_packet_mirroring_rule.py +1011 -0
  39. pulumi_gcp/compute/outputs.py +187 -0
  40. pulumi_gcp/compute/public_advertised_prefix.py +35 -7
  41. pulumi_gcp/compute/public_delegated_prefix.py +171 -7
  42. pulumi_gcp/compute/region_resize_request.py +21 -22
  43. pulumi_gcp/compute/resize_request.py +22 -23
  44. pulumi_gcp/compute/subnetwork.py +14 -7
  45. pulumi_gcp/container/_inputs.py +54 -1
  46. pulumi_gcp/container/outputs.py +79 -1
  47. pulumi_gcp/datastream/connection_profile.py +120 -46
  48. pulumi_gcp/discoveryengine/chat_engine.py +7 -7
  49. pulumi_gcp/filestore/_inputs.py +222 -0
  50. pulumi_gcp/filestore/get_instance.py +23 -1
  51. pulumi_gcp/filestore/instance.py +86 -0
  52. pulumi_gcp/filestore/outputs.py +282 -0
  53. pulumi_gcp/gemini/__init__.py +2 -0
  54. pulumi_gcp/gemini/logging_setting.py +671 -0
  55. pulumi_gcp/gemini/release_channel_setting.py +639 -0
  56. pulumi_gcp/memorystore/_inputs.py +296 -0
  57. pulumi_gcp/memorystore/instance.py +32 -28
  58. pulumi_gcp/memorystore/outputs.py +224 -0
  59. pulumi_gcp/monitoring/_inputs.py +12 -9
  60. pulumi_gcp/monitoring/outputs.py +8 -6
  61. pulumi_gcp/networkservices/_inputs.py +89 -0
  62. pulumi_gcp/networkservices/outputs.py +75 -0
  63. pulumi_gcp/parametermanager/__init__.py +2 -0
  64. pulumi_gcp/parametermanager/get_parameter_version_render.py +199 -0
  65. pulumi_gcp/parametermanager/get_regional_parameter_version_render.py +220 -0
  66. pulumi_gcp/privilegedaccessmanager/entitlement.py +14 -0
  67. pulumi_gcp/pulumi-plugin.json +1 -1
  68. pulumi_gcp/securesourcemanager/branch_rule.py +4 -0
  69. pulumi_gcp/securesourcemanager/repository.py +4 -0
  70. pulumi_gcp/storage/bucket_object.py +8 -0
  71. pulumi_gcp/workbench/instance.py +70 -2
  72. {pulumi_gcp-8.19.0a1739289542.dist-info → pulumi_gcp-8.19.0a1739382259.dist-info}/METADATA +1 -1
  73. {pulumi_gcp-8.19.0a1739289542.dist-info → pulumi_gcp-8.19.0a1739382259.dist-info}/RECORD +75 -62
  74. {pulumi_gcp-8.19.0a1739289542.dist-info → pulumi_gcp-8.19.0a1739382259.dist-info}/WHEEL +0 -0
  75. {pulumi_gcp-8.19.0a1739289542.dist-info → pulumi_gcp-8.19.0a1739382259.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1011 @@
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__ = ['NetworkFirewallPolicyPacketMirroringRuleArgs', 'NetworkFirewallPolicyPacketMirroringRule']
20
+
21
+ @pulumi.input_type
22
+ class NetworkFirewallPolicyPacketMirroringRuleArgs:
23
+ def __init__(__self__, *,
24
+ action: pulumi.Input[str],
25
+ direction: pulumi.Input[str],
26
+ firewall_policy: pulumi.Input[str],
27
+ match: pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleMatchArgs'],
28
+ priority: pulumi.Input[int],
29
+ description: Optional[pulumi.Input[str]] = None,
30
+ disabled: Optional[pulumi.Input[bool]] = None,
31
+ project: Optional[pulumi.Input[str]] = None,
32
+ rule_name: Optional[pulumi.Input[str]] = None,
33
+ security_profile_group: Optional[pulumi.Input[str]] = None,
34
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs']]]] = None,
35
+ tls_inspect: Optional[pulumi.Input[bool]] = None):
36
+ """
37
+ The set of arguments for constructing a NetworkFirewallPolicyPacketMirroringRule resource.
38
+ :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Valid actions are "mirror", "do_not_mirror", "goto_next".
39
+ :param pulumi.Input[str] direction: The direction in which this rule applies.
40
+ Possible values are: `INGRESS`, `EGRESS`.
41
+ :param pulumi.Input[str] firewall_policy: The firewall policy of the resource.
42
+ :param pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleMatchArgs'] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
43
+ Structure is documented below.
44
+ :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list.
45
+ The priority must be a positive value between 0 and 2147483647.
46
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
47
+ :param pulumi.Input[str] description: An optional description for this resource.
48
+ :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and
49
+ traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.
50
+ :param pulumi.Input[str] rule_name: An optional name for the rule. This field is not a unique identifier and can be updated.
51
+ :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance. Example:
52
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
53
+ Must be specified if action = 'mirror' and cannot be specified for other actions.
54
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs']]] target_secure_tags: A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
55
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
56
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
57
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
58
+ applies to all instances on the specified network. Maximum number of target label tags allowed is 256.
59
+ :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'mirror' and cannot be set
60
+ for other actions.
61
+ """
62
+ pulumi.set(__self__, "action", action)
63
+ pulumi.set(__self__, "direction", direction)
64
+ pulumi.set(__self__, "firewall_policy", firewall_policy)
65
+ pulumi.set(__self__, "match", match)
66
+ pulumi.set(__self__, "priority", priority)
67
+ if description is not None:
68
+ pulumi.set(__self__, "description", description)
69
+ if disabled is not None:
70
+ pulumi.set(__self__, "disabled", disabled)
71
+ if project is not None:
72
+ pulumi.set(__self__, "project", project)
73
+ if rule_name is not None:
74
+ pulumi.set(__self__, "rule_name", rule_name)
75
+ if security_profile_group is not None:
76
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
77
+ if target_secure_tags is not None:
78
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
79
+ if tls_inspect is not None:
80
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
81
+
82
+ @property
83
+ @pulumi.getter
84
+ def action(self) -> pulumi.Input[str]:
85
+ """
86
+ The Action to perform when the client connection triggers the rule. Valid actions are "mirror", "do_not_mirror", "goto_next".
87
+ """
88
+ return pulumi.get(self, "action")
89
+
90
+ @action.setter
91
+ def action(self, value: pulumi.Input[str]):
92
+ pulumi.set(self, "action", value)
93
+
94
+ @property
95
+ @pulumi.getter
96
+ def direction(self) -> pulumi.Input[str]:
97
+ """
98
+ The direction in which this rule applies.
99
+ Possible values are: `INGRESS`, `EGRESS`.
100
+ """
101
+ return pulumi.get(self, "direction")
102
+
103
+ @direction.setter
104
+ def direction(self, value: pulumi.Input[str]):
105
+ pulumi.set(self, "direction", value)
106
+
107
+ @property
108
+ @pulumi.getter(name="firewallPolicy")
109
+ def firewall_policy(self) -> pulumi.Input[str]:
110
+ """
111
+ The firewall policy of the resource.
112
+ """
113
+ return pulumi.get(self, "firewall_policy")
114
+
115
+ @firewall_policy.setter
116
+ def firewall_policy(self, value: pulumi.Input[str]):
117
+ pulumi.set(self, "firewall_policy", value)
118
+
119
+ @property
120
+ @pulumi.getter
121
+ def match(self) -> pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleMatchArgs']:
122
+ """
123
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
124
+ Structure is documented below.
125
+ """
126
+ return pulumi.get(self, "match")
127
+
128
+ @match.setter
129
+ def match(self, value: pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleMatchArgs']):
130
+ pulumi.set(self, "match", value)
131
+
132
+ @property
133
+ @pulumi.getter
134
+ def priority(self) -> pulumi.Input[int]:
135
+ """
136
+ An integer indicating the priority of a rule in the list.
137
+ The priority must be a positive value between 0 and 2147483647.
138
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
139
+ """
140
+ return pulumi.get(self, "priority")
141
+
142
+ @priority.setter
143
+ def priority(self, value: pulumi.Input[int]):
144
+ pulumi.set(self, "priority", value)
145
+
146
+ @property
147
+ @pulumi.getter
148
+ def description(self) -> Optional[pulumi.Input[str]]:
149
+ """
150
+ An optional description for this resource.
151
+ """
152
+ return pulumi.get(self, "description")
153
+
154
+ @description.setter
155
+ def description(self, value: Optional[pulumi.Input[str]]):
156
+ pulumi.set(self, "description", value)
157
+
158
+ @property
159
+ @pulumi.getter
160
+ def disabled(self) -> Optional[pulumi.Input[bool]]:
161
+ """
162
+ Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and
163
+ traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.
164
+ """
165
+ return pulumi.get(self, "disabled")
166
+
167
+ @disabled.setter
168
+ def disabled(self, value: Optional[pulumi.Input[bool]]):
169
+ pulumi.set(self, "disabled", value)
170
+
171
+ @property
172
+ @pulumi.getter
173
+ def project(self) -> Optional[pulumi.Input[str]]:
174
+ return pulumi.get(self, "project")
175
+
176
+ @project.setter
177
+ def project(self, value: Optional[pulumi.Input[str]]):
178
+ pulumi.set(self, "project", value)
179
+
180
+ @property
181
+ @pulumi.getter(name="ruleName")
182
+ def rule_name(self) -> Optional[pulumi.Input[str]]:
183
+ """
184
+ An optional name for the rule. This field is not a unique identifier and can be updated.
185
+ """
186
+ return pulumi.get(self, "rule_name")
187
+
188
+ @rule_name.setter
189
+ def rule_name(self, value: Optional[pulumi.Input[str]]):
190
+ pulumi.set(self, "rule_name", value)
191
+
192
+ @property
193
+ @pulumi.getter(name="securityProfileGroup")
194
+ def security_profile_group(self) -> Optional[pulumi.Input[str]]:
195
+ """
196
+ A fully-qualified URL of a SecurityProfile resource instance. Example:
197
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
198
+ Must be specified if action = 'mirror' and cannot be specified for other actions.
199
+ """
200
+ return pulumi.get(self, "security_profile_group")
201
+
202
+ @security_profile_group.setter
203
+ def security_profile_group(self, value: Optional[pulumi.Input[str]]):
204
+ pulumi.set(self, "security_profile_group", value)
205
+
206
+ @property
207
+ @pulumi.getter(name="targetSecureTags")
208
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs']]]]:
209
+ """
210
+ A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
211
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
212
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
213
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
214
+ applies to all instances on the specified network. Maximum number of target label tags allowed is 256.
215
+ """
216
+ return pulumi.get(self, "target_secure_tags")
217
+
218
+ @target_secure_tags.setter
219
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs']]]]):
220
+ pulumi.set(self, "target_secure_tags", value)
221
+
222
+ @property
223
+ @pulumi.getter(name="tlsInspect")
224
+ def tls_inspect(self) -> Optional[pulumi.Input[bool]]:
225
+ """
226
+ Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'mirror' and cannot be set
227
+ for other actions.
228
+ """
229
+ return pulumi.get(self, "tls_inspect")
230
+
231
+ @tls_inspect.setter
232
+ def tls_inspect(self, value: Optional[pulumi.Input[bool]]):
233
+ pulumi.set(self, "tls_inspect", value)
234
+
235
+
236
+ @pulumi.input_type
237
+ class _NetworkFirewallPolicyPacketMirroringRuleState:
238
+ def __init__(__self__, *,
239
+ action: Optional[pulumi.Input[str]] = None,
240
+ creation_timestamp: Optional[pulumi.Input[str]] = None,
241
+ description: Optional[pulumi.Input[str]] = None,
242
+ direction: Optional[pulumi.Input[str]] = None,
243
+ disabled: Optional[pulumi.Input[bool]] = None,
244
+ firewall_policy: Optional[pulumi.Input[str]] = None,
245
+ kind: Optional[pulumi.Input[str]] = None,
246
+ match: Optional[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleMatchArgs']] = None,
247
+ priority: Optional[pulumi.Input[int]] = None,
248
+ project: Optional[pulumi.Input[str]] = None,
249
+ rule_name: Optional[pulumi.Input[str]] = None,
250
+ rule_tuple_count: Optional[pulumi.Input[int]] = None,
251
+ security_profile_group: Optional[pulumi.Input[str]] = None,
252
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs']]]] = None,
253
+ tls_inspect: Optional[pulumi.Input[bool]] = None):
254
+ """
255
+ Input properties used for looking up and filtering NetworkFirewallPolicyPacketMirroringRule resources.
256
+ :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Valid actions are "mirror", "do_not_mirror", "goto_next".
257
+ :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
258
+ :param pulumi.Input[str] description: An optional description for this resource.
259
+ :param pulumi.Input[str] direction: The direction in which this rule applies.
260
+ Possible values are: `INGRESS`, `EGRESS`.
261
+ :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and
262
+ traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.
263
+ :param pulumi.Input[str] firewall_policy: The firewall policy of the resource.
264
+ :param pulumi.Input[str] kind: Type of the resource. Always `compute#packetMirroringRule` for firewall policy packet mirroring rules
265
+ :param pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleMatchArgs'] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
266
+ Structure is documented below.
267
+ :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list.
268
+ The priority must be a positive value between 0 and 2147483647.
269
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
270
+ :param pulumi.Input[str] rule_name: An optional name for the rule. This field is not a unique identifier and can be updated.
271
+ :param pulumi.Input[int] rule_tuple_count: Calculation of the complexity of a single firewall policy rule.
272
+ :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance. Example:
273
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
274
+ Must be specified if action = 'mirror' and cannot be specified for other actions.
275
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs']]] target_secure_tags: A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
276
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
277
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
278
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
279
+ applies to all instances on the specified network. Maximum number of target label tags allowed is 256.
280
+ :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'mirror' and cannot be set
281
+ for other actions.
282
+ """
283
+ if action is not None:
284
+ pulumi.set(__self__, "action", action)
285
+ if creation_timestamp is not None:
286
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
287
+ if description is not None:
288
+ pulumi.set(__self__, "description", description)
289
+ if direction is not None:
290
+ pulumi.set(__self__, "direction", direction)
291
+ if disabled is not None:
292
+ pulumi.set(__self__, "disabled", disabled)
293
+ if firewall_policy is not None:
294
+ pulumi.set(__self__, "firewall_policy", firewall_policy)
295
+ if kind is not None:
296
+ pulumi.set(__self__, "kind", kind)
297
+ if match is not None:
298
+ pulumi.set(__self__, "match", match)
299
+ if priority is not None:
300
+ pulumi.set(__self__, "priority", priority)
301
+ if project is not None:
302
+ pulumi.set(__self__, "project", project)
303
+ if rule_name is not None:
304
+ pulumi.set(__self__, "rule_name", rule_name)
305
+ if rule_tuple_count is not None:
306
+ pulumi.set(__self__, "rule_tuple_count", rule_tuple_count)
307
+ if security_profile_group is not None:
308
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
309
+ if target_secure_tags is not None:
310
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
311
+ if tls_inspect is not None:
312
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
313
+
314
+ @property
315
+ @pulumi.getter
316
+ def action(self) -> Optional[pulumi.Input[str]]:
317
+ """
318
+ The Action to perform when the client connection triggers the rule. Valid actions are "mirror", "do_not_mirror", "goto_next".
319
+ """
320
+ return pulumi.get(self, "action")
321
+
322
+ @action.setter
323
+ def action(self, value: Optional[pulumi.Input[str]]):
324
+ pulumi.set(self, "action", value)
325
+
326
+ @property
327
+ @pulumi.getter(name="creationTimestamp")
328
+ def creation_timestamp(self) -> Optional[pulumi.Input[str]]:
329
+ """
330
+ Creation timestamp in RFC3339 text format.
331
+ """
332
+ return pulumi.get(self, "creation_timestamp")
333
+
334
+ @creation_timestamp.setter
335
+ def creation_timestamp(self, value: Optional[pulumi.Input[str]]):
336
+ pulumi.set(self, "creation_timestamp", value)
337
+
338
+ @property
339
+ @pulumi.getter
340
+ def description(self) -> Optional[pulumi.Input[str]]:
341
+ """
342
+ An optional description for this resource.
343
+ """
344
+ return pulumi.get(self, "description")
345
+
346
+ @description.setter
347
+ def description(self, value: Optional[pulumi.Input[str]]):
348
+ pulumi.set(self, "description", value)
349
+
350
+ @property
351
+ @pulumi.getter
352
+ def direction(self) -> Optional[pulumi.Input[str]]:
353
+ """
354
+ The direction in which this rule applies.
355
+ Possible values are: `INGRESS`, `EGRESS`.
356
+ """
357
+ return pulumi.get(self, "direction")
358
+
359
+ @direction.setter
360
+ def direction(self, value: Optional[pulumi.Input[str]]):
361
+ pulumi.set(self, "direction", value)
362
+
363
+ @property
364
+ @pulumi.getter
365
+ def disabled(self) -> Optional[pulumi.Input[bool]]:
366
+ """
367
+ Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and
368
+ traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.
369
+ """
370
+ return pulumi.get(self, "disabled")
371
+
372
+ @disabled.setter
373
+ def disabled(self, value: Optional[pulumi.Input[bool]]):
374
+ pulumi.set(self, "disabled", value)
375
+
376
+ @property
377
+ @pulumi.getter(name="firewallPolicy")
378
+ def firewall_policy(self) -> Optional[pulumi.Input[str]]:
379
+ """
380
+ The firewall policy of the resource.
381
+ """
382
+ return pulumi.get(self, "firewall_policy")
383
+
384
+ @firewall_policy.setter
385
+ def firewall_policy(self, value: Optional[pulumi.Input[str]]):
386
+ pulumi.set(self, "firewall_policy", value)
387
+
388
+ @property
389
+ @pulumi.getter
390
+ def kind(self) -> Optional[pulumi.Input[str]]:
391
+ """
392
+ Type of the resource. Always `compute#packetMirroringRule` for firewall policy packet mirroring rules
393
+ """
394
+ return pulumi.get(self, "kind")
395
+
396
+ @kind.setter
397
+ def kind(self, value: Optional[pulumi.Input[str]]):
398
+ pulumi.set(self, "kind", value)
399
+
400
+ @property
401
+ @pulumi.getter
402
+ def match(self) -> Optional[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleMatchArgs']]:
403
+ """
404
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
405
+ Structure is documented below.
406
+ """
407
+ return pulumi.get(self, "match")
408
+
409
+ @match.setter
410
+ def match(self, value: Optional[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleMatchArgs']]):
411
+ pulumi.set(self, "match", value)
412
+
413
+ @property
414
+ @pulumi.getter
415
+ def priority(self) -> Optional[pulumi.Input[int]]:
416
+ """
417
+ An integer indicating the priority of a rule in the list.
418
+ The priority must be a positive value between 0 and 2147483647.
419
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
420
+ """
421
+ return pulumi.get(self, "priority")
422
+
423
+ @priority.setter
424
+ def priority(self, value: Optional[pulumi.Input[int]]):
425
+ pulumi.set(self, "priority", value)
426
+
427
+ @property
428
+ @pulumi.getter
429
+ def project(self) -> Optional[pulumi.Input[str]]:
430
+ return pulumi.get(self, "project")
431
+
432
+ @project.setter
433
+ def project(self, value: Optional[pulumi.Input[str]]):
434
+ pulumi.set(self, "project", value)
435
+
436
+ @property
437
+ @pulumi.getter(name="ruleName")
438
+ def rule_name(self) -> Optional[pulumi.Input[str]]:
439
+ """
440
+ An optional name for the rule. This field is not a unique identifier and can be updated.
441
+ """
442
+ return pulumi.get(self, "rule_name")
443
+
444
+ @rule_name.setter
445
+ def rule_name(self, value: Optional[pulumi.Input[str]]):
446
+ pulumi.set(self, "rule_name", value)
447
+
448
+ @property
449
+ @pulumi.getter(name="ruleTupleCount")
450
+ def rule_tuple_count(self) -> Optional[pulumi.Input[int]]:
451
+ """
452
+ Calculation of the complexity of a single firewall policy rule.
453
+ """
454
+ return pulumi.get(self, "rule_tuple_count")
455
+
456
+ @rule_tuple_count.setter
457
+ def rule_tuple_count(self, value: Optional[pulumi.Input[int]]):
458
+ pulumi.set(self, "rule_tuple_count", value)
459
+
460
+ @property
461
+ @pulumi.getter(name="securityProfileGroup")
462
+ def security_profile_group(self) -> Optional[pulumi.Input[str]]:
463
+ """
464
+ A fully-qualified URL of a SecurityProfile resource instance. Example:
465
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
466
+ Must be specified if action = 'mirror' and cannot be specified for other actions.
467
+ """
468
+ return pulumi.get(self, "security_profile_group")
469
+
470
+ @security_profile_group.setter
471
+ def security_profile_group(self, value: Optional[pulumi.Input[str]]):
472
+ pulumi.set(self, "security_profile_group", value)
473
+
474
+ @property
475
+ @pulumi.getter(name="targetSecureTags")
476
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs']]]]:
477
+ """
478
+ A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
479
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
480
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
481
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
482
+ applies to all instances on the specified network. Maximum number of target label tags allowed is 256.
483
+ """
484
+ return pulumi.get(self, "target_secure_tags")
485
+
486
+ @target_secure_tags.setter
487
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs']]]]):
488
+ pulumi.set(self, "target_secure_tags", value)
489
+
490
+ @property
491
+ @pulumi.getter(name="tlsInspect")
492
+ def tls_inspect(self) -> Optional[pulumi.Input[bool]]:
493
+ """
494
+ Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'mirror' and cannot be set
495
+ for other actions.
496
+ """
497
+ return pulumi.get(self, "tls_inspect")
498
+
499
+ @tls_inspect.setter
500
+ def tls_inspect(self, value: Optional[pulumi.Input[bool]]):
501
+ pulumi.set(self, "tls_inspect", value)
502
+
503
+
504
+ class NetworkFirewallPolicyPacketMirroringRule(pulumi.CustomResource):
505
+ @overload
506
+ def __init__(__self__,
507
+ resource_name: str,
508
+ opts: Optional[pulumi.ResourceOptions] = None,
509
+ action: Optional[pulumi.Input[str]] = None,
510
+ description: Optional[pulumi.Input[str]] = None,
511
+ direction: Optional[pulumi.Input[str]] = None,
512
+ disabled: Optional[pulumi.Input[bool]] = None,
513
+ firewall_policy: Optional[pulumi.Input[str]] = None,
514
+ match: Optional[pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleMatchArgs', 'NetworkFirewallPolicyPacketMirroringRuleMatchArgsDict']]] = None,
515
+ priority: Optional[pulumi.Input[int]] = None,
516
+ project: Optional[pulumi.Input[str]] = None,
517
+ rule_name: Optional[pulumi.Input[str]] = None,
518
+ security_profile_group: Optional[pulumi.Input[str]] = None,
519
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs', 'NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgsDict']]]]] = None,
520
+ tls_inspect: Optional[pulumi.Input[bool]] = None,
521
+ __props__=None):
522
+ """
523
+ ## Example Usage
524
+
525
+ ### Compute Network Firewall Policy Packet Mirroring Rule
526
+
527
+ ```python
528
+ import pulumi
529
+ import pulumi_gcp as gcp
530
+
531
+ project = gcp.organizations.get_project()
532
+ default = gcp.compute.Network("default",
533
+ name="fw-network",
534
+ auto_create_subnetworks=False)
535
+ basic_network_firewall_policy = gcp.compute.NetworkFirewallPolicy("basic_network_firewall_policy",
536
+ name="fw-policy",
537
+ description="Sample global network firewall policy",
538
+ project="my-project-name")
539
+ default_mirroring_deployment_group = gcp.networksecurity.MirroringDeploymentGroup("default",
540
+ mirroring_deployment_group_id="deployment-group",
541
+ location="global",
542
+ network=default.id)
543
+ default_mirroring_endpoint_group = gcp.networksecurity.MirroringEndpointGroup("default",
544
+ mirroring_endpoint_group_id="endpoint-group",
545
+ location="global",
546
+ mirroring_deployment_group=default_mirroring_deployment_group.id)
547
+ default_security_profile = gcp.networksecurity.SecurityProfile("default",
548
+ name="sec-profile",
549
+ parent="organizations/123456789",
550
+ description="my description",
551
+ type="CUSTOM_MIRRORING",
552
+ custom_mirroring_profile={
553
+ "mirroring_endpoint_group": default_mirroring_endpoint_group.id,
554
+ })
555
+ security_profile_group1 = gcp.networksecurity.SecurityProfileGroup("security_profile_group_1",
556
+ name="sec-profile-group",
557
+ parent="organizations/123456789",
558
+ description="my description",
559
+ custom_mirroring_profile=default_security_profile.id)
560
+ secure_tag_key1 = gcp.tags.TagKey("secure_tag_key_1",
561
+ description="Test tag key description",
562
+ parent="organizations/123456789",
563
+ purpose="GCE_FIREWALL",
564
+ short_name="tag-key",
565
+ purpose_data={
566
+ "network": default.name.apply(lambda name: f"my-project-name/{name}"),
567
+ })
568
+ secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1",
569
+ description="Test tag value description.",
570
+ parent=secure_tag_key1.id,
571
+ short_name="tag-value")
572
+ primary = gcp.compute.NetworkFirewallPolicyPacketMirroringRule("primary",
573
+ action="mirror",
574
+ description="This is a simple packet mirroring rule description",
575
+ direction="INGRESS",
576
+ disabled=False,
577
+ firewall_policy=basic_network_firewall_policy.name,
578
+ priority=1000,
579
+ rule_name="test-rule",
580
+ match={
581
+ "src_ip_ranges": ["10.100.0.1/32"],
582
+ "layer4_configs": [{
583
+ "ip_protocol": "all",
584
+ }],
585
+ },
586
+ security_profile_group=security_profile_group1.id.apply(lambda id: f"//networksecurity.googleapis.com/{id}"),
587
+ target_secure_tags=[{
588
+ "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"),
589
+ }])
590
+ ```
591
+
592
+ ## Import
593
+
594
+ NetworkFirewallPolicyPacketMirroringRule can be imported using any of these accepted formats:
595
+
596
+ * `projects/{{project}}/global/firewallPolicies/{{firewall_policy}}/packetMirroringRules/{{priority}}`
597
+
598
+ * `{{project}}/{{firewall_policy}}/{{priority}}`
599
+
600
+ * `{{firewall_policy}}/{{priority}}`
601
+
602
+ When using the `pulumi import` command, NetworkFirewallPolicyPacketMirroringRule can be imported using one of the formats above. For example:
603
+
604
+ ```sh
605
+ $ pulumi import gcp:compute/networkFirewallPolicyPacketMirroringRule:NetworkFirewallPolicyPacketMirroringRule default projects/{{project}}/global/firewallPolicies/{{firewall_policy}}/packetMirroringRules/{{priority}}
606
+ ```
607
+
608
+ ```sh
609
+ $ pulumi import gcp:compute/networkFirewallPolicyPacketMirroringRule:NetworkFirewallPolicyPacketMirroringRule default {{project}}/{{firewall_policy}}/{{priority}}
610
+ ```
611
+
612
+ ```sh
613
+ $ pulumi import gcp:compute/networkFirewallPolicyPacketMirroringRule:NetworkFirewallPolicyPacketMirroringRule default {{firewall_policy}}/{{priority}}
614
+ ```
615
+
616
+ :param str resource_name: The name of the resource.
617
+ :param pulumi.ResourceOptions opts: Options for the resource.
618
+ :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Valid actions are "mirror", "do_not_mirror", "goto_next".
619
+ :param pulumi.Input[str] description: An optional description for this resource.
620
+ :param pulumi.Input[str] direction: The direction in which this rule applies.
621
+ Possible values are: `INGRESS`, `EGRESS`.
622
+ :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and
623
+ traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.
624
+ :param pulumi.Input[str] firewall_policy: The firewall policy of the resource.
625
+ :param pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleMatchArgs', 'NetworkFirewallPolicyPacketMirroringRuleMatchArgsDict']] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
626
+ Structure is documented below.
627
+ :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list.
628
+ The priority must be a positive value between 0 and 2147483647.
629
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
630
+ :param pulumi.Input[str] rule_name: An optional name for the rule. This field is not a unique identifier and can be updated.
631
+ :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance. Example:
632
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
633
+ Must be specified if action = 'mirror' and cannot be specified for other actions.
634
+ :param pulumi.Input[Sequence[pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs', 'NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgsDict']]]] target_secure_tags: A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
635
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
636
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
637
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
638
+ applies to all instances on the specified network. Maximum number of target label tags allowed is 256.
639
+ :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'mirror' and cannot be set
640
+ for other actions.
641
+ """
642
+ ...
643
+ @overload
644
+ def __init__(__self__,
645
+ resource_name: str,
646
+ args: NetworkFirewallPolicyPacketMirroringRuleArgs,
647
+ opts: Optional[pulumi.ResourceOptions] = None):
648
+ """
649
+ ## Example Usage
650
+
651
+ ### Compute Network Firewall Policy Packet Mirroring Rule
652
+
653
+ ```python
654
+ import pulumi
655
+ import pulumi_gcp as gcp
656
+
657
+ project = gcp.organizations.get_project()
658
+ default = gcp.compute.Network("default",
659
+ name="fw-network",
660
+ auto_create_subnetworks=False)
661
+ basic_network_firewall_policy = gcp.compute.NetworkFirewallPolicy("basic_network_firewall_policy",
662
+ name="fw-policy",
663
+ description="Sample global network firewall policy",
664
+ project="my-project-name")
665
+ default_mirroring_deployment_group = gcp.networksecurity.MirroringDeploymentGroup("default",
666
+ mirroring_deployment_group_id="deployment-group",
667
+ location="global",
668
+ network=default.id)
669
+ default_mirroring_endpoint_group = gcp.networksecurity.MirroringEndpointGroup("default",
670
+ mirroring_endpoint_group_id="endpoint-group",
671
+ location="global",
672
+ mirroring_deployment_group=default_mirroring_deployment_group.id)
673
+ default_security_profile = gcp.networksecurity.SecurityProfile("default",
674
+ name="sec-profile",
675
+ parent="organizations/123456789",
676
+ description="my description",
677
+ type="CUSTOM_MIRRORING",
678
+ custom_mirroring_profile={
679
+ "mirroring_endpoint_group": default_mirroring_endpoint_group.id,
680
+ })
681
+ security_profile_group1 = gcp.networksecurity.SecurityProfileGroup("security_profile_group_1",
682
+ name="sec-profile-group",
683
+ parent="organizations/123456789",
684
+ description="my description",
685
+ custom_mirroring_profile=default_security_profile.id)
686
+ secure_tag_key1 = gcp.tags.TagKey("secure_tag_key_1",
687
+ description="Test tag key description",
688
+ parent="organizations/123456789",
689
+ purpose="GCE_FIREWALL",
690
+ short_name="tag-key",
691
+ purpose_data={
692
+ "network": default.name.apply(lambda name: f"my-project-name/{name}"),
693
+ })
694
+ secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1",
695
+ description="Test tag value description.",
696
+ parent=secure_tag_key1.id,
697
+ short_name="tag-value")
698
+ primary = gcp.compute.NetworkFirewallPolicyPacketMirroringRule("primary",
699
+ action="mirror",
700
+ description="This is a simple packet mirroring rule description",
701
+ direction="INGRESS",
702
+ disabled=False,
703
+ firewall_policy=basic_network_firewall_policy.name,
704
+ priority=1000,
705
+ rule_name="test-rule",
706
+ match={
707
+ "src_ip_ranges": ["10.100.0.1/32"],
708
+ "layer4_configs": [{
709
+ "ip_protocol": "all",
710
+ }],
711
+ },
712
+ security_profile_group=security_profile_group1.id.apply(lambda id: f"//networksecurity.googleapis.com/{id}"),
713
+ target_secure_tags=[{
714
+ "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"),
715
+ }])
716
+ ```
717
+
718
+ ## Import
719
+
720
+ NetworkFirewallPolicyPacketMirroringRule can be imported using any of these accepted formats:
721
+
722
+ * `projects/{{project}}/global/firewallPolicies/{{firewall_policy}}/packetMirroringRules/{{priority}}`
723
+
724
+ * `{{project}}/{{firewall_policy}}/{{priority}}`
725
+
726
+ * `{{firewall_policy}}/{{priority}}`
727
+
728
+ When using the `pulumi import` command, NetworkFirewallPolicyPacketMirroringRule can be imported using one of the formats above. For example:
729
+
730
+ ```sh
731
+ $ pulumi import gcp:compute/networkFirewallPolicyPacketMirroringRule:NetworkFirewallPolicyPacketMirroringRule default projects/{{project}}/global/firewallPolicies/{{firewall_policy}}/packetMirroringRules/{{priority}}
732
+ ```
733
+
734
+ ```sh
735
+ $ pulumi import gcp:compute/networkFirewallPolicyPacketMirroringRule:NetworkFirewallPolicyPacketMirroringRule default {{project}}/{{firewall_policy}}/{{priority}}
736
+ ```
737
+
738
+ ```sh
739
+ $ pulumi import gcp:compute/networkFirewallPolicyPacketMirroringRule:NetworkFirewallPolicyPacketMirroringRule default {{firewall_policy}}/{{priority}}
740
+ ```
741
+
742
+ :param str resource_name: The name of the resource.
743
+ :param NetworkFirewallPolicyPacketMirroringRuleArgs args: The arguments to use to populate this resource's properties.
744
+ :param pulumi.ResourceOptions opts: Options for the resource.
745
+ """
746
+ ...
747
+ def __init__(__self__, resource_name: str, *args, **kwargs):
748
+ resource_args, opts = _utilities.get_resource_args_opts(NetworkFirewallPolicyPacketMirroringRuleArgs, pulumi.ResourceOptions, *args, **kwargs)
749
+ if resource_args is not None:
750
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
751
+ else:
752
+ __self__._internal_init(resource_name, *args, **kwargs)
753
+
754
+ def _internal_init(__self__,
755
+ resource_name: str,
756
+ opts: Optional[pulumi.ResourceOptions] = None,
757
+ action: Optional[pulumi.Input[str]] = None,
758
+ description: Optional[pulumi.Input[str]] = None,
759
+ direction: Optional[pulumi.Input[str]] = None,
760
+ disabled: Optional[pulumi.Input[bool]] = None,
761
+ firewall_policy: Optional[pulumi.Input[str]] = None,
762
+ match: Optional[pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleMatchArgs', 'NetworkFirewallPolicyPacketMirroringRuleMatchArgsDict']]] = None,
763
+ priority: Optional[pulumi.Input[int]] = None,
764
+ project: Optional[pulumi.Input[str]] = None,
765
+ rule_name: Optional[pulumi.Input[str]] = None,
766
+ security_profile_group: Optional[pulumi.Input[str]] = None,
767
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs', 'NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgsDict']]]]] = None,
768
+ tls_inspect: Optional[pulumi.Input[bool]] = None,
769
+ __props__=None):
770
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
771
+ if not isinstance(opts, pulumi.ResourceOptions):
772
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
773
+ if opts.id is None:
774
+ if __props__ is not None:
775
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
776
+ __props__ = NetworkFirewallPolicyPacketMirroringRuleArgs.__new__(NetworkFirewallPolicyPacketMirroringRuleArgs)
777
+
778
+ if action is None and not opts.urn:
779
+ raise TypeError("Missing required property 'action'")
780
+ __props__.__dict__["action"] = action
781
+ __props__.__dict__["description"] = description
782
+ if direction is None and not opts.urn:
783
+ raise TypeError("Missing required property 'direction'")
784
+ __props__.__dict__["direction"] = direction
785
+ __props__.__dict__["disabled"] = disabled
786
+ if firewall_policy is None and not opts.urn:
787
+ raise TypeError("Missing required property 'firewall_policy'")
788
+ __props__.__dict__["firewall_policy"] = firewall_policy
789
+ if match is None and not opts.urn:
790
+ raise TypeError("Missing required property 'match'")
791
+ __props__.__dict__["match"] = match
792
+ if priority is None and not opts.urn:
793
+ raise TypeError("Missing required property 'priority'")
794
+ __props__.__dict__["priority"] = priority
795
+ __props__.__dict__["project"] = project
796
+ __props__.__dict__["rule_name"] = rule_name
797
+ __props__.__dict__["security_profile_group"] = security_profile_group
798
+ __props__.__dict__["target_secure_tags"] = target_secure_tags
799
+ __props__.__dict__["tls_inspect"] = tls_inspect
800
+ __props__.__dict__["creation_timestamp"] = None
801
+ __props__.__dict__["kind"] = None
802
+ __props__.__dict__["rule_tuple_count"] = None
803
+ super(NetworkFirewallPolicyPacketMirroringRule, __self__).__init__(
804
+ 'gcp:compute/networkFirewallPolicyPacketMirroringRule:NetworkFirewallPolicyPacketMirroringRule',
805
+ resource_name,
806
+ __props__,
807
+ opts)
808
+
809
+ @staticmethod
810
+ def get(resource_name: str,
811
+ id: pulumi.Input[str],
812
+ opts: Optional[pulumi.ResourceOptions] = None,
813
+ action: Optional[pulumi.Input[str]] = None,
814
+ creation_timestamp: Optional[pulumi.Input[str]] = None,
815
+ description: Optional[pulumi.Input[str]] = None,
816
+ direction: Optional[pulumi.Input[str]] = None,
817
+ disabled: Optional[pulumi.Input[bool]] = None,
818
+ firewall_policy: Optional[pulumi.Input[str]] = None,
819
+ kind: Optional[pulumi.Input[str]] = None,
820
+ match: Optional[pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleMatchArgs', 'NetworkFirewallPolicyPacketMirroringRuleMatchArgsDict']]] = None,
821
+ priority: Optional[pulumi.Input[int]] = None,
822
+ project: Optional[pulumi.Input[str]] = None,
823
+ rule_name: Optional[pulumi.Input[str]] = None,
824
+ rule_tuple_count: Optional[pulumi.Input[int]] = None,
825
+ security_profile_group: Optional[pulumi.Input[str]] = None,
826
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs', 'NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgsDict']]]]] = None,
827
+ tls_inspect: Optional[pulumi.Input[bool]] = None) -> 'NetworkFirewallPolicyPacketMirroringRule':
828
+ """
829
+ Get an existing NetworkFirewallPolicyPacketMirroringRule resource's state with the given name, id, and optional extra
830
+ properties used to qualify the lookup.
831
+
832
+ :param str resource_name: The unique name of the resulting resource.
833
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
834
+ :param pulumi.ResourceOptions opts: Options for the resource.
835
+ :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Valid actions are "mirror", "do_not_mirror", "goto_next".
836
+ :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
837
+ :param pulumi.Input[str] description: An optional description for this resource.
838
+ :param pulumi.Input[str] direction: The direction in which this rule applies.
839
+ Possible values are: `INGRESS`, `EGRESS`.
840
+ :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and
841
+ traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.
842
+ :param pulumi.Input[str] firewall_policy: The firewall policy of the resource.
843
+ :param pulumi.Input[str] kind: Type of the resource. Always `compute#packetMirroringRule` for firewall policy packet mirroring rules
844
+ :param pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleMatchArgs', 'NetworkFirewallPolicyPacketMirroringRuleMatchArgsDict']] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
845
+ Structure is documented below.
846
+ :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list.
847
+ The priority must be a positive value between 0 and 2147483647.
848
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
849
+ :param pulumi.Input[str] rule_name: An optional name for the rule. This field is not a unique identifier and can be updated.
850
+ :param pulumi.Input[int] rule_tuple_count: Calculation of the complexity of a single firewall policy rule.
851
+ :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance. Example:
852
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
853
+ Must be specified if action = 'mirror' and cannot be specified for other actions.
854
+ :param pulumi.Input[Sequence[pulumi.Input[Union['NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgs', 'NetworkFirewallPolicyPacketMirroringRuleTargetSecureTagArgsDict']]]] target_secure_tags: A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
855
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
856
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
857
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
858
+ applies to all instances on the specified network. Maximum number of target label tags allowed is 256.
859
+ :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'mirror' and cannot be set
860
+ for other actions.
861
+ """
862
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
863
+
864
+ __props__ = _NetworkFirewallPolicyPacketMirroringRuleState.__new__(_NetworkFirewallPolicyPacketMirroringRuleState)
865
+
866
+ __props__.__dict__["action"] = action
867
+ __props__.__dict__["creation_timestamp"] = creation_timestamp
868
+ __props__.__dict__["description"] = description
869
+ __props__.__dict__["direction"] = direction
870
+ __props__.__dict__["disabled"] = disabled
871
+ __props__.__dict__["firewall_policy"] = firewall_policy
872
+ __props__.__dict__["kind"] = kind
873
+ __props__.__dict__["match"] = match
874
+ __props__.__dict__["priority"] = priority
875
+ __props__.__dict__["project"] = project
876
+ __props__.__dict__["rule_name"] = rule_name
877
+ __props__.__dict__["rule_tuple_count"] = rule_tuple_count
878
+ __props__.__dict__["security_profile_group"] = security_profile_group
879
+ __props__.__dict__["target_secure_tags"] = target_secure_tags
880
+ __props__.__dict__["tls_inspect"] = tls_inspect
881
+ return NetworkFirewallPolicyPacketMirroringRule(resource_name, opts=opts, __props__=__props__)
882
+
883
+ @property
884
+ @pulumi.getter
885
+ def action(self) -> pulumi.Output[str]:
886
+ """
887
+ The Action to perform when the client connection triggers the rule. Valid actions are "mirror", "do_not_mirror", "goto_next".
888
+ """
889
+ return pulumi.get(self, "action")
890
+
891
+ @property
892
+ @pulumi.getter(name="creationTimestamp")
893
+ def creation_timestamp(self) -> pulumi.Output[str]:
894
+ """
895
+ Creation timestamp in RFC3339 text format.
896
+ """
897
+ return pulumi.get(self, "creation_timestamp")
898
+
899
+ @property
900
+ @pulumi.getter
901
+ def description(self) -> pulumi.Output[Optional[str]]:
902
+ """
903
+ An optional description for this resource.
904
+ """
905
+ return pulumi.get(self, "description")
906
+
907
+ @property
908
+ @pulumi.getter
909
+ def direction(self) -> pulumi.Output[str]:
910
+ """
911
+ The direction in which this rule applies.
912
+ Possible values are: `INGRESS`, `EGRESS`.
913
+ """
914
+ return pulumi.get(self, "direction")
915
+
916
+ @property
917
+ @pulumi.getter
918
+ def disabled(self) -> pulumi.Output[Optional[bool]]:
919
+ """
920
+ Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and
921
+ traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.
922
+ """
923
+ return pulumi.get(self, "disabled")
924
+
925
+ @property
926
+ @pulumi.getter(name="firewallPolicy")
927
+ def firewall_policy(self) -> pulumi.Output[str]:
928
+ """
929
+ The firewall policy of the resource.
930
+ """
931
+ return pulumi.get(self, "firewall_policy")
932
+
933
+ @property
934
+ @pulumi.getter
935
+ def kind(self) -> pulumi.Output[str]:
936
+ """
937
+ Type of the resource. Always `compute#packetMirroringRule` for firewall policy packet mirroring rules
938
+ """
939
+ return pulumi.get(self, "kind")
940
+
941
+ @property
942
+ @pulumi.getter
943
+ def match(self) -> pulumi.Output['outputs.NetworkFirewallPolicyPacketMirroringRuleMatch']:
944
+ """
945
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
946
+ Structure is documented below.
947
+ """
948
+ return pulumi.get(self, "match")
949
+
950
+ @property
951
+ @pulumi.getter
952
+ def priority(self) -> pulumi.Output[int]:
953
+ """
954
+ An integer indicating the priority of a rule in the list.
955
+ The priority must be a positive value between 0 and 2147483647.
956
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
957
+ """
958
+ return pulumi.get(self, "priority")
959
+
960
+ @property
961
+ @pulumi.getter
962
+ def project(self) -> pulumi.Output[str]:
963
+ return pulumi.get(self, "project")
964
+
965
+ @property
966
+ @pulumi.getter(name="ruleName")
967
+ def rule_name(self) -> pulumi.Output[Optional[str]]:
968
+ """
969
+ An optional name for the rule. This field is not a unique identifier and can be updated.
970
+ """
971
+ return pulumi.get(self, "rule_name")
972
+
973
+ @property
974
+ @pulumi.getter(name="ruleTupleCount")
975
+ def rule_tuple_count(self) -> pulumi.Output[int]:
976
+ """
977
+ Calculation of the complexity of a single firewall policy rule.
978
+ """
979
+ return pulumi.get(self, "rule_tuple_count")
980
+
981
+ @property
982
+ @pulumi.getter(name="securityProfileGroup")
983
+ def security_profile_group(self) -> pulumi.Output[Optional[str]]:
984
+ """
985
+ A fully-qualified URL of a SecurityProfile resource instance. Example:
986
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
987
+ Must be specified if action = 'mirror' and cannot be specified for other actions.
988
+ """
989
+ return pulumi.get(self, "security_profile_group")
990
+
991
+ @property
992
+ @pulumi.getter(name="targetSecureTags")
993
+ def target_secure_tags(self) -> pulumi.Output[Optional[Sequence['outputs.NetworkFirewallPolicyPacketMirroringRuleTargetSecureTag']]]:
994
+ """
995
+ A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then
996
+ the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the
997
+ targetSecureTag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same
998
+ time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule
999
+ applies to all instances on the specified network. Maximum number of target label tags allowed is 256.
1000
+ """
1001
+ return pulumi.get(self, "target_secure_tags")
1002
+
1003
+ @property
1004
+ @pulumi.getter(name="tlsInspect")
1005
+ def tls_inspect(self) -> pulumi.Output[Optional[bool]]:
1006
+ """
1007
+ Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'mirror' and cannot be set
1008
+ for other actions.
1009
+ """
1010
+ return pulumi.get(self, "tls_inspect")
1011
+