Previously the base path for the API was hardcoded to `/api` and the specified version. This was not obvious that the generated code was setting that base path and it was not flexible for serving the API under a different path than `/api`. We will likely need to set a different base path if we pretend to serve the new back office API that we are going to implement alongside the current admin API until the new back office is fully implemented and verified that works properly. This commit also fix add the base path of the endpoints to the documentation because it was even more confusing for somebody that wants to use the API having to find out them through looking to the generated code. Change-Id: I6efab6b6f3d295129d6f42f7fbba8c2dc19725f4
8.2 KiB
API Docs
Description: Interacts with projects
Version: v0
List of Endpoints
- ProjectManagement
- APIKeyManagement
- UserManagement
Create new Project (go to full list)
Creates new Project with given info
POST /api/v0/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 (go to full list)
Updates project with given info
PATCH /api/v0/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 (go to full list)
Deletes project by id
DELETE /api/v0/projects/delete/{id}
Path Params:
name | type | elaboration |
---|---|---|
id |
string |
UUID formatted as 00000000-0000-0000-0000-000000000000 |
Get Projects (go to full list)
Gets all projects user has
GET /api/v0/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 (go to full list)
Gets project's single bucket usage by bucket ID
GET /api/v0/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 (go to full list)
Gets project's all buckets usage
GET /api/v0/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 (go to full list)
Gets API keys by project ID
GET /api/v0/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 (go to full list)
Creates new macaroon API key with given info
POST /api/v0/apikeys/create
Request body:
{
projectID: string
name: string
}
Response body:
{
key: string
keyInfo: unknown
}
Delete API Key (go to full list)
Deletes macaroon API key by id
DELETE /api/v0/apikeys/delete/{id}
Path Params:
name | type | elaboration |
---|---|---|
id |
string |
UUID formatted as 00000000-0000-0000-0000-000000000000 |
Get User (go to full list)
Gets User by request context
GET /api/v0/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
}