Files
stack/components/fctl/membership-swagger.yaml
2024-08-07 14:31:48 +00:00

2027 lines
51 KiB
YAML

openapi: 3.0.3
info:
title: Membership API
contact: {}
version: "0.1.0"
servers:
- url: http://localhost:8080
description: Local server
paths:
/_info:
get:
summary: Get server info
operationId: getServerInfo
responses:
200:
description: Server information
content:
application/json:
schema:
$ref: "#/components/schemas/ServerInfo"
/organizations:
get:
summary: List organizations of the connected user
operationId: listOrganizations
parameters:
- name: expand
in: query
schema:
type: bool
required: false
responses:
200:
description: List of organizations
content:
application/json:
schema:
$ref: "#/components/schemas/ListOrganizationExpandedResponse"
post:
summary: Create organization
operationId: createOrganization
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateOrganizationRequest"
responses:
201:
description: Organization created
content:
application/json:
schema:
$ref: "#/components/schemas/CreateOrganizationResponse"
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/expanded:
get:
summary: List organizations of the connected user with expanded data
operationId: listOrganizationsExpanded
deprecated: true
responses:
200:
description: List of organizations with expanded data
content:
application/json:
schema:
$ref: "#/components/schemas/ListOrganizationExpandedResponse"
/organizations/{organizationId}:
get:
summary: Read organization
operationId: readOrganization
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: expand
in: query
schema:
type: bool
required: false
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/ReadOrganizationResponse"
put:
summary: Update organization
operationId: updateOrganization
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/OrganizationData"
responses:
200:
description: Organization updated
content:
application/json:
schema:
$ref: "#/components/schemas/ReadOrganizationResponse"
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
delete:
summary: Delete organization
operationId: deleteOrganization
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
responses:
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
204:
description: Organization deleted
/organizations/{organizationId}/logs:
get:
summary: List logs
operationId: listLogs
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: query
schema:
type: string
required: false
- name: cursor
in: query
schema:
type: string
required: false
- name: pageSize
in: query
schema:
type: integer
minimum: 1
required: false
- name: action
in: query
schema:
$ref: "#/components/schemas/Action"
required: false
- name: userId
in: query
schema:
type: string
required: false
- name: key
in: query
schema:
type: string
required: false
- name: value
in: query
schema:
type: string
required: false
responses:
200:
description: Cursor of logs
content:
application/json:
schema:
$ref: "#/components/schemas/LogCursor"
/organizations/{organizationId}/users:
get:
summary: List users of organization
operationId: listUsersOfOrganization
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
responses:
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
200:
description: List of users
content:
application/json:
schema:
$ref: "#/components/schemas/ListUsersResponse"
/organizations/{organizationId}/users/{userId}:
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: userId
in: path
schema:
type: string
required: true
get:
summary: Read user of organization
operationId: readUserOfOrganization
responses:
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
200:
description: Read a user
content:
application/json:
schema:
$ref: "#/components/schemas/ReadOrganizationUserResponse"
put:
summary: Update user within an organization
operationId: upsertOrganizationUser
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateOrganizationUserRequest"
responses:
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
204:
description: Updated user
delete:
summary: delete user from organization
operationId: deleteUserFromOrganization
description: |
The owner of the organization can remove anyone while each user can leave any organization where it is not owner.
responses:
204:
description: User deleted from organization
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks:
get:
summary: List stacks
operationId: listStacks
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: all
in: query
description: Include deleted and disabled stacks
schema:
type: boolean
required: false
- name: deleted
in: query
description: Include deleted stacks
deprecated: true
schema:
type: boolean
required: false
responses:
200:
description: List of stacks
content:
application/json:
schema:
$ref: "#/components/schemas/ListStacksResponse"
post:
summary: Create stack
operationId: createStack
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateStackRequest"
responses:
202:
description: Stack created
content:
application/json:
schema:
$ref: "#/components/schemas/CreateStackResponse"
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks/{stackId}/modules:
get:
summary: List modules of a stack
operationId: listModules
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
responses:
200:
description: List of modules
content:
application/json:
schema:
$ref: "#/components/schemas/ListModulesResponse"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
post:
summary: enable module
operationId: enableModule
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
- name: name
in: query
schema:
type: string
required: true
responses:
202:
description: Module enabled
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
delete:
summary: disable module
operationId: disableModule
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
- name: name
in: query
schema:
type: string
required: true
responses:
202:
description: Module disabled
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks/{stackId}/upgrade:
put:
summary: Upgrade stack
operationId: upgradeStack
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/StackVersion"
responses:
202:
description: Stack upgrade accepted
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks/{stackId}:
get:
summary: Find stack
operationId: getStack
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/ReadStackResponse"
404:
description: NotFound
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
put:
summary: Update stack
operationId: updateStack
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateStackRequest"
responses:
200:
description: Updated stack
content:
application/json:
schema:
$ref: "#/components/schemas/ReadStackResponse"
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
delete:
summary: Delete stack
operationId: deleteStack
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
- name: force
in: query
schema:
type: boolean
required: false
responses:
204:
description: Stack deleted
400:
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks/{stackId}/users:
get:
summary: List stack users accesses within an organization
operationId: listStackUsersAccesses
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
responses:
200:
description: Stack users access role
content:
application/json:
schema:
$ref: "#/components/schemas/StackUserAccessResponse"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks/{stackId}/users/{userId}:
get:
summary: Read stack user access role within an organization
operationId: readStackUserAccess
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
- name: userId
in: path
schema:
type: string
required: true
responses:
200:
description: Stack user access role
content:
application/json:
schema:
$ref: "#/components/schemas/ReadStackUserAccess"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
delete:
summary: Delete stack user access role within an organization
operationId: deleteStackUserAccess
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
- name: userId
in: path
schema:
type: string
required: true
responses:
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
204:
description: Updated user
put:
summary: Update stack user access role within an organization
operationId: upsertStackUserAccess
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
- name: userId
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateStackUserRequest"
responses:
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
204:
description: Updated user
/organizations/{organizationId}/stacks/{stackId}/disable:
put:
summary: Disable stack
operationId: disableStack
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
responses:
202:
description: Stack disabled
400:
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks/{stackId}/enable:
put:
summary: Enable stack
operationId: enableStack
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
responses:
202:
description: Stack enabled
400:
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks/{stackId}/restore:
put:
summary: Restore stack
operationId: restoreStack
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
responses:
202:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/ReadStackResponse"
400:
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks/{stackId}/stargate/enable:
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
put:
summary: Enable stargate on a stack
operationId: enableStargate
responses:
202:
description: OK
400:
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/stacks/{stackId}/stargate/disable:
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: stackId
in: path
schema:
type: string
required: true
put:
summary: Disable stargate on a stack
operationId: disableStargate
responses:
202:
description: OK
400:
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/me/invitations:
get:
summary: List invitations of the user
operationId: listInvitations
parameters:
- in: query
name: status
required: false
description: Status of organizations
schema:
type: string
- in: query
name: organization
required: false
description: Status of organizations
schema:
type: string
responses:
200:
description: List of the invitations for the connected user
content:
application/json:
schema:
$ref: "#/components/schemas/ListInvitationsResponse"
/me/invitations/{invitationId}/accept:
post:
summary: Accept invitation
operationId: acceptInvitation
parameters:
- name: invitationId
in: path
schema:
type: string
required: true
responses:
204:
description: Invitation accepted
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/me/invitations/{invitationId}/reject:
post:
summary: Decline invitation
operationId: declineInvitation
parameters:
- name: invitationId
in: path
schema:
type: string
required: true
responses:
204:
description: Invitation declined
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/invitations:
get:
summary: List invitations of the organization
operationId: listOrganizationInvitations
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- in: query
name: status
required: false
description: Status of organizations
schema:
type: string
responses:
200:
description: List of the invitations for the organization
content:
application/json:
schema:
$ref: "#/components/schemas/ListInvitationsResponse"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
post:
summary: Create invitation
operationId: createInvitation
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: email
in: query
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/InvitationClaim"
responses:
201:
description: Invitation created
content:
application/json:
schema:
$ref: "#/components/schemas/CreateInvitationResponse"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/invitations/{invitationId}:
delete:
summary: Delete invitation
operationId: deleteInvitation
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: invitationId
in: path
schema:
type: string
required: true
responses:
204:
description: Invitation deleted
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not Authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/regions:
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
get:
summary: List regions
operationId: listRegions
responses:
200:
description: List of the regions
content:
application/json:
schema:
$ref: "#/components/schemas/ListRegionsResponse"
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
post:
summary: Create a private region
operationId: createPrivateRegion
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreatePrivateRegionRequest"
responses:
400:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
200:
description: Created region
content:
application/json:
schema:
$ref: "#/components/schemas/CreatedPrivateRegionResponse"
/organizations/{organizationId}/regions/{regionId}:
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: regionId
in: path
schema:
type: string
required: true
get:
summary: Get region
operationId: getRegion
responses:
404:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
200:
description: Get a specific region
content:
application/json:
schema:
$ref: "#/components/schemas/GetRegionResponse"
delete:
summary: Delete region
operationId: deleteRegion
responses:
204:
description: Delete a specific region
404:
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
400:
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Not authorized
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/organizations/{organizationId}/regions/{regionId}/versions:
parameters:
- name: organizationId
in: path
schema:
type: string
required: true
- name: regionId
in: path
schema:
type: string
required: true
get:
summary: Get region versions
operationId: getRegionVersions
responses:
404:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
403:
description: Error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
200:
description: Get a specific region
content:
application/json:
schema:
$ref: "#/components/schemas/GetRegionVersionsResponse"
/me:
get:
summary: Read user
operationId: readConnectedUser
responses:
200:
description: Read a user
content:
application/json:
schema:
$ref: "#/components/schemas/ReadUserResponse"
security:
- oauth2: []
components:
securitySchemes:
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: /authorize
tokenUrl: /oauth/token
scopes:
openid: Enable OIDC
email: Ask email access
schemas:
Module:
type: object
required:
- name
- state
- status
- lastStatusUpdate
- lastStateUpdate
properties:
name:
type: string
state:
type: string
enum:
- ENABLED
- DISABLED
status:
type: string
enum:
- UNKNOWN
- PROGRESSING
- READY
- DELETED
lastStatusUpdate:
type: string
format: date-time
lastStateUpdate:
type: string
format: date-time
ListModulesResponse:
type: object
required:
- data
properties:
data:
type: array
items:
$ref: "#/components/schemas/Module"
Action:
type: string
enum:
- agents.connected
- agents.disconnected
- invitations.created
- invitations.accepted
- invitations.rejected
- organizations.created
- organizations.updated
- organizations.deleted
- organizations.user.deleted
- organizations.user.updated
- regions.created
- regions.deleted
- users.created
- users.deleted
- stacks.disposal
- stacks.disposal-reset
- stacks.warned
- stacks.pruned
- stacks.status.updated
- stacks.created
- stacks.updated
- stacks.deleted
- stacks.restored
- stacks.disabled
- stacks.enabled
- stacks.upgraded
- stacks.stargate.enabled
- stacks.stargate.disabled
- stacks.user.updated
- stacks.user.deleted
- stacks.reachness.updated
- stacks.module.enabled
- stacks.module.disabled
- stacks.module.status.updated
LogCursor:
properties:
data:
allOf:
- $ref: "#/components/schemas/Cursor"
- type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Log"
required:
- data
Log:
type: object
required:
- seq
- organizationId
- userId
- action
- date
- data
properties:
seq:
type: string
example: 1e6f8b6e-1b6b-4b3b-8b3b-1b6b4b3b8b3b
organizationId:
type: string
userId:
type: string
action:
type: string
date:
type: string
format: date-time
data:
type: object
Cursor:
type: object
required:
- pageSize
- hasMore
- data
properties:
pageSize:
type: integer
format: int64
minimum: 1
maximum: 1000
example: 15
hasMore:
type: boolean
example: false
previous:
type: string
example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol=
next:
type: string
example: ""
CreatePrivateRegionRequest:
type: object
properties:
name:
type: string
required:
- name
CreatedPrivateRegionResponse:
properties:
data:
$ref: "#/components/schemas/PrivateRegion"
required:
- data
PrivateRegion:
allOf:
- $ref: "#/components/schemas/Region"
- type: object
properties:
organizationID:
type: string
creatorID:
type: string
secret:
type: object
properties:
lastDigits:
type: string
clear:
type: string
required:
- lastDigits
required:
- organizationID
- creatorID
PublicRegion:
allOf:
- $ref: "#/components/schemas/Region"
- type: object
properties:
production:
type: boolean
required:
- production
AnyRegion:
allOf:
- $ref: "#/components/schemas/Region"
- type: object
properties:
clientID:
type: string
organizationID:
type: string
creator:
$ref: "#/components/schemas/User"
production:
type: boolean
public:
type: boolean
version:
type: string
required:
- public
OrganizationData:
type: object
required:
- name
properties:
name:
type: string
description: Organization name
defaultOrganizationAccess:
$ref: "#/components/schemas/Role"
defaultStackAccess:
$ref: "#/components/schemas/Role"
domain:
type: string
description: Organization domain
Organization:
allOf:
- $ref: "#/components/schemas/OrganizationData"
- type: object
required:
- id
- ownerId
properties:
id:
type: string
description: Organization ID
ownerId:
type: string
description: Owner ID
availableStacks:
type: integer
description: Number of available stacks
availableSandboxes:
type: integer
description: Number of available sandboxes
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
StackData:
type: object
required:
- name
properties:
name:
type: string
description: Stack name
metadata:
type: object
additionalProperties:
type: string
StackVersion:
type: object
properties:
version:
type: string
description: Supported only with agent version >= v0.7.0
StackLifeCycle:
type: object
required:
- status
- state
- expectedStatus
- lastStateUpdate
- lastExpectedStatusUpdate
- lastStatusUpdate
properties:
status:
type: string
enum:
- UNKNOWN
- PROGRESSING
- READY
- DISABLED
- DELETED
state:
type: string
enum:
- ACTIVE
- DISABLED
- DELETED
expectedStatus:
type: string
enum:
- READY
- DISABLED
- DELETED
lastStateUpdate:
type: string
format: date-time
lastExpectedStatusUpdate:
type: string
format: date-time
lastStatusUpdate:
type: string
format: date-time
StackReachability:
properties:
reachable:
description: Stack is reachable through Stargate
type: boolean
lastReachableUpdate:
description: Last time the stack was reachable
format: date-time
type: string
required:
- reachable
type: object
Stack:
allOf:
- $ref: "#/components/schemas/StackData"
- $ref: "#/components/schemas/StackVersion"
- $ref: "#/components/schemas/StackLifeCycle"
- $ref: "#/components/schemas/StackReachability"
- type: object
required:
- id
- organizationId
- uri
- regionID
- stargateEnabled
- synchronised
properties:
id:
type: string
description: Stack ID
organizationId:
type: string
description: Organization ID
uri:
type: string
description: Base stack uri
regionID:
type: string
description: The region where the stack is installed
stargateEnabled:
type: boolean
createdAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
disabledAt:
type: string
format: date-time
auditEnabled:
type: boolean
synchronised:
type: boolean
UserData:
allOf:
- type: object
properties:
email:
type: string
required:
- email
Role:
type: string
enum:
- NONE
- ADMIN
- GUEST
SystemRole:
type: string
enum:
- USER
- SYSTEM
User:
allOf:
- $ref: "#/components/schemas/UserData"
- type: object
required:
- id
properties:
id:
type: string
description: User ID
- type: object
properties:
role:
$ref: "#/components/schemas/SystemRole"
OrganizationUserArray:
type: array
items:
allOf:
- $ref: "#/components/schemas/OrganizationUser"
ReadOrganizationUserResponse:
type: object
properties:
data:
$ref: "#/components/schemas/OrganizationUser"
OrganizationUser:
allOf:
- type: object
required:
- role
- email
- id
properties:
role:
$ref: "#/components/schemas/Role"
email:
type: string
id:
type: string
OrganizationArray:
type: array
items:
$ref: "#/components/schemas/Organization"
StackArray:
type: array
items:
$ref: "#/components/schemas/Stack"
UserArray:
type: array
items:
$ref: "#/components/schemas/User"
ReadStackUserAccess:
type: object
properties:
data:
$ref: "#/components/schemas/StackUserAccess"
StackUserAccess:
allOf:
- type: object
required:
- stackId
- userId
- role
properties:
stackId:
type: string
description: Stack ID
userId:
type: string
description: User ID
role:
$ref: "#/components/schemas/Role"
StackUserAccessResponse:
type: object
properties:
data:
$ref: "#/components/schemas/StackUserAccessArray"
StackUserAccessArray:
type: array
items:
$ref: "#/components/schemas/StackUserAccess"
ListOrganizationResponse:
type: object
properties:
data:
$ref: "#/components/schemas/OrganizationArray"
CreateOrganizationRequest:
$ref: "#/components/schemas/OrganizationData"
CreateOrganizationResponse:
type: object
properties:
data:
$ref: "#/components/schemas/OrganizationExpanded"
ReadOrganizationResponse:
type: object
properties:
data:
$ref: "#/components/schemas/OrganizationExpanded"
ListStacksResponse:
type: object
properties:
data:
$ref: "#/components/schemas/StackArray"
ListUsersResponse:
type: object
properties:
data:
$ref: "#/components/schemas/OrganizationUserArray"
CreateStackRequest:
allOf:
- $ref: "#/components/schemas/StackData"
- $ref: "#/components/schemas/StackVersion"
- type: object
properties:
regionID:
type: string
required:
- regionID
UpdateStackRequest:
allOf:
- $ref: "#/components/schemas/StackData"
CreateStackResponse:
type: object
properties:
data:
$ref: "#/components/schemas/Stack"
ReadStackResponse:
$ref: "#/components/schemas/CreateStackResponse"
ReadUserResponse:
type: object
properties:
data:
$ref: "#/components/schemas/User"
ListInvitationsResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Invitation"
CreateInvitationResponse:
type: object
properties:
data:
$ref: "#/components/schemas/Invitation"
Error:
type: object
properties:
errorCode:
type: string
errorMessage:
type: string
required:
- errorCode
Invitation:
type: object
properties:
id:
type: string
organizationId:
type: string
userEmail:
type: string
status:
type: string
enum:
- PENDING
- ACCEPTED
- REJECTED
- CANCELLED
creationDate:
type: string
format: date-time
updatedAt:
type: string
format: date-tim
role:
$ref: "#/components/schemas/Role"
stackClaims:
$ref: "#/components/schemas/StackClaims"
userId:
type: string
organizationAccess:
$ref: "#/components/schemas/OrganizationUser"
required:
- creationDate
- status
- role
- userEmail
- organizationId
- id
InvitationClaim:
type: object
properties:
role:
$ref: "#/components/schemas/Role"
stackClaims:
$ref: "#/components/schemas/StackClaims"
StackClaims:
type: array
items:
$ref: "#/components/schemas/StackClaim"
StackClaim:
type: object
required:
- id
- role
properties:
id:
type: string
role:
$ref: "#/components/schemas/Role"
Region:
type: object
required:
- id
- baseUrl
- active
- createdAt
- name
- capabilities
properties:
id:
type: string
baseUrl:
type: string
createdAt:
type: string
format: datetime
active:
type: boolean
lastPing:
type: string
format: date-time
name:
type: string
capabilities:
$ref: "#/components/schemas/RegionCapability"
RegionCapability:
type: object
properties:
MODULE_LIST:
type: array
items:
type: string
EE:
type: array
items:
type: string
RegionCapabilityKeys:
type: string
enum:
- MODULE_LIST
- EE
ListOrganizationExpandedResponse:
type: object
properties:
data:
type: array
items:
allOf:
- $ref: "#/components/schemas/OrganizationExpanded"
OrganizationExpanded:
allOf:
- $ref: "#/components/schemas/Organization"
- type: object
properties:
totalStacks:
type: integer
totalUsers:
type: integer
owner:
$ref: "#/components/schemas/User"
ListRegionsResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/AnyRegion"
required:
- data
GetRegionResponse:
type: object
properties:
data:
$ref: "#/components/schemas/AnyRegion"
required:
- data
ServerInfo:
type: object
required:
- version
properties:
version:
type: string
capabilities:
type: array
items:
allOf:
- $ref: "#/components/schemas/Capability"
consoleURL:
type: string
Capability:
type: string
enum:
- MODULE_SELECTION
Version:
type: object
required:
- name
- versions
properties:
name:
type: string
versions:
type: object
additionalProperties:
type: string
UpdateOrganizationUserRequest:
type: object
required:
- role
properties:
role:
$ref: "#/components/schemas/Role"
UpdateStackUserRequest:
type: object
required:
- role
properties:
role:
$ref: "#/components/schemas/Role"
GetRegionVersionsResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Version"
required:
- data