MOBILE-ID · TRUSTED LTANS
Policy and Profile API
Read profiles/policies and request holds; distinguish readable settings from unpublished administrative actions.
LOCAL SIMULATION · Target contracts · No network requests
GET/v1/profiles
TARGET CONTRACT · API 3.0.0-draft
| Property | Value |
|---|---|
| Technical owner | Policy Service |
| Application scope | policies:read |
| HTTP | 200 |
| Call processing | Authentication/authorization → HTTP handling; not a resource-state enum. |
| Event | Audit or internal event |
Select an effective permitted revision; do not rewrite the historical policy snapshot.
curl --fail-with-body --request GET \
"${BASE_URL%/}/v1/profiles" \
--header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "X-Correlation-ID: ${CORRELATION_ID}"{
"items": [
{
"profileId": "profile-test-01",
"policyId": "policy-test-v1",
"version": "1",
"syntax": "ASN1_ERS",
"tsaProfileId": "tsa-test-001",
"status": "EFFECTIVE"
}
]
}{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Profile"
}
},
"nextCursor": {
"type": "string"
}
},
"required": [
"items"
],
"additionalProperties": false,
"examples": [
{
"items": [
{
"profileId": "profile-test-01",
"policyId": "policy-test-v1",
"version": "1",
"syntax": "ASN1_ERS",
"tsaProfileId": "tsa-test-001",
"status": "EFFECTIVE"
}
]
}
]
}{
"type": "https://example.invalid/problems/policy-not-effective",
"title": "Policy Not Effective",
"code": "POLICY_NOT_EFFECTIVE",
"detail": "Policy or profile has no effective release.",
"correlationId": "corr-test-001",
"requestId": "req-test-001",
"retryable": false,
"service": "Policy Service",
"timestamp": "2026-10-15T05:00:01Z",
"errors": [],
"status": 422,
"instance": "urn:ltans:request:req-test-001"
}GET/v1/profiles/{profileId}
TARGET CONTRACT · API 3.0.0-draft
| Property | Value |
|---|---|
| Technical owner | Policy Service |
| Application scope | policies:read |
| HTTP | 200 |
| Call processing | Authentication/authorization → HTTP handling; not a resource-state enum. |
| Event | Audit or internal event |
Select an effective permitted revision; do not rewrite the historical policy snapshot.
curl --fail-with-body --request GET \
"${BASE_URL%/}/v1/profiles/${PROFILE_ID}" \
--header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "X-Correlation-ID: ${CORRELATION_ID}"{
"profileId": "profile-test-01",
"policyId": "policy-test-v1",
"version": "1",
"syntax": "ASN1_ERS",
"tsaProfileId": "tsa-test-001",
"status": "EFFECTIVE"
}{
"type": "object",
"properties": {
"profileId": {
"type": "string"
},
"policyId": {
"type": "string"
},
"version": {
"type": "string"
},
"syntax": {
"type": "string",
"enum": [
"XMLERS",
"ASN1_ERS"
]
},
"tsaProfileId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"DRAFT",
"REVIEW",
"APPROVED",
"EFFECTIVE",
"SUPERSEDED"
]
}
},
"required": [
"profileId",
"policyId",
"version",
"status"
],
"additionalProperties": false,
"examples": [
{
"profileId": "profile-test-01",
"policyId": "policy-test-v1",
"version": "1",
"syntax": "ASN1_ERS",
"tsaProfileId": "tsa-test-001",
"status": "EFFECTIVE"
}
]
}{
"type": "https://example.invalid/problems/policy-not-effective",
"title": "Policy Not Effective",
"code": "POLICY_NOT_EFFECTIVE",
"detail": "Policy or profile has no effective release.",
"correlationId": "corr-test-001",
"requestId": "req-test-001",
"retryable": false,
"service": "Policy Service",
"timestamp": "2026-10-15T05:00:01Z",
"errors": [],
"status": 422,
"instance": "urn:ltans:request:req-test-001"
}GET/v1/policies/{policyId}
TARGET CONTRACT · API 3.0.0-draft
| Property | Value |
|---|---|
| Technical owner | Policy Service |
| Application scope | policies:read |
| HTTP | 200 |
| Call processing | Authentication/authorization → HTTP handling; not a resource-state enum. |
| Event | Audit or internal event |
Select an effective permitted revision; do not rewrite the historical policy snapshot.
curl --fail-with-body --request GET \
"${BASE_URL%/}/v1/policies/${POLICY_ID}" \
--header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "X-Correlation-ID: ${CORRELATION_ID}"{
"policyId": "policy-test-v1",
"version": "1",
"retentionRule": "Synthetic 10-year test rule, not a legal requirement",
"renewalRule": "Scheduled risk review",
"dispositionRule": "Approval and no active hold",
"releaseId": "synthetic-release-001",
"status": "EFFECTIVE"
}{
"type": "object",
"properties": {
"policyId": {
"type": "string"
},
"version": {
"type": "string"
},
"retentionRule": {
"type": "string"
},
"renewalRule": {
"type": "string"
},
"dispositionRule": {
"type": "string"
},
"releaseId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"DRAFT",
"REVIEW",
"APPROVED",
"EFFECTIVE",
"SUPERSEDED"
]
}
},
"required": [
"policyId",
"version",
"status"
],
"additionalProperties": false,
"examples": [
{
"policyId": "policy-test-v1",
"version": "1",
"retentionRule": "Synthetic 10-year test rule, not a legal requirement",
"renewalRule": "Scheduled risk review",
"dispositionRule": "Approval and no active hold",
"releaseId": "synthetic-release-001",
"status": "EFFECTIVE"
}
]
}{
"type": "https://example.invalid/problems/policy-not-effective",
"title": "Policy Not Effective",
"code": "POLICY_NOT_EFFECTIVE",
"detail": "Policy or profile has no effective release.",
"correlationId": "corr-test-001",
"requestId": "req-test-001",
"retryable": false,
"service": "Policy Service",
"timestamp": "2026-10-15T05:00:01Z",
"errors": [],
"status": 422,
"instance": "urn:ltans:request:req-test-001"
}POST/v1/archives/{archiveId}/holds
TARGET CONTRACT · API 3.0.0-draft
| Property | Value |
|---|---|
| Technical owner | Policy Service |
| Application scope | holds:write |
| HTTP | 201 |
| Call processing | Authentication/authorization → HTTP handling; not a resource-state enum. |
| Event | Audit or internal event |
Select an effective permitted revision; do not rewrite the historical policy snapshot.
curl --fail-with-body --request POST \
"${BASE_URL%/}/v1/archives/${ARCHIVE_ID}/holds" \
--header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "X-Correlation-ID: ${CORRELATION_ID}" \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--header "Content-Type: application/json" \
--data-binary "@${REQUEST_FILE}"{
"caseId": "case-test-001",
"reason": "Synthetic hold test",
"approvalId": "approval-test-003"
}{
"holdId": "hold-test-001",
"archiveId": "arc-test-001",
"state": "ACTIVE",
"caseId": "case-test-001"
}{
"type": "object",
"properties": {
"caseId": {
"type": "string"
},
"reason": {
"type": "string"
},
"approvalId": {
"type": "string"
}
},
"required": [
"caseId",
"reason",
"approvalId"
],
"additionalProperties": false,
"examples": [
{
"caseId": "case-test-001",
"reason": "Synthetic hold test",
"approvalId": "approval-test-003"
}
]
}{
"type": "https://example.invalid/problems/policy-not-effective",
"title": "Policy Not Effective",
"code": "POLICY_NOT_EFFECTIVE",
"detail": "Policy or profile has no effective release.",
"correlationId": "corr-test-001",
"requestId": "req-test-001",
"retryable": false,
"service": "Policy Service",
"timestamp": "2026-10-15T05:00:01Z",
"errors": [],
"status": 422,
"instance": "urn:ltans:request:req-test-001"
}