Withdraw an approved stack profile summary (browser session)
import requests
url = "https://api.platform.ankra.app/org/stack-profiles/{profile_id}/versions/{version}/summary/withdraw"
payload = { "expected_summary_revision": 1 }
headers = {
"cookie": "ankra_session=",
"X-Ankra-CSRF": "<x-ankra-csrf>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: 'ankra_session=',
'X-Ankra-CSRF': '<x-ankra-csrf>',
'Content-Type': 'application/json'
},
body: JSON.stringify({expected_summary_revision: 1})
};
fetch('https://api.platform.ankra.app/org/stack-profiles/{profile_id}/versions/{version}/summary/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.platform.ankra.app/org/stack-profiles/{profile_id}/versions/{version}/summary/withdraw \
--header 'Content-Type: application/json' \
--header 'X-Ankra-CSRF: <x-ankra-csrf>' \
--cookie ankra_session= \
--data '
{
"expected_summary_revision": 1
}
'{
"state": "available",
"summary_revision": 1,
"schema_version": 1,
"policy_version": "<string>",
"outcomes": [
{
"kind": "logging",
"claims": [
{
"fact_id": "<string>",
"resource_id": "<string>",
"subject_id": "<string>",
"statement": "<string>",
"applicability": "fixed",
"scope_id": "<string>",
"condition": {
"operator": "equals",
"parameter_id": "<string>",
"equals": true,
"children": "<array>"
}
}
]
}
],
"coverage": [
{
"resource_id": "<string>",
"reason": "unsupported_format"
}
],
"parameters": [
{
"id": "<string>",
"default": true
}
]
}{
"detail": "<string>",
"code": "outcome_unknown"
}Stack Profiles
Withdraw an approved stack profile summary (browser session)
Reads and decisions use the primary database with fresh permission, credential and source checks. Responses are private/no-store. Summary revisions never create or advance a workload profile version. No request accepts snapshots, approval identities or provider configuration.
POST
/
org
/
stack-profiles
/
{profile_id}
/
versions
/
{version}
/
summary
/
withdraw
Withdraw an approved stack profile summary (browser session)
import requests
url = "https://api.platform.ankra.app/org/stack-profiles/{profile_id}/versions/{version}/summary/withdraw"
payload = { "expected_summary_revision": 1 }
headers = {
"cookie": "ankra_session=",
"X-Ankra-CSRF": "<x-ankra-csrf>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: 'ankra_session=',
'X-Ankra-CSRF': '<x-ankra-csrf>',
'Content-Type': 'application/json'
},
body: JSON.stringify({expected_summary_revision: 1})
};
fetch('https://api.platform.ankra.app/org/stack-profiles/{profile_id}/versions/{version}/summary/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.platform.ankra.app/org/stack-profiles/{profile_id}/versions/{version}/summary/withdraw \
--header 'Content-Type: application/json' \
--header 'X-Ankra-CSRF: <x-ankra-csrf>' \
--cookie ankra_session= \
--data '
{
"expected_summary_revision": 1
}
'{
"state": "available",
"summary_revision": 1,
"schema_version": 1,
"policy_version": "<string>",
"outcomes": [
{
"kind": "logging",
"claims": [
{
"fact_id": "<string>",
"resource_id": "<string>",
"subject_id": "<string>",
"statement": "<string>",
"applicability": "fixed",
"scope_id": "<string>",
"condition": {
"operator": "equals",
"parameter_id": "<string>",
"equals": true,
"children": "<array>"
}
}
]
}
],
"coverage": [
{
"resource_id": "<string>",
"reason": "unsupported_format"
}
],
"parameters": [
{
"id": "<string>",
"default": true
}
]
}{
"detail": "<string>",
"code": "outcome_unknown"
}Authorizations
Browser session. Mutations also require X-Ankra-CSRF.
Headers
Must match the authenticated browser CSRF cookie.
Body
application/json
Strict JSON, maximum 8192 bytes. Repeated and unknown object fields are rejected without echoing values.
Response
Current authorized summary state
- Option 1
- Option 2
- Option 3
Exact-version approved projection. Database failures are errors, never absent. With no approved summary, retain the existing profile description and resource inventory.
Available options:
available Required range:
x >= 0Available options:
1 Maximum array length:
5Show child attributes
Show child attributes
Maximum array length:
256Show child attributes
Show child attributes
Maximum array length:
64Show child attributes
Show child attributes