aws-sdk-datazone 1.87.0 → 1.88.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-datazone/client.rb +26 -3
- data/lib/aws-sdk-datazone/client_api.rb +15 -0
- data/lib/aws-sdk-datazone/types.rb +73 -4
- data/lib/aws-sdk-datazone.rb +1 -1
- data/sig/client.rbs +4 -1
- data/sig/types.rbs +14 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cabbf6cb6e00774ea94599ab094b014953128f658ff3654247ce1b34b794ae9d
|
|
4
|
+
data.tar.gz: 561d1df765c9a33671f248b1579a05cee9a861bea90d748f120207bb4459d273
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 683266a958bb90f0216223849749b54e4dec588d9dcf055253636e52c4e4e9107b6bb36c671e5c715cd49e0f48b06285aa0663d509d8a37e7c6a92aec3de6edc
|
|
7
|
+
data.tar.gz: eb5b117d1ab4f7cc929f8977df113b68ce34456d4eec4eefdd3c753e94d90fb1d09eab211705e21be64ccde563c3af16f15a73b1d2e87ceec9f77175a75fac0f
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
Unreleased Changes
|
|
2
2
|
------------------
|
|
3
3
|
|
|
4
|
+
1.88.0 (2026-08-27)
|
|
5
|
+
------------------
|
|
6
|
+
|
|
7
|
+
* Feature - Add cascadeDelete to DeleteDomain. When specified, DataZone recursively deletes all projects, environments, subscriptions, and their underlying AWS resources before removing the domain. Deletion progress is reported via deleteProgress and resource failures via failureReasons on GetDomain.
|
|
8
|
+
|
|
4
9
|
1.87.0 (2026-08-11)
|
|
5
10
|
------------------
|
|
6
11
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.88.0
|
|
@@ -5200,8 +5200,24 @@ module Aws::DataZone
|
|
|
5200
5200
|
# not need to pass this option.**
|
|
5201
5201
|
#
|
|
5202
5202
|
# @option params [Boolean] :skip_deletion_check
|
|
5203
|
-
# Specifies
|
|
5204
|
-
#
|
|
5203
|
+
# Specifies whether to skip the check that prevents deletion of a domain
|
|
5204
|
+
# that still contains resources. When you use this parameter, Amazon
|
|
5205
|
+
# DataZone deletes the domain but might not remove its associated
|
|
5206
|
+
# resources, which can leave orphaned resources behind. To delete a
|
|
5207
|
+
# domain and fully clean up its associated resources, use
|
|
5208
|
+
# `cascadeDelete` instead. You can't use this parameter together with
|
|
5209
|
+
# `cascadeDelete`.
|
|
5210
|
+
#
|
|
5211
|
+
# @option params [Boolean] :cascade_delete
|
|
5212
|
+
# Specifies whether to delete the domain along with all of its
|
|
5213
|
+
# associated resources. When you use this parameter, Amazon DataZone
|
|
5214
|
+
# deletes the domain and cleanly removes its associated resources
|
|
5215
|
+
# without leaving orphaned resources behind. Amazon DataZone reports
|
|
5216
|
+
# deletion progress in the `deleteProgress` field. Amazon DataZone
|
|
5217
|
+
# reports any resources that it can't delete in the `failureReasons`
|
|
5218
|
+
# field of the `GetDomain` response. You can't use this parameter
|
|
5219
|
+
# together with `skipDeletionCheck`. If you don't specify a value, the
|
|
5220
|
+
# default is `false`.
|
|
5205
5221
|
#
|
|
5206
5222
|
# @return [Types::DeleteDomainOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
|
5207
5223
|
#
|
|
@@ -5213,6 +5229,7 @@ module Aws::DataZone
|
|
|
5213
5229
|
# identifier: "DomainId", # required
|
|
5214
5230
|
# client_token: "String",
|
|
5215
5231
|
# skip_deletion_check: false,
|
|
5232
|
+
# cascade_delete: false,
|
|
5216
5233
|
# })
|
|
5217
5234
|
#
|
|
5218
5235
|
# @example Response structure
|
|
@@ -6845,6 +6862,8 @@ module Aws::DataZone
|
|
|
6845
6862
|
# * {Types::GetDomainOutput#tags #tags} => Hash<String,String>
|
|
6846
6863
|
# * {Types::GetDomainOutput#domain_version #domain_version} => String
|
|
6847
6864
|
# * {Types::GetDomainOutput#service_role #service_role} => String
|
|
6865
|
+
# * {Types::GetDomainOutput#failure_reasons #failure_reasons} => Array<Types::FailureReason>
|
|
6866
|
+
# * {Types::GetDomainOutput#delete_progress #delete_progress} => Types::DeleteProgress
|
|
6848
6867
|
#
|
|
6849
6868
|
# @example Request syntax with placeholder values
|
|
6850
6869
|
#
|
|
@@ -6872,6 +6891,10 @@ module Aws::DataZone
|
|
|
6872
6891
|
# resp.tags["TagKey"] #=> String
|
|
6873
6892
|
# resp.domain_version #=> String, one of "V1", "V2"
|
|
6874
6893
|
# resp.service_role #=> String
|
|
6894
|
+
# resp.failure_reasons #=> Array
|
|
6895
|
+
# resp.failure_reasons[0].id #=> String
|
|
6896
|
+
# resp.failure_reasons[0].message #=> String
|
|
6897
|
+
# resp.delete_progress.successfully_deleted_project_count #=> Integer
|
|
6875
6898
|
#
|
|
6876
6899
|
# @see http://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetDomain AWS API Documentation
|
|
6877
6900
|
#
|
|
@@ -16634,7 +16657,7 @@ module Aws::DataZone
|
|
|
16634
16657
|
tracer: tracer
|
|
16635
16658
|
)
|
|
16636
16659
|
context[:gem_name] = 'aws-sdk-datazone'
|
|
16637
|
-
context[:gem_version] = '1.
|
|
16660
|
+
context[:gem_version] = '1.88.0'
|
|
16638
16661
|
Seahorse::Client::Request.new(handlers, context)
|
|
16639
16662
|
end
|
|
16640
16663
|
|
|
@@ -349,6 +349,7 @@ module Aws::DataZone
|
|
|
349
349
|
DeleteListingOutput = Shapes::StructureShape.new(name: 'DeleteListingOutput')
|
|
350
350
|
DeleteNotebookInput = Shapes::StructureShape.new(name: 'DeleteNotebookInput')
|
|
351
351
|
DeleteNotebookOutput = Shapes::StructureShape.new(name: 'DeleteNotebookOutput')
|
|
352
|
+
DeleteProgress = Shapes::StructureShape.new(name: 'DeleteProgress')
|
|
352
353
|
DeleteProjectInput = Shapes::StructureShape.new(name: 'DeleteProjectInput')
|
|
353
354
|
DeleteProjectMembershipInput = Shapes::StructureShape.new(name: 'DeleteProjectMembershipInput')
|
|
354
355
|
DeleteProjectMembershipOutput = Shapes::StructureShape.new(name: 'DeleteProjectMembershipOutput')
|
|
@@ -457,7 +458,9 @@ module Aws::DataZone
|
|
|
457
458
|
ExternalIdentifier = Shapes::StringShape.new(name: 'ExternalIdentifier')
|
|
458
459
|
FailedQueryProcessingErrorMessages = Shapes::ListShape.new(name: 'FailedQueryProcessingErrorMessages')
|
|
459
460
|
FailureCause = Shapes::StructureShape.new(name: 'FailureCause')
|
|
461
|
+
FailureReason = Shapes::StructureShape.new(name: 'FailureReason')
|
|
460
462
|
FailureReasons = Shapes::ListShape.new(name: 'FailureReasons')
|
|
463
|
+
FailureReasonsList = Shapes::ListShape.new(name: 'FailureReasonsList')
|
|
461
464
|
FileFormat = Shapes::StringShape.new(name: 'FileFormat')
|
|
462
465
|
FileName = Shapes::StringShape.new(name: 'FileName')
|
|
463
466
|
Filter = Shapes::StructureShape.new(name: 'Filter')
|
|
@@ -2907,6 +2910,7 @@ module Aws::DataZone
|
|
|
2907
2910
|
DeleteDomainInput.add_member(:identifier, Shapes::ShapeRef.new(shape: DomainId, required: true, location: "uri", location_name: "identifier"))
|
|
2908
2911
|
DeleteDomainInput.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "clientToken", metadata: {"idempotencyToken" => true}))
|
|
2909
2912
|
DeleteDomainInput.add_member(:skip_deletion_check, Shapes::ShapeRef.new(shape: Boolean, location: "querystring", location_name: "skipDeletionCheck"))
|
|
2913
|
+
DeleteDomainInput.add_member(:cascade_delete, Shapes::ShapeRef.new(shape: Boolean, location: "querystring", location_name: "cascadeDelete"))
|
|
2910
2914
|
DeleteDomainInput.struct_class = Types::DeleteDomainInput
|
|
2911
2915
|
|
|
2912
2916
|
DeleteDomainOutput.add_member(:status, Shapes::ShapeRef.new(shape: DomainStatus, required: true, location_name: "status"))
|
|
@@ -2980,6 +2984,9 @@ module Aws::DataZone
|
|
|
2980
2984
|
|
|
2981
2985
|
DeleteNotebookOutput.struct_class = Types::DeleteNotebookOutput
|
|
2982
2986
|
|
|
2987
|
+
DeleteProgress.add_member(:successfully_deleted_project_count, Shapes::ShapeRef.new(shape: Integer, location_name: "successfullyDeletedProjectCount"))
|
|
2988
|
+
DeleteProgress.struct_class = Types::DeleteProgress
|
|
2989
|
+
|
|
2983
2990
|
DeleteProjectInput.add_member(:domain_identifier, Shapes::ShapeRef.new(shape: DomainId, required: true, location: "uri", location_name: "domainIdentifier"))
|
|
2984
2991
|
DeleteProjectInput.add_member(:identifier, Shapes::ShapeRef.new(shape: ProjectId, required: true, location: "uri", location_name: "identifier"))
|
|
2985
2992
|
DeleteProjectInput.add_member(:skip_deletion_check, Shapes::ShapeRef.new(shape: Boolean, location: "querystring", location_name: "skipDeletionCheck"))
|
|
@@ -3297,8 +3304,14 @@ module Aws::DataZone
|
|
|
3297
3304
|
FailureCause.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
|
|
3298
3305
|
FailureCause.struct_class = Types::FailureCause
|
|
3299
3306
|
|
|
3307
|
+
FailureReason.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "id"))
|
|
3308
|
+
FailureReason.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
|
|
3309
|
+
FailureReason.struct_class = Types::FailureReason
|
|
3310
|
+
|
|
3300
3311
|
FailureReasons.member = Shapes::ShapeRef.new(shape: ProjectDeletionError)
|
|
3301
3312
|
|
|
3313
|
+
FailureReasonsList.member = Shapes::ShapeRef.new(shape: FailureReason)
|
|
3314
|
+
|
|
3302
3315
|
Filter.add_member(:attribute, Shapes::ShapeRef.new(shape: Attribute, required: true, location_name: "attribute"))
|
|
3303
3316
|
Filter.add_member(:value, Shapes::ShapeRef.new(shape: FilterValueString, location_name: "value"))
|
|
3304
3317
|
Filter.add_member(:int_value, Shapes::ShapeRef.new(shape: Long, location_name: "intValue"))
|
|
@@ -3575,6 +3588,8 @@ module Aws::DataZone
|
|
|
3575
3588
|
GetDomainOutput.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "tags"))
|
|
3576
3589
|
GetDomainOutput.add_member(:domain_version, Shapes::ShapeRef.new(shape: DomainVersion, location_name: "domainVersion"))
|
|
3577
3590
|
GetDomainOutput.add_member(:service_role, Shapes::ShapeRef.new(shape: RoleArn, location_name: "serviceRole"))
|
|
3591
|
+
GetDomainOutput.add_member(:failure_reasons, Shapes::ShapeRef.new(shape: FailureReasonsList, location_name: "failureReasons"))
|
|
3592
|
+
GetDomainOutput.add_member(:delete_progress, Shapes::ShapeRef.new(shape: DeleteProgress, location_name: "deleteProgress"))
|
|
3578
3593
|
GetDomainOutput.struct_class = Types::GetDomainOutput
|
|
3579
3594
|
|
|
3580
3595
|
GetDomainUnitInput.add_member(:domain_identifier, Shapes::ShapeRef.new(shape: DomainId, required: true, location: "uri", location_name: "domainIdentifier"))
|
|
@@ -7105,8 +7105,25 @@ module Aws::DataZone
|
|
|
7105
7105
|
# @return [String]
|
|
7106
7106
|
#
|
|
7107
7107
|
# @!attribute [rw] skip_deletion_check
|
|
7108
|
-
# Specifies
|
|
7109
|
-
# domain.
|
|
7108
|
+
# Specifies whether to skip the check that prevents deletion of a
|
|
7109
|
+
# domain that still contains resources. When you use this parameter,
|
|
7110
|
+
# Amazon DataZone deletes the domain but might not remove its
|
|
7111
|
+
# associated resources, which can leave orphaned resources behind. To
|
|
7112
|
+
# delete a domain and fully clean up its associated resources, use
|
|
7113
|
+
# `cascadeDelete` instead. You can't use this parameter together with
|
|
7114
|
+
# `cascadeDelete`.
|
|
7115
|
+
# @return [Boolean]
|
|
7116
|
+
#
|
|
7117
|
+
# @!attribute [rw] cascade_delete
|
|
7118
|
+
# Specifies whether to delete the domain along with all of its
|
|
7119
|
+
# associated resources. When you use this parameter, Amazon DataZone
|
|
7120
|
+
# deletes the domain and cleanly removes its associated resources
|
|
7121
|
+
# without leaving orphaned resources behind. Amazon DataZone reports
|
|
7122
|
+
# deletion progress in the `deleteProgress` field. Amazon DataZone
|
|
7123
|
+
# reports any resources that it can't delete in the `failureReasons`
|
|
7124
|
+
# field of the `GetDomain` response. You can't use this parameter
|
|
7125
|
+
# together with `skipDeletionCheck`. If you don't specify a value,
|
|
7126
|
+
# the default is `false`.
|
|
7110
7127
|
# @return [Boolean]
|
|
7111
7128
|
#
|
|
7112
7129
|
# @see http://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteDomainInput AWS API Documentation
|
|
@@ -7114,7 +7131,8 @@ module Aws::DataZone
|
|
|
7114
7131
|
class DeleteDomainInput < Struct.new(
|
|
7115
7132
|
:identifier,
|
|
7116
7133
|
:client_token,
|
|
7117
|
-
:skip_deletion_check
|
|
7134
|
+
:skip_deletion_check,
|
|
7135
|
+
:cascade_delete)
|
|
7118
7136
|
SENSITIVE = []
|
|
7119
7137
|
include Aws::Structure
|
|
7120
7138
|
end
|
|
@@ -7399,6 +7417,24 @@ module Aws::DataZone
|
|
|
7399
7417
|
#
|
|
7400
7418
|
class DeleteNotebookOutput < Aws::EmptyStructure; end
|
|
7401
7419
|
|
|
7420
|
+
# The progress of a domain deletion, including the number of projects
|
|
7421
|
+
# that Amazon DataZone successfully deleted. Amazon DataZone returns
|
|
7422
|
+
# this structure in the response to a `GetDomain` request while a
|
|
7423
|
+
# cascade deletion is in progress.
|
|
7424
|
+
#
|
|
7425
|
+
# @!attribute [rw] successfully_deleted_project_count
|
|
7426
|
+
# The number of projects that Amazon DataZone successfully deleted
|
|
7427
|
+
# during the domain deletion.
|
|
7428
|
+
# @return [Integer]
|
|
7429
|
+
#
|
|
7430
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteProgress AWS API Documentation
|
|
7431
|
+
#
|
|
7432
|
+
class DeleteProgress < Struct.new(
|
|
7433
|
+
:successfully_deleted_project_count)
|
|
7434
|
+
SENSITIVE = []
|
|
7435
|
+
include Aws::Structure
|
|
7436
|
+
end
|
|
7437
|
+
|
|
7402
7438
|
# @!attribute [rw] domain_identifier
|
|
7403
7439
|
# The ID of the Amazon DataZone domain in which the project is
|
|
7404
7440
|
# deleted.
|
|
@@ -8702,6 +8738,27 @@ module Aws::DataZone
|
|
|
8702
8738
|
include Aws::Structure
|
|
8703
8739
|
end
|
|
8704
8740
|
|
|
8741
|
+
# The details of a resource deletion failure during a cascade deletion
|
|
8742
|
+
# of the domain.
|
|
8743
|
+
#
|
|
8744
|
+
# @!attribute [rw] id
|
|
8745
|
+
# The identifier of the resource that failed to delete.
|
|
8746
|
+
# @return [String]
|
|
8747
|
+
#
|
|
8748
|
+
# @!attribute [rw] message
|
|
8749
|
+
# The error message associated with the resource that failed to
|
|
8750
|
+
# delete.
|
|
8751
|
+
# @return [String]
|
|
8752
|
+
#
|
|
8753
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/FailureReason AWS API Documentation
|
|
8754
|
+
#
|
|
8755
|
+
class FailureReason < Struct.new(
|
|
8756
|
+
:id,
|
|
8757
|
+
:message)
|
|
8758
|
+
SENSITIVE = []
|
|
8759
|
+
include Aws::Structure
|
|
8760
|
+
end
|
|
8761
|
+
|
|
8705
8762
|
# A search filter in Amazon DataZone.
|
|
8706
8763
|
#
|
|
8707
8764
|
# @!attribute [rw] attribute
|
|
@@ -9922,6 +9979,16 @@ module Aws::DataZone
|
|
|
9922
9979
|
# The service role of the domain.
|
|
9923
9980
|
# @return [String]
|
|
9924
9981
|
#
|
|
9982
|
+
# @!attribute [rw] failure_reasons
|
|
9983
|
+
# The list of failure reasons for resources that Amazon DataZone could
|
|
9984
|
+
# not delete during a cascade deletion of the domain.
|
|
9985
|
+
# @return [Array<Types::FailureReason>]
|
|
9986
|
+
#
|
|
9987
|
+
# @!attribute [rw] delete_progress
|
|
9988
|
+
# The progress of the current domain deletion, including the number of
|
|
9989
|
+
# projects that Amazon DataZone successfully deleted.
|
|
9990
|
+
# @return [Types::DeleteProgress]
|
|
9991
|
+
#
|
|
9925
9992
|
# @see http://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetDomainOutput AWS API Documentation
|
|
9926
9993
|
#
|
|
9927
9994
|
class GetDomainOutput < Struct.new(
|
|
@@ -9939,7 +10006,9 @@ module Aws::DataZone
|
|
|
9939
10006
|
:last_updated_at,
|
|
9940
10007
|
:tags,
|
|
9941
10008
|
:domain_version,
|
|
9942
|
-
:service_role
|
|
10009
|
+
:service_role,
|
|
10010
|
+
:failure_reasons,
|
|
10011
|
+
:delete_progress)
|
|
9943
10012
|
SENSITIVE = []
|
|
9944
10013
|
include Aws::Structure
|
|
9945
10014
|
end
|
data/lib/aws-sdk-datazone.rb
CHANGED
data/sig/client.rbs
CHANGED
|
@@ -1538,7 +1538,8 @@ module Aws
|
|
|
1538
1538
|
def delete_domain: (
|
|
1539
1539
|
identifier: ::String,
|
|
1540
1540
|
?client_token: ::String,
|
|
1541
|
-
?skip_deletion_check: bool
|
|
1541
|
+
?skip_deletion_check: bool,
|
|
1542
|
+
?cascade_delete: bool
|
|
1542
1543
|
) -> _DeleteDomainResponseSuccess
|
|
1543
1544
|
| (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DeleteDomainResponseSuccess
|
|
1544
1545
|
|
|
@@ -2007,6 +2008,8 @@ module Aws
|
|
|
2007
2008
|
def tags: () -> ::Hash[::String, ::String]
|
|
2008
2009
|
def domain_version: () -> ("V1" | "V2")
|
|
2009
2010
|
def service_role: () -> ::String
|
|
2011
|
+
def failure_reasons: () -> ::Array[Types::FailureReason]
|
|
2012
|
+
def delete_progress: () -> Types::DeleteProgress
|
|
2010
2013
|
end
|
|
2011
2014
|
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DataZone/Client.html#get_domain-instance_method
|
|
2012
2015
|
def get_domain: (
|
data/sig/types.rbs
CHANGED
|
@@ -1911,6 +1911,7 @@ module Aws::DataZone
|
|
|
1911
1911
|
attr_accessor identifier: ::String
|
|
1912
1912
|
attr_accessor client_token: ::String
|
|
1913
1913
|
attr_accessor skip_deletion_check: bool
|
|
1914
|
+
attr_accessor cascade_delete: bool
|
|
1914
1915
|
SENSITIVE: []
|
|
1915
1916
|
end
|
|
1916
1917
|
|
|
@@ -2020,6 +2021,11 @@ module Aws::DataZone
|
|
|
2020
2021
|
class DeleteNotebookOutput < Aws::EmptyStructure
|
|
2021
2022
|
end
|
|
2022
2023
|
|
|
2024
|
+
class DeleteProgress
|
|
2025
|
+
attr_accessor successfully_deleted_project_count: ::Integer
|
|
2026
|
+
SENSITIVE: []
|
|
2027
|
+
end
|
|
2028
|
+
|
|
2023
2029
|
class DeleteProjectInput
|
|
2024
2030
|
attr_accessor domain_identifier: ::String
|
|
2025
2031
|
attr_accessor identifier: ::String
|
|
@@ -2395,6 +2401,12 @@ module Aws::DataZone
|
|
|
2395
2401
|
SENSITIVE: []
|
|
2396
2402
|
end
|
|
2397
2403
|
|
|
2404
|
+
class FailureReason
|
|
2405
|
+
attr_accessor id: ::String
|
|
2406
|
+
attr_accessor message: ::String
|
|
2407
|
+
SENSITIVE: []
|
|
2408
|
+
end
|
|
2409
|
+
|
|
2398
2410
|
class Filter
|
|
2399
2411
|
attr_accessor attribute: ::String
|
|
2400
2412
|
attr_accessor value: ::String
|
|
@@ -2711,6 +2723,8 @@ module Aws::DataZone
|
|
|
2711
2723
|
attr_accessor tags: ::Hash[::String, ::String]
|
|
2712
2724
|
attr_accessor domain_version: ("V1" | "V2")
|
|
2713
2725
|
attr_accessor service_role: ::String
|
|
2726
|
+
attr_accessor failure_reasons: ::Array[Types::FailureReason]
|
|
2727
|
+
attr_accessor delete_progress: Types::DeleteProgress
|
|
2714
2728
|
SENSITIVE: []
|
|
2715
2729
|
end
|
|
2716
2730
|
|