pulumi-gcp 8.40.0a1754721948__py3-none-any.whl → 8.41.0a1754981061__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 +128 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +24 -4
- pulumi_gcp/accesscontextmanager/outputs.py +15 -3
- pulumi_gcp/apigee/__init__.py +2 -0
- pulumi_gcp/apigee/_inputs.py +1435 -0
- pulumi_gcp/apigee/api_product.py +1698 -0
- pulumi_gcp/apigee/outputs.py +1081 -0
- pulumi_gcp/apigee/security_action.py +1010 -0
- pulumi_gcp/artifactregistry/__init__.py +1 -0
- pulumi_gcp/artifactregistry/get_docker_images.py +164 -0
- pulumi_gcp/artifactregistry/outputs.py +109 -2
- pulumi_gcp/artifactregistry/repository.py +6 -6
- pulumi_gcp/backupdisasterrecovery/backup_vault.py +56 -0
- pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +12 -1
- pulumi_gcp/bigquery/_inputs.py +6 -0
- pulumi_gcp/bigquery/get_table.py +23 -1
- pulumi_gcp/bigquery/outputs.py +4 -0
- pulumi_gcp/bigquery/table.py +62 -0
- pulumi_gcp/bigqueryanalyticshub/_inputs.py +180 -0
- pulumi_gcp/bigqueryanalyticshub/data_exchange.py +80 -0
- pulumi_gcp/bigqueryanalyticshub/listing.py +322 -2
- pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +32 -0
- pulumi_gcp/bigqueryanalyticshub/outputs.py +159 -0
- pulumi_gcp/bigtable/__init__.py +1 -0
- pulumi_gcp/bigtable/_inputs.py +33 -0
- pulumi_gcp/bigtable/outputs.py +36 -0
- pulumi_gcp/bigtable/schema_bundle.py +568 -0
- pulumi_gcp/cloudfunctions/_inputs.py +48 -0
- pulumi_gcp/cloudfunctions/function.py +94 -0
- pulumi_gcp/cloudfunctions/get_function.py +23 -1
- pulumi_gcp/cloudfunctions/outputs.py +70 -0
- pulumi_gcp/cloudrunv2/_inputs.py +20 -0
- pulumi_gcp/cloudrunv2/job.py +2 -0
- pulumi_gcp/cloudrunv2/outputs.py +25 -0
- pulumi_gcp/cloudrunv2/worker_pool.py +2 -0
- pulumi_gcp/compute/__init__.py +1 -0
- pulumi_gcp/compute/_inputs.py +713 -22
- pulumi_gcp/compute/firewall_policy_with_rules.py +66 -0
- pulumi_gcp/compute/forwarding_rule.py +0 -21
- pulumi_gcp/compute/get_router.py +12 -1
- pulumi_gcp/compute/outputs.py +562 -22
- pulumi_gcp/compute/preview_feature.py +396 -0
- pulumi_gcp/compute/region_url_map.py +392 -0
- pulumi_gcp/compute/reservation.py +4 -4
- pulumi_gcp/compute/router.py +54 -0
- pulumi_gcp/compute/storage_pool.py +154 -0
- pulumi_gcp/compute/subnetwork.py +54 -0
- pulumi_gcp/config/__init__.pyi +2 -0
- pulumi_gcp/config/vars.py +4 -0
- pulumi_gcp/container/_inputs.py +278 -8
- pulumi_gcp/container/cluster.py +61 -21
- pulumi_gcp/container/get_cluster.py +12 -1
- pulumi_gcp/container/outputs.py +352 -8
- pulumi_gcp/dataproc/_inputs.py +249 -14
- pulumi_gcp/dataproc/batch.py +6 -0
- pulumi_gcp/dataproc/cluster.py +2 -0
- pulumi_gcp/dataproc/outputs.py +215 -12
- pulumi_gcp/dataproc/session_template.py +14 -2
- pulumi_gcp/developerconnect/__init__.py +1 -0
- pulumi_gcp/developerconnect/_inputs.py +583 -0
- pulumi_gcp/developerconnect/insights_config.py +895 -0
- pulumi_gcp/developerconnect/outputs.py +442 -0
- pulumi_gcp/diagflow/__init__.py +1 -0
- pulumi_gcp/diagflow/_inputs.py +1165 -58
- pulumi_gcp/diagflow/cx_generator.py +636 -0
- pulumi_gcp/diagflow/cx_tool.py +2 -2
- pulumi_gcp/diagflow/cx_webhook.py +380 -36
- pulumi_gcp/diagflow/outputs.py +848 -25
- pulumi_gcp/discoveryengine/__init__.py +2 -0
- pulumi_gcp/discoveryengine/_inputs.py +465 -0
- pulumi_gcp/discoveryengine/cmek_config.py +707 -0
- pulumi_gcp/discoveryengine/outputs.py +412 -0
- pulumi_gcp/discoveryengine/recommendation_engine.py +813 -0
- pulumi_gcp/firestore/field.py +6 -6
- pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +107 -9
- pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +2 -2
- pulumi_gcp/gkehub/membership_binding.py +6 -6
- pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
- pulumi_gcp/gkehub/namespace.py +4 -4
- pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
- pulumi_gcp/iam/__init__.py +4 -0
- pulumi_gcp/iam/_inputs.py +98 -0
- pulumi_gcp/iam/get_workforce_pool_iam_policy.py +161 -0
- pulumi_gcp/iam/outputs.py +56 -0
- pulumi_gcp/iam/workforce_pool_iam_binding.py +761 -0
- pulumi_gcp/iam/workforce_pool_iam_member.py +761 -0
- pulumi_gcp/iam/workforce_pool_iam_policy.py +600 -0
- pulumi_gcp/iap/tunnel_dest_group.py +2 -2
- pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
- pulumi_gcp/looker/instance.py +28 -7
- pulumi_gcp/managedkafka/_inputs.py +127 -0
- pulumi_gcp/managedkafka/cluster.py +131 -1
- pulumi_gcp/managedkafka/connect_cluster.py +4 -4
- pulumi_gcp/managedkafka/connector.py +4 -4
- pulumi_gcp/managedkafka/outputs.py +128 -0
- pulumi_gcp/memorystore/instance.py +8 -12
- pulumi_gcp/modelarmor/__init__.py +1 -0
- pulumi_gcp/modelarmor/_inputs.py +683 -0
- pulumi_gcp/modelarmor/floorsetting.py +736 -0
- pulumi_gcp/modelarmor/outputs.py +618 -0
- pulumi_gcp/networkconnectivity/_inputs.py +60 -0
- pulumi_gcp/networkconnectivity/internal_range.py +136 -0
- pulumi_gcp/networkconnectivity/outputs.py +55 -0
- pulumi_gcp/networkconnectivity/spoke.py +14 -14
- pulumi_gcp/oracledatabase/__init__.py +2 -0
- pulumi_gcp/oracledatabase/autonomous_database.py +262 -38
- pulumi_gcp/oracledatabase/cloud_vm_cluster.py +314 -50
- pulumi_gcp/oracledatabase/get_autonomous_database.py +23 -1
- pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +34 -1
- pulumi_gcp/oracledatabase/odb_network.py +721 -0
- pulumi_gcp/oracledatabase/odb_subnet.py +803 -0
- pulumi_gcp/oracledatabase/outputs.py +83 -0
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/parametermanager/parameter_version.py +62 -0
- pulumi_gcp/parametermanager/regional_parameter_version.py +64 -0
- pulumi_gcp/provider.py +20 -0
- pulumi_gcp/pubsub/subscription.py +46 -6
- pulumi_gcp/pubsub/topic.py +36 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/redis/cluster.py +70 -0
- pulumi_gcp/redis/get_cluster.py +12 -1
- pulumi_gcp/redis/instance.py +8 -12
- pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
- pulumi_gcp/secretmanager/get_secret.py +12 -1
- pulumi_gcp/secretmanager/outputs.py +30 -0
- pulumi_gcp/secretmanager/regional_secret.py +61 -0
- pulumi_gcp/secretmanager/secret.py +61 -0
- pulumi_gcp/securesourcemanager/branch_rule.py +16 -8
- pulumi_gcp/securesourcemanager/instance.py +112 -4
- pulumi_gcp/securesourcemanager/repository.py +112 -8
- pulumi_gcp/serviceaccount/get_account_key.py +1 -0
- pulumi_gcp/sql/_inputs.py +6 -6
- pulumi_gcp/sql/database.py +0 -12
- pulumi_gcp/sql/outputs.py +4 -4
- pulumi_gcp/storage/__init__.py +2 -0
- pulumi_gcp/storage/_inputs.py +451 -0
- pulumi_gcp/storage/bucket.py +7 -7
- pulumi_gcp/storage/bucket_object.py +34 -0
- pulumi_gcp/storage/get_bucket_object.py +12 -1
- pulumi_gcp/storage/get_bucket_object_content.py +12 -1
- pulumi_gcp/storage/get_insights_dataset_config.py +363 -0
- pulumi_gcp/storage/insights_dataset_config.py +1280 -0
- pulumi_gcp/storage/outputs.py +619 -0
- pulumi_gcp/vertex/__init__.py +1 -0
- pulumi_gcp/vertex/_inputs.py +3646 -3
- pulumi_gcp/vertex/ai_endpoint.py +4 -4
- pulumi_gcp/vertex/ai_endpoint_with_model_garden_deployment.py +940 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
- pulumi_gcp/vertex/outputs.py +2609 -2
- pulumi_gcp/vmwareengine/network_peering.py +7 -7
- pulumi_gcp/workbench/_inputs.py +118 -0
- pulumi_gcp/workbench/instance.py +171 -2
- pulumi_gcp/workbench/outputs.py +91 -0
- {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0a1754981061.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0a1754981061.dist-info}/RECORD +157 -138
- {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0a1754981061.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0a1754981061.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1010 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by pulumi-language-python. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import builtins as _builtins
|
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__ = ['SecurityActionArgs', 'SecurityAction']
|
20
|
+
|
21
|
+
@pulumi.input_type
|
22
|
+
class SecurityActionArgs:
|
23
|
+
def __init__(__self__, *,
|
24
|
+
condition_config: pulumi.Input['SecurityActionConditionConfigArgs'],
|
25
|
+
env_id: pulumi.Input[_builtins.str],
|
26
|
+
org_id: pulumi.Input[_builtins.str],
|
27
|
+
security_action_id: pulumi.Input[_builtins.str],
|
28
|
+
state: pulumi.Input[_builtins.str],
|
29
|
+
allow: Optional[pulumi.Input['SecurityActionAllowArgs']] = None,
|
30
|
+
api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
31
|
+
deny: Optional[pulumi.Input['SecurityActionDenyArgs']] = None,
|
32
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
33
|
+
expire_time: Optional[pulumi.Input[_builtins.str]] = None,
|
34
|
+
flag: Optional[pulumi.Input['SecurityActionFlagArgs']] = None,
|
35
|
+
ttl: Optional[pulumi.Input[_builtins.str]] = None):
|
36
|
+
"""
|
37
|
+
The set of arguments for constructing a SecurityAction resource.
|
38
|
+
:param pulumi.Input['SecurityActionConditionConfigArgs'] condition_config: A valid SecurityAction must contain at least one condition.
|
39
|
+
Structure is documented below.
|
40
|
+
:param pulumi.Input[_builtins.str] env_id: The Apigee environment that this security action applies to.
|
41
|
+
:param pulumi.Input[_builtins.str] org_id: The organization that this security action applies to.
|
42
|
+
:param pulumi.Input[_builtins.str] security_action_id: The ID to use for the SecurityAction, which will become the final component of the action's resource name.
|
43
|
+
This value should be 0-61 characters, and valid format is (^a-z?$).
|
44
|
+
:param pulumi.Input[_builtins.str] state: Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
|
45
|
+
Possible values are: `ENABLED`, `DISABLED`.
|
46
|
+
:param pulumi.Input['SecurityActionAllowArgs'] allow: Allow a request through if it matches this SecurityAction.
|
47
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_proxies: If unset, this would apply to all proxies in the environment.
|
48
|
+
If set, this action is enforced only if at least one proxy in the repeated
|
49
|
+
list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
|
50
|
+
There can be at most 100 enabled actions with proxies set in an env.
|
51
|
+
Several other restrictions apply on conditions and are detailed later.
|
52
|
+
:param pulumi.Input['SecurityActionDenyArgs'] deny: Deny a request through if it matches this SecurityAction.
|
53
|
+
Structure is documented below.
|
54
|
+
:param pulumi.Input[_builtins.str] description: An optional user provided description of the SecurityAction.
|
55
|
+
:param pulumi.Input[_builtins.str] expire_time: The expiration for this SecurityAction.
|
56
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
|
57
|
+
fractional digits. Offsets other than "Z" are also accepted.
|
58
|
+
Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
59
|
+
:param pulumi.Input['SecurityActionFlagArgs'] flag: Flag a request through if it matches this SecurityAction.
|
60
|
+
Structure is documented below.
|
61
|
+
:param pulumi.Input[_builtins.str] ttl: The TTL for this SecurityAction.
|
62
|
+
A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
|
63
|
+
"""
|
64
|
+
pulumi.set(__self__, "condition_config", condition_config)
|
65
|
+
pulumi.set(__self__, "env_id", env_id)
|
66
|
+
pulumi.set(__self__, "org_id", org_id)
|
67
|
+
pulumi.set(__self__, "security_action_id", security_action_id)
|
68
|
+
pulumi.set(__self__, "state", state)
|
69
|
+
if allow is not None:
|
70
|
+
pulumi.set(__self__, "allow", allow)
|
71
|
+
if api_proxies is not None:
|
72
|
+
pulumi.set(__self__, "api_proxies", api_proxies)
|
73
|
+
if deny is not None:
|
74
|
+
pulumi.set(__self__, "deny", deny)
|
75
|
+
if description is not None:
|
76
|
+
pulumi.set(__self__, "description", description)
|
77
|
+
if expire_time is not None:
|
78
|
+
pulumi.set(__self__, "expire_time", expire_time)
|
79
|
+
if flag is not None:
|
80
|
+
pulumi.set(__self__, "flag", flag)
|
81
|
+
if ttl is not None:
|
82
|
+
pulumi.set(__self__, "ttl", ttl)
|
83
|
+
|
84
|
+
@_builtins.property
|
85
|
+
@pulumi.getter(name="conditionConfig")
|
86
|
+
def condition_config(self) -> pulumi.Input['SecurityActionConditionConfigArgs']:
|
87
|
+
"""
|
88
|
+
A valid SecurityAction must contain at least one condition.
|
89
|
+
Structure is documented below.
|
90
|
+
"""
|
91
|
+
return pulumi.get(self, "condition_config")
|
92
|
+
|
93
|
+
@condition_config.setter
|
94
|
+
def condition_config(self, value: pulumi.Input['SecurityActionConditionConfigArgs']):
|
95
|
+
pulumi.set(self, "condition_config", value)
|
96
|
+
|
97
|
+
@_builtins.property
|
98
|
+
@pulumi.getter(name="envId")
|
99
|
+
def env_id(self) -> pulumi.Input[_builtins.str]:
|
100
|
+
"""
|
101
|
+
The Apigee environment that this security action applies to.
|
102
|
+
"""
|
103
|
+
return pulumi.get(self, "env_id")
|
104
|
+
|
105
|
+
@env_id.setter
|
106
|
+
def env_id(self, value: pulumi.Input[_builtins.str]):
|
107
|
+
pulumi.set(self, "env_id", value)
|
108
|
+
|
109
|
+
@_builtins.property
|
110
|
+
@pulumi.getter(name="orgId")
|
111
|
+
def org_id(self) -> pulumi.Input[_builtins.str]:
|
112
|
+
"""
|
113
|
+
The organization that this security action applies to.
|
114
|
+
"""
|
115
|
+
return pulumi.get(self, "org_id")
|
116
|
+
|
117
|
+
@org_id.setter
|
118
|
+
def org_id(self, value: pulumi.Input[_builtins.str]):
|
119
|
+
pulumi.set(self, "org_id", value)
|
120
|
+
|
121
|
+
@_builtins.property
|
122
|
+
@pulumi.getter(name="securityActionId")
|
123
|
+
def security_action_id(self) -> pulumi.Input[_builtins.str]:
|
124
|
+
"""
|
125
|
+
The ID to use for the SecurityAction, which will become the final component of the action's resource name.
|
126
|
+
This value should be 0-61 characters, and valid format is (^a-z?$).
|
127
|
+
"""
|
128
|
+
return pulumi.get(self, "security_action_id")
|
129
|
+
|
130
|
+
@security_action_id.setter
|
131
|
+
def security_action_id(self, value: pulumi.Input[_builtins.str]):
|
132
|
+
pulumi.set(self, "security_action_id", value)
|
133
|
+
|
134
|
+
@_builtins.property
|
135
|
+
@pulumi.getter
|
136
|
+
def state(self) -> pulumi.Input[_builtins.str]:
|
137
|
+
"""
|
138
|
+
Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
|
139
|
+
Possible values are: `ENABLED`, `DISABLED`.
|
140
|
+
"""
|
141
|
+
return pulumi.get(self, "state")
|
142
|
+
|
143
|
+
@state.setter
|
144
|
+
def state(self, value: pulumi.Input[_builtins.str]):
|
145
|
+
pulumi.set(self, "state", value)
|
146
|
+
|
147
|
+
@_builtins.property
|
148
|
+
@pulumi.getter
|
149
|
+
def allow(self) -> Optional[pulumi.Input['SecurityActionAllowArgs']]:
|
150
|
+
"""
|
151
|
+
Allow a request through if it matches this SecurityAction.
|
152
|
+
"""
|
153
|
+
return pulumi.get(self, "allow")
|
154
|
+
|
155
|
+
@allow.setter
|
156
|
+
def allow(self, value: Optional[pulumi.Input['SecurityActionAllowArgs']]):
|
157
|
+
pulumi.set(self, "allow", value)
|
158
|
+
|
159
|
+
@_builtins.property
|
160
|
+
@pulumi.getter(name="apiProxies")
|
161
|
+
def api_proxies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
162
|
+
"""
|
163
|
+
If unset, this would apply to all proxies in the environment.
|
164
|
+
If set, this action is enforced only if at least one proxy in the repeated
|
165
|
+
list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
|
166
|
+
There can be at most 100 enabled actions with proxies set in an env.
|
167
|
+
Several other restrictions apply on conditions and are detailed later.
|
168
|
+
"""
|
169
|
+
return pulumi.get(self, "api_proxies")
|
170
|
+
|
171
|
+
@api_proxies.setter
|
172
|
+
def api_proxies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
173
|
+
pulumi.set(self, "api_proxies", value)
|
174
|
+
|
175
|
+
@_builtins.property
|
176
|
+
@pulumi.getter
|
177
|
+
def deny(self) -> Optional[pulumi.Input['SecurityActionDenyArgs']]:
|
178
|
+
"""
|
179
|
+
Deny a request through if it matches this SecurityAction.
|
180
|
+
Structure is documented below.
|
181
|
+
"""
|
182
|
+
return pulumi.get(self, "deny")
|
183
|
+
|
184
|
+
@deny.setter
|
185
|
+
def deny(self, value: Optional[pulumi.Input['SecurityActionDenyArgs']]):
|
186
|
+
pulumi.set(self, "deny", value)
|
187
|
+
|
188
|
+
@_builtins.property
|
189
|
+
@pulumi.getter
|
190
|
+
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
|
191
|
+
"""
|
192
|
+
An optional user provided description of the SecurityAction.
|
193
|
+
"""
|
194
|
+
return pulumi.get(self, "description")
|
195
|
+
|
196
|
+
@description.setter
|
197
|
+
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
|
198
|
+
pulumi.set(self, "description", value)
|
199
|
+
|
200
|
+
@_builtins.property
|
201
|
+
@pulumi.getter(name="expireTime")
|
202
|
+
def expire_time(self) -> Optional[pulumi.Input[_builtins.str]]:
|
203
|
+
"""
|
204
|
+
The expiration for this SecurityAction.
|
205
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
|
206
|
+
fractional digits. Offsets other than "Z" are also accepted.
|
207
|
+
Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
208
|
+
"""
|
209
|
+
return pulumi.get(self, "expire_time")
|
210
|
+
|
211
|
+
@expire_time.setter
|
212
|
+
def expire_time(self, value: Optional[pulumi.Input[_builtins.str]]):
|
213
|
+
pulumi.set(self, "expire_time", value)
|
214
|
+
|
215
|
+
@_builtins.property
|
216
|
+
@pulumi.getter
|
217
|
+
def flag(self) -> Optional[pulumi.Input['SecurityActionFlagArgs']]:
|
218
|
+
"""
|
219
|
+
Flag a request through if it matches this SecurityAction.
|
220
|
+
Structure is documented below.
|
221
|
+
"""
|
222
|
+
return pulumi.get(self, "flag")
|
223
|
+
|
224
|
+
@flag.setter
|
225
|
+
def flag(self, value: Optional[pulumi.Input['SecurityActionFlagArgs']]):
|
226
|
+
pulumi.set(self, "flag", value)
|
227
|
+
|
228
|
+
@_builtins.property
|
229
|
+
@pulumi.getter
|
230
|
+
def ttl(self) -> Optional[pulumi.Input[_builtins.str]]:
|
231
|
+
"""
|
232
|
+
The TTL for this SecurityAction.
|
233
|
+
A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
|
234
|
+
"""
|
235
|
+
return pulumi.get(self, "ttl")
|
236
|
+
|
237
|
+
@ttl.setter
|
238
|
+
def ttl(self, value: Optional[pulumi.Input[_builtins.str]]):
|
239
|
+
pulumi.set(self, "ttl", value)
|
240
|
+
|
241
|
+
|
242
|
+
@pulumi.input_type
|
243
|
+
class _SecurityActionState:
|
244
|
+
def __init__(__self__, *,
|
245
|
+
allow: Optional[pulumi.Input['SecurityActionAllowArgs']] = None,
|
246
|
+
api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
247
|
+
condition_config: Optional[pulumi.Input['SecurityActionConditionConfigArgs']] = None,
|
248
|
+
create_time: Optional[pulumi.Input[_builtins.str]] = None,
|
249
|
+
deny: Optional[pulumi.Input['SecurityActionDenyArgs']] = None,
|
250
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
251
|
+
env_id: Optional[pulumi.Input[_builtins.str]] = None,
|
252
|
+
expire_time: Optional[pulumi.Input[_builtins.str]] = None,
|
253
|
+
flag: Optional[pulumi.Input['SecurityActionFlagArgs']] = None,
|
254
|
+
org_id: Optional[pulumi.Input[_builtins.str]] = None,
|
255
|
+
security_action_id: Optional[pulumi.Input[_builtins.str]] = None,
|
256
|
+
state: Optional[pulumi.Input[_builtins.str]] = None,
|
257
|
+
ttl: Optional[pulumi.Input[_builtins.str]] = None,
|
258
|
+
update_time: Optional[pulumi.Input[_builtins.str]] = None):
|
259
|
+
"""
|
260
|
+
Input properties used for looking up and filtering SecurityAction resources.
|
261
|
+
:param pulumi.Input['SecurityActionAllowArgs'] allow: Allow a request through if it matches this SecurityAction.
|
262
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_proxies: If unset, this would apply to all proxies in the environment.
|
263
|
+
If set, this action is enforced only if at least one proxy in the repeated
|
264
|
+
list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
|
265
|
+
There can be at most 100 enabled actions with proxies set in an env.
|
266
|
+
Several other restrictions apply on conditions and are detailed later.
|
267
|
+
:param pulumi.Input['SecurityActionConditionConfigArgs'] condition_config: A valid SecurityAction must contain at least one condition.
|
268
|
+
Structure is documented below.
|
269
|
+
:param pulumi.Input[_builtins.str] create_time: The create time for this SecurityAction.
|
270
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
|
271
|
+
Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
272
|
+
:param pulumi.Input['SecurityActionDenyArgs'] deny: Deny a request through if it matches this SecurityAction.
|
273
|
+
Structure is documented below.
|
274
|
+
:param pulumi.Input[_builtins.str] description: An optional user provided description of the SecurityAction.
|
275
|
+
:param pulumi.Input[_builtins.str] env_id: The Apigee environment that this security action applies to.
|
276
|
+
:param pulumi.Input[_builtins.str] expire_time: The expiration for this SecurityAction.
|
277
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
|
278
|
+
fractional digits. Offsets other than "Z" are also accepted.
|
279
|
+
Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
280
|
+
:param pulumi.Input['SecurityActionFlagArgs'] flag: Flag a request through if it matches this SecurityAction.
|
281
|
+
Structure is documented below.
|
282
|
+
:param pulumi.Input[_builtins.str] org_id: The organization that this security action applies to.
|
283
|
+
:param pulumi.Input[_builtins.str] security_action_id: The ID to use for the SecurityAction, which will become the final component of the action's resource name.
|
284
|
+
This value should be 0-61 characters, and valid format is (^a-z?$).
|
285
|
+
:param pulumi.Input[_builtins.str] state: Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
|
286
|
+
Possible values are: `ENABLED`, `DISABLED`.
|
287
|
+
:param pulumi.Input[_builtins.str] ttl: The TTL for this SecurityAction.
|
288
|
+
A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
|
289
|
+
:param pulumi.Input[_builtins.str] update_time: The update time for this SecurityAction. This reflects when this SecurityAction changed states.
|
290
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
|
291
|
+
Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
292
|
+
"""
|
293
|
+
if allow is not None:
|
294
|
+
pulumi.set(__self__, "allow", allow)
|
295
|
+
if api_proxies is not None:
|
296
|
+
pulumi.set(__self__, "api_proxies", api_proxies)
|
297
|
+
if condition_config is not None:
|
298
|
+
pulumi.set(__self__, "condition_config", condition_config)
|
299
|
+
if create_time is not None:
|
300
|
+
pulumi.set(__self__, "create_time", create_time)
|
301
|
+
if deny is not None:
|
302
|
+
pulumi.set(__self__, "deny", deny)
|
303
|
+
if description is not None:
|
304
|
+
pulumi.set(__self__, "description", description)
|
305
|
+
if env_id is not None:
|
306
|
+
pulumi.set(__self__, "env_id", env_id)
|
307
|
+
if expire_time is not None:
|
308
|
+
pulumi.set(__self__, "expire_time", expire_time)
|
309
|
+
if flag is not None:
|
310
|
+
pulumi.set(__self__, "flag", flag)
|
311
|
+
if org_id is not None:
|
312
|
+
pulumi.set(__self__, "org_id", org_id)
|
313
|
+
if security_action_id is not None:
|
314
|
+
pulumi.set(__self__, "security_action_id", security_action_id)
|
315
|
+
if state is not None:
|
316
|
+
pulumi.set(__self__, "state", state)
|
317
|
+
if ttl is not None:
|
318
|
+
pulumi.set(__self__, "ttl", ttl)
|
319
|
+
if update_time is not None:
|
320
|
+
pulumi.set(__self__, "update_time", update_time)
|
321
|
+
|
322
|
+
@_builtins.property
|
323
|
+
@pulumi.getter
|
324
|
+
def allow(self) -> Optional[pulumi.Input['SecurityActionAllowArgs']]:
|
325
|
+
"""
|
326
|
+
Allow a request through if it matches this SecurityAction.
|
327
|
+
"""
|
328
|
+
return pulumi.get(self, "allow")
|
329
|
+
|
330
|
+
@allow.setter
|
331
|
+
def allow(self, value: Optional[pulumi.Input['SecurityActionAllowArgs']]):
|
332
|
+
pulumi.set(self, "allow", value)
|
333
|
+
|
334
|
+
@_builtins.property
|
335
|
+
@pulumi.getter(name="apiProxies")
|
336
|
+
def api_proxies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
337
|
+
"""
|
338
|
+
If unset, this would apply to all proxies in the environment.
|
339
|
+
If set, this action is enforced only if at least one proxy in the repeated
|
340
|
+
list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
|
341
|
+
There can be at most 100 enabled actions with proxies set in an env.
|
342
|
+
Several other restrictions apply on conditions and are detailed later.
|
343
|
+
"""
|
344
|
+
return pulumi.get(self, "api_proxies")
|
345
|
+
|
346
|
+
@api_proxies.setter
|
347
|
+
def api_proxies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
348
|
+
pulumi.set(self, "api_proxies", value)
|
349
|
+
|
350
|
+
@_builtins.property
|
351
|
+
@pulumi.getter(name="conditionConfig")
|
352
|
+
def condition_config(self) -> Optional[pulumi.Input['SecurityActionConditionConfigArgs']]:
|
353
|
+
"""
|
354
|
+
A valid SecurityAction must contain at least one condition.
|
355
|
+
Structure is documented below.
|
356
|
+
"""
|
357
|
+
return pulumi.get(self, "condition_config")
|
358
|
+
|
359
|
+
@condition_config.setter
|
360
|
+
def condition_config(self, value: Optional[pulumi.Input['SecurityActionConditionConfigArgs']]):
|
361
|
+
pulumi.set(self, "condition_config", value)
|
362
|
+
|
363
|
+
@_builtins.property
|
364
|
+
@pulumi.getter(name="createTime")
|
365
|
+
def create_time(self) -> Optional[pulumi.Input[_builtins.str]]:
|
366
|
+
"""
|
367
|
+
The create time for this SecurityAction.
|
368
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
|
369
|
+
Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
370
|
+
"""
|
371
|
+
return pulumi.get(self, "create_time")
|
372
|
+
|
373
|
+
@create_time.setter
|
374
|
+
def create_time(self, value: Optional[pulumi.Input[_builtins.str]]):
|
375
|
+
pulumi.set(self, "create_time", value)
|
376
|
+
|
377
|
+
@_builtins.property
|
378
|
+
@pulumi.getter
|
379
|
+
def deny(self) -> Optional[pulumi.Input['SecurityActionDenyArgs']]:
|
380
|
+
"""
|
381
|
+
Deny a request through if it matches this SecurityAction.
|
382
|
+
Structure is documented below.
|
383
|
+
"""
|
384
|
+
return pulumi.get(self, "deny")
|
385
|
+
|
386
|
+
@deny.setter
|
387
|
+
def deny(self, value: Optional[pulumi.Input['SecurityActionDenyArgs']]):
|
388
|
+
pulumi.set(self, "deny", value)
|
389
|
+
|
390
|
+
@_builtins.property
|
391
|
+
@pulumi.getter
|
392
|
+
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
|
393
|
+
"""
|
394
|
+
An optional user provided description of the SecurityAction.
|
395
|
+
"""
|
396
|
+
return pulumi.get(self, "description")
|
397
|
+
|
398
|
+
@description.setter
|
399
|
+
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
|
400
|
+
pulumi.set(self, "description", value)
|
401
|
+
|
402
|
+
@_builtins.property
|
403
|
+
@pulumi.getter(name="envId")
|
404
|
+
def env_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
405
|
+
"""
|
406
|
+
The Apigee environment that this security action applies to.
|
407
|
+
"""
|
408
|
+
return pulumi.get(self, "env_id")
|
409
|
+
|
410
|
+
@env_id.setter
|
411
|
+
def env_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
412
|
+
pulumi.set(self, "env_id", value)
|
413
|
+
|
414
|
+
@_builtins.property
|
415
|
+
@pulumi.getter(name="expireTime")
|
416
|
+
def expire_time(self) -> Optional[pulumi.Input[_builtins.str]]:
|
417
|
+
"""
|
418
|
+
The expiration for this SecurityAction.
|
419
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
|
420
|
+
fractional digits. Offsets other than "Z" are also accepted.
|
421
|
+
Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
422
|
+
"""
|
423
|
+
return pulumi.get(self, "expire_time")
|
424
|
+
|
425
|
+
@expire_time.setter
|
426
|
+
def expire_time(self, value: Optional[pulumi.Input[_builtins.str]]):
|
427
|
+
pulumi.set(self, "expire_time", value)
|
428
|
+
|
429
|
+
@_builtins.property
|
430
|
+
@pulumi.getter
|
431
|
+
def flag(self) -> Optional[pulumi.Input['SecurityActionFlagArgs']]:
|
432
|
+
"""
|
433
|
+
Flag a request through if it matches this SecurityAction.
|
434
|
+
Structure is documented below.
|
435
|
+
"""
|
436
|
+
return pulumi.get(self, "flag")
|
437
|
+
|
438
|
+
@flag.setter
|
439
|
+
def flag(self, value: Optional[pulumi.Input['SecurityActionFlagArgs']]):
|
440
|
+
pulumi.set(self, "flag", value)
|
441
|
+
|
442
|
+
@_builtins.property
|
443
|
+
@pulumi.getter(name="orgId")
|
444
|
+
def org_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
445
|
+
"""
|
446
|
+
The organization that this security action applies to.
|
447
|
+
"""
|
448
|
+
return pulumi.get(self, "org_id")
|
449
|
+
|
450
|
+
@org_id.setter
|
451
|
+
def org_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
452
|
+
pulumi.set(self, "org_id", value)
|
453
|
+
|
454
|
+
@_builtins.property
|
455
|
+
@pulumi.getter(name="securityActionId")
|
456
|
+
def security_action_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
457
|
+
"""
|
458
|
+
The ID to use for the SecurityAction, which will become the final component of the action's resource name.
|
459
|
+
This value should be 0-61 characters, and valid format is (^a-z?$).
|
460
|
+
"""
|
461
|
+
return pulumi.get(self, "security_action_id")
|
462
|
+
|
463
|
+
@security_action_id.setter
|
464
|
+
def security_action_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
465
|
+
pulumi.set(self, "security_action_id", value)
|
466
|
+
|
467
|
+
@_builtins.property
|
468
|
+
@pulumi.getter
|
469
|
+
def state(self) -> Optional[pulumi.Input[_builtins.str]]:
|
470
|
+
"""
|
471
|
+
Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
|
472
|
+
Possible values are: `ENABLED`, `DISABLED`.
|
473
|
+
"""
|
474
|
+
return pulumi.get(self, "state")
|
475
|
+
|
476
|
+
@state.setter
|
477
|
+
def state(self, value: Optional[pulumi.Input[_builtins.str]]):
|
478
|
+
pulumi.set(self, "state", value)
|
479
|
+
|
480
|
+
@_builtins.property
|
481
|
+
@pulumi.getter
|
482
|
+
def ttl(self) -> Optional[pulumi.Input[_builtins.str]]:
|
483
|
+
"""
|
484
|
+
The TTL for this SecurityAction.
|
485
|
+
A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
|
486
|
+
"""
|
487
|
+
return pulumi.get(self, "ttl")
|
488
|
+
|
489
|
+
@ttl.setter
|
490
|
+
def ttl(self, value: Optional[pulumi.Input[_builtins.str]]):
|
491
|
+
pulumi.set(self, "ttl", value)
|
492
|
+
|
493
|
+
@_builtins.property
|
494
|
+
@pulumi.getter(name="updateTime")
|
495
|
+
def update_time(self) -> Optional[pulumi.Input[_builtins.str]]:
|
496
|
+
"""
|
497
|
+
The update time for this SecurityAction. This reflects when this SecurityAction changed states.
|
498
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
|
499
|
+
Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
500
|
+
"""
|
501
|
+
return pulumi.get(self, "update_time")
|
502
|
+
|
503
|
+
@update_time.setter
|
504
|
+
def update_time(self, value: Optional[pulumi.Input[_builtins.str]]):
|
505
|
+
pulumi.set(self, "update_time", value)
|
506
|
+
|
507
|
+
|
508
|
+
@pulumi.type_token("gcp:apigee/securityAction:SecurityAction")
|
509
|
+
class SecurityAction(pulumi.CustomResource):
|
510
|
+
@overload
|
511
|
+
def __init__(__self__,
|
512
|
+
resource_name: str,
|
513
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
514
|
+
allow: Optional[pulumi.Input[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']]] = None,
|
515
|
+
api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
516
|
+
condition_config: Optional[pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']]] = None,
|
517
|
+
deny: Optional[pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']]] = None,
|
518
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
519
|
+
env_id: Optional[pulumi.Input[_builtins.str]] = None,
|
520
|
+
expire_time: Optional[pulumi.Input[_builtins.str]] = None,
|
521
|
+
flag: Optional[pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']]] = None,
|
522
|
+
org_id: Optional[pulumi.Input[_builtins.str]] = None,
|
523
|
+
security_action_id: Optional[pulumi.Input[_builtins.str]] = None,
|
524
|
+
state: Optional[pulumi.Input[_builtins.str]] = None,
|
525
|
+
ttl: Optional[pulumi.Input[_builtins.str]] = None,
|
526
|
+
__props__=None):
|
527
|
+
"""
|
528
|
+
A SecurityAction is rule that can be enforced at an environment level.
|
529
|
+
The result is one of: - A denied API call - An explicitly allowed API call
|
530
|
+
- A flagged API call (HTTP headers added before the target receives it)
|
531
|
+
At least one condition is required to create a SecurityAction.
|
532
|
+
|
533
|
+
To get more information about SecurityAction, see:
|
534
|
+
|
535
|
+
* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.securityActions/create)
|
536
|
+
* How-to Guides
|
537
|
+
* [Creating security actions](https://cloud.google.com/apigee/docs/api-security/security-actions-api#create-security-actions)
|
538
|
+
|
539
|
+
## Example Usage
|
540
|
+
|
541
|
+
### Apigee Security Action Basic
|
542
|
+
|
543
|
+
```python
|
544
|
+
import pulumi
|
545
|
+
import pulumi_gcp as gcp
|
546
|
+
|
547
|
+
current = gcp.organizations.get_client_config()
|
548
|
+
apigee_network = gcp.compute.Network("apigee_network", name="my-network")
|
549
|
+
apigee_range = gcp.compute.GlobalAddress("apigee_range",
|
550
|
+
name="my-address",
|
551
|
+
purpose="VPC_PEERING",
|
552
|
+
address_type="INTERNAL",
|
553
|
+
prefix_length=16,
|
554
|
+
network=apigee_network.id)
|
555
|
+
apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
|
556
|
+
network=apigee_network.id,
|
557
|
+
service="servicenetworking.googleapis.com",
|
558
|
+
reserved_peering_ranges=[apigee_range.name])
|
559
|
+
apigee_org = gcp.apigee.Organization("apigee_org",
|
560
|
+
analytics_region="us-central1",
|
561
|
+
project_id=current.project,
|
562
|
+
authorized_network=apigee_network.id,
|
563
|
+
opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
|
564
|
+
env = gcp.apigee.Environment("env",
|
565
|
+
name="my-environment",
|
566
|
+
description="Apigee Environment",
|
567
|
+
display_name="environment-1",
|
568
|
+
org_id=apigee_org.id)
|
569
|
+
apigee_org_security_addons_config = gcp.apigee.AddonsConfig("apigee_org_security_addons_config",
|
570
|
+
org=apigee_org.name,
|
571
|
+
addons_config={
|
572
|
+
"api_security_config": {
|
573
|
+
"enabled": True,
|
574
|
+
},
|
575
|
+
})
|
576
|
+
apigee_security_action = gcp.apigee.SecurityAction("apigee_security_action",
|
577
|
+
security_action_id="my-security-action",
|
578
|
+
org_id=apigee_org.name,
|
579
|
+
env_id=env.name,
|
580
|
+
description="Apigee Security Action",
|
581
|
+
state="ENABLED",
|
582
|
+
condition_config={
|
583
|
+
"ip_address_ranges": [
|
584
|
+
"100.0.220.1",
|
585
|
+
"200.0.0.1",
|
586
|
+
],
|
587
|
+
"bot_reasons": [
|
588
|
+
"Flooder",
|
589
|
+
"Public Cloud Azure",
|
590
|
+
"Public Cloud AWS",
|
591
|
+
],
|
592
|
+
},
|
593
|
+
allow={},
|
594
|
+
expire_time="2025-12-31T23:59:59Z",
|
595
|
+
opts = pulumi.ResourceOptions(depends_on=[apigee_org_security_addons_config]))
|
596
|
+
```
|
597
|
+
|
598
|
+
## Import
|
599
|
+
|
600
|
+
SecurityAction can be imported using any of these accepted formats:
|
601
|
+
|
602
|
+
* `organizations/{{org_id}}/environments/{{env_id}}/securityActions/{{security_action_id}}`
|
603
|
+
|
604
|
+
* `{{org_id}}/{{env_id}}/{{security_action_id}}`
|
605
|
+
|
606
|
+
When using the `pulumi import` command, SecurityAction can be imported using one of the formats above. For example:
|
607
|
+
|
608
|
+
```sh
|
609
|
+
$ pulumi import gcp:apigee/securityAction:SecurityAction default organizations/{{org_id}}/environments/{{env_id}}/securityActions/{{security_action_id}}
|
610
|
+
```
|
611
|
+
|
612
|
+
```sh
|
613
|
+
$ pulumi import gcp:apigee/securityAction:SecurityAction default {{org_id}}/{{env_id}}/{{security_action_id}}
|
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[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']] allow: Allow a request through if it matches this SecurityAction.
|
619
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_proxies: If unset, this would apply to all proxies in the environment.
|
620
|
+
If set, this action is enforced only if at least one proxy in the repeated
|
621
|
+
list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
|
622
|
+
There can be at most 100 enabled actions with proxies set in an env.
|
623
|
+
Several other restrictions apply on conditions and are detailed later.
|
624
|
+
:param pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']] condition_config: A valid SecurityAction must contain at least one condition.
|
625
|
+
Structure is documented below.
|
626
|
+
:param pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']] deny: Deny a request through if it matches this SecurityAction.
|
627
|
+
Structure is documented below.
|
628
|
+
:param pulumi.Input[_builtins.str] description: An optional user provided description of the SecurityAction.
|
629
|
+
:param pulumi.Input[_builtins.str] env_id: The Apigee environment that this security action applies to.
|
630
|
+
:param pulumi.Input[_builtins.str] expire_time: The expiration for this SecurityAction.
|
631
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
|
632
|
+
fractional digits. Offsets other than "Z" are also accepted.
|
633
|
+
Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
634
|
+
:param pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']] flag: Flag a request through if it matches this SecurityAction.
|
635
|
+
Structure is documented below.
|
636
|
+
:param pulumi.Input[_builtins.str] org_id: The organization that this security action applies to.
|
637
|
+
:param pulumi.Input[_builtins.str] security_action_id: The ID to use for the SecurityAction, which will become the final component of the action's resource name.
|
638
|
+
This value should be 0-61 characters, and valid format is (^a-z?$).
|
639
|
+
:param pulumi.Input[_builtins.str] state: Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
|
640
|
+
Possible values are: `ENABLED`, `DISABLED`.
|
641
|
+
:param pulumi.Input[_builtins.str] ttl: The TTL for this SecurityAction.
|
642
|
+
A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
|
643
|
+
"""
|
644
|
+
...
|
645
|
+
@overload
|
646
|
+
def __init__(__self__,
|
647
|
+
resource_name: str,
|
648
|
+
args: SecurityActionArgs,
|
649
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
650
|
+
"""
|
651
|
+
A SecurityAction is rule that can be enforced at an environment level.
|
652
|
+
The result is one of: - A denied API call - An explicitly allowed API call
|
653
|
+
- A flagged API call (HTTP headers added before the target receives it)
|
654
|
+
At least one condition is required to create a SecurityAction.
|
655
|
+
|
656
|
+
To get more information about SecurityAction, see:
|
657
|
+
|
658
|
+
* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.securityActions/create)
|
659
|
+
* How-to Guides
|
660
|
+
* [Creating security actions](https://cloud.google.com/apigee/docs/api-security/security-actions-api#create-security-actions)
|
661
|
+
|
662
|
+
## Example Usage
|
663
|
+
|
664
|
+
### Apigee Security Action Basic
|
665
|
+
|
666
|
+
```python
|
667
|
+
import pulumi
|
668
|
+
import pulumi_gcp as gcp
|
669
|
+
|
670
|
+
current = gcp.organizations.get_client_config()
|
671
|
+
apigee_network = gcp.compute.Network("apigee_network", name="my-network")
|
672
|
+
apigee_range = gcp.compute.GlobalAddress("apigee_range",
|
673
|
+
name="my-address",
|
674
|
+
purpose="VPC_PEERING",
|
675
|
+
address_type="INTERNAL",
|
676
|
+
prefix_length=16,
|
677
|
+
network=apigee_network.id)
|
678
|
+
apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
|
679
|
+
network=apigee_network.id,
|
680
|
+
service="servicenetworking.googleapis.com",
|
681
|
+
reserved_peering_ranges=[apigee_range.name])
|
682
|
+
apigee_org = gcp.apigee.Organization("apigee_org",
|
683
|
+
analytics_region="us-central1",
|
684
|
+
project_id=current.project,
|
685
|
+
authorized_network=apigee_network.id,
|
686
|
+
opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
|
687
|
+
env = gcp.apigee.Environment("env",
|
688
|
+
name="my-environment",
|
689
|
+
description="Apigee Environment",
|
690
|
+
display_name="environment-1",
|
691
|
+
org_id=apigee_org.id)
|
692
|
+
apigee_org_security_addons_config = gcp.apigee.AddonsConfig("apigee_org_security_addons_config",
|
693
|
+
org=apigee_org.name,
|
694
|
+
addons_config={
|
695
|
+
"api_security_config": {
|
696
|
+
"enabled": True,
|
697
|
+
},
|
698
|
+
})
|
699
|
+
apigee_security_action = gcp.apigee.SecurityAction("apigee_security_action",
|
700
|
+
security_action_id="my-security-action",
|
701
|
+
org_id=apigee_org.name,
|
702
|
+
env_id=env.name,
|
703
|
+
description="Apigee Security Action",
|
704
|
+
state="ENABLED",
|
705
|
+
condition_config={
|
706
|
+
"ip_address_ranges": [
|
707
|
+
"100.0.220.1",
|
708
|
+
"200.0.0.1",
|
709
|
+
],
|
710
|
+
"bot_reasons": [
|
711
|
+
"Flooder",
|
712
|
+
"Public Cloud Azure",
|
713
|
+
"Public Cloud AWS",
|
714
|
+
],
|
715
|
+
},
|
716
|
+
allow={},
|
717
|
+
expire_time="2025-12-31T23:59:59Z",
|
718
|
+
opts = pulumi.ResourceOptions(depends_on=[apigee_org_security_addons_config]))
|
719
|
+
```
|
720
|
+
|
721
|
+
## Import
|
722
|
+
|
723
|
+
SecurityAction can be imported using any of these accepted formats:
|
724
|
+
|
725
|
+
* `organizations/{{org_id}}/environments/{{env_id}}/securityActions/{{security_action_id}}`
|
726
|
+
|
727
|
+
* `{{org_id}}/{{env_id}}/{{security_action_id}}`
|
728
|
+
|
729
|
+
When using the `pulumi import` command, SecurityAction can be imported using one of the formats above. For example:
|
730
|
+
|
731
|
+
```sh
|
732
|
+
$ pulumi import gcp:apigee/securityAction:SecurityAction default organizations/{{org_id}}/environments/{{env_id}}/securityActions/{{security_action_id}}
|
733
|
+
```
|
734
|
+
|
735
|
+
```sh
|
736
|
+
$ pulumi import gcp:apigee/securityAction:SecurityAction default {{org_id}}/{{env_id}}/{{security_action_id}}
|
737
|
+
```
|
738
|
+
|
739
|
+
:param str resource_name: The name of the resource.
|
740
|
+
:param SecurityActionArgs args: The arguments to use to populate this resource's properties.
|
741
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
742
|
+
"""
|
743
|
+
...
|
744
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
745
|
+
resource_args, opts = _utilities.get_resource_args_opts(SecurityActionArgs, pulumi.ResourceOptions, *args, **kwargs)
|
746
|
+
if resource_args is not None:
|
747
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
748
|
+
else:
|
749
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
750
|
+
|
751
|
+
def _internal_init(__self__,
|
752
|
+
resource_name: str,
|
753
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
754
|
+
allow: Optional[pulumi.Input[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']]] = None,
|
755
|
+
api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
756
|
+
condition_config: Optional[pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']]] = None,
|
757
|
+
deny: Optional[pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']]] = None,
|
758
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
759
|
+
env_id: Optional[pulumi.Input[_builtins.str]] = None,
|
760
|
+
expire_time: Optional[pulumi.Input[_builtins.str]] = None,
|
761
|
+
flag: Optional[pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']]] = None,
|
762
|
+
org_id: Optional[pulumi.Input[_builtins.str]] = None,
|
763
|
+
security_action_id: Optional[pulumi.Input[_builtins.str]] = None,
|
764
|
+
state: Optional[pulumi.Input[_builtins.str]] = None,
|
765
|
+
ttl: Optional[pulumi.Input[_builtins.str]] = None,
|
766
|
+
__props__=None):
|
767
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
768
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
769
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
770
|
+
if opts.id is None:
|
771
|
+
if __props__ is not None:
|
772
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
773
|
+
__props__ = SecurityActionArgs.__new__(SecurityActionArgs)
|
774
|
+
|
775
|
+
__props__.__dict__["allow"] = allow
|
776
|
+
__props__.__dict__["api_proxies"] = api_proxies
|
777
|
+
if condition_config is None and not opts.urn:
|
778
|
+
raise TypeError("Missing required property 'condition_config'")
|
779
|
+
__props__.__dict__["condition_config"] = condition_config
|
780
|
+
__props__.__dict__["deny"] = deny
|
781
|
+
__props__.__dict__["description"] = description
|
782
|
+
if env_id is None and not opts.urn:
|
783
|
+
raise TypeError("Missing required property 'env_id'")
|
784
|
+
__props__.__dict__["env_id"] = env_id
|
785
|
+
__props__.__dict__["expire_time"] = expire_time
|
786
|
+
__props__.__dict__["flag"] = flag
|
787
|
+
if org_id is None and not opts.urn:
|
788
|
+
raise TypeError("Missing required property 'org_id'")
|
789
|
+
__props__.__dict__["org_id"] = org_id
|
790
|
+
if security_action_id is None and not opts.urn:
|
791
|
+
raise TypeError("Missing required property 'security_action_id'")
|
792
|
+
__props__.__dict__["security_action_id"] = security_action_id
|
793
|
+
if state is None and not opts.urn:
|
794
|
+
raise TypeError("Missing required property 'state'")
|
795
|
+
__props__.__dict__["state"] = state
|
796
|
+
__props__.__dict__["ttl"] = ttl
|
797
|
+
__props__.__dict__["create_time"] = None
|
798
|
+
__props__.__dict__["update_time"] = None
|
799
|
+
super(SecurityAction, __self__).__init__(
|
800
|
+
'gcp:apigee/securityAction:SecurityAction',
|
801
|
+
resource_name,
|
802
|
+
__props__,
|
803
|
+
opts)
|
804
|
+
|
805
|
+
@staticmethod
|
806
|
+
def get(resource_name: str,
|
807
|
+
id: pulumi.Input[str],
|
808
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
809
|
+
allow: Optional[pulumi.Input[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']]] = None,
|
810
|
+
api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
811
|
+
condition_config: Optional[pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']]] = None,
|
812
|
+
create_time: Optional[pulumi.Input[_builtins.str]] = None,
|
813
|
+
deny: Optional[pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']]] = None,
|
814
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
815
|
+
env_id: Optional[pulumi.Input[_builtins.str]] = None,
|
816
|
+
expire_time: Optional[pulumi.Input[_builtins.str]] = None,
|
817
|
+
flag: Optional[pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']]] = None,
|
818
|
+
org_id: Optional[pulumi.Input[_builtins.str]] = None,
|
819
|
+
security_action_id: Optional[pulumi.Input[_builtins.str]] = None,
|
820
|
+
state: Optional[pulumi.Input[_builtins.str]] = None,
|
821
|
+
ttl: Optional[pulumi.Input[_builtins.str]] = None,
|
822
|
+
update_time: Optional[pulumi.Input[_builtins.str]] = None) -> 'SecurityAction':
|
823
|
+
"""
|
824
|
+
Get an existing SecurityAction resource's state with the given name, id, and optional extra
|
825
|
+
properties used to qualify the lookup.
|
826
|
+
|
827
|
+
:param str resource_name: The unique name of the resulting resource.
|
828
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
829
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
830
|
+
:param pulumi.Input[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']] allow: Allow a request through if it matches this SecurityAction.
|
831
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_proxies: If unset, this would apply to all proxies in the environment.
|
832
|
+
If set, this action is enforced only if at least one proxy in the repeated
|
833
|
+
list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
|
834
|
+
There can be at most 100 enabled actions with proxies set in an env.
|
835
|
+
Several other restrictions apply on conditions and are detailed later.
|
836
|
+
:param pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']] condition_config: A valid SecurityAction must contain at least one condition.
|
837
|
+
Structure is documented below.
|
838
|
+
:param pulumi.Input[_builtins.str] create_time: The create time for this SecurityAction.
|
839
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
|
840
|
+
Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
841
|
+
:param pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']] deny: Deny a request through if it matches this SecurityAction.
|
842
|
+
Structure is documented below.
|
843
|
+
:param pulumi.Input[_builtins.str] description: An optional user provided description of the SecurityAction.
|
844
|
+
:param pulumi.Input[_builtins.str] env_id: The Apigee environment that this security action applies to.
|
845
|
+
:param pulumi.Input[_builtins.str] expire_time: The expiration for this SecurityAction.
|
846
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
|
847
|
+
fractional digits. Offsets other than "Z" are also accepted.
|
848
|
+
Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
849
|
+
:param pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']] flag: Flag a request through if it matches this SecurityAction.
|
850
|
+
Structure is documented below.
|
851
|
+
:param pulumi.Input[_builtins.str] org_id: The organization that this security action applies to.
|
852
|
+
:param pulumi.Input[_builtins.str] security_action_id: The ID to use for the SecurityAction, which will become the final component of the action's resource name.
|
853
|
+
This value should be 0-61 characters, and valid format is (^a-z?$).
|
854
|
+
:param pulumi.Input[_builtins.str] state: Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
|
855
|
+
Possible values are: `ENABLED`, `DISABLED`.
|
856
|
+
:param pulumi.Input[_builtins.str] ttl: The TTL for this SecurityAction.
|
857
|
+
A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
|
858
|
+
:param pulumi.Input[_builtins.str] update_time: The update time for this SecurityAction. This reflects when this SecurityAction changed states.
|
859
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
|
860
|
+
Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
861
|
+
"""
|
862
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
863
|
+
|
864
|
+
__props__ = _SecurityActionState.__new__(_SecurityActionState)
|
865
|
+
|
866
|
+
__props__.__dict__["allow"] = allow
|
867
|
+
__props__.__dict__["api_proxies"] = api_proxies
|
868
|
+
__props__.__dict__["condition_config"] = condition_config
|
869
|
+
__props__.__dict__["create_time"] = create_time
|
870
|
+
__props__.__dict__["deny"] = deny
|
871
|
+
__props__.__dict__["description"] = description
|
872
|
+
__props__.__dict__["env_id"] = env_id
|
873
|
+
__props__.__dict__["expire_time"] = expire_time
|
874
|
+
__props__.__dict__["flag"] = flag
|
875
|
+
__props__.__dict__["org_id"] = org_id
|
876
|
+
__props__.__dict__["security_action_id"] = security_action_id
|
877
|
+
__props__.__dict__["state"] = state
|
878
|
+
__props__.__dict__["ttl"] = ttl
|
879
|
+
__props__.__dict__["update_time"] = update_time
|
880
|
+
return SecurityAction(resource_name, opts=opts, __props__=__props__)
|
881
|
+
|
882
|
+
@_builtins.property
|
883
|
+
@pulumi.getter
|
884
|
+
def allow(self) -> pulumi.Output[Optional['outputs.SecurityActionAllow']]:
|
885
|
+
"""
|
886
|
+
Allow a request through if it matches this SecurityAction.
|
887
|
+
"""
|
888
|
+
return pulumi.get(self, "allow")
|
889
|
+
|
890
|
+
@_builtins.property
|
891
|
+
@pulumi.getter(name="apiProxies")
|
892
|
+
def api_proxies(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
893
|
+
"""
|
894
|
+
If unset, this would apply to all proxies in the environment.
|
895
|
+
If set, this action is enforced only if at least one proxy in the repeated
|
896
|
+
list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
|
897
|
+
There can be at most 100 enabled actions with proxies set in an env.
|
898
|
+
Several other restrictions apply on conditions and are detailed later.
|
899
|
+
"""
|
900
|
+
return pulumi.get(self, "api_proxies")
|
901
|
+
|
902
|
+
@_builtins.property
|
903
|
+
@pulumi.getter(name="conditionConfig")
|
904
|
+
def condition_config(self) -> pulumi.Output['outputs.SecurityActionConditionConfig']:
|
905
|
+
"""
|
906
|
+
A valid SecurityAction must contain at least one condition.
|
907
|
+
Structure is documented below.
|
908
|
+
"""
|
909
|
+
return pulumi.get(self, "condition_config")
|
910
|
+
|
911
|
+
@_builtins.property
|
912
|
+
@pulumi.getter(name="createTime")
|
913
|
+
def create_time(self) -> pulumi.Output[_builtins.str]:
|
914
|
+
"""
|
915
|
+
The create time for this SecurityAction.
|
916
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
|
917
|
+
Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
918
|
+
"""
|
919
|
+
return pulumi.get(self, "create_time")
|
920
|
+
|
921
|
+
@_builtins.property
|
922
|
+
@pulumi.getter
|
923
|
+
def deny(self) -> pulumi.Output[Optional['outputs.SecurityActionDeny']]:
|
924
|
+
"""
|
925
|
+
Deny a request through if it matches this SecurityAction.
|
926
|
+
Structure is documented below.
|
927
|
+
"""
|
928
|
+
return pulumi.get(self, "deny")
|
929
|
+
|
930
|
+
@_builtins.property
|
931
|
+
@pulumi.getter
|
932
|
+
def description(self) -> pulumi.Output[Optional[_builtins.str]]:
|
933
|
+
"""
|
934
|
+
An optional user provided description of the SecurityAction.
|
935
|
+
"""
|
936
|
+
return pulumi.get(self, "description")
|
937
|
+
|
938
|
+
@_builtins.property
|
939
|
+
@pulumi.getter(name="envId")
|
940
|
+
def env_id(self) -> pulumi.Output[_builtins.str]:
|
941
|
+
"""
|
942
|
+
The Apigee environment that this security action applies to.
|
943
|
+
"""
|
944
|
+
return pulumi.get(self, "env_id")
|
945
|
+
|
946
|
+
@_builtins.property
|
947
|
+
@pulumi.getter(name="expireTime")
|
948
|
+
def expire_time(self) -> pulumi.Output[Optional[_builtins.str]]:
|
949
|
+
"""
|
950
|
+
The expiration for this SecurityAction.
|
951
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
|
952
|
+
fractional digits. Offsets other than "Z" are also accepted.
|
953
|
+
Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
954
|
+
"""
|
955
|
+
return pulumi.get(self, "expire_time")
|
956
|
+
|
957
|
+
@_builtins.property
|
958
|
+
@pulumi.getter
|
959
|
+
def flag(self) -> pulumi.Output[Optional['outputs.SecurityActionFlag']]:
|
960
|
+
"""
|
961
|
+
Flag a request through if it matches this SecurityAction.
|
962
|
+
Structure is documented below.
|
963
|
+
"""
|
964
|
+
return pulumi.get(self, "flag")
|
965
|
+
|
966
|
+
@_builtins.property
|
967
|
+
@pulumi.getter(name="orgId")
|
968
|
+
def org_id(self) -> pulumi.Output[_builtins.str]:
|
969
|
+
"""
|
970
|
+
The organization that this security action applies to.
|
971
|
+
"""
|
972
|
+
return pulumi.get(self, "org_id")
|
973
|
+
|
974
|
+
@_builtins.property
|
975
|
+
@pulumi.getter(name="securityActionId")
|
976
|
+
def security_action_id(self) -> pulumi.Output[_builtins.str]:
|
977
|
+
"""
|
978
|
+
The ID to use for the SecurityAction, which will become the final component of the action's resource name.
|
979
|
+
This value should be 0-61 characters, and valid format is (^a-z?$).
|
980
|
+
"""
|
981
|
+
return pulumi.get(self, "security_action_id")
|
982
|
+
|
983
|
+
@_builtins.property
|
984
|
+
@pulumi.getter
|
985
|
+
def state(self) -> pulumi.Output[_builtins.str]:
|
986
|
+
"""
|
987
|
+
Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
|
988
|
+
Possible values are: `ENABLED`, `DISABLED`.
|
989
|
+
"""
|
990
|
+
return pulumi.get(self, "state")
|
991
|
+
|
992
|
+
@_builtins.property
|
993
|
+
@pulumi.getter
|
994
|
+
def ttl(self) -> pulumi.Output[Optional[_builtins.str]]:
|
995
|
+
"""
|
996
|
+
The TTL for this SecurityAction.
|
997
|
+
A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
|
998
|
+
"""
|
999
|
+
return pulumi.get(self, "ttl")
|
1000
|
+
|
1001
|
+
@_builtins.property
|
1002
|
+
@pulumi.getter(name="updateTime")
|
1003
|
+
def update_time(self) -> pulumi.Output[_builtins.str]:
|
1004
|
+
"""
|
1005
|
+
The update time for this SecurityAction. This reflects when this SecurityAction changed states.
|
1006
|
+
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
|
1007
|
+
Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
|
1008
|
+
"""
|
1009
|
+
return pulumi.get(self, "update_time")
|
1010
|
+
|