storj/satellite/console/consoleweb/consoleapi/apidocs.gen.md
Moby von Briesen 7fbabbcf16 private/apigen: Add list of endpoints with links
This change makes it easier for someone reading the documentation to see
a full list of supported endpoints, and have direct links to the
details.

Change-Id: I46e2f809cfa2760845898eaa3d99db9066d435ef
2023-08-24 02:45:46 +00:00

7.6 KiB

API Docs

Description: Interacts with projects

Version: v0

List of endpoints:

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
}