pulumi-alicloud 3.73.0a1736850863__py3-none-any.whl → 3.74.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pulumi-alicloud might be problematic. Click here for more details.
- pulumi_alicloud/__init__.py +139 -0
- pulumi_alicloud/alb/__init__.py +2 -0
- pulumi_alicloud/alb/_inputs.py +913 -250
- pulumi_alicloud/alb/a_script.py +116 -98
- pulumi_alicloud/alb/get_server_groups.py +55 -25
- pulumi_alicloud/alb/listener.py +269 -174
- pulumi_alicloud/alb/load_balancer.py +239 -118
- pulumi_alicloud/alb/load_balancer_access_log_config_attachment.py +303 -0
- pulumi_alicloud/alb/load_balancer_zone_shifted_attachment.py +303 -0
- pulumi_alicloud/alb/outputs.py +720 -222
- pulumi_alicloud/alb/server_group.py +532 -122
- pulumi_alicloud/alikafka/instance.py +188 -70
- pulumi_alicloud/amqp/instance.py +77 -28
- pulumi_alicloud/bastionhost/_inputs.py +40 -38
- pulumi_alicloud/bastionhost/get_instances.py +6 -22
- pulumi_alicloud/bastionhost/outputs.py +60 -49
- pulumi_alicloud/cen/_inputs.py +34 -0
- pulumi_alicloud/cen/instance_grant.py +4 -0
- pulumi_alicloud/cen/outputs.py +37 -0
- pulumi_alicloud/cen/transit_router_multicast_domain.py +123 -36
- pulumi_alicloud/cloudcontrol/__init__.py +12 -0
- pulumi_alicloud/cloudcontrol/get_prices.py +199 -0
- pulumi_alicloud/cloudcontrol/get_products.py +187 -0
- pulumi_alicloud/cloudcontrol/get_resource_types.py +178 -0
- pulumi_alicloud/cloudcontrol/outputs.py +688 -0
- pulumi_alicloud/cloudcontrol/resource.py +407 -0
- pulumi_alicloud/cms/_inputs.py +21 -15
- pulumi_alicloud/cms/alarm.py +7 -7
- pulumi_alicloud/cms/outputs.py +14 -10
- pulumi_alicloud/cs/_inputs.py +349 -1
- pulumi_alicloud/cs/get_edge_kubernetes_clusters.py +4 -2
- pulumi_alicloud/cs/get_managed_kubernetes_clusters.py +2 -0
- pulumi_alicloud/cs/kubernetes.py +29 -29
- pulumi_alicloud/cs/managed_kubernetes.py +137 -47
- pulumi_alicloud/cs/node_pool.py +77 -2
- pulumi_alicloud/cs/outputs.py +265 -1
- pulumi_alicloud/dataworks/__init__.py +4 -0
- pulumi_alicloud/dataworks/_inputs.py +1534 -0
- pulumi_alicloud/dataworks/di_alarm_rule.py +708 -0
- pulumi_alicloud/dataworks/di_job.py +1005 -0
- pulumi_alicloud/dataworks/dw_resource_group.py +703 -0
- pulumi_alicloud/dataworks/network.py +331 -0
- pulumi_alicloud/dataworks/outputs.py +1247 -0
- pulumi_alicloud/dcdn/waf_rule.py +14 -14
- pulumi_alicloud/dfs/file_system.py +62 -23
- pulumi_alicloud/dfs/mount_point.py +48 -22
- pulumi_alicloud/dns/get_alidns_domains.py +7 -2
- pulumi_alicloud/dns/outputs.py +8 -0
- pulumi_alicloud/ecs/ecs_launch_template.py +122 -0
- pulumi_alicloud/ecs/ecs_network_interface.py +14 -14
- pulumi_alicloud/ecs/ecs_session_manager_status.py +18 -18
- pulumi_alicloud/ecs/instance.py +7 -7
- pulumi_alicloud/ecs/launch_template.py +88 -0
- pulumi_alicloud/esa/__init__.py +3 -0
- pulumi_alicloud/esa/_inputs.py +81 -0
- pulumi_alicloud/esa/http_request_header_modification_rule.py +531 -0
- pulumi_alicloud/esa/list.py +361 -0
- pulumi_alicloud/esa/outputs.py +48 -0
- pulumi_alicloud/esa/page.py +376 -0
- pulumi_alicloud/esa/rate_plan_instance.py +63 -7
- pulumi_alicloud/ess/get_scaling_groups.py +64 -10
- pulumi_alicloud/ess/get_scaling_rules.py +74 -10
- pulumi_alicloud/ess/outputs.py +357 -17
- pulumi_alicloud/eventbridge/get_service.py +2 -6
- pulumi_alicloud/fc/_inputs.py +75 -75
- pulumi_alicloud/fc/custom_domain.py +2 -2
- pulumi_alicloud/fc/function.py +32 -4
- pulumi_alicloud/fc/outputs.py +50 -50
- pulumi_alicloud/fc/v2_function.py +20 -0
- pulumi_alicloud/fc/v3_function.py +53 -6
- pulumi_alicloud/hbr/__init__.py +1 -0
- pulumi_alicloud/hbr/cross_account.py +338 -0
- pulumi_alicloud/ims/oidc_provider.py +28 -0
- pulumi_alicloud/kms/__init__.py +1 -0
- pulumi_alicloud/kms/get_instances.py +160 -0
- pulumi_alicloud/kms/instance.py +0 -60
- pulumi_alicloud/kms/outputs.py +19 -0
- pulumi_alicloud/log/resource_record.py +42 -26
- pulumi_alicloud/maxcompute/__init__.py +5 -0
- pulumi_alicloud/maxcompute/_inputs.py +615 -42
- pulumi_alicloud/maxcompute/outputs.py +486 -28
- pulumi_alicloud/maxcompute/project.py +63 -31
- pulumi_alicloud/maxcompute/quota_plan.py +412 -0
- pulumi_alicloud/maxcompute/quota_schedule.py +260 -0
- pulumi_alicloud/maxcompute/role.py +423 -0
- pulumi_alicloud/maxcompute/role_user_attachment.py +368 -0
- pulumi_alicloud/maxcompute/tunnel_quota_timer.py +287 -0
- pulumi_alicloud/message/service_queue.py +106 -59
- pulumi_alicloud/message/service_topic.py +182 -37
- pulumi_alicloud/mongodb/account.py +138 -163
- pulumi_alicloud/oos/secret_parameter.py +84 -9
- pulumi_alicloud/oss/bucket.py +1 -1
- pulumi_alicloud/oss/bucket_policy.py +2 -4
- pulumi_alicloud/oss/bucket_referer.py +2 -4
- pulumi_alicloud/oss/get_buckets.py +16 -2
- pulumi_alicloud/oss/outputs.py +18 -17
- pulumi_alicloud/pulumi-plugin.json +1 -1
- pulumi_alicloud/rds/instance.py +68 -0
- pulumi_alicloud/sae/application.py +84 -7
- pulumi_alicloud/sls/collection_policy.py +2 -2
- pulumi_alicloud/vpc/__init__.py +6 -0
- pulumi_alicloud/vpc/get_ipam_ipam_pool_allocations.py +295 -0
- pulumi_alicloud/vpc/get_ipam_ipam_pool_cidrs.py +196 -0
- pulumi_alicloud/vpc/get_ipam_ipam_pools.py +353 -0
- pulumi_alicloud/vpc/get_ipam_ipam_scopes.py +333 -0
- pulumi_alicloud/vpc/get_ipam_ipams.py +291 -0
- pulumi_alicloud/vpc/get_networks.py +3 -0
- pulumi_alicloud/vpc/ipam_ipam_pool.py +47 -0
- pulumi_alicloud/vpc/ipam_ipam_scope.py +47 -0
- pulumi_alicloud/vpc/ipam_service.py +144 -0
- pulumi_alicloud/vpc/ipv4_cidr_block.py +162 -51
- pulumi_alicloud/vpc/nat_gateway.py +145 -7
- pulumi_alicloud/vpc/outputs.py +777 -0
- pulumi_alicloud/vpc/snat_entry.py +107 -48
- pulumi_alicloud/vpn/_inputs.py +96 -72
- pulumi_alicloud/vpn/connection.py +24 -28
- pulumi_alicloud/vpn/outputs.py +64 -48
- pulumi_alicloud/yundun/_inputs.py +26 -24
- pulumi_alicloud/yundun/outputs.py +37 -22
- {pulumi_alicloud-3.73.0a1736850863.dist-info → pulumi_alicloud-3.74.0.dist-info}/METADATA +1 -1
- {pulumi_alicloud-3.73.0a1736850863.dist-info → pulumi_alicloud-3.74.0.dist-info}/RECORD +123 -95
- {pulumi_alicloud-3.73.0a1736850863.dist-info → pulumi_alicloud-3.74.0.dist-info}/WHEEL +0 -0
- {pulumi_alicloud-3.73.0a1736850863.dist-info → pulumi_alicloud-3.74.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,333 @@
|
|
|
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
|
+
|
|
18
|
+
__all__ = [
|
|
19
|
+
'GetIpamIpamScopesResult',
|
|
20
|
+
'AwaitableGetIpamIpamScopesResult',
|
|
21
|
+
'get_ipam_ipam_scopes',
|
|
22
|
+
'get_ipam_ipam_scopes_output',
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
@pulumi.output_type
|
|
26
|
+
class GetIpamIpamScopesResult:
|
|
27
|
+
"""
|
|
28
|
+
A collection of values returned by getIpamIpamScopes.
|
|
29
|
+
"""
|
|
30
|
+
def __init__(__self__, id=None, ids=None, ipam_id=None, ipam_scope_id=None, ipam_scope_name=None, ipam_scope_type=None, name_regex=None, names=None, output_file=None, resource_group_id=None, scopes=None, tags=None):
|
|
31
|
+
if id and not isinstance(id, str):
|
|
32
|
+
raise TypeError("Expected argument 'id' to be a str")
|
|
33
|
+
pulumi.set(__self__, "id", id)
|
|
34
|
+
if ids and not isinstance(ids, list):
|
|
35
|
+
raise TypeError("Expected argument 'ids' to be a list")
|
|
36
|
+
pulumi.set(__self__, "ids", ids)
|
|
37
|
+
if ipam_id and not isinstance(ipam_id, str):
|
|
38
|
+
raise TypeError("Expected argument 'ipam_id' to be a str")
|
|
39
|
+
pulumi.set(__self__, "ipam_id", ipam_id)
|
|
40
|
+
if ipam_scope_id and not isinstance(ipam_scope_id, str):
|
|
41
|
+
raise TypeError("Expected argument 'ipam_scope_id' to be a str")
|
|
42
|
+
pulumi.set(__self__, "ipam_scope_id", ipam_scope_id)
|
|
43
|
+
if ipam_scope_name and not isinstance(ipam_scope_name, str):
|
|
44
|
+
raise TypeError("Expected argument 'ipam_scope_name' to be a str")
|
|
45
|
+
pulumi.set(__self__, "ipam_scope_name", ipam_scope_name)
|
|
46
|
+
if ipam_scope_type and not isinstance(ipam_scope_type, str):
|
|
47
|
+
raise TypeError("Expected argument 'ipam_scope_type' to be a str")
|
|
48
|
+
pulumi.set(__self__, "ipam_scope_type", ipam_scope_type)
|
|
49
|
+
if name_regex and not isinstance(name_regex, str):
|
|
50
|
+
raise TypeError("Expected argument 'name_regex' to be a str")
|
|
51
|
+
pulumi.set(__self__, "name_regex", name_regex)
|
|
52
|
+
if names and not isinstance(names, list):
|
|
53
|
+
raise TypeError("Expected argument 'names' to be a list")
|
|
54
|
+
pulumi.set(__self__, "names", names)
|
|
55
|
+
if output_file and not isinstance(output_file, str):
|
|
56
|
+
raise TypeError("Expected argument 'output_file' to be a str")
|
|
57
|
+
pulumi.set(__self__, "output_file", output_file)
|
|
58
|
+
if resource_group_id and not isinstance(resource_group_id, str):
|
|
59
|
+
raise TypeError("Expected argument 'resource_group_id' to be a str")
|
|
60
|
+
pulumi.set(__self__, "resource_group_id", resource_group_id)
|
|
61
|
+
if scopes and not isinstance(scopes, list):
|
|
62
|
+
raise TypeError("Expected argument 'scopes' to be a list")
|
|
63
|
+
pulumi.set(__self__, "scopes", scopes)
|
|
64
|
+
if tags and not isinstance(tags, dict):
|
|
65
|
+
raise TypeError("Expected argument 'tags' to be a dict")
|
|
66
|
+
pulumi.set(__self__, "tags", tags)
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
@pulumi.getter
|
|
70
|
+
def id(self) -> str:
|
|
71
|
+
"""
|
|
72
|
+
The provider-assigned unique ID for this managed resource.
|
|
73
|
+
"""
|
|
74
|
+
return pulumi.get(self, "id")
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
@pulumi.getter
|
|
78
|
+
def ids(self) -> Sequence[str]:
|
|
79
|
+
"""
|
|
80
|
+
A list of Ipam Scope IDs.
|
|
81
|
+
"""
|
|
82
|
+
return pulumi.get(self, "ids")
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
@pulumi.getter(name="ipamId")
|
|
86
|
+
def ipam_id(self) -> Optional[str]:
|
|
87
|
+
"""
|
|
88
|
+
The id of the Ipam instance.
|
|
89
|
+
"""
|
|
90
|
+
return pulumi.get(self, "ipam_id")
|
|
91
|
+
|
|
92
|
+
@property
|
|
93
|
+
@pulumi.getter(name="ipamScopeId")
|
|
94
|
+
def ipam_scope_id(self) -> Optional[str]:
|
|
95
|
+
"""
|
|
96
|
+
The first ID of the resource.
|
|
97
|
+
"""
|
|
98
|
+
return pulumi.get(self, "ipam_scope_id")
|
|
99
|
+
|
|
100
|
+
@property
|
|
101
|
+
@pulumi.getter(name="ipamScopeName")
|
|
102
|
+
def ipam_scope_name(self) -> Optional[str]:
|
|
103
|
+
"""
|
|
104
|
+
The name of the resource.
|
|
105
|
+
"""
|
|
106
|
+
return pulumi.get(self, "ipam_scope_name")
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
@pulumi.getter(name="ipamScopeType")
|
|
110
|
+
def ipam_scope_type(self) -> Optional[str]:
|
|
111
|
+
"""
|
|
112
|
+
IPAM scope of action type:**private**.> Currently, only the role scope of the private network is supported.
|
|
113
|
+
"""
|
|
114
|
+
return pulumi.get(self, "ipam_scope_type")
|
|
115
|
+
|
|
116
|
+
@property
|
|
117
|
+
@pulumi.getter(name="nameRegex")
|
|
118
|
+
def name_regex(self) -> Optional[str]:
|
|
119
|
+
return pulumi.get(self, "name_regex")
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
@pulumi.getter
|
|
123
|
+
def names(self) -> Sequence[str]:
|
|
124
|
+
"""
|
|
125
|
+
A list of name of Ipam Scopes.
|
|
126
|
+
"""
|
|
127
|
+
return pulumi.get(self, "names")
|
|
128
|
+
|
|
129
|
+
@property
|
|
130
|
+
@pulumi.getter(name="outputFile")
|
|
131
|
+
def output_file(self) -> Optional[str]:
|
|
132
|
+
return pulumi.get(self, "output_file")
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
@pulumi.getter(name="resourceGroupId")
|
|
136
|
+
def resource_group_id(self) -> Optional[str]:
|
|
137
|
+
"""
|
|
138
|
+
The ID of the resource group.
|
|
139
|
+
"""
|
|
140
|
+
return pulumi.get(self, "resource_group_id")
|
|
141
|
+
|
|
142
|
+
@property
|
|
143
|
+
@pulumi.getter
|
|
144
|
+
def scopes(self) -> Sequence['outputs.GetIpamIpamScopesScopeResult']:
|
|
145
|
+
"""
|
|
146
|
+
A list of Ipam Scope Entries. Each element contains the following attributes:
|
|
147
|
+
"""
|
|
148
|
+
return pulumi.get(self, "scopes")
|
|
149
|
+
|
|
150
|
+
@property
|
|
151
|
+
@pulumi.getter
|
|
152
|
+
def tags(self) -> Optional[Mapping[str, str]]:
|
|
153
|
+
"""
|
|
154
|
+
The tag of the resource.
|
|
155
|
+
"""
|
|
156
|
+
return pulumi.get(self, "tags")
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
class AwaitableGetIpamIpamScopesResult(GetIpamIpamScopesResult):
|
|
160
|
+
# pylint: disable=using-constant-test
|
|
161
|
+
def __await__(self):
|
|
162
|
+
if False:
|
|
163
|
+
yield self
|
|
164
|
+
return GetIpamIpamScopesResult(
|
|
165
|
+
id=self.id,
|
|
166
|
+
ids=self.ids,
|
|
167
|
+
ipam_id=self.ipam_id,
|
|
168
|
+
ipam_scope_id=self.ipam_scope_id,
|
|
169
|
+
ipam_scope_name=self.ipam_scope_name,
|
|
170
|
+
ipam_scope_type=self.ipam_scope_type,
|
|
171
|
+
name_regex=self.name_regex,
|
|
172
|
+
names=self.names,
|
|
173
|
+
output_file=self.output_file,
|
|
174
|
+
resource_group_id=self.resource_group_id,
|
|
175
|
+
scopes=self.scopes,
|
|
176
|
+
tags=self.tags)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
def get_ipam_ipam_scopes(ids: Optional[Sequence[str]] = None,
|
|
180
|
+
ipam_id: Optional[str] = None,
|
|
181
|
+
ipam_scope_id: Optional[str] = None,
|
|
182
|
+
ipam_scope_name: Optional[str] = None,
|
|
183
|
+
ipam_scope_type: Optional[str] = None,
|
|
184
|
+
name_regex: Optional[str] = None,
|
|
185
|
+
output_file: Optional[str] = None,
|
|
186
|
+
resource_group_id: Optional[str] = None,
|
|
187
|
+
tags: Optional[Mapping[str, str]] = None,
|
|
188
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIpamIpamScopesResult:
|
|
189
|
+
"""
|
|
190
|
+
This data source provides Vpc Ipam Ipam Scope available to the user.[What is Ipam Scope](https://www.alibabacloud.com/help/en/)
|
|
191
|
+
|
|
192
|
+
> **NOTE:** Available since v1.241.0.
|
|
193
|
+
|
|
194
|
+
## Example Usage
|
|
195
|
+
|
|
196
|
+
```python
|
|
197
|
+
import pulumi
|
|
198
|
+
import pulumi_alicloud as alicloud
|
|
199
|
+
|
|
200
|
+
config = pulumi.Config()
|
|
201
|
+
name = config.get("name")
|
|
202
|
+
if name is None:
|
|
203
|
+
name = "terraform-example"
|
|
204
|
+
default = alicloud.resourcemanager.get_resource_groups()
|
|
205
|
+
default_ipam = alicloud.vpc.IpamIpam("defaultIpam",
|
|
206
|
+
operating_region_lists=["cn-hangzhou"],
|
|
207
|
+
ipam_name=name)
|
|
208
|
+
default_ipam_ipam_scope = alicloud.vpc.IpamIpamScope("default",
|
|
209
|
+
ipam_scope_name=name,
|
|
210
|
+
ipam_id=default_ipam.id,
|
|
211
|
+
ipam_scope_description="This is a ipam scope.",
|
|
212
|
+
ipam_scope_type="private",
|
|
213
|
+
tags={
|
|
214
|
+
"k1": "v1",
|
|
215
|
+
})
|
|
216
|
+
default_get_ipam_ipam_scopes = default_ipam_ipam_scope.ipam_scope_name.apply(lambda ipam_scope_name: alicloud.vpc.get_ipam_ipam_scopes_output(ipam_scope_name=ipam_scope_name))
|
|
217
|
+
pulumi.export("alicloudVpcIpamIpamScopeExampleId", default_get_ipam_ipam_scopes.scopes[0].id)
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
:param Sequence[str] ids: A list of Ipam Scope IDs.
|
|
222
|
+
:param str ipam_id: The id of the Ipam instance.
|
|
223
|
+
:param str ipam_scope_id: The first ID of the resource.
|
|
224
|
+
:param str ipam_scope_name: The name of the resource.
|
|
225
|
+
:param str ipam_scope_type: IPAM scope of action type:**private**.> Currently, only the role scope of the private network is supported.
|
|
226
|
+
:param str name_regex: A regex string to filter results by Group Metric Rule name.
|
|
227
|
+
:param str output_file: File name where to save data source results (after running `pulumi preview`).
|
|
228
|
+
:param str resource_group_id: The ID of the resource group.
|
|
229
|
+
:param Mapping[str, str] tags: The tag of the resource.
|
|
230
|
+
"""
|
|
231
|
+
__args__ = dict()
|
|
232
|
+
__args__['ids'] = ids
|
|
233
|
+
__args__['ipamId'] = ipam_id
|
|
234
|
+
__args__['ipamScopeId'] = ipam_scope_id
|
|
235
|
+
__args__['ipamScopeName'] = ipam_scope_name
|
|
236
|
+
__args__['ipamScopeType'] = ipam_scope_type
|
|
237
|
+
__args__['nameRegex'] = name_regex
|
|
238
|
+
__args__['outputFile'] = output_file
|
|
239
|
+
__args__['resourceGroupId'] = resource_group_id
|
|
240
|
+
__args__['tags'] = tags
|
|
241
|
+
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
|
|
242
|
+
__ret__ = pulumi.runtime.invoke('alicloud:vpc/getIpamIpamScopes:getIpamIpamScopes', __args__, opts=opts, typ=GetIpamIpamScopesResult).value
|
|
243
|
+
|
|
244
|
+
return AwaitableGetIpamIpamScopesResult(
|
|
245
|
+
id=pulumi.get(__ret__, 'id'),
|
|
246
|
+
ids=pulumi.get(__ret__, 'ids'),
|
|
247
|
+
ipam_id=pulumi.get(__ret__, 'ipam_id'),
|
|
248
|
+
ipam_scope_id=pulumi.get(__ret__, 'ipam_scope_id'),
|
|
249
|
+
ipam_scope_name=pulumi.get(__ret__, 'ipam_scope_name'),
|
|
250
|
+
ipam_scope_type=pulumi.get(__ret__, 'ipam_scope_type'),
|
|
251
|
+
name_regex=pulumi.get(__ret__, 'name_regex'),
|
|
252
|
+
names=pulumi.get(__ret__, 'names'),
|
|
253
|
+
output_file=pulumi.get(__ret__, 'output_file'),
|
|
254
|
+
resource_group_id=pulumi.get(__ret__, 'resource_group_id'),
|
|
255
|
+
scopes=pulumi.get(__ret__, 'scopes'),
|
|
256
|
+
tags=pulumi.get(__ret__, 'tags'))
|
|
257
|
+
def get_ipam_ipam_scopes_output(ids: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
|
|
258
|
+
ipam_id: Optional[pulumi.Input[Optional[str]]] = None,
|
|
259
|
+
ipam_scope_id: Optional[pulumi.Input[Optional[str]]] = None,
|
|
260
|
+
ipam_scope_name: Optional[pulumi.Input[Optional[str]]] = None,
|
|
261
|
+
ipam_scope_type: Optional[pulumi.Input[Optional[str]]] = None,
|
|
262
|
+
name_regex: Optional[pulumi.Input[Optional[str]]] = None,
|
|
263
|
+
output_file: Optional[pulumi.Input[Optional[str]]] = None,
|
|
264
|
+
resource_group_id: Optional[pulumi.Input[Optional[str]]] = None,
|
|
265
|
+
tags: Optional[pulumi.Input[Optional[Mapping[str, str]]]] = None,
|
|
266
|
+
opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetIpamIpamScopesResult]:
|
|
267
|
+
"""
|
|
268
|
+
This data source provides Vpc Ipam Ipam Scope available to the user.[What is Ipam Scope](https://www.alibabacloud.com/help/en/)
|
|
269
|
+
|
|
270
|
+
> **NOTE:** Available since v1.241.0.
|
|
271
|
+
|
|
272
|
+
## Example Usage
|
|
273
|
+
|
|
274
|
+
```python
|
|
275
|
+
import pulumi
|
|
276
|
+
import pulumi_alicloud as alicloud
|
|
277
|
+
|
|
278
|
+
config = pulumi.Config()
|
|
279
|
+
name = config.get("name")
|
|
280
|
+
if name is None:
|
|
281
|
+
name = "terraform-example"
|
|
282
|
+
default = alicloud.resourcemanager.get_resource_groups()
|
|
283
|
+
default_ipam = alicloud.vpc.IpamIpam("defaultIpam",
|
|
284
|
+
operating_region_lists=["cn-hangzhou"],
|
|
285
|
+
ipam_name=name)
|
|
286
|
+
default_ipam_ipam_scope = alicloud.vpc.IpamIpamScope("default",
|
|
287
|
+
ipam_scope_name=name,
|
|
288
|
+
ipam_id=default_ipam.id,
|
|
289
|
+
ipam_scope_description="This is a ipam scope.",
|
|
290
|
+
ipam_scope_type="private",
|
|
291
|
+
tags={
|
|
292
|
+
"k1": "v1",
|
|
293
|
+
})
|
|
294
|
+
default_get_ipam_ipam_scopes = default_ipam_ipam_scope.ipam_scope_name.apply(lambda ipam_scope_name: alicloud.vpc.get_ipam_ipam_scopes_output(ipam_scope_name=ipam_scope_name))
|
|
295
|
+
pulumi.export("alicloudVpcIpamIpamScopeExampleId", default_get_ipam_ipam_scopes.scopes[0].id)
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
:param Sequence[str] ids: A list of Ipam Scope IDs.
|
|
300
|
+
:param str ipam_id: The id of the Ipam instance.
|
|
301
|
+
:param str ipam_scope_id: The first ID of the resource.
|
|
302
|
+
:param str ipam_scope_name: The name of the resource.
|
|
303
|
+
:param str ipam_scope_type: IPAM scope of action type:**private**.> Currently, only the role scope of the private network is supported.
|
|
304
|
+
:param str name_regex: A regex string to filter results by Group Metric Rule name.
|
|
305
|
+
:param str output_file: File name where to save data source results (after running `pulumi preview`).
|
|
306
|
+
:param str resource_group_id: The ID of the resource group.
|
|
307
|
+
:param Mapping[str, str] tags: The tag of the resource.
|
|
308
|
+
"""
|
|
309
|
+
__args__ = dict()
|
|
310
|
+
__args__['ids'] = ids
|
|
311
|
+
__args__['ipamId'] = ipam_id
|
|
312
|
+
__args__['ipamScopeId'] = ipam_scope_id
|
|
313
|
+
__args__['ipamScopeName'] = ipam_scope_name
|
|
314
|
+
__args__['ipamScopeType'] = ipam_scope_type
|
|
315
|
+
__args__['nameRegex'] = name_regex
|
|
316
|
+
__args__['outputFile'] = output_file
|
|
317
|
+
__args__['resourceGroupId'] = resource_group_id
|
|
318
|
+
__args__['tags'] = tags
|
|
319
|
+
opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
|
|
320
|
+
__ret__ = pulumi.runtime.invoke_output('alicloud:vpc/getIpamIpamScopes:getIpamIpamScopes', __args__, opts=opts, typ=GetIpamIpamScopesResult)
|
|
321
|
+
return __ret__.apply(lambda __response__: GetIpamIpamScopesResult(
|
|
322
|
+
id=pulumi.get(__response__, 'id'),
|
|
323
|
+
ids=pulumi.get(__response__, 'ids'),
|
|
324
|
+
ipam_id=pulumi.get(__response__, 'ipam_id'),
|
|
325
|
+
ipam_scope_id=pulumi.get(__response__, 'ipam_scope_id'),
|
|
326
|
+
ipam_scope_name=pulumi.get(__response__, 'ipam_scope_name'),
|
|
327
|
+
ipam_scope_type=pulumi.get(__response__, 'ipam_scope_type'),
|
|
328
|
+
name_regex=pulumi.get(__response__, 'name_regex'),
|
|
329
|
+
names=pulumi.get(__response__, 'names'),
|
|
330
|
+
output_file=pulumi.get(__response__, 'output_file'),
|
|
331
|
+
resource_group_id=pulumi.get(__response__, 'resource_group_id'),
|
|
332
|
+
scopes=pulumi.get(__response__, 'scopes'),
|
|
333
|
+
tags=pulumi.get(__response__, 'tags')))
|
|
@@ -0,0 +1,291 @@
|
|
|
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
|
+
|
|
18
|
+
__all__ = [
|
|
19
|
+
'GetIpamIpamsResult',
|
|
20
|
+
'AwaitableGetIpamIpamsResult',
|
|
21
|
+
'get_ipam_ipams',
|
|
22
|
+
'get_ipam_ipams_output',
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
@pulumi.output_type
|
|
26
|
+
class GetIpamIpamsResult:
|
|
27
|
+
"""
|
|
28
|
+
A collection of values returned by getIpamIpams.
|
|
29
|
+
"""
|
|
30
|
+
def __init__(__self__, id=None, ids=None, ipam_id=None, ipam_name=None, ipams=None, name_regex=None, names=None, output_file=None, resource_group_id=None, tags=None):
|
|
31
|
+
if id and not isinstance(id, str):
|
|
32
|
+
raise TypeError("Expected argument 'id' to be a str")
|
|
33
|
+
pulumi.set(__self__, "id", id)
|
|
34
|
+
if ids and not isinstance(ids, list):
|
|
35
|
+
raise TypeError("Expected argument 'ids' to be a list")
|
|
36
|
+
pulumi.set(__self__, "ids", ids)
|
|
37
|
+
if ipam_id and not isinstance(ipam_id, str):
|
|
38
|
+
raise TypeError("Expected argument 'ipam_id' to be a str")
|
|
39
|
+
pulumi.set(__self__, "ipam_id", ipam_id)
|
|
40
|
+
if ipam_name and not isinstance(ipam_name, str):
|
|
41
|
+
raise TypeError("Expected argument 'ipam_name' to be a str")
|
|
42
|
+
pulumi.set(__self__, "ipam_name", ipam_name)
|
|
43
|
+
if ipams and not isinstance(ipams, list):
|
|
44
|
+
raise TypeError("Expected argument 'ipams' to be a list")
|
|
45
|
+
pulumi.set(__self__, "ipams", ipams)
|
|
46
|
+
if name_regex and not isinstance(name_regex, str):
|
|
47
|
+
raise TypeError("Expected argument 'name_regex' to be a str")
|
|
48
|
+
pulumi.set(__self__, "name_regex", name_regex)
|
|
49
|
+
if names and not isinstance(names, list):
|
|
50
|
+
raise TypeError("Expected argument 'names' to be a list")
|
|
51
|
+
pulumi.set(__self__, "names", names)
|
|
52
|
+
if output_file and not isinstance(output_file, str):
|
|
53
|
+
raise TypeError("Expected argument 'output_file' to be a str")
|
|
54
|
+
pulumi.set(__self__, "output_file", output_file)
|
|
55
|
+
if resource_group_id and not isinstance(resource_group_id, str):
|
|
56
|
+
raise TypeError("Expected argument 'resource_group_id' to be a str")
|
|
57
|
+
pulumi.set(__self__, "resource_group_id", resource_group_id)
|
|
58
|
+
if tags and not isinstance(tags, dict):
|
|
59
|
+
raise TypeError("Expected argument 'tags' to be a dict")
|
|
60
|
+
pulumi.set(__self__, "tags", tags)
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
@pulumi.getter
|
|
64
|
+
def id(self) -> str:
|
|
65
|
+
"""
|
|
66
|
+
The provider-assigned unique ID for this managed resource.
|
|
67
|
+
"""
|
|
68
|
+
return pulumi.get(self, "id")
|
|
69
|
+
|
|
70
|
+
@property
|
|
71
|
+
@pulumi.getter
|
|
72
|
+
def ids(self) -> Sequence[str]:
|
|
73
|
+
"""
|
|
74
|
+
A list of Ipam IDs.
|
|
75
|
+
"""
|
|
76
|
+
return pulumi.get(self, "ids")
|
|
77
|
+
|
|
78
|
+
@property
|
|
79
|
+
@pulumi.getter(name="ipamId")
|
|
80
|
+
def ipam_id(self) -> Optional[str]:
|
|
81
|
+
"""
|
|
82
|
+
The first ID of the resource.
|
|
83
|
+
"""
|
|
84
|
+
return pulumi.get(self, "ipam_id")
|
|
85
|
+
|
|
86
|
+
@property
|
|
87
|
+
@pulumi.getter(name="ipamName")
|
|
88
|
+
def ipam_name(self) -> Optional[str]:
|
|
89
|
+
"""
|
|
90
|
+
The name of the resource.
|
|
91
|
+
"""
|
|
92
|
+
return pulumi.get(self, "ipam_name")
|
|
93
|
+
|
|
94
|
+
@property
|
|
95
|
+
@pulumi.getter
|
|
96
|
+
def ipams(self) -> Sequence['outputs.GetIpamIpamsIpamResult']:
|
|
97
|
+
"""
|
|
98
|
+
A list of Ipam Entries. Each element contains the following attributes:
|
|
99
|
+
"""
|
|
100
|
+
return pulumi.get(self, "ipams")
|
|
101
|
+
|
|
102
|
+
@property
|
|
103
|
+
@pulumi.getter(name="nameRegex")
|
|
104
|
+
def name_regex(self) -> Optional[str]:
|
|
105
|
+
return pulumi.get(self, "name_regex")
|
|
106
|
+
|
|
107
|
+
@property
|
|
108
|
+
@pulumi.getter
|
|
109
|
+
def names(self) -> Sequence[str]:
|
|
110
|
+
"""
|
|
111
|
+
A list of name of Ipams.
|
|
112
|
+
"""
|
|
113
|
+
return pulumi.get(self, "names")
|
|
114
|
+
|
|
115
|
+
@property
|
|
116
|
+
@pulumi.getter(name="outputFile")
|
|
117
|
+
def output_file(self) -> Optional[str]:
|
|
118
|
+
return pulumi.get(self, "output_file")
|
|
119
|
+
|
|
120
|
+
@property
|
|
121
|
+
@pulumi.getter(name="resourceGroupId")
|
|
122
|
+
def resource_group_id(self) -> Optional[str]:
|
|
123
|
+
"""
|
|
124
|
+
The ID of the resource group.
|
|
125
|
+
"""
|
|
126
|
+
return pulumi.get(self, "resource_group_id")
|
|
127
|
+
|
|
128
|
+
@property
|
|
129
|
+
@pulumi.getter
|
|
130
|
+
def tags(self) -> Optional[Mapping[str, str]]:
|
|
131
|
+
"""
|
|
132
|
+
The tag of the resource.
|
|
133
|
+
"""
|
|
134
|
+
return pulumi.get(self, "tags")
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class AwaitableGetIpamIpamsResult(GetIpamIpamsResult):
|
|
138
|
+
# pylint: disable=using-constant-test
|
|
139
|
+
def __await__(self):
|
|
140
|
+
if False:
|
|
141
|
+
yield self
|
|
142
|
+
return GetIpamIpamsResult(
|
|
143
|
+
id=self.id,
|
|
144
|
+
ids=self.ids,
|
|
145
|
+
ipam_id=self.ipam_id,
|
|
146
|
+
ipam_name=self.ipam_name,
|
|
147
|
+
ipams=self.ipams,
|
|
148
|
+
name_regex=self.name_regex,
|
|
149
|
+
names=self.names,
|
|
150
|
+
output_file=self.output_file,
|
|
151
|
+
resource_group_id=self.resource_group_id,
|
|
152
|
+
tags=self.tags)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def get_ipam_ipams(ids: Optional[Sequence[str]] = None,
|
|
156
|
+
ipam_id: Optional[str] = None,
|
|
157
|
+
ipam_name: Optional[str] = None,
|
|
158
|
+
name_regex: Optional[str] = None,
|
|
159
|
+
output_file: Optional[str] = None,
|
|
160
|
+
resource_group_id: Optional[str] = None,
|
|
161
|
+
tags: Optional[Mapping[str, str]] = None,
|
|
162
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIpamIpamsResult:
|
|
163
|
+
"""
|
|
164
|
+
This data source provides Vpc Ipam Ipam available to the user.[What is Ipam](https://www.alibabacloud.com/help/en/)
|
|
165
|
+
|
|
166
|
+
> **NOTE:** Available since v1.241.0.
|
|
167
|
+
|
|
168
|
+
## Example Usage
|
|
169
|
+
|
|
170
|
+
```python
|
|
171
|
+
import pulumi
|
|
172
|
+
import pulumi_alicloud as alicloud
|
|
173
|
+
|
|
174
|
+
config = pulumi.Config()
|
|
175
|
+
name = config.get("name")
|
|
176
|
+
if name is None:
|
|
177
|
+
name = "terraform-example"
|
|
178
|
+
default = alicloud.resourcemanager.get_resource_groups()
|
|
179
|
+
default_ipam_ipam = alicloud.vpc.IpamIpam("default",
|
|
180
|
+
ipam_description="This is my first Ipam.",
|
|
181
|
+
ipam_name=name,
|
|
182
|
+
operating_region_lists=["cn-hangzhou"])
|
|
183
|
+
default_get_ipam_ipams = pulumi.Output.all(
|
|
184
|
+
id=default_ipam_ipam.id,
|
|
185
|
+
ipam_name=default_ipam_ipam.ipam_name
|
|
186
|
+
).apply(lambda resolved_outputs: alicloud.vpc.get_ipam_ipams_output(ids=[resolved_outputs['id']],
|
|
187
|
+
name_regex=resolved_outputs['ipam_name'],
|
|
188
|
+
ipam_name=name))
|
|
189
|
+
|
|
190
|
+
pulumi.export("alicloudVpcIpamIpamExampleId", default_get_ipam_ipams.ipams[0].id)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
:param Sequence[str] ids: A list of Ipam IDs.
|
|
195
|
+
:param str ipam_id: The first ID of the resource.
|
|
196
|
+
:param str ipam_name: The name of the resource.
|
|
197
|
+
:param str name_regex: A regex string to filter results by Group Metric Rule name.
|
|
198
|
+
:param str output_file: File name where to save data source results (after running `pulumi preview`).
|
|
199
|
+
:param str resource_group_id: The ID of the resource group.
|
|
200
|
+
:param Mapping[str, str] tags: The tag of the resource.
|
|
201
|
+
"""
|
|
202
|
+
__args__ = dict()
|
|
203
|
+
__args__['ids'] = ids
|
|
204
|
+
__args__['ipamId'] = ipam_id
|
|
205
|
+
__args__['ipamName'] = ipam_name
|
|
206
|
+
__args__['nameRegex'] = name_regex
|
|
207
|
+
__args__['outputFile'] = output_file
|
|
208
|
+
__args__['resourceGroupId'] = resource_group_id
|
|
209
|
+
__args__['tags'] = tags
|
|
210
|
+
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
|
|
211
|
+
__ret__ = pulumi.runtime.invoke('alicloud:vpc/getIpamIpams:getIpamIpams', __args__, opts=opts, typ=GetIpamIpamsResult).value
|
|
212
|
+
|
|
213
|
+
return AwaitableGetIpamIpamsResult(
|
|
214
|
+
id=pulumi.get(__ret__, 'id'),
|
|
215
|
+
ids=pulumi.get(__ret__, 'ids'),
|
|
216
|
+
ipam_id=pulumi.get(__ret__, 'ipam_id'),
|
|
217
|
+
ipam_name=pulumi.get(__ret__, 'ipam_name'),
|
|
218
|
+
ipams=pulumi.get(__ret__, 'ipams'),
|
|
219
|
+
name_regex=pulumi.get(__ret__, 'name_regex'),
|
|
220
|
+
names=pulumi.get(__ret__, 'names'),
|
|
221
|
+
output_file=pulumi.get(__ret__, 'output_file'),
|
|
222
|
+
resource_group_id=pulumi.get(__ret__, 'resource_group_id'),
|
|
223
|
+
tags=pulumi.get(__ret__, 'tags'))
|
|
224
|
+
def get_ipam_ipams_output(ids: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
|
|
225
|
+
ipam_id: Optional[pulumi.Input[Optional[str]]] = None,
|
|
226
|
+
ipam_name: Optional[pulumi.Input[Optional[str]]] = None,
|
|
227
|
+
name_regex: Optional[pulumi.Input[Optional[str]]] = None,
|
|
228
|
+
output_file: Optional[pulumi.Input[Optional[str]]] = None,
|
|
229
|
+
resource_group_id: Optional[pulumi.Input[Optional[str]]] = None,
|
|
230
|
+
tags: Optional[pulumi.Input[Optional[Mapping[str, str]]]] = None,
|
|
231
|
+
opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetIpamIpamsResult]:
|
|
232
|
+
"""
|
|
233
|
+
This data source provides Vpc Ipam Ipam available to the user.[What is Ipam](https://www.alibabacloud.com/help/en/)
|
|
234
|
+
|
|
235
|
+
> **NOTE:** Available since v1.241.0.
|
|
236
|
+
|
|
237
|
+
## Example Usage
|
|
238
|
+
|
|
239
|
+
```python
|
|
240
|
+
import pulumi
|
|
241
|
+
import pulumi_alicloud as alicloud
|
|
242
|
+
|
|
243
|
+
config = pulumi.Config()
|
|
244
|
+
name = config.get("name")
|
|
245
|
+
if name is None:
|
|
246
|
+
name = "terraform-example"
|
|
247
|
+
default = alicloud.resourcemanager.get_resource_groups()
|
|
248
|
+
default_ipam_ipam = alicloud.vpc.IpamIpam("default",
|
|
249
|
+
ipam_description="This is my first Ipam.",
|
|
250
|
+
ipam_name=name,
|
|
251
|
+
operating_region_lists=["cn-hangzhou"])
|
|
252
|
+
default_get_ipam_ipams = pulumi.Output.all(
|
|
253
|
+
id=default_ipam_ipam.id,
|
|
254
|
+
ipam_name=default_ipam_ipam.ipam_name
|
|
255
|
+
).apply(lambda resolved_outputs: alicloud.vpc.get_ipam_ipams_output(ids=[resolved_outputs['id']],
|
|
256
|
+
name_regex=resolved_outputs['ipam_name'],
|
|
257
|
+
ipam_name=name))
|
|
258
|
+
|
|
259
|
+
pulumi.export("alicloudVpcIpamIpamExampleId", default_get_ipam_ipams.ipams[0].id)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
:param Sequence[str] ids: A list of Ipam IDs.
|
|
264
|
+
:param str ipam_id: The first ID of the resource.
|
|
265
|
+
:param str ipam_name: The name of the resource.
|
|
266
|
+
:param str name_regex: A regex string to filter results by Group Metric Rule name.
|
|
267
|
+
:param str output_file: File name where to save data source results (after running `pulumi preview`).
|
|
268
|
+
:param str resource_group_id: The ID of the resource group.
|
|
269
|
+
:param Mapping[str, str] tags: The tag of the resource.
|
|
270
|
+
"""
|
|
271
|
+
__args__ = dict()
|
|
272
|
+
__args__['ids'] = ids
|
|
273
|
+
__args__['ipamId'] = ipam_id
|
|
274
|
+
__args__['ipamName'] = ipam_name
|
|
275
|
+
__args__['nameRegex'] = name_regex
|
|
276
|
+
__args__['outputFile'] = output_file
|
|
277
|
+
__args__['resourceGroupId'] = resource_group_id
|
|
278
|
+
__args__['tags'] = tags
|
|
279
|
+
opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
|
|
280
|
+
__ret__ = pulumi.runtime.invoke_output('alicloud:vpc/getIpamIpams:getIpamIpams', __args__, opts=opts, typ=GetIpamIpamsResult)
|
|
281
|
+
return __ret__.apply(lambda __response__: GetIpamIpamsResult(
|
|
282
|
+
id=pulumi.get(__response__, 'id'),
|
|
283
|
+
ids=pulumi.get(__response__, 'ids'),
|
|
284
|
+
ipam_id=pulumi.get(__response__, 'ipam_id'),
|
|
285
|
+
ipam_name=pulumi.get(__response__, 'ipam_name'),
|
|
286
|
+
ipams=pulumi.get(__response__, 'ipams'),
|
|
287
|
+
name_regex=pulumi.get(__response__, 'name_regex'),
|
|
288
|
+
names=pulumi.get(__response__, 'names'),
|
|
289
|
+
output_file=pulumi.get(__response__, 'output_file'),
|
|
290
|
+
resource_group_id=pulumi.get(__response__, 'resource_group_id'),
|
|
291
|
+
tags=pulumi.get(__response__, 'tags')))
|
|
@@ -100,6 +100,9 @@ class GetNetworksResult:
|
|
|
100
100
|
@property
|
|
101
101
|
@pulumi.getter(name="dhcpOptionsSetId")
|
|
102
102
|
def dhcp_options_set_id(self) -> Optional[str]:
|
|
103
|
+
"""
|
|
104
|
+
The ID of the DHCP options set.
|
|
105
|
+
"""
|
|
103
106
|
return pulumi.get(self, "dhcp_options_set_id")
|
|
104
107
|
|
|
105
108
|
@property
|