@aws-amplify/storage 6.0.28 → 6.0.29-gen2-storage.e54bfa9.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.
Files changed (194) hide show
  1. package/dist/cjs/errors/types/validation.js +22 -2
  2. package/dist/cjs/errors/types/validation.js.map +1 -1
  3. package/dist/cjs/providers/s3/apis/copy.js +2 -12
  4. package/dist/cjs/providers/s3/apis/copy.js.map +1 -1
  5. package/dist/cjs/providers/s3/apis/downloadData.js +13 -38
  6. package/dist/cjs/providers/s3/apis/downloadData.js.map +1 -1
  7. package/dist/cjs/providers/s3/apis/getProperties.js +2 -11
  8. package/dist/cjs/providers/s3/apis/getProperties.js.map +1 -1
  9. package/dist/cjs/providers/s3/apis/getUrl.js +2 -18
  10. package/dist/cjs/providers/s3/apis/getUrl.js.map +1 -1
  11. package/dist/cjs/providers/s3/apis/internal/copy.js +41 -7
  12. package/dist/cjs/providers/s3/apis/internal/copy.js.map +1 -1
  13. package/dist/cjs/providers/s3/apis/internal/getProperties.js +10 -6
  14. package/dist/cjs/providers/s3/apis/internal/getProperties.js.map +1 -1
  15. package/dist/cjs/providers/s3/apis/internal/getUrl.js +8 -6
  16. package/dist/cjs/providers/s3/apis/internal/getUrl.js.map +1 -1
  17. package/dist/cjs/providers/s3/apis/internal/list.js +86 -16
  18. package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
  19. package/dist/cjs/providers/s3/apis/internal/remove.js +20 -7
  20. package/dist/cjs/providers/s3/apis/internal/remove.js.map +1 -1
  21. package/dist/cjs/providers/s3/apis/list.js +4 -4
  22. package/dist/cjs/providers/s3/apis/list.js.map +1 -1
  23. package/dist/cjs/providers/s3/apis/remove.js +2 -9
  24. package/dist/cjs/providers/s3/apis/remove.js.map +1 -1
  25. package/dist/cjs/providers/s3/apis/server/copy.js +4 -4
  26. package/dist/cjs/providers/s3/apis/server/copy.js.map +1 -1
  27. package/dist/cjs/providers/s3/apis/server/getProperties.js +2 -2
  28. package/dist/cjs/providers/s3/apis/server/getProperties.js.map +1 -1
  29. package/dist/cjs/providers/s3/apis/server/getUrl.js +2 -2
  30. package/dist/cjs/providers/s3/apis/server/getUrl.js.map +1 -1
  31. package/dist/cjs/providers/s3/apis/server/list.js +4 -4
  32. package/dist/cjs/providers/s3/apis/server/list.js.map +1 -1
  33. package/dist/cjs/providers/s3/apis/server/remove.js +2 -2
  34. package/dist/cjs/providers/s3/apis/server/remove.js.map +1 -1
  35. package/dist/cjs/providers/s3/apis/uploadData/index.js +4 -50
  36. package/dist/cjs/providers/s3/apis/uploadData/index.js.map +1 -1
  37. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js +1 -1
  38. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js.map +1 -1
  39. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js +8 -1
  40. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js.map +1 -1
  41. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js +28 -13
  42. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js.map +1 -1
  43. package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js +10 -5
  44. package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js.map +1 -1
  45. package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js +1 -1
  46. package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js.map +1 -1
  47. package/dist/cjs/providers/s3/utils/constants.js +4 -1
  48. package/dist/cjs/providers/s3/utils/constants.js.map +1 -1
  49. package/dist/cjs/providers/s3/utils/index.js +7 -1
  50. package/dist/cjs/providers/s3/utils/index.js.map +1 -1
  51. package/dist/cjs/providers/s3/utils/isInputWithPath.js +11 -0
  52. package/dist/cjs/providers/s3/utils/isInputWithPath.js.map +1 -0
  53. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js +2 -1
  54. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js.map +1 -1
  55. package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js +31 -0
  56. package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js.map +1 -0
  57. package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js +32 -0
  58. package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js.map +1 -0
  59. package/dist/esm/errors/types/validation.d.ts +7 -2
  60. package/dist/esm/errors/types/validation.mjs +22 -2
  61. package/dist/esm/errors/types/validation.mjs.map +1 -1
  62. package/dist/esm/index.d.ts +2 -2
  63. package/dist/esm/providers/s3/apis/copy.d.ts +22 -9
  64. package/dist/esm/providers/s3/apis/copy.mjs +2 -12
  65. package/dist/esm/providers/s3/apis/copy.mjs.map +1 -1
  66. package/dist/esm/providers/s3/apis/downloadData.d.ts +41 -7
  67. package/dist/esm/providers/s3/apis/downloadData.mjs +15 -39
  68. package/dist/esm/providers/s3/apis/downloadData.mjs.map +1 -1
  69. package/dist/esm/providers/s3/apis/getProperties.d.ts +18 -5
  70. package/dist/esm/providers/s3/apis/getProperties.mjs +2 -11
  71. package/dist/esm/providers/s3/apis/getProperties.mjs.map +1 -1
  72. package/dist/esm/providers/s3/apis/getUrl.d.ts +27 -7
  73. package/dist/esm/providers/s3/apis/getUrl.mjs +2 -18
  74. package/dist/esm/providers/s3/apis/getUrl.mjs.map +1 -1
  75. package/dist/esm/providers/s3/apis/internal/copy.d.ts +4 -2
  76. package/dist/esm/providers/s3/apis/internal/copy.mjs +41 -6
  77. package/dist/esm/providers/s3/apis/internal/copy.mjs.map +1 -1
  78. package/dist/esm/providers/s3/apis/internal/getProperties.d.ts +2 -2
  79. package/dist/esm/providers/s3/apis/internal/getProperties.mjs +11 -6
  80. package/dist/esm/providers/s3/apis/internal/getProperties.mjs.map +1 -1
  81. package/dist/esm/providers/s3/apis/internal/getUrl.d.ts +2 -2
  82. package/dist/esm/providers/s3/apis/internal/getUrl.mjs +10 -7
  83. package/dist/esm/providers/s3/apis/internal/getUrl.mjs.map +1 -1
  84. package/dist/esm/providers/s3/apis/internal/list.d.ts +2 -2
  85. package/dist/esm/providers/s3/apis/internal/list.mjs +87 -16
  86. package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
  87. package/dist/esm/providers/s3/apis/internal/remove.d.ts +2 -2
  88. package/dist/esm/providers/s3/apis/internal/remove.mjs +21 -7
  89. package/dist/esm/providers/s3/apis/internal/remove.mjs.map +1 -1
  90. package/dist/esm/providers/s3/apis/list.d.ts +39 -22
  91. package/dist/esm/providers/s3/apis/list.mjs +2 -2
  92. package/dist/esm/providers/s3/apis/list.mjs.map +1 -1
  93. package/dist/esm/providers/s3/apis/remove.d.ts +18 -5
  94. package/dist/esm/providers/s3/apis/remove.mjs +2 -9
  95. package/dist/esm/providers/s3/apis/remove.mjs.map +1 -1
  96. package/dist/esm/providers/s3/apis/server/copy.d.ts +27 -2
  97. package/dist/esm/providers/s3/apis/server/copy.mjs +2 -2
  98. package/dist/esm/providers/s3/apis/server/copy.mjs.map +1 -1
  99. package/dist/esm/providers/s3/apis/server/getProperties.d.ts +26 -2
  100. package/dist/esm/providers/s3/apis/server/getProperties.mjs +2 -2
  101. package/dist/esm/providers/s3/apis/server/getProperties.mjs.map +1 -1
  102. package/dist/esm/providers/s3/apis/server/getUrl.d.ts +40 -2
  103. package/dist/esm/providers/s3/apis/server/getUrl.mjs +2 -2
  104. package/dist/esm/providers/s3/apis/server/getUrl.mjs.map +1 -1
  105. package/dist/esm/providers/s3/apis/server/list.d.ts +41 -22
  106. package/dist/esm/providers/s3/apis/server/list.mjs +2 -2
  107. package/dist/esm/providers/s3/apis/server/list.mjs.map +1 -1
  108. package/dist/esm/providers/s3/apis/server/remove.d.ts +24 -2
  109. package/dist/esm/providers/s3/apis/server/remove.mjs +2 -2
  110. package/dist/esm/providers/s3/apis/server/remove.mjs.map +1 -1
  111. package/dist/esm/providers/s3/apis/uploadData/index.d.ts +64 -7
  112. package/dist/esm/providers/s3/apis/uploadData/index.mjs +4 -50
  113. package/dist/esm/providers/s3/apis/uploadData/index.mjs.map +1 -1
  114. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +2 -2
  115. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs +1 -1
  116. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs.map +1 -1
  117. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +1 -1
  118. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs +8 -1
  119. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs.map +1 -1
  120. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.d.ts +4 -4
  121. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs +30 -14
  122. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs.map +1 -1
  123. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.d.ts +3 -3
  124. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs +11 -5
  125. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs.map +1 -1
  126. package/dist/esm/providers/s3/index.d.ts +2 -2
  127. package/dist/esm/providers/s3/types/index.d.ts +3 -3
  128. package/dist/esm/providers/s3/types/inputs.d.ts +51 -11
  129. package/dist/esm/providers/s3/types/options.d.ts +41 -10
  130. package/dist/esm/providers/s3/types/outputs.d.ts +68 -13
  131. package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs +1 -1
  132. package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs.map +1 -1
  133. package/dist/esm/providers/s3/utils/constants.d.ts +3 -0
  134. package/dist/esm/providers/s3/utils/constants.mjs +4 -1
  135. package/dist/esm/providers/s3/utils/constants.mjs.map +1 -1
  136. package/dist/esm/providers/s3/utils/index.d.ts +3 -0
  137. package/dist/esm/providers/s3/utils/index.mjs +3 -0
  138. package/dist/esm/providers/s3/utils/index.mjs.map +1 -1
  139. package/dist/esm/providers/s3/utils/isInputWithPath.d.ts +2 -0
  140. package/dist/esm/providers/s3/utils/isInputWithPath.mjs +8 -0
  141. package/dist/esm/providers/s3/utils/isInputWithPath.mjs.map +1 -0
  142. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.d.ts +2 -1
  143. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs +2 -1
  144. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs.map +1 -1
  145. package/dist/esm/providers/s3/utils/validateStorageOperationInput.d.ts +5 -0
  146. package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs +29 -0
  147. package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs.map +1 -0
  148. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.d.ts +5 -0
  149. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs +30 -0
  150. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs.map +1 -0
  151. package/dist/esm/types/index.d.ts +2 -2
  152. package/dist/esm/types/inputs.d.ts +41 -13
  153. package/dist/esm/types/options.d.ts +1 -0
  154. package/dist/esm/types/outputs.d.ts +26 -6
  155. package/package.json +107 -107
  156. package/src/errors/types/validation.ts +23 -2
  157. package/src/index.ts +16 -0
  158. package/src/providers/s3/apis/copy.ts +30 -11
  159. package/src/providers/s3/apis/downloadData.ts +78 -19
  160. package/src/providers/s3/apis/getProperties.ts +31 -8
  161. package/src/providers/s3/apis/getUrl.ts +37 -10
  162. package/src/providers/s3/apis/internal/copy.ts +89 -8
  163. package/src/providers/s3/apis/internal/getProperties.ts +27 -12
  164. package/src/providers/s3/apis/internal/getUrl.ts +28 -14
  165. package/src/providers/s3/apis/internal/list.ts +135 -29
  166. package/src/providers/s3/apis/internal/remove.ts +36 -13
  167. package/src/providers/s3/apis/list.ts +54 -26
  168. package/src/providers/s3/apis/remove.ts +28 -7
  169. package/src/providers/s3/apis/server/copy.ts +42 -5
  170. package/src/providers/s3/apis/server/getProperties.ts +41 -4
  171. package/src/providers/s3/apis/server/getUrl.ts +55 -4
  172. package/src/providers/s3/apis/server/list.ts +64 -32
  173. package/src/providers/s3/apis/server/remove.ts +39 -4
  174. package/src/providers/s3/apis/uploadData/index.ts +77 -8
  175. package/src/providers/s3/apis/uploadData/multipart/initialUpload.ts +4 -3
  176. package/src/providers/s3/apis/uploadData/multipart/uploadCache.ts +11 -2
  177. package/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +50 -20
  178. package/src/providers/s3/apis/uploadData/putObjectJob.ts +23 -9
  179. package/src/providers/s3/index.ts +16 -0
  180. package/src/providers/s3/types/index.ts +37 -14
  181. package/src/providers/s3/types/inputs.ts +95 -26
  182. package/src/providers/s3/types/options.ts +73 -27
  183. package/src/providers/s3/types/outputs.ts +80 -13
  184. package/src/providers/s3/utils/client/utils/parsePayload.ts +1 -1
  185. package/src/providers/s3/utils/constants.ts +4 -0
  186. package/src/providers/s3/utils/index.ts +3 -0
  187. package/src/providers/s3/utils/isInputWithPath.ts +13 -0
  188. package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +3 -2
  189. package/src/providers/s3/utils/validateStorageOperationInput.ts +39 -0
  190. package/src/providers/s3/utils/validateStorageOperationInputWithPrefix.ts +46 -0
  191. package/src/types/index.ts +16 -8
  192. package/src/types/inputs.ts +73 -20
  193. package/src/types/options.ts +1 -0
  194. package/src/types/outputs.ts +29 -6
@@ -0,0 +1,46 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import {
5
+ StorageOperationInputWithPath,
6
+ StorageOperationInputWithPrefixPath,
7
+ } from '../../../types/inputs';
8
+ import { assertValidationError } from '../../../errors/utils/assertValidationError';
9
+ import { StorageValidationErrorCode } from '../../../errors/types/validation';
10
+
11
+ import { STORAGE_INPUT_PATH, STORAGE_INPUT_PREFIX } from './constants';
12
+
13
+ // Local assertion function with StorageOperationInputWithPrefixPath as Input
14
+ const _isInputWithPath = (
15
+ input: StorageOperationInputWithPrefixPath,
16
+ ): input is StorageOperationInputWithPath => {
17
+ return input.path !== undefined;
18
+ };
19
+
20
+ export const validateStorageOperationInputWithPrefix = (
21
+ input: StorageOperationInputWithPrefixPath,
22
+ identityId?: string,
23
+ ) => {
24
+ // Validate prefix & path not present at the same time
25
+ assertValidationError(
26
+ !(input.prefix && input.path),
27
+ StorageValidationErrorCode.InvalidStorageOperationPrefixInput,
28
+ );
29
+ if (_isInputWithPath(input)) {
30
+ const { path } = input;
31
+ const objectKey = typeof path === 'string' ? path : path({ identityId });
32
+
33
+ // Assert on no leading slash in the path parameter
34
+ assertValidationError(
35
+ !objectKey.startsWith('/'),
36
+ StorageValidationErrorCode.InvalidStoragePathInput,
37
+ );
38
+
39
+ return {
40
+ inputType: STORAGE_INPUT_PATH,
41
+ objectKey,
42
+ };
43
+ } else {
44
+ return { inputType: STORAGE_INPUT_PREFIX, objectKey: input.prefix ?? '' };
45
+ }
46
+ };
@@ -8,14 +8,20 @@ export {
8
8
  UploadTask,
9
9
  } from './common';
10
10
  export {
11
- StorageOperationInput,
12
- StorageListInput,
13
- StorageGetPropertiesInput,
14
- StorageRemoveInput,
15
- StorageDownloadDataInput,
16
- StorageUploadDataInput,
17
- StorageCopyInput,
18
- StorageGetUrlInput,
11
+ StorageGetPropertiesInputWithKey,
12
+ StorageGetPropertiesInputWithPath,
13
+ StorageListInputWithPrefix,
14
+ StorageListInputWithPath,
15
+ StorageRemoveInputWithPath,
16
+ StorageRemoveInputWithKey,
17
+ StorageDownloadDataInputWithKey,
18
+ StorageDownloadDataInputWithPath,
19
+ StorageUploadDataInputWithKey,
20
+ StorageUploadDataInputWithPath,
21
+ StorageCopyInputWithKey,
22
+ StorageCopyInputWithPath,
23
+ StorageGetUrlInputWithKey,
24
+ StorageGetUrlInputWithPath,
19
25
  StorageUploadDataPayload,
20
26
  } from './inputs';
21
27
  export {
@@ -26,6 +32,8 @@ export {
26
32
  } from './options';
27
33
  export {
28
34
  StorageItem,
35
+ StorageItemWithKey,
36
+ StorageItemWithPath,
29
37
  StorageListOutput,
30
38
  StorageDownloadDataOutput,
31
39
  StorageGetUrlOutput,
@@ -1,44 +1,88 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
+ import { StrictUnion } from '@aws-amplify/core/internals/utils';
5
+
4
6
  import {
5
7
  StorageListAllOptions,
6
8
  StorageListPaginateOptions,
7
9
  StorageOptions,
8
10
  } from './options';
9
11
 
10
- export interface StorageOperationInput<Options extends StorageOptions> {
12
+ export type StorageOperationInput = StrictUnion<
13
+ StorageOperationInputWithKey | StorageOperationInputWithPath
14
+ >;
15
+ export type StorageOperationInputWithPrefixPath = StrictUnion<
16
+ StorageOperationInputWithPath | StorageOperationInputWithPrefix
17
+ >;
18
+ /** @deprecated Use {@link StorageOperationInputWithPath} instead. */
19
+ export interface StorageOperationInputWithKey {
20
+ /** @deprecated Use `path` instead. */
11
21
  key: string;
12
- options?: Options;
22
+ }
23
+ export interface StorageOperationInputWithPath {
24
+ path: string | (({ identityId }: { identityId?: string }) => string);
13
25
  }
14
26
 
15
- export type StorageGetPropertiesInput<Options extends StorageOptions> =
16
- StorageOperationInput<Options>;
27
+ /** @deprecated Use {@link StorageOperationInputWithPath} instead. */
28
+ export interface StorageOperationInputWithPrefix {
29
+ /** @deprecated Use `path` instead. */
30
+ prefix?: string;
31
+ }
17
32
 
18
- export interface StorageRemoveInput<Options extends StorageOptions> {
19
- key: string;
33
+ export interface StorageOperationOptionsInput<Options> {
20
34
  options?: Options;
21
35
  }
22
36
 
23
- export interface StorageListInput<
37
+ /** @deprecated Use {@link StorageDownloadDataInputWithPath} instead. */
38
+ export type StorageDownloadDataInputWithKey<Options extends StorageOptions> =
39
+ StorageOperationInputWithKey & StorageOperationOptionsInput<Options>;
40
+
41
+ export type StorageDownloadDataInputWithPath<Options> =
42
+ StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
43
+
44
+ /** @deprecated Use {@link StorageGetPropertiesInputWithPath} instead. */
45
+ export type StorageGetPropertiesInputWithKey<Options extends StorageOptions> =
46
+ StorageOperationInputWithKey & StorageOperationOptionsInput<Options>;
47
+
48
+ export type StorageGetPropertiesInputWithPath<Options> =
49
+ StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
50
+
51
+ export type StorageRemoveInputWithKey<Options> = StorageOperationInputWithKey &
52
+ StorageOperationOptionsInput<Options>;
53
+
54
+ export type StorageRemoveInputWithPath<Options> =
55
+ StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
56
+
57
+ /** @deprecated Use {@link StorageListInputWithPath} instead. */
58
+ export type StorageListInputWithPrefix<
24
59
  Options extends StorageListAllOptions | StorageListPaginateOptions,
25
- > {
26
- prefix?: string;
27
- options?: Options;
28
- }
60
+ > = StorageOperationInputWithPrefix & StorageOperationOptionsInput<Options>;
61
+
62
+ export type StorageListInputWithPath<
63
+ Options extends StorageListAllOptions | StorageListPaginateOptions,
64
+ > = StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
29
65
 
30
- export type StorageGetUrlInput<Options extends StorageOptions> =
31
- StorageOperationInput<Options>;
66
+ /** @deprecated Use {@link StorageGetUrlInputWithPath} instead. */
67
+ export type StorageGetUrlInputWithKey<Options extends StorageOptions> =
68
+ StorageOperationInputWithKey & StorageOperationOptionsInput<Options>;
32
69
 
33
- export type StorageDownloadDataInput<Options extends StorageOptions> =
34
- StorageOperationInput<Options>;
70
+ export type StorageGetUrlInputWithPath<Options> =
71
+ StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
35
72
 
36
- export type StorageUploadDataInput<Options extends StorageOptions> =
37
- StorageOperationInput<Options> & {
38
- data: StorageUploadDataPayload;
39
- };
73
+ /** @deprecated Use {@link StorageUploadDataInputWithPath} instead. */
74
+ export type StorageUploadDataInputWithKey<Options extends StorageOptions> =
75
+ StorageOperationInputWithKey &
76
+ StorageOperationOptionsInput<Options> &
77
+ StorageUploadDataInputPayload;
40
78
 
41
- export interface StorageCopyInput<
79
+ export type StorageUploadDataInputWithPath<Options> =
80
+ StorageOperationInputWithPath &
81
+ StorageOperationOptionsInput<Options> &
82
+ StorageUploadDataInputPayload;
83
+
84
+ /** @deprecated Use {@link StorageCopyInputWithPath} instead. */
85
+ export interface StorageCopyInputWithKey<
42
86
  SourceOptions extends StorageOptions,
43
87
  DestinationOptions extends StorageOptions,
44
88
  > {
@@ -46,6 +90,11 @@ export interface StorageCopyInput<
46
90
  destination: DestinationOptions;
47
91
  }
48
92
 
93
+ export interface StorageCopyInputWithPath {
94
+ source: StorageOperationInputWithPath;
95
+ destination: StorageOperationInputWithPath;
96
+ }
97
+
49
98
  /**
50
99
  * The data payload type for upload operation.
51
100
  */
@@ -54,3 +103,7 @@ export type StorageUploadDataPayload =
54
103
  | ArrayBufferView
55
104
  | ArrayBuffer
56
105
  | string;
106
+
107
+ export interface StorageUploadDataInputPayload {
108
+ data: StorageUploadDataPayload;
109
+ }
@@ -4,6 +4,7 @@
4
4
  import { StorageAccessLevel } from '@aws-amplify/core';
5
5
 
6
6
  export interface StorageOptions {
7
+ /** @deprecated This may be removed in the next major version. */
7
8
  accessLevel?: StorageAccessLevel;
8
9
  }
9
10
 
@@ -3,11 +3,10 @@
3
3
 
4
4
  import { ResponseBodyMixin } from '@aws-amplify/core/internals/aws-client-utils';
5
5
 
6
- export interface StorageItem {
7
- /**
8
- * Key of the object
9
- */
10
- key: string;
6
+ /**
7
+ * Base type for a storage item.
8
+ */
9
+ export interface StorageItemBase {
11
10
  /**
12
11
  * Creation date of the object.
13
12
  */
@@ -28,7 +27,28 @@ export interface StorageItem {
28
27
  metadata?: Record<string, string>;
29
28
  }
30
29
 
31
- export type StorageDownloadDataOutput<T extends StorageItem> = T & {
30
+ /** @deprecated Use {@link StorageItemWithPath} instead. */
31
+ export type StorageItemWithKey = StorageItemBase & {
32
+ /**
33
+ * @deprecated This may be removed in next major version.
34
+ * Key of the object.
35
+ */
36
+ key: string;
37
+ };
38
+
39
+ export type StorageItemWithPath = StorageItemBase & {
40
+ /**
41
+ * Path of the object.
42
+ */
43
+ path: string;
44
+ };
45
+
46
+ /**
47
+ * A storage item can be identified either by a key or a path.
48
+ */
49
+ export type StorageItem = StorageItemWithKey | StorageItemWithPath;
50
+
51
+ export type StorageDownloadDataOutput<Item extends StorageItem> = Item & {
32
52
  body: ResponseBodyMixin;
33
53
  };
34
54
 
@@ -46,5 +66,8 @@ export interface StorageGetUrlOutput {
46
66
  export type StorageUploadOutput<Item extends StorageItem> = Item;
47
67
 
48
68
  export interface StorageListOutput<Item extends StorageItem> {
69
+ /**
70
+ * List of items returned by the list API.
71
+ */
49
72
  items: Item[];
50
73
  }