551 lines
14 KiB
YAML
551 lines
14 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: storage-api service
|
|
version: 0.1.0
|
|
paths:
|
|
/:
|
|
get:
|
|
summary: Root
|
|
operationId: root__get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Response Root Get
|
|
/health/live:
|
|
get:
|
|
summary: Live
|
|
operationId: live_health_live_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Response Live Health Live Get
|
|
/api/v1/health:
|
|
get:
|
|
summary: Public Health
|
|
operationId: public_health_api_v1_health_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Response Public Health Api V1 Health Get
|
|
/health/ready:
|
|
get:
|
|
summary: Ready
|
|
operationId: ready_health_ready_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
title: Response Ready Health Ready Get
|
|
/internal/v1/uploads:
|
|
post:
|
|
summary: Create Upload
|
|
operationId: create_upload_internal_v1_uploads_post
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateUploadRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
title: Response Create Upload Internal V1 Uploads Post
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/internal/v1/uploads/{upload_id}/complete:
|
|
post:
|
|
summary: Complete Upload
|
|
operationId: complete_upload_internal_v1_uploads__upload_id__complete_post
|
|
parameters:
|
|
- name: upload_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Upload Id
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CompleteUploadRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
title: Response Complete Upload Internal V1 Uploads Upload Id Complete Post
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/internal/v1/uploads/{upload_id}/abort:
|
|
post:
|
|
summary: Abort Upload
|
|
operationId: abort_upload_internal_v1_uploads__upload_id__abort_post
|
|
parameters:
|
|
- name: upload_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Upload Id
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
title: Response Abort Upload Internal V1 Uploads Upload Id Abort Post
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/internal/v1/objects:
|
|
post:
|
|
summary: Create Server Object
|
|
operationId: create_server_object_internal_v1_objects_post
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ServerObjectRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
title: Response Create Server Object Internal V1 Objects Post
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/internal/v1/workspace-objects:
|
|
post:
|
|
summary: Register Workspace Object
|
|
operationId: register_workspace_object_internal_v1_workspace_objects_post
|
|
parameters:
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RegisterWorkspaceObjectRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
title: Response Register Workspace Object Internal V1 Workspace Objects Post
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/internal/v1/objects/{storage_object_id}/download-url:
|
|
post:
|
|
summary: Create Download Url
|
|
operationId: create_download_url_internal_v1_objects__storage_object_id__download_url_post
|
|
parameters:
|
|
- name: storage_object_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Storage Object Id
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DownloadUrlRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
title: Response Create Download Url Internal V1 Objects Storage Object Id Download Url
|
|
Post
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/internal/v1/objects/{storage_object_id}:
|
|
delete:
|
|
summary: Delete Object
|
|
operationId: delete_object_internal_v1_objects__storage_object_id__delete
|
|
parameters:
|
|
- name: storage_object_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Storage Object Id
|
|
- name: X-Service-Token
|
|
in: header
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: X-Service-Token
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
title: Response Delete Object Internal V1 Objects Storage Object Id Delete
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
/internal/health/storage:
|
|
get:
|
|
summary: Internal Health
|
|
operationId: internal_health_internal_health_storage_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
title: Response Internal Health Internal Health Storage Get
|
|
components:
|
|
schemas:
|
|
CompleteUploadRequest:
|
|
properties:
|
|
usage_type:
|
|
type: string
|
|
enum:
|
|
- data_resource
|
|
- version_artifact
|
|
- snapshot
|
|
- run_log
|
|
- run_result
|
|
title: Usage Type
|
|
visibility:
|
|
type: string
|
|
enum:
|
|
- private
|
|
- workspace
|
|
- public
|
|
title: Visibility
|
|
default: private
|
|
is_immutable:
|
|
type: boolean
|
|
title: Is Immutable
|
|
default: false
|
|
additionalProperties: false
|
|
type: object
|
|
required:
|
|
- usage_type
|
|
title: CompleteUploadRequest
|
|
CreateUploadRequest:
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
maxLength: 26
|
|
minLength: 26
|
|
title: Workspace Id
|
|
user_id:
|
|
type: string
|
|
maxLength: 26
|
|
minLength: 26
|
|
title: User Id
|
|
usage_type:
|
|
type: string
|
|
enum:
|
|
- data_resource
|
|
- version_artifact
|
|
- snapshot
|
|
- run_log
|
|
- run_result
|
|
title: Usage Type
|
|
file_name:
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
title: File Name
|
|
content_type:
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
title: Content Type
|
|
expected_size_bytes:
|
|
type: integer
|
|
maximum: 104857600.0
|
|
minimum: 0.0
|
|
title: Expected Size Bytes
|
|
expected_hash:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 64
|
|
minLength: 64
|
|
- type: 'null'
|
|
title: Expected Hash
|
|
idempotency_key:
|
|
type: string
|
|
maxLength: 128
|
|
minLength: 8
|
|
title: Idempotency Key
|
|
url_scope:
|
|
type: string
|
|
enum:
|
|
- public
|
|
- internal
|
|
title: Url Scope
|
|
default: public
|
|
additionalProperties: false
|
|
type: object
|
|
required:
|
|
- workspace_id
|
|
- user_id
|
|
- usage_type
|
|
- file_name
|
|
- content_type
|
|
- expected_size_bytes
|
|
- idempotency_key
|
|
title: CreateUploadRequest
|
|
DownloadUrlRequest:
|
|
properties:
|
|
expires_seconds:
|
|
type: integer
|
|
maximum: 3600.0
|
|
minimum: 30.0
|
|
title: Expires Seconds
|
|
default: 300
|
|
additionalProperties: false
|
|
type: object
|
|
title: DownloadUrlRequest
|
|
HTTPValidationError:
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: Detail
|
|
type: object
|
|
title: HTTPValidationError
|
|
RegisterWorkspaceObjectRequest:
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
maxLength: 26
|
|
minLength: 26
|
|
title: Workspace Id
|
|
user_id:
|
|
type: string
|
|
maxLength: 26
|
|
minLength: 26
|
|
title: User Id
|
|
relative_path:
|
|
type: string
|
|
maxLength: 1024
|
|
minLength: 1
|
|
title: Relative Path
|
|
usage_type:
|
|
type: string
|
|
enum:
|
|
- working_copy
|
|
- public_script
|
|
title: Usage Type
|
|
visibility:
|
|
type: string
|
|
enum:
|
|
- private
|
|
- workspace
|
|
- public
|
|
title: Visibility
|
|
default: private
|
|
additionalProperties: false
|
|
type: object
|
|
required:
|
|
- workspace_id
|
|
- user_id
|
|
- relative_path
|
|
- usage_type
|
|
title: RegisterWorkspaceObjectRequest
|
|
ServerObjectRequest:
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
maxLength: 26
|
|
minLength: 26
|
|
title: Workspace Id
|
|
user_id:
|
|
type: string
|
|
maxLength: 26
|
|
minLength: 26
|
|
title: User Id
|
|
usage_type:
|
|
type: string
|
|
enum:
|
|
- data_resource
|
|
- version_artifact
|
|
- snapshot
|
|
- run_log
|
|
- run_result
|
|
title: Usage Type
|
|
file_name:
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
title: File Name
|
|
content_type:
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
title: Content Type
|
|
content_base64:
|
|
type: string
|
|
minLength: 1
|
|
title: Content Base64
|
|
visibility:
|
|
type: string
|
|
enum:
|
|
- private
|
|
- workspace
|
|
- public
|
|
title: Visibility
|
|
default: private
|
|
is_immutable:
|
|
type: boolean
|
|
title: Is Immutable
|
|
default: false
|
|
idempotency_key:
|
|
type: string
|
|
maxLength: 128
|
|
minLength: 8
|
|
title: Idempotency Key
|
|
additionalProperties: false
|
|
type: object
|
|
required:
|
|
- workspace_id
|
|
- user_id
|
|
- usage_type
|
|
- file_name
|
|
- content_type
|
|
- content_base64
|
|
- idempotency_key
|
|
title: ServerObjectRequest
|
|
ValidationError:
|
|
properties:
|
|
loc:
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: array
|
|
title: Location
|
|
msg:
|
|
type: string
|
|
title: Message
|
|
type:
|
|
type: string
|
|
title: Error Type
|
|
type: object
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|