SlimSlim/Organization

Update organization

  • Sandbox: available
  • Staging: available
  • Production: unknown
PUT
/v1/slim/organization/{id}

Updates an organization's (zone's) name, description and parent zone.

Auth: Bearer token. The caller must be a practitioner, an admin, a super admin, or hold the "System Owner" access policy. The access policy must grant Organization:update (an admin or super admin who holds no access policy skips this check). Scope: The organization must belong to the caller's project (from the token). Organizations in a parent project or a sub-project are refused.

Behaviour

  • name is required and must be unique among the organizations your token can search, not counting this one.
  • parentOrganizationId sets the parent zone. It must name an organization in your own project. Omitting it removes the current parent, which makes the zone top-level.
  • description, when non-empty, replaces the narrative text. Omitting it, or sending null or an empty string, leaves the existing description unchanged.
  • The write is atomic and takes a short write lock. A concurrent write to the same resources gets a 409.
  • A zone-updated entry is added to the change history. A failure to write that entry does not fail the request.
  • The response is the organization after the update, in the same shape as GET /v1/slim/organization/{id}.

Example

curl -X PUT 'https://api.sandbox.ovok.com/v1/slim/organization/c3499c27-2973-0a7f-807e-fb8676a92dcb' \  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' \  -H 'Content-Type: application/json' \  -d '{    "name": "Ward A",    "parentOrganizationId": "87ea5dfc-8b8e-384d-8489-79496e706390",    "description": "Ground floor"  }'

Authorization

bearer
headerAuthorizationBearer <JWT>

Path Parameters

id*string
Formatuuid

Request Body

application/json
  1. body
name*string
Length1 <= length
parentOrganizationId?string
Formatuuid
description?string

Response Body

Organization updated successfully.

application/json
  1. response
id*string

Organization (zone) id.

name*string

Zone name. Empty string when the organization has no name.

parentOrganizationId?string

Id of the parent zone (Organization.partOf). Omitted for a top-level zone.

description?string

Narrative text without its XHTML wrapper. Omitted when the organization has none.

Example Request
curl -X PUT 'https://api.sandbox.ovok.com/v1/slim/organization/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{  "name": "string"}'
Example Response
{  "id": "string",  "name": "string",  "parentOrganizationId": "string",  "description": "string"}

Delete organization DELETE

Deletes an organization (zone) and moves its residents, rooms and devices out of it. **Auth:** Bearer token. The caller must be a practitioner, an admin, a super admin, or hold the "System Owner" access policy. The access policy must grant `Organization:delete` and `Device:update` (an admin or super admin who holds no access policy skips this check). **Scope:** The organization must belong to the caller's project (from the token). ## Behaviour - The Organization resource is deleted. - Every patient, location and device that references the zone is re-pointed: - If the zone has a parent zone in your project, they move to the parent zone. - Otherwise their zone reference is removed. - Device use history is updated for any device whose assignment changes. - The writes run in one bundle. Because a large zone can exceed the size limit of an atomic write, this route does not take the atomic write lock. A very large zone is written as a checked batch, so a partial failure is reported as an error rather than rolled back. - A zone-deleted entry is added to the change history. A failure to write that entry does not fail the request. - The response has no body. ## Example ```bash curl -X DELETE 'https://api.sandbox.ovok.com/v1/slim/organization/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```

Create organization POST

Creates an organization (a zone in the Slim dashboard), optionally as a child of another zone. **Auth:** Bearer token. The caller must be a practitioner, an admin, a super admin, or hold the "System Owner" access policy. The access policy must grant `Organization:create` (an admin or super admin who holds no access policy skips this check). **Scope:** The organization is created in the caller's project (from the token). A super-admin caller can pass `?projectId=<uuid>` to create it in that project instead. Any other caller who passes `projectId` gets a 403. ## Behaviour - `name` must be unique. The check is an exact name match against the organizations your token can search. With `?projectId`, the check runs in that project only. - `parentOrganizationId`, when set, must name an organization in your own project. A sub-project's or parent project's organization is refused. The new zone's `partOf` points at it. - `description`, when non-empty, is stored as the organization's narrative text. `null` or an empty string stores nothing. - The write is atomic and takes a short write lock. A concurrent write to the same resources gets a 409. - A zone-created entry is added to the change history. A failure to write that entry does not fail the request. - The response is the created organization, in the same shape as `GET /v1/slim/organization/{id}`. ## Example ```bash curl -X POST 'https://api.sandbox.ovok.com/v1/slim/organization' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' \ -H 'Content-Type: application/json' \ -d '{ "name": "Ward A", "parentOrganizationId": "87ea5dfc-8b8e-384d-8489-79496e706390", "description": "Ground floor" }' ```