|Delivery | [API](https://community.opengroup.org/osdu/platform/system/delivery/-/blob/master/docs/api/delivery.yaml) | [Notes](https://community.opengroup.org/osdu/documentation/-/wikis/OSDU-(C)/Design-and-Implementation/Ingestion-and-Enrichment-Detail/R2-Delivery) | [GitLab Delivery](https://community.opengroup.org/osdu/platform/system/delivery) | | The Azure Delivery Implementation is an additional endpoint to os-storage which will be migrated in R3 and can be found [here](https://community.opengroup.org/osdu/platform/system/storage/-/tree/master/provider/storage-azure/src/main/java/org/opengroup/osdu/storage/provider/azure/simpledelivery)(see caveats below)| | |
These are the convenience libraries that the data platform uses across different services. There is a core set of libraries (common behavior) as well as cloud platform specific versions that facilitate integration in their environment:
The Azure implementation of delivery follows a different implementation pattern as a result of provider dependency which will be addressed in R3. The Delivery function posts to a Delivery endpoint, but is hosted in the os-storage microservice.
The current API endpoint supported for delivery on Azure is as follows: https://\<main_service_URI\>/delivery/GetFileSignedURL
Agreed input/output and SPI
The main API call called for delivery is getFileSignedURLs(). Passing in the list of SRNs, it expects a list of file signed URLs in the JSON format below (output). We're generalizing using a String for the response (for now) to avoid pitfalls of strongly typing the response and reduce re-work when more functionality is added.
#### Delivery::GetFileSignedURL::Post - Input
```
{
srns: ["srn1", "srn2", "srn3"] < R2: required
}
```
#### Delivery::GetFileSignedURL::Post - Output
```
{
"unprocessed": ["srn1", "srn2"],
"processed": {
"srn3": {
"signedUrl": "https://...", < R2: required
"unsignedUrl": "...", < R2: Not required. Future extension point
"kind": "..." < R2: Not required. Future extension point
}
}
}
```
#### SPI
```
public interface ISignedURLService {
String getFileSignedURLS(List<String> srns); < R2: JSON representation of the API Output
}
```
We propose attaching the delivery API to the storage service as another endpoint.