storj/satellite/console/consoleweb/consoleapi/apidocs.gen.md
Ivan Fraixedes 9d7ef17a26
private/apigen: Fix code generation for slices & arrays
Fix the API generator to generate valid TypeScript code when using
slices an arrays of any type (base types, struct types, anonymous struct
types, etc.).

Closes https://github.com/storj/storj/issues/6323

Change-Id: I580ae5305c58f65c2e4f4a35d14ca4ee509a9250
2023-10-02 17:05:35 +02:00

9.0 KiB

API Docs

Description: Interacts with projects

Version: v0

List of Endpoints

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:

{
	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
}

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
}