diff --git a/openapi.yaml b/openapi.yaml new file mode 100644 index 0000000..c25861f --- /dev/null +++ b/openapi.yaml @@ -0,0 +1,122 @@ +openapi: 3.0.1 +info: + title: L0 Storage + description: Immutable Storage Service + license: + name: MIT + url: https://github.com/tiki/l0-storage/blob/main/LICENSE + version: 1.0.0 +servers: +- url: https://storage.l0.mytiki.com +paths: + /api/latest/upload: + post: + tags: + - "" + summary: Upload Content + description: Upload a block/pub.key to storage bucket + operationId: l0-storage-upload-post + requestBody: + content: + application/json: + schema: + type: object + properties: + key: + type: string + content: + type: string + responses: + "201": + description: Created + security: + - jwt: [] + /api/latest/token: + post: + tags: + - "" + summary: Request Access Token + description: Request an access token for uploading to storage bucket + operationId: l0-storage-token-post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TokenAOReq' + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/TokenAORsp' + security: + - oauth: [] + /health: + get: + tags: + - HEALTH + summary: Health Check + description: Get service status + operationId: l0-storage-health-get + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ApiError' + example: + message: OK +components: + schemas: + TokenAOReq: + type: object + properties: + pubKey: + type: string + signature: + type: string + stringToSign: + type: string + TokenAORsp: + type: object + properties: + type: + type: string + token: + type: string + expires: + type: string + format: date-time + urnPrefix: + type: string + ApiError: + type: object + properties: + id: + type: string + message: + type: string + detail: + type: string + help: + type: string + properties: + type: object + additionalProperties: + type: string + securitySchemes: + oauth: + type: oauth2 + flows: + clientCredentials: + tokenUrl: https://auth.l0.mytiki.com/api/latest/oauth/token + refreshUrl: https://auth.l0.mytiki.com/api/latest/oauth/token + scopes: + storage: this service + jwt: + type: http + scheme: bearer + bearerFormat: JWT diff --git a/pom.xml b/pom.xml index 734c2e0..bbf815c 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ com.mytiki l0_storage - 0.1.0 + 1.0.0 jar L0 Storage