8acb1ee5bf
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
314 lines
6.3 KiB
Markdown
314 lines
6.3 KiB
Markdown
# API Docs
|
|
|
|
**Description:** Interacts with projects
|
|
|
|
**Version:** `v0`
|
|
|
|
## Create new Project
|
|
|
|
Creates new Project with given info
|
|
|
|
`POST /projects/create`
|
|
|
|
**Request body:**
|
|
|
|
```json
|
|
{
|
|
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:**
|
|
|
|
```json
|
|
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:**
|
|
|
|
```json
|
|
{
|
|
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:**
|
|
|
|
```json
|
|
{
|
|
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:**
|
|
|
|
```json
|
|
[
|
|
{
|
|
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:**
|
|
|
|
```json
|
|
{
|
|
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:**
|
|
|
|
```json
|
|
[
|
|
{
|
|
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:**
|
|
|
|
```json
|
|
{
|
|
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:**
|
|
|
|
```json
|
|
{
|
|
projectID: string
|
|
name: string
|
|
}
|
|
|
|
```
|
|
|
|
**Response body:**
|
|
|
|
```json
|
|
{
|
|
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:**
|
|
|
|
```json
|
|
{
|
|
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
|
|
}
|
|
|
|
```
|
|
|