pulumi-gcp 8.19.0a1739290509__py3-none-any.whl → 8.19.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_gcp/__init__.py +80 -0
- pulumi_gcp/_utilities.py +8 -4
- pulumi_gcp/accesscontextmanager/_inputs.py +288 -78
- pulumi_gcp/accesscontextmanager/outputs.py +186 -54
- pulumi_gcp/appengine/_inputs.py +3 -0
- pulumi_gcp/appengine/outputs.py +2 -0
- pulumi_gcp/beyondcorp/__init__.py +5 -0
- pulumi_gcp/beyondcorp/_inputs.py +189 -0
- pulumi_gcp/beyondcorp/application.py +604 -0
- pulumi_gcp/beyondcorp/application_iam_binding.py +1049 -0
- pulumi_gcp/beyondcorp/application_iam_member.py +1049 -0
- pulumi_gcp/beyondcorp/application_iam_policy.py +868 -0
- pulumi_gcp/beyondcorp/get_application_iam_policy.py +174 -0
- pulumi_gcp/beyondcorp/outputs.py +111 -0
- pulumi_gcp/bigqueryanalyticshub/__init__.py +1 -0
- pulumi_gcp/bigqueryanalyticshub/_inputs.py +318 -0
- pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +808 -0
- pulumi_gcp/bigqueryanalyticshub/outputs.py +263 -0
- pulumi_gcp/certificateauthority/_inputs.py +54 -0
- pulumi_gcp/certificateauthority/authority.py +149 -3
- pulumi_gcp/certificateauthority/get_authority.py +15 -4
- pulumi_gcp/certificateauthority/outputs.py +81 -0
- pulumi_gcp/cloudrunv2/_inputs.py +112 -0
- pulumi_gcp/cloudrunv2/outputs.py +144 -1
- pulumi_gcp/cloudrunv2/service.py +2 -0
- pulumi_gcp/colab/__init__.py +2 -0
- pulumi_gcp/colab/_inputs.py +655 -0
- pulumi_gcp/colab/notebook_execution.py +1259 -0
- pulumi_gcp/colab/outputs.py +512 -0
- pulumi_gcp/colab/runtime.py +266 -2
- pulumi_gcp/colab/runtime_template.py +79 -3
- pulumi_gcp/colab/schedule.py +1318 -0
- pulumi_gcp/compute/__init__.py +1 -0
- pulumi_gcp/compute/_inputs.py +204 -0
- pulumi_gcp/compute/firewall_policy.py +54 -43
- pulumi_gcp/compute/forwarding_rule.py +103 -0
- pulumi_gcp/compute/get_forwarding_rule.py +12 -1
- pulumi_gcp/compute/interconnect_attachment.py +12 -0
- pulumi_gcp/compute/network_firewall_policy_packet_mirroring_rule.py +1011 -0
- pulumi_gcp/compute/outputs.py +187 -0
- pulumi_gcp/compute/public_advertised_prefix.py +35 -7
- pulumi_gcp/compute/public_delegated_prefix.py +171 -7
- pulumi_gcp/compute/region_resize_request.py +21 -22
- pulumi_gcp/compute/resize_request.py +22 -23
- pulumi_gcp/compute/subnetwork.py +14 -7
- pulumi_gcp/container/_inputs.py +54 -1
- pulumi_gcp/container/outputs.py +79 -1
- pulumi_gcp/datastream/connection_profile.py +120 -46
- pulumi_gcp/discoveryengine/chat_engine.py +7 -7
- pulumi_gcp/filestore/_inputs.py +222 -0
- pulumi_gcp/filestore/get_instance.py +23 -1
- pulumi_gcp/filestore/instance.py +86 -0
- pulumi_gcp/filestore/outputs.py +282 -0
- pulumi_gcp/gemini/__init__.py +2 -0
- pulumi_gcp/gemini/logging_setting.py +671 -0
- pulumi_gcp/gemini/release_channel_setting.py +639 -0
- pulumi_gcp/memorystore/_inputs.py +296 -0
- pulumi_gcp/memorystore/instance.py +32 -28
- pulumi_gcp/memorystore/outputs.py +224 -0
- pulumi_gcp/monitoring/_inputs.py +12 -9
- pulumi_gcp/monitoring/outputs.py +8 -6
- pulumi_gcp/networkservices/_inputs.py +89 -0
- pulumi_gcp/networkservices/outputs.py +75 -0
- pulumi_gcp/parametermanager/__init__.py +2 -0
- pulumi_gcp/parametermanager/get_parameter_version_render.py +199 -0
- pulumi_gcp/parametermanager/get_regional_parameter_version_render.py +220 -0
- pulumi_gcp/privilegedaccessmanager/entitlement.py +14 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/securesourcemanager/branch_rule.py +4 -0
- pulumi_gcp/securesourcemanager/repository.py +4 -0
- pulumi_gcp/storage/bucket_object.py +8 -0
- pulumi_gcp/workbench/instance.py +70 -2
- {pulumi_gcp-8.19.0a1739290509.dist-info → pulumi_gcp-8.19.1.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.19.0a1739290509.dist-info → pulumi_gcp-8.19.1.dist-info}/RECORD +76 -63
- {pulumi_gcp-8.19.0a1739290509.dist-info → pulumi_gcp-8.19.1.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.19.0a1739290509.dist-info → pulumi_gcp-8.19.1.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
|
+
|