Harthelm Docs
REST APIMembers

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.

Generated from openapi/harthelm.yaml at v1.5.0
POST
/owner-transfers/{transfer}/accept

Authorization

cookie__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.

Path Parameters

transfer*string

An ownership transfer's id.

Formatuuid

Response Body

The accepted transfer.

application/json
  1. 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*string
Formatuuid
workspace_id*ID

Numeric resource id.

Formatint64
Range1 <= value
workspace_name*string
team_id*ID

Numeric resource id.

Formatint64
Range1 <= value
team_name*string
from?

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
Value in"pending""accepted""declined""cancelled"
provider?string

The 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?string
reason?string

Why 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.

Value in"cancelled""replaced""owner_changed""departed"
created_at*string
Formatdate-time
closed_at?string

When it was accepted, declined or cancelled.

Formatdate-time
closed_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.