{"openapi":"3.0.3","servers":[{"url":"/public"}],"info":{"title":"Akarion GRC Public API","version":"1.0.0","description":"Stable public REST API for syncing objects with Akarion GRC. Authenticate with an API token created by a partition admin in the application, sent as `Authorization: Bearer <token>`. The token is bound to a single partition; all endpoints operate on that partition. Prefer this API over the internal application API — its contract is versioned and stable.\n\nTranslatable fields (`label`, `description`) are single-language: set the `Accept-Language` header to choose which language is read and written. It defaults to English (`en`) when omitted."},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptLanguage":{"name":"Accept-Language","in":"header","required":false,"schema":{"type":"string","example":"de"},"description":"Language for translatable fields (`label`, `description`), as a two-letter code such as `en` or `de`. Reads return this language (falling back to English); writes store text in this language, leaving other languages untouched. Defaults to `en` when omitted."}},"schemas":{"System":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"CMDB-4711","label":"Mail server","description":"Primary mail server in the Vienna data center","status":"ACTIVE"}},"Org":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"ORG-001","label":"Akarion GmbH","description":"Austrian legal entity","status":"ACTIVE"}},"Site":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"SITE-VIE","label":"Vienna HQ","description":"Headquarters and primary office location","status":"ACTIVE"}},"Department":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"DEPT-ITOPS","label":"IT Operations","description":"Runs internal infrastructure and support","status":"ACTIVE"}},"HardwareAsset":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"HW-LAPTOPS","label":"Employee laptops","description":"Fleet of company-issued laptops","status":"ACTIVE"}},"NetworkAsset":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"NET-FIREWALLS","label":"Firewalls","description":"Perimeter firewall appliances","status":"ACTIVE"}},"GenericAsset":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"ASSET-PRINTERS","label":"Office printers","description":"Shared office printer fleet","status":"ACTIVE"}},"InformationValue":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"INFO-CRM","label":"Customer database","description":"Master record of customer master data"}},"BusinessProcess":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"BP-ORDER","label":"Order fulfillment","description":"From order receipt through to shipment","status":"ACTIVE"}},"BusinessService":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"SVC-PORTAL","label":"Customer portal","description":"Self-service portal for customers"}},"ContactRole":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"ROLE-DPO","label":"Data Protection Officer","description":"Accountable for data protection compliance","status":"ACTIVE"}},"Contact":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"jobTitle":{"type":"string"},"phone":{"type":"string"},"web":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"HR-4711","firstName":"Ada","lastName":"Lovelace","email":"ada.lovelace@example.com","jobTitle":"Data Protection Officer"}},"Incident":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["DISCOVERED","CONTAINMENT","POST_ACTIVITY","CLOSED"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"INC-2024-042","label":"Phishing email campaign","description":"Employees received targeted phishing emails impersonating IT","status":"DISCOVERED"}},"Ticket":{"type":"object","properties":{"id":{"type":"string"},"externalReference":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["RECORDED","IN_PROGRESS","COMPLETED","POSTPONED","DENIED","PENDING"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","label"],"additionalProperties":false,"example":{"id":"3fa2b710-4c6e-4b7e-9f21-8a4c31de0000","externalReference":"TASK-1337","label":"Review finance system access rights","description":"Quarterly access review for the finance ERP","status":"RECORDED"}}}},"paths":{"/v1/systems":{"get":{"tags":["System"],"summary":"List systems","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/System"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["System"],"summary":"Create a system","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"CMDB-4711","label":"Mail server","description":"Primary mail server in the Vienna data center","status":"ACTIVE"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/System"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/systems/{id}":{"get":{"tags":["System"],"summary":"Get a system","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/System"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["System"],"summary":"Update a system","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"CMDB-4711","label":"Mail server","description":"Primary mail server in the Vienna data center","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/System"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["System"],"summary":"Delete a system","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/systems/by-external-reference/{externalReference}":{"get":{"tags":["System"],"summary":"Get a system by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/System"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["System"],"summary":"Update a system by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"CMDB-4711","label":"Mail server","description":"Primary mail server in the Vienna data center","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/System"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["System"],"summary":"Delete a system by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/orgs":{"get":{"tags":["Org"],"summary":"List orgs","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Org"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Org"],"summary":"Create a org","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"ORG-001","label":"Akarion GmbH","description":"Austrian legal entity","status":"ACTIVE"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Org"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/orgs/{id}":{"get":{"tags":["Org"],"summary":"Get a org","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Org"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Org"],"summary":"Update a org","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"ORG-001","label":"Akarion GmbH","description":"Austrian legal entity","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Org"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Org"],"summary":"Delete a org","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/orgs/by-external-reference/{externalReference}":{"get":{"tags":["Org"],"summary":"Get a org by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Org"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Org"],"summary":"Update a org by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"ORG-001","label":"Akarion GmbH","description":"Austrian legal entity","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Org"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Org"],"summary":"Delete a org by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/sites":{"get":{"tags":["Site"],"summary":"List sites","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Site"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Site"],"summary":"Create a site","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"SITE-VIE","label":"Vienna HQ","description":"Headquarters and primary office location","status":"ACTIVE"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Site"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/sites/{id}":{"get":{"tags":["Site"],"summary":"Get a site","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Site"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Site"],"summary":"Update a site","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"SITE-VIE","label":"Vienna HQ","description":"Headquarters and primary office location","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Site"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Site"],"summary":"Delete a site","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/sites/by-external-reference/{externalReference}":{"get":{"tags":["Site"],"summary":"Get a site by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Site"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Site"],"summary":"Update a site by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"SITE-VIE","label":"Vienna HQ","description":"Headquarters and primary office location","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Site"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Site"],"summary":"Delete a site by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/departments":{"get":{"tags":["Department"],"summary":"List departments","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Department"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Department"],"summary":"Create a department","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"DEPT-ITOPS","label":"IT Operations","description":"Runs internal infrastructure and support","status":"ACTIVE"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Department"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/departments/{id}":{"get":{"tags":["Department"],"summary":"Get a department","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Department"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Department"],"summary":"Update a department","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"DEPT-ITOPS","label":"IT Operations","description":"Runs internal infrastructure and support","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Department"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Department"],"summary":"Delete a department","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/departments/by-external-reference/{externalReference}":{"get":{"tags":["Department"],"summary":"Get a department by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Department"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Department"],"summary":"Update a department by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"DEPT-ITOPS","label":"IT Operations","description":"Runs internal infrastructure and support","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Department"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Department"],"summary":"Delete a department by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/hardware-assets":{"get":{"tags":["Hardware Asset"],"summary":"List hardware assets","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/HardwareAsset"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Hardware Asset"],"summary":"Create a hardware asset","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"HW-LAPTOPS","label":"Employee laptops","description":"Fleet of company-issued laptops","status":"ACTIVE"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HardwareAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/hardware-assets/{id}":{"get":{"tags":["Hardware Asset"],"summary":"Get a hardware asset","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HardwareAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Hardware Asset"],"summary":"Update a hardware asset","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"HW-LAPTOPS","label":"Employee laptops","description":"Fleet of company-issued laptops","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HardwareAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Hardware Asset"],"summary":"Delete a hardware asset","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/hardware-assets/by-external-reference/{externalReference}":{"get":{"tags":["Hardware Asset"],"summary":"Get a hardware asset by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HardwareAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Hardware Asset"],"summary":"Update a hardware asset by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"HW-LAPTOPS","label":"Employee laptops","description":"Fleet of company-issued laptops","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HardwareAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Hardware Asset"],"summary":"Delete a hardware asset by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/network-assets":{"get":{"tags":["Network Asset"],"summary":"List network assets","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/NetworkAsset"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Network Asset"],"summary":"Create a network asset","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"NET-FIREWALLS","label":"Firewalls","description":"Perimeter firewall appliances","status":"ACTIVE"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/network-assets/{id}":{"get":{"tags":["Network Asset"],"summary":"Get a network asset","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Network Asset"],"summary":"Update a network asset","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"NET-FIREWALLS","label":"Firewalls","description":"Perimeter firewall appliances","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Network Asset"],"summary":"Delete a network asset","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/network-assets/by-external-reference/{externalReference}":{"get":{"tags":["Network Asset"],"summary":"Get a network asset by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Network Asset"],"summary":"Update a network asset by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"NET-FIREWALLS","label":"Firewalls","description":"Perimeter firewall appliances","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Network Asset"],"summary":"Delete a network asset by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/generic-assets":{"get":{"tags":["Generic Asset"],"summary":"List generic assets","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GenericAsset"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Generic Asset"],"summary":"Create a generic asset","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"ASSET-PRINTERS","label":"Office printers","description":"Shared office printer fleet","status":"ACTIVE"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/generic-assets/{id}":{"get":{"tags":["Generic Asset"],"summary":"Get a generic asset","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Generic Asset"],"summary":"Update a generic asset","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"ASSET-PRINTERS","label":"Office printers","description":"Shared office printer fleet","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Generic Asset"],"summary":"Delete a generic asset","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/generic-assets/by-external-reference/{externalReference}":{"get":{"tags":["Generic Asset"],"summary":"Get a generic asset by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Generic Asset"],"summary":"Update a generic asset by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"ASSET-PRINTERS","label":"Office printers","description":"Shared office printer fleet","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericAsset"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Generic Asset"],"summary":"Delete a generic asset by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/information-values":{"get":{"tags":["Information Value"],"summary":"List information values","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/InformationValue"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Information Value"],"summary":"Create a information value","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"INFO-CRM","label":"Customer database","description":"Master record of customer master data"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InformationValue"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/information-values/{id}":{"get":{"tags":["Information Value"],"summary":"Get a information value","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InformationValue"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Information Value"],"summary":"Update a information value","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"}},"additionalProperties":false,"example":{"externalReference":"INFO-CRM","label":"Customer database","description":"Master record of customer master data"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InformationValue"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Information Value"],"summary":"Delete a information value","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/information-values/by-external-reference/{externalReference}":{"get":{"tags":["Information Value"],"summary":"Get a information value by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InformationValue"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Information Value"],"summary":"Update a information value by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"}},"additionalProperties":false,"example":{"externalReference":"INFO-CRM","label":"Customer database","description":"Master record of customer master data"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InformationValue"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Information Value"],"summary":"Delete a information value by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/business-processes":{"get":{"tags":["Business Process"],"summary":"List business processs","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BusinessProcess"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Business Process"],"summary":"Create a business process","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"BP-ORDER","label":"Order fulfillment","description":"From order receipt through to shipment","status":"ACTIVE"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcess"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/business-processes/{id}":{"get":{"tags":["Business Process"],"summary":"Get a business process","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcess"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Business Process"],"summary":"Update a business process","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"BP-ORDER","label":"Order fulfillment","description":"From order receipt through to shipment","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcess"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Business Process"],"summary":"Delete a business process","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/business-processes/by-external-reference/{externalReference}":{"get":{"tags":["Business Process"],"summary":"Get a business process by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcess"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Business Process"],"summary":"Update a business process by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"BP-ORDER","label":"Order fulfillment","description":"From order receipt through to shipment","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcess"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Business Process"],"summary":"Delete a business process by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/business-services":{"get":{"tags":["Business Service"],"summary":"List business services","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BusinessService"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Business Service"],"summary":"Create a business service","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"SVC-PORTAL","label":"Customer portal","description":"Self-service portal for customers"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessService"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/business-services/{id}":{"get":{"tags":["Business Service"],"summary":"Get a business service","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessService"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Business Service"],"summary":"Update a business service","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"}},"additionalProperties":false,"example":{"externalReference":"SVC-PORTAL","label":"Customer portal","description":"Self-service portal for customers"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessService"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Business Service"],"summary":"Delete a business service","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/business-services/by-external-reference/{externalReference}":{"get":{"tags":["Business Service"],"summary":"Get a business service by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessService"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Business Service"],"summary":"Update a business service by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"}},"additionalProperties":false,"example":{"externalReference":"SVC-PORTAL","label":"Customer portal","description":"Self-service portal for customers"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessService"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Business Service"],"summary":"Delete a business service by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/contact-roles":{"get":{"tags":["Contact Role"],"summary":"List contact roles","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ContactRole"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Contact Role"],"summary":"Create a contact role","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"ROLE-DPO","label":"Data Protection Officer","description":"Accountable for data protection compliance","status":"ACTIVE"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRole"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/contact-roles/{id}":{"get":{"tags":["Contact Role"],"summary":"Get a contact role","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRole"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Contact Role"],"summary":"Update a contact role","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"ROLE-DPO","label":"Data Protection Officer","description":"Accountable for data protection compliance","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRole"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Contact Role"],"summary":"Delete a contact role","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/contact-roles/by-external-reference/{externalReference}":{"get":{"tags":["Contact Role"],"summary":"Get a contact role by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRole"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Contact Role"],"summary":"Update a contact role by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["NEW","DRAFT","IN_REVIEW","IN_EXAMINATION","DECLINED","APPROVED","IN_IMPLEMENTATION","ACTIVE","OUTDATED","INACTIVE"]}},"additionalProperties":false,"example":{"externalReference":"ROLE-DPO","label":"Data Protection Officer","description":"Accountable for data protection compliance","status":"ACTIVE"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRole"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Contact Role"],"summary":"Delete a contact role by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/contacts":{"get":{"tags":["Contact"],"summary":"List contacts","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Contact"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Contact"],"summary":"Create a contact","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1},"lastName":{"type":"string","minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"jobTitle":{"type":"string"},"phone":{"type":"string"},"web":{"type":"string"},"externalReference":{"type":"string"}},"required":["firstName","lastName","email"],"additionalProperties":false,"example":{"externalReference":"HR-4711","firstName":"Ada","lastName":"Lovelace","email":"ada.lovelace@example.com","jobTitle":"Data Protection Officer"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/contacts/{id}":{"get":{"tags":["Contact"],"summary":"Get a contact","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Contact"],"summary":"Update a contact","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1},"lastName":{"type":"string","minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"jobTitle":{"type":"string"},"phone":{"type":"string"},"web":{"type":"string"},"externalReference":{"type":"string"}},"additionalProperties":false,"example":{"externalReference":"HR-4711","firstName":"Ada","lastName":"Lovelace","email":"ada.lovelace@example.com","jobTitle":"Data Protection Officer"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Contact"],"summary":"Delete a contact","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/contacts/by-external-reference/{externalReference}":{"get":{"tags":["Contact"],"summary":"Get a contact by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Contact"],"summary":"Update a contact by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1},"lastName":{"type":"string","minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"jobTitle":{"type":"string"},"phone":{"type":"string"},"web":{"type":"string"},"externalReference":{"type":"string"}},"additionalProperties":false,"example":{"externalReference":"HR-4711","firstName":"Ada","lastName":"Lovelace","email":"ada.lovelace@example.com","jobTitle":"Data Protection Officer"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Contact"],"summary":"Delete a contact by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/incidents":{"get":{"tags":["Incident"],"summary":"List incidents","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Incident"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Incident"],"summary":"Create a incident","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["DISCOVERED","CONTAINMENT","POST_ACTIVITY","CLOSED"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"INC-2024-042","label":"Phishing email campaign","description":"Employees received targeted phishing emails impersonating IT","status":"DISCOVERED"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Incident"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/incidents/{id}":{"get":{"tags":["Incident"],"summary":"Get a incident","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Incident"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Incident"],"summary":"Update a incident","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["DISCOVERED","CONTAINMENT","POST_ACTIVITY","CLOSED"]}},"additionalProperties":false,"example":{"externalReference":"INC-2024-042","label":"Phishing email campaign","description":"Employees received targeted phishing emails impersonating IT","status":"DISCOVERED"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Incident"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Incident"],"summary":"Delete a incident","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/incidents/by-external-reference/{externalReference}":{"get":{"tags":["Incident"],"summary":"Get a incident by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Incident"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Incident"],"summary":"Update a incident by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["DISCOVERED","CONTAINMENT","POST_ACTIVITY","CLOSED"]}},"additionalProperties":false,"example":{"externalReference":"INC-2024-042","label":"Phishing email campaign","description":"Employees received targeted phishing emails impersonating IT","status":"DISCOVERED"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Incident"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Incident"],"summary":"Delete a incident by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}},"/v1/tickets":{"get":{"tags":["Ticket"],"summary":"List tickets","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"},{"name":"page","in":"query","schema":{"type":"integer","default":0}},{"name":"pageSize","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"externalReference","in":"query","schema":{"type":"string"},"description":"Return only objects with exactly this external reference."}],"responses":{"200":{"description":"Paginated list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Ticket"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalElements":{"type":"integer"}}}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"}}},"post":{"tags":["Ticket"],"summary":"Create a ticket","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["RECORDED","IN_PROGRESS","COMPLETED","POSTPONED","DENIED","PENDING"]}},"required":["label"],"additionalProperties":false,"example":{"externalReference":"TASK-1337","label":"Review finance system access rights","description":"Quarterly access review for the finance ERP","status":"RECORDED"}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"422":{"description":"Validation error"}}}},"/v1/tickets/{id}":{"get":{"tags":["Ticket"],"summary":"Get a ticket","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}},"put":{"tags":["Ticket"],"summary":"Update a ticket","description":"Partial update: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["RECORDED","IN_PROGRESS","COMPLETED","POSTPONED","DENIED","PENDING"]}},"additionalProperties":false,"example":{"externalReference":"TASK-1337","label":"Review finance system access rights","description":"Quarterly access review for the finance ERP","status":"RECORDED"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"422":{"description":"Validation error"}}},"delete":{"tags":["Ticket"],"summary":"Delete a ticket","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"}}}},"/v1/tickets/by-external-reference/{externalReference}":{"get":{"tags":["Ticket"],"summary":"Get a ticket by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}},"put":{"tags":["Ticket"],"summary":"Update a ticket by externalReference","description":"Partial update of the single object carrying this `externalReference`: only the provided fields are changed; omitted fields (including fields not exposed by this API) keep their current value. Update-only — no object with this reference returns 404 (create one with POST first). The reference is not unique — if several objects share it the call returns 409 so you can resolve the duplicates first.","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1},"description":{"type":"string"},"externalReference":{"type":"string"},"status":{"type":"string","enum":["RECORDED","IN_PROGRESS","COMPLETED","POSTPONED","DENIED","PENDING"]}},"additionalProperties":false,"example":{"externalReference":"TASK-1337","label":"Review finance system access rights","description":"Quarterly access review for the finance ERP","status":"RECORDED"}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}}},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"},"422":{"description":"Validation error"}}},"delete":{"tags":["Ticket"],"summary":"Delete a ticket by externalReference","security":[{"bearerAuth":[]}],"parameters":[{"name":"externalReference","in":"path","required":true,"schema":{"type":"string"},"description":"External reference correlation key, URL-encoded. Not unique — a value shared by several objects returns 409 so you can resolve the duplicates first."}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid, or expired api token"},"403":{"description":"The token lacks permission for this type"},"404":{"description":"Not found"},"409":{"description":"Multiple objects match this externalReference"}}}}}}