ros-cdk-ebs 1.9.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.
@@ -0,0 +1,4559 @@
1
+ '''
2
+ ## Aliyun ROS EBS Construct Library
3
+
4
+ This module is part of the AliCloud ROS Cloud Development Kit (ROS CDK) project.
5
+
6
+ ```python
7
+ import * as EBS from '@alicloud/ros-cdk-ebs';
8
+ ```
9
+ '''
10
+ import abc
11
+ import builtins
12
+ import datetime
13
+ import enum
14
+ import typing
15
+
16
+ import jsii
17
+ import publication
18
+ import typing_extensions
19
+
20
+ from typeguard import check_type
21
+
22
+ from ._jsii import *
23
+
24
+ import ros_cdk_core as _ros_cdk_core_7adfd82f
25
+
26
+
27
+ @jsii.data_type(
28
+ jsii_type="@alicloud/ros-cdk-ebs.DedicatedBlockStorageClusterProps",
29
+ jsii_struct_bases=[],
30
+ name_mapping={
31
+ "azone": "azone",
32
+ "capacity": "capacity",
33
+ "dbsc_name": "dbscName",
34
+ "period": "period",
35
+ "period_unit": "periodUnit",
36
+ "type": "type",
37
+ "resource_group_id": "resourceGroupId",
38
+ "tag": "tag",
39
+ },
40
+ )
41
+ class DedicatedBlockStorageClusterProps:
42
+ def __init__(
43
+ self,
44
+ *,
45
+ azone: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
46
+ capacity: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
47
+ dbsc_name: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
48
+ period: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
49
+ period_unit: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
50
+ type: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
51
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
52
+ tag: typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.Sequence[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.Union[_ros_cdk_core_7adfd82f.RosTag, typing.Dict[builtins.str, typing.Any]]]]]] = None,
53
+ ) -> None:
54
+ '''Properties for defining a ``DedicatedBlockStorageCluster``.
55
+
56
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-dedicatedblockstoragecluster
57
+
58
+ :param azone: Property azone: The ID of the zone in which to create the dedicated block storage cluster.
59
+ :param capacity: Property capacity: The capacity of the dedicated block storage cluster. Valid values: 61440 to 2334720. Unit: GiB. 2,334,720 GiB is equal to 2,280 TiB. The capacity increases in a minimum increment of 12,288 GiB.
60
+ :param dbsc_name: Property dbscName: The name of the dedicated block storage cluster.
61
+ :param period: Property period: The subscription duration of the dedicated block storage cluster. Valid values: 6, 7, 8, 9, 10, 11, 12, 24, and 36.
62
+ :param period_unit: Property periodUnit: The unit of the subscription duration specified by Period. Set the value to Month.
63
+ :param type: Property type: The type of the dedicated block storage cluster. Valid values: Standard: basic dedicated block storage cluster. Enterprise SSDs (ESSDs) at performance level 0 (PL0 ESSDs) can be created in basic dedicated block storage clusters. Premium: performance dedicated block storage cluster. ESSDs at performance level 1 (PL1 ESSDs) can be created in performance dedicated block storage clusters. Default value: Premium.
64
+ :param resource_group_id: Property resourceGroupId: The ID of the resource group to which to assign the dedicated block storage cluster.
65
+ :param tag: Property tag: Tags of dedicated block storage cluster.
66
+ '''
67
+ if __debug__:
68
+ type_hints = typing.get_type_hints(_typecheckingstub__02f1d81430aa8571004d6cd0b421c3c77cc30bcd81d954cf6e62d08c0d3c747e)
69
+ check_type(argname="argument azone", value=azone, expected_type=type_hints["azone"])
70
+ check_type(argname="argument capacity", value=capacity, expected_type=type_hints["capacity"])
71
+ check_type(argname="argument dbsc_name", value=dbsc_name, expected_type=type_hints["dbsc_name"])
72
+ check_type(argname="argument period", value=period, expected_type=type_hints["period"])
73
+ check_type(argname="argument period_unit", value=period_unit, expected_type=type_hints["period_unit"])
74
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
75
+ check_type(argname="argument resource_group_id", value=resource_group_id, expected_type=type_hints["resource_group_id"])
76
+ check_type(argname="argument tag", value=tag, expected_type=type_hints["tag"])
77
+ self._values: typing.Dict[builtins.str, typing.Any] = {
78
+ "azone": azone,
79
+ "capacity": capacity,
80
+ "dbsc_name": dbsc_name,
81
+ "period": period,
82
+ "period_unit": period_unit,
83
+ "type": type,
84
+ }
85
+ if resource_group_id is not None:
86
+ self._values["resource_group_id"] = resource_group_id
87
+ if tag is not None:
88
+ self._values["tag"] = tag
89
+
90
+ @builtins.property
91
+ def azone(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
92
+ '''Property azone: The ID of the zone in which to create the dedicated block storage cluster.'''
93
+ result = self._values.get("azone")
94
+ assert result is not None, "Required property 'azone' is missing"
95
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
96
+
97
+ @builtins.property
98
+ def capacity(self) -> typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]:
99
+ '''Property capacity: The capacity of the dedicated block storage cluster.
100
+
101
+ Valid values: 61440 to 2334720. Unit: GiB. 2,334,720 GiB is equal to 2,280 TiB. The capacity increases in a minimum increment of 12,288 GiB.
102
+ '''
103
+ result = self._values.get("capacity")
104
+ assert result is not None, "Required property 'capacity' is missing"
105
+ return typing.cast(typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable], result)
106
+
107
+ @builtins.property
108
+ def dbsc_name(
109
+ self,
110
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
111
+ '''Property dbscName: The name of the dedicated block storage cluster.'''
112
+ result = self._values.get("dbsc_name")
113
+ assert result is not None, "Required property 'dbsc_name' is missing"
114
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
115
+
116
+ @builtins.property
117
+ def period(self) -> typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]:
118
+ '''Property period: The subscription duration of the dedicated block storage cluster.
119
+
120
+ Valid values: 6, 7, 8, 9, 10, 11, 12, 24, and 36.
121
+ '''
122
+ result = self._values.get("period")
123
+ assert result is not None, "Required property 'period' is missing"
124
+ return typing.cast(typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable], result)
125
+
126
+ @builtins.property
127
+ def period_unit(
128
+ self,
129
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
130
+ '''Property periodUnit: The unit of the subscription duration specified by Period.
131
+
132
+ Set the value to Month.
133
+ '''
134
+ result = self._values.get("period_unit")
135
+ assert result is not None, "Required property 'period_unit' is missing"
136
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
137
+
138
+ @builtins.property
139
+ def type(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
140
+ '''Property type: The type of the dedicated block storage cluster.
141
+
142
+ Valid values:
143
+ Standard: basic dedicated block storage cluster. Enterprise SSDs (ESSDs) at performance level 0 (PL0 ESSDs) can be created in basic dedicated block storage clusters.
144
+ Premium: performance dedicated block storage cluster. ESSDs at performance level 1 (PL1 ESSDs) can be created in performance dedicated block storage clusters.
145
+ Default value: Premium.
146
+ '''
147
+ result = self._values.get("type")
148
+ assert result is not None, "Required property 'type' is missing"
149
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
150
+
151
+ @builtins.property
152
+ def resource_group_id(
153
+ self,
154
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
155
+ '''Property resourceGroupId: The ID of the resource group to which to assign the dedicated block storage cluster.'''
156
+ result = self._values.get("resource_group_id")
157
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
158
+
159
+ @builtins.property
160
+ def tag(
161
+ self,
162
+ ) -> typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.List[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, _ros_cdk_core_7adfd82f.RosTag]]]]:
163
+ '''Property tag: Tags of dedicated block storage cluster.'''
164
+ result = self._values.get("tag")
165
+ return typing.cast(typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.List[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, _ros_cdk_core_7adfd82f.RosTag]]]], result)
166
+
167
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
168
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
169
+
170
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
171
+ return not (rhs == self)
172
+
173
+ def __repr__(self) -> str:
174
+ return "DedicatedBlockStorageClusterProps(%s)" % ", ".join(
175
+ k + "=" + repr(v) for k, v in self._values.items()
176
+ )
177
+
178
+
179
+ @jsii.data_type(
180
+ jsii_type="@alicloud/ros-cdk-ebs.DiskReplicaGroupProps",
181
+ jsii_struct_bases=[],
182
+ name_mapping={
183
+ "destination_region_id": "destinationRegionId",
184
+ "destination_zone_id": "destinationZoneId",
185
+ "source_region_id": "sourceRegionId",
186
+ "source_zone_id": "sourceZoneId",
187
+ "description": "description",
188
+ "disk_replica_group_name": "diskReplicaGroupName",
189
+ "resource_group_id": "resourceGroupId",
190
+ "rpo": "rpo",
191
+ "tags": "tags",
192
+ },
193
+ )
194
+ class DiskReplicaGroupProps:
195
+ def __init__(
196
+ self,
197
+ *,
198
+ destination_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
199
+ destination_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
200
+ source_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
201
+ source_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
202
+ description: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
203
+ disk_replica_group_name: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
204
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
205
+ rpo: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
206
+ tags: typing.Optional[typing.Sequence[typing.Union["RosDiskReplicaGroup.TagsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
207
+ ) -> None:
208
+ '''Properties for defining a ``DiskReplicaGroup``.
209
+
210
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicagroup
211
+
212
+ :param destination_region_id: Property destinationRegionId: The ID of the region to which the disaster recovery site belongs.
213
+ :param destination_zone_id: Property destinationZoneId: The ID of the zone to which the disaster recovery site belongs.
214
+ :param source_region_id: Property sourceRegionId: The ID of the region to which the production site belongs.
215
+ :param source_zone_id: Property sourceZoneId: The ID of the zone to which the production site belongs.
216
+ :param description: Property description: The description of the consistent replication group.
217
+ :param disk_replica_group_name: Property diskReplicaGroupName: Consistent replication group name.
218
+ :param resource_group_id: Property resourceGroupId: The ID of resource group.
219
+ :param rpo: Property rpo: The RPO value set by the consistency group in seconds.
220
+ :param tags: Property tags: Tags of disk replica group.
221
+ '''
222
+ if __debug__:
223
+ type_hints = typing.get_type_hints(_typecheckingstub__a76c7ab106e58459e7cab0e86d12eb2d444eea35ded90de472201ef6a1c785f7)
224
+ check_type(argname="argument destination_region_id", value=destination_region_id, expected_type=type_hints["destination_region_id"])
225
+ check_type(argname="argument destination_zone_id", value=destination_zone_id, expected_type=type_hints["destination_zone_id"])
226
+ check_type(argname="argument source_region_id", value=source_region_id, expected_type=type_hints["source_region_id"])
227
+ check_type(argname="argument source_zone_id", value=source_zone_id, expected_type=type_hints["source_zone_id"])
228
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
229
+ check_type(argname="argument disk_replica_group_name", value=disk_replica_group_name, expected_type=type_hints["disk_replica_group_name"])
230
+ check_type(argname="argument resource_group_id", value=resource_group_id, expected_type=type_hints["resource_group_id"])
231
+ check_type(argname="argument rpo", value=rpo, expected_type=type_hints["rpo"])
232
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
233
+ self._values: typing.Dict[builtins.str, typing.Any] = {
234
+ "destination_region_id": destination_region_id,
235
+ "destination_zone_id": destination_zone_id,
236
+ "source_region_id": source_region_id,
237
+ "source_zone_id": source_zone_id,
238
+ }
239
+ if description is not None:
240
+ self._values["description"] = description
241
+ if disk_replica_group_name is not None:
242
+ self._values["disk_replica_group_name"] = disk_replica_group_name
243
+ if resource_group_id is not None:
244
+ self._values["resource_group_id"] = resource_group_id
245
+ if rpo is not None:
246
+ self._values["rpo"] = rpo
247
+ if tags is not None:
248
+ self._values["tags"] = tags
249
+
250
+ @builtins.property
251
+ def destination_region_id(
252
+ self,
253
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
254
+ '''Property destinationRegionId: The ID of the region to which the disaster recovery site belongs.'''
255
+ result = self._values.get("destination_region_id")
256
+ assert result is not None, "Required property 'destination_region_id' is missing"
257
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
258
+
259
+ @builtins.property
260
+ def destination_zone_id(
261
+ self,
262
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
263
+ '''Property destinationZoneId: The ID of the zone to which the disaster recovery site belongs.'''
264
+ result = self._values.get("destination_zone_id")
265
+ assert result is not None, "Required property 'destination_zone_id' is missing"
266
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
267
+
268
+ @builtins.property
269
+ def source_region_id(
270
+ self,
271
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
272
+ '''Property sourceRegionId: The ID of the region to which the production site belongs.'''
273
+ result = self._values.get("source_region_id")
274
+ assert result is not None, "Required property 'source_region_id' is missing"
275
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
276
+
277
+ @builtins.property
278
+ def source_zone_id(
279
+ self,
280
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
281
+ '''Property sourceZoneId: The ID of the zone to which the production site belongs.'''
282
+ result = self._values.get("source_zone_id")
283
+ assert result is not None, "Required property 'source_zone_id' is missing"
284
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
285
+
286
+ @builtins.property
287
+ def description(
288
+ self,
289
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
290
+ '''Property description: The description of the consistent replication group.'''
291
+ result = self._values.get("description")
292
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
293
+
294
+ @builtins.property
295
+ def disk_replica_group_name(
296
+ self,
297
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
298
+ '''Property diskReplicaGroupName: Consistent replication group name.'''
299
+ result = self._values.get("disk_replica_group_name")
300
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
301
+
302
+ @builtins.property
303
+ def resource_group_id(
304
+ self,
305
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
306
+ '''Property resourceGroupId: The ID of resource group.'''
307
+ result = self._values.get("resource_group_id")
308
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
309
+
310
+ @builtins.property
311
+ def rpo(
312
+ self,
313
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
314
+ '''Property rpo: The RPO value set by the consistency group in seconds.'''
315
+ result = self._values.get("rpo")
316
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], result)
317
+
318
+ @builtins.property
319
+ def tags(self) -> typing.Optional[typing.List["RosDiskReplicaGroup.TagsProperty"]]:
320
+ '''Property tags: Tags of disk replica group.'''
321
+ result = self._values.get("tags")
322
+ return typing.cast(typing.Optional[typing.List["RosDiskReplicaGroup.TagsProperty"]], result)
323
+
324
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
325
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
326
+
327
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
328
+ return not (rhs == self)
329
+
330
+ def __repr__(self) -> str:
331
+ return "DiskReplicaGroupProps(%s)" % ", ".join(
332
+ k + "=" + repr(v) for k, v in self._values.items()
333
+ )
334
+
335
+
336
+ @jsii.data_type(
337
+ jsii_type="@alicloud/ros-cdk-ebs.DiskReplicaPairAdditionProps",
338
+ jsii_struct_bases=[],
339
+ name_mapping={
340
+ "replica_group_id": "replicaGroupId",
341
+ "replica_pair_id": "replicaPairId",
342
+ },
343
+ )
344
+ class DiskReplicaPairAdditionProps:
345
+ def __init__(
346
+ self,
347
+ *,
348
+ replica_group_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
349
+ replica_pair_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
350
+ ) -> None:
351
+ '''Properties for defining a ``DiskReplicaPairAddition``.
352
+
353
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicapairaddition
354
+
355
+ :param replica_group_id: Property replicaGroupId: The ID of the replication pair-consistent group.
356
+ :param replica_pair_id: Property replicaPairId: The ID of the replication pair. You can call the DescribeDiskReplicaPairs operation to query the IDs of existing replication pairs.
357
+ '''
358
+ if __debug__:
359
+ type_hints = typing.get_type_hints(_typecheckingstub__c7c595b42f7ddb5c4951f246045ce03e549757953c893d2e71be536c09cfd7b7)
360
+ check_type(argname="argument replica_group_id", value=replica_group_id, expected_type=type_hints["replica_group_id"])
361
+ check_type(argname="argument replica_pair_id", value=replica_pair_id, expected_type=type_hints["replica_pair_id"])
362
+ self._values: typing.Dict[builtins.str, typing.Any] = {
363
+ "replica_group_id": replica_group_id,
364
+ "replica_pair_id": replica_pair_id,
365
+ }
366
+
367
+ @builtins.property
368
+ def replica_group_id(
369
+ self,
370
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
371
+ '''Property replicaGroupId: The ID of the replication pair-consistent group.'''
372
+ result = self._values.get("replica_group_id")
373
+ assert result is not None, "Required property 'replica_group_id' is missing"
374
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
375
+
376
+ @builtins.property
377
+ def replica_pair_id(
378
+ self,
379
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
380
+ '''Property replicaPairId: The ID of the replication pair.
381
+
382
+ You can call the DescribeDiskReplicaPairs operation to query the IDs of existing replication pairs.
383
+ '''
384
+ result = self._values.get("replica_pair_id")
385
+ assert result is not None, "Required property 'replica_pair_id' is missing"
386
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
387
+
388
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
389
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
390
+
391
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
392
+ return not (rhs == self)
393
+
394
+ def __repr__(self) -> str:
395
+ return "DiskReplicaPairAdditionProps(%s)" % ", ".join(
396
+ k + "=" + repr(v) for k, v in self._values.items()
397
+ )
398
+
399
+
400
+ @jsii.data_type(
401
+ jsii_type="@alicloud/ros-cdk-ebs.DiskReplicaPairProps",
402
+ jsii_struct_bases=[],
403
+ name_mapping={
404
+ "destination_disk_id": "destinationDiskId",
405
+ "destination_region_id": "destinationRegionId",
406
+ "destination_zone_id": "destinationZoneId",
407
+ "disk_id": "diskId",
408
+ "source_zone_id": "sourceZoneId",
409
+ "bandwidth": "bandwidth",
410
+ "description": "description",
411
+ "disk_replica_pair_name": "diskReplicaPairName",
412
+ "payment_type": "paymentType",
413
+ "period": "period",
414
+ "period_unit": "periodUnit",
415
+ "resource_group_id": "resourceGroupId",
416
+ "rpo": "rpo",
417
+ "tags": "tags",
418
+ },
419
+ )
420
+ class DiskReplicaPairProps:
421
+ def __init__(
422
+ self,
423
+ *,
424
+ destination_disk_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
425
+ destination_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
426
+ destination_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
427
+ disk_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
428
+ source_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
429
+ bandwidth: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
430
+ description: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
431
+ disk_replica_pair_name: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
432
+ payment_type: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
433
+ period: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
434
+ period_unit: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
435
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
436
+ rpo: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
437
+ tags: typing.Optional[typing.Sequence[typing.Union["RosDiskReplicaPair.TagsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
438
+ ) -> None:
439
+ '''Properties for defining a ``DiskReplicaPair``.
440
+
441
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicapair
442
+
443
+ :param destination_disk_id: Property destinationDiskId: The ID of the standby disk.
444
+ :param destination_region_id: Property destinationRegionId: The ID of the region to which the disaster recovery site belongs.
445
+ :param destination_zone_id: Property destinationZoneId: The ID of the zone to which the disaster recovery site belongs.
446
+ :param disk_id: Property diskId: The ID of the primary disk.
447
+ :param source_zone_id: Property sourceZoneId: The ID of the zone to which the production site belongs.
448
+ :param bandwidth: Property bandwidth: The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range: - 10240 Kbps: equal to 10 Mbps. - 20480 Kbps: equal to 20 Mbps. - 51200 Kbps: equal to 50 Mbps. - 102400 Kbps: equal to 100 Mbps. Default value: 10240. This parameter cannot be specified when the ChargeType value is PayAsYouGo The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.
449
+ :param description: Property description: The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.
450
+ :param disk_replica_pair_name: Property diskReplicaPairName: The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).
451
+ :param payment_type: Property paymentType: The payment type of the resource.
452
+ :param period: Property period: The purchase duration of the asynchronous replication relationship. This parameter is required when 'ChargeType = PrePay. The duration unit is specified by'periodunit', and the value range is: - When 'PeriodUnit = Month', the value range of this parameter is 1, 2, 3, 6, 12, 24, 36, 60.
453
+ :param period_unit: Property periodUnit: The unit of the purchase time of the asynchronous replication relationship. Value range: - Month.Default value: Month.
454
+ :param resource_group_id: Property resourceGroupId: The ID of the resource group.
455
+ :param rpo: Property rpo: The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.
456
+ :param tags: Property tags: Tags of disk replica pair.
457
+ '''
458
+ if __debug__:
459
+ type_hints = typing.get_type_hints(_typecheckingstub__39be8219284ab11de1631b982a3fa1e87aa7f98fbb66156dc0245e9fc8479787)
460
+ check_type(argname="argument destination_disk_id", value=destination_disk_id, expected_type=type_hints["destination_disk_id"])
461
+ check_type(argname="argument destination_region_id", value=destination_region_id, expected_type=type_hints["destination_region_id"])
462
+ check_type(argname="argument destination_zone_id", value=destination_zone_id, expected_type=type_hints["destination_zone_id"])
463
+ check_type(argname="argument disk_id", value=disk_id, expected_type=type_hints["disk_id"])
464
+ check_type(argname="argument source_zone_id", value=source_zone_id, expected_type=type_hints["source_zone_id"])
465
+ check_type(argname="argument bandwidth", value=bandwidth, expected_type=type_hints["bandwidth"])
466
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
467
+ check_type(argname="argument disk_replica_pair_name", value=disk_replica_pair_name, expected_type=type_hints["disk_replica_pair_name"])
468
+ check_type(argname="argument payment_type", value=payment_type, expected_type=type_hints["payment_type"])
469
+ check_type(argname="argument period", value=period, expected_type=type_hints["period"])
470
+ check_type(argname="argument period_unit", value=period_unit, expected_type=type_hints["period_unit"])
471
+ check_type(argname="argument resource_group_id", value=resource_group_id, expected_type=type_hints["resource_group_id"])
472
+ check_type(argname="argument rpo", value=rpo, expected_type=type_hints["rpo"])
473
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
474
+ self._values: typing.Dict[builtins.str, typing.Any] = {
475
+ "destination_disk_id": destination_disk_id,
476
+ "destination_region_id": destination_region_id,
477
+ "destination_zone_id": destination_zone_id,
478
+ "disk_id": disk_id,
479
+ "source_zone_id": source_zone_id,
480
+ }
481
+ if bandwidth is not None:
482
+ self._values["bandwidth"] = bandwidth
483
+ if description is not None:
484
+ self._values["description"] = description
485
+ if disk_replica_pair_name is not None:
486
+ self._values["disk_replica_pair_name"] = disk_replica_pair_name
487
+ if payment_type is not None:
488
+ self._values["payment_type"] = payment_type
489
+ if period is not None:
490
+ self._values["period"] = period
491
+ if period_unit is not None:
492
+ self._values["period_unit"] = period_unit
493
+ if resource_group_id is not None:
494
+ self._values["resource_group_id"] = resource_group_id
495
+ if rpo is not None:
496
+ self._values["rpo"] = rpo
497
+ if tags is not None:
498
+ self._values["tags"] = tags
499
+
500
+ @builtins.property
501
+ def destination_disk_id(
502
+ self,
503
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
504
+ '''Property destinationDiskId: The ID of the standby disk.'''
505
+ result = self._values.get("destination_disk_id")
506
+ assert result is not None, "Required property 'destination_disk_id' is missing"
507
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
508
+
509
+ @builtins.property
510
+ def destination_region_id(
511
+ self,
512
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
513
+ '''Property destinationRegionId: The ID of the region to which the disaster recovery site belongs.'''
514
+ result = self._values.get("destination_region_id")
515
+ assert result is not None, "Required property 'destination_region_id' is missing"
516
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
517
+
518
+ @builtins.property
519
+ def destination_zone_id(
520
+ self,
521
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
522
+ '''Property destinationZoneId: The ID of the zone to which the disaster recovery site belongs.'''
523
+ result = self._values.get("destination_zone_id")
524
+ assert result is not None, "Required property 'destination_zone_id' is missing"
525
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
526
+
527
+ @builtins.property
528
+ def disk_id(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
529
+ '''Property diskId: The ID of the primary disk.'''
530
+ result = self._values.get("disk_id")
531
+ assert result is not None, "Required property 'disk_id' is missing"
532
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
533
+
534
+ @builtins.property
535
+ def source_zone_id(
536
+ self,
537
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
538
+ '''Property sourceZoneId: The ID of the zone to which the production site belongs.'''
539
+ result = self._values.get("source_zone_id")
540
+ assert result is not None, "Required property 'source_zone_id' is missing"
541
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
542
+
543
+ @builtins.property
544
+ def bandwidth(
545
+ self,
546
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
547
+ '''Property bandwidth: The bandwidth for asynchronous data replication between cloud disks.
548
+
549
+ The unit is Kbps. Value range:
550
+
551
+ - 10240 Kbps: equal to 10 Mbps.
552
+ - 20480 Kbps: equal to 20 Mbps.
553
+ - 51200 Kbps: equal to 50 Mbps.
554
+ - 102400 Kbps: equal to 100 Mbps.
555
+ Default value: 10240.
556
+ This parameter cannot be specified when the ChargeType value is PayAsYouGo The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.
557
+ '''
558
+ result = self._values.get("bandwidth")
559
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], result)
560
+
561
+ @builtins.property
562
+ def description(
563
+ self,
564
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
565
+ '''Property description: The description of the asynchronous replication relationship.
566
+
567
+ 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.
568
+ '''
569
+ result = self._values.get("description")
570
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
571
+
572
+ @builtins.property
573
+ def disk_replica_pair_name(
574
+ self,
575
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
576
+ '''Property diskReplicaPairName: The name of the asynchronous replication relationship.
577
+
578
+ The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).
579
+ '''
580
+ result = self._values.get("disk_replica_pair_name")
581
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
582
+
583
+ @builtins.property
584
+ def payment_type(
585
+ self,
586
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
587
+ '''Property paymentType: The payment type of the resource.'''
588
+ result = self._values.get("payment_type")
589
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
590
+
591
+ @builtins.property
592
+ def period(
593
+ self,
594
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
595
+ '''Property period: The purchase duration of the asynchronous replication relationship.
596
+
597
+ This parameter is required when 'ChargeType = PrePay. The duration unit is specified by'periodunit', and the value range is:
598
+
599
+ - When 'PeriodUnit = Month', the value range of this parameter is 1, 2, 3, 6, 12, 24, 36, 60.
600
+ '''
601
+ result = self._values.get("period")
602
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], result)
603
+
604
+ @builtins.property
605
+ def period_unit(
606
+ self,
607
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
608
+ '''Property periodUnit: The unit of the purchase time of the asynchronous replication relationship.
609
+
610
+ Value range:
611
+
612
+ - Month.Default value: Month.
613
+ '''
614
+ result = self._values.get("period_unit")
615
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
616
+
617
+ @builtins.property
618
+ def resource_group_id(
619
+ self,
620
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
621
+ '''Property resourceGroupId: The ID of the resource group.'''
622
+ result = self._values.get("resource_group_id")
623
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
624
+
625
+ @builtins.property
626
+ def rpo(
627
+ self,
628
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
629
+ '''Property rpo: The RPO value set by the consistency group in seconds.
630
+
631
+ Currently only 900 seconds are supported.
632
+ '''
633
+ result = self._values.get("rpo")
634
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], result)
635
+
636
+ @builtins.property
637
+ def tags(self) -> typing.Optional[typing.List["RosDiskReplicaPair.TagsProperty"]]:
638
+ '''Property tags: Tags of disk replica pair.'''
639
+ result = self._values.get("tags")
640
+ return typing.cast(typing.Optional[typing.List["RosDiskReplicaPair.TagsProperty"]], result)
641
+
642
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
643
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
644
+
645
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
646
+ return not (rhs == self)
647
+
648
+ def __repr__(self) -> str:
649
+ return "DiskReplicaPairProps(%s)" % ", ".join(
650
+ k + "=" + repr(v) for k, v in self._values.items()
651
+ )
652
+
653
+
654
+ @jsii.interface(jsii_type="@alicloud/ros-cdk-ebs.IDedicatedBlockStorageCluster")
655
+ class IDedicatedBlockStorageCluster(
656
+ _ros_cdk_core_7adfd82f.IResource,
657
+ typing_extensions.Protocol,
658
+ ):
659
+ '''Represents a ``DedicatedBlockStorageCluster``.'''
660
+
661
+ @builtins.property
662
+ @jsii.member(jsii_name="attrDedicatedBlockStorageClusterId")
663
+ def attr_dedicated_block_storage_cluster_id(
664
+ self,
665
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
666
+ '''Attribute DedicatedBlockStorageClusterId: The ID of the dedicated block storage cluster.'''
667
+ ...
668
+
669
+ @builtins.property
670
+ @jsii.member(jsii_name="props")
671
+ def props(self) -> DedicatedBlockStorageClusterProps:
672
+ ...
673
+
674
+
675
+ class _IDedicatedBlockStorageClusterProxy(
676
+ jsii.proxy_for(_ros_cdk_core_7adfd82f.IResource), # type: ignore[misc]
677
+ ):
678
+ '''Represents a ``DedicatedBlockStorageCluster``.'''
679
+
680
+ __jsii_type__: typing.ClassVar[str] = "@alicloud/ros-cdk-ebs.IDedicatedBlockStorageCluster"
681
+
682
+ @builtins.property
683
+ @jsii.member(jsii_name="attrDedicatedBlockStorageClusterId")
684
+ def attr_dedicated_block_storage_cluster_id(
685
+ self,
686
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
687
+ '''Attribute DedicatedBlockStorageClusterId: The ID of the dedicated block storage cluster.'''
688
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDedicatedBlockStorageClusterId"))
689
+
690
+ @builtins.property
691
+ @jsii.member(jsii_name="props")
692
+ def props(self) -> DedicatedBlockStorageClusterProps:
693
+ return typing.cast(DedicatedBlockStorageClusterProps, jsii.get(self, "props"))
694
+
695
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
696
+ typing.cast(typing.Any, IDedicatedBlockStorageCluster).__jsii_proxy_class__ = lambda : _IDedicatedBlockStorageClusterProxy
697
+
698
+
699
+ @jsii.interface(jsii_type="@alicloud/ros-cdk-ebs.IDiskReplicaGroup")
700
+ class IDiskReplicaGroup(_ros_cdk_core_7adfd82f.IResource, typing_extensions.Protocol):
701
+ '''Represents a ``DiskReplicaGroup``.'''
702
+
703
+ @builtins.property
704
+ @jsii.member(jsii_name="attrDescription")
705
+ def attr_description(
706
+ self,
707
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
708
+ '''Attribute Description: The description of the consistent replication group.'''
709
+ ...
710
+
711
+ @builtins.property
712
+ @jsii.member(jsii_name="attrDestinationRegionId")
713
+ def attr_destination_region_id(
714
+ self,
715
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
716
+ '''Attribute DestinationRegionId: The ID of the region to which the disaster recovery site belongs.'''
717
+ ...
718
+
719
+ @builtins.property
720
+ @jsii.member(jsii_name="attrDestinationZoneId")
721
+ def attr_destination_zone_id(
722
+ self,
723
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
724
+ '''Attribute DestinationZoneId: The ID of the zone to which the disaster recovery site belongs.'''
725
+ ...
726
+
727
+ @builtins.property
728
+ @jsii.member(jsii_name="attrDiskReplicaGroupName")
729
+ def attr_disk_replica_group_name(
730
+ self,
731
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
732
+ '''Attribute DiskReplicaGroupName: Consistent replication group name.'''
733
+ ...
734
+
735
+ @builtins.property
736
+ @jsii.member(jsii_name="attrLastRecoverPoint")
737
+ def attr_last_recover_point(
738
+ self,
739
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
740
+ '''Attribute LastRecoverPoint: The time when the last asynchronous replication operation of the consistent replication group completed.
741
+
742
+ This parameter provides the return value as a timestamp. Unit: seconds.
743
+ '''
744
+ ...
745
+
746
+ @builtins.property
747
+ @jsii.member(jsii_name="attrPairIds")
748
+ def attr_pair_ids(
749
+ self,
750
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
751
+ '''Attribute PairIds: List of replication pair IDs contained in a consistent replication group.'''
752
+ ...
753
+
754
+ @builtins.property
755
+ @jsii.member(jsii_name="attrPairNumber")
756
+ def attr_pair_number(
757
+ self,
758
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
759
+ '''Attribute PairNumber: The number of replication pairs contained in a consistent replication group.'''
760
+ ...
761
+
762
+ @builtins.property
763
+ @jsii.member(jsii_name="attrPrimaryRegion")
764
+ def attr_primary_region(
765
+ self,
766
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
767
+ '''Attribute PrimaryRegion: The initial source region of the replication group.'''
768
+ ...
769
+
770
+ @builtins.property
771
+ @jsii.member(jsii_name="attrPrimaryZone")
772
+ def attr_primary_zone(
773
+ self,
774
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
775
+ '''Attribute PrimaryZone: The initial source available area of the replication group.'''
776
+ ...
777
+
778
+ @builtins.property
779
+ @jsii.member(jsii_name="attrReplicaGroupId")
780
+ def attr_replica_group_id(
781
+ self,
782
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
783
+ '''Attribute ReplicaGroupId: The ID of the consistent replication group.'''
784
+ ...
785
+
786
+ @builtins.property
787
+ @jsii.member(jsii_name="attrResourceGroupId")
788
+ def attr_resource_group_id(
789
+ self,
790
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
791
+ '''Attribute ResourceGroupId: resource group ID of enterprise.'''
792
+ ...
793
+
794
+ @builtins.property
795
+ @jsii.member(jsii_name="attrRpo")
796
+ def attr_rpo(
797
+ self,
798
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
799
+ '''Attribute RPO: The RPO value set by the consistency group in seconds.'''
800
+ ...
801
+
802
+ @builtins.property
803
+ @jsii.member(jsii_name="attrSite")
804
+ def attr_site(
805
+ self,
806
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
807
+ '''Attribute Site: Site information sources for replication pairs and consistent replication groups.
808
+
809
+ Possible values:
810
+ '''
811
+ ...
812
+
813
+ @builtins.property
814
+ @jsii.member(jsii_name="attrSourceRegionId")
815
+ def attr_source_region_id(
816
+ self,
817
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
818
+ '''Attribute SourceRegionId: The ID of the region to which the production site belongs.'''
819
+ ...
820
+
821
+ @builtins.property
822
+ @jsii.member(jsii_name="attrSourceZoneId")
823
+ def attr_source_zone_id(
824
+ self,
825
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
826
+ '''Attribute SourceZoneId: The ID of the zone to which the production site belongs.'''
827
+ ...
828
+
829
+ @builtins.property
830
+ @jsii.member(jsii_name="attrStandbyRegion")
831
+ def attr_standby_region(
832
+ self,
833
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
834
+ '''Attribute StandbyRegion: The initial destination region of the replication group.'''
835
+ ...
836
+
837
+ @builtins.property
838
+ @jsii.member(jsii_name="attrStandbyZone")
839
+ def attr_standby_zone(
840
+ self,
841
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
842
+ '''Attribute StandbyZone: The initial destination zone of the replication group.'''
843
+ ...
844
+
845
+ @builtins.property
846
+ @jsii.member(jsii_name="attrTags")
847
+ def attr_tags(
848
+ self,
849
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
850
+ '''Attribute Tags: The tags of the disk replica group.'''
851
+ ...
852
+
853
+ @builtins.property
854
+ @jsii.member(jsii_name="props")
855
+ def props(self) -> DiskReplicaGroupProps:
856
+ ...
857
+
858
+
859
+ class _IDiskReplicaGroupProxy(
860
+ jsii.proxy_for(_ros_cdk_core_7adfd82f.IResource), # type: ignore[misc]
861
+ ):
862
+ '''Represents a ``DiskReplicaGroup``.'''
863
+
864
+ __jsii_type__: typing.ClassVar[str] = "@alicloud/ros-cdk-ebs.IDiskReplicaGroup"
865
+
866
+ @builtins.property
867
+ @jsii.member(jsii_name="attrDescription")
868
+ def attr_description(
869
+ self,
870
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
871
+ '''Attribute Description: The description of the consistent replication group.'''
872
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDescription"))
873
+
874
+ @builtins.property
875
+ @jsii.member(jsii_name="attrDestinationRegionId")
876
+ def attr_destination_region_id(
877
+ self,
878
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
879
+ '''Attribute DestinationRegionId: The ID of the region to which the disaster recovery site belongs.'''
880
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationRegionId"))
881
+
882
+ @builtins.property
883
+ @jsii.member(jsii_name="attrDestinationZoneId")
884
+ def attr_destination_zone_id(
885
+ self,
886
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
887
+ '''Attribute DestinationZoneId: The ID of the zone to which the disaster recovery site belongs.'''
888
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationZoneId"))
889
+
890
+ @builtins.property
891
+ @jsii.member(jsii_name="attrDiskReplicaGroupName")
892
+ def attr_disk_replica_group_name(
893
+ self,
894
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
895
+ '''Attribute DiskReplicaGroupName: Consistent replication group name.'''
896
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDiskReplicaGroupName"))
897
+
898
+ @builtins.property
899
+ @jsii.member(jsii_name="attrLastRecoverPoint")
900
+ def attr_last_recover_point(
901
+ self,
902
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
903
+ '''Attribute LastRecoverPoint: The time when the last asynchronous replication operation of the consistent replication group completed.
904
+
905
+ This parameter provides the return value as a timestamp. Unit: seconds.
906
+ '''
907
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrLastRecoverPoint"))
908
+
909
+ @builtins.property
910
+ @jsii.member(jsii_name="attrPairIds")
911
+ def attr_pair_ids(
912
+ self,
913
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
914
+ '''Attribute PairIds: List of replication pair IDs contained in a consistent replication group.'''
915
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPairIds"))
916
+
917
+ @builtins.property
918
+ @jsii.member(jsii_name="attrPairNumber")
919
+ def attr_pair_number(
920
+ self,
921
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
922
+ '''Attribute PairNumber: The number of replication pairs contained in a consistent replication group.'''
923
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPairNumber"))
924
+
925
+ @builtins.property
926
+ @jsii.member(jsii_name="attrPrimaryRegion")
927
+ def attr_primary_region(
928
+ self,
929
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
930
+ '''Attribute PrimaryRegion: The initial source region of the replication group.'''
931
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPrimaryRegion"))
932
+
933
+ @builtins.property
934
+ @jsii.member(jsii_name="attrPrimaryZone")
935
+ def attr_primary_zone(
936
+ self,
937
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
938
+ '''Attribute PrimaryZone: The initial source available area of the replication group.'''
939
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPrimaryZone"))
940
+
941
+ @builtins.property
942
+ @jsii.member(jsii_name="attrReplicaGroupId")
943
+ def attr_replica_group_id(
944
+ self,
945
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
946
+ '''Attribute ReplicaGroupId: The ID of the consistent replication group.'''
947
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrReplicaGroupId"))
948
+
949
+ @builtins.property
950
+ @jsii.member(jsii_name="attrResourceGroupId")
951
+ def attr_resource_group_id(
952
+ self,
953
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
954
+ '''Attribute ResourceGroupId: resource group ID of enterprise.'''
955
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrResourceGroupId"))
956
+
957
+ @builtins.property
958
+ @jsii.member(jsii_name="attrRpo")
959
+ def attr_rpo(
960
+ self,
961
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
962
+ '''Attribute RPO: The RPO value set by the consistency group in seconds.'''
963
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrRpo"))
964
+
965
+ @builtins.property
966
+ @jsii.member(jsii_name="attrSite")
967
+ def attr_site(
968
+ self,
969
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
970
+ '''Attribute Site: Site information sources for replication pairs and consistent replication groups.
971
+
972
+ Possible values:
973
+ '''
974
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrSite"))
975
+
976
+ @builtins.property
977
+ @jsii.member(jsii_name="attrSourceRegionId")
978
+ def attr_source_region_id(
979
+ self,
980
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
981
+ '''Attribute SourceRegionId: The ID of the region to which the production site belongs.'''
982
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrSourceRegionId"))
983
+
984
+ @builtins.property
985
+ @jsii.member(jsii_name="attrSourceZoneId")
986
+ def attr_source_zone_id(
987
+ self,
988
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
989
+ '''Attribute SourceZoneId: The ID of the zone to which the production site belongs.'''
990
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrSourceZoneId"))
991
+
992
+ @builtins.property
993
+ @jsii.member(jsii_name="attrStandbyRegion")
994
+ def attr_standby_region(
995
+ self,
996
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
997
+ '''Attribute StandbyRegion: The initial destination region of the replication group.'''
998
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrStandbyRegion"))
999
+
1000
+ @builtins.property
1001
+ @jsii.member(jsii_name="attrStandbyZone")
1002
+ def attr_standby_zone(
1003
+ self,
1004
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1005
+ '''Attribute StandbyZone: The initial destination zone of the replication group.'''
1006
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrStandbyZone"))
1007
+
1008
+ @builtins.property
1009
+ @jsii.member(jsii_name="attrTags")
1010
+ def attr_tags(
1011
+ self,
1012
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1013
+ '''Attribute Tags: The tags of the disk replica group.'''
1014
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrTags"))
1015
+
1016
+ @builtins.property
1017
+ @jsii.member(jsii_name="props")
1018
+ def props(self) -> DiskReplicaGroupProps:
1019
+ return typing.cast(DiskReplicaGroupProps, jsii.get(self, "props"))
1020
+
1021
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1022
+ typing.cast(typing.Any, IDiskReplicaGroup).__jsii_proxy_class__ = lambda : _IDiskReplicaGroupProxy
1023
+
1024
+
1025
+ @jsii.interface(jsii_type="@alicloud/ros-cdk-ebs.IDiskReplicaPair")
1026
+ class IDiskReplicaPair(_ros_cdk_core_7adfd82f.IResource, typing_extensions.Protocol):
1027
+ '''Represents a ``DiskReplicaPair``.'''
1028
+
1029
+ @builtins.property
1030
+ @jsii.member(jsii_name="attrBandwidth")
1031
+ def attr_bandwidth(
1032
+ self,
1033
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1034
+ '''Attribute Bandwidth: The bandwidth for asynchronous data replication between cloud disks.'''
1035
+ ...
1036
+
1037
+ @builtins.property
1038
+ @jsii.member(jsii_name="attrCreateTime")
1039
+ def attr_create_time(
1040
+ self,
1041
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1042
+ '''Attribute CreateTime: The creation time of the resource.'''
1043
+ ...
1044
+
1045
+ @builtins.property
1046
+ @jsii.member(jsii_name="attrDescription")
1047
+ def attr_description(
1048
+ self,
1049
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1050
+ '''Attribute Description: The description of the asynchronous replication relationship.'''
1051
+ ...
1052
+
1053
+ @builtins.property
1054
+ @jsii.member(jsii_name="attrDestinationDiskId")
1055
+ def attr_destination_disk_id(
1056
+ self,
1057
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1058
+ '''Attribute DestinationDiskId: The ID of the standby disk.'''
1059
+ ...
1060
+
1061
+ @builtins.property
1062
+ @jsii.member(jsii_name="attrDestinationRegionId")
1063
+ def attr_destination_region_id(
1064
+ self,
1065
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1066
+ '''Attribute DestinationRegionId: The ID of the region to which the disaster recovery site belongs.'''
1067
+ ...
1068
+
1069
+ @builtins.property
1070
+ @jsii.member(jsii_name="attrDestinationZoneId")
1071
+ def attr_destination_zone_id(
1072
+ self,
1073
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1074
+ '''Attribute DestinationZoneId: The ID of the zone to which the disaster recovery site belongs.'''
1075
+ ...
1076
+
1077
+ @builtins.property
1078
+ @jsii.member(jsii_name="attrDiskId")
1079
+ def attr_disk_id(
1080
+ self,
1081
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1082
+ '''Attribute DiskId: The ID of the primary disk.'''
1083
+ ...
1084
+
1085
+ @builtins.property
1086
+ @jsii.member(jsii_name="attrDiskReplicaPairName")
1087
+ def attr_disk_replica_pair_name(
1088
+ self,
1089
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1090
+ '''Attribute DiskReplicaPairName: The name of the asynchronous replication relationship.'''
1091
+ ...
1092
+
1093
+ @builtins.property
1094
+ @jsii.member(jsii_name="attrPaymentType")
1095
+ def attr_payment_type(
1096
+ self,
1097
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1098
+ '''Attribute PaymentType: The payment type of the resource.'''
1099
+ ...
1100
+
1101
+ @builtins.property
1102
+ @jsii.member(jsii_name="attrReplicaPairId")
1103
+ def attr_replica_pair_id(
1104
+ self,
1105
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1106
+ '''Attribute ReplicaPairId: The ID of the disk replica pair.'''
1107
+ ...
1108
+
1109
+ @builtins.property
1110
+ @jsii.member(jsii_name="attrResourceGroupId")
1111
+ def attr_resource_group_id(
1112
+ self,
1113
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1114
+ '''Attribute ResourceGroupId: The ID of the resource group.'''
1115
+ ...
1116
+
1117
+ @builtins.property
1118
+ @jsii.member(jsii_name="attrRpo")
1119
+ def attr_rpo(
1120
+ self,
1121
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1122
+ '''Attribute RPO: The RPO value set by the consistency group in seconds.'''
1123
+ ...
1124
+
1125
+ @builtins.property
1126
+ @jsii.member(jsii_name="attrSourceZoneId")
1127
+ def attr_source_zone_id(
1128
+ self,
1129
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1130
+ '''Attribute SourceZoneId: The ID of the zone to which the production site belongs.'''
1131
+ ...
1132
+
1133
+ @builtins.property
1134
+ @jsii.member(jsii_name="attrTags")
1135
+ def attr_tags(
1136
+ self,
1137
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1138
+ '''Attribute Tags: The tags of the disk replica pair.'''
1139
+ ...
1140
+
1141
+ @builtins.property
1142
+ @jsii.member(jsii_name="props")
1143
+ def props(self) -> DiskReplicaPairProps:
1144
+ ...
1145
+
1146
+
1147
+ class _IDiskReplicaPairProxy(
1148
+ jsii.proxy_for(_ros_cdk_core_7adfd82f.IResource), # type: ignore[misc]
1149
+ ):
1150
+ '''Represents a ``DiskReplicaPair``.'''
1151
+
1152
+ __jsii_type__: typing.ClassVar[str] = "@alicloud/ros-cdk-ebs.IDiskReplicaPair"
1153
+
1154
+ @builtins.property
1155
+ @jsii.member(jsii_name="attrBandwidth")
1156
+ def attr_bandwidth(
1157
+ self,
1158
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1159
+ '''Attribute Bandwidth: The bandwidth for asynchronous data replication between cloud disks.'''
1160
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrBandwidth"))
1161
+
1162
+ @builtins.property
1163
+ @jsii.member(jsii_name="attrCreateTime")
1164
+ def attr_create_time(
1165
+ self,
1166
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1167
+ '''Attribute CreateTime: The creation time of the resource.'''
1168
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrCreateTime"))
1169
+
1170
+ @builtins.property
1171
+ @jsii.member(jsii_name="attrDescription")
1172
+ def attr_description(
1173
+ self,
1174
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1175
+ '''Attribute Description: The description of the asynchronous replication relationship.'''
1176
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDescription"))
1177
+
1178
+ @builtins.property
1179
+ @jsii.member(jsii_name="attrDestinationDiskId")
1180
+ def attr_destination_disk_id(
1181
+ self,
1182
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1183
+ '''Attribute DestinationDiskId: The ID of the standby disk.'''
1184
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationDiskId"))
1185
+
1186
+ @builtins.property
1187
+ @jsii.member(jsii_name="attrDestinationRegionId")
1188
+ def attr_destination_region_id(
1189
+ self,
1190
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1191
+ '''Attribute DestinationRegionId: The ID of the region to which the disaster recovery site belongs.'''
1192
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationRegionId"))
1193
+
1194
+ @builtins.property
1195
+ @jsii.member(jsii_name="attrDestinationZoneId")
1196
+ def attr_destination_zone_id(
1197
+ self,
1198
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1199
+ '''Attribute DestinationZoneId: The ID of the zone to which the disaster recovery site belongs.'''
1200
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationZoneId"))
1201
+
1202
+ @builtins.property
1203
+ @jsii.member(jsii_name="attrDiskId")
1204
+ def attr_disk_id(
1205
+ self,
1206
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1207
+ '''Attribute DiskId: The ID of the primary disk.'''
1208
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDiskId"))
1209
+
1210
+ @builtins.property
1211
+ @jsii.member(jsii_name="attrDiskReplicaPairName")
1212
+ def attr_disk_replica_pair_name(
1213
+ self,
1214
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1215
+ '''Attribute DiskReplicaPairName: The name of the asynchronous replication relationship.'''
1216
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDiskReplicaPairName"))
1217
+
1218
+ @builtins.property
1219
+ @jsii.member(jsii_name="attrPaymentType")
1220
+ def attr_payment_type(
1221
+ self,
1222
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1223
+ '''Attribute PaymentType: The payment type of the resource.'''
1224
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPaymentType"))
1225
+
1226
+ @builtins.property
1227
+ @jsii.member(jsii_name="attrReplicaPairId")
1228
+ def attr_replica_pair_id(
1229
+ self,
1230
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1231
+ '''Attribute ReplicaPairId: The ID of the disk replica pair.'''
1232
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrReplicaPairId"))
1233
+
1234
+ @builtins.property
1235
+ @jsii.member(jsii_name="attrResourceGroupId")
1236
+ def attr_resource_group_id(
1237
+ self,
1238
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1239
+ '''Attribute ResourceGroupId: The ID of the resource group.'''
1240
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrResourceGroupId"))
1241
+
1242
+ @builtins.property
1243
+ @jsii.member(jsii_name="attrRpo")
1244
+ def attr_rpo(
1245
+ self,
1246
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1247
+ '''Attribute RPO: The RPO value set by the consistency group in seconds.'''
1248
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrRpo"))
1249
+
1250
+ @builtins.property
1251
+ @jsii.member(jsii_name="attrSourceZoneId")
1252
+ def attr_source_zone_id(
1253
+ self,
1254
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1255
+ '''Attribute SourceZoneId: The ID of the zone to which the production site belongs.'''
1256
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrSourceZoneId"))
1257
+
1258
+ @builtins.property
1259
+ @jsii.member(jsii_name="attrTags")
1260
+ def attr_tags(
1261
+ self,
1262
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1263
+ '''Attribute Tags: The tags of the disk replica pair.'''
1264
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrTags"))
1265
+
1266
+ @builtins.property
1267
+ @jsii.member(jsii_name="props")
1268
+ def props(self) -> DiskReplicaPairProps:
1269
+ return typing.cast(DiskReplicaPairProps, jsii.get(self, "props"))
1270
+
1271
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1272
+ typing.cast(typing.Any, IDiskReplicaPair).__jsii_proxy_class__ = lambda : _IDiskReplicaPairProxy
1273
+
1274
+
1275
+ @jsii.interface(jsii_type="@alicloud/ros-cdk-ebs.IDiskReplicaPairAddition")
1276
+ class IDiskReplicaPairAddition(
1277
+ _ros_cdk_core_7adfd82f.IResource,
1278
+ typing_extensions.Protocol,
1279
+ ):
1280
+ '''Represents a ``DiskReplicaPairAddition``.'''
1281
+
1282
+ @builtins.property
1283
+ @jsii.member(jsii_name="attrReplicaGroupId")
1284
+ def attr_replica_group_id(
1285
+ self,
1286
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1287
+ '''Attribute ReplicaGroupId: The ID of the replication pair-consistent group.'''
1288
+ ...
1289
+
1290
+ @builtins.property
1291
+ @jsii.member(jsii_name="attrReplicaPairId")
1292
+ def attr_replica_pair_id(
1293
+ self,
1294
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1295
+ '''Attribute ReplicaPairId: The ID of the replication pair.'''
1296
+ ...
1297
+
1298
+ @builtins.property
1299
+ @jsii.member(jsii_name="props")
1300
+ def props(self) -> DiskReplicaPairAdditionProps:
1301
+ ...
1302
+
1303
+
1304
+ class _IDiskReplicaPairAdditionProxy(
1305
+ jsii.proxy_for(_ros_cdk_core_7adfd82f.IResource), # type: ignore[misc]
1306
+ ):
1307
+ '''Represents a ``DiskReplicaPairAddition``.'''
1308
+
1309
+ __jsii_type__: typing.ClassVar[str] = "@alicloud/ros-cdk-ebs.IDiskReplicaPairAddition"
1310
+
1311
+ @builtins.property
1312
+ @jsii.member(jsii_name="attrReplicaGroupId")
1313
+ def attr_replica_group_id(
1314
+ self,
1315
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1316
+ '''Attribute ReplicaGroupId: The ID of the replication pair-consistent group.'''
1317
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrReplicaGroupId"))
1318
+
1319
+ @builtins.property
1320
+ @jsii.member(jsii_name="attrReplicaPairId")
1321
+ def attr_replica_pair_id(
1322
+ self,
1323
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1324
+ '''Attribute ReplicaPairId: The ID of the replication pair.'''
1325
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrReplicaPairId"))
1326
+
1327
+ @builtins.property
1328
+ @jsii.member(jsii_name="props")
1329
+ def props(self) -> DiskReplicaPairAdditionProps:
1330
+ return typing.cast(DiskReplicaPairAdditionProps, jsii.get(self, "props"))
1331
+
1332
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1333
+ typing.cast(typing.Any, IDiskReplicaPairAddition).__jsii_proxy_class__ = lambda : _IDiskReplicaPairAdditionProxy
1334
+
1335
+
1336
+ class RosDedicatedBlockStorageCluster(
1337
+ _ros_cdk_core_7adfd82f.RosResource,
1338
+ metaclass=jsii.JSIIMeta,
1339
+ jsii_type="@alicloud/ros-cdk-ebs.RosDedicatedBlockStorageCluster",
1340
+ ):
1341
+ '''This class is a base encapsulation around the ROS resource type ``ALIYUN::EBS::DedicatedBlockStorageCluster``, which is used to create a dedicated block storage cluster.
1342
+
1343
+ :Note:
1344
+
1345
+ This class does not contain additional functions, so it is recommended to use the ``DedicatedBlockStorageCluster`` class instead of this class for a more convenient development experience.
1346
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-dedicatedblockstoragecluster
1347
+ '''
1348
+
1349
+ def __init__(
1350
+ self,
1351
+ scope: _ros_cdk_core_7adfd82f.Construct,
1352
+ id: builtins.str,
1353
+ props: typing.Union["RosDedicatedBlockStorageClusterProps", typing.Dict[builtins.str, typing.Any]],
1354
+ enable_resource_property_constraint: builtins.bool,
1355
+ ) -> None:
1356
+ '''
1357
+ :param scope: - scope in which this resource is defined.
1358
+ :param id: - scoped id of the resource.
1359
+ :param props: - resource properties.
1360
+ :param enable_resource_property_constraint: -
1361
+ '''
1362
+ if __debug__:
1363
+ type_hints = typing.get_type_hints(_typecheckingstub__4766a873d4b49d198c8d085c87ac7daec5b8c5aa66fb98f646547880e68445d6)
1364
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1365
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1366
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1367
+ check_type(argname="argument enable_resource_property_constraint", value=enable_resource_property_constraint, expected_type=type_hints["enable_resource_property_constraint"])
1368
+ jsii.create(self.__class__, self, [scope, id, props, enable_resource_property_constraint])
1369
+
1370
+ @jsii.member(jsii_name="renderProperties")
1371
+ def _render_properties(
1372
+ self,
1373
+ props: typing.Mapping[builtins.str, typing.Any],
1374
+ ) -> typing.Mapping[builtins.str, typing.Any]:
1375
+ '''
1376
+ :param props: -
1377
+ '''
1378
+ if __debug__:
1379
+ type_hints = typing.get_type_hints(_typecheckingstub__08bab8f25b2f11210b63e6d55de12a4c73e78c1ccab35b2340f2f37d27252758)
1380
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1381
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
1382
+
1383
+ @jsii.python.classproperty
1384
+ @jsii.member(jsii_name="ROS_RESOURCE_TYPE_NAME")
1385
+ def ROS_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1386
+ '''The resource type name for this resource class.'''
1387
+ return typing.cast(builtins.str, jsii.sget(cls, "ROS_RESOURCE_TYPE_NAME"))
1388
+
1389
+ @builtins.property
1390
+ @jsii.member(jsii_name="attrDedicatedBlockStorageClusterId")
1391
+ def attr_dedicated_block_storage_cluster_id(
1392
+ self,
1393
+ ) -> _ros_cdk_core_7adfd82f.IResolvable:
1394
+ '''
1395
+ :Attribute: DedicatedBlockStorageClusterId: The ID of the dedicated block storage cluster.
1396
+ '''
1397
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDedicatedBlockStorageClusterId"))
1398
+
1399
+ @builtins.property
1400
+ @jsii.member(jsii_name="rosProperties")
1401
+ def _ros_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1402
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "rosProperties"))
1403
+
1404
+ @builtins.property
1405
+ @jsii.member(jsii_name="azone")
1406
+ def azone(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1407
+ '''
1408
+ :Property: azone: The ID of the zone in which to create the dedicated block storage cluster.
1409
+ '''
1410
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "azone"))
1411
+
1412
+ @azone.setter
1413
+ def azone(
1414
+ self,
1415
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
1416
+ ) -> None:
1417
+ if __debug__:
1418
+ type_hints = typing.get_type_hints(_typecheckingstub__be0466ca1a1735224856550831b47c6dd11139c1274f9aad4d0c0f338f8bd9b2)
1419
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1420
+ jsii.set(self, "azone", value)
1421
+
1422
+ @builtins.property
1423
+ @jsii.member(jsii_name="capacity")
1424
+ def capacity(self) -> typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]:
1425
+ '''
1426
+ :Property: capacity: The capacity of the dedicated block storage cluster. Valid values: 61440 to 2334720. Unit: GiB. 2,334,720 GiB is equal to 2,280 TiB. The capacity increases in a minimum increment of 12,288 GiB.
1427
+ '''
1428
+ return typing.cast(typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "capacity"))
1429
+
1430
+ @capacity.setter
1431
+ def capacity(
1432
+ self,
1433
+ value: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
1434
+ ) -> None:
1435
+ if __debug__:
1436
+ type_hints = typing.get_type_hints(_typecheckingstub__19f3a3d9ecd4823c1f44048526348eb7029f9eaae6ff806bfaa672c9220b623f)
1437
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1438
+ jsii.set(self, "capacity", value)
1439
+
1440
+ @builtins.property
1441
+ @jsii.member(jsii_name="dbscName")
1442
+ def dbsc_name(
1443
+ self,
1444
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1445
+ '''
1446
+ :Property: dbscName: The name of the dedicated block storage cluster.
1447
+ '''
1448
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "dbscName"))
1449
+
1450
+ @dbsc_name.setter
1451
+ def dbsc_name(
1452
+ self,
1453
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
1454
+ ) -> None:
1455
+ if __debug__:
1456
+ type_hints = typing.get_type_hints(_typecheckingstub__eaf1196998b59a4aa4921200c760525abece6fdaa899f269ee39307d85a28be1)
1457
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1458
+ jsii.set(self, "dbscName", value)
1459
+
1460
+ @builtins.property
1461
+ @jsii.member(jsii_name="enableResourcePropertyConstraint")
1462
+ def enable_resource_property_constraint(self) -> builtins.bool:
1463
+ return typing.cast(builtins.bool, jsii.get(self, "enableResourcePropertyConstraint"))
1464
+
1465
+ @enable_resource_property_constraint.setter
1466
+ def enable_resource_property_constraint(self, value: builtins.bool) -> None:
1467
+ if __debug__:
1468
+ type_hints = typing.get_type_hints(_typecheckingstub__cb034df0d987ab06ff165225f17fe31a6d7460379397591e3a08c448134a32d7)
1469
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1470
+ jsii.set(self, "enableResourcePropertyConstraint", value)
1471
+
1472
+ @builtins.property
1473
+ @jsii.member(jsii_name="period")
1474
+ def period(self) -> typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]:
1475
+ '''
1476
+ :Property: period: The subscription duration of the dedicated block storage cluster. Valid values: 6, 7, 8, 9, 10, 11, 12, 24, and 36.
1477
+ '''
1478
+ return typing.cast(typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "period"))
1479
+
1480
+ @period.setter
1481
+ def period(
1482
+ self,
1483
+ value: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
1484
+ ) -> None:
1485
+ if __debug__:
1486
+ type_hints = typing.get_type_hints(_typecheckingstub__f3a6e631cbef6ce37030abeab3e83a41c8358bc7f6cff61a0b8d51a66bda5abf)
1487
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1488
+ jsii.set(self, "period", value)
1489
+
1490
+ @builtins.property
1491
+ @jsii.member(jsii_name="periodUnit")
1492
+ def period_unit(
1493
+ self,
1494
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1495
+ '''
1496
+ :Property: periodUnit: The unit of the subscription duration specified by Period. Set the value to Month.
1497
+ '''
1498
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "periodUnit"))
1499
+
1500
+ @period_unit.setter
1501
+ def period_unit(
1502
+ self,
1503
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
1504
+ ) -> None:
1505
+ if __debug__:
1506
+ type_hints = typing.get_type_hints(_typecheckingstub__66cbc12326f3d1391e59951cd6514de86d480868a324e2712f9fb38a72e2e9ca)
1507
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1508
+ jsii.set(self, "periodUnit", value)
1509
+
1510
+ @builtins.property
1511
+ @jsii.member(jsii_name="type")
1512
+ def type(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1513
+ '''
1514
+ :Property:
1515
+
1516
+ type: The type of the dedicated block storage cluster. Valid values:
1517
+ Standard: basic dedicated block storage cluster. Enterprise SSDs (ESSDs) at performance level 0 (PL0 ESSDs) can be created in basic dedicated block storage clusters.
1518
+ Premium: performance dedicated block storage cluster. ESSDs at performance level 1 (PL1 ESSDs) can be created in performance dedicated block storage clusters.
1519
+ Default value: Premium.
1520
+ '''
1521
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "type"))
1522
+
1523
+ @type.setter
1524
+ def type(
1525
+ self,
1526
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
1527
+ ) -> None:
1528
+ if __debug__:
1529
+ type_hints = typing.get_type_hints(_typecheckingstub__13e0a7370c3d55b5dc879fd485a92169c0cd381e15af34a4e2507f0a663219f8)
1530
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1531
+ jsii.set(self, "type", value)
1532
+
1533
+ @builtins.property
1534
+ @jsii.member(jsii_name="resourceGroupId")
1535
+ def resource_group_id(
1536
+ self,
1537
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
1538
+ '''
1539
+ :Property: resourceGroupId: The ID of the resource group to which to assign the dedicated block storage cluster.
1540
+ '''
1541
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "resourceGroupId"))
1542
+
1543
+ @resource_group_id.setter
1544
+ def resource_group_id(
1545
+ self,
1546
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
1547
+ ) -> None:
1548
+ if __debug__:
1549
+ type_hints = typing.get_type_hints(_typecheckingstub__73d2ea971948ee68fa5befdf76243980449fceaa7a982d15539ae4b78d600e7d)
1550
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1551
+ jsii.set(self, "resourceGroupId", value)
1552
+
1553
+ @builtins.property
1554
+ @jsii.member(jsii_name="tag")
1555
+ def tag(
1556
+ self,
1557
+ ) -> typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.List[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, _ros_cdk_core_7adfd82f.RosTag]]]]:
1558
+ '''
1559
+ :Property: tag: Tags of dedicated block storage cluster.
1560
+ '''
1561
+ return typing.cast(typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.List[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, _ros_cdk_core_7adfd82f.RosTag]]]], jsii.get(self, "tag"))
1562
+
1563
+ @tag.setter
1564
+ def tag(
1565
+ self,
1566
+ value: typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.List[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, _ros_cdk_core_7adfd82f.RosTag]]]],
1567
+ ) -> None:
1568
+ if __debug__:
1569
+ type_hints = typing.get_type_hints(_typecheckingstub__1ecc8301b5c3783d83af0d2c11c310dab0b5ddbb0ff9a7e2e073d10b39d62d89)
1570
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1571
+ jsii.set(self, "tag", value)
1572
+
1573
+ @jsii.data_type(
1574
+ jsii_type="@alicloud/ros-cdk-ebs.RosDedicatedBlockStorageCluster.TagProperty",
1575
+ jsii_struct_bases=[],
1576
+ name_mapping={"key": "key", "value": "value"},
1577
+ )
1578
+ class TagProperty:
1579
+ def __init__(
1580
+ self,
1581
+ *,
1582
+ key: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
1583
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
1584
+ ) -> None:
1585
+ '''
1586
+ :param key:
1587
+ :param value:
1588
+ '''
1589
+ if __debug__:
1590
+ type_hints = typing.get_type_hints(_typecheckingstub__0002bd81b5072ad3aa6c65adb0ac7f3063778a593fb5054ee99dcd6238163963)
1591
+ check_type(argname="argument key", value=key, expected_type=type_hints["key"])
1592
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1593
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1594
+ "key": key,
1595
+ }
1596
+ if value is not None:
1597
+ self._values["value"] = value
1598
+
1599
+ @builtins.property
1600
+ def key(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1601
+ '''
1602
+ :Property: key: undefined
1603
+ '''
1604
+ result = self._values.get("key")
1605
+ assert result is not None, "Required property 'key' is missing"
1606
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
1607
+
1608
+ @builtins.property
1609
+ def value(
1610
+ self,
1611
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
1612
+ '''
1613
+ :Property: value: undefined
1614
+ '''
1615
+ result = self._values.get("value")
1616
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
1617
+
1618
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1619
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1620
+
1621
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1622
+ return not (rhs == self)
1623
+
1624
+ def __repr__(self) -> str:
1625
+ return "TagProperty(%s)" % ", ".join(
1626
+ k + "=" + repr(v) for k, v in self._values.items()
1627
+ )
1628
+
1629
+
1630
+ @jsii.data_type(
1631
+ jsii_type="@alicloud/ros-cdk-ebs.RosDedicatedBlockStorageClusterProps",
1632
+ jsii_struct_bases=[],
1633
+ name_mapping={
1634
+ "azone": "azone",
1635
+ "capacity": "capacity",
1636
+ "dbsc_name": "dbscName",
1637
+ "period": "period",
1638
+ "period_unit": "periodUnit",
1639
+ "type": "type",
1640
+ "resource_group_id": "resourceGroupId",
1641
+ "tag": "tag",
1642
+ },
1643
+ )
1644
+ class RosDedicatedBlockStorageClusterProps:
1645
+ def __init__(
1646
+ self,
1647
+ *,
1648
+ azone: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
1649
+ capacity: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
1650
+ dbsc_name: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
1651
+ period: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
1652
+ period_unit: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
1653
+ type: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
1654
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
1655
+ tag: typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.Sequence[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.Union[_ros_cdk_core_7adfd82f.RosTag, typing.Dict[builtins.str, typing.Any]]]]]] = None,
1656
+ ) -> None:
1657
+ '''Properties for defining a ``RosDedicatedBlockStorageCluster``.
1658
+
1659
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-dedicatedblockstoragecluster
1660
+
1661
+ :param azone:
1662
+ :param capacity:
1663
+ :param dbsc_name:
1664
+ :param period:
1665
+ :param period_unit:
1666
+ :param type:
1667
+ :param resource_group_id:
1668
+ :param tag:
1669
+ '''
1670
+ if __debug__:
1671
+ type_hints = typing.get_type_hints(_typecheckingstub__c386dd4833344588e973364a81e9f5a797950e0e0fb1b0d164614a3d9a3326d1)
1672
+ check_type(argname="argument azone", value=azone, expected_type=type_hints["azone"])
1673
+ check_type(argname="argument capacity", value=capacity, expected_type=type_hints["capacity"])
1674
+ check_type(argname="argument dbsc_name", value=dbsc_name, expected_type=type_hints["dbsc_name"])
1675
+ check_type(argname="argument period", value=period, expected_type=type_hints["period"])
1676
+ check_type(argname="argument period_unit", value=period_unit, expected_type=type_hints["period_unit"])
1677
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
1678
+ check_type(argname="argument resource_group_id", value=resource_group_id, expected_type=type_hints["resource_group_id"])
1679
+ check_type(argname="argument tag", value=tag, expected_type=type_hints["tag"])
1680
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1681
+ "azone": azone,
1682
+ "capacity": capacity,
1683
+ "dbsc_name": dbsc_name,
1684
+ "period": period,
1685
+ "period_unit": period_unit,
1686
+ "type": type,
1687
+ }
1688
+ if resource_group_id is not None:
1689
+ self._values["resource_group_id"] = resource_group_id
1690
+ if tag is not None:
1691
+ self._values["tag"] = tag
1692
+
1693
+ @builtins.property
1694
+ def azone(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1695
+ '''
1696
+ :Property: azone: The ID of the zone in which to create the dedicated block storage cluster.
1697
+ '''
1698
+ result = self._values.get("azone")
1699
+ assert result is not None, "Required property 'azone' is missing"
1700
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
1701
+
1702
+ @builtins.property
1703
+ def capacity(self) -> typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]:
1704
+ '''
1705
+ :Property: capacity: The capacity of the dedicated block storage cluster. Valid values: 61440 to 2334720. Unit: GiB. 2,334,720 GiB is equal to 2,280 TiB. The capacity increases in a minimum increment of 12,288 GiB.
1706
+ '''
1707
+ result = self._values.get("capacity")
1708
+ assert result is not None, "Required property 'capacity' is missing"
1709
+ return typing.cast(typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable], result)
1710
+
1711
+ @builtins.property
1712
+ def dbsc_name(
1713
+ self,
1714
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1715
+ '''
1716
+ :Property: dbscName: The name of the dedicated block storage cluster.
1717
+ '''
1718
+ result = self._values.get("dbsc_name")
1719
+ assert result is not None, "Required property 'dbsc_name' is missing"
1720
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
1721
+
1722
+ @builtins.property
1723
+ def period(self) -> typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]:
1724
+ '''
1725
+ :Property: period: The subscription duration of the dedicated block storage cluster. Valid values: 6, 7, 8, 9, 10, 11, 12, 24, and 36.
1726
+ '''
1727
+ result = self._values.get("period")
1728
+ assert result is not None, "Required property 'period' is missing"
1729
+ return typing.cast(typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable], result)
1730
+
1731
+ @builtins.property
1732
+ def period_unit(
1733
+ self,
1734
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1735
+ '''
1736
+ :Property: periodUnit: The unit of the subscription duration specified by Period. Set the value to Month.
1737
+ '''
1738
+ result = self._values.get("period_unit")
1739
+ assert result is not None, "Required property 'period_unit' is missing"
1740
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
1741
+
1742
+ @builtins.property
1743
+ def type(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1744
+ '''
1745
+ :Property:
1746
+
1747
+ type: The type of the dedicated block storage cluster. Valid values:
1748
+ Standard: basic dedicated block storage cluster. Enterprise SSDs (ESSDs) at performance level 0 (PL0 ESSDs) can be created in basic dedicated block storage clusters.
1749
+ Premium: performance dedicated block storage cluster. ESSDs at performance level 1 (PL1 ESSDs) can be created in performance dedicated block storage clusters.
1750
+ Default value: Premium.
1751
+ '''
1752
+ result = self._values.get("type")
1753
+ assert result is not None, "Required property 'type' is missing"
1754
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
1755
+
1756
+ @builtins.property
1757
+ def resource_group_id(
1758
+ self,
1759
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
1760
+ '''
1761
+ :Property: resourceGroupId: The ID of the resource group to which to assign the dedicated block storage cluster.
1762
+ '''
1763
+ result = self._values.get("resource_group_id")
1764
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
1765
+
1766
+ @builtins.property
1767
+ def tag(
1768
+ self,
1769
+ ) -> typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.List[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, _ros_cdk_core_7adfd82f.RosTag]]]]:
1770
+ '''
1771
+ :Property: tag: Tags of dedicated block storage cluster.
1772
+ '''
1773
+ result = self._values.get("tag")
1774
+ return typing.cast(typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.List[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, _ros_cdk_core_7adfd82f.RosTag]]]], result)
1775
+
1776
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1777
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1778
+
1779
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1780
+ return not (rhs == self)
1781
+
1782
+ def __repr__(self) -> str:
1783
+ return "RosDedicatedBlockStorageClusterProps(%s)" % ", ".join(
1784
+ k + "=" + repr(v) for k, v in self._values.items()
1785
+ )
1786
+
1787
+
1788
+ class RosDiskReplicaGroup(
1789
+ _ros_cdk_core_7adfd82f.RosResource,
1790
+ metaclass=jsii.JSIIMeta,
1791
+ jsii_type="@alicloud/ros-cdk-ebs.RosDiskReplicaGroup",
1792
+ ):
1793
+ '''This class is a base encapsulation around the ROS resource type ``ALIYUN::EBS::DiskReplicaGroup``, which is used to create a replication pair-consistent group.
1794
+
1795
+ :Note:
1796
+
1797
+ This class does not contain additional functions, so it is recommended to use the ``DiskReplicaGroup`` class instead of this class for a more convenient development experience.
1798
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicagroup
1799
+ '''
1800
+
1801
+ def __init__(
1802
+ self,
1803
+ scope: _ros_cdk_core_7adfd82f.Construct,
1804
+ id: builtins.str,
1805
+ props: typing.Union["RosDiskReplicaGroupProps", typing.Dict[builtins.str, typing.Any]],
1806
+ enable_resource_property_constraint: builtins.bool,
1807
+ ) -> None:
1808
+ '''
1809
+ :param scope: - scope in which this resource is defined.
1810
+ :param id: - scoped id of the resource.
1811
+ :param props: - resource properties.
1812
+ :param enable_resource_property_constraint: -
1813
+ '''
1814
+ if __debug__:
1815
+ type_hints = typing.get_type_hints(_typecheckingstub__912b3745e3aeec543703d1a3d5a141e71cce6037d213426d6e8f024834c1f7d4)
1816
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1817
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1818
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1819
+ check_type(argname="argument enable_resource_property_constraint", value=enable_resource_property_constraint, expected_type=type_hints["enable_resource_property_constraint"])
1820
+ jsii.create(self.__class__, self, [scope, id, props, enable_resource_property_constraint])
1821
+
1822
+ @jsii.member(jsii_name="renderProperties")
1823
+ def _render_properties(
1824
+ self,
1825
+ props: typing.Mapping[builtins.str, typing.Any],
1826
+ ) -> typing.Mapping[builtins.str, typing.Any]:
1827
+ '''
1828
+ :param props: -
1829
+ '''
1830
+ if __debug__:
1831
+ type_hints = typing.get_type_hints(_typecheckingstub__ce62c1f5d97a9af9c438116556ac71cdcdbaadabca5d7cb296ae8dc419835480)
1832
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1833
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
1834
+
1835
+ @jsii.python.classproperty
1836
+ @jsii.member(jsii_name="ROS_RESOURCE_TYPE_NAME")
1837
+ def ROS_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1838
+ '''The resource type name for this resource class.'''
1839
+ return typing.cast(builtins.str, jsii.sget(cls, "ROS_RESOURCE_TYPE_NAME"))
1840
+
1841
+ @builtins.property
1842
+ @jsii.member(jsii_name="attrDescription")
1843
+ def attr_description(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1844
+ '''
1845
+ :Attribute: Description: The description of the consistent replication group.
1846
+ '''
1847
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDescription"))
1848
+
1849
+ @builtins.property
1850
+ @jsii.member(jsii_name="attrDestinationRegionId")
1851
+ def attr_destination_region_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1852
+ '''
1853
+ :Attribute: DestinationRegionId: The ID of the region to which the disaster recovery site belongs.
1854
+ '''
1855
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDestinationRegionId"))
1856
+
1857
+ @builtins.property
1858
+ @jsii.member(jsii_name="attrDestinationZoneId")
1859
+ def attr_destination_zone_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1860
+ '''
1861
+ :Attribute: DestinationZoneId: The ID of the zone to which the disaster recovery site belongs.
1862
+ '''
1863
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDestinationZoneId"))
1864
+
1865
+ @builtins.property
1866
+ @jsii.member(jsii_name="attrDiskReplicaGroupName")
1867
+ def attr_disk_replica_group_name(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1868
+ '''
1869
+ :Attribute: DiskReplicaGroupName: Consistent replication group name.
1870
+ '''
1871
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDiskReplicaGroupName"))
1872
+
1873
+ @builtins.property
1874
+ @jsii.member(jsii_name="attrLastRecoverPoint")
1875
+ def attr_last_recover_point(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1876
+ '''
1877
+ :Attribute: LastRecoverPoint: The time when the last asynchronous replication operation of the consistent replication group completed. This parameter provides the return value as a timestamp. Unit: seconds.
1878
+ '''
1879
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrLastRecoverPoint"))
1880
+
1881
+ @builtins.property
1882
+ @jsii.member(jsii_name="attrPairIds")
1883
+ def attr_pair_ids(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1884
+ '''
1885
+ :Attribute: PairIds: List of replication pair IDs contained in a consistent replication group.
1886
+ '''
1887
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrPairIds"))
1888
+
1889
+ @builtins.property
1890
+ @jsii.member(jsii_name="attrPairNumber")
1891
+ def attr_pair_number(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1892
+ '''
1893
+ :Attribute: PairNumber: The number of replication pairs contained in a consistent replication group.
1894
+ '''
1895
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrPairNumber"))
1896
+
1897
+ @builtins.property
1898
+ @jsii.member(jsii_name="attrPrimaryRegion")
1899
+ def attr_primary_region(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1900
+ '''
1901
+ :Attribute: PrimaryRegion: The initial source region of the replication group.
1902
+ '''
1903
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrPrimaryRegion"))
1904
+
1905
+ @builtins.property
1906
+ @jsii.member(jsii_name="attrPrimaryZone")
1907
+ def attr_primary_zone(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1908
+ '''
1909
+ :Attribute: PrimaryZone: The initial source available area of the replication group.
1910
+ '''
1911
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrPrimaryZone"))
1912
+
1913
+ @builtins.property
1914
+ @jsii.member(jsii_name="attrReplicaGroupId")
1915
+ def attr_replica_group_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1916
+ '''
1917
+ :Attribute: ReplicaGroupId: The ID of the consistent replication group.
1918
+ '''
1919
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrReplicaGroupId"))
1920
+
1921
+ @builtins.property
1922
+ @jsii.member(jsii_name="attrResourceGroupId")
1923
+ def attr_resource_group_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1924
+ '''
1925
+ :Attribute: ResourceGroupId: resource group ID of enterprise
1926
+ '''
1927
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrResourceGroupId"))
1928
+
1929
+ @builtins.property
1930
+ @jsii.member(jsii_name="attrRpo")
1931
+ def attr_rpo(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1932
+ '''
1933
+ :Attribute: RPO: The RPO value set by the consistency group in seconds.
1934
+ '''
1935
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrRpo"))
1936
+
1937
+ @builtins.property
1938
+ @jsii.member(jsii_name="attrSite")
1939
+ def attr_site(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1940
+ '''
1941
+ :Attribute: Site: Site information sources for replication pairs and consistent replication groups. Possible values:
1942
+ '''
1943
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrSite"))
1944
+
1945
+ @builtins.property
1946
+ @jsii.member(jsii_name="attrSourceRegionId")
1947
+ def attr_source_region_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1948
+ '''
1949
+ :Attribute: SourceRegionId: The ID of the region to which the production site belongs.
1950
+ '''
1951
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrSourceRegionId"))
1952
+
1953
+ @builtins.property
1954
+ @jsii.member(jsii_name="attrSourceZoneId")
1955
+ def attr_source_zone_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1956
+ '''
1957
+ :Attribute: SourceZoneId: The ID of the zone to which the production site belongs.
1958
+ '''
1959
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrSourceZoneId"))
1960
+
1961
+ @builtins.property
1962
+ @jsii.member(jsii_name="attrStandbyRegion")
1963
+ def attr_standby_region(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1964
+ '''
1965
+ :Attribute: StandbyRegion: The initial destination region of the replication group.
1966
+ '''
1967
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrStandbyRegion"))
1968
+
1969
+ @builtins.property
1970
+ @jsii.member(jsii_name="attrStandbyZone")
1971
+ def attr_standby_zone(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1972
+ '''
1973
+ :Attribute: StandbyZone: The initial destination zone of the replication group.
1974
+ '''
1975
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrStandbyZone"))
1976
+
1977
+ @builtins.property
1978
+ @jsii.member(jsii_name="attrTags")
1979
+ def attr_tags(self) -> _ros_cdk_core_7adfd82f.IResolvable:
1980
+ '''
1981
+ :Attribute: Tags: The tags of the disk replica group.
1982
+ '''
1983
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrTags"))
1984
+
1985
+ @builtins.property
1986
+ @jsii.member(jsii_name="rosProperties")
1987
+ def _ros_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1988
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "rosProperties"))
1989
+
1990
+ @builtins.property
1991
+ @jsii.member(jsii_name="destinationRegionId")
1992
+ def destination_region_id(
1993
+ self,
1994
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
1995
+ '''
1996
+ :Property: destinationRegionId: The ID of the region to which the disaster recovery site belongs.
1997
+ '''
1998
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "destinationRegionId"))
1999
+
2000
+ @destination_region_id.setter
2001
+ def destination_region_id(
2002
+ self,
2003
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2004
+ ) -> None:
2005
+ if __debug__:
2006
+ type_hints = typing.get_type_hints(_typecheckingstub__357c17e70a2f380319812310bb2bc2c344e1467a373142d5def56c1f3615eb40)
2007
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2008
+ jsii.set(self, "destinationRegionId", value)
2009
+
2010
+ @builtins.property
2011
+ @jsii.member(jsii_name="destinationZoneId")
2012
+ def destination_zone_id(
2013
+ self,
2014
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2015
+ '''
2016
+ :Property: destinationZoneId: The ID of the zone to which the disaster recovery site belongs.
2017
+ '''
2018
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "destinationZoneId"))
2019
+
2020
+ @destination_zone_id.setter
2021
+ def destination_zone_id(
2022
+ self,
2023
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2024
+ ) -> None:
2025
+ if __debug__:
2026
+ type_hints = typing.get_type_hints(_typecheckingstub__07da349becb759df33de7a1a8eac9ca7f0a099de5e2226659f10f473db390c99)
2027
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2028
+ jsii.set(self, "destinationZoneId", value)
2029
+
2030
+ @builtins.property
2031
+ @jsii.member(jsii_name="enableResourcePropertyConstraint")
2032
+ def enable_resource_property_constraint(self) -> builtins.bool:
2033
+ return typing.cast(builtins.bool, jsii.get(self, "enableResourcePropertyConstraint"))
2034
+
2035
+ @enable_resource_property_constraint.setter
2036
+ def enable_resource_property_constraint(self, value: builtins.bool) -> None:
2037
+ if __debug__:
2038
+ type_hints = typing.get_type_hints(_typecheckingstub__f270eabd2a12d827c04ba70b419050e97dff708a0d86cdb20102b6565bf15bce)
2039
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2040
+ jsii.set(self, "enableResourcePropertyConstraint", value)
2041
+
2042
+ @builtins.property
2043
+ @jsii.member(jsii_name="sourceRegionId")
2044
+ def source_region_id(
2045
+ self,
2046
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2047
+ '''
2048
+ :Property: sourceRegionId: The ID of the region to which the production site belongs.
2049
+ '''
2050
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "sourceRegionId"))
2051
+
2052
+ @source_region_id.setter
2053
+ def source_region_id(
2054
+ self,
2055
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2056
+ ) -> None:
2057
+ if __debug__:
2058
+ type_hints = typing.get_type_hints(_typecheckingstub__9f8e615bf788f5693b5b389a8d92ef8ddd83f30b9926132c46ab9e3dee896b86)
2059
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2060
+ jsii.set(self, "sourceRegionId", value)
2061
+
2062
+ @builtins.property
2063
+ @jsii.member(jsii_name="sourceZoneId")
2064
+ def source_zone_id(
2065
+ self,
2066
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2067
+ '''
2068
+ :Property: sourceZoneId: The ID of the zone to which the production site belongs.
2069
+ '''
2070
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "sourceZoneId"))
2071
+
2072
+ @source_zone_id.setter
2073
+ def source_zone_id(
2074
+ self,
2075
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2076
+ ) -> None:
2077
+ if __debug__:
2078
+ type_hints = typing.get_type_hints(_typecheckingstub__b1cb858693cc664416e16c794ffdc1ed38daabf6826f6125351fc3ffe20b7b25)
2079
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2080
+ jsii.set(self, "sourceZoneId", value)
2081
+
2082
+ @builtins.property
2083
+ @jsii.member(jsii_name="description")
2084
+ def description(
2085
+ self,
2086
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2087
+ '''
2088
+ :Property: description: The description of the consistent replication group.
2089
+ '''
2090
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "description"))
2091
+
2092
+ @description.setter
2093
+ def description(
2094
+ self,
2095
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
2096
+ ) -> None:
2097
+ if __debug__:
2098
+ type_hints = typing.get_type_hints(_typecheckingstub__d073c720e9e5211c04a12e56db2507c0a34df0f529678acf7a0d43fe9196f57f)
2099
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2100
+ jsii.set(self, "description", value)
2101
+
2102
+ @builtins.property
2103
+ @jsii.member(jsii_name="diskReplicaGroupName")
2104
+ def disk_replica_group_name(
2105
+ self,
2106
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2107
+ '''
2108
+ :Property: diskReplicaGroupName: Consistent replication group name.
2109
+ '''
2110
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "diskReplicaGroupName"))
2111
+
2112
+ @disk_replica_group_name.setter
2113
+ def disk_replica_group_name(
2114
+ self,
2115
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
2116
+ ) -> None:
2117
+ if __debug__:
2118
+ type_hints = typing.get_type_hints(_typecheckingstub__981ffdae005e796278423294bbc73f34c48e0ada0dda8aa670c0facde6a83941)
2119
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2120
+ jsii.set(self, "diskReplicaGroupName", value)
2121
+
2122
+ @builtins.property
2123
+ @jsii.member(jsii_name="resourceGroupId")
2124
+ def resource_group_id(
2125
+ self,
2126
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2127
+ '''
2128
+ :Property: resourceGroupId: The ID of resource group.
2129
+ '''
2130
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "resourceGroupId"))
2131
+
2132
+ @resource_group_id.setter
2133
+ def resource_group_id(
2134
+ self,
2135
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
2136
+ ) -> None:
2137
+ if __debug__:
2138
+ type_hints = typing.get_type_hints(_typecheckingstub__bc18408423641b06b23736f2d4d85dd09713097e186d98e03c7d19309330bb0c)
2139
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2140
+ jsii.set(self, "resourceGroupId", value)
2141
+
2142
+ @builtins.property
2143
+ @jsii.member(jsii_name="rpo")
2144
+ def rpo(
2145
+ self,
2146
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
2147
+ '''
2148
+ :Property: rpo: The RPO value set by the consistency group in seconds.
2149
+ '''
2150
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "rpo"))
2151
+
2152
+ @rpo.setter
2153
+ def rpo(
2154
+ self,
2155
+ value: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]],
2156
+ ) -> None:
2157
+ if __debug__:
2158
+ type_hints = typing.get_type_hints(_typecheckingstub__2acb42993bb249d91792a4a573591369c162b6cff46b45266efdc45a7b661a88)
2159
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2160
+ jsii.set(self, "rpo", value)
2161
+
2162
+ @builtins.property
2163
+ @jsii.member(jsii_name="tags")
2164
+ def tags(self) -> typing.Optional[typing.List["RosDiskReplicaGroup.TagsProperty"]]:
2165
+ '''
2166
+ :Property: tags: Tags of disk replica group.
2167
+ '''
2168
+ return typing.cast(typing.Optional[typing.List["RosDiskReplicaGroup.TagsProperty"]], jsii.get(self, "tags"))
2169
+
2170
+ @tags.setter
2171
+ def tags(
2172
+ self,
2173
+ value: typing.Optional[typing.List["RosDiskReplicaGroup.TagsProperty"]],
2174
+ ) -> None:
2175
+ if __debug__:
2176
+ type_hints = typing.get_type_hints(_typecheckingstub__69393e8b515b488c6894d2d4e2ce61c7cf1bb697ae20bcc84bfd257480435619)
2177
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2178
+ jsii.set(self, "tags", value)
2179
+
2180
+ @jsii.data_type(
2181
+ jsii_type="@alicloud/ros-cdk-ebs.RosDiskReplicaGroup.TagsProperty",
2182
+ jsii_struct_bases=[],
2183
+ name_mapping={"key": "key", "value": "value"},
2184
+ )
2185
+ class TagsProperty:
2186
+ def __init__(
2187
+ self,
2188
+ *,
2189
+ key: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2190
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
2191
+ ) -> None:
2192
+ '''
2193
+ :param key:
2194
+ :param value:
2195
+ '''
2196
+ if __debug__:
2197
+ type_hints = typing.get_type_hints(_typecheckingstub__ca04432dc4090fa8fa4216e62132a5a772b258302113818c429586550bdd8f36)
2198
+ check_type(argname="argument key", value=key, expected_type=type_hints["key"])
2199
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2200
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2201
+ "key": key,
2202
+ }
2203
+ if value is not None:
2204
+ self._values["value"] = value
2205
+
2206
+ @builtins.property
2207
+ def key(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2208
+ '''
2209
+ :Property: key: undefined
2210
+ '''
2211
+ result = self._values.get("key")
2212
+ assert result is not None, "Required property 'key' is missing"
2213
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
2214
+
2215
+ @builtins.property
2216
+ def value(
2217
+ self,
2218
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2219
+ '''
2220
+ :Property: value: undefined
2221
+ '''
2222
+ result = self._values.get("value")
2223
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
2224
+
2225
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2226
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2227
+
2228
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2229
+ return not (rhs == self)
2230
+
2231
+ def __repr__(self) -> str:
2232
+ return "TagsProperty(%s)" % ", ".join(
2233
+ k + "=" + repr(v) for k, v in self._values.items()
2234
+ )
2235
+
2236
+
2237
+ @jsii.data_type(
2238
+ jsii_type="@alicloud/ros-cdk-ebs.RosDiskReplicaGroupProps",
2239
+ jsii_struct_bases=[],
2240
+ name_mapping={
2241
+ "destination_region_id": "destinationRegionId",
2242
+ "destination_zone_id": "destinationZoneId",
2243
+ "source_region_id": "sourceRegionId",
2244
+ "source_zone_id": "sourceZoneId",
2245
+ "description": "description",
2246
+ "disk_replica_group_name": "diskReplicaGroupName",
2247
+ "resource_group_id": "resourceGroupId",
2248
+ "rpo": "rpo",
2249
+ "tags": "tags",
2250
+ },
2251
+ )
2252
+ class RosDiskReplicaGroupProps:
2253
+ def __init__(
2254
+ self,
2255
+ *,
2256
+ destination_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2257
+ destination_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2258
+ source_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2259
+ source_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2260
+ description: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
2261
+ disk_replica_group_name: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
2262
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
2263
+ rpo: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
2264
+ tags: typing.Optional[typing.Sequence[typing.Union[RosDiskReplicaGroup.TagsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2265
+ ) -> None:
2266
+ '''Properties for defining a ``RosDiskReplicaGroup``.
2267
+
2268
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicagroup
2269
+
2270
+ :param destination_region_id:
2271
+ :param destination_zone_id:
2272
+ :param source_region_id:
2273
+ :param source_zone_id:
2274
+ :param description:
2275
+ :param disk_replica_group_name:
2276
+ :param resource_group_id:
2277
+ :param rpo:
2278
+ :param tags:
2279
+ '''
2280
+ if __debug__:
2281
+ type_hints = typing.get_type_hints(_typecheckingstub__808b37ee44d64a0d5df49b6e5186173368c809c68f60daa2b3e9c2720fabb8f2)
2282
+ check_type(argname="argument destination_region_id", value=destination_region_id, expected_type=type_hints["destination_region_id"])
2283
+ check_type(argname="argument destination_zone_id", value=destination_zone_id, expected_type=type_hints["destination_zone_id"])
2284
+ check_type(argname="argument source_region_id", value=source_region_id, expected_type=type_hints["source_region_id"])
2285
+ check_type(argname="argument source_zone_id", value=source_zone_id, expected_type=type_hints["source_zone_id"])
2286
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
2287
+ check_type(argname="argument disk_replica_group_name", value=disk_replica_group_name, expected_type=type_hints["disk_replica_group_name"])
2288
+ check_type(argname="argument resource_group_id", value=resource_group_id, expected_type=type_hints["resource_group_id"])
2289
+ check_type(argname="argument rpo", value=rpo, expected_type=type_hints["rpo"])
2290
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2291
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2292
+ "destination_region_id": destination_region_id,
2293
+ "destination_zone_id": destination_zone_id,
2294
+ "source_region_id": source_region_id,
2295
+ "source_zone_id": source_zone_id,
2296
+ }
2297
+ if description is not None:
2298
+ self._values["description"] = description
2299
+ if disk_replica_group_name is not None:
2300
+ self._values["disk_replica_group_name"] = disk_replica_group_name
2301
+ if resource_group_id is not None:
2302
+ self._values["resource_group_id"] = resource_group_id
2303
+ if rpo is not None:
2304
+ self._values["rpo"] = rpo
2305
+ if tags is not None:
2306
+ self._values["tags"] = tags
2307
+
2308
+ @builtins.property
2309
+ def destination_region_id(
2310
+ self,
2311
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2312
+ '''
2313
+ :Property: destinationRegionId: The ID of the region to which the disaster recovery site belongs.
2314
+ '''
2315
+ result = self._values.get("destination_region_id")
2316
+ assert result is not None, "Required property 'destination_region_id' is missing"
2317
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
2318
+
2319
+ @builtins.property
2320
+ def destination_zone_id(
2321
+ self,
2322
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2323
+ '''
2324
+ :Property: destinationZoneId: The ID of the zone to which the disaster recovery site belongs.
2325
+ '''
2326
+ result = self._values.get("destination_zone_id")
2327
+ assert result is not None, "Required property 'destination_zone_id' is missing"
2328
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
2329
+
2330
+ @builtins.property
2331
+ def source_region_id(
2332
+ self,
2333
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2334
+ '''
2335
+ :Property: sourceRegionId: The ID of the region to which the production site belongs.
2336
+ '''
2337
+ result = self._values.get("source_region_id")
2338
+ assert result is not None, "Required property 'source_region_id' is missing"
2339
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
2340
+
2341
+ @builtins.property
2342
+ def source_zone_id(
2343
+ self,
2344
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2345
+ '''
2346
+ :Property: sourceZoneId: The ID of the zone to which the production site belongs.
2347
+ '''
2348
+ result = self._values.get("source_zone_id")
2349
+ assert result is not None, "Required property 'source_zone_id' is missing"
2350
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
2351
+
2352
+ @builtins.property
2353
+ def description(
2354
+ self,
2355
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2356
+ '''
2357
+ :Property: description: The description of the consistent replication group.
2358
+ '''
2359
+ result = self._values.get("description")
2360
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
2361
+
2362
+ @builtins.property
2363
+ def disk_replica_group_name(
2364
+ self,
2365
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2366
+ '''
2367
+ :Property: diskReplicaGroupName: Consistent replication group name.
2368
+ '''
2369
+ result = self._values.get("disk_replica_group_name")
2370
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
2371
+
2372
+ @builtins.property
2373
+ def resource_group_id(
2374
+ self,
2375
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2376
+ '''
2377
+ :Property: resourceGroupId: The ID of resource group.
2378
+ '''
2379
+ result = self._values.get("resource_group_id")
2380
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
2381
+
2382
+ @builtins.property
2383
+ def rpo(
2384
+ self,
2385
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
2386
+ '''
2387
+ :Property: rpo: The RPO value set by the consistency group in seconds.
2388
+ '''
2389
+ result = self._values.get("rpo")
2390
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], result)
2391
+
2392
+ @builtins.property
2393
+ def tags(self) -> typing.Optional[typing.List[RosDiskReplicaGroup.TagsProperty]]:
2394
+ '''
2395
+ :Property: tags: Tags of disk replica group.
2396
+ '''
2397
+ result = self._values.get("tags")
2398
+ return typing.cast(typing.Optional[typing.List[RosDiskReplicaGroup.TagsProperty]], result)
2399
+
2400
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2401
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2402
+
2403
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2404
+ return not (rhs == self)
2405
+
2406
+ def __repr__(self) -> str:
2407
+ return "RosDiskReplicaGroupProps(%s)" % ", ".join(
2408
+ k + "=" + repr(v) for k, v in self._values.items()
2409
+ )
2410
+
2411
+
2412
+ class RosDiskReplicaPair(
2413
+ _ros_cdk_core_7adfd82f.RosResource,
2414
+ metaclass=jsii.JSIIMeta,
2415
+ jsii_type="@alicloud/ros-cdk-ebs.RosDiskReplicaPair",
2416
+ ):
2417
+ '''This class is a base encapsulation around the ROS resource type ``ALIYUN::EBS::DiskReplicaPair``, which is used to create a replication pair.
2418
+
2419
+ :Note:
2420
+
2421
+ This class does not contain additional functions, so it is recommended to use the ``DiskReplicaPair`` class instead of this class for a more convenient development experience.
2422
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicapair
2423
+ '''
2424
+
2425
+ def __init__(
2426
+ self,
2427
+ scope: _ros_cdk_core_7adfd82f.Construct,
2428
+ id: builtins.str,
2429
+ props: typing.Union["RosDiskReplicaPairProps", typing.Dict[builtins.str, typing.Any]],
2430
+ enable_resource_property_constraint: builtins.bool,
2431
+ ) -> None:
2432
+ '''
2433
+ :param scope: - scope in which this resource is defined.
2434
+ :param id: - scoped id of the resource.
2435
+ :param props: - resource properties.
2436
+ :param enable_resource_property_constraint: -
2437
+ '''
2438
+ if __debug__:
2439
+ type_hints = typing.get_type_hints(_typecheckingstub__57049d20466a1101d6a5d0133019b594aabad103c0cb5c0424dfb8f590742d06)
2440
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2441
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2442
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
2443
+ check_type(argname="argument enable_resource_property_constraint", value=enable_resource_property_constraint, expected_type=type_hints["enable_resource_property_constraint"])
2444
+ jsii.create(self.__class__, self, [scope, id, props, enable_resource_property_constraint])
2445
+
2446
+ @jsii.member(jsii_name="renderProperties")
2447
+ def _render_properties(
2448
+ self,
2449
+ props: typing.Mapping[builtins.str, typing.Any],
2450
+ ) -> typing.Mapping[builtins.str, typing.Any]:
2451
+ '''
2452
+ :param props: -
2453
+ '''
2454
+ if __debug__:
2455
+ type_hints = typing.get_type_hints(_typecheckingstub__3ab236548c17ed5bade3387eb2ee8b2840326c34517f083600f5924dd5b14fc4)
2456
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
2457
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
2458
+
2459
+ @jsii.python.classproperty
2460
+ @jsii.member(jsii_name="ROS_RESOURCE_TYPE_NAME")
2461
+ def ROS_RESOURCE_TYPE_NAME(cls) -> builtins.str:
2462
+ '''The resource type name for this resource class.'''
2463
+ return typing.cast(builtins.str, jsii.sget(cls, "ROS_RESOURCE_TYPE_NAME"))
2464
+
2465
+ @builtins.property
2466
+ @jsii.member(jsii_name="attrBandwidth")
2467
+ def attr_bandwidth(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2468
+ '''
2469
+ :Attribute: Bandwidth: The bandwidth for asynchronous data replication between cloud disks.
2470
+ '''
2471
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrBandwidth"))
2472
+
2473
+ @builtins.property
2474
+ @jsii.member(jsii_name="attrCreateTime")
2475
+ def attr_create_time(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2476
+ '''
2477
+ :Attribute: CreateTime: The creation time of the resource.
2478
+ '''
2479
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrCreateTime"))
2480
+
2481
+ @builtins.property
2482
+ @jsii.member(jsii_name="attrDescription")
2483
+ def attr_description(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2484
+ '''
2485
+ :Attribute: Description: The description of the asynchronous replication relationship.
2486
+ '''
2487
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDescription"))
2488
+
2489
+ @builtins.property
2490
+ @jsii.member(jsii_name="attrDestinationDiskId")
2491
+ def attr_destination_disk_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2492
+ '''
2493
+ :Attribute: DestinationDiskId: The ID of the standby disk.
2494
+ '''
2495
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDestinationDiskId"))
2496
+
2497
+ @builtins.property
2498
+ @jsii.member(jsii_name="attrDestinationRegionId")
2499
+ def attr_destination_region_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2500
+ '''
2501
+ :Attribute: DestinationRegionId: The ID of the region to which the disaster recovery site belongs.
2502
+ '''
2503
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDestinationRegionId"))
2504
+
2505
+ @builtins.property
2506
+ @jsii.member(jsii_name="attrDestinationZoneId")
2507
+ def attr_destination_zone_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2508
+ '''
2509
+ :Attribute: DestinationZoneId: The ID of the zone to which the disaster recovery site belongs.
2510
+ '''
2511
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDestinationZoneId"))
2512
+
2513
+ @builtins.property
2514
+ @jsii.member(jsii_name="attrDiskId")
2515
+ def attr_disk_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2516
+ '''
2517
+ :Attribute: DiskId: The ID of the primary disk.
2518
+ '''
2519
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDiskId"))
2520
+
2521
+ @builtins.property
2522
+ @jsii.member(jsii_name="attrDiskReplicaPairName")
2523
+ def attr_disk_replica_pair_name(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2524
+ '''
2525
+ :Attribute: DiskReplicaPairName: The name of the asynchronous replication relationship.
2526
+ '''
2527
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrDiskReplicaPairName"))
2528
+
2529
+ @builtins.property
2530
+ @jsii.member(jsii_name="attrPaymentType")
2531
+ def attr_payment_type(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2532
+ '''
2533
+ :Attribute: PaymentType: The payment type of the resource.
2534
+ '''
2535
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrPaymentType"))
2536
+
2537
+ @builtins.property
2538
+ @jsii.member(jsii_name="attrReplicaPairId")
2539
+ def attr_replica_pair_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2540
+ '''
2541
+ :Attribute: ReplicaPairId: The ID of the disk replica pair.
2542
+ '''
2543
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrReplicaPairId"))
2544
+
2545
+ @builtins.property
2546
+ @jsii.member(jsii_name="attrResourceGroupId")
2547
+ def attr_resource_group_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2548
+ '''
2549
+ :Attribute: ResourceGroupId: The ID of the resource group.
2550
+ '''
2551
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrResourceGroupId"))
2552
+
2553
+ @builtins.property
2554
+ @jsii.member(jsii_name="attrRpo")
2555
+ def attr_rpo(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2556
+ '''
2557
+ :Attribute: RPO: The RPO value set by the consistency group in seconds.
2558
+ '''
2559
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrRpo"))
2560
+
2561
+ @builtins.property
2562
+ @jsii.member(jsii_name="attrSourceZoneId")
2563
+ def attr_source_zone_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2564
+ '''
2565
+ :Attribute: SourceZoneId: The ID of the zone to which the production site belongs.
2566
+ '''
2567
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrSourceZoneId"))
2568
+
2569
+ @builtins.property
2570
+ @jsii.member(jsii_name="attrTags")
2571
+ def attr_tags(self) -> _ros_cdk_core_7adfd82f.IResolvable:
2572
+ '''
2573
+ :Attribute: Tags: The tags of the disk replica pair.
2574
+ '''
2575
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrTags"))
2576
+
2577
+ @builtins.property
2578
+ @jsii.member(jsii_name="rosProperties")
2579
+ def _ros_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2580
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "rosProperties"))
2581
+
2582
+ @builtins.property
2583
+ @jsii.member(jsii_name="destinationDiskId")
2584
+ def destination_disk_id(
2585
+ self,
2586
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2587
+ '''
2588
+ :Property: destinationDiskId: The ID of the standby disk.
2589
+ '''
2590
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "destinationDiskId"))
2591
+
2592
+ @destination_disk_id.setter
2593
+ def destination_disk_id(
2594
+ self,
2595
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2596
+ ) -> None:
2597
+ if __debug__:
2598
+ type_hints = typing.get_type_hints(_typecheckingstub__39670e65c86b9a53529d5506cf1daf390a2f75188d10126fa1d5e7525345a8bf)
2599
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2600
+ jsii.set(self, "destinationDiskId", value)
2601
+
2602
+ @builtins.property
2603
+ @jsii.member(jsii_name="destinationRegionId")
2604
+ def destination_region_id(
2605
+ self,
2606
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2607
+ '''
2608
+ :Property: destinationRegionId: The ID of the region to which the disaster recovery site belongs.
2609
+ '''
2610
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "destinationRegionId"))
2611
+
2612
+ @destination_region_id.setter
2613
+ def destination_region_id(
2614
+ self,
2615
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2616
+ ) -> None:
2617
+ if __debug__:
2618
+ type_hints = typing.get_type_hints(_typecheckingstub__331199deffd1a1f3cb42aa2a927a9fc2c113e42a21383911ab69e76bbb7a99d7)
2619
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2620
+ jsii.set(self, "destinationRegionId", value)
2621
+
2622
+ @builtins.property
2623
+ @jsii.member(jsii_name="destinationZoneId")
2624
+ def destination_zone_id(
2625
+ self,
2626
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2627
+ '''
2628
+ :Property: destinationZoneId: The ID of the zone to which the disaster recovery site belongs.
2629
+ '''
2630
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "destinationZoneId"))
2631
+
2632
+ @destination_zone_id.setter
2633
+ def destination_zone_id(
2634
+ self,
2635
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2636
+ ) -> None:
2637
+ if __debug__:
2638
+ type_hints = typing.get_type_hints(_typecheckingstub__daf92f1d719029f31b345b3a5284c231c4d2bd239285085e43d0354807e4479b)
2639
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2640
+ jsii.set(self, "destinationZoneId", value)
2641
+
2642
+ @builtins.property
2643
+ @jsii.member(jsii_name="diskId")
2644
+ def disk_id(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2645
+ '''
2646
+ :Property: diskId: The ID of the primary disk.
2647
+ '''
2648
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "diskId"))
2649
+
2650
+ @disk_id.setter
2651
+ def disk_id(
2652
+ self,
2653
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2654
+ ) -> None:
2655
+ if __debug__:
2656
+ type_hints = typing.get_type_hints(_typecheckingstub__8b41d119ca8272739e86f38ac8e43b016a69e62e279af913ba08c0aed707847f)
2657
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2658
+ jsii.set(self, "diskId", value)
2659
+
2660
+ @builtins.property
2661
+ @jsii.member(jsii_name="enableResourcePropertyConstraint")
2662
+ def enable_resource_property_constraint(self) -> builtins.bool:
2663
+ return typing.cast(builtins.bool, jsii.get(self, "enableResourcePropertyConstraint"))
2664
+
2665
+ @enable_resource_property_constraint.setter
2666
+ def enable_resource_property_constraint(self, value: builtins.bool) -> None:
2667
+ if __debug__:
2668
+ type_hints = typing.get_type_hints(_typecheckingstub__3dad9feb6f08ccbacf032be6535cce8fbab4844e6fb244e1baee5fbe28d34870)
2669
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2670
+ jsii.set(self, "enableResourcePropertyConstraint", value)
2671
+
2672
+ @builtins.property
2673
+ @jsii.member(jsii_name="sourceZoneId")
2674
+ def source_zone_id(
2675
+ self,
2676
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2677
+ '''
2678
+ :Property: sourceZoneId: The ID of the zone to which the production site belongs.
2679
+ '''
2680
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "sourceZoneId"))
2681
+
2682
+ @source_zone_id.setter
2683
+ def source_zone_id(
2684
+ self,
2685
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2686
+ ) -> None:
2687
+ if __debug__:
2688
+ type_hints = typing.get_type_hints(_typecheckingstub__51892e06f6dc475436d94129b7f06e25ecda6ce4be2fa75b712a211647fa6fb3)
2689
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2690
+ jsii.set(self, "sourceZoneId", value)
2691
+
2692
+ @builtins.property
2693
+ @jsii.member(jsii_name="bandwidth")
2694
+ def bandwidth(
2695
+ self,
2696
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
2697
+ '''
2698
+ :Property:
2699
+
2700
+ bandwidth: The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:
2701
+
2702
+ - 10240 Kbps: equal to 10 Mbps.
2703
+ - 20480 Kbps: equal to 20 Mbps.
2704
+ - 51200 Kbps: equal to 50 Mbps.
2705
+ - 102400 Kbps: equal to 100 Mbps.
2706
+ Default value: 10240.
2707
+ This parameter cannot be specified when the ChargeType value is PayAsYouGo The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.
2708
+ '''
2709
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "bandwidth"))
2710
+
2711
+ @bandwidth.setter
2712
+ def bandwidth(
2713
+ self,
2714
+ value: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]],
2715
+ ) -> None:
2716
+ if __debug__:
2717
+ type_hints = typing.get_type_hints(_typecheckingstub__e8193dc446a06c0c60dc59e99d3ec8c105746068f1e38dbc0fb92767fd778ad7)
2718
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2719
+ jsii.set(self, "bandwidth", value)
2720
+
2721
+ @builtins.property
2722
+ @jsii.member(jsii_name="description")
2723
+ def description(
2724
+ self,
2725
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2726
+ '''
2727
+ :Property: description: The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.
2728
+ '''
2729
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "description"))
2730
+
2731
+ @description.setter
2732
+ def description(
2733
+ self,
2734
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
2735
+ ) -> None:
2736
+ if __debug__:
2737
+ type_hints = typing.get_type_hints(_typecheckingstub__68fb3faf3fe5a4c627d4c0ce10185f169d9fa9569e1cdf1ec55782262aa7b3bd)
2738
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2739
+ jsii.set(self, "description", value)
2740
+
2741
+ @builtins.property
2742
+ @jsii.member(jsii_name="diskReplicaPairName")
2743
+ def disk_replica_pair_name(
2744
+ self,
2745
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2746
+ '''
2747
+ :Property: diskReplicaPairName: The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).
2748
+ '''
2749
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "diskReplicaPairName"))
2750
+
2751
+ @disk_replica_pair_name.setter
2752
+ def disk_replica_pair_name(
2753
+ self,
2754
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
2755
+ ) -> None:
2756
+ if __debug__:
2757
+ type_hints = typing.get_type_hints(_typecheckingstub__fbf1aff00ecb43f37f8f2472bd7b9fa772d8ba828b1522d100dc79814087c689)
2758
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2759
+ jsii.set(self, "diskReplicaPairName", value)
2760
+
2761
+ @builtins.property
2762
+ @jsii.member(jsii_name="paymentType")
2763
+ def payment_type(
2764
+ self,
2765
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2766
+ '''
2767
+ :Property: paymentType: The payment type of the resource
2768
+ '''
2769
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "paymentType"))
2770
+
2771
+ @payment_type.setter
2772
+ def payment_type(
2773
+ self,
2774
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
2775
+ ) -> None:
2776
+ if __debug__:
2777
+ type_hints = typing.get_type_hints(_typecheckingstub__330d6b2070e1ac2af41f0653043b980fddd6e7c546343a285aafea2c4a03c44a)
2778
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2779
+ jsii.set(self, "paymentType", value)
2780
+
2781
+ @builtins.property
2782
+ @jsii.member(jsii_name="period")
2783
+ def period(
2784
+ self,
2785
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
2786
+ '''
2787
+ :Property:
2788
+
2789
+ period: The purchase duration of the asynchronous replication relationship. This parameter is required when 'ChargeType = PrePay. The duration unit is specified by'periodunit', and the value range is:
2790
+
2791
+ - When 'PeriodUnit = Month', the value range of this parameter is 1, 2, 3, 6, 12, 24, 36, 60.
2792
+ '''
2793
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "period"))
2794
+
2795
+ @period.setter
2796
+ def period(
2797
+ self,
2798
+ value: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]],
2799
+ ) -> None:
2800
+ if __debug__:
2801
+ type_hints = typing.get_type_hints(_typecheckingstub__2733531d06d6135937de18bd3b1326fb9043a9f40185d5ec29dff56e5b76c3f3)
2802
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2803
+ jsii.set(self, "period", value)
2804
+
2805
+ @builtins.property
2806
+ @jsii.member(jsii_name="periodUnit")
2807
+ def period_unit(
2808
+ self,
2809
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2810
+ '''
2811
+ :Property:
2812
+
2813
+ periodUnit: The unit of the purchase time of the asynchronous replication relationship. Value range:
2814
+
2815
+ - Month.Default value: Month.
2816
+ '''
2817
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "periodUnit"))
2818
+
2819
+ @period_unit.setter
2820
+ def period_unit(
2821
+ self,
2822
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
2823
+ ) -> None:
2824
+ if __debug__:
2825
+ type_hints = typing.get_type_hints(_typecheckingstub__b937659ab4a90c9c3665316ffbd134cfcf089fd62a27944ab5abb1c899896866)
2826
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2827
+ jsii.set(self, "periodUnit", value)
2828
+
2829
+ @builtins.property
2830
+ @jsii.member(jsii_name="resourceGroupId")
2831
+ def resource_group_id(
2832
+ self,
2833
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2834
+ '''
2835
+ :Property: resourceGroupId: The ID of the resource group
2836
+ '''
2837
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "resourceGroupId"))
2838
+
2839
+ @resource_group_id.setter
2840
+ def resource_group_id(
2841
+ self,
2842
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
2843
+ ) -> None:
2844
+ if __debug__:
2845
+ type_hints = typing.get_type_hints(_typecheckingstub__5f782d9b4cea4396c850a8b0df7ecaf7b70fce736a4505a9865fe7095cd9bf09)
2846
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2847
+ jsii.set(self, "resourceGroupId", value)
2848
+
2849
+ @builtins.property
2850
+ @jsii.member(jsii_name="rpo")
2851
+ def rpo(
2852
+ self,
2853
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
2854
+ '''
2855
+ :Property: rpo: The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.
2856
+ '''
2857
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], jsii.get(self, "rpo"))
2858
+
2859
+ @rpo.setter
2860
+ def rpo(
2861
+ self,
2862
+ value: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]],
2863
+ ) -> None:
2864
+ if __debug__:
2865
+ type_hints = typing.get_type_hints(_typecheckingstub__d70283f5874e9f6eed158e951ec37aa3fb80f50fec02aeab3ea44fe19ef7831e)
2866
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2867
+ jsii.set(self, "rpo", value)
2868
+
2869
+ @builtins.property
2870
+ @jsii.member(jsii_name="tags")
2871
+ def tags(self) -> typing.Optional[typing.List["RosDiskReplicaPair.TagsProperty"]]:
2872
+ '''
2873
+ :Property: tags: Tags of disk replica pair.
2874
+ '''
2875
+ return typing.cast(typing.Optional[typing.List["RosDiskReplicaPair.TagsProperty"]], jsii.get(self, "tags"))
2876
+
2877
+ @tags.setter
2878
+ def tags(
2879
+ self,
2880
+ value: typing.Optional[typing.List["RosDiskReplicaPair.TagsProperty"]],
2881
+ ) -> None:
2882
+ if __debug__:
2883
+ type_hints = typing.get_type_hints(_typecheckingstub__5ab5d22488bea6ace386f7bf3b39a8717e6ebb70dbafaf7ffadd602a18cdf382)
2884
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2885
+ jsii.set(self, "tags", value)
2886
+
2887
+ @jsii.data_type(
2888
+ jsii_type="@alicloud/ros-cdk-ebs.RosDiskReplicaPair.TagsProperty",
2889
+ jsii_struct_bases=[],
2890
+ name_mapping={"key": "key", "value": "value"},
2891
+ )
2892
+ class TagsProperty:
2893
+ def __init__(
2894
+ self,
2895
+ *,
2896
+ key: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
2897
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
2898
+ ) -> None:
2899
+ '''
2900
+ :param key:
2901
+ :param value:
2902
+ '''
2903
+ if __debug__:
2904
+ type_hints = typing.get_type_hints(_typecheckingstub__987218ac7078cde1798fc7f823cad2180fba1a57c44bf284b231ddc602d4fdad)
2905
+ check_type(argname="argument key", value=key, expected_type=type_hints["key"])
2906
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2907
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2908
+ "key": key,
2909
+ }
2910
+ if value is not None:
2911
+ self._values["value"] = value
2912
+
2913
+ @builtins.property
2914
+ def key(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
2915
+ '''
2916
+ :Property: key: undefined
2917
+ '''
2918
+ result = self._values.get("key")
2919
+ assert result is not None, "Required property 'key' is missing"
2920
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
2921
+
2922
+ @builtins.property
2923
+ def value(
2924
+ self,
2925
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
2926
+ '''
2927
+ :Property: value: undefined
2928
+ '''
2929
+ result = self._values.get("value")
2930
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
2931
+
2932
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2933
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2934
+
2935
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2936
+ return not (rhs == self)
2937
+
2938
+ def __repr__(self) -> str:
2939
+ return "TagsProperty(%s)" % ", ".join(
2940
+ k + "=" + repr(v) for k, v in self._values.items()
2941
+ )
2942
+
2943
+
2944
+ class RosDiskReplicaPairAddition(
2945
+ _ros_cdk_core_7adfd82f.RosResource,
2946
+ metaclass=jsii.JSIIMeta,
2947
+ jsii_type="@alicloud/ros-cdk-ebs.RosDiskReplicaPairAddition",
2948
+ ):
2949
+ '''This class is a base encapsulation around the ROS resource type ``ALIYUN::EBS::DiskReplicaPairAddition``, which is used to add a replication pair to a replication pair-consistent group.
2950
+
2951
+ :Note:
2952
+
2953
+ This class does not contain additional functions, so it is recommended to use the ``DiskReplicaPairAddition`` class instead of this class for a more convenient development experience.
2954
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicapairaddition
2955
+ '''
2956
+
2957
+ def __init__(
2958
+ self,
2959
+ scope: _ros_cdk_core_7adfd82f.Construct,
2960
+ id: builtins.str,
2961
+ props: typing.Union["RosDiskReplicaPairAdditionProps", typing.Dict[builtins.str, typing.Any]],
2962
+ enable_resource_property_constraint: builtins.bool,
2963
+ ) -> None:
2964
+ '''
2965
+ :param scope: - scope in which this resource is defined.
2966
+ :param id: - scoped id of the resource.
2967
+ :param props: - resource properties.
2968
+ :param enable_resource_property_constraint: -
2969
+ '''
2970
+ if __debug__:
2971
+ type_hints = typing.get_type_hints(_typecheckingstub__5365769ec0e29b68fffa8bca5629d647de8890969c53f99fa97d3cad7dece03f)
2972
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2973
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2974
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
2975
+ check_type(argname="argument enable_resource_property_constraint", value=enable_resource_property_constraint, expected_type=type_hints["enable_resource_property_constraint"])
2976
+ jsii.create(self.__class__, self, [scope, id, props, enable_resource_property_constraint])
2977
+
2978
+ @jsii.member(jsii_name="renderProperties")
2979
+ def _render_properties(
2980
+ self,
2981
+ props: typing.Mapping[builtins.str, typing.Any],
2982
+ ) -> typing.Mapping[builtins.str, typing.Any]:
2983
+ '''
2984
+ :param props: -
2985
+ '''
2986
+ if __debug__:
2987
+ type_hints = typing.get_type_hints(_typecheckingstub__f6980ccfe50fcd81ac0b674aa08ceb01f5e5820371c94b4a9fb54f344d636d4a)
2988
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
2989
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
2990
+
2991
+ @jsii.python.classproperty
2992
+ @jsii.member(jsii_name="ROS_RESOURCE_TYPE_NAME")
2993
+ def ROS_RESOURCE_TYPE_NAME(cls) -> builtins.str:
2994
+ '''The resource type name for this resource class.'''
2995
+ return typing.cast(builtins.str, jsii.sget(cls, "ROS_RESOURCE_TYPE_NAME"))
2996
+
2997
+ @builtins.property
2998
+ @jsii.member(jsii_name="attrReplicaGroupId")
2999
+ def attr_replica_group_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
3000
+ '''
3001
+ :Attribute: ReplicaGroupId: The ID of the replication pair-consistent group.
3002
+ '''
3003
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrReplicaGroupId"))
3004
+
3005
+ @builtins.property
3006
+ @jsii.member(jsii_name="attrReplicaPairId")
3007
+ def attr_replica_pair_id(self) -> _ros_cdk_core_7adfd82f.IResolvable:
3008
+ '''
3009
+ :Attribute: ReplicaPairId: The ID of the replication pair.
3010
+ '''
3011
+ return typing.cast(_ros_cdk_core_7adfd82f.IResolvable, jsii.get(self, "attrReplicaPairId"))
3012
+
3013
+ @builtins.property
3014
+ @jsii.member(jsii_name="rosProperties")
3015
+ def _ros_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3016
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "rosProperties"))
3017
+
3018
+ @builtins.property
3019
+ @jsii.member(jsii_name="enableResourcePropertyConstraint")
3020
+ def enable_resource_property_constraint(self) -> builtins.bool:
3021
+ return typing.cast(builtins.bool, jsii.get(self, "enableResourcePropertyConstraint"))
3022
+
3023
+ @enable_resource_property_constraint.setter
3024
+ def enable_resource_property_constraint(self, value: builtins.bool) -> None:
3025
+ if __debug__:
3026
+ type_hints = typing.get_type_hints(_typecheckingstub__dd6e504b714edc70ea1ba7f900e22fad6804451e4d057b9e38e01a04d6a13499)
3027
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3028
+ jsii.set(self, "enableResourcePropertyConstraint", value)
3029
+
3030
+ @builtins.property
3031
+ @jsii.member(jsii_name="replicaGroupId")
3032
+ def replica_group_id(
3033
+ self,
3034
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3035
+ '''
3036
+ :Property: replicaGroupId: The ID of the replication pair-consistent group.
3037
+ '''
3038
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "replicaGroupId"))
3039
+
3040
+ @replica_group_id.setter
3041
+ def replica_group_id(
3042
+ self,
3043
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
3044
+ ) -> None:
3045
+ if __debug__:
3046
+ type_hints = typing.get_type_hints(_typecheckingstub__8ed23c639425fee907d096cba38afa2b408cb9bb8f06083da0a26bffdaa7c83d)
3047
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3048
+ jsii.set(self, "replicaGroupId", value)
3049
+
3050
+ @builtins.property
3051
+ @jsii.member(jsii_name="replicaPairId")
3052
+ def replica_pair_id(
3053
+ self,
3054
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3055
+ '''
3056
+ :Property: replicaPairId: The ID of the replication pair. You can call the DescribeDiskReplicaPairs operation to query the IDs of existing replication pairs.
3057
+ '''
3058
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "replicaPairId"))
3059
+
3060
+ @replica_pair_id.setter
3061
+ def replica_pair_id(
3062
+ self,
3063
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
3064
+ ) -> None:
3065
+ if __debug__:
3066
+ type_hints = typing.get_type_hints(_typecheckingstub__c114127e312a46f1f811b666fa89a788caee6adf564a514085356ca2a4e870f7)
3067
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3068
+ jsii.set(self, "replicaPairId", value)
3069
+
3070
+
3071
+ @jsii.data_type(
3072
+ jsii_type="@alicloud/ros-cdk-ebs.RosDiskReplicaPairAdditionProps",
3073
+ jsii_struct_bases=[],
3074
+ name_mapping={
3075
+ "replica_group_id": "replicaGroupId",
3076
+ "replica_pair_id": "replicaPairId",
3077
+ },
3078
+ )
3079
+ class RosDiskReplicaPairAdditionProps:
3080
+ def __init__(
3081
+ self,
3082
+ *,
3083
+ replica_group_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
3084
+ replica_pair_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
3085
+ ) -> None:
3086
+ '''Properties for defining a ``RosDiskReplicaPairAddition``.
3087
+
3088
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicapairaddition
3089
+
3090
+ :param replica_group_id:
3091
+ :param replica_pair_id:
3092
+ '''
3093
+ if __debug__:
3094
+ type_hints = typing.get_type_hints(_typecheckingstub__b29659ceae376d07b267814e999b8a54172f277f358dbac7dc6cef341b945f1c)
3095
+ check_type(argname="argument replica_group_id", value=replica_group_id, expected_type=type_hints["replica_group_id"])
3096
+ check_type(argname="argument replica_pair_id", value=replica_pair_id, expected_type=type_hints["replica_pair_id"])
3097
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3098
+ "replica_group_id": replica_group_id,
3099
+ "replica_pair_id": replica_pair_id,
3100
+ }
3101
+
3102
+ @builtins.property
3103
+ def replica_group_id(
3104
+ self,
3105
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3106
+ '''
3107
+ :Property: replicaGroupId: The ID of the replication pair-consistent group.
3108
+ '''
3109
+ result = self._values.get("replica_group_id")
3110
+ assert result is not None, "Required property 'replica_group_id' is missing"
3111
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
3112
+
3113
+ @builtins.property
3114
+ def replica_pair_id(
3115
+ self,
3116
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3117
+ '''
3118
+ :Property: replicaPairId: The ID of the replication pair. You can call the DescribeDiskReplicaPairs operation to query the IDs of existing replication pairs.
3119
+ '''
3120
+ result = self._values.get("replica_pair_id")
3121
+ assert result is not None, "Required property 'replica_pair_id' is missing"
3122
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
3123
+
3124
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3125
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3126
+
3127
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3128
+ return not (rhs == self)
3129
+
3130
+ def __repr__(self) -> str:
3131
+ return "RosDiskReplicaPairAdditionProps(%s)" % ", ".join(
3132
+ k + "=" + repr(v) for k, v in self._values.items()
3133
+ )
3134
+
3135
+
3136
+ @jsii.data_type(
3137
+ jsii_type="@alicloud/ros-cdk-ebs.RosDiskReplicaPairProps",
3138
+ jsii_struct_bases=[],
3139
+ name_mapping={
3140
+ "destination_disk_id": "destinationDiskId",
3141
+ "destination_region_id": "destinationRegionId",
3142
+ "destination_zone_id": "destinationZoneId",
3143
+ "disk_id": "diskId",
3144
+ "source_zone_id": "sourceZoneId",
3145
+ "bandwidth": "bandwidth",
3146
+ "description": "description",
3147
+ "disk_replica_pair_name": "diskReplicaPairName",
3148
+ "payment_type": "paymentType",
3149
+ "period": "period",
3150
+ "period_unit": "periodUnit",
3151
+ "resource_group_id": "resourceGroupId",
3152
+ "rpo": "rpo",
3153
+ "tags": "tags",
3154
+ },
3155
+ )
3156
+ class RosDiskReplicaPairProps:
3157
+ def __init__(
3158
+ self,
3159
+ *,
3160
+ destination_disk_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
3161
+ destination_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
3162
+ destination_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
3163
+ disk_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
3164
+ source_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
3165
+ bandwidth: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
3166
+ description: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
3167
+ disk_replica_pair_name: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
3168
+ payment_type: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
3169
+ period: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
3170
+ period_unit: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
3171
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
3172
+ rpo: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
3173
+ tags: typing.Optional[typing.Sequence[typing.Union[RosDiskReplicaPair.TagsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
3174
+ ) -> None:
3175
+ '''Properties for defining a ``RosDiskReplicaPair``.
3176
+
3177
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicapair
3178
+
3179
+ :param destination_disk_id:
3180
+ :param destination_region_id:
3181
+ :param destination_zone_id:
3182
+ :param disk_id:
3183
+ :param source_zone_id:
3184
+ :param bandwidth:
3185
+ :param description:
3186
+ :param disk_replica_pair_name:
3187
+ :param payment_type:
3188
+ :param period:
3189
+ :param period_unit:
3190
+ :param resource_group_id:
3191
+ :param rpo:
3192
+ :param tags:
3193
+ '''
3194
+ if __debug__:
3195
+ type_hints = typing.get_type_hints(_typecheckingstub__0026a1160111762188c14f86d6ce0609d60afa3adcaba2afd19109d2dc4c3021)
3196
+ check_type(argname="argument destination_disk_id", value=destination_disk_id, expected_type=type_hints["destination_disk_id"])
3197
+ check_type(argname="argument destination_region_id", value=destination_region_id, expected_type=type_hints["destination_region_id"])
3198
+ check_type(argname="argument destination_zone_id", value=destination_zone_id, expected_type=type_hints["destination_zone_id"])
3199
+ check_type(argname="argument disk_id", value=disk_id, expected_type=type_hints["disk_id"])
3200
+ check_type(argname="argument source_zone_id", value=source_zone_id, expected_type=type_hints["source_zone_id"])
3201
+ check_type(argname="argument bandwidth", value=bandwidth, expected_type=type_hints["bandwidth"])
3202
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
3203
+ check_type(argname="argument disk_replica_pair_name", value=disk_replica_pair_name, expected_type=type_hints["disk_replica_pair_name"])
3204
+ check_type(argname="argument payment_type", value=payment_type, expected_type=type_hints["payment_type"])
3205
+ check_type(argname="argument period", value=period, expected_type=type_hints["period"])
3206
+ check_type(argname="argument period_unit", value=period_unit, expected_type=type_hints["period_unit"])
3207
+ check_type(argname="argument resource_group_id", value=resource_group_id, expected_type=type_hints["resource_group_id"])
3208
+ check_type(argname="argument rpo", value=rpo, expected_type=type_hints["rpo"])
3209
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
3210
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3211
+ "destination_disk_id": destination_disk_id,
3212
+ "destination_region_id": destination_region_id,
3213
+ "destination_zone_id": destination_zone_id,
3214
+ "disk_id": disk_id,
3215
+ "source_zone_id": source_zone_id,
3216
+ }
3217
+ if bandwidth is not None:
3218
+ self._values["bandwidth"] = bandwidth
3219
+ if description is not None:
3220
+ self._values["description"] = description
3221
+ if disk_replica_pair_name is not None:
3222
+ self._values["disk_replica_pair_name"] = disk_replica_pair_name
3223
+ if payment_type is not None:
3224
+ self._values["payment_type"] = payment_type
3225
+ if period is not None:
3226
+ self._values["period"] = period
3227
+ if period_unit is not None:
3228
+ self._values["period_unit"] = period_unit
3229
+ if resource_group_id is not None:
3230
+ self._values["resource_group_id"] = resource_group_id
3231
+ if rpo is not None:
3232
+ self._values["rpo"] = rpo
3233
+ if tags is not None:
3234
+ self._values["tags"] = tags
3235
+
3236
+ @builtins.property
3237
+ def destination_disk_id(
3238
+ self,
3239
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3240
+ '''
3241
+ :Property: destinationDiskId: The ID of the standby disk.
3242
+ '''
3243
+ result = self._values.get("destination_disk_id")
3244
+ assert result is not None, "Required property 'destination_disk_id' is missing"
3245
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
3246
+
3247
+ @builtins.property
3248
+ def destination_region_id(
3249
+ self,
3250
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3251
+ '''
3252
+ :Property: destinationRegionId: The ID of the region to which the disaster recovery site belongs.
3253
+ '''
3254
+ result = self._values.get("destination_region_id")
3255
+ assert result is not None, "Required property 'destination_region_id' is missing"
3256
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
3257
+
3258
+ @builtins.property
3259
+ def destination_zone_id(
3260
+ self,
3261
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3262
+ '''
3263
+ :Property: destinationZoneId: The ID of the zone to which the disaster recovery site belongs.
3264
+ '''
3265
+ result = self._values.get("destination_zone_id")
3266
+ assert result is not None, "Required property 'destination_zone_id' is missing"
3267
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
3268
+
3269
+ @builtins.property
3270
+ def disk_id(self) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3271
+ '''
3272
+ :Property: diskId: The ID of the primary disk.
3273
+ '''
3274
+ result = self._values.get("disk_id")
3275
+ assert result is not None, "Required property 'disk_id' is missing"
3276
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
3277
+
3278
+ @builtins.property
3279
+ def source_zone_id(
3280
+ self,
3281
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3282
+ '''
3283
+ :Property: sourceZoneId: The ID of the zone to which the production site belongs.
3284
+ '''
3285
+ result = self._values.get("source_zone_id")
3286
+ assert result is not None, "Required property 'source_zone_id' is missing"
3287
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], result)
3288
+
3289
+ @builtins.property
3290
+ def bandwidth(
3291
+ self,
3292
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
3293
+ '''
3294
+ :Property:
3295
+
3296
+ bandwidth: The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:
3297
+
3298
+ - 10240 Kbps: equal to 10 Mbps.
3299
+ - 20480 Kbps: equal to 20 Mbps.
3300
+ - 51200 Kbps: equal to 50 Mbps.
3301
+ - 102400 Kbps: equal to 100 Mbps.
3302
+ Default value: 10240.
3303
+ This parameter cannot be specified when the ChargeType value is PayAsYouGo The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.
3304
+ '''
3305
+ result = self._values.get("bandwidth")
3306
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], result)
3307
+
3308
+ @builtins.property
3309
+ def description(
3310
+ self,
3311
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
3312
+ '''
3313
+ :Property: description: The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.
3314
+ '''
3315
+ result = self._values.get("description")
3316
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
3317
+
3318
+ @builtins.property
3319
+ def disk_replica_pair_name(
3320
+ self,
3321
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
3322
+ '''
3323
+ :Property: diskReplicaPairName: The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).
3324
+ '''
3325
+ result = self._values.get("disk_replica_pair_name")
3326
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
3327
+
3328
+ @builtins.property
3329
+ def payment_type(
3330
+ self,
3331
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
3332
+ '''
3333
+ :Property: paymentType: The payment type of the resource
3334
+ '''
3335
+ result = self._values.get("payment_type")
3336
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
3337
+
3338
+ @builtins.property
3339
+ def period(
3340
+ self,
3341
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
3342
+ '''
3343
+ :Property:
3344
+
3345
+ period: The purchase duration of the asynchronous replication relationship. This parameter is required when 'ChargeType = PrePay. The duration unit is specified by'periodunit', and the value range is:
3346
+
3347
+ - When 'PeriodUnit = Month', the value range of this parameter is 1, 2, 3, 6, 12, 24, 36, 60.
3348
+ '''
3349
+ result = self._values.get("period")
3350
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], result)
3351
+
3352
+ @builtins.property
3353
+ def period_unit(
3354
+ self,
3355
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
3356
+ '''
3357
+ :Property:
3358
+
3359
+ periodUnit: The unit of the purchase time of the asynchronous replication relationship. Value range:
3360
+
3361
+ - Month.Default value: Month.
3362
+ '''
3363
+ result = self._values.get("period_unit")
3364
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
3365
+
3366
+ @builtins.property
3367
+ def resource_group_id(
3368
+ self,
3369
+ ) -> typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]]:
3370
+ '''
3371
+ :Property: resourceGroupId: The ID of the resource group
3372
+ '''
3373
+ result = self._values.get("resource_group_id")
3374
+ return typing.cast(typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]], result)
3375
+
3376
+ @builtins.property
3377
+ def rpo(
3378
+ self,
3379
+ ) -> typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]]:
3380
+ '''
3381
+ :Property: rpo: The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.
3382
+ '''
3383
+ result = self._values.get("rpo")
3384
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]], result)
3385
+
3386
+ @builtins.property
3387
+ def tags(self) -> typing.Optional[typing.List[RosDiskReplicaPair.TagsProperty]]:
3388
+ '''
3389
+ :Property: tags: Tags of disk replica pair.
3390
+ '''
3391
+ result = self._values.get("tags")
3392
+ return typing.cast(typing.Optional[typing.List[RosDiskReplicaPair.TagsProperty]], result)
3393
+
3394
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3395
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3396
+
3397
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3398
+ return not (rhs == self)
3399
+
3400
+ def __repr__(self) -> str:
3401
+ return "RosDiskReplicaPairProps(%s)" % ", ".join(
3402
+ k + "=" + repr(v) for k, v in self._values.items()
3403
+ )
3404
+
3405
+
3406
+ @jsii.implements(IDedicatedBlockStorageCluster)
3407
+ class DedicatedBlockStorageCluster(
3408
+ _ros_cdk_core_7adfd82f.Resource,
3409
+ metaclass=jsii.JSIIMeta,
3410
+ jsii_type="@alicloud/ros-cdk-ebs.DedicatedBlockStorageCluster",
3411
+ ):
3412
+ '''This class encapsulates and extends the ROS resource type ``ALIYUN::EBS::DedicatedBlockStorageCluster``, which is used to create a dedicated block storage cluster.
3413
+
3414
+ :Note:
3415
+
3416
+ This class may have some new functions to facilitate development, so it is recommended to use this class instead of ``RosDedicatedBlockStorageCluster``for a more convenient development experience.
3417
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-dedicatedblockstoragecluster
3418
+ '''
3419
+
3420
+ def __init__(
3421
+ self,
3422
+ scope: _ros_cdk_core_7adfd82f.Construct,
3423
+ id: builtins.str,
3424
+ props: typing.Union[DedicatedBlockStorageClusterProps, typing.Dict[builtins.str, typing.Any]],
3425
+ enable_resource_property_constraint: typing.Optional[builtins.bool] = None,
3426
+ ) -> None:
3427
+ '''Param scope - scope in which this resource is defined Param id - scoped id of the resource Param props - resource properties.
3428
+
3429
+ :param scope: -
3430
+ :param id: -
3431
+ :param props: -
3432
+ :param enable_resource_property_constraint: -
3433
+ '''
3434
+ if __debug__:
3435
+ type_hints = typing.get_type_hints(_typecheckingstub__c87701359fee1467ec469ed59533912f5145975339a77e2fec77358150c61882)
3436
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3437
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3438
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3439
+ check_type(argname="argument enable_resource_property_constraint", value=enable_resource_property_constraint, expected_type=type_hints["enable_resource_property_constraint"])
3440
+ jsii.create(self.__class__, self, [scope, id, props, enable_resource_property_constraint])
3441
+
3442
+ @builtins.property
3443
+ @jsii.member(jsii_name="attrDedicatedBlockStorageClusterId")
3444
+ def attr_dedicated_block_storage_cluster_id(
3445
+ self,
3446
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3447
+ '''Attribute DedicatedBlockStorageClusterId: The ID of the dedicated block storage cluster.'''
3448
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDedicatedBlockStorageClusterId"))
3449
+
3450
+ @builtins.property
3451
+ @jsii.member(jsii_name="props")
3452
+ def props(self) -> DedicatedBlockStorageClusterProps:
3453
+ return typing.cast(DedicatedBlockStorageClusterProps, jsii.get(self, "props"))
3454
+
3455
+ @builtins.property
3456
+ @jsii.member(jsii_name="enableResourcePropertyConstraint")
3457
+ def _enable_resource_property_constraint(self) -> builtins.bool:
3458
+ return typing.cast(builtins.bool, jsii.get(self, "enableResourcePropertyConstraint"))
3459
+
3460
+ @_enable_resource_property_constraint.setter
3461
+ def _enable_resource_property_constraint(self, value: builtins.bool) -> None:
3462
+ if __debug__:
3463
+ type_hints = typing.get_type_hints(_typecheckingstub__9f8d10e2e1e8c3a049201bc9354f1a14955e1de811f1e8750034cb5ebdb4c122)
3464
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3465
+ jsii.set(self, "enableResourcePropertyConstraint", value)
3466
+
3467
+ @builtins.property
3468
+ @jsii.member(jsii_name="id")
3469
+ def _id(self) -> builtins.str:
3470
+ return typing.cast(builtins.str, jsii.get(self, "id"))
3471
+
3472
+ @_id.setter
3473
+ def _id(self, value: builtins.str) -> None:
3474
+ if __debug__:
3475
+ type_hints = typing.get_type_hints(_typecheckingstub__1b617b58f755f220d1a4b19bd7afd7498115e73530c26985cd3df8deb1d516f6)
3476
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3477
+ jsii.set(self, "id", value)
3478
+
3479
+ @builtins.property
3480
+ @jsii.member(jsii_name="scope")
3481
+ def _scope(self) -> _ros_cdk_core_7adfd82f.Construct:
3482
+ return typing.cast(_ros_cdk_core_7adfd82f.Construct, jsii.get(self, "scope"))
3483
+
3484
+ @_scope.setter
3485
+ def _scope(self, value: _ros_cdk_core_7adfd82f.Construct) -> None:
3486
+ if __debug__:
3487
+ type_hints = typing.get_type_hints(_typecheckingstub__1172a8f79479c593e9af8521e3dac65c4b0a2b1cd3bc90744e249bab1d5a7911)
3488
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3489
+ jsii.set(self, "scope", value)
3490
+
3491
+
3492
+ @jsii.implements(IDiskReplicaGroup)
3493
+ class DiskReplicaGroup(
3494
+ _ros_cdk_core_7adfd82f.Resource,
3495
+ metaclass=jsii.JSIIMeta,
3496
+ jsii_type="@alicloud/ros-cdk-ebs.DiskReplicaGroup",
3497
+ ):
3498
+ '''This class encapsulates and extends the ROS resource type ``ALIYUN::EBS::DiskReplicaGroup``, which is used to create a replication pair-consistent group.
3499
+
3500
+ :Note:
3501
+
3502
+ This class may have some new functions to facilitate development, so it is recommended to use this class instead of ``RosDiskReplicaGroup``for a more convenient development experience.
3503
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicagroup
3504
+ '''
3505
+
3506
+ def __init__(
3507
+ self,
3508
+ scope: _ros_cdk_core_7adfd82f.Construct,
3509
+ id: builtins.str,
3510
+ props: typing.Union[DiskReplicaGroupProps, typing.Dict[builtins.str, typing.Any]],
3511
+ enable_resource_property_constraint: typing.Optional[builtins.bool] = None,
3512
+ ) -> None:
3513
+ '''Param scope - scope in which this resource is defined Param id - scoped id of the resource Param props - resource properties.
3514
+
3515
+ :param scope: -
3516
+ :param id: -
3517
+ :param props: -
3518
+ :param enable_resource_property_constraint: -
3519
+ '''
3520
+ if __debug__:
3521
+ type_hints = typing.get_type_hints(_typecheckingstub__19af0b2c0de14a374e83aacf3d743929cdcb5bcd290aa9441b453b6014efd683)
3522
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3523
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3524
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3525
+ check_type(argname="argument enable_resource_property_constraint", value=enable_resource_property_constraint, expected_type=type_hints["enable_resource_property_constraint"])
3526
+ jsii.create(self.__class__, self, [scope, id, props, enable_resource_property_constraint])
3527
+
3528
+ @builtins.property
3529
+ @jsii.member(jsii_name="attrDescription")
3530
+ def attr_description(
3531
+ self,
3532
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3533
+ '''Attribute Description: The description of the consistent replication group.'''
3534
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDescription"))
3535
+
3536
+ @builtins.property
3537
+ @jsii.member(jsii_name="attrDestinationRegionId")
3538
+ def attr_destination_region_id(
3539
+ self,
3540
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3541
+ '''Attribute DestinationRegionId: The ID of the region to which the disaster recovery site belongs.'''
3542
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationRegionId"))
3543
+
3544
+ @builtins.property
3545
+ @jsii.member(jsii_name="attrDestinationZoneId")
3546
+ def attr_destination_zone_id(
3547
+ self,
3548
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3549
+ '''Attribute DestinationZoneId: The ID of the zone to which the disaster recovery site belongs.'''
3550
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationZoneId"))
3551
+
3552
+ @builtins.property
3553
+ @jsii.member(jsii_name="attrDiskReplicaGroupName")
3554
+ def attr_disk_replica_group_name(
3555
+ self,
3556
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3557
+ '''Attribute DiskReplicaGroupName: Consistent replication group name.'''
3558
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDiskReplicaGroupName"))
3559
+
3560
+ @builtins.property
3561
+ @jsii.member(jsii_name="attrLastRecoverPoint")
3562
+ def attr_last_recover_point(
3563
+ self,
3564
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3565
+ '''Attribute LastRecoverPoint: The time when the last asynchronous replication operation of the consistent replication group completed.
3566
+
3567
+ This parameter provides the return value as a timestamp. Unit: seconds.
3568
+ '''
3569
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrLastRecoverPoint"))
3570
+
3571
+ @builtins.property
3572
+ @jsii.member(jsii_name="attrPairIds")
3573
+ def attr_pair_ids(
3574
+ self,
3575
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3576
+ '''Attribute PairIds: List of replication pair IDs contained in a consistent replication group.'''
3577
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPairIds"))
3578
+
3579
+ @builtins.property
3580
+ @jsii.member(jsii_name="attrPairNumber")
3581
+ def attr_pair_number(
3582
+ self,
3583
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3584
+ '''Attribute PairNumber: The number of replication pairs contained in a consistent replication group.'''
3585
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPairNumber"))
3586
+
3587
+ @builtins.property
3588
+ @jsii.member(jsii_name="attrPrimaryRegion")
3589
+ def attr_primary_region(
3590
+ self,
3591
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3592
+ '''Attribute PrimaryRegion: The initial source region of the replication group.'''
3593
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPrimaryRegion"))
3594
+
3595
+ @builtins.property
3596
+ @jsii.member(jsii_name="attrPrimaryZone")
3597
+ def attr_primary_zone(
3598
+ self,
3599
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3600
+ '''Attribute PrimaryZone: The initial source available area of the replication group.'''
3601
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPrimaryZone"))
3602
+
3603
+ @builtins.property
3604
+ @jsii.member(jsii_name="attrReplicaGroupId")
3605
+ def attr_replica_group_id(
3606
+ self,
3607
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3608
+ '''Attribute ReplicaGroupId: The ID of the consistent replication group.'''
3609
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrReplicaGroupId"))
3610
+
3611
+ @builtins.property
3612
+ @jsii.member(jsii_name="attrResourceGroupId")
3613
+ def attr_resource_group_id(
3614
+ self,
3615
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3616
+ '''Attribute ResourceGroupId: resource group ID of enterprise.'''
3617
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrResourceGroupId"))
3618
+
3619
+ @builtins.property
3620
+ @jsii.member(jsii_name="attrRpo")
3621
+ def attr_rpo(
3622
+ self,
3623
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3624
+ '''Attribute RPO: The RPO value set by the consistency group in seconds.'''
3625
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrRpo"))
3626
+
3627
+ @builtins.property
3628
+ @jsii.member(jsii_name="attrSite")
3629
+ def attr_site(
3630
+ self,
3631
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3632
+ '''Attribute Site: Site information sources for replication pairs and consistent replication groups.
3633
+
3634
+ Possible values:
3635
+ '''
3636
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrSite"))
3637
+
3638
+ @builtins.property
3639
+ @jsii.member(jsii_name="attrSourceRegionId")
3640
+ def attr_source_region_id(
3641
+ self,
3642
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3643
+ '''Attribute SourceRegionId: The ID of the region to which the production site belongs.'''
3644
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrSourceRegionId"))
3645
+
3646
+ @builtins.property
3647
+ @jsii.member(jsii_name="attrSourceZoneId")
3648
+ def attr_source_zone_id(
3649
+ self,
3650
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3651
+ '''Attribute SourceZoneId: The ID of the zone to which the production site belongs.'''
3652
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrSourceZoneId"))
3653
+
3654
+ @builtins.property
3655
+ @jsii.member(jsii_name="attrStandbyRegion")
3656
+ def attr_standby_region(
3657
+ self,
3658
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3659
+ '''Attribute StandbyRegion: The initial destination region of the replication group.'''
3660
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrStandbyRegion"))
3661
+
3662
+ @builtins.property
3663
+ @jsii.member(jsii_name="attrStandbyZone")
3664
+ def attr_standby_zone(
3665
+ self,
3666
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3667
+ '''Attribute StandbyZone: The initial destination zone of the replication group.'''
3668
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrStandbyZone"))
3669
+
3670
+ @builtins.property
3671
+ @jsii.member(jsii_name="attrTags")
3672
+ def attr_tags(
3673
+ self,
3674
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3675
+ '''Attribute Tags: The tags of the disk replica group.'''
3676
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrTags"))
3677
+
3678
+ @builtins.property
3679
+ @jsii.member(jsii_name="props")
3680
+ def props(self) -> DiskReplicaGroupProps:
3681
+ return typing.cast(DiskReplicaGroupProps, jsii.get(self, "props"))
3682
+
3683
+ @builtins.property
3684
+ @jsii.member(jsii_name="enableResourcePropertyConstraint")
3685
+ def _enable_resource_property_constraint(self) -> builtins.bool:
3686
+ return typing.cast(builtins.bool, jsii.get(self, "enableResourcePropertyConstraint"))
3687
+
3688
+ @_enable_resource_property_constraint.setter
3689
+ def _enable_resource_property_constraint(self, value: builtins.bool) -> None:
3690
+ if __debug__:
3691
+ type_hints = typing.get_type_hints(_typecheckingstub__63c7819542076b80b16e8fe5107b57f05a185d041f1966bd7a71e1032a88e141)
3692
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3693
+ jsii.set(self, "enableResourcePropertyConstraint", value)
3694
+
3695
+ @builtins.property
3696
+ @jsii.member(jsii_name="id")
3697
+ def _id(self) -> builtins.str:
3698
+ return typing.cast(builtins.str, jsii.get(self, "id"))
3699
+
3700
+ @_id.setter
3701
+ def _id(self, value: builtins.str) -> None:
3702
+ if __debug__:
3703
+ type_hints = typing.get_type_hints(_typecheckingstub__0927de4d3ace1072dd6c339d0b41096c56ca3444c377f22e68fc2285687167b1)
3704
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3705
+ jsii.set(self, "id", value)
3706
+
3707
+ @builtins.property
3708
+ @jsii.member(jsii_name="scope")
3709
+ def _scope(self) -> _ros_cdk_core_7adfd82f.Construct:
3710
+ return typing.cast(_ros_cdk_core_7adfd82f.Construct, jsii.get(self, "scope"))
3711
+
3712
+ @_scope.setter
3713
+ def _scope(self, value: _ros_cdk_core_7adfd82f.Construct) -> None:
3714
+ if __debug__:
3715
+ type_hints = typing.get_type_hints(_typecheckingstub__1be05b9fe281a1cb6296e25fe5d2e946e0e6ecf9970148b5a5c9e1ad27a8996d)
3716
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3717
+ jsii.set(self, "scope", value)
3718
+
3719
+
3720
+ @jsii.implements(IDiskReplicaPair)
3721
+ class DiskReplicaPair(
3722
+ _ros_cdk_core_7adfd82f.Resource,
3723
+ metaclass=jsii.JSIIMeta,
3724
+ jsii_type="@alicloud/ros-cdk-ebs.DiskReplicaPair",
3725
+ ):
3726
+ '''This class encapsulates and extends the ROS resource type ``ALIYUN::EBS::DiskReplicaPair``, which is used to create a replication pair.
3727
+
3728
+ :Note:
3729
+
3730
+ This class may have some new functions to facilitate development, so it is recommended to use this class instead of ``RosDiskReplicaPair``for a more convenient development experience.
3731
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicapair
3732
+ '''
3733
+
3734
+ def __init__(
3735
+ self,
3736
+ scope: _ros_cdk_core_7adfd82f.Construct,
3737
+ id: builtins.str,
3738
+ props: typing.Union[DiskReplicaPairProps, typing.Dict[builtins.str, typing.Any]],
3739
+ enable_resource_property_constraint: typing.Optional[builtins.bool] = None,
3740
+ ) -> None:
3741
+ '''Param scope - scope in which this resource is defined Param id - scoped id of the resource Param props - resource properties.
3742
+
3743
+ :param scope: -
3744
+ :param id: -
3745
+ :param props: -
3746
+ :param enable_resource_property_constraint: -
3747
+ '''
3748
+ if __debug__:
3749
+ type_hints = typing.get_type_hints(_typecheckingstub__3ecdce92b0a832fb86e7ac308f45569851b720f75a305bfb6560c52b4b789133)
3750
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3751
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3752
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3753
+ check_type(argname="argument enable_resource_property_constraint", value=enable_resource_property_constraint, expected_type=type_hints["enable_resource_property_constraint"])
3754
+ jsii.create(self.__class__, self, [scope, id, props, enable_resource_property_constraint])
3755
+
3756
+ @builtins.property
3757
+ @jsii.member(jsii_name="attrBandwidth")
3758
+ def attr_bandwidth(
3759
+ self,
3760
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3761
+ '''Attribute Bandwidth: The bandwidth for asynchronous data replication between cloud disks.'''
3762
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrBandwidth"))
3763
+
3764
+ @builtins.property
3765
+ @jsii.member(jsii_name="attrCreateTime")
3766
+ def attr_create_time(
3767
+ self,
3768
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3769
+ '''Attribute CreateTime: The creation time of the resource.'''
3770
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrCreateTime"))
3771
+
3772
+ @builtins.property
3773
+ @jsii.member(jsii_name="attrDescription")
3774
+ def attr_description(
3775
+ self,
3776
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3777
+ '''Attribute Description: The description of the asynchronous replication relationship.'''
3778
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDescription"))
3779
+
3780
+ @builtins.property
3781
+ @jsii.member(jsii_name="attrDestinationDiskId")
3782
+ def attr_destination_disk_id(
3783
+ self,
3784
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3785
+ '''Attribute DestinationDiskId: The ID of the standby disk.'''
3786
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationDiskId"))
3787
+
3788
+ @builtins.property
3789
+ @jsii.member(jsii_name="attrDestinationRegionId")
3790
+ def attr_destination_region_id(
3791
+ self,
3792
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3793
+ '''Attribute DestinationRegionId: The ID of the region to which the disaster recovery site belongs.'''
3794
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationRegionId"))
3795
+
3796
+ @builtins.property
3797
+ @jsii.member(jsii_name="attrDestinationZoneId")
3798
+ def attr_destination_zone_id(
3799
+ self,
3800
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3801
+ '''Attribute DestinationZoneId: The ID of the zone to which the disaster recovery site belongs.'''
3802
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDestinationZoneId"))
3803
+
3804
+ @builtins.property
3805
+ @jsii.member(jsii_name="attrDiskId")
3806
+ def attr_disk_id(
3807
+ self,
3808
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3809
+ '''Attribute DiskId: The ID of the primary disk.'''
3810
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDiskId"))
3811
+
3812
+ @builtins.property
3813
+ @jsii.member(jsii_name="attrDiskReplicaPairName")
3814
+ def attr_disk_replica_pair_name(
3815
+ self,
3816
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3817
+ '''Attribute DiskReplicaPairName: The name of the asynchronous replication relationship.'''
3818
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrDiskReplicaPairName"))
3819
+
3820
+ @builtins.property
3821
+ @jsii.member(jsii_name="attrPaymentType")
3822
+ def attr_payment_type(
3823
+ self,
3824
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3825
+ '''Attribute PaymentType: The payment type of the resource.'''
3826
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrPaymentType"))
3827
+
3828
+ @builtins.property
3829
+ @jsii.member(jsii_name="attrReplicaPairId")
3830
+ def attr_replica_pair_id(
3831
+ self,
3832
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3833
+ '''Attribute ReplicaPairId: The ID of the disk replica pair.'''
3834
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrReplicaPairId"))
3835
+
3836
+ @builtins.property
3837
+ @jsii.member(jsii_name="attrResourceGroupId")
3838
+ def attr_resource_group_id(
3839
+ self,
3840
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3841
+ '''Attribute ResourceGroupId: The ID of the resource group.'''
3842
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrResourceGroupId"))
3843
+
3844
+ @builtins.property
3845
+ @jsii.member(jsii_name="attrRpo")
3846
+ def attr_rpo(
3847
+ self,
3848
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3849
+ '''Attribute RPO: The RPO value set by the consistency group in seconds.'''
3850
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrRpo"))
3851
+
3852
+ @builtins.property
3853
+ @jsii.member(jsii_name="attrSourceZoneId")
3854
+ def attr_source_zone_id(
3855
+ self,
3856
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3857
+ '''Attribute SourceZoneId: The ID of the zone to which the production site belongs.'''
3858
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrSourceZoneId"))
3859
+
3860
+ @builtins.property
3861
+ @jsii.member(jsii_name="attrTags")
3862
+ def attr_tags(
3863
+ self,
3864
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3865
+ '''Attribute Tags: The tags of the disk replica pair.'''
3866
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrTags"))
3867
+
3868
+ @builtins.property
3869
+ @jsii.member(jsii_name="props")
3870
+ def props(self) -> DiskReplicaPairProps:
3871
+ return typing.cast(DiskReplicaPairProps, jsii.get(self, "props"))
3872
+
3873
+ @builtins.property
3874
+ @jsii.member(jsii_name="enableResourcePropertyConstraint")
3875
+ def _enable_resource_property_constraint(self) -> builtins.bool:
3876
+ return typing.cast(builtins.bool, jsii.get(self, "enableResourcePropertyConstraint"))
3877
+
3878
+ @_enable_resource_property_constraint.setter
3879
+ def _enable_resource_property_constraint(self, value: builtins.bool) -> None:
3880
+ if __debug__:
3881
+ type_hints = typing.get_type_hints(_typecheckingstub__97d4568fd59ac296008962ed037647eb8afb3b7b25d2f56be8ab6383d672d659)
3882
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3883
+ jsii.set(self, "enableResourcePropertyConstraint", value)
3884
+
3885
+ @builtins.property
3886
+ @jsii.member(jsii_name="id")
3887
+ def _id(self) -> builtins.str:
3888
+ return typing.cast(builtins.str, jsii.get(self, "id"))
3889
+
3890
+ @_id.setter
3891
+ def _id(self, value: builtins.str) -> None:
3892
+ if __debug__:
3893
+ type_hints = typing.get_type_hints(_typecheckingstub__b48ef03a42b90455a2535dd7845a92a1fbff4512c7dce85019ead5a1517beb94)
3894
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3895
+ jsii.set(self, "id", value)
3896
+
3897
+ @builtins.property
3898
+ @jsii.member(jsii_name="scope")
3899
+ def _scope(self) -> _ros_cdk_core_7adfd82f.Construct:
3900
+ return typing.cast(_ros_cdk_core_7adfd82f.Construct, jsii.get(self, "scope"))
3901
+
3902
+ @_scope.setter
3903
+ def _scope(self, value: _ros_cdk_core_7adfd82f.Construct) -> None:
3904
+ if __debug__:
3905
+ type_hints = typing.get_type_hints(_typecheckingstub__ef79c6e8a7cf07c3c1002fc80beeaea7df87dc2be435c40c10b22bb4638b27d5)
3906
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3907
+ jsii.set(self, "scope", value)
3908
+
3909
+
3910
+ @jsii.implements(IDiskReplicaPairAddition)
3911
+ class DiskReplicaPairAddition(
3912
+ _ros_cdk_core_7adfd82f.Resource,
3913
+ metaclass=jsii.JSIIMeta,
3914
+ jsii_type="@alicloud/ros-cdk-ebs.DiskReplicaPairAddition",
3915
+ ):
3916
+ '''This class encapsulates and extends the ROS resource type ``ALIYUN::EBS::DiskReplicaPairAddition``, which is used to add a replication pair to a replication pair-consistent group.
3917
+
3918
+ :Note:
3919
+
3920
+ This class may have some new functions to facilitate development, so it is recommended to use this class instead of ``RosDiskReplicaPairAddition``for a more convenient development experience.
3921
+ See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ebs-diskreplicapairaddition
3922
+ '''
3923
+
3924
+ def __init__(
3925
+ self,
3926
+ scope: _ros_cdk_core_7adfd82f.Construct,
3927
+ id: builtins.str,
3928
+ props: typing.Union[DiskReplicaPairAdditionProps, typing.Dict[builtins.str, typing.Any]],
3929
+ enable_resource_property_constraint: typing.Optional[builtins.bool] = None,
3930
+ ) -> None:
3931
+ '''Param scope - scope in which this resource is defined Param id - scoped id of the resource Param props - resource properties.
3932
+
3933
+ :param scope: -
3934
+ :param id: -
3935
+ :param props: -
3936
+ :param enable_resource_property_constraint: -
3937
+ '''
3938
+ if __debug__:
3939
+ type_hints = typing.get_type_hints(_typecheckingstub__b12b85f30dde70cead4122ef554c8021df555676c3cd54e7738e8ffd651d53ad)
3940
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3941
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3942
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3943
+ check_type(argname="argument enable_resource_property_constraint", value=enable_resource_property_constraint, expected_type=type_hints["enable_resource_property_constraint"])
3944
+ jsii.create(self.__class__, self, [scope, id, props, enable_resource_property_constraint])
3945
+
3946
+ @builtins.property
3947
+ @jsii.member(jsii_name="attrReplicaGroupId")
3948
+ def attr_replica_group_id(
3949
+ self,
3950
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3951
+ '''Attribute ReplicaGroupId: The ID of the replication pair-consistent group.'''
3952
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrReplicaGroupId"))
3953
+
3954
+ @builtins.property
3955
+ @jsii.member(jsii_name="attrReplicaPairId")
3956
+ def attr_replica_pair_id(
3957
+ self,
3958
+ ) -> typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]:
3959
+ '''Attribute ReplicaPairId: The ID of the replication pair.'''
3960
+ return typing.cast(typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable], jsii.get(self, "attrReplicaPairId"))
3961
+
3962
+ @builtins.property
3963
+ @jsii.member(jsii_name="props")
3964
+ def props(self) -> DiskReplicaPairAdditionProps:
3965
+ return typing.cast(DiskReplicaPairAdditionProps, jsii.get(self, "props"))
3966
+
3967
+ @builtins.property
3968
+ @jsii.member(jsii_name="enableResourcePropertyConstraint")
3969
+ def _enable_resource_property_constraint(self) -> builtins.bool:
3970
+ return typing.cast(builtins.bool, jsii.get(self, "enableResourcePropertyConstraint"))
3971
+
3972
+ @_enable_resource_property_constraint.setter
3973
+ def _enable_resource_property_constraint(self, value: builtins.bool) -> None:
3974
+ if __debug__:
3975
+ type_hints = typing.get_type_hints(_typecheckingstub__e690ed761803cc2435f6275a16dd8fcffd49d0a4f286fd67c11170e2498b8f11)
3976
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3977
+ jsii.set(self, "enableResourcePropertyConstraint", value)
3978
+
3979
+ @builtins.property
3980
+ @jsii.member(jsii_name="id")
3981
+ def _id(self) -> builtins.str:
3982
+ return typing.cast(builtins.str, jsii.get(self, "id"))
3983
+
3984
+ @_id.setter
3985
+ def _id(self, value: builtins.str) -> None:
3986
+ if __debug__:
3987
+ type_hints = typing.get_type_hints(_typecheckingstub__80c7355c7d701d10dce9668569ff404c03af3e88a4249b1a675c7b67286e7ea9)
3988
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3989
+ jsii.set(self, "id", value)
3990
+
3991
+ @builtins.property
3992
+ @jsii.member(jsii_name="scope")
3993
+ def _scope(self) -> _ros_cdk_core_7adfd82f.Construct:
3994
+ return typing.cast(_ros_cdk_core_7adfd82f.Construct, jsii.get(self, "scope"))
3995
+
3996
+ @_scope.setter
3997
+ def _scope(self, value: _ros_cdk_core_7adfd82f.Construct) -> None:
3998
+ if __debug__:
3999
+ type_hints = typing.get_type_hints(_typecheckingstub__bc2fcd1e466ec5d32df464b4528459a61d563b593f09542c04ed75f1a57f53e5)
4000
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4001
+ jsii.set(self, "scope", value)
4002
+
4003
+
4004
+ __all__ = [
4005
+ "DedicatedBlockStorageCluster",
4006
+ "DedicatedBlockStorageClusterProps",
4007
+ "DiskReplicaGroup",
4008
+ "DiskReplicaGroupProps",
4009
+ "DiskReplicaPair",
4010
+ "DiskReplicaPairAddition",
4011
+ "DiskReplicaPairAdditionProps",
4012
+ "DiskReplicaPairProps",
4013
+ "IDedicatedBlockStorageCluster",
4014
+ "IDiskReplicaGroup",
4015
+ "IDiskReplicaPair",
4016
+ "IDiskReplicaPairAddition",
4017
+ "RosDedicatedBlockStorageCluster",
4018
+ "RosDedicatedBlockStorageClusterProps",
4019
+ "RosDiskReplicaGroup",
4020
+ "RosDiskReplicaGroupProps",
4021
+ "RosDiskReplicaPair",
4022
+ "RosDiskReplicaPairAddition",
4023
+ "RosDiskReplicaPairAdditionProps",
4024
+ "RosDiskReplicaPairProps",
4025
+ "datasource",
4026
+ ]
4027
+
4028
+ publication.publish()
4029
+
4030
+ # Loading modules to ensure their types are registered with the jsii runtime library
4031
+ from . import datasource
4032
+
4033
+ def _typecheckingstub__02f1d81430aa8571004d6cd0b421c3c77cc30bcd81d954cf6e62d08c0d3c747e(
4034
+ *,
4035
+ azone: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4036
+ capacity: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
4037
+ dbsc_name: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4038
+ period: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
4039
+ period_unit: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4040
+ type: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4041
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4042
+ tag: typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.Sequence[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.Union[_ros_cdk_core_7adfd82f.RosTag, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4043
+ ) -> None:
4044
+ """Type checking stubs"""
4045
+ pass
4046
+
4047
+ def _typecheckingstub__a76c7ab106e58459e7cab0e86d12eb2d444eea35ded90de472201ef6a1c785f7(
4048
+ *,
4049
+ destination_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4050
+ destination_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4051
+ source_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4052
+ source_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4053
+ description: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4054
+ disk_replica_group_name: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4055
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4056
+ rpo: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4057
+ tags: typing.Optional[typing.Sequence[typing.Union[RosDiskReplicaGroup.TagsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4058
+ ) -> None:
4059
+ """Type checking stubs"""
4060
+ pass
4061
+
4062
+ def _typecheckingstub__c7c595b42f7ddb5c4951f246045ce03e549757953c893d2e71be536c09cfd7b7(
4063
+ *,
4064
+ replica_group_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4065
+ replica_pair_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4066
+ ) -> None:
4067
+ """Type checking stubs"""
4068
+ pass
4069
+
4070
+ def _typecheckingstub__39be8219284ab11de1631b982a3fa1e87aa7f98fbb66156dc0245e9fc8479787(
4071
+ *,
4072
+ destination_disk_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4073
+ destination_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4074
+ destination_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4075
+ disk_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4076
+ source_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4077
+ bandwidth: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4078
+ description: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4079
+ disk_replica_pair_name: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4080
+ payment_type: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4081
+ period: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4082
+ period_unit: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4083
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4084
+ rpo: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4085
+ tags: typing.Optional[typing.Sequence[typing.Union[RosDiskReplicaPair.TagsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4086
+ ) -> None:
4087
+ """Type checking stubs"""
4088
+ pass
4089
+
4090
+ def _typecheckingstub__4766a873d4b49d198c8d085c87ac7daec5b8c5aa66fb98f646547880e68445d6(
4091
+ scope: _ros_cdk_core_7adfd82f.Construct,
4092
+ id: builtins.str,
4093
+ props: typing.Union[RosDedicatedBlockStorageClusterProps, typing.Dict[builtins.str, typing.Any]],
4094
+ enable_resource_property_constraint: builtins.bool,
4095
+ ) -> None:
4096
+ """Type checking stubs"""
4097
+ pass
4098
+
4099
+ def _typecheckingstub__08bab8f25b2f11210b63e6d55de12a4c73e78c1ccab35b2340f2f37d27252758(
4100
+ props: typing.Mapping[builtins.str, typing.Any],
4101
+ ) -> None:
4102
+ """Type checking stubs"""
4103
+ pass
4104
+
4105
+ def _typecheckingstub__be0466ca1a1735224856550831b47c6dd11139c1274f9aad4d0c0f338f8bd9b2(
4106
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4107
+ ) -> None:
4108
+ """Type checking stubs"""
4109
+ pass
4110
+
4111
+ def _typecheckingstub__19f3a3d9ecd4823c1f44048526348eb7029f9eaae6ff806bfaa672c9220b623f(
4112
+ value: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
4113
+ ) -> None:
4114
+ """Type checking stubs"""
4115
+ pass
4116
+
4117
+ def _typecheckingstub__eaf1196998b59a4aa4921200c760525abece6fdaa899f269ee39307d85a28be1(
4118
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4119
+ ) -> None:
4120
+ """Type checking stubs"""
4121
+ pass
4122
+
4123
+ def _typecheckingstub__cb034df0d987ab06ff165225f17fe31a6d7460379397591e3a08c448134a32d7(
4124
+ value: builtins.bool,
4125
+ ) -> None:
4126
+ """Type checking stubs"""
4127
+ pass
4128
+
4129
+ def _typecheckingstub__f3a6e631cbef6ce37030abeab3e83a41c8358bc7f6cff61a0b8d51a66bda5abf(
4130
+ value: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
4131
+ ) -> None:
4132
+ """Type checking stubs"""
4133
+ pass
4134
+
4135
+ def _typecheckingstub__66cbc12326f3d1391e59951cd6514de86d480868a324e2712f9fb38a72e2e9ca(
4136
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4137
+ ) -> None:
4138
+ """Type checking stubs"""
4139
+ pass
4140
+
4141
+ def _typecheckingstub__13e0a7370c3d55b5dc879fd485a92169c0cd381e15af34a4e2507f0a663219f8(
4142
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4143
+ ) -> None:
4144
+ """Type checking stubs"""
4145
+ pass
4146
+
4147
+ def _typecheckingstub__73d2ea971948ee68fa5befdf76243980449fceaa7a982d15539ae4b78d600e7d(
4148
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
4149
+ ) -> None:
4150
+ """Type checking stubs"""
4151
+ pass
4152
+
4153
+ def _typecheckingstub__1ecc8301b5c3783d83af0d2c11c310dab0b5ddbb0ff9a7e2e073d10b39d62d89(
4154
+ value: typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.List[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, _ros_cdk_core_7adfd82f.RosTag]]]],
4155
+ ) -> None:
4156
+ """Type checking stubs"""
4157
+ pass
4158
+
4159
+ def _typecheckingstub__0002bd81b5072ad3aa6c65adb0ac7f3063778a593fb5054ee99dcd6238163963(
4160
+ *,
4161
+ key: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4162
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4163
+ ) -> None:
4164
+ """Type checking stubs"""
4165
+ pass
4166
+
4167
+ def _typecheckingstub__c386dd4833344588e973364a81e9f5a797950e0e0fb1b0d164614a3d9a3326d1(
4168
+ *,
4169
+ azone: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4170
+ capacity: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
4171
+ dbsc_name: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4172
+ period: typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable],
4173
+ period_unit: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4174
+ type: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4175
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4176
+ tag: typing.Optional[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.Sequence[typing.Union[_ros_cdk_core_7adfd82f.IResolvable, typing.Union[_ros_cdk_core_7adfd82f.RosTag, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4177
+ ) -> None:
4178
+ """Type checking stubs"""
4179
+ pass
4180
+
4181
+ def _typecheckingstub__912b3745e3aeec543703d1a3d5a141e71cce6037d213426d6e8f024834c1f7d4(
4182
+ scope: _ros_cdk_core_7adfd82f.Construct,
4183
+ id: builtins.str,
4184
+ props: typing.Union[RosDiskReplicaGroupProps, typing.Dict[builtins.str, typing.Any]],
4185
+ enable_resource_property_constraint: builtins.bool,
4186
+ ) -> None:
4187
+ """Type checking stubs"""
4188
+ pass
4189
+
4190
+ def _typecheckingstub__ce62c1f5d97a9af9c438116556ac71cdcdbaadabca5d7cb296ae8dc419835480(
4191
+ props: typing.Mapping[builtins.str, typing.Any],
4192
+ ) -> None:
4193
+ """Type checking stubs"""
4194
+ pass
4195
+
4196
+ def _typecheckingstub__357c17e70a2f380319812310bb2bc2c344e1467a373142d5def56c1f3615eb40(
4197
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4198
+ ) -> None:
4199
+ """Type checking stubs"""
4200
+ pass
4201
+
4202
+ def _typecheckingstub__07da349becb759df33de7a1a8eac9ca7f0a099de5e2226659f10f473db390c99(
4203
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4204
+ ) -> None:
4205
+ """Type checking stubs"""
4206
+ pass
4207
+
4208
+ def _typecheckingstub__f270eabd2a12d827c04ba70b419050e97dff708a0d86cdb20102b6565bf15bce(
4209
+ value: builtins.bool,
4210
+ ) -> None:
4211
+ """Type checking stubs"""
4212
+ pass
4213
+
4214
+ def _typecheckingstub__9f8e615bf788f5693b5b389a8d92ef8ddd83f30b9926132c46ab9e3dee896b86(
4215
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4216
+ ) -> None:
4217
+ """Type checking stubs"""
4218
+ pass
4219
+
4220
+ def _typecheckingstub__b1cb858693cc664416e16c794ffdc1ed38daabf6826f6125351fc3ffe20b7b25(
4221
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4222
+ ) -> None:
4223
+ """Type checking stubs"""
4224
+ pass
4225
+
4226
+ def _typecheckingstub__d073c720e9e5211c04a12e56db2507c0a34df0f529678acf7a0d43fe9196f57f(
4227
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
4228
+ ) -> None:
4229
+ """Type checking stubs"""
4230
+ pass
4231
+
4232
+ def _typecheckingstub__981ffdae005e796278423294bbc73f34c48e0ada0dda8aa670c0facde6a83941(
4233
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
4234
+ ) -> None:
4235
+ """Type checking stubs"""
4236
+ pass
4237
+
4238
+ def _typecheckingstub__bc18408423641b06b23736f2d4d85dd09713097e186d98e03c7d19309330bb0c(
4239
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
4240
+ ) -> None:
4241
+ """Type checking stubs"""
4242
+ pass
4243
+
4244
+ def _typecheckingstub__2acb42993bb249d91792a4a573591369c162b6cff46b45266efdc45a7b661a88(
4245
+ value: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]],
4246
+ ) -> None:
4247
+ """Type checking stubs"""
4248
+ pass
4249
+
4250
+ def _typecheckingstub__69393e8b515b488c6894d2d4e2ce61c7cf1bb697ae20bcc84bfd257480435619(
4251
+ value: typing.Optional[typing.List[RosDiskReplicaGroup.TagsProperty]],
4252
+ ) -> None:
4253
+ """Type checking stubs"""
4254
+ pass
4255
+
4256
+ def _typecheckingstub__ca04432dc4090fa8fa4216e62132a5a772b258302113818c429586550bdd8f36(
4257
+ *,
4258
+ key: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4259
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4260
+ ) -> None:
4261
+ """Type checking stubs"""
4262
+ pass
4263
+
4264
+ def _typecheckingstub__808b37ee44d64a0d5df49b6e5186173368c809c68f60daa2b3e9c2720fabb8f2(
4265
+ *,
4266
+ destination_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4267
+ destination_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4268
+ source_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4269
+ source_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4270
+ description: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4271
+ disk_replica_group_name: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4272
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4273
+ rpo: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4274
+ tags: typing.Optional[typing.Sequence[typing.Union[RosDiskReplicaGroup.TagsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4275
+ ) -> None:
4276
+ """Type checking stubs"""
4277
+ pass
4278
+
4279
+ def _typecheckingstub__57049d20466a1101d6a5d0133019b594aabad103c0cb5c0424dfb8f590742d06(
4280
+ scope: _ros_cdk_core_7adfd82f.Construct,
4281
+ id: builtins.str,
4282
+ props: typing.Union[RosDiskReplicaPairProps, typing.Dict[builtins.str, typing.Any]],
4283
+ enable_resource_property_constraint: builtins.bool,
4284
+ ) -> None:
4285
+ """Type checking stubs"""
4286
+ pass
4287
+
4288
+ def _typecheckingstub__3ab236548c17ed5bade3387eb2ee8b2840326c34517f083600f5924dd5b14fc4(
4289
+ props: typing.Mapping[builtins.str, typing.Any],
4290
+ ) -> None:
4291
+ """Type checking stubs"""
4292
+ pass
4293
+
4294
+ def _typecheckingstub__39670e65c86b9a53529d5506cf1daf390a2f75188d10126fa1d5e7525345a8bf(
4295
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4296
+ ) -> None:
4297
+ """Type checking stubs"""
4298
+ pass
4299
+
4300
+ def _typecheckingstub__331199deffd1a1f3cb42aa2a927a9fc2c113e42a21383911ab69e76bbb7a99d7(
4301
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4302
+ ) -> None:
4303
+ """Type checking stubs"""
4304
+ pass
4305
+
4306
+ def _typecheckingstub__daf92f1d719029f31b345b3a5284c231c4d2bd239285085e43d0354807e4479b(
4307
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4308
+ ) -> None:
4309
+ """Type checking stubs"""
4310
+ pass
4311
+
4312
+ def _typecheckingstub__8b41d119ca8272739e86f38ac8e43b016a69e62e279af913ba08c0aed707847f(
4313
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4314
+ ) -> None:
4315
+ """Type checking stubs"""
4316
+ pass
4317
+
4318
+ def _typecheckingstub__3dad9feb6f08ccbacf032be6535cce8fbab4844e6fb244e1baee5fbe28d34870(
4319
+ value: builtins.bool,
4320
+ ) -> None:
4321
+ """Type checking stubs"""
4322
+ pass
4323
+
4324
+ def _typecheckingstub__51892e06f6dc475436d94129b7f06e25ecda6ce4be2fa75b712a211647fa6fb3(
4325
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4326
+ ) -> None:
4327
+ """Type checking stubs"""
4328
+ pass
4329
+
4330
+ def _typecheckingstub__e8193dc446a06c0c60dc59e99d3ec8c105746068f1e38dbc0fb92767fd778ad7(
4331
+ value: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]],
4332
+ ) -> None:
4333
+ """Type checking stubs"""
4334
+ pass
4335
+
4336
+ def _typecheckingstub__68fb3faf3fe5a4c627d4c0ce10185f169d9fa9569e1cdf1ec55782262aa7b3bd(
4337
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
4338
+ ) -> None:
4339
+ """Type checking stubs"""
4340
+ pass
4341
+
4342
+ def _typecheckingstub__fbf1aff00ecb43f37f8f2472bd7b9fa772d8ba828b1522d100dc79814087c689(
4343
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
4344
+ ) -> None:
4345
+ """Type checking stubs"""
4346
+ pass
4347
+
4348
+ def _typecheckingstub__330d6b2070e1ac2af41f0653043b980fddd6e7c546343a285aafea2c4a03c44a(
4349
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
4350
+ ) -> None:
4351
+ """Type checking stubs"""
4352
+ pass
4353
+
4354
+ def _typecheckingstub__2733531d06d6135937de18bd3b1326fb9043a9f40185d5ec29dff56e5b76c3f3(
4355
+ value: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]],
4356
+ ) -> None:
4357
+ """Type checking stubs"""
4358
+ pass
4359
+
4360
+ def _typecheckingstub__b937659ab4a90c9c3665316ffbd134cfcf089fd62a27944ab5abb1c899896866(
4361
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
4362
+ ) -> None:
4363
+ """Type checking stubs"""
4364
+ pass
4365
+
4366
+ def _typecheckingstub__5f782d9b4cea4396c850a8b0df7ecaf7b70fce736a4505a9865fe7095cd9bf09(
4367
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]],
4368
+ ) -> None:
4369
+ """Type checking stubs"""
4370
+ pass
4371
+
4372
+ def _typecheckingstub__d70283f5874e9f6eed158e951ec37aa3fb80f50fec02aeab3ea44fe19ef7831e(
4373
+ value: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]],
4374
+ ) -> None:
4375
+ """Type checking stubs"""
4376
+ pass
4377
+
4378
+ def _typecheckingstub__5ab5d22488bea6ace386f7bf3b39a8717e6ebb70dbafaf7ffadd602a18cdf382(
4379
+ value: typing.Optional[typing.List[RosDiskReplicaPair.TagsProperty]],
4380
+ ) -> None:
4381
+ """Type checking stubs"""
4382
+ pass
4383
+
4384
+ def _typecheckingstub__987218ac7078cde1798fc7f823cad2180fba1a57c44bf284b231ddc602d4fdad(
4385
+ *,
4386
+ key: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4387
+ value: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4388
+ ) -> None:
4389
+ """Type checking stubs"""
4390
+ pass
4391
+
4392
+ def _typecheckingstub__5365769ec0e29b68fffa8bca5629d647de8890969c53f99fa97d3cad7dece03f(
4393
+ scope: _ros_cdk_core_7adfd82f.Construct,
4394
+ id: builtins.str,
4395
+ props: typing.Union[RosDiskReplicaPairAdditionProps, typing.Dict[builtins.str, typing.Any]],
4396
+ enable_resource_property_constraint: builtins.bool,
4397
+ ) -> None:
4398
+ """Type checking stubs"""
4399
+ pass
4400
+
4401
+ def _typecheckingstub__f6980ccfe50fcd81ac0b674aa08ceb01f5e5820371c94b4a9fb54f344d636d4a(
4402
+ props: typing.Mapping[builtins.str, typing.Any],
4403
+ ) -> None:
4404
+ """Type checking stubs"""
4405
+ pass
4406
+
4407
+ def _typecheckingstub__dd6e504b714edc70ea1ba7f900e22fad6804451e4d057b9e38e01a04d6a13499(
4408
+ value: builtins.bool,
4409
+ ) -> None:
4410
+ """Type checking stubs"""
4411
+ pass
4412
+
4413
+ def _typecheckingstub__8ed23c639425fee907d096cba38afa2b408cb9bb8f06083da0a26bffdaa7c83d(
4414
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4415
+ ) -> None:
4416
+ """Type checking stubs"""
4417
+ pass
4418
+
4419
+ def _typecheckingstub__c114127e312a46f1f811b666fa89a788caee6adf564a514085356ca2a4e870f7(
4420
+ value: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4421
+ ) -> None:
4422
+ """Type checking stubs"""
4423
+ pass
4424
+
4425
+ def _typecheckingstub__b29659ceae376d07b267814e999b8a54172f277f358dbac7dc6cef341b945f1c(
4426
+ *,
4427
+ replica_group_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4428
+ replica_pair_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4429
+ ) -> None:
4430
+ """Type checking stubs"""
4431
+ pass
4432
+
4433
+ def _typecheckingstub__0026a1160111762188c14f86d6ce0609d60afa3adcaba2afd19109d2dc4c3021(
4434
+ *,
4435
+ destination_disk_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4436
+ destination_region_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4437
+ destination_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4438
+ disk_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4439
+ source_zone_id: typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable],
4440
+ bandwidth: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4441
+ description: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4442
+ disk_replica_pair_name: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4443
+ payment_type: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4444
+ period: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4445
+ period_unit: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4446
+ resource_group_id: typing.Optional[typing.Union[builtins.str, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4447
+ rpo: typing.Optional[typing.Union[jsii.Number, _ros_cdk_core_7adfd82f.IResolvable]] = None,
4448
+ tags: typing.Optional[typing.Sequence[typing.Union[RosDiskReplicaPair.TagsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4449
+ ) -> None:
4450
+ """Type checking stubs"""
4451
+ pass
4452
+
4453
+ def _typecheckingstub__c87701359fee1467ec469ed59533912f5145975339a77e2fec77358150c61882(
4454
+ scope: _ros_cdk_core_7adfd82f.Construct,
4455
+ id: builtins.str,
4456
+ props: typing.Union[DedicatedBlockStorageClusterProps, typing.Dict[builtins.str, typing.Any]],
4457
+ enable_resource_property_constraint: typing.Optional[builtins.bool] = None,
4458
+ ) -> None:
4459
+ """Type checking stubs"""
4460
+ pass
4461
+
4462
+ def _typecheckingstub__9f8d10e2e1e8c3a049201bc9354f1a14955e1de811f1e8750034cb5ebdb4c122(
4463
+ value: builtins.bool,
4464
+ ) -> None:
4465
+ """Type checking stubs"""
4466
+ pass
4467
+
4468
+ def _typecheckingstub__1b617b58f755f220d1a4b19bd7afd7498115e73530c26985cd3df8deb1d516f6(
4469
+ value: builtins.str,
4470
+ ) -> None:
4471
+ """Type checking stubs"""
4472
+ pass
4473
+
4474
+ def _typecheckingstub__1172a8f79479c593e9af8521e3dac65c4b0a2b1cd3bc90744e249bab1d5a7911(
4475
+ value: _ros_cdk_core_7adfd82f.Construct,
4476
+ ) -> None:
4477
+ """Type checking stubs"""
4478
+ pass
4479
+
4480
+ def _typecheckingstub__19af0b2c0de14a374e83aacf3d743929cdcb5bcd290aa9441b453b6014efd683(
4481
+ scope: _ros_cdk_core_7adfd82f.Construct,
4482
+ id: builtins.str,
4483
+ props: typing.Union[DiskReplicaGroupProps, typing.Dict[builtins.str, typing.Any]],
4484
+ enable_resource_property_constraint: typing.Optional[builtins.bool] = None,
4485
+ ) -> None:
4486
+ """Type checking stubs"""
4487
+ pass
4488
+
4489
+ def _typecheckingstub__63c7819542076b80b16e8fe5107b57f05a185d041f1966bd7a71e1032a88e141(
4490
+ value: builtins.bool,
4491
+ ) -> None:
4492
+ """Type checking stubs"""
4493
+ pass
4494
+
4495
+ def _typecheckingstub__0927de4d3ace1072dd6c339d0b41096c56ca3444c377f22e68fc2285687167b1(
4496
+ value: builtins.str,
4497
+ ) -> None:
4498
+ """Type checking stubs"""
4499
+ pass
4500
+
4501
+ def _typecheckingstub__1be05b9fe281a1cb6296e25fe5d2e946e0e6ecf9970148b5a5c9e1ad27a8996d(
4502
+ value: _ros_cdk_core_7adfd82f.Construct,
4503
+ ) -> None:
4504
+ """Type checking stubs"""
4505
+ pass
4506
+
4507
+ def _typecheckingstub__3ecdce92b0a832fb86e7ac308f45569851b720f75a305bfb6560c52b4b789133(
4508
+ scope: _ros_cdk_core_7adfd82f.Construct,
4509
+ id: builtins.str,
4510
+ props: typing.Union[DiskReplicaPairProps, typing.Dict[builtins.str, typing.Any]],
4511
+ enable_resource_property_constraint: typing.Optional[builtins.bool] = None,
4512
+ ) -> None:
4513
+ """Type checking stubs"""
4514
+ pass
4515
+
4516
+ def _typecheckingstub__97d4568fd59ac296008962ed037647eb8afb3b7b25d2f56be8ab6383d672d659(
4517
+ value: builtins.bool,
4518
+ ) -> None:
4519
+ """Type checking stubs"""
4520
+ pass
4521
+
4522
+ def _typecheckingstub__b48ef03a42b90455a2535dd7845a92a1fbff4512c7dce85019ead5a1517beb94(
4523
+ value: builtins.str,
4524
+ ) -> None:
4525
+ """Type checking stubs"""
4526
+ pass
4527
+
4528
+ def _typecheckingstub__ef79c6e8a7cf07c3c1002fc80beeaea7df87dc2be435c40c10b22bb4638b27d5(
4529
+ value: _ros_cdk_core_7adfd82f.Construct,
4530
+ ) -> None:
4531
+ """Type checking stubs"""
4532
+ pass
4533
+
4534
+ def _typecheckingstub__b12b85f30dde70cead4122ef554c8021df555676c3cd54e7738e8ffd651d53ad(
4535
+ scope: _ros_cdk_core_7adfd82f.Construct,
4536
+ id: builtins.str,
4537
+ props: typing.Union[DiskReplicaPairAdditionProps, typing.Dict[builtins.str, typing.Any]],
4538
+ enable_resource_property_constraint: typing.Optional[builtins.bool] = None,
4539
+ ) -> None:
4540
+ """Type checking stubs"""
4541
+ pass
4542
+
4543
+ def _typecheckingstub__e690ed761803cc2435f6275a16dd8fcffd49d0a4f286fd67c11170e2498b8f11(
4544
+ value: builtins.bool,
4545
+ ) -> None:
4546
+ """Type checking stubs"""
4547
+ pass
4548
+
4549
+ def _typecheckingstub__80c7355c7d701d10dce9668569ff404c03af3e88a4249b1a675c7b67286e7ea9(
4550
+ value: builtins.str,
4551
+ ) -> None:
4552
+ """Type checking stubs"""
4553
+ pass
4554
+
4555
+ def _typecheckingstub__bc2fcd1e466ec5d32df464b4528459a61d563b593f09542c04ed75f1a57f53e5(
4556
+ value: _ros_cdk_core_7adfd82f.Construct,
4557
+ ) -> None:
4558
+ """Type checking stubs"""
4559
+ pass