...
Proposed solution (backwards compatible with the about-to-be released clients):
API
1) Add an API that gives a list of possible upload locations by ID and label for a given synapse container:
...
UploadDestinationLocation[] getUploadDestinationLocations(String parentId);
2) Add an API that gives a single specific upload destination by uploadId (parentId is redundant, but used for extra check against the valid uploadIds):
UploadDestination getUploadDestination(String parentId, String uploadId)
...
Object Model
Add uploadId as a new optional field to an ExternalFileHandle (perhaps S3FileHandle has this field too).
Note: Need ExternallyManagedFileHandle to distinguish from non-managed ExternalFileHandleThe new sequences:
Sequence
For uploading a new file:
...