storj/satellite/console/consoleweb/consoleapi/apidocs.gen.md
Moby von Briesen 8acb1ee5bf private/apigen: Support basic doc generation
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
2023-06-13 08:48:06 +00:00

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
}