From 838404cbcdf4a7f5654b5aff096a09a67373f6bd Mon Sep 17 00:00:00 2001 From: David Ragot Date: Fri, 2 Aug 2024 18:24:29 +0200 Subject: [PATCH] wip: add doc --- Earthfile | 9 + docs/{api.mdx => api/index.mdx} | 4 +- docs/api/membership.mdx | 9 + docusaurus.config.ts | 5 + openapi/membership.yaml | 2008 +++++++++++++++++++++++++++++++ sidebars.ts | 19 +- 6 files changed, 2048 insertions(+), 6 deletions(-) rename docs/{api.mdx => api/index.mdx} (53%) create mode 100644 docs/api/membership.mdx create mode 100644 openapi/membership.yaml diff --git a/Earthfile b/Earthfile index 92504f1..bb9ca8d 100644 --- a/Earthfile +++ b/Earthfile @@ -17,5 +17,14 @@ build: CACHE .docusaurus COPY . . COPY --dir +update-operator-doc/* docs/operator + COPY --dir +update-membership-openapi/* openapi/membership.yaml RUN yarn build SAVE ARTIFACT build AS LOCAL build + SAVE ARTIFACT openapi/membership.yaml AS LOCAL openapi/membership.yaml + + +update-membership-openapi: + FROM core+base-image + WORKDIR /src + COPY (github.com/formancehq/stack/components/fctl+membership-openapi/openapi.yaml) . + SAVE ARTIFACT ./openapi.yaml AS LOCAL ./openapi/membership.yaml diff --git a/docs/api.mdx b/docs/api/index.mdx similarity index 53% rename from docs/api.mdx rename to docs/api/index.mdx index 04b3b21..5c73f1a 100644 --- a/docs/api.mdx +++ b/docs/api/index.mdx @@ -1,9 +1,9 @@ --- -title: API Reference +title: Stack hide_table_of_contents: true --- import React from "react"; -import RedocThemeComponent from "../src/components/RedocThemeComponent"; +import RedocThemeComponent from "../../src/components/RedocThemeComponent"; diff --git a/docs/api/membership.mdx b/docs/api/membership.mdx new file mode 100644 index 0000000..b39c451 --- /dev/null +++ b/docs/api/membership.mdx @@ -0,0 +1,9 @@ +--- +title: Membership +hide_table_of_contents: true +--- + +import React from "react"; +import RedocThemeComponent from "../../src/components/RedocThemeComponent"; + + \ No newline at end of file diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 84ba432..d4d10b2 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -98,6 +98,11 @@ export default async function createConfig() { spec: './openapi/generic-connector.yaml', route: '/api/generic-connector', id: 'api-generic-connector', + }, + { + spec: './openapi/membership.yaml', + route: '/api/membership', + id: 'api-membership', } ], } diff --git a/openapi/membership.yaml b/openapi/membership.yaml new file mode 100644 index 0000000..97e9417 --- /dev/null +++ b/openapi/membership.yaml @@ -0,0 +1,2008 @@ +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 + status: + type: string + 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: + - UNKNOWN + - PROGRESSING + - 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 + default: "" + enum: + - "" + - NONE + - ADMIN + - GUEST + - USER + User: + allOf: + - $ref: "#/components/schemas/UserData" + - type: object + required: + - id + properties: + id: + type: string + description: User ID + OrganizationUserArray: + type: array + items: + allOf: + - $ref: "#/components/schemas/OrganizationUser" + ReadOrganizationUserResponse: + type: object + properties: + data: + $ref: "#/components/schemas/OrganizationUser" + OrganizationUser: + allOf: + - type: object + required: + - role + properties: + role: + $ref: "#/components/schemas/Role" + - $ref: "#/components/schemas/User" + 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 diff --git a/sidebars.ts b/sidebars.ts index 28cae20..0a99e38 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -607,10 +607,21 @@ const sidebars = { label: "Getting Help", }, { - type: "doc", - id: "api", - label: "API Reference", - }, + label: 'API Reference', + type: 'category', + collapsible: true, + collapsed: true, + items: [ + { + type: 'doc', + id: 'api/index', + }, + { + type: 'doc', + id: 'api/membership', + } + ], + } ], } satisfies SidebarsConfig;