Add some code to generate a basic markdown file documenting a generated API. Generate this document for the API in satellite/console/consoleweb/consoleapi/gen. The documentation is not completely correct, as it may include some values in the request body that are not actually usable by the requester. This can be fixed by making sure all types used within the generated API are properly annotated with `json` tags. Issue: https://github.com/storj/storj-private/issues/244 Change-Id: I57b259967fb0db8f548b6598a10c825da15ba723
6.3 KiB
API Docs
Description: Interacts with projects
Version: v0
Create new Project
Creates new Project with given info
POST /projects/create
Request body:
{
name: string
description: string
storageLimit: string (Amount of memory formatted as `15 GB`)
bandwidthLimit: string (Amount of memory formatted as `15 GB`)
createdAt: string (Date timestamp formatted as `2006-01-02T15:00:00Z`)
}
Response body:
unknown
Update Project
Updates project with given info
PATCH /projects/update/{id}
Path Params:
name | type | elaboration |
---|---|---|
id |
string |
UUID formatted as 00000000-0000-0000-0000-000000000000 |
Request body:
{
name: string
description: string
storageLimit: string (Amount of memory formatted as `15 GB`)
bandwidthLimit: string (Amount of memory formatted as `15 GB`)
createdAt: string (Date timestamp formatted as `2006-01-02T15:00:00Z`)
}
Response body:
{
id: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
publicId: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
name: string
description: string
userAgent: string
ownerId: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
rateLimit: number
burstLimit: number
maxBuckets: number
createdAt: string (Date timestamp formatted as `2006-01-02T15:00:00Z`)
memberCount: number
storageLimit: string (Amount of memory formatted as `15 GB`)
bandwidthLimit: string (Amount of memory formatted as `15 GB`)
userSpecifiedStorageLimit: string (Amount of memory formatted as `15 GB`)
userSpecifiedBandwidthLimit: string (Amount of memory formatted as `15 GB`)
segmentLimit: number
defaultPlacement: number
}
Delete Project
Deletes project by id
DELETE /projects/delete/{id}
Path Params:
name | type | elaboration |
---|---|---|
id |
string |
UUID formatted as 00000000-0000-0000-0000-000000000000 |
Get Projects
Gets all projects user has
GET /projects/
Response body:
[
{
id: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
publicId: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
name: string
description: string
userAgent: string
ownerId: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
rateLimit: number
burstLimit: number
maxBuckets: number
createdAt: string (Date timestamp formatted as `2006-01-02T15:00:00Z`)
memberCount: number
storageLimit: string (Amount of memory formatted as `15 GB`)
bandwidthLimit: string (Amount of memory formatted as `15 GB`)
userSpecifiedStorageLimit: string (Amount of memory formatted as `15 GB`)
userSpecifiedBandwidthLimit: string (Amount of memory formatted as `15 GB`)
segmentLimit: number
defaultPlacement: number
}
]
Get Project's Single Bucket Usage
Gets project's single bucket usage by bucket ID
GET /projects/bucket-rollup
Query Params:
name | type | elaboration |
---|---|---|
projectID |
string |
UUID formatted as 00000000-0000-0000-0000-000000000000 |
bucket |
string |
|
since |
string |
Date timestamp formatted as 2006-01-02T15:00:00Z |
before |
string |
Date timestamp formatted as 2006-01-02T15:00:00Z |
Response body:
{
projectID: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
bucketName: string
totalStoredData: number
totalSegments: number
objectCount: number
metadataSize: number
repairEgress: number
getEgress: number
auditEgress: number
since: string (Date timestamp formatted as `2006-01-02T15:00:00Z`)
before: string (Date timestamp formatted as `2006-01-02T15:00:00Z`)
}
Get Project's All Buckets Usage
Gets project's all buckets usage
GET /projects/bucket-rollups
Query Params:
name | type | elaboration |
---|---|---|
projectID |
string |
UUID formatted as 00000000-0000-0000-0000-000000000000 |
since |
string |
Date timestamp formatted as 2006-01-02T15:00:00Z |
before |
string |
Date timestamp formatted as 2006-01-02T15:00:00Z |
Response body:
[
{
projectID: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
bucketName: string
totalStoredData: number
totalSegments: number
objectCount: number
metadataSize: number
repairEgress: number
getEgress: number
auditEgress: number
since: string (Date timestamp formatted as `2006-01-02T15:00:00Z`)
before: string (Date timestamp formatted as `2006-01-02T15:00:00Z`)
}
]
Get Project's API Keys
Gets API keys by project ID
GET /projects/apikeys/{projectID}
Query Params:
name | type | elaboration |
---|---|---|
search |
string |
|
limit |
number |
|
page |
number |
|
order |
number |
|
orderDirection |
number |
Path Params:
name | type | elaboration |
---|---|---|
projectID |
string |
UUID formatted as 00000000-0000-0000-0000-000000000000 |
Response body:
{
apiKeys: [
{
id: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
projectId: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
projectPublicId: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
userAgent: string
name: string
createdAt: string (Date timestamp formatted as `2006-01-02T15:00:00Z`)
}
]
search: string
limit: number
order: number
orderDirection: number
offset: number
pageCount: number
currentPage: number
totalCount: number
}
Create new macaroon API key
Creates new macaroon API key with given info
POST /apikeys/create
Request body:
{
projectID: string
name: string
}
Response body:
{
key: string
keyInfo: unknown
}
Delete API Key
Deletes macaroon API key by id
DELETE /apikeys/delete/{id}
Path Params:
name | type | elaboration |
---|---|---|
id |
string |
UUID formatted as 00000000-0000-0000-0000-000000000000 |
Get User
Gets User by request context
GET /users/
Response body:
{
id: string (UUID formatted as `00000000-0000-0000-0000-000000000000`)
fullName: string
shortName: string
email: string
userAgent: string
projectLimit: number
isProfessional: boolean
position: string
companyName: string
employeeCount: string
haveSalesContact: boolean
paidTier: boolean
isMFAEnabled: boolean
mfaRecoveryCodeCount: number
}