openemail.workspaces
Çdo metodë në këtë hapësirë emrash: nënshkrimi, parametrat, çfarë kthen dhe një shembull.
Metodat
The workspaces the person behind the key or the app can open: list them, create one, choose the one the app opens, and delete the workspace the key or the app belongs to. An API key acts for the workspace owner, and an app for the person who connected it.
workspaces.list()
List your workspaces
def list( *, api_key: str | None = None, timeout: float | None = None,) -> WorkspaceListResourceReturns every workspace the person behind the client can open, the ones they own first, as the workspace switcher of the app lists them. It is about the person, not the workspace the key belongs to. An API key answers for the workspace owner, and an app for the person who connected it.
activeWorkspaceId is the workspace the app opens for them, primaryWorkspaceId the first one they made, which can never be deleted, and personalWorkspaceId their personal space, which holds their free address and is not in data. It is one response rather than a page, so there is no cursor to follow.
Parametrat
api_keystrOverrides the client's API key for this call only.
timeoutfloatSeconds this call may take, the response included, before it raises
OpenEmailNetworkErrorwithis_timeout. It overrides the client'stimeoutfor this call, and0turns the limit off.
Kthen
WorkspaceListResource with data, a list of WorkspaceResource, and activeWorkspaceId, primaryWorkspaceId and personalWorkspaceId. Each workspace has id, name, slug, email, ownerId, plan, markUrl, wordmarkUrl and createdAt, and workspace['isOwner'] is True for the ones the person owns rather than joined.
Shembull
from openemail import openemail workspaces = openemail.workspaces.list() for workspace in workspaces['data']: opened = workspace['id'] == workspaces['activeWorkspaceId'] print(workspace['name'], workspace['plan'], '(open in the app)' if opened else '')Shënime
The key or the app still acts for its own workspace in every other call.
E disponueshme edhe në
- API
GET /workspaces- TypeScript
workspaces.list()- Ruby
workspaces.list- CLI
openemail workspaces list
workspaces.create()
Create a workspace
def create( body: WorkspaceCreate, *, api_key: str | None = None, timeout: float | None = None,) -> CreatedWorkspaceResourceMakes a new workspace owned by the person, on the Free plan, and makes it the workspace the app opens for them, as creating one in the app does. The key or the app making the call keeps acting for its own workspace.
An account can own one workspace on the Free plan. While it owns one, the call is refused with 403 workspace_allowance_reached and the message names that workspace: upgrade it first.
Parametrat
body['name']strE detyrueshmeUp to 64 characters. Leading and trailing spaces are trimmed.
api_keystrOverrides the client's API key for this call only.
timeoutfloatSeconds this call may take, the response included, before it raises
OpenEmailNetworkErrorwithis_timeout. It overrides the client'stimeoutfor this call, and0turns the limit off.
Kthen
CreatedWorkspaceResource with id, name, slug and active, which is always True.
Shembull
from openemail import openemail workspace = openemail.workspaces.create({'name': 'Acme Support'}) print(workspace['id'], workspace['slug'])Shënime
Not retried automatically. The same name sent twice within ten seconds returns the workspace the first call made, so a retry right after a lost response is safe.
E disponueshme edhe në
- API
POST /workspaces- TypeScript
workspaces.create()- Ruby
workspaces.create- CLI
openemail workspaces create
workspaces.get_active()
Read the workspace the app opens
def get_active( *, api_key: str | None = None, timeout: float | None = None,) -> ActiveWorkspaceResourceReturns the workspace the app opens for the person when they sign in, or the one it falls back to when they never chose one. It is not the workspace the key or the app acts on, which never changes.
Parametrat
api_keystrOverrides the client's API key for this call only.
timeoutfloatSeconds this call may take, the response included, before it raises
OpenEmailNetworkErrorwithis_timeout. It overrides the client'stimeoutfor this call, and0turns the limit off.
Kthen
ActiveWorkspaceResource with id, name, slug, email, kind and createdAt. workspace['isOwner'] is True when the person owns it.
Shembull
from openemail import openemail opened = openemail.workspaces.get_active() print(opened['name'], opened['kind'])Shënime
kindispersonalwhen the app opens the personal space, andbusinessotherwise.
E disponueshme edhe në
workspaces.set_active()
Choose the workspace the app opens
def set_active( workspace_id: str, *, api_key: str | None = None, timeout: float | None = None,) -> ActiveWorkspaceResourceSwitches the workspace the app opens for the person, as the workspace switcher does, to any workspace they can open. It changes nothing for the key or the app making the call, which keeps acting for its own workspace.
Parametrat
workspace_idstrE detyrueshmeA workspace id from
list.api_keystrOverrides the client's API key for this call only.
timeoutfloatSeconds this call may take, the response included, before it raises
OpenEmailNetworkErrorwithis_timeout. It overrides the client'stimeoutfor this call, and0turns the limit off.
Kthen
ActiveWorkspaceResource for the workspace the app opens now.
Shembull
from openemail import openemail opened = openemail.workspaces.set_active('10417196-e324-4283-af98-66ec62167c47') print('The app now opens', opened['name'])Shënime
A workspace the person cannot open is a 404
resource_not_found.Retried automatically on network failure, since choosing the same workspace twice changes nothing.
E disponueshme edhe në
workspaces.delete()
Delete the workspace
def delete( id: str, *, confirm: str, api_key: str | None = None, timeout: float | None = None,) -> DeletedWorkspaceResourceDeletes the workspace the key or the app belongs to, with its domains, addresses, mail and members, and cancels its plan. It cannot be undone. confirm= has to be the name of the workspace, as list shows it, the same way the app asks the person to type it.
Only the owner may do it. An access token acting for a member is refused with 403 owner_only, and a key or an app limited to particular addresses or domains with 422 capability_unsupported. Any other workspace id is a 404, the first workspace an account made is refused with 409 first_workspace, and one with a domain being moved in or out with 409 domain_moving.
Parametrat
idstrE detyrueshmeThe id of the workspace the key or the app belongs to, which
me.getreports asworkspaceId.confirmstrE detyrueshmeThe name of the workspace. Letter case and the spaces around it do not matter. Sent as a query parameter.
api_keystrOverrides the client's API key for this call only.
timeoutfloatSeconds this call may take, the response included, before it raises
OpenEmailNetworkErrorwithis_timeout. It overrides the client'stimeoutfor this call, and0turns the limit off.
Kthen
DeletedWorkspaceResource with id, deleted, which is always True, and activeWorkspaceId, the workspace the app opens from now on.
Shembull
from openemail import openemail deleted = openemail.workspaces.delete( '10417196-e324-4283-af98-66ec62167c47', confirm='Acme Support') print(deleted['id'], deleted['deleted'], 'The app now opens', deleted['activeWorkspaceId'])Shënime
An OAuth access token needs a verification code for this call, and is refused with 403
step_up_requireduntil the app has verified one in the last 60 minutes.is_step_up_requiredon the error says so. An API key is never asked for a code.The key or the app loses its workspace with it, so every later call with it is refused.
Not retried automatically. A retry after a lost response is a 404, since the workspace is already gone.