openapi: 3.1.0 info: title: Fermyon Cloud API version: '1.0' description: |- OpenAPI 3.1 specification for the Fermyon Cloud REST API, derived from the public swagger.json published in the fermyon/cloud-openapi repository on GitHub. paths: /api/accounts/{id}: get: tags: - accounts parameters: - name: id in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/AccountDetails' application/json: schema: $ref: '#/components/schemas/AccountDetails' text/json: schema: $ref: '#/components/schemas/AccountDetails' patch: tags: - accounts parameters: - name: id in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/PatchAccountDetailsCommand' application/json: schema: $ref: '#/components/schemas/PatchAccountDetailsCommand' text/json: schema: $ref: '#/components/schemas/PatchAccountDetailsCommand' application/*+json: schema: $ref: '#/components/schemas/PatchAccountDetailsCommand' required: true responses: '200': description: Success delete: tags: - accounts parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success /api/apps: get: tags: - apps parameters: - name: searchText in: query schema: type: string default: '' - name: pageIndex in: query schema: type: integer format: int32 default: 0 - name: pageSize in: query schema: type: integer format: int32 default: 50 - name: sortBy in: query schema: type: string default: Name - name: IsSortedAscending in: query schema: type: boolean default: true - name: exactMatch in: query schema: type: boolean default: false - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/AppItemPage' application/json: schema: $ref: '#/components/schemas/AppItemPage' text/json: schema: $ref: '#/components/schemas/AppItemPage' post: tags: - apps parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/CreateAppCommand' application/json: schema: $ref: '#/components/schemas/CreateAppCommand' text/json: schema: $ref: '#/components/schemas/CreateAppCommand' application/*+json: schema: $ref: '#/components/schemas/CreateAppCommand' required: true responses: '200': description: Success content: text/plain: schema: type: string format: uuid application/json: schema: type: string format: uuid text/json: schema: type: string format: uuid /api/apps/{id}: get: tags: - apps parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/AppItem' application/json: schema: $ref: '#/components/schemas/AppItem' text/json: schema: $ref: '#/components/schemas/AppItem' put: tags: - apps parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/UpdateAppCommand' application/json: schema: $ref: '#/components/schemas/UpdateAppCommand' text/json: schema: $ref: '#/components/schemas/UpdateAppCommand' application/*+json: schema: $ref: '#/components/schemas/UpdateAppCommand' required: true responses: '200': description: Success patch: tags: - apps parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/PatchAppCommand' application/json: schema: $ref: '#/components/schemas/PatchAppCommand' text/json: schema: $ref: '#/components/schemas/PatchAppCommand' application/*+json: schema: $ref: '#/components/schemas/PatchAppCommand' required: true responses: '200': description: Success delete: tags: - apps parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success /api/apps/{id}/request-count: get: tags: - apps parameters: - name: id in: path required: true schema: type: string format: uuid - name: from in: query schema: type: string format: date-time - name: to in: query schema: type: string format: date-time - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/AppRequestCountItem' application/json: schema: $ref: '#/components/schemas/AppRequestCountItem' text/json: schema: $ref: '#/components/schemas/AppRequestCountItem' /api/apps/{id}/logs: get: tags: - apps parameters: - name: id in: path required: true schema: type: string format: uuid - name: max in: query schema: type: integer format: int32 - name: since in: query schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/GetAppLogsVm' application/json: schema: $ref: '#/components/schemas/GetAppLogsVm' text/json: schema: $ref: '#/components/schemas/GetAppLogsVm' /api/apps/{id}/logs/raw: get: tags: - apps parameters: - name: id in: path required: true schema: type: string format: uuid - name: max in: query schema: type: integer format: int32 - name: since in: query schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/GetAppRawLogsVm' application/json: schema: $ref: '#/components/schemas/GetAppRawLogsVm' text/json: schema: $ref: '#/components/schemas/GetAppRawLogsVm' /api/apps/{id}/events: get: tags: - apps parameters: - name: id in: path required: true schema: type: string format: uuid - name: from in: query schema: type: string format: date-time - name: to in: query schema: type: string format: date-time - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/AppEventItem' application/json: schema: type: array items: $ref: '#/components/schemas/AppEventItem' text/json: schema: type: array items: $ref: '#/components/schemas/AppEventItem' /api/auth-tokens: post: tags: - auth-tokens parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/CreateTokenCommand' application/json: schema: $ref: '#/components/schemas/CreateTokenCommand' text/json: schema: $ref: '#/components/schemas/CreateTokenCommand' application/*+json: schema: $ref: '#/components/schemas/CreateTokenCommand' required: true responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/TokenInfo' application/json: schema: $ref: '#/components/schemas/TokenInfo' text/json: schema: $ref: '#/components/schemas/TokenInfo' /api/auth-tokens/refresh: post: tags: - auth-tokens parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/RefreshTokenCommand' application/json: schema: $ref: '#/components/schemas/RefreshTokenCommand' text/json: schema: $ref: '#/components/schemas/RefreshTokenCommand' application/*+json: schema: $ref: '#/components/schemas/RefreshTokenCommand' required: true responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/TokenInfo' application/json: schema: $ref: '#/components/schemas/TokenInfo' text/json: schema: $ref: '#/components/schemas/TokenInfo' /api/channels: get: tags: - channels parameters: - name: searchText in: query schema: type: string default: '' - name: pageIndex in: query schema: type: integer format: int32 default: 0 - name: pageSize in: query schema: type: integer format: int32 default: 50 - name: sortBy in: query schema: type: string default: Name - name: IsSortedAscending in: query schema: type: boolean default: true - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/ChannelItemPage' application/json: schema: $ref: '#/components/schemas/ChannelItemPage' text/json: schema: $ref: '#/components/schemas/ChannelItemPage' post: tags: - channels parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/CreateChannelCommand' application/json: schema: $ref: '#/components/schemas/CreateChannelCommand' text/json: schema: $ref: '#/components/schemas/CreateChannelCommand' application/*+json: schema: $ref: '#/components/schemas/CreateChannelCommand' required: true responses: '200': description: Success content: text/plain: schema: type: string format: uuid application/json: schema: type: string format: uuid text/json: schema: type: string format: uuid /api/channels/{id}: get: tags: - channels parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/ChannelItem' application/json: schema: $ref: '#/components/schemas/ChannelItem' text/json: schema: $ref: '#/components/schemas/ChannelItem' put: tags: - channels parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/UpdateChannelCommand' application/json: schema: $ref: '#/components/schemas/UpdateChannelCommand' text/json: schema: $ref: '#/components/schemas/UpdateChannelCommand' application/*+json: schema: $ref: '#/components/schemas/UpdateChannelCommand' required: true responses: '200': description: Success patch: tags: - channels parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/PatchChannelCommand' application/json: schema: $ref: '#/components/schemas/PatchChannelCommand' text/json: schema: $ref: '#/components/schemas/PatchChannelCommand' application/*+json: schema: $ref: '#/components/schemas/PatchChannelCommand' required: true responses: '200': description: Success delete: tags: - channels parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success /api/channels/{channelId}/desired-status: put: tags: - channels parameters: - name: channelId in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/UpdateDesiredStatusCommand' application/json: schema: $ref: '#/components/schemas/UpdateDesiredStatusCommand' text/json: schema: $ref: '#/components/schemas/UpdateDesiredStatusCommand' application/*+json: schema: $ref: '#/components/schemas/UpdateDesiredStatusCommand' required: true responses: '200': description: Success /api/channels/{id}/logs: get: tags: - channels parameters: - name: id in: path required: true schema: type: string format: uuid - name: max in: query schema: type: integer format: int32 - name: since in: query schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/GetChannelLogsVm' application/json: schema: $ref: '#/components/schemas/GetChannelLogsVm' text/json: schema: $ref: '#/components/schemas/GetChannelLogsVm' /api/channels/{id}/logs/raw: get: tags: - channels parameters: - name: id in: path required: true schema: type: string format: uuid - name: max in: query schema: type: integer format: int32 - name: since in: query schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/GetChannelRawLogsVm' application/json: schema: $ref: '#/components/schemas/GetChannelRawLogsVm' text/json: schema: $ref: '#/components/schemas/GetChannelRawLogsVm' /api/channels/{id}/healthz: get: tags: - channels parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/HealthCheckResult' application/json: schema: $ref: '#/components/schemas/HealthCheckResult' text/json: schema: $ref: '#/components/schemas/HealthCheckResult' /api/custom-domains/{domainName}: get: tags: - custom-domains parameters: - name: domainName in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/DomainItem' application/json: schema: $ref: '#/components/schemas/DomainItem' text/json: schema: $ref: '#/components/schemas/DomainItem' /api/device-codes: post: tags: - device-codes parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/CreateDeviceCodeCommand' application/json: schema: $ref: '#/components/schemas/CreateDeviceCodeCommand' text/json: schema: $ref: '#/components/schemas/CreateDeviceCodeCommand' application/*+json: schema: $ref: '#/components/schemas/CreateDeviceCodeCommand' required: true responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/DeviceCodeItem' application/json: schema: $ref: '#/components/schemas/DeviceCodeItem' text/json: schema: $ref: '#/components/schemas/DeviceCodeItem' /api/device-codes/{userCode}: get: tags: - device-codes parameters: - name: userCode in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/DeviceCodeDetails' application/json: schema: $ref: '#/components/schemas/DeviceCodeDetails' text/json: schema: $ref: '#/components/schemas/DeviceCodeDetails' /api/device-codes/activate: post: tags: - device-codes parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/ActivateDeviceCodeCommand' application/json: schema: $ref: '#/components/schemas/ActivateDeviceCodeCommand' text/json: schema: $ref: '#/components/schemas/ActivateDeviceCodeCommand' application/*+json: schema: $ref: '#/components/schemas/ActivateDeviceCodeCommand' required: true responses: '200': description: Success /api/key-value-pairs: post: tags: - key-value-pairs parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/CreateKeyValuePairCommand' application/json: schema: $ref: '#/components/schemas/CreateKeyValuePairCommand' text/json: schema: $ref: '#/components/schemas/CreateKeyValuePairCommand' application/*+json: schema: $ref: '#/components/schemas/CreateKeyValuePairCommand' required: true responses: '200': description: Success /api/key-value-stores/{store}: post: tags: - key-value-stores parameters: - name: store in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/ResourceLabel' application/json: schema: $ref: '#/components/schemas/ResourceLabel' text/json: schema: $ref: '#/components/schemas/ResourceLabel' application/*+json: schema: $ref: '#/components/schemas/ResourceLabel' responses: '200': description: Success delete: tags: - key-value-stores parameters: - name: store in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success /api/key-value-stores: get: tags: - key-value-stores parameters: - name: appId in: query schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/KeyValueStoresList' application/json: schema: $ref: '#/components/schemas/KeyValueStoresList' text/json: schema: $ref: '#/components/schemas/KeyValueStoresList' /api/key-value-stores/{store}/links: post: tags: - key-value-stores parameters: - name: store in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/ResourceLabel' application/json: schema: $ref: '#/components/schemas/ResourceLabel' text/json: schema: $ref: '#/components/schemas/ResourceLabel' application/*+json: schema: $ref: '#/components/schemas/ResourceLabel' required: true responses: '200': description: Success delete: tags: - key-value-stores parameters: - name: store in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/ResourceLabel' application/json: schema: $ref: '#/components/schemas/ResourceLabel' text/json: schema: $ref: '#/components/schemas/ResourceLabel' application/*+json: schema: $ref: '#/components/schemas/ResourceLabel' required: true responses: '200': description: Success /api/key-value-stores/{store}/rename: patch: tags: - key-value-stores parameters: - name: store in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: type: string application/json: schema: type: string text/json: schema: type: string application/*+json: schema: type: string required: true responses: '200': description: Success /api/oci: get: tags: - oci parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success /api/oci/{name}/manifests/{reference}: head: tags: - oci parameters: - name: name in: path required: true schema: type: string - name: reference in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success put: tags: - oci parameters: - name: name in: path required: true schema: type: string - name: reference in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success /api/oci/{name}/blobs/uploads: post: tags: - oci parameters: - name: name in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success /api/oci/{name}/blobs/uploads/{digest}: get: tags: - oci parameters: - name: digest in: path required: true schema: type: string - name: name in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success put: tags: - oci parameters: - name: digest in: path required: true schema: type: string - name: name in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success patch: tags: - oci parameters: - name: digest in: path required: true schema: type: string - name: name in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success delete: tags: - oci parameters: - name: digest in: path required: true schema: type: string - name: name in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success /api/payments/setup-checkout: post: tags: - payments parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/PaymentIntegrationUrl' application/json: schema: $ref: '#/components/schemas/PaymentIntegrationUrl' text/json: schema: $ref: '#/components/schemas/PaymentIntegrationUrl' /api/payments/customer-portal: get: tags: - payments parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/PaymentIntegrationUrl' application/json: schema: $ref: '#/components/schemas/PaymentIntegrationUrl' text/json: schema: $ref: '#/components/schemas/PaymentIntegrationUrl' /api/payments/plans: get: tags: - payments parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/PlanItem' application/json: schema: type: array items: $ref: '#/components/schemas/PlanItem' text/json: schema: type: array items: $ref: '#/components/schemas/PlanItem' /api/personal-access-tokens: post: tags: - personal-access-tokens parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/CreatePersonalAccessTokenCommand' application/json: schema: $ref: '#/components/schemas/CreatePersonalAccessTokenCommand' text/json: schema: $ref: '#/components/schemas/CreatePersonalAccessTokenCommand' application/*+json: schema: $ref: '#/components/schemas/CreatePersonalAccessTokenCommand' required: true responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/PersonalAccessTokenValue' application/json: schema: $ref: '#/components/schemas/PersonalAccessTokenValue' text/json: schema: $ref: '#/components/schemas/PersonalAccessTokenValue' get: tags: - personal-access-tokens parameters: - name: searchText in: query schema: type: string default: '' - name: pageIndex in: query schema: type: integer format: int32 default: 0 - name: pageSize in: query schema: type: integer format: int32 default: 50 - name: sortBy in: query schema: type: string default: CreatedAt - name: isSortedAscending in: query schema: type: boolean default: false - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/PersonalAccessTokenItemPage' application/json: schema: $ref: '#/components/schemas/PersonalAccessTokenItemPage' text/json: schema: $ref: '#/components/schemas/PersonalAccessTokenItemPage' /api/personal-access-tokens/{id}: delete: tags: - personal-access-tokens parameters: - name: id in: path required: true schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success /api/revisions: get: tags: - revisions parameters: - name: pageIndex in: query schema: type: integer format: int32 default: 0 - name: pageSize in: query schema: type: integer format: int32 default: 50 - name: searchText in: query schema: type: string default: '' - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/RevisionItemPage' application/json: schema: $ref: '#/components/schemas/RevisionItemPage' text/json: schema: $ref: '#/components/schemas/RevisionItemPage' post: tags: - revisions parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/RegisterRevisionCommand' application/json: schema: $ref: '#/components/schemas/RegisterRevisionCommand' text/json: schema: $ref: '#/components/schemas/RegisterRevisionCommand' application/*+json: schema: $ref: '#/components/schemas/RegisterRevisionCommand' required: true responses: '200': description: Success /api/sql-databases/create: post: tags: - sql-databases parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/CreateSqlDatabaseCommand' application/json: schema: $ref: '#/components/schemas/CreateSqlDatabaseCommand' text/json: schema: $ref: '#/components/schemas/CreateSqlDatabaseCommand' application/*+json: schema: $ref: '#/components/schemas/CreateSqlDatabaseCommand' required: true responses: '200': description: Success /api/sql-databases/execute: post: tags: - sql-databases parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/ExecuteSqlStatementCommand' application/json: schema: $ref: '#/components/schemas/ExecuteSqlStatementCommand' text/json: schema: $ref: '#/components/schemas/ExecuteSqlStatementCommand' application/*+json: schema: $ref: '#/components/schemas/ExecuteSqlStatementCommand' required: true responses: '200': description: Success /api/sql-databases: delete: tags: - sql-databases parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/DeleteSqlDatabaseCommand' application/json: schema: $ref: '#/components/schemas/DeleteSqlDatabaseCommand' text/json: schema: $ref: '#/components/schemas/DeleteSqlDatabaseCommand' application/*+json: schema: $ref: '#/components/schemas/DeleteSqlDatabaseCommand' required: true responses: '200': description: Success get: tags: - sql-databases parameters: - name: appId in: query schema: type: string format: uuid - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/GetSqlDatabasesQuery' application/json: schema: $ref: '#/components/schemas/GetSqlDatabasesQuery' text/json: schema: $ref: '#/components/schemas/GetSqlDatabasesQuery' application/*+json: schema: $ref: '#/components/schemas/GetSqlDatabasesQuery' responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/DatabasesList' application/json: schema: $ref: '#/components/schemas/DatabasesList' text/json: schema: $ref: '#/components/schemas/DatabasesList' /api/sql-databases/{database}/links: post: tags: - sql-databases parameters: - name: database in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/ResourceLabel' application/json: schema: $ref: '#/components/schemas/ResourceLabel' text/json: schema: $ref: '#/components/schemas/ResourceLabel' application/*+json: schema: $ref: '#/components/schemas/ResourceLabel' required: true responses: '200': description: Success delete: tags: - sql-databases parameters: - name: database in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/ResourceLabel' application/json: schema: $ref: '#/components/schemas/ResourceLabel' text/json: schema: $ref: '#/components/schemas/ResourceLabel' application/*+json: schema: $ref: '#/components/schemas/ResourceLabel' required: true responses: '200': description: Success /api/sql-databases/{database}/rename: patch: tags: - sql-databases parameters: - name: database in: path required: true schema: type: string - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: type: string application/json: schema: type: string text/json: schema: type: string application/*+json: schema: type: string required: true responses: '200': description: Success /api/variable-pairs: post: tags: - variable-pairs parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/CreateVariablePairCommand' application/json: schema: $ref: '#/components/schemas/CreateVariablePairCommand' text/json: schema: $ref: '#/components/schemas/CreateVariablePairCommand' application/*+json: schema: $ref: '#/components/schemas/CreateVariablePairCommand' required: true responses: '200': description: Success delete: tags: - variable-pairs parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/DeleteVariablePairCommand' application/json: schema: $ref: '#/components/schemas/DeleteVariablePairCommand' text/json: schema: $ref: '#/components/schemas/DeleteVariablePairCommand' application/*+json: schema: $ref: '#/components/schemas/DeleteVariablePairCommand' required: true responses: '200': description: Success get: tags: - variable-pairs parameters: - name: Api-Version in: header description: The requested API version schema: type: string default: '1.0' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/GetVariablesQuery' application/json: schema: $ref: '#/components/schemas/GetVariablesQuery' text/json: schema: $ref: '#/components/schemas/GetVariablesQuery' application/*+json: schema: $ref: '#/components/schemas/GetVariablesQuery' required: true responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/VariablesList' application/json: schema: $ref: '#/components/schemas/VariablesList' text/json: schema: $ref: '#/components/schemas/VariablesList' components: schemas: AccountDetails: type: object properties: plan: $ref: '#/components/schemas/AccountPlanRecord' isMarketingEmailOn: type: boolean createdAt: type: string format: date-time nullable: true additionalProperties: false AccountPlanRecord: type: object properties: accountType: $ref: '#/components/schemas/AccountPlanType' cancelAt: type: string format: date-time nullable: true cycleStartDate: type: string format: date-time nullable: true cycleEndDate: type: string format: date-time nullable: true lastModified: type: string format: date-time nullable: true additionalProperties: false AccountPlanType: enum: - Free - Growth - Enterprise type: string AccountProvider: enum: - GitHub - DeviceFlow type: string ActivateDeviceCodeCommand: required: - userCode type: object properties: userCode: minLength: 1 type: string additionalProperties: false ApiHealthStatus: enum: - Healthy - Unhealthy - Degraded type: string AppChannelListItem: required: - created - id - name type: object properties: id: type: string format: uuid name: minLength: 1 type: string activeRevisionNumber: type: string domain: type: string created: type: string format: date-time healthStatus: $ref: '#/components/schemas/ApiHealthStatus' lastModified: type: string format: date-time additionalProperties: false AppDomainItem: required: - name - validationStatus type: object properties: name: minLength: 1 type: string validationStatus: $ref: '#/components/schemas/ValidationStatus' lastModified: type: string format: date-time additionalProperties: false AppEventItem: type: object properties: date: type: string format: date-time type: $ref: '#/components/schemas/AppEventType' name: type: string metadata: type: object additionalProperties: type: string nullable: true additionalProperties: false AppEventType: enum: - Unknown - Create - Update - Delete type: string AppItem: required: - channels - created - id - lastModified - name - storageId - subdomain type: object properties: id: type: string format: uuid name: minLength: 1 type: string storageId: minLength: 1 type: string description: type: string subdomain: minLength: 1 type: string healthStatus: $ref: '#/components/schemas/ApiHealthStatus' channels: type: array items: $ref: '#/components/schemas/AppChannelListItem' domain: $ref: '#/components/schemas/AppDomainItem' lastModified: type: string format: date-time lastDeployed: type: string format: date-time nullable: true created: type: string format: date-time latestRevision: type: string nullable: true additionalProperties: false AppItemPage: required: - isLastPage - items - pageIndex - pageSize - totalItems type: object properties: items: type: array items: $ref: '#/components/schemas/AppItem' totalItems: type: integer format: int32 pageIndex: type: integer format: int32 pageSize: type: integer format: int32 isLastPage: type: boolean readOnly: true additionalProperties: false AppRequestCountItem: required: - averagePerSecond - end - interval - points - start - total type: object properties: start: type: integer format: int64 end: type: integer format: int64 interval: type: integer format: int32 total: type: integer format: int64 averagePerSecond: type: number format: double points: type: array items: $ref: '#/components/schemas/AppRequestPointItem' additionalProperties: false AppRequestPointItem: required: - timestamp - value type: object properties: timestamp: type: integer format: int64 value: type: integer format: int64 additionalProperties: false AppSummaryDto: required: - channels - id - name - storageId type: object properties: id: type: string format: uuid name: minLength: 1 type: string storageId: minLength: 1 type: string channels: type: array items: $ref: '#/components/schemas/AppChannelListItem' lastModified: type: string format: date-time additionalProperties: false BooleanField: type: string properties: value: type: boolean additionalProperties: false ChannelItem: required: - appId - desiredStatus - domain - environmentVariables - id - name - revisionSelectionStrategy type: object properties: id: type: string format: uuid appId: type: string format: uuid name: minLength: 1 type: string domain: minLength: 1 type: string revisionSelectionStrategy: $ref: '#/components/schemas/ChannelRevisionSelectionStrategy' desiredStatus: minLength: 1 type: string activeRevision: $ref: '#/components/schemas/RevisionItem' lastPublishAt: type: string format: date-time nullable: true rangeRule: type: string nullable: true lastModified: type: string format: date-time appSummary: $ref: '#/components/schemas/AppSummaryDto' environmentVariables: type: array items: $ref: '#/components/schemas/EnvironmentVariableItem' additionalProperties: false ChannelItemPage: required: - isLastPage - items - pageIndex - pageSize - totalItems type: object properties: items: type: array items: $ref: '#/components/schemas/ChannelItem' totalItems: type: integer format: int32 pageIndex: type: integer format: int32 pageSize: type: integer format: int32 isLastPage: type: boolean readOnly: true additionalProperties: false ChannelRevisionSelectionStrategy: enum: - UseRangeRule - UseSpecifiedRevision type: string ChannelRevisionSelectionStrategyField: type: string properties: value: $ref: '#/components/schemas/ChannelRevisionSelectionStrategy' additionalProperties: false CreateAppCommand: required: - name - storageId type: object properties: name: minLength: 1 type: string storageId: minLength: 1 type: string createDefaultDatabase: type: boolean additionalProperties: false CreateChannelCommand: required: - appId - name - revisionSelectionStrategy type: object properties: appId: type: string format: uuid name: minLength: 1 type: string revisionSelectionStrategy: $ref: '#/components/schemas/ChannelRevisionSelectionStrategy' rangeRule: type: string nullable: true activeRevisionId: type: string format: uuid nullable: true additionalProperties: false CreateDeviceCodeCommand: required: - clientId type: object properties: clientId: type: string format: uuid additionalProperties: false CreateKeyValuePairCommand: required: - key - value type: object properties: appId: type: string format: uuid storeName: type: string key: minLength: 1 type: string value: minLength: 1 type: string label: type: string additionalProperties: false CreatePersonalAccessTokenCommand: required: - name type: object properties: name: minLength: 1 type: string additionalProperties: false CreateSqlDatabaseCommand: required: - name type: object properties: name: minLength: 1 type: string appId: type: string format: uuid nullable: true label: type: string nullable: true additionalProperties: false CreateTokenCommand: type: object properties: providerCode: type: string clientId: type: string provider: $ref: '#/components/schemas/AccountProvider' isMarketingEmailOn: type: boolean additionalProperties: false CreateVariablePairCommand: required: - appId - value - variable type: object properties: appId: type: string format: uuid variable: minLength: 1 type: string value: minLength: 1 type: string additionalProperties: false Database: required: - links - name type: object properties: name: minLength: 1 type: string default: type: boolean links: type: array items: $ref: '#/components/schemas/ResourceLabel' additionalProperties: false DatabasesList: required: - databases type: object properties: databases: type: array items: $ref: '#/components/schemas/Database' additionalProperties: false DeleteSqlDatabaseCommand: required: - name type: object properties: name: minLength: 1 type: string additionalProperties: false DeleteVariablePairCommand: required: - appId - variable type: object properties: appId: type: string format: uuid variable: minLength: 1 type: string additionalProperties: false DesiredStatus: enum: - Running - Dead type: string DeviceCodeDetails: type: object properties: clientName: type: string additionalProperties: false DeviceCodeItem: required: - deviceCode - expiresIn - interval - userCode - verificationUrl type: object properties: deviceCode: minLength: 1 type: string userCode: minLength: 1 type: string verificationUrl: minLength: 1 type: string expiresIn: type: integer format: int64 interval: type: integer format: int32 additionalProperties: false DnsRecord: required: - name - ttl - type - value type: object properties: type: minLength: 1 type: string name: minLength: 1 type: string value: minLength: 1 type: string ttl: type: integer format: int32 additionalProperties: false DomainItem: required: - dnsRecords - name - validationStatus type: object properties: name: minLength: 1 type: string validationStatus: minLength: 1 type: string validatedAt: type: string format: date-time nullable: true lastModified: type: string format: date-time dnsRecords: type: array items: $ref: '#/components/schemas/DnsRecord' additionalProperties: false Entry: type: object properties: meta: $ref: '#/components/schemas/Meta' logLines: type: array items: $ref: '#/components/schemas/LogLine' additionalProperties: false EnvironmentVariableItem: required: - channelId - key - value type: object properties: channelId: type: string format: uuid key: minLength: 1 type: string value: minLength: 1 type: string additionalProperties: false ExecuteSqlStatementCommand: required: - database - default - statement type: object properties: database: minLength: 1 type: string default: type: boolean statement: minLength: 1 type: string additionalProperties: false GetAppLogsVm: required: - logs type: object properties: logs: type: array items: type: string additionalProperties: false GetAppRawLogsVm: required: - entries type: object properties: entries: type: array items: $ref: '#/components/schemas/Entry' additionalProperties: false GetChannelLogsVm: required: - logs type: object properties: logs: type: array items: type: string additionalProperties: false GetChannelRawLogsVm: required: - entries type: object properties: entries: type: array items: $ref: '#/components/schemas/Entry' additionalProperties: false GetSqlDatabasesQuery: type: object properties: appId: type: string format: uuid nullable: true additionalProperties: false GetVariablesQuery: required: - appId type: object properties: appId: type: string format: uuid additionalProperties: false GuidNullableField: type: string properties: value: type: string format: uuid nullable: true additionalProperties: false HealthCheckResult: type: object properties: status: $ref: '#/components/schemas/ApiHealthStatus' additionalProperties: false KeyValueStoreItem: required: - links - name type: object properties: name: minLength: 1 type: string links: type: array items: $ref: '#/components/schemas/ResourceLabel' additionalProperties: false KeyValueStoresList: required: - keyValueStores type: object properties: keyValueStores: type: array items: $ref: '#/components/schemas/KeyValueStoreItem' additionalProperties: false LogLine: type: object properties: time: type: string source: type: string line: type: string additionalProperties: false Meta: type: object properties: appId: type: string channelId: type: string deploymentId: type: string requestId: type: string triggerId: type: string componentId: type: string additionalProperties: false PatchAccountDetailsCommand: type: object properties: isMarketingEmailOn: $ref: '#/components/schemas/BooleanField' additionalProperties: false PatchAppCommand: required: - id type: object properties: id: type: string format: uuid domain: $ref: '#/components/schemas/StringField' hostname: $ref: '#/components/schemas/StringField' additionalProperties: false PatchChannelCommand: type: object properties: channelId: type: string format: uuid name: $ref: '#/components/schemas/StringField' domain: $ref: '#/components/schemas/StringField' revisionSelectionStrategy: $ref: '#/components/schemas/ChannelRevisionSelectionStrategyField' rangeRule: $ref: '#/components/schemas/StringField' activeRevisionId: $ref: '#/components/schemas/GuidNullableField' additionalProperties: false PaymentIntegrationUrl: type: object properties: url: type: string additionalProperties: false PersonalAccessTokenItem: type: object properties: id: type: string format: uuid name: type: string createdAt: type: string format: date-time additionalProperties: false PersonalAccessTokenItemPage: required: - isLastPage - items - pageIndex - pageSize - totalItems type: object properties: items: type: array items: $ref: '#/components/schemas/PersonalAccessTokenItem' totalItems: type: integer format: int32 pageIndex: type: integer format: int32 pageSize: type: integer format: int32 isLastPage: type: boolean readOnly: true additionalProperties: false PersonalAccessTokenValue: type: object properties: name: type: string token: type: string id: type: string format: uuid additionalProperties: false PlanItem: required: - accountPlanType - price type: object properties: accountPlanType: minLength: 1 type: string price: type: number format: double additionalProperties: false RefreshTokenCommand: required: - refreshToken - token type: object properties: token: minLength: 1 type: string refreshToken: minLength: 1 type: string additionalProperties: false RegisterRevisionCommand: required: - appStorageId - revisionNumber type: object properties: appStorageId: minLength: 1 type: string revisionNumber: minLength: 1 type: string additionalProperties: false ResourceLabel: required: - appId - label type: object properties: label: minLength: 1 type: string appId: type: string format: uuid appName: type: string additionalProperties: false RevisionComponentDto: required: - id - name - source type: object properties: id: type: string format: uuid source: minLength: 1 type: string name: minLength: 1 type: string route: type: string nullable: true type: type: string nullable: true additionalProperties: false RevisionItem: required: - appId - components - id - revisionNumber type: object properties: id: type: string format: uuid appId: type: string format: uuid revisionNumber: minLength: 1 type: string components: type: array items: $ref: '#/components/schemas/RevisionComponentDto' readOnly: true lastModified: type: string format: date-time additionalProperties: false RevisionItemPage: required: - isLastPage - items - pageIndex - pageSize - totalItems type: object properties: items: type: array items: $ref: '#/components/schemas/RevisionItem' totalItems: type: integer format: int32 pageIndex: type: integer format: int32 pageSize: type: integer format: int32 isLastPage: type: boolean readOnly: true additionalProperties: false StringField: type: string properties: value: type: string additionalProperties: false TokenInfo: required: - expiration - refreshToken - token type: object properties: token: minLength: 1 type: string refreshToken: minLength: 1 type: string expiration: type: string format: date-time readOnly: true additionalProperties: false UpdateAppCommand: required: - id - name type: object properties: id: type: string format: uuid name: minLength: 1 type: string additionalProperties: false UpdateChannelCommand: required: - id - name - revisionSelectionStrategy type: object properties: id: type: string format: uuid name: minLength: 1 type: string revisionSelectionStrategy: $ref: '#/components/schemas/ChannelRevisionSelectionStrategy' rangeRule: type: string nullable: true activeRevisionId: type: string format: uuid nullable: true additionalProperties: false UpdateDesiredStatusCommand: required: - channelId - desiredStatus type: object properties: channelId: type: string format: uuid desiredStatus: $ref: '#/components/schemas/DesiredStatus' additionalProperties: false ValidationStatus: enum: - InProgress - Error - Ready - Provisioning type: string VariablesList: required: - vars type: object properties: vars: type: array items: type: string additionalProperties: false securitySchemes: Bearer: type: apiKey description: |- JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}" name: Authorization in: header security: - Bearer: [] servers: - url: https://cloud.fermyon.com description: Fermyon Cloud production API