Create a release upload intent for a scoped volume
curl --request POST \
--url https://api.example.com/api/v1/volumes/@{scope}/{name} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"version": "<string>",
"mediaType": "application/gzip",
"declaredDigest": "<string>",
"declaredSize": 1,
"idempotencyKey": "<string>"
}
'import requests
url = "https://api.example.com/api/v1/volumes/@{scope}/{name}"
payload = {
"version": "<string>",
"mediaType": "application/gzip",
"declaredDigest": "<string>",
"declaredSize": 1,
"idempotencyKey": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version: '<string>',
mediaType: 'application/gzip',
declaredDigest: '<string>',
declaredSize: 1,
idempotencyKey: '<string>'
})
};
fetch('https://api.example.com/api/v1/volumes/@{scope}/{name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/volumes/@{scope}/{name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'version' => '<string>',
'mediaType' => 'application/gzip',
'declaredDigest' => '<string>',
'declaredSize' => 1,
'idempotencyKey' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/volumes/@{scope}/{name}"
payload := strings.NewReader("{\n \"version\": \"<string>\",\n \"mediaType\": \"application/gzip\",\n \"declaredDigest\": \"<string>\",\n \"declaredSize\": 1,\n \"idempotencyKey\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/volumes/@{scope}/{name}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"version\": \"<string>\",\n \"mediaType\": \"application/gzip\",\n \"declaredDigest\": \"<string>\",\n \"declaredSize\": 1,\n \"idempotencyKey\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/volumes/@{scope}/{name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"version\": \"<string>\",\n \"mediaType\": \"application/gzip\",\n \"declaredDigest\": \"<string>\",\n \"declaredSize\": 1,\n \"idempotencyKey\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"uploadId": "<string>",
"target": {
"name": "<string>",
"version": "<string>"
},
"mediaType": "application/gzip",
"upload": {
"instructionType": "<string>",
"url": "<string>",
"method": "<string>",
"headers": {}
},
"expiresAt": "2023-11-07T05:31:56Z",
"state": "pending-upload",
"declaredDigest": "<string>",
"declaredSize": 1,
"idempotencyKey": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Preferred portable idempotency key. If this header and a body idempotencyKey are both present, they MUST match exactly.
Path Parameters
64^(?!.*--)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$128^(?!.*--)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$Body
The target package name is route-derived. This body supplies the target version and upload constraints; it does not override the path identity.
^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$"application/gzip"^sha256:[a-f0-9]{64}$Declared trust attachment byte size. A bibliotheca can reject the upload intent with 413 Payload Too Large when this value exceeds its accepted trust attachment size limit before byte transfer begins.
x >= 0Response
Upload intent created. Upload instructions are opaque implementation data.
Created for a route-derived target package identity and request-body target version. The target name in this response echoes the reconciled release identity.
1Show child attributes
Show child attributes
Portable hosted archive upload media type for .tar.gz release bytes.
"application/gzip"Show child attributes
Show child attributes
pending-upload, uploading, uploaded, expired, failed ^sha256:[a-f0-9]{64}$x >= 0curl --request POST \
--url https://api.example.com/api/v1/volumes/@{scope}/{name} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"version": "<string>",
"mediaType": "application/gzip",
"declaredDigest": "<string>",
"declaredSize": 1,
"idempotencyKey": "<string>"
}
'import requests
url = "https://api.example.com/api/v1/volumes/@{scope}/{name}"
payload = {
"version": "<string>",
"mediaType": "application/gzip",
"declaredDigest": "<string>",
"declaredSize": 1,
"idempotencyKey": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version: '<string>',
mediaType: 'application/gzip',
declaredDigest: '<string>',
declaredSize: 1,
idempotencyKey: '<string>'
})
};
fetch('https://api.example.com/api/v1/volumes/@{scope}/{name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/volumes/@{scope}/{name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'version' => '<string>',
'mediaType' => 'application/gzip',
'declaredDigest' => '<string>',
'declaredSize' => 1,
'idempotencyKey' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/volumes/@{scope}/{name}"
payload := strings.NewReader("{\n \"version\": \"<string>\",\n \"mediaType\": \"application/gzip\",\n \"declaredDigest\": \"<string>\",\n \"declaredSize\": 1,\n \"idempotencyKey\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/volumes/@{scope}/{name}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"version\": \"<string>\",\n \"mediaType\": \"application/gzip\",\n \"declaredDigest\": \"<string>\",\n \"declaredSize\": 1,\n \"idempotencyKey\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/volumes/@{scope}/{name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"version\": \"<string>\",\n \"mediaType\": \"application/gzip\",\n \"declaredDigest\": \"<string>\",\n \"declaredSize\": 1,\n \"idempotencyKey\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"uploadId": "<string>",
"target": {
"name": "<string>",
"version": "<string>"
},
"mediaType": "application/gzip",
"upload": {
"instructionType": "<string>",
"url": "<string>",
"method": "<string>",
"headers": {}
},
"expiresAt": "2023-11-07T05:31:56Z",
"state": "pending-upload",
"declaredDigest": "<string>",
"declaredSize": 1,
"idempotencyKey": "<string>"
}