Skip to content

Commit 906a6cc

Browse files
committed
feat: s3 transfer manager
1 parent e0211b1 commit 906a6cc

19 files changed

+329
-28
lines changed

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ atomicfu-version = "0.25.0"
1212
binary-compatibility-validator-version = "0.16.3"
1313

1414
# smithy-kotlin codegen and runtime are versioned separately
15-
smithy-kotlin-runtime-version = "1.4.16"
16-
smithy-kotlin-codegen-version = "0.34.16"
15+
smithy-kotlin-runtime-version = "1.4.19-SNAPSHOT"
16+
smithy-kotlin-codegen-version = "0.34.19-SNAPSHOT"
1717

1818
# codegen
1919
smithy-version = "1.53.0"
Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
public abstract interface class aws/sdk/kotlin/hll/s3transfermanager/S3TransferManager : java/io/Closeable {
2+
public static final field Companion Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Companion;
3+
public abstract fun close ()V
4+
public abstract fun downloadDirectory (Laws/sdk/kotlin/hll/s3transfermanager/model/DownloadDirectoryRequest;)Laws/sdk/kotlin/hll/s3transfermanager/model/DownloadDirectoryResponse;
5+
public abstract fun downloadFile (Laws/sdk/kotlin/hll/s3transfermanager/model/DownloadFileRequest;)Laws/sdk/kotlin/hll/s3transfermanager/model/DownloadFileResponse;
6+
public abstract fun getConfig ()Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config;
7+
public abstract fun trackTransfer (Laws/sdk/kotlin/hll/s3transfermanager/model/TrackTransferRequest;)Laws/sdk/kotlin/hll/s3transfermanager/model/TrackTransferResponse;
8+
public abstract fun uploadDirectory (Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryRequest;)Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryResponse;
9+
public abstract fun uploadFile (Laws/sdk/kotlin/hll/s3transfermanager/model/UploadFileRequest;)Laws/sdk/kotlin/hll/s3transfermanager/model/UploadFileResponse;
10+
}
11+
12+
public final class aws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Companion {
13+
public final fun Config (Lkotlin/jvm/functions/Function1;)Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config;
14+
public static synthetic fun Config$default (Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Companion;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config;
15+
}
16+
17+
public abstract interface class aws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config {
18+
public static final field Companion Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config$Companion;
19+
public abstract fun getChecksumAlgorithm ()Laws/sdk/kotlin/services/s3/model/ChecksumAlgorithm;
20+
public abstract fun getChecksumValidationEnabled ()Z
21+
public abstract fun getClient ()Laws/sdk/kotlin/services/s3/S3Client;
22+
public abstract fun getInterceptors ()Ljava/util/List;
23+
public abstract fun getMultipartDownloadType ()Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DownloadType;
24+
public abstract fun getMultipartUploadThresholdBytes ()J
25+
public abstract fun getTargetPartSizeBytes ()J
26+
public abstract fun toBuilder ()Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config$Builder;
27+
}
28+
29+
public abstract interface class aws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config$Builder {
30+
public abstract fun build ()Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config;
31+
public abstract fun getChecksumAlgorithm ()Laws/sdk/kotlin/services/s3/model/ChecksumAlgorithm;
32+
public abstract fun getChecksumValidationEnabled ()Z
33+
public abstract fun getClient ()Laws/sdk/kotlin/services/s3/S3Client;
34+
public abstract fun getInterceptors ()Ljava/util/List;
35+
public abstract fun getMultipartDownloadType ()Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DownloadType;
36+
public abstract fun getMultipartUploadThresholdBytes ()J
37+
public abstract fun getTargetPartSizeBytes ()J
38+
public abstract fun setChecksumAlgorithm (Laws/sdk/kotlin/services/s3/model/ChecksumAlgorithm;)V
39+
public abstract fun setChecksumValidationEnabled (Z)V
40+
public abstract fun setClient (Laws/sdk/kotlin/services/s3/S3Client;)V
41+
public abstract fun setInterceptors (Ljava/util/List;)V
42+
public abstract fun setMultipartDownloadType (Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DownloadType;)V
43+
public abstract fun setMultipartUploadThresholdBytes (J)V
44+
public abstract fun setTargetPartSizeBytes (J)V
45+
}
46+
47+
public final class aws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config$Companion {
48+
public final fun Builder ()Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Config$Builder;
49+
}
50+
51+
public final class aws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$DefaultImpls {
52+
public static fun close (Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager;)V
53+
}
54+
55+
public final class aws/sdk/kotlin/hll/s3transfermanager/S3TransferManagerKt {
56+
public static final fun S3TransferManager (Lkotlin/jvm/functions/Function1;)Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager;
57+
public static synthetic fun S3TransferManager$default (Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager;
58+
}
59+
60+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/DownloadDirectoryRequest {
61+
public fun <init> ()V
62+
}
63+
64+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/DownloadDirectoryResponse {
65+
public fun <init> ()V
66+
}
67+
68+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/DownloadFileRequest {
69+
public fun <init> ()V
70+
}
71+
72+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/DownloadFileResponse {
73+
public fun <init> ()V
74+
}
75+
76+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/ParameterRequiredException : java/lang/Exception {
77+
public fun <init> (Ljava/lang/String;)V
78+
public fun getMessage ()Ljava/lang/String;
79+
}
80+
81+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/TrackTransferRequest {
82+
public fun <init> ()V
83+
}
84+
85+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/TrackTransferResponse {
86+
public fun <init> ()V
87+
}
88+
89+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/UploadFileRequest {
90+
public fun <init> ()V
91+
}
92+
93+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/UploadFileResponse {
94+
public fun <init> ()V
95+
}
96+
97+
public abstract class aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DefaultFailureCallback : java/lang/Enum, aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/FailureCallback {
98+
public static final field CANCEL Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DefaultFailureCallback;
99+
public static final field IGNORE Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DefaultFailureCallback;
100+
public synthetic fun <init> (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
101+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
102+
public static fun valueOf (Ljava/lang/String;)Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DefaultFailureCallback;
103+
public static fun values ()[Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DefaultFailureCallback;
104+
}
105+
106+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DownloadType : java/lang/Enum {
107+
public static final field PART Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DownloadType;
108+
public static final field RANGE Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DownloadType;
109+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
110+
public static fun valueOf (Ljava/lang/String;)Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DownloadType;
111+
public static fun values ()[Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/DownloadType;
112+
}
113+
114+
public abstract interface class aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/FailureCallback {
115+
public abstract fun onFailure (Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryRequest;Laws/sdk/kotlin/hll/s3transfermanager/model/UploadFileRequest;Ljava/lang/Exception;)V
116+
}
117+
118+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryRequest {
119+
public static final field Companion Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryRequest$Companion;
120+
public synthetic fun <init> (Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryRequest$Builder;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
121+
public final fun getBucket ()Ljava/lang/String;
122+
public final fun getFailurePolicy ()Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/FailureCallback;
123+
public final fun getFilter ()Lkotlin/jvm/functions/Function1;
124+
public final fun getFollowSymbolicLinks ()Z
125+
public final fun getPutObjectRequestCallBack ()Lkotlin/jvm/functions/Function1;
126+
public final fun getRecursive ()Z
127+
public final fun getS3Delimiter ()Ljava/lang/String;
128+
public final fun getS3Prefix ()Ljava/lang/String;
129+
public final fun getSource ()Ljava/lang/String;
130+
}
131+
132+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryRequest$Builder {
133+
public fun <init> ()V
134+
public final fun build ()Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryRequest;
135+
public final fun getBucket ()Ljava/lang/String;
136+
public final fun getFailurePolicy ()Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/FailureCallback;
137+
public final fun getFilter ()Lkotlin/jvm/functions/Function1;
138+
public final fun getFollowSymbolicLinks ()Ljava/lang/Boolean;
139+
public final fun getPutObjectRequestCallback ()Lkotlin/jvm/functions/Function1;
140+
public final fun getRecursive ()Ljava/lang/Boolean;
141+
public final fun getS3Delimiter ()Ljava/lang/String;
142+
public final fun getS3Prefix ()Ljava/lang/String;
143+
public final fun getSource ()Ljava/lang/String;
144+
public final fun setBucket (Ljava/lang/String;)V
145+
public final fun setFailurePolicy (Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/FailureCallback;)V
146+
public final fun setFilter (Lkotlin/jvm/functions/Function1;)V
147+
public final fun setFollowSymbolicLinks (Ljava/lang/Boolean;)V
148+
public final fun setPutObjectRequestCallback (Lkotlin/jvm/functions/Function1;)V
149+
public final fun setRecursive (Ljava/lang/Boolean;)V
150+
public final fun setS3Delimiter (Ljava/lang/String;)V
151+
public final fun setS3Prefix (Ljava/lang/String;)V
152+
public final fun setSource (Ljava/lang/String;)V
153+
}
154+
155+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryRequest$Companion {
156+
public final fun invoke (Lkotlin/jvm/functions/Function1;)Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryRequest;
157+
}
158+
159+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryResponse {
160+
public static final field Companion Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryResponse$Companion;
161+
public synthetic fun <init> (Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryResponse$Builder;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
162+
public final fun getObjectsFailed ()J
163+
public final fun getObjectsUploaded ()J
164+
}
165+
166+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryResponse$Builder {
167+
public fun <init> ()V
168+
public final fun build ()Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryResponse;
169+
public final fun getObjectsFailed ()Ljava/lang/Long;
170+
public final fun getObjectsUploaded ()Ljava/lang/Long;
171+
public final fun setObjectsFailed (Ljava/lang/Long;)V
172+
public final fun setObjectsUploaded (Ljava/lang/Long;)V
173+
}
174+
175+
public final class aws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryResponse$Companion {
176+
public final fun invoke (Lkotlin/jvm/functions/Function1;)Laws/sdk/kotlin/hll/s3transfermanager/model/uploaddir/UploadDirectoryResponse;
177+
}
178+
Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11

22
package aws.sdk.kotlin.hll.s3transfermanager
33

4+
import aws.sdk.kotlin.hll.s3transfermanager.model.*
5+
import aws.sdk.kotlin.hll.s3transfermanager.model.uploaddir.DownloadType
6+
import aws.sdk.kotlin.hll.s3transfermanager.model.uploaddir.UploadDirectoryRequest
7+
import aws.sdk.kotlin.hll.s3transfermanager.model.uploaddir.UploadDirectoryResponse
48
import aws.sdk.kotlin.services.s3.S3Client
59
import aws.sdk.kotlin.services.s3.model.ChecksumAlgorithm
610
import aws.smithy.kotlin.runtime.http.interceptors.HttpInterceptor
711
import aws.smithy.kotlin.runtime.io.Closeable
812

13+
public fun S3TransferManager(
14+
config: S3TransferManager.Config.Builder.() -> Unit = { },
15+
): S3TransferManager = S3TransferManagerImplementation(S3TransferManager.Config(config))
16+
917
// TODO: Experimental API ?
1018
public interface S3TransferManager: Closeable {
1119
public val config: Config
@@ -54,23 +62,3 @@ public interface S3TransferManager: Closeable {
5462
config.client.close()
5563
}
5664
}
57-
58-
public enum class DownloadType {
59-
PART,
60-
RANGE,
61-
}
62-
63-
public interface UploadFileRequest
64-
public interface UploadFileResponse
65-
66-
public interface DownloadFileRequest
67-
public interface DownloadFileResponse
68-
69-
public interface UploadDirectoryRequest
70-
public interface UploadDirectoryResponse
71-
72-
public interface DownloadDirectoryRequest
73-
public interface DownloadDirectoryResponse
74-
75-
public interface TrackTransferRequest
76-
public interface TrackTransferResponse

hll/s3-transfer-manager/common/src/aws.sdk.kotlin.hll.s3transfermanager/S3TransferManagerImplementation.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
package aws.sdk.kotlin.hll.s3transfermanager
22

33
import aws.sdk.kotlin.services.s3.S3Client
4+
import aws.sdk.kotlin.hll.s3transfermanager.model.*
5+
import aws.sdk.kotlin.hll.s3transfermanager.model.uploaddir.DownloadType
6+
import aws.sdk.kotlin.hll.s3transfermanager.model.uploaddir.UploadDirectoryRequest
7+
import aws.sdk.kotlin.hll.s3transfermanager.model.uploaddir.UploadDirectoryResponse
48
import aws.sdk.kotlin.services.s3.model.ChecksumAlgorithm
59
import aws.smithy.kotlin.runtime.http.engine.crt.CrtHttpEngine
610
import aws.smithy.kotlin.runtime.http.interceptors.HttpInterceptor
711

8-
public fun S3TransferManager(
9-
config: S3TransferManager.Config.Builder.() -> Unit = { },
10-
): S3TransferManager = S3TransferManagerImplementation(S3TransferManager.Config(config))
11-
1212
internal data class S3TransferManagerImplementation(
1313
override val config: S3TransferManager.Config,
1414
) : S3TransferManager {
1515
override fun uploadFile(input: UploadFileRequest): UploadFileResponse {
16-
// TODO: How would this change the config on the fly ?
1716
TODO("Not yet implemented")
1817
}
1918

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package aws.sdk.kotlin.hll.s3transfermanager.model
2+
3+
public class DownloadFileResponse {
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package aws.sdk.kotlin.hll.s3transfermanager.model
2+
3+
public class DownloadDirectoryRequest {
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package aws.sdk.kotlin.hll.s3transfermanager.model
2+
3+
public class DownloadDirectoryResponse {
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package aws.sdk.kotlin.hll.s3transfermanager.model
2+
3+
public class DownloadFileRequest {
4+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package aws.sdk.kotlin.hll.s3transfermanager.model
2+
3+
public class ParameterRequiredException(override val message: String?): Exception()
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package aws.sdk.kotlin.hll.s3transfermanager.model
2+
3+
public class TrackTransferRequest {
4+
}

0 commit comments

Comments
 (0)