@aws-amplify/storage 6.6.0 → 6.6.1-storage-browser.37d5283.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 (361) hide show
  1. package/dist/cjs/errors/constants.js +8 -0
  2. package/dist/cjs/errors/constants.js.map +1 -0
  3. package/dist/cjs/errors/types/validation.js +20 -0
  4. package/dist/cjs/errors/types/validation.js.map +1 -1
  5. package/dist/cjs/providers/s3/apis/downloadData.js +3 -3
  6. package/dist/cjs/providers/s3/apis/downloadData.js.map +1 -1
  7. package/dist/cjs/providers/s3/apis/internal/copy.js +59 -14
  8. package/dist/cjs/providers/s3/apis/internal/copy.js.map +1 -1
  9. package/dist/cjs/providers/s3/apis/internal/getProperties.js +3 -4
  10. package/dist/cjs/providers/s3/apis/internal/getProperties.js.map +1 -1
  11. package/dist/cjs/providers/s3/apis/internal/getUrl.js +3 -3
  12. package/dist/cjs/providers/s3/apis/internal/getUrl.js.map +1 -1
  13. package/dist/cjs/providers/s3/apis/internal/list.js +4 -4
  14. package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
  15. package/dist/cjs/providers/s3/apis/internal/remove.js +3 -4
  16. package/dist/cjs/providers/s3/apis/internal/remove.js.map +1 -1
  17. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js +22 -2
  18. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js.map +1 -1
  19. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js +3 -2
  20. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js.map +1 -1
  21. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js +19 -8
  22. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js.map +1 -1
  23. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadPartExecutor.js +20 -11
  24. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadPartExecutor.js.map +1 -1
  25. package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js +20 -7
  26. package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js.map +1 -1
  27. package/dist/cjs/providers/s3/apis/uploadData/validateObjectNotExists.js +25 -0
  28. package/dist/cjs/providers/s3/apis/uploadData/validateObjectNotExists.js.map +1 -0
  29. package/dist/cjs/providers/s3/utils/client/s3control/base.js +45 -0
  30. package/dist/cjs/providers/s3/utils/client/s3control/base.js.map +1 -0
  31. package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js +58 -0
  32. package/dist/cjs/providers/s3/utils/client/s3control/getDataAccess.js.map +1 -0
  33. package/dist/cjs/providers/s3/utils/client/s3control/index.js +11 -0
  34. package/dist/cjs/providers/s3/utils/client/s3control/index.js.map +1 -0
  35. package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js +59 -0
  36. package/dist/cjs/providers/s3/utils/client/s3control/listCallerAccessGrants.js.map +1 -0
  37. package/dist/cjs/providers/s3/utils/client/s3control/types.js.map +1 -0
  38. package/dist/cjs/providers/s3/utils/client/{abortMultipartUpload.js → s3data/abortMultipartUpload.js} +1 -1
  39. package/dist/cjs/providers/s3/utils/client/s3data/abortMultipartUpload.js.map +1 -0
  40. package/dist/cjs/providers/s3/utils/client/{base.js → s3data/base.js} +2 -2
  41. package/dist/cjs/providers/s3/utils/client/s3data/base.js.map +1 -0
  42. package/dist/cjs/providers/s3/utils/client/{completeMultipartUpload.js → s3data/completeMultipartUpload.js} +14 -9
  43. package/dist/cjs/providers/s3/utils/client/s3data/completeMultipartUpload.js.map +1 -0
  44. package/dist/cjs/providers/s3/utils/client/{copyObject.js → s3data/copyObject.js} +1 -1
  45. package/dist/cjs/providers/s3/utils/client/s3data/copyObject.js.map +1 -0
  46. package/dist/cjs/providers/s3/utils/client/{createMultipartUpload.js → s3data/createMultipartUpload.js} +7 -2
  47. package/dist/cjs/providers/s3/utils/client/s3data/createMultipartUpload.js.map +1 -0
  48. package/dist/cjs/providers/s3/utils/client/{deleteObject.js → s3data/deleteObject.js} +1 -1
  49. package/dist/cjs/providers/s3/utils/client/s3data/deleteObject.js.map +1 -0
  50. package/dist/cjs/providers/s3/utils/client/{getObject.js → s3data/getObject.js} +1 -1
  51. package/dist/cjs/providers/s3/utils/client/s3data/getObject.js.map +1 -0
  52. package/dist/cjs/providers/s3/utils/client/{headObject.js → s3data/headObject.js} +1 -1
  53. package/dist/cjs/providers/s3/utils/client/s3data/headObject.js.map +1 -0
  54. package/dist/cjs/providers/s3/utils/client/s3data/index.js.map +1 -0
  55. package/dist/cjs/providers/s3/utils/client/{listObjectsV2.js → s3data/listObjectsV2.js} +1 -1
  56. package/dist/cjs/providers/s3/utils/client/s3data/listObjectsV2.js.map +1 -0
  57. package/dist/cjs/providers/s3/utils/client/{listParts.js → s3data/listParts.js} +2 -1
  58. package/dist/cjs/providers/s3/utils/client/s3data/listParts.js.map +1 -0
  59. package/dist/cjs/providers/s3/utils/client/{putObject.js → s3data/putObject.js} +2 -1
  60. package/dist/cjs/providers/s3/utils/client/s3data/putObject.js.map +1 -0
  61. package/dist/cjs/providers/s3/utils/client/s3data/types.js +6 -0
  62. package/dist/cjs/providers/s3/utils/client/s3data/types.js.map +1 -0
  63. package/dist/cjs/providers/s3/utils/client/{uploadPart.js → s3data/uploadPart.js} +3 -2
  64. package/dist/cjs/providers/s3/utils/client/s3data/uploadPart.js.map +1 -0
  65. package/dist/cjs/providers/s3/utils/client/utils/index.js +3 -1
  66. package/dist/cjs/providers/s3/utils/client/utils/index.js.map +1 -1
  67. package/dist/cjs/providers/s3/utils/client/utils/retryDecider.js +61 -0
  68. package/dist/cjs/providers/s3/utils/client/utils/retryDecider.js.map +1 -0
  69. package/dist/cjs/providers/s3/utils/crc32.js +37 -0
  70. package/dist/cjs/providers/s3/utils/crc32.js.map +1 -0
  71. package/dist/cjs/providers/s3/utils/crc32.native.js +11 -0
  72. package/dist/cjs/providers/s3/utils/crc32.native.js.map +1 -0
  73. package/dist/cjs/providers/s3/utils/resolveIdentityId.js +14 -0
  74. package/dist/cjs/providers/s3/utils/resolveIdentityId.js.map +1 -0
  75. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js +74 -14
  76. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js.map +1 -1
  77. package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js +4 -1
  78. package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js.map +1 -1
  79. package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js +4 -1
  80. package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js.map +1 -1
  81. package/dist/cjs/storageBrowser/apis/constants.js +9 -0
  82. package/dist/cjs/storageBrowser/apis/constants.js.map +1 -0
  83. package/dist/cjs/storageBrowser/apis/getDataAccess.js +57 -0
  84. package/dist/cjs/storageBrowser/apis/getDataAccess.js.map +1 -0
  85. package/dist/cjs/storageBrowser/apis/listCallerAccessGrants.js +79 -0
  86. package/dist/cjs/storageBrowser/apis/listCallerAccessGrants.js.map +1 -0
  87. package/dist/cjs/storageBrowser/apis/types.js +6 -0
  88. package/dist/cjs/storageBrowser/apis/types.js.map +1 -0
  89. package/dist/cjs/storageBrowser/index.js +11 -0
  90. package/dist/cjs/storageBrowser/index.js.map +1 -0
  91. package/dist/cjs/storageBrowser/locationCredentialsStore/constants.js +9 -0
  92. package/dist/cjs/storageBrowser/locationCredentialsStore/constants.js.map +1 -0
  93. package/dist/cjs/storageBrowser/locationCredentialsStore/create.js +36 -0
  94. package/dist/cjs/storageBrowser/locationCredentialsStore/create.js.map +1 -0
  95. package/dist/cjs/storageBrowser/locationCredentialsStore/index.js +9 -0
  96. package/dist/cjs/storageBrowser/locationCredentialsStore/index.js.map +1 -0
  97. package/dist/cjs/storageBrowser/locationCredentialsStore/registry.js +58 -0
  98. package/dist/cjs/storageBrowser/locationCredentialsStore/registry.js.map +1 -0
  99. package/dist/cjs/storageBrowser/locationCredentialsStore/store.js +99 -0
  100. package/dist/cjs/storageBrowser/locationCredentialsStore/store.js.map +1 -0
  101. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.js +15 -0
  102. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.js.map +1 -0
  103. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.js +29 -0
  104. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.js.map +1 -0
  105. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.js +32 -0
  106. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.js.map +1 -0
  107. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/index.js +9 -0
  108. package/dist/cjs/storageBrowser/managedAuthConfigAdapter/index.js.map +1 -0
  109. package/dist/cjs/storageBrowser/types.js +6 -0
  110. package/dist/cjs/storageBrowser/types.js.map +1 -0
  111. package/dist/esm/errors/constants.d.ts +1 -0
  112. package/dist/esm/errors/constants.mjs +6 -0
  113. package/dist/esm/errors/constants.mjs.map +1 -0
  114. package/dist/esm/errors/types/validation.d.ts +6 -1
  115. package/dist/esm/errors/types/validation.mjs +20 -0
  116. package/dist/esm/errors/types/validation.mjs.map +1 -1
  117. package/dist/esm/providers/s3/apis/downloadData.mjs +13 -13
  118. package/dist/esm/providers/s3/apis/downloadData.mjs.map +1 -1
  119. package/dist/esm/providers/s3/apis/internal/copy.mjs +69 -24
  120. package/dist/esm/providers/s3/apis/internal/copy.mjs.map +1 -1
  121. package/dist/esm/providers/s3/apis/internal/getProperties.mjs +13 -14
  122. package/dist/esm/providers/s3/apis/internal/getProperties.mjs.map +1 -1
  123. package/dist/esm/providers/s3/apis/internal/getUrl.mjs +13 -13
  124. package/dist/esm/providers/s3/apis/internal/getUrl.mjs.map +1 -1
  125. package/dist/esm/providers/s3/apis/internal/list.mjs +13 -13
  126. package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
  127. package/dist/esm/providers/s3/apis/internal/remove.mjs +13 -14
  128. package/dist/esm/providers/s3/apis/internal/remove.mjs.map +1 -1
  129. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +2 -1
  130. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs +32 -12
  131. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs.map +1 -1
  132. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +3 -1
  133. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs +13 -12
  134. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs.map +1 -1
  135. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs +27 -16
  136. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs.map +1 -1
  137. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.d.ts +3 -2
  138. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.mjs +27 -18
  139. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.mjs.map +1 -1
  140. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs +30 -17
  141. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs.map +1 -1
  142. package/dist/esm/providers/s3/apis/uploadData/validateObjectNotExists.d.ts +3 -0
  143. package/dist/esm/providers/s3/apis/uploadData/validateObjectNotExists.mjs +34 -0
  144. package/dist/esm/providers/s3/apis/uploadData/validateObjectNotExists.mjs.map +1 -0
  145. package/dist/esm/providers/s3/types/index.d.ts +1 -1
  146. package/dist/esm/providers/s3/types/inputs.d.ts +5 -2
  147. package/dist/esm/providers/s3/types/options.d.ts +38 -1
  148. package/dist/esm/providers/s3/utils/client/s3control/base.d.ts +31 -0
  149. package/dist/esm/providers/s3/utils/client/s3control/base.mjs +48 -0
  150. package/dist/esm/providers/s3/utils/client/s3control/base.mjs.map +1 -0
  151. package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.d.ts +26 -0
  152. package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs +63 -0
  153. package/dist/esm/providers/s3/utils/client/s3control/getDataAccess.mjs.map +1 -0
  154. package/dist/esm/providers/s3/utils/client/s3control/index.d.ts +2 -0
  155. package/dist/esm/providers/s3/utils/client/s3control/index.mjs +3 -0
  156. package/dist/esm/providers/s3/utils/client/s3control/index.mjs.map +1 -0
  157. package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.d.ts +26 -0
  158. package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs +64 -0
  159. package/dist/esm/providers/s3/utils/client/s3control/listCallerAccessGrants.mjs.map +1 -0
  160. package/dist/esm/providers/s3/utils/client/s3control/types.d.ts +176 -0
  161. package/dist/esm/providers/s3/utils/client/{abortMultipartUpload.d.ts → s3data/abortMultipartUpload.d.ts} +4 -4
  162. package/dist/esm/providers/s3/utils/client/{abortMultipartUpload.mjs → s3data/abortMultipartUpload.mjs} +6 -6
  163. package/dist/esm/providers/s3/utils/client/s3data/abortMultipartUpload.mjs.map +1 -0
  164. package/dist/esm/providers/s3/utils/client/{base.d.ts → s3data/base.d.ts} +1 -1
  165. package/dist/esm/providers/s3/utils/client/{base.mjs → s3data/base.mjs} +5 -5
  166. package/dist/esm/providers/s3/utils/client/s3data/base.mjs.map +1 -0
  167. package/dist/esm/providers/s3/utils/client/{completeMultipartUpload.d.ts → s3data/completeMultipartUpload.d.ts} +6 -6
  168. package/dist/esm/providers/s3/utils/client/{completeMultipartUpload.mjs → s3data/completeMultipartUpload.mjs} +20 -14
  169. package/dist/esm/providers/s3/utils/client/s3data/completeMultipartUpload.mjs.map +1 -0
  170. package/dist/esm/providers/s3/utils/client/{copyObject.d.ts → s3data/copyObject.d.ts} +4 -4
  171. package/dist/esm/providers/s3/utils/client/{copyObject.mjs → s3data/copyObject.mjs} +6 -6
  172. package/dist/esm/providers/s3/utils/client/s3data/copyObject.mjs.map +1 -0
  173. package/dist/esm/providers/s3/utils/client/{createMultipartUpload.d.ts → s3data/createMultipartUpload.d.ts} +4 -4
  174. package/dist/esm/providers/s3/utils/client/{createMultipartUpload.mjs → s3data/createMultipartUpload.mjs} +12 -7
  175. package/dist/esm/providers/s3/utils/client/s3data/createMultipartUpload.mjs.map +1 -0
  176. package/dist/esm/providers/s3/utils/client/{deleteObject.d.ts → s3data/deleteObject.d.ts} +4 -4
  177. package/dist/esm/providers/s3/utils/client/{deleteObject.mjs → s3data/deleteObject.mjs} +6 -6
  178. package/dist/esm/providers/s3/utils/client/s3data/deleteObject.mjs.map +1 -0
  179. package/dist/esm/providers/s3/utils/client/{getObject.d.ts → s3data/getObject.d.ts} +4 -4
  180. package/dist/esm/providers/s3/utils/client/{getObject.mjs → s3data/getObject.mjs} +7 -7
  181. package/dist/esm/providers/s3/utils/client/s3data/getObject.mjs.map +1 -0
  182. package/dist/esm/providers/s3/utils/client/{headObject.d.ts → s3data/headObject.d.ts} +4 -4
  183. package/dist/esm/providers/s3/utils/client/{headObject.mjs → s3data/headObject.mjs} +6 -6
  184. package/dist/esm/providers/s3/utils/client/s3data/headObject.mjs.map +1 -0
  185. package/dist/esm/providers/s3/utils/client/{listObjectsV2.d.ts → s3data/listObjectsV2.d.ts} +4 -4
  186. package/dist/esm/providers/s3/utils/client/{listObjectsV2.mjs → s3data/listObjectsV2.mjs} +6 -6
  187. package/dist/esm/providers/s3/utils/client/s3data/listObjectsV2.mjs.map +1 -0
  188. package/dist/esm/providers/s3/utils/client/{listParts.d.ts → s3data/listParts.d.ts} +4 -4
  189. package/dist/esm/providers/s3/utils/client/{listParts.mjs → s3data/listParts.mjs} +7 -6
  190. package/dist/esm/providers/s3/utils/client/s3data/listParts.mjs.map +1 -0
  191. package/dist/esm/providers/s3/utils/client/{putObject.d.ts → s3data/putObject.d.ts} +5 -5
  192. package/dist/esm/providers/s3/utils/client/{putObject.mjs → s3data/putObject.mjs} +7 -6
  193. package/dist/esm/providers/s3/utils/client/s3data/putObject.mjs.map +1 -0
  194. package/dist/esm/providers/s3/utils/client/s3data/types.mjs +2 -0
  195. package/dist/esm/providers/s3/utils/client/s3data/types.mjs.map +1 -0
  196. package/dist/esm/providers/s3/utils/client/{uploadPart.d.ts → s3data/uploadPart.d.ts} +5 -5
  197. package/dist/esm/providers/s3/utils/client/{uploadPart.mjs → s3data/uploadPart.mjs} +8 -7
  198. package/dist/esm/providers/s3/utils/client/s3data/uploadPart.mjs.map +1 -0
  199. package/dist/esm/providers/s3/utils/client/utils/index.d.ts +1 -0
  200. package/dist/esm/providers/s3/utils/client/utils/index.mjs +1 -0
  201. package/dist/esm/providers/s3/utils/client/utils/index.mjs.map +1 -1
  202. package/dist/esm/providers/s3/utils/client/utils/retryDecider.d.ts +13 -0
  203. package/dist/esm/providers/s3/utils/client/utils/retryDecider.mjs +59 -0
  204. package/dist/esm/providers/s3/utils/client/utils/retryDecider.mjs.map +1 -0
  205. package/dist/esm/providers/s3/utils/crc32.d.ts +6 -0
  206. package/dist/esm/providers/s3/utils/crc32.mjs +34 -0
  207. package/dist/esm/providers/s3/utils/crc32.mjs.map +1 -0
  208. package/dist/esm/providers/s3/utils/crc32.native.d.ts +2 -0
  209. package/dist/esm/providers/s3/utils/crc32.native.mjs +8 -0
  210. package/dist/esm/providers/s3/utils/crc32.native.mjs.map +1 -0
  211. package/dist/esm/providers/s3/utils/resolveIdentityId.d.ts +1 -0
  212. package/dist/esm/providers/s3/utils/resolveIdentityId.mjs +12 -0
  213. package/dist/esm/providers/s3/utils/resolveIdentityId.mjs.map +1 -0
  214. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.d.ts +11 -2
  215. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs +72 -12
  216. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs.map +1 -1
  217. package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs +4 -1
  218. package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs.map +1 -1
  219. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs +4 -1
  220. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs.map +1 -1
  221. package/dist/esm/storageBrowser/apis/constants.d.ts +2 -0
  222. package/dist/esm/storageBrowser/apis/constants.mjs +7 -0
  223. package/dist/esm/storageBrowser/apis/constants.mjs.map +1 -0
  224. package/dist/esm/storageBrowser/apis/getDataAccess.d.ts +2 -0
  225. package/dist/esm/storageBrowser/apis/getDataAccess.mjs +57 -0
  226. package/dist/esm/storageBrowser/apis/getDataAccess.mjs.map +1 -0
  227. package/dist/esm/storageBrowser/apis/listCallerAccessGrants.d.ts +2 -0
  228. package/dist/esm/storageBrowser/apis/listCallerAccessGrants.mjs +79 -0
  229. package/dist/esm/storageBrowser/apis/listCallerAccessGrants.mjs.map +1 -0
  230. package/dist/esm/storageBrowser/apis/types.d.ts +18 -0
  231. package/dist/esm/storageBrowser/apis/types.mjs +2 -0
  232. package/dist/esm/storageBrowser/apis/types.mjs.map +1 -0
  233. package/dist/esm/storageBrowser/index.d.ts +6 -0
  234. package/dist/esm/storageBrowser/index.mjs +3 -0
  235. package/dist/esm/storageBrowser/index.mjs.map +1 -0
  236. package/dist/esm/storageBrowser/locationCredentialsStore/constants.d.ts +2 -0
  237. package/dist/esm/storageBrowser/locationCredentialsStore/constants.mjs +7 -0
  238. package/dist/esm/storageBrowser/locationCredentialsStore/constants.mjs.map +1 -0
  239. package/dist/esm/storageBrowser/locationCredentialsStore/create.d.ts +2 -0
  240. package/dist/esm/storageBrowser/locationCredentialsStore/create.mjs +34 -0
  241. package/dist/esm/storageBrowser/locationCredentialsStore/create.mjs.map +1 -0
  242. package/dist/esm/storageBrowser/locationCredentialsStore/index.d.ts +1 -0
  243. package/dist/esm/storageBrowser/locationCredentialsStore/index.mjs +2 -0
  244. package/dist/esm/storageBrowser/locationCredentialsStore/index.mjs.map +1 -0
  245. package/dist/esm/storageBrowser/locationCredentialsStore/registry.d.ts +23 -0
  246. package/dist/esm/storageBrowser/locationCredentialsStore/registry.mjs +54 -0
  247. package/dist/esm/storageBrowser/locationCredentialsStore/registry.mjs.map +1 -0
  248. package/dist/esm/storageBrowser/locationCredentialsStore/store.d.ts +35 -0
  249. package/dist/esm/storageBrowser/locationCredentialsStore/store.mjs +95 -0
  250. package/dist/esm/storageBrowser/locationCredentialsStore/store.mjs.map +1 -0
  251. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.d.ts +8 -0
  252. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.mjs +13 -0
  253. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.mjs.map +1 -0
  254. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.d.ts +8 -0
  255. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.mjs +27 -0
  256. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.mjs.map +1 -0
  257. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.d.ts +19 -0
  258. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.mjs +30 -0
  259. package/dist/esm/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.mjs.map +1 -0
  260. package/dist/esm/storageBrowser/managedAuthConfigAdapter/index.d.ts +1 -0
  261. package/dist/esm/storageBrowser/managedAuthConfigAdapter/index.mjs +2 -0
  262. package/dist/esm/storageBrowser/managedAuthConfigAdapter/index.mjs.map +1 -0
  263. package/dist/esm/storageBrowser/types.d.ts +92 -0
  264. package/dist/esm/storageBrowser/types.mjs +2 -0
  265. package/dist/esm/storageBrowser/types.mjs.map +1 -0
  266. package/dist/esm/types/inputs.d.ts +3 -3
  267. package/package.json +117 -107
  268. package/src/errors/constants.ts +4 -0
  269. package/src/errors/types/validation.ts +21 -0
  270. package/src/providers/s3/apis/downloadData.ts +2 -2
  271. package/src/providers/s3/apis/internal/copy.ts +77 -23
  272. package/src/providers/s3/apis/internal/getProperties.ts +2 -3
  273. package/src/providers/s3/apis/internal/getUrl.ts +2 -2
  274. package/src/providers/s3/apis/internal/list.ts +3 -3
  275. package/src/providers/s3/apis/internal/remove.ts +2 -3
  276. package/src/providers/s3/apis/uploadData/multipart/initialUpload.ts +30 -1
  277. package/src/providers/s3/apis/uploadData/multipart/uploadCache.ts +4 -1
  278. package/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +36 -17
  279. package/src/providers/s3/apis/uploadData/multipart/uploadPartExecutor.ts +23 -7
  280. package/src/providers/s3/apis/uploadData/putObjectJob.ts +22 -5
  281. package/src/providers/s3/apis/uploadData/validateObjectNotExists.ts +25 -0
  282. package/src/providers/s3/types/index.ts +2 -0
  283. package/src/providers/s3/types/inputs.ts +11 -1
  284. package/src/providers/s3/types/options.ts +51 -1
  285. package/src/providers/s3/utils/client/s3control/base.ts +70 -0
  286. package/src/providers/s3/utils/client/s3control/getDataAccess.ts +97 -0
  287. package/src/providers/s3/utils/client/s3control/index.ts +13 -0
  288. package/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts +104 -0
  289. package/src/providers/s3/utils/client/s3control/types.ts +213 -0
  290. package/src/providers/s3/utils/client/{abortMultipartUpload.ts → s3data/abortMultipartUpload.ts} +4 -3
  291. package/src/providers/s3/utils/client/{base.ts → s3data/base.ts} +2 -3
  292. package/src/providers/s3/utils/client/{completeMultipartUpload.ts → s3data/completeMultipartUpload.ts} +29 -18
  293. package/src/providers/s3/utils/client/{copyObject.ts → s3data/copyObject.ts} +4 -3
  294. package/src/providers/s3/utils/client/{createMultipartUpload.ts → s3data/createMultipartUpload.ts} +15 -8
  295. package/src/providers/s3/utils/client/{deleteObject.ts → s3data/deleteObject.ts} +7 -6
  296. package/src/providers/s3/utils/client/{getObject.ts → s3data/getObject.ts} +8 -7
  297. package/src/providers/s3/utils/client/{headObject.ts → s3data/headObject.ts} +4 -3
  298. package/src/providers/s3/utils/client/{listObjectsV2.ts → s3data/listObjectsV2.ts} +7 -6
  299. package/src/providers/s3/utils/client/{listParts.ts → s3data/listParts.ts} +9 -7
  300. package/src/providers/s3/utils/client/{putObject.ts → s3data/putObject.ts} +6 -3
  301. package/src/providers/s3/utils/client/{uploadPart.ts → s3data/uploadPart.ts} +13 -5
  302. package/src/providers/s3/utils/client/utils/index.ts +1 -0
  303. package/src/providers/s3/utils/client/utils/retryDecider.ts +81 -0
  304. package/src/providers/s3/utils/crc32.native.ts +11 -0
  305. package/src/providers/s3/utils/crc32.ts +51 -0
  306. package/src/providers/s3/utils/resolveIdentityId.ts +11 -0
  307. package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +142 -16
  308. package/src/providers/s3/utils/validateStorageOperationInput.ts +5 -1
  309. package/src/providers/s3/utils/validateStorageOperationInputWithPrefix.ts +5 -1
  310. package/src/storageBrowser/apis/constants.ts +5 -0
  311. package/src/storageBrowser/apis/getDataAccess.ts +79 -0
  312. package/src/storageBrowser/apis/listCallerAccessGrants.ts +107 -0
  313. package/src/storageBrowser/apis/types.ts +33 -0
  314. package/src/storageBrowser/index.ts +25 -0
  315. package/src/storageBrowser/locationCredentialsStore/constants.ts +5 -0
  316. package/src/storageBrowser/locationCredentialsStore/create.ts +54 -0
  317. package/src/storageBrowser/locationCredentialsStore/index.ts +4 -0
  318. package/src/storageBrowser/locationCredentialsStore/registry.ts +88 -0
  319. package/src/storageBrowser/locationCredentialsStore/store.ts +161 -0
  320. package/src/storageBrowser/managedAuthConfigAdapter/createListLocationsHandler.ts +21 -0
  321. package/src/storageBrowser/managedAuthConfigAdapter/createLocationCredentialsHandler.ts +40 -0
  322. package/src/storageBrowser/managedAuthConfigAdapter/createManagedAuthConfigAdapter.ts +53 -0
  323. package/src/storageBrowser/managedAuthConfigAdapter/index.ts +8 -0
  324. package/src/storageBrowser/types.ts +117 -0
  325. package/src/types/inputs.ts +7 -3
  326. package/dist/cjs/providers/s3/utils/client/abortMultipartUpload.js.map +0 -1
  327. package/dist/cjs/providers/s3/utils/client/base.js.map +0 -1
  328. package/dist/cjs/providers/s3/utils/client/completeMultipartUpload.js.map +0 -1
  329. package/dist/cjs/providers/s3/utils/client/copyObject.js.map +0 -1
  330. package/dist/cjs/providers/s3/utils/client/createMultipartUpload.js.map +0 -1
  331. package/dist/cjs/providers/s3/utils/client/deleteObject.js.map +0 -1
  332. package/dist/cjs/providers/s3/utils/client/getObject.js.map +0 -1
  333. package/dist/cjs/providers/s3/utils/client/headObject.js.map +0 -1
  334. package/dist/cjs/providers/s3/utils/client/index.js.map +0 -1
  335. package/dist/cjs/providers/s3/utils/client/listObjectsV2.js.map +0 -1
  336. package/dist/cjs/providers/s3/utils/client/listParts.js.map +0 -1
  337. package/dist/cjs/providers/s3/utils/client/putObject.js.map +0 -1
  338. package/dist/cjs/providers/s3/utils/client/types.js.map +0 -1
  339. package/dist/cjs/providers/s3/utils/client/uploadPart.js.map +0 -1
  340. package/dist/esm/providers/s3/utils/client/abortMultipartUpload.mjs.map +0 -1
  341. package/dist/esm/providers/s3/utils/client/base.mjs.map +0 -1
  342. package/dist/esm/providers/s3/utils/client/completeMultipartUpload.mjs.map +0 -1
  343. package/dist/esm/providers/s3/utils/client/copyObject.mjs.map +0 -1
  344. package/dist/esm/providers/s3/utils/client/createMultipartUpload.mjs.map +0 -1
  345. package/dist/esm/providers/s3/utils/client/deleteObject.mjs.map +0 -1
  346. package/dist/esm/providers/s3/utils/client/getObject.mjs.map +0 -1
  347. package/dist/esm/providers/s3/utils/client/headObject.mjs.map +0 -1
  348. package/dist/esm/providers/s3/utils/client/listObjectsV2.mjs.map +0 -1
  349. package/dist/esm/providers/s3/utils/client/listParts.mjs.map +0 -1
  350. package/dist/esm/providers/s3/utils/client/putObject.mjs.map +0 -1
  351. package/dist/esm/providers/s3/utils/client/uploadPart.mjs.map +0 -1
  352. /package/dist/cjs/providers/s3/utils/client/{types.js → s3control/types.js} +0 -0
  353. /package/dist/cjs/providers/s3/utils/client/{index.js → s3data/index.js} +0 -0
  354. /package/dist/esm/providers/s3/utils/client/{types.mjs → s3control/types.mjs} +0 -0
  355. /package/dist/esm/providers/s3/utils/client/{types.mjs.map → s3control/types.mjs.map} +0 -0
  356. /package/dist/esm/providers/s3/utils/client/{index.d.ts → s3data/index.d.ts} +0 -0
  357. /package/dist/esm/providers/s3/utils/client/{index.mjs → s3data/index.mjs} +0 -0
  358. /package/dist/esm/providers/s3/utils/client/{index.mjs.map → s3data/index.mjs.map} +0 -0
  359. /package/dist/esm/providers/s3/utils/client/{types.d.ts → s3data/types.d.ts} +0 -0
  360. /package/src/providers/s3/utils/client/{index.ts → s3data/index.ts} +0 -0
  361. /package/src/providers/s3/utils/client/{types.ts → s3data/types.ts} +0 -0
@@ -11,11 +11,14 @@ import {
11
11
  validateStorageOperationInput,
12
12
  } from '../../utils';
13
13
  import { ItemWithKey, ItemWithPath } from '../../types/outputs';
14
- import { putObject } from '../../utils/client';
14
+ import { putObject } from '../../utils/client/s3data';
15
15
  import { getStorageUserAgentValue } from '../../utils/userAgent';
16
16
  import { STORAGE_INPUT_KEY } from '../../utils/constants';
17
+ import { calculateContentCRC32 } from '../../utils/crc32';
17
18
  import { constructContentDisposition } from '../../utils/constructContentDisposition';
18
19
 
20
+ import { validateObjectNotExists } from './validateObjectNotExists';
21
+
19
22
  /**
20
23
  * Get a function the returns a promise to call putObject API to S3.
21
24
  *
@@ -30,7 +33,7 @@ export const putObjectJob =
30
33
  async (): Promise<ItemWithKey | ItemWithPath> => {
31
34
  const { options: uploadDataOptions, data } = uploadDataInput;
32
35
  const { bucket, keyPrefix, s3Config, isObjectLockEnabled, identityId } =
33
- await resolveS3ConfigAndInput(Amplify, uploadDataOptions);
36
+ await resolveS3ConfigAndInput(Amplify, uploadDataInput);
34
37
  const { inputType, objectKey } = validateStorageOperationInput(
35
38
  uploadDataInput,
36
39
  identityId,
@@ -42,10 +45,25 @@ export const putObjectJob =
42
45
  contentDisposition,
43
46
  contentEncoding,
44
47
  contentType = 'application/octet-stream',
48
+ preventOverwrite,
45
49
  metadata,
46
50
  onProgress,
47
51
  } = uploadDataOptions ?? {};
48
52
 
53
+ const checksumCRC32 = await calculateContentCRC32(data);
54
+ const contentMD5 =
55
+ // check if checksum exists. ex: should not exist in react native
56
+ !checksumCRC32 && isObjectLockEnabled
57
+ ? await calculateContentMd5(data)
58
+ : undefined;
59
+
60
+ if (preventOverwrite) {
61
+ await validateObjectNotExists(s3Config, {
62
+ Bucket: bucket,
63
+ Key: finalKey,
64
+ });
65
+ }
66
+
49
67
  const { ETag: eTag, VersionId: versionId } = await putObject(
50
68
  {
51
69
  ...s3Config,
@@ -61,9 +79,8 @@ export const putObjectJob =
61
79
  ContentDisposition: constructContentDisposition(contentDisposition),
62
80
  ContentEncoding: contentEncoding,
63
81
  Metadata: metadata,
64
- ContentMD5: isObjectLockEnabled
65
- ? await calculateContentMd5(data)
66
- : undefined,
82
+ ContentMD5: contentMD5,
83
+ ChecksumCRC32: checksumCRC32?.checksum,
67
84
  },
68
85
  );
69
86
 
@@ -0,0 +1,25 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { StorageError } from '../../../../errors/StorageError';
5
+ import { ResolvedS3Config } from '../../types/options';
6
+ import { HeadObjectInput, headObject } from '../../utils/client/s3data';
7
+
8
+ export const validateObjectNotExists = async (
9
+ s3Config: ResolvedS3Config,
10
+ input: HeadObjectInput,
11
+ ): Promise<void> => {
12
+ try {
13
+ await headObject(s3Config, input);
14
+
15
+ throw new StorageError({
16
+ name: 'PreconditionFailed',
17
+ message: 'At least one of the pre-conditions you specified did not hold',
18
+ });
19
+ } catch (error) {
20
+ const serviceError = error as StorageError;
21
+ if (serviceError.name !== 'NotFound') {
22
+ throw error;
23
+ }
24
+ }
25
+ };
@@ -17,6 +17,8 @@ export {
17
17
  DownloadDataOptionsWithKey,
18
18
  CopyDestinationOptionsWithKey,
19
19
  CopySourceOptionsWithKey,
20
+ CopyWithPathSourceOptions,
21
+ CopyWithPathDestinationOptions,
20
22
  } from './options';
21
23
  export {
22
24
  UploadDataOutput,
@@ -20,6 +20,8 @@ import {
20
20
  import {
21
21
  CopyDestinationOptionsWithKey,
22
22
  CopySourceOptionsWithKey,
23
+ CopyWithPathDestinationOptions,
24
+ CopyWithPathSourceOptions,
23
25
  DownloadDataOptionsWithKey,
24
26
  DownloadDataOptionsWithPath,
25
27
  GetPropertiesOptionsWithKey,
@@ -35,6 +37,8 @@ import {
35
37
  UploadDataOptionsWithPath,
36
38
  } from '../types';
37
39
 
40
+ import { LocationCredentialsProvider } from './options';
41
+
38
42
  // TODO: support use accelerate endpoint option
39
43
  /**
40
44
  * @deprecated Use {@link CopyWithPathInput} instead.
@@ -47,7 +51,13 @@ export type CopyInput = StorageCopyInputWithKey<
47
51
  /**
48
52
  * Input type with path for S3 copy API.
49
53
  */
50
- export type CopyWithPathInput = StorageCopyInputWithPath;
54
+ export type CopyWithPathInput = StorageCopyInputWithPath<
55
+ CopyWithPathSourceOptions,
56
+ CopyWithPathDestinationOptions,
57
+ {
58
+ locationCredentialsProvider?: LocationCredentialsProvider;
59
+ }
60
+ >;
51
61
 
52
62
  /**
53
63
  * @deprecated Use {@link GetPropertiesWithPathInput} instead.
@@ -2,7 +2,11 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import { StorageAccessLevel } from '@aws-amplify/core';
5
- import { SigningOptions } from '@aws-amplify/core/internals/aws-client-utils';
5
+ import { AWSCredentials } from '@aws-amplify/core/internals/utils';
6
+ import {
7
+ CredentialsProviderOptions,
8
+ SigningOptions,
9
+ } from '@aws-amplify/core/internals/aws-client-utils';
6
10
 
7
11
  import { TransferProgressEvent } from '../../../types';
8
12
  import {
@@ -11,12 +15,44 @@ import {
11
15
  StorageSubpathStrategy,
12
16
  } from '../../../types/options';
13
17
 
18
+ /**
19
+ * @internal
20
+ */
21
+ export type AWSTemporaryCredentials = Required<
22
+ Pick<
23
+ AWSCredentials,
24
+ 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'expiration'
25
+ >
26
+ >;
27
+
28
+ /**
29
+ * @internal
30
+ */
31
+ export type LocationCredentialsProvider = (
32
+ options?: CredentialsProviderOptions,
33
+ ) => Promise<{ credentials: AWSTemporaryCredentials }>;
34
+
35
+ export interface BucketInfo {
36
+ bucketName: string;
37
+ region: string;
38
+ }
39
+
40
+ export type StorageBucket = string | BucketInfo;
14
41
  interface CommonOptions {
15
42
  /**
16
43
  * Whether to use accelerate endpoint.
17
44
  * @default false
18
45
  */
19
46
  useAccelerateEndpoint?: boolean;
47
+
48
+ /**
49
+ * Async function returning AWS credentials for an API call. This function
50
+ * is invoked with S3 locations(bucket and path).
51
+ * If omitted, the global credentials configured in Amplify Auth
52
+ * would be used.
53
+ */
54
+ locationCredentialsProvider?: LocationCredentialsProvider;
55
+ bucket?: StorageBucket;
20
56
  }
21
57
 
22
58
  /**
@@ -183,6 +219,11 @@ export type UploadDataOptions = CommonOptions &
183
219
  * @see https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html#UserMetadata
184
220
  */
185
221
  metadata?: Record<string, string>;
222
+ /**
223
+ * Enforces target key does not already exist in S3 before committing upload.
224
+ * @default false
225
+ */
226
+ preventOverwrite?: boolean;
186
227
  };
187
228
 
188
229
  /** @deprecated Use {@link UploadDataOptionsWithPath} instead. */
@@ -193,14 +234,23 @@ export type UploadDataOptionsWithPath = UploadDataOptions;
193
234
  export type CopySourceOptionsWithKey = ReadOptions & {
194
235
  /** @deprecated This may be removed in the next major version. */
195
236
  key: string;
237
+ bucket?: StorageBucket;
196
238
  };
197
239
 
198
240
  /** @deprecated This may be removed in the next major version. */
199
241
  export type CopyDestinationOptionsWithKey = WriteOptions & {
200
242
  /** @deprecated This may be removed in the next major version. */
201
243
  key: string;
244
+ bucket?: StorageBucket;
202
245
  };
203
246
 
247
+ export interface CopyWithPathSourceOptions {
248
+ bucket?: StorageBucket;
249
+ }
250
+ export interface CopyWithPathDestinationOptions {
251
+ bucket?: StorageBucket;
252
+ }
253
+
204
254
  /**
205
255
  * Internal only type for S3 API handlers' config parameter.
206
256
  *
@@ -0,0 +1,70 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import {
5
+ AmplifyUrl,
6
+ getAmplifyUserAgent,
7
+ } from '@aws-amplify/core/internals/utils';
8
+ import {
9
+ EndpointResolverOptions,
10
+ getDnsSuffix,
11
+ jitteredBackoff,
12
+ } from '@aws-amplify/core/internals/aws-client-utils';
13
+
14
+ import { retryDecider } from '../utils';
15
+
16
+ /**
17
+ * The service name used to sign requests if the API requires authentication.
18
+ */
19
+ export const SERVICE_NAME = 's3';
20
+
21
+ /**
22
+ * Options for endpoint resolver.
23
+ *
24
+ * @internal
25
+ */
26
+ export type S3EndpointResolverOptions = EndpointResolverOptions & {
27
+ /**
28
+ * Fully qualified custom endpoint for S3. If this is set, this endpoint will be used regardless of region.
29
+ */
30
+ customEndpoint?: string;
31
+ };
32
+
33
+ /**
34
+ * The endpoint resolver function that returns the endpoint URL for a given region, and input parameters.
35
+ */
36
+ const endpointResolver = (
37
+ options: S3EndpointResolverOptions,
38
+ apiInput?: { AccountId?: string },
39
+ ) => {
40
+ const { region, customEndpoint } = options;
41
+ const { AccountId: accountId } = apiInput || {};
42
+ let endpoint: URL;
43
+ // 1. get base endpoint
44
+ if (customEndpoint) {
45
+ endpoint = new AmplifyUrl(customEndpoint);
46
+ } else if (accountId) {
47
+ // Control plane operations
48
+ endpoint = new AmplifyUrl(
49
+ `https://${accountId}.s3-control.${region}.${getDnsSuffix(region)}`,
50
+ );
51
+ } else {
52
+ endpoint = new AmplifyUrl(
53
+ `https://s3-control.${region}.${getDnsSuffix(region)}`,
54
+ );
55
+ }
56
+
57
+ return { url: endpoint };
58
+ };
59
+
60
+ /**
61
+ * @internal
62
+ */
63
+ export const defaultConfig = {
64
+ service: SERVICE_NAME,
65
+ endpointResolver,
66
+ retryDecider,
67
+ computeDelay: jitteredBackoff,
68
+ userAgentValue: getAmplifyUserAgent(),
69
+ uriEscapePath: false, // Required by S3. See https://github.com/aws/aws-sdk-js-v3/blob/9ba012dfa3a3429aa2db0f90b3b0b3a7a31f9bc3/packages/signature-v4/src/SignatureV4.ts#L76-L83
70
+ };
@@ -0,0 +1,97 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import {
5
+ Endpoint,
6
+ HttpRequest,
7
+ HttpResponse,
8
+ parseMetadata,
9
+ } from '@aws-amplify/core/internals/aws-client-utils';
10
+ import {
11
+ AmplifyUrl,
12
+ AmplifyUrlSearchParams,
13
+ } from '@aws-amplify/core/internals/utils';
14
+ import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
15
+
16
+ import {
17
+ assignStringVariables,
18
+ buildStorageServiceError,
19
+ deserializeTimestamp,
20
+ map,
21
+ parseXmlBody,
22
+ parseXmlError,
23
+ s3TransferHandler,
24
+ } from '../utils';
25
+
26
+ import type {
27
+ GetDataAccessCommandInput,
28
+ GetDataAccessCommandOutput,
29
+ } from './types';
30
+ import { defaultConfig } from './base';
31
+
32
+ export type GetDataAccessInput = GetDataAccessCommandInput;
33
+
34
+ export type GetDataAccessOutput = GetDataAccessCommandOutput;
35
+
36
+ const getDataAccessSerializer = (
37
+ input: GetDataAccessInput,
38
+ endpoint: Endpoint,
39
+ ): HttpRequest => {
40
+ const headers = assignStringVariables({
41
+ 'x-amz-account-id': input.AccountId,
42
+ });
43
+ const query = assignStringVariables({
44
+ durationSeconds: input.DurationSeconds,
45
+ permission: input.Permission,
46
+ privilege: input.Privilege,
47
+ target: input.Target,
48
+ targetType: input.TargetType,
49
+ });
50
+ const url = new AmplifyUrl(endpoint.url.toString());
51
+ url.search = new AmplifyUrlSearchParams(query).toString();
52
+
53
+ // Ref: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetDataAccess.html
54
+ url.pathname = '/v20180820/accessgrantsinstance/dataaccess';
55
+
56
+ return {
57
+ method: 'GET',
58
+ headers,
59
+ url,
60
+ };
61
+ };
62
+
63
+ const getDataAccessDeserializer = async (
64
+ response: HttpResponse,
65
+ ): Promise<GetDataAccessCommandOutput> => {
66
+ if (response.statusCode >= 300) {
67
+ // error is always set when statusCode >= 300
68
+ const error = (await parseXmlError(response)) as Error;
69
+ throw buildStorageServiceError(error, response.statusCode);
70
+ } else {
71
+ const parsed = await parseXmlBody(response);
72
+ const contents = map(parsed, {
73
+ Credentials: ['Credentials', deserializeCredentials],
74
+ MatchedGrantTarget: 'MatchedGrantTarget',
75
+ });
76
+
77
+ return {
78
+ $metadata: parseMetadata(response),
79
+ ...contents,
80
+ };
81
+ }
82
+ };
83
+
84
+ const deserializeCredentials = (output: any) =>
85
+ map(output, {
86
+ AccessKeyId: 'AccessKeyId',
87
+ Expiration: ['Expiration', deserializeTimestamp],
88
+ SecretAccessKey: 'SecretAccessKey',
89
+ SessionToken: 'SessionToken',
90
+ });
91
+
92
+ export const getDataAccess = composeServiceApi(
93
+ s3TransferHandler,
94
+ getDataAccessSerializer,
95
+ getDataAccessDeserializer,
96
+ { ...defaultConfig, responseType: 'text' },
97
+ );
@@ -0,0 +1,13 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export {
5
+ getDataAccess,
6
+ GetDataAccessInput,
7
+ GetDataAccessOutput,
8
+ } from '../s3control/getDataAccess';
9
+ export {
10
+ listCallerAccessGrants,
11
+ ListCallerAccessGrantsInput,
12
+ ListCallerAccessGrantsOutput,
13
+ } from '../s3control/listCallerAccessGrants';
@@ -0,0 +1,104 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import {
5
+ Endpoint,
6
+ HttpRequest,
7
+ HttpResponse,
8
+ parseMetadata,
9
+ } from '@aws-amplify/core/internals/aws-client-utils';
10
+ import {
11
+ AmplifyUrl,
12
+ AmplifyUrlSearchParams,
13
+ } from '@aws-amplify/core/internals/utils';
14
+ import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';
15
+
16
+ import {
17
+ assignStringVariables,
18
+ buildStorageServiceError,
19
+ emptyArrayGuard,
20
+ map,
21
+ parseXmlBody,
22
+ parseXmlError,
23
+ s3TransferHandler,
24
+ } from '../utils';
25
+
26
+ import type {
27
+ ListCallerAccessGrantsCommandInput,
28
+ ListCallerAccessGrantsCommandOutput,
29
+ } from './types';
30
+ import { defaultConfig } from './base';
31
+
32
+ export type ListCallerAccessGrantsInput = ListCallerAccessGrantsCommandInput;
33
+
34
+ export type ListCallerAccessGrantsOutput = ListCallerAccessGrantsCommandOutput;
35
+
36
+ const listCallerAccessGrantsSerializer = (
37
+ input: ListCallerAccessGrantsInput,
38
+ endpoint: Endpoint,
39
+ ): HttpRequest => {
40
+ const headers = assignStringVariables({
41
+ 'x-amz-account-id': input.AccountId,
42
+ });
43
+ const query = assignStringVariables({
44
+ grantscope: input.GrantScope,
45
+ maxResults: input.MaxResults,
46
+ nextToken: input.NextToken,
47
+ });
48
+ const url = new AmplifyUrl(endpoint.url.toString());
49
+ url.search = new AmplifyUrlSearchParams(query).toString();
50
+
51
+ // Ref: NA
52
+ url.pathname = '/v20180820/accessgrantsinstance/caller/grants';
53
+
54
+ return {
55
+ method: 'GET',
56
+ headers,
57
+ url,
58
+ };
59
+ };
60
+
61
+ const listCallerAccessGrantsDeserializer = async (
62
+ response: HttpResponse,
63
+ ): Promise<ListCallerAccessGrantsOutput> => {
64
+ if (response.statusCode >= 300) {
65
+ // error is always set when statusCode >= 300
66
+ const error = (await parseXmlError(response)) as Error;
67
+ throw buildStorageServiceError(error, response.statusCode);
68
+ } else {
69
+ const parsed = await parseXmlBody(response);
70
+ const contents = map(parsed, {
71
+ CallerAccessGrantsList: [
72
+ 'CallerAccessGrantsList',
73
+ value =>
74
+ emptyArrayGuard(
75
+ value.AccessGrantsInstance,
76
+ deserializeAccessGrantsList,
77
+ ),
78
+ ],
79
+ NextToken: 'NextToken',
80
+ });
81
+
82
+ return {
83
+ $metadata: parseMetadata(response),
84
+ ...contents,
85
+ };
86
+ }
87
+ };
88
+
89
+ const deserializeAccessGrantsList = (output: any[]) =>
90
+ output.map(deserializeCallerAccessGrant);
91
+
92
+ const deserializeCallerAccessGrant = (output: any) =>
93
+ map(output, {
94
+ ApplicationArn: 'ApplicationArn',
95
+ GrantScope: 'GrantScope',
96
+ Permission: 'Permission',
97
+ });
98
+
99
+ export const listCallerAccessGrants = composeServiceApi(
100
+ s3TransferHandler,
101
+ listCallerAccessGrantsSerializer,
102
+ listCallerAccessGrantsDeserializer,
103
+ { ...defaultConfig, responseType: 'text' },
104
+ );