import requests
url = "https://platform.ankra.app/api/v1/org/service-packages"
payload = {
"schema_version": 1,
"name": "<string>",
"version": "<string>",
"publisher_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"profiles": {},
"parameters": [
{
"name": "<string>",
"minimum": 500000000,
"maximum": 500000000,
"default": 500000000,
"unit": "<string>"
}
],
"secrets": [
{
"name": "<string>",
"modes": []
}
],
"outputs": [{ "name": "<string>" }],
"lifecycle": {
"verify": "<string>",
"upgrade": "<string>",
"recovery": "<string>",
"delete": "<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({
schema_version: 1,
name: '<string>',
version: '<string>',
publisher_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
profiles: {},
parameters: [
{
name: '<string>',
minimum: 500000000,
maximum: 500000000,
default: 500000000,
unit: '<string>'
}
],
secrets: [{name: '<string>', modes: []}],
outputs: [{name: '<string>'}],
lifecycle: {
verify: '<string>',
upgrade: '<string>',
recovery: '<string>',
delete: '<string>'
}
})
};
fetch('https://platform.ankra.app/api/v1/org/service-packages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://platform.ankra.app/api/v1/org/service-packages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"schema_version": 1,
"name": "<string>",
"version": "<string>",
"publisher_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"profiles": {},
"parameters": [
{
"name": "<string>",
"minimum": 500000000,
"maximum": 500000000,
"default": 500000000,
"unit": "<string>"
}
],
"secrets": [
{
"name": "<string>",
"modes": []
}
],
"outputs": [
{
"name": "<string>"
}
],
"lifecycle": {
"verify": "<string>",
"upgrade": "<string>",
"recovery": "<string>",
"delete": "<string>"
}
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"publisher_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"version": "<string>",
"capability": "<string>",
"digest": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"contract": {
"schema_version": 1,
"name": "<string>",
"version": "<string>",
"publisher_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"capability": "logs",
"profiles": {
"hosted": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digest": "<string>"
},
"customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digest": "<string>"
},
"existing": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digest": "<string>"
}
},
"parameters": [
{
"name": "<string>",
"minimum": 500000000,
"maximum": 500000000,
"default": 500000000,
"unit": "<string>"
}
],
"secrets": [
{
"name": "<string>",
"modes": [
"hosted"
]
}
],
"outputs": [
{
"name": "<string>",
"kind": "endpoint"
}
],
"lifecycle": {
"verify": "<string>",
"upgrade": "<string>",
"recovery": "<string>",
"delete": "<string>"
}
}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Publish an immutable private package version
Requires live profiles.read, profiles.write (publication), or profiles.share (recipient management) permission, intersected with token scopes. Catalogue publication does not grant deployment permission, approve hosted operation, or assert runtime readiness. Shared metadata can remain visible after underlying profile access is revoked; contract reads then return 404. Profile fingerprints are rechecked on contract reads.
import requests
url = "https://platform.ankra.app/api/v1/org/service-packages"
payload = {
"schema_version": 1,
"name": "<string>",
"version": "<string>",
"publisher_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"profiles": {},
"parameters": [
{
"name": "<string>",
"minimum": 500000000,
"maximum": 500000000,
"default": 500000000,
"unit": "<string>"
}
],
"secrets": [
{
"name": "<string>",
"modes": []
}
],
"outputs": [{ "name": "<string>" }],
"lifecycle": {
"verify": "<string>",
"upgrade": "<string>",
"recovery": "<string>",
"delete": "<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({
schema_version: 1,
name: '<string>',
version: '<string>',
publisher_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
profiles: {},
parameters: [
{
name: '<string>',
minimum: 500000000,
maximum: 500000000,
default: 500000000,
unit: '<string>'
}
],
secrets: [{name: '<string>', modes: []}],
outputs: [{name: '<string>'}],
lifecycle: {
verify: '<string>',
upgrade: '<string>',
recovery: '<string>',
delete: '<string>'
}
})
};
fetch('https://platform.ankra.app/api/v1/org/service-packages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://platform.ankra.app/api/v1/org/service-packages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"schema_version": 1,
"name": "<string>",
"version": "<string>",
"publisher_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"profiles": {},
"parameters": [
{
"name": "<string>",
"minimum": 500000000,
"maximum": 500000000,
"default": 500000000,
"unit": "<string>"
}
],
"secrets": [
{
"name": "<string>",
"modes": []
}
],
"outputs": [
{
"name": "<string>"
}
],
"lifecycle": {
"verify": "<string>",
"upgrade": "<string>",
"recovery": "<string>",
"delete": "<string>"
}
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"publisher_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"version": "<string>",
"capability": "<string>",
"digest": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"contract": {
"schema_version": 1,
"name": "<string>",
"version": "<string>",
"publisher_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"capability": "logs",
"profiles": {
"hosted": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digest": "<string>"
},
"customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digest": "<string>"
},
"existing": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digest": "<string>"
}
},
"parameters": [
{
"name": "<string>",
"minimum": 500000000,
"maximum": 500000000,
"default": 500000000,
"unit": "<string>"
}
],
"secrets": [
{
"name": "<string>",
"modes": [
"hosted"
]
}
],
"outputs": [
{
"name": "<string>",
"kind": "endpoint"
}
],
"lifecycle": {
"verify": "<string>",
"upgrade": "<string>",
"recovery": "<string>",
"delete": "<string>"
}
}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
At most 256 KiB. Duplicate keys, unknown properties and null contract values are rejected. Only publisher-owned profiles may be published. An identical retry returns the existing version; a changed contract at the same identity returns 409.
63^[a-z][a-z0-9]*(-[a-z0-9]+)*$32^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$logs, metrics, traces, database, cache, search Show child attributes
Show child attributes
32Show child attributes
Show child attributes
16Show child attributes
Show child attributes
1 - 16 elementsShow child attributes
Show child attributes
Show child attributes
Show child attributes