Accept a workspace's ownership
Only the user the transfer offers the ownership to (404 for everyone else). They must still be a member of the workspace's team (409 `not-team-member`), hold at least Editor on it and be connected to the provider of its origin repository (409 `owner-ineligible`, the transfer stays pending). From now on the git proxy uses their token. 409 `owner-transfer-closed` when it was accepted, declined or cancelled.
openapi/harthelm.yaml at v1.5.0__Host-harthelm_session<token>Browser session of the UI (12 h idle, 7 days absolute). State-changing requests also need the header
Harthelm-CSRF: 1 and a matching Origin.
transfer*stringAn ownership transfer's id.
uuidThe accepted transfer.
application/json- response
A workspace's ownership offered to a user: pending until that user accepts or declines it, or a workspace admin cancels it. While it is pending the old owner stays the owner.
id*stringuuidworkspace_id*IDNumeric resource id.
int641 <= valueworkspace_name*stringteam_id*IDNumeric resource id.
int641 <= valueteam_name*stringfrom?The owner when the transfer was offered; absent when the workspace had none.
to*The owner when the transfer was offered; absent when the workspace had none.
offered_by?The owner when the transfer was offered; absent when the workspace had none.
state*OwnerTransferState"pending""accepted""declined""cancelled"provider?stringThe Git provider of the workspace's origin repository; accepting needs a connection to it (Settings, Git connections). Absent for a workspace without a provider origin.
provider_name?stringreason?stringWhy a cancelled transfer ended: cancelled by a workspace admin, replaced by an offer to someone else,
owner_changed because an admin took the ownership, departed because the old or the new owner left the
team.
"cancelled""replaced""owner_changed""departed"created_at*stringdate-timeclosed_at?stringWhen it was accepted, declined or cancelled.
date-timeclosed_by?The owner when the transfer was offered; absent when the workspace had none.
curl -X POST 'https://console.example.com/api/v1/owner-transfers/497f6eca-6276-4993-bfeb-53cbbbba6f08/accept'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "workspace_id": 1, "workspace_name": "string", "team_id": 1, "team_name": "string", "from": { "id": 1, "name": "string", "email": "string", "picture_url": "string" }, "to": { "id": 1, "name": "string", "email": "string", "picture_url": "string" }, "offered_by": { "id": 1, "name": "string", "email": "string", "picture_url": "string" }, "state": "pending", "provider": "string", "provider_name": "string", "reason": "cancelled", "created_at": "2019-08-24T14:15:22Z", "closed_at": "2019-08-24T14:15:22Z", "closed_by": { "id": 1, "name": "string", "email": "string", "picture_url": "string" }}Change a managed service
Needs `team.managed_services`, for a bound instance also `landscape.manage` on its workspace. Absent fields stay. `plan`, `resources` and `config` are checked like a create and against the change rules (`x-hart-change`: 422 `update-constraint` at the field); a change that asks for more storage than the instance's volume holds while its storage class has no `allowVolumeExpansion` is 422 `volume-cannot-grow` at `/plan` (or `/resources/<k>` when the request sets the storage), whose message names the class and the most the volume holds (1.3); `paused` needs the provider's `pause` capability (422 at `/paused`). The status goes `updating` (`pausing`, `unpausing`) and back to `synchronized`; some changes restart the server. `public` (1.4) switches an S3 store's browser host between gated and public at once, without a new generation or a restart: 422 at `/public` for a provider whose host cannot be public, 409 `public-hosts-disabled` while the installation forbids public hosts (`marketplace.browserHosts.allowPublic`); turning it off always works. An instance bound to a landscape takes only `backups` and `public` here (409 `managed-service-bound`: change `harthelm.yml` and Sync); a deleting or deleted one nothing (409 `managed-service-deleted`). Secrets change only through Rotate.
Add a user to an organization
Organization owners (`org.members`). Adds the user whose verified email is `email` and mails them "you were added" when mail is on. 409 `user-unknown` when nobody with that verified email has signed in yet (invite them instead), `already-member`. 429 when the caller is over the per-sender mail limit.