Speakeasy Workspaces API
REST APIs for managing Workspaces (speakeasy tenancy)
Documentation
GettingStarted
https://www.speakeasy.com/docs/sdks/introduction
Documentation
https://www.speakeasy.com/docs
REST APIs for managing Workspaces (speakeasy tenancy)
openapi: 3.0.3
info:
description: The Subscriptions API manages subscriptions for CLI and registry events
title: Speakeasy Artifacts Workspaces API
version: 0.4.0
servers:
- url: https://api.prod.speakeasy.com
x-speakeasy-server-id: prod
security:
- APIKey: []
- WorkspaceIdentifier: []
- Bearer: []
tags:
- name: Workspaces
description: REST APIs for managing Workspaces (speakeasy tenancy)
paths:
/v1/workspaces:
get:
summary: Get Workspaces for a User
description: Returns a list of workspaces a user has access too
operationId: getWorkspaces
x-speakeasy-name-override: getAll
responses:
2XX:
content:
application/json:
schema:
title: Workspaces
items:
$ref: '#/components/schemas/Workspace'
type: array
description: OK
4XX:
$ref: '#/components/responses/default'
tags:
- Workspaces
/v1/workspace:
get:
summary: Get Workspace by Context
tags:
- Workspaces
description: Get information about a particular workspace by context.
operationId: getWorkspaceByContext
x-speakeasy-name-override: get
responses:
2XX:
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceAndOrganization'
description: OK
4XX:
$ref: '#/components/responses/default'
post:
summary: Create a Workspace
description: Creates a workspace
operationId: createWorkspace
x-speakeasy-name-override: create
tags:
- Workspaces
requestBody:
description: The workspace to create
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
required: true
responses:
2XX:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
4XX:
$ref: '#/components/responses/default'
/v1/workspace/{workspace_id}:
parameters:
- name: workspace_id
in: path
required: true
description: Unique identifier of the workspace.
schema:
type: string
get:
summary: Get Workspace
tags:
- Workspaces
description: Get information about a particular workspace.
operationId: getWorkspace
x-speakeasy-name-override: getByID
responses:
2XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
description: OK
4XX:
$ref: '#/components/responses/default'
/v1/workspace/{workspace_id}/details:
parameters:
- name: workspace_id
in: path
required: true
description: Unique identifier of the workspace.
schema:
type: string
post:
summary: Update Workspace Details
tags:
- Workspaces
description: Update information about a particular workspace.
operationId: updateWorkspaceDetails
x-speakeasy-name-override: update
x-speakeasy-test: false
requestBody:
description: The workspace details to update.
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
required: true
responses:
2XX:
description: OK
4XX:
$ref: '#/components/responses/default'
/v1/workspace/{workspace_id}/settings:
parameters:
- name: workspace_id
in: path
required: true
description: Unique identifier of the workspace.
schema:
type: string
get:
summary: Get Workspace Settings
tags:
- Workspaces
description: Get settings about a particular workspace.
operationId: getWorkspaceSettings
x-speakeasy-name-override: getSettings
responses:
2XX:
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceSettings'
description: OK
4XX:
$ref: '#/components/responses/default'
put:
summary: Update Workspace Settings
tags:
- Workspaces
description: Update settings about a particular workspace.
operationId: updateWorkspaceSettings
x-speakeasy-name-override: updateSettings
requestBody:
description: The workspace settings to update.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceSettings'
required: true
responses:
2XX:
description: OK
4XX:
$ref: '#/components/responses/default'
/v1/workspace/{workspace_id}/team:
parameters:
- name: workspace_id
in: path
required: true
description: Unique identifier of the workspace.
schema:
type: string
get:
summary: Get Team Members for a Particular Workspace
operationId: getWorkspaceTeam
x-speakeasy-name-override: getTeam
x-speakeasy-test: false
tags:
- Workspaces
responses:
2XX:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceTeamResponse'
4XX:
$ref: '#/components/responses/default'
/v1/workspace/{workspace_id}/team/email/{email}:
parameters:
- name: workspace_id
in: path
required: true
description: Unique identifier of the workspace.
schema:
type: string
- name: email
in: path
required: true
description: Email of the user to grant access to.
schema:
type: string
put:
summary: Grant a User Access to a Particular Workspace
operationId: grantUserAccessToWorkspace
x-speakeasy-name-override: grantAccess
x-speakeasy-test: false
tags:
- Workspaces
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceInviteResponse'
4XX:
$ref: '#/components/responses/default'
/v1/workspace/{workspace_id}/team/{userId}:
parameters:
- name: workspace_id
in: path
required: true
description: Unique identifier of the workspace.
schema:
type: string
- name: userId
in: path
required: true
description: Unique identifier of the user.
schema:
type: string
delete:
summary: Revoke a User's Access to a Particular Workspace
operationId: revokeUserAccessToWorkspace
x-speakeasy-name-override: revokeAccess
x-speakeasy-test: false
tags:
- Workspaces
responses:
2XX:
description: OK
4XX:
$ref: '#/components/responses/default'
/v1/workspace/{workspace_id}/tokens:
parameters:
- name: workspace_id
in: path
required: true
description: Unique identifier of the workspace.
schema:
type: string
get:
summary: Get Tokens for a Particular Workspace
operationId: getWorkspaceTokens
x-speakeasy-name-override: getTokens
x-speakeasy-test: false
tags:
- Workspaces
responses:
2XX:
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/WorkspaceToken'
4XX:
$ref: '#/components/responses/default'
post:
summary: Create a Token for a Particular Workspace
operationId: createWorkspaceToken
x-speakeasy-name-override: createToken
x-speakeasy-test: false
tags:
- Workspaces
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceToken'
responses:
2XX:
description: OK
4XX:
$ref: '#/components/responses/default'
/v1/workspace/{workspace_id}/tokens/{tokenID}:
parameters:
- name: workspace_id
in: path
required: true
description: Unique identifier of the workspace.
schema:
type: string
- name: tokenID
in: path
required: true
description: Unique identifier of the token.
schema:
type: string
delete:
summary: Delete a Token for a Particular Workspace
operationId: deleteWorkspaceToken
x-speakeasy-name-override: deleteToken
x-speakeasy-test: false
tags:
- Workspaces
responses:
2XX:
description: OK
4XX:
$ref: '#/components/responses/default'
/v1/workspace/feature_flags:
post:
summary: Set Workspace Feature Flags
operationId: setWorkspaceFeatureFlags
x-speakeasy-name-override: setFeatureFlags
tags:
- Workspaces
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceFeatureFlagRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceFeatureFlagResponse'
5XX:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/workspace/{workspace_id}/feature_flags:
parameters:
- name: workspace_id
in: path
required: true
description: Unique identifier of the workspace.
schema:
type: string
get:
summary: Get Workspace Feature Flags
operationId: getWorkspaceFeatureFlags
x-speakeasy-name-override: getFeatureFlags
tags:
- Workspaces
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceFeatureFlagResponse'
5XX:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
AccountType:
type: string
x-speakeasy-unknown-values: allow
enum:
- free
- scale-up
- business
- enterprise
WorkspaceSettings:
properties:
workspace_id:
type: string
webhook_url:
type: string
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
required:
- workspace_id
- webhook_url
- created_at
- updated_at
WorkspaceTeamResponse:
description: Workspace team response
properties:
users:
type: array
items:
$ref: '#/components/schemas/User'
sso_metadata:
$ref: '#/components/schemas/SSOMetadata'
required:
- users
WorkspaceFeatureFlagRequest:
description: A request to add workspace feature flags
type: object
properties:
feature_flags:
type: array
items:
$ref: '#/components/schemas/WorkspaceFeatureFlag'
required:
- feature_flags
WorkspaceFeatureFlag:
description: enum value workspace feature flag
type: string
x-speakeasy-unknown-values: allow
enum:
- schema_registry
- changes_report
- skip_schema_registry
- webhooks
Workspace:
description: A speakeasy workspace
properties:
created_at:
type: string
format: date-time
id:
type: string
name:
type: string
organization_id:
type: string
slug:
type: string
inactive:
type: boolean
telemetry_disabled:
deprecated: true
description: Deprecated. Use organization.telemetry_disabled instead.
type: boolean
updated_at:
type: string
format: date-time
verified:
type: boolean
required:
- created_at
- id
- name
- organization_id
- slug
- updated_at
- verified
type: object
WorkspaceFeatureFlagResponse:
description: Workspace feature flag response
properties:
feature_flags:
type: array
items:
$ref: '#/components/schemas/FeatureFlag'
WorkspaceInviteResponse:
type: object
description: A response for workspace user invite
properties:
relationship:
type: object
properties:
workspace_id:
type: string
user_id:
type: string
required:
- workspace_id
- user_id
invite_link:
nullable: true
type: string
required:
- relationship
WorkspaceToken:
description: A workspace token
type: object
properties:
id:
type: string
name:
type: string
workspace_id:
type: string
alg:
type: string
key:
type: string
last_used:
nullable: true
type: string
format: date-time
created_at:
type: string
format: date-time
created_by:
type: string
nullable: true
created_by_name:
type: string
nullable: true
created_by_photo_url:
type: string
nullable: true
email:
nullable: true
type: string
required:
- id
- name
- alg
- key
- created_at
- workspace_id
WorkspaceAndOrganization:
description: A workspace and organization
properties:
workspace:
$ref: '#/components/schemas/Workspace'
organization:
$ref: '#/components/schemas/Organization'
required:
- workspace
- organization
type: object
SSOMetadata:
description: SSO metadata for a workspace
properties:
sso_activated:
type: boolean
sso_domains:
type: array
items:
type: string
required:
- sso_activated
- sso_domains
FeatureFlag:
description: A feature flag is a key-value pair that can be used to enable or disable features.
properties:
feature_flag:
$ref: '#/components/schemas/WorkspaceFeatureFlag'
trial_ends_at:
type: string
format: date-time
nullable: true
required:
- feature_flag
User:
type: object
properties:
id:
type: string
description: Unique identifier for the user.
email:
type: string
description: Email address of the user.
email_verified:
type: boolean
description: Indicates whether the email address has been verified.
github_handle:
type: string
description: GitHub handle of the user.
nullable: true
display_name:
type: string
description: Display name of the user.
photo_url:
type: string
nullable: true
description: URL of the user's photo.
default_workspace_id:
type: string
description: Identifier of the default workspace.
nullable: true
confirmed:
type: boolean
description: Indicates whether the user has been confirmed.
whitelisted:
type: boolean
description: Indicates whether the user has been whitelisted.
last_login_at:
type: string
nullable: true
format: date-time
description: Timestamp of the last login.
admin:
type: boolean
description: Indicates whether the user is an admin.
created_at:
type: string
format: date-time
description: Timestamp of the user's creation.
updated_at:
type: string
format: date-time
description: Timestamp of the user's last update.
internal:
type: boolean
description: Indicates whether the user is internal.
pylon_identity_hash:
type: string
description: Hash used for pylon identity verification returned on v1/user.
has_created_api_key:
type: boolean
description: Indicates whether the user has created an API key. Not always populated
required:
- id
- email
- email_verified
- display_name
- confirmed
- whitelisted
- admin
- created_at
- updated_at
Error:
description: The `Status` type defines a logical error model
properties:
message:
description: A developer-facing error message.
type: string
status_code:
description: The HTTP status code
format: int32
type: integer
required:
- message
- status_code
type: object
Organization:
description: A speakeasy organization
properties:
id:
type: string
name:
type: string
slug:
type: string
account_type:
$ref: '#/components/schemas/AccountType'
telemetry_disabled:
type: boolean
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
free_trial_expiry:
type: string
format: date-time
nullable: true
sso_connection_id:
type: string
nullable: true
sso_activated:
type: boolean
internal:
type: boolean
required:
- id
- name
- slug
- account_type
- telemetry_disabled
- sso_activated
- created_at
- updated_at
type: object
responses:
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Default error response
securitySchemes:
APIKey:
description: The API Key for the workspace
in: header
name: x-api-key
type: apiKey
WorkspaceIdentifier:
description: The API Key for the workspace
in: header
name: x-workspace-identifier
type: apiKey
Bearer:
description: The Bearer token for the workspace
type: http
scheme: bearer
externalDocs:
url: /docs
description: The Speakeasy Platform Documentation
x-speakeasy-globals:
parameters:
- name: workspace_id
in: path
schema:
type: string