# AppMaker API - OAS 3.0

## Get a public presigned URL

> Get a public presigned URL

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"RequiredFileNameQueryParam":{"name":"fileName","in":"query","required":true,"description":"File name","schema":{"type":"string"}},"BucketQueryParam":{"name":"bucket","in":"query","required":false,"description":"The base directory name to upload the file","schema":{"type":"string","default":"temp"}},"ParamsQueryParam":{"name":"params","in":"query","required":false,"description":"The params for the file upload","schema":{"type":"string"}}},"responses":{"GetPresignedUrlResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["url","fields"],"properties":{"url":{"type":"string","description":"Presigned URL"},"fields":{"$ref":"#/components/schemas/AwsPresignedUrl"}}}}}}},"schemas":{"AwsPresignedUrl":{"type":"object","description":"Presigned fields","required":["bucket","key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date","X-Amz-Signature","Policy"],"properties":{"bucket":{"type":"string","description":"Bucket name"},"key":{"type":"string","description":"File key"},"X-Amz-Algorithm":{"type":"string","description":"Algorithm"},"X-Amz-Credential":{"type":"string","description":"Credential"},"X-Amz-Date":{"type":"string","description":"Date"},"X-Amz-Signature":{"type":"string","description":"Signature"},"Policy":{"type":"string","description":"Policy"}}}}},"paths":{"/upload/presign/public":{"get":{"summary":"Get a public presigned URL","description":"Get a public presigned URL","operationId":"getPublicPresignedUrl","parameters":[{"$ref":"#/components/parameters/RequiredFileNameQueryParam"},{"$ref":"#/components/parameters/BucketQueryParam"},{"$ref":"#/components/parameters/ParamsQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetPresignedUrlResponse"}}}}}}
```

## Get a private presigned URL

> Get a private presigned URL

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"RequiredFileNameQueryParam":{"name":"fileName","in":"query","required":true,"description":"File name","schema":{"type":"string"}},"BucketQueryParam":{"name":"bucket","in":"query","required":false,"description":"The base directory name to upload the file","schema":{"type":"string","default":"temp"}},"ParamsQueryParam":{"name":"params","in":"query","required":false,"description":"The params for the file upload","schema":{"type":"string"}}},"responses":{"GetPrivatePresignedUrlResponse":{"description":"OK","content":{"application/json":{"schema":{"required":["url","fields"],"type":"object","properties":{"url":{"type":"string","description":"Presigned URL"},"fields":{"$ref":"#/components/schemas/AwsPresignedUrl"}}}}}}},"schemas":{"AwsPresignedUrl":{"type":"object","description":"Presigned fields","required":["bucket","key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date","X-Amz-Signature","Policy"],"properties":{"bucket":{"type":"string","description":"Bucket name"},"key":{"type":"string","description":"File key"},"X-Amz-Algorithm":{"type":"string","description":"Algorithm"},"X-Amz-Credential":{"type":"string","description":"Credential"},"X-Amz-Date":{"type":"string","description":"Date"},"X-Amz-Signature":{"type":"string","description":"Signature"},"Policy":{"type":"string","description":"Policy"}}}}},"paths":{"/upload/presign/private":{"get":{"summary":"Get a private presigned URL","description":"Get a private presigned URL","operationId":"getPrivatePresignedUrl","parameters":[{"$ref":"#/components/parameters/RequiredFileNameQueryParam"},{"$ref":"#/components/parameters/BucketQueryParam"},{"$ref":"#/components/parameters/ParamsQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetPrivatePresignedUrlResponse"}}}}}}
```

## Get a signed URL

> Get a signed URL

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"RequiredUrlQueryParam":{"name":"url","in":"query","required":true,"description":"Url","schema":{"type":"string"}},"FileNameQueryParam":{"name":"fileName","in":"query","required":false,"description":"File name","schema":{"type":"string"}}},"responses":{"GetSignedUrlResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Signed URL"}}}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}}},"schemas":{"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}},"paths":{"/download":{"get":{"summary":"Get a signed URL","description":"Get a signed URL","operationId":"getSignedUrl","parameters":[{"$ref":"#/components/parameters/RequiredUrlQueryParam"},{"$ref":"#/components/parameters/FileNameQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetSignedUrlResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"}}}}}}
```

## Get changelogs

> Get changelogs by user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"LimitQueryParam":{"name":"limit","in":"query","required":false,"description":"The limit of per page","schema":{"type":"integer","default":10}}},"responses":{"GetChangelogsResponse":{"description":"OK","content":{"application/json":{"schema":{"required":["docs"],"allOf":[{"$ref":"#/components/schemas/Pagination"},{"properties":{"docs":{"type":"array","items":{"$ref":"#/components/schemas/Changelog"}}}}]}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}},"schemas":{"Pagination":{"type":"object","required":["totalDocs","limit","page","totalPages","pagingCounter","hasPrevPage","hasNextPage","prevPage","nextPage","docs"],"properties":{"totalDocs":{"type":"integer","description":"The total number of users"},"limit":{"type":"integer","description":"The limit of users per page","default":10},"page":{"type":"integer","description":"Current page","default":1},"totalPages":{"type":"integer","description":"The total number of pages"},"pagingCounter":{"type":"integer","description":"Current page number"},"hasPrevPage":{"type":"boolean","description":"Has previous page"},"hasNextPage":{"type":"boolean","description":"Has next page"},"prevPage":{"type":"integer","description":"Previous page number"},"nextPage":{"type":"integer","description":"Next page number"},"docs":{"description":"Items"}}},"Changelog":{"type":"object","required":["targetVersion","summary","markdown","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"targetVersion":{"type":"string","minLength":5,"maxLength":20,"description":"Target version, formatted as semantic version"},"summary":{"type":"string","maxLength":100,"description":"Changelog summary"},"markdown":{"type":"string"},"rank":{"type":"integer","description":"Rank for sorting","default":0,"readOnly":true},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}},"paths":{"/changelogs":{"get":{"summary":"Get changelogs","description":"Get changelogs by user","operationId":"getChangelogs","parameters":[{"$ref":"#/components/parameters/LimitQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetChangelogsResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get a changelog

> Get a changelog by user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"ChangelogIdPathParam":{"name":"changelogId","in":"path","required":true,"description":"Changelog ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Changelog":{"type":"object","required":["targetVersion","summary","markdown","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"targetVersion":{"type":"string","minLength":5,"maxLength":20,"description":"Target version, formatted as semantic version"},"summary":{"type":"string","maxLength":100,"description":"Changelog summary"},"markdown":{"type":"string"},"rank":{"type":"integer","description":"Rank for sorting","default":0,"readOnly":true},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"responses":{"GetChangelogResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Changelog"}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundRepsonse":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"apiError":{"type":"array","items":{}}}}}}}}},"paths":{"/changelogs/{changelogId}":{"get":{"summary":"Get a changelog","description":"Get a changelog by user","operationId":"getChangelog","parameters":[{"$ref":"#/components/parameters/ChangelogIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetChangelogResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Get notifications

> Get notifications by user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"LastDaysQueryParam":{"name":"lastDays","in":"query","required":false,"description":"The number of last days to fetch notifications from","schema":{"type":"integer"}},"SortQueryParam":{"name":"sort","in":"query","required":false,"description":"Sort","schema":{"type":"string"}},"LimitQueryParam":{"name":"limit","in":"query","required":false,"description":"The limit of per page","schema":{"type":"integer","default":10}},"PageQueryParam":{"name":"page","in":"query","required":false,"description":"Current page number","schema":{"type":"integer","default":1}}},"responses":{"GetOrgNotificationsResponse":{"description":"OK","content":{"application/json":{"schema":{"required":["docs"],"allOf":[{"$ref":"#/components/schemas/Pagination"},{"properties":{"docs":{"type":"array","items":{"$ref":"#/components/schemas/Notification"}}}}]}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}},"schemas":{"Pagination":{"type":"object","required":["totalDocs","limit","page","totalPages","pagingCounter","hasPrevPage","hasNextPage","prevPage","nextPage","docs"],"properties":{"totalDocs":{"type":"integer","description":"The total number of users"},"limit":{"type":"integer","description":"The limit of users per page","default":10},"page":{"type":"integer","description":"Current page","default":1},"totalPages":{"type":"integer","description":"The total number of pages"},"pagingCounter":{"type":"integer","description":"Current page number"},"hasPrevPage":{"type":"boolean","description":"Has previous page"},"hasNextPage":{"type":"boolean","description":"Has next page"},"prevPage":{"type":"integer","description":"Previous page number"},"nextPage":{"type":"integer","description":"Next page number"},"docs":{"description":"Items"}}},"Notification":{"required":["title","publishAt","description"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"title":{"type":"string","minLength":3,"maxLength":255,"description":"Notification title"},"description":{"type":"string","maxLength":1000,"description":"Notification description"},"user":{"$ref":"#/components/schemas/MongoId"},"publishAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"isVisible":{"type":"boolean","description":"Notification is visible","default":true}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}},"paths":{"/notifications":{"get":{"summary":"Get notifications","description":"Get notifications by user","operationId":"getNotifications","parameters":[{"$ref":"#/components/parameters/LastDaysQueryParam"},{"$ref":"#/components/parameters/SortQueryParam"},{"$ref":"#/components/parameters/LimitQueryParam"},{"$ref":"#/components/parameters/PageQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgNotificationsResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get organizations deployments

> Get organizations deployments by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Pagination":{"type":"object","required":["totalDocs","limit","page","totalPages","pagingCounter","hasPrevPage","hasNextPage","prevPage","nextPage","docs"],"properties":{"totalDocs":{"type":"integer","description":"The total number of users"},"limit":{"type":"integer","description":"The limit of users per page","default":10},"page":{"type":"integer","description":"Current page","default":1},"totalPages":{"type":"integer","description":"The total number of pages"},"pagingCounter":{"type":"integer","description":"Current page number"},"hasPrevPage":{"type":"boolean","description":"Has previous page"},"hasNextPage":{"type":"boolean","description":"Has next page"},"prevPage":{"type":"integer","description":"Previous page number"},"nextPage":{"type":"integer","description":"Next page number"},"docs":{"description":"Items"}}},"BuildDeployment":{"type":"object","required":["envVersion","deploymentType"],"allOf":[{"$ref":"#/components/schemas/Deployment"},{"$ref":"#/components/schemas/AndroidBuildDeployment"},{"$ref":"#/components/schemas/IosBuildDeployment"},{"properties":{"envVersion":{"type":"string","description":"Deployment env version","minLength":5,"maxLength":20},"deploymentType":{"type":"string","enum":["build"],"description":"Deployment type"},"storeVersion":{"type":"string","description":"App version on the store"},"isLive":{"type":"boolean","description":"Build deployment is live","readOnly":true},"isOnStore":{"type":"string","description":"The build deployment status on the store","enum":[null,"success","rejected","pending"]}}}]},"Deployment":{"type":"object","required":["_id","project","user","status","os","buildTarget","deploymentType","tag","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"project":{"allOf":[{"$ref":"#/components/schemas/Project"},{"properties":{"credential":{"type":"object"},"additionalCredentials":{"type":"object"},"organization":{"type":"string","description":"Organization id"}}}]},"user":{"$ref":"#/components/schemas/User"},"parent":{"$ref":"#/components/schemas/MongoId"},"description":{"type":"string","maxLength":1000,"description":"Deployment description"},"status":{"type":"string","enum":["pending","deploying","success","failed","canceled"],"description":"Deployment status"},"os":{"type":"string","enum":["android","ios","huawei"],"description":"Deployment OS"},"buildTarget":{"type":"string","enum":["staging","production"],"description":"Deployment build target"},"deploymentType":{"type":"string","enum":["build","code-push"],"description":"Deployment type"},"stages":{"type":"array","items":{"type":"object","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","description":"Stage name"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"description":"Deployment stages","readOnly":true},"startedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"completedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"abolisher":{"$ref":"#/components/schemas/MongoId"},"forceUpdate":{"type":"boolean","description":"Deployment force update","default":false},"tag":{"type":"string","description":"Deployment tag"},"checksum":{"type":"string","description":"Deployment package checksum"},"size":{"type":"integer","description":"Deployment package size in bytes"},"uploadDuration":{"type":"integer","description":"Deployment upload duration in milliseconds"},"downloadUrl":{"type":"string","description":"Deployment artifact download URL"},"remoteId":{"type":"integer","description":"Build service ID"},"plugins":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Plugin name"},"version":{"type":"string","description":"Plugin version"},"moduleName":{"type":"string","description":"Plugin module name"}}},"description":"Deployment plugins","readOnly":true},"issues":{"type":"array","items":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["error","warning"],"description":"Issue type"},"message":{"type":"string","description":"Issue message"}}}},"timeline":{"type":"array","items":{"type":"object","required":["step","startTime","finishTime"],"properties":{"step":{"type":"number","description":"Step number in the timeline"},"startTime":{"$ref":"#/components/schemas/ReadOnlyDate"},"finishTime":{"$ref":"#/components/schemas/ReadOnlyDate"},"error":{"type":"string","description":"The error message if the step failed"}}}},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"Project":{"type":"object","required":["_id","name","slug","organization","status","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Project name"},"slug":{"$ref":"#/components/schemas/Slug"},"description":{"type":"string","maxLength":255,"description":"Project description"},"organization":{"$ref":"#/components/schemas/MongoId"},"credential":{"$ref":"#/components/schemas/Credential"},"additionalCredentials":{"$ref":"#/components/schemas/AdditionalCredentials"},"storeCredentials":{"type":"object","description":"The project store credentials","properties":{"googlePlay":{"$ref":"#/components/schemas/GooglePlay"},"appleAppStore":{"$ref":"#/components/schemas/AppleAppStore"},"huaweiAppGallery":{"$ref":"#/components/schemas/HuaweiAppGallery"}}},"appStatuses":{"type":"object","description":"Project app statuses","properties":{"android":{"type":"object","description":"Project android app statuses","properties":{"production":{"$ref":"#/components/schemas/AndroidAppStatus"},"staging":{"$ref":"#/components/schemas/AndroidAppStatus"}}},"huawei":{"type":"object","description":"Project huawei app statuses","properties":{"production":{"$ref":"#/components/schemas/AndroidAppStatus"},"staging":{"$ref":"#/components/schemas/AndroidAppStatus"}}},"ios":{"type":"object","description":"Project ios app statuses","properties":{"production":{"$ref":"#/components/schemas/IosAppStatus"},"staging":{"$ref":"#/components/schemas/IosAppStatus"}}}}},"status":{"type":"string","enum":["active","inactive","draft"],"description":"Project status","default":"draft"},"lastActivityAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"appIconUrl":{"type":"string","description":"Project app icon URL"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"Slug":{"type":"string","pattern":"^[a-z0-9-]{2,100}$","minLength":2,"maxLength":100,"description":"Slug"},"Credential":{"type":"object","description":"Project credentials","properties":{"android":{"type":"object","properties":{"production":{"$ref":"#/components/schemas/AndroidCredential"},"staging":{"$ref":"#/components/schemas/AndroidCredential"}}},"huawei":{"type":"object","properties":{"production":{"$ref":"#/components/schemas/AndroidCredential"},"staging":{"$ref":"#/components/schemas/AndroidCredential"}}},"ios":{"type":"object","properties":{"production":{"$ref":"#/components/schemas/IosCredential"},"staging":{"$ref":"#/components/schemas/IosCredential"}}}}},"AndroidCredential":{"type":"object","properties":{"keystore":{"type":"string","description":"Keystore file URL"},"keystorePassword":{"type":"string","description":"Keystore password"},"keyAlias":{"type":"string","description":"Key alias"},"keyPassword":{"type":"string","description":"Key password"}}},"IosCredential":{"type":"object","properties":{"provisioningProfile":{"type":"string","description":"Provisioning profile file URL"},"certificate":{"type":"string","description":"Certificate file URL"},"password":{"type":"string","description":"Certificate password"},"certificateApn":{"type":"string","description":"APN certificate file URL"},"certificateApnKey":{"type":"string","description":"APN certificate password"},"provisioningExpiration":{"type":"string","format":"date-time","description":"Provisioning profile expiration date"},"certificateExpiration":{"type":"string","format":"date-time","description":"Certificate expiration date"}}},"AdditionalCredentials":{"type":"object","description":"Project additional credentials","properties":{"ios":{"type":"object","properties":{"production":{"type":"array","items":{"type":"object","properties":{"bundleIdentifier":{"type":"string","description":"Bundle identifier"},"provisioningProfile":{"type":"string","description":"Provisioning profile file URL"},"provisioningExpiration":{"type":"string","format":"date-time","description":"Provisioning profile expiration date"}}}},"staging":{"type":"array","items":{"type":"object","properties":{"bundleIdentifier":{"type":"string","description":"Bundle identifier"},"provisioningProfile":{"type":"string","description":"Provisioning profile file URL"},"provisioningExpiration":{"type":"string","format":"date-time","description":"Provisioning profile expiration date"}}}}}}}},"GooglePlay":{"type":"object","properties":{"googleServiceFile":{"type":"string","description":"Google service file URL"},"packageName":{"type":"string","description":"Android package name"}}},"AppleAppStore":{"type":"object","properties":{"keyId":{"type":"string","description":"Apple key id"},"keyIssuerId":{"type":"string","description":"Apple issuer id"},"apiKeyFile":{"type":"string","description":"Apple api key file"},"keyInHouse":{"type":"boolean","description":"Apple key in house","default":false},"appIdentifier":{"type":"string","description":"Apple app identifier"},"teamId":{"type":"string","description":"Apple team id"},"teamName":{"type":"string","description":"Apple team name"},"appSpecificId":{"type":"string","description":"Apple app specific id"}}},"HuaweiAppGallery":{"type":"object","properties":{"clientId":{"type":"string","description":"Client id"},"clientSecret":{"type":"string","description":"Client secret"}}},"AndroidAppStatus":{"type":"object","allOf":[{"$ref":"#/components/schemas/IosAppStatus"},{"type":"object","properties":{"versionCode":{"type":"number"}}}]},"IosAppStatus":{"type":"object","properties":{"createdAt":{"type":"string"},"deploymentId":{"type":"string"},"envVersion":{"type":"string"},"publishedAt":{"type":"string"},"publisher":{"type":"string"},"status":{"type":"boolean"},"storeVersion":{"type":"string"},"tag":{"type":"string"},"updatedAt":{"type":"string"}}},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"User":{"required":["_id","username","password","firstName","lastName","status","createdAt","updatedAt","lastLoginAt"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"username":{"type":"string","minLength":5,"maxLength":255,"description":"User username (email)"},"password":{"type":"string","minLength":3,"maxLength":255,"writeOnly":true,"description":"User password"},"language":{"type":"string","description":"User ISO 639-1 language code"},"region":{"type":"string","description":"User ISO 3166-1 alpha-2 region code"},"firstName":{"$ref":"#/components/schemas/FirstName"},"lastName":{"$ref":"#/components/schemas/LastName"},"status":{"$ref":"#/components/schemas/Status"},"attributes":{"type":"object","description":"User attributes"},"avatarUrl":{"type":"string","description":"User avatar URL"},"settings":{"type":"object","description":"User settings","properties":{"mailOnBuildCompleted":{"type":"boolean","description":"send email when build is completed"},"mailOnCodePushCompleted":{"type":"boolean","description":"send email when codepush is completed"}}},"lastLoginAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"FirstName":{"type":"string","minLength":5,"maxLength":255,"description":"User first name"},"LastName":{"type":"string","minLength":5,"maxLength":255,"description":"User last name"},"Status":{"type":"integer","description":"Status","enum":[0,1]},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"AndroidBuildDeployment":{"type":"object","properties":{"versionCode":{"type":"integer","description":"Android version code"},"javaVersion":{"type":"string","description":"Java version"}}},"IosBuildDeployment":{"type":"object","properties":{"xcodeVersion":{"type":"string","description":"Xcode version"},"extensions":{"type":"array","items":{"type":"string"},"description":"The extensions that are used in the build"}}},"CodePushDeployment":{"type":"object","required":["targetBinaryRange","deploymentType"],"allOf":[{"$ref":"#/components/schemas/Deployment"},{"properties":{"targetBinaryRange":{"type":"string","description":"Code push target binary range"},"deploymentType":{"type":"string","enum":["code-push"],"description":"Deployment type"},"label":{"type":"string","description":"Code push label"},"originalLabel":{"type":"string","description":"Code push original label"},"isMandatory":{"type":"boolean","description":"Code push is mandatory","default":false},"isDisabled":{"type":"boolean","description":"Code push is disabled","default":false},"rollout":{"type":"number","description":"Code push rollout","minimum":0,"maximum":100,"default":100},"releaseMethod":{"type":"string","description":"Code push release method","enum":["upload","promote","rollback","force-update"]}}}]},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"responses":{"GetDeploymentsResponse":{"description":"OK","content":{"application/json":{"schema":{"required":["docs"],"allOf":[{"$ref":"#/components/schemas/Pagination"},{"properties":{"docs":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/BuildDeployment"},{"$ref":"#/components/schemas/CodePushDeployment"}],"discriminator":{"propertyName":"deploymentType"}}}}}]}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}}},"paths":{"/organizations/{organizationId}/deployments":{"get":{"summary":"Get organizations deployments","description":"Get organizations deployments by organization user","operationId":"getOrgDeployments","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetDeploymentsResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get organizations privileges

> Get organizations privileges by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}},"LimitQueryParam":{"name":"limit","in":"query","required":false,"description":"The limit of per page","schema":{"type":"integer","default":10}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Privilege":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"group":{"type":"string","enum":["administration","organization"]}}},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"responses":{"GetOrgPrivilegesResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"array","items":{"$ref":"#/components/schemas/Privilege"}}}}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}}},"paths":{"/organizations/{organizationId}/privileges":{"get":{"summary":"Get organizations privileges","description":"Get organizations privileges by organization user","operationId":"getOrgPrivileges","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/LimitQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgPrivilegesResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Init public multipart upload

> Init public multipart upload by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}},"RequiredFileNameQueryParam":{"name":"fileName","in":"query","required":true,"description":"File name","schema":{"type":"string"}},"BucketQueryParam":{"name":"bucket","in":"query","required":false,"description":"The base directory name to upload the file","schema":{"type":"string","default":"temp"}},"PartCountQueryParam":{"name":"partCount","in":"query","required":false,"description":"The part count to upload the chunked file. This is required for chunked file uploads.","schema":{"type":"integer","minimum":2}},"ParamsQueryParam":{"name":"params","in":"query","required":false,"description":"The params for the file upload","schema":{"type":"string"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"responses":{"InitOrgUploadMultipartResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","description":"Upload urls"}},"Bucket":{"type":"string","description":"File bucket"},"Key":{"type":"string","description":"File key"},"UploadId":{"type":"string","description":"Upload Id"}}}}}},"ValidationErrorResponse":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"validationError":{"type":"object","properties":{}}}}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}}},"paths":{"/organizations/{organizationId}/upload/multipart/presign/public":{"get":{"summary":"Init public multipart upload","description":"Init public multipart upload by organization user","operationId":"initOrgPublicMultipartUpload","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/RequiredFileNameQueryParam"},{"$ref":"#/components/parameters/BucketQueryParam"},{"$ref":"#/components/parameters/PartCountQueryParam"},{"$ref":"#/components/parameters/ParamsQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/InitOrgUploadMultipartResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Init private multipart upload

> Init private multipart upload by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}},"RequiredFileNameQueryParam":{"name":"fileName","in":"query","required":true,"description":"File name","schema":{"type":"string"}},"BucketQueryParam":{"name":"bucket","in":"query","required":false,"description":"The base directory name to upload the file","schema":{"type":"string","default":"temp"}},"PartCountQueryParam":{"name":"partCount","in":"query","required":false,"description":"The part count to upload the chunked file. This is required for chunked file uploads.","schema":{"type":"integer","minimum":2}},"ParamsQueryParam":{"name":"params","in":"query","required":false,"description":"The params for the file upload","schema":{"type":"string"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"responses":{"InitOrgUploadMultipartResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","description":"Upload urls"}},"Bucket":{"type":"string","description":"File bucket"},"Key":{"type":"string","description":"File key"},"UploadId":{"type":"string","description":"Upload Id"}}}}}},"ValidationErrorResponse":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"validationError":{"type":"object","properties":{}}}}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}}},"paths":{"/organizations/{organizationId}/upload/multipart/presign/private":{"get":{"summary":"Init private multipart upload","description":"Init private multipart upload by organization user","operationId":"initOrgPrivateMultipartUpload","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/RequiredFileNameQueryParam"},{"$ref":"#/components/parameters/BucketQueryParam"},{"$ref":"#/components/parameters/PartCountQueryParam"},{"$ref":"#/components/parameters/ParamsQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/InitOrgUploadMultipartResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Complete public multipart upload

> Complete public multipart upload by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"requestBodies":{"CompleteOrgUploadMultipartRequest":{"required":true,"content":{"application/json":{"schema":{"required":["key","uploadId"],"properties":{"key":{"type":"string","description":"File key, formatted as <filename>.<ext>"},"uploadId":{"type":"string","description":"Upload id"},"tags":{"type":"array","items":{"type":"object","properties":{"ETag":{"type":"string","description":"File ETag"},"PartNumber":{"type":"number","description":"File part number"}}}}}}}}}},"responses":{"CompleteOrgUploadMultipartResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"Bucket":{"type":"string","description":"File bucket"},"ETag":{"type":"string","description":"File ETag"},"Key":{"type":"string","description":"File key"},"Location":{"type":"string","description":"File location"}}}}}},"ValidationErrorResponse":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"validationError":{"type":"object","properties":{}}}}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}}},"paths":{"/organizations/{organizationId}/upload/multipart/complete/public":{"put":{"summary":"Complete public multipart upload","description":"Complete public multipart upload by organization user","operationId":"completeOrgPublicMultipartUpload","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/CompleteOrgUploadMultipartRequest"},"responses":{"200":{"$ref":"#/components/responses/CompleteOrgUploadMultipartResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Complete private multipart upload

> Complete private multipart upload by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"requestBodies":{"CompleteOrgUploadMultipartRequest":{"required":true,"content":{"application/json":{"schema":{"required":["key","uploadId"],"properties":{"key":{"type":"string","description":"File key, formatted as <filename>.<ext>"},"uploadId":{"type":"string","description":"Upload id"},"tags":{"type":"array","items":{"type":"object","properties":{"ETag":{"type":"string","description":"File ETag"},"PartNumber":{"type":"number","description":"File part number"}}}}}}}}}},"responses":{"CompleteOrgUploadMultipartResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"Bucket":{"type":"string","description":"File bucket"},"ETag":{"type":"string","description":"File ETag"},"Key":{"type":"string","description":"File key"},"Location":{"type":"string","description":"File location"}}}}}},"ValidationErrorResponse":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"validationError":{"type":"object","properties":{}}}}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}}},"paths":{"/organizations/{organizationId}/upload/multipart/complete/private":{"put":{"summary":"Complete private multipart upload","description":"Complete private multipart upload by organization user","operationId":"completeOrgPrivateMultipartUpload","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/CompleteOrgUploadMultipartRequest"},"responses":{"200":{"$ref":"#/components/responses/CompleteOrgUploadMultipartResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get a public presigned URL

> Get a public presigned URL

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}},"RequiredFileNameQueryParam":{"name":"fileName","in":"query","required":true,"description":"File name","schema":{"type":"string"}},"BucketQueryParam":{"name":"bucket","in":"query","required":false,"description":"The base directory name to upload the file","schema":{"type":"string","default":"temp"}},"ParamsQueryParam":{"name":"params","in":"query","required":false,"description":"The params for the file upload","schema":{"type":"string"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"AwsPresignedUrl":{"type":"object","description":"Presigned fields","required":["bucket","key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date","X-Amz-Signature","Policy"],"properties":{"bucket":{"type":"string","description":"Bucket name"},"key":{"type":"string","description":"File key"},"X-Amz-Algorithm":{"type":"string","description":"Algorithm"},"X-Amz-Credential":{"type":"string","description":"Credential"},"X-Amz-Date":{"type":"string","description":"Date"},"X-Amz-Signature":{"type":"string","description":"Signature"},"Policy":{"type":"string","description":"Policy"}}}},"responses":{"GetPresignedUrlResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["url","fields"],"properties":{"url":{"type":"string","description":"Presigned URL"},"fields":{"$ref":"#/components/schemas/AwsPresignedUrl"}}}}}}}},"paths":{"/organizations/{organizationId}/upload/presign/public":{"get":{"summary":"Get a public presigned URL","description":"Get a public presigned URL","operationId":"getOrgPublicPresignedUrl","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/RequiredFileNameQueryParam"},{"$ref":"#/components/parameters/BucketQueryParam"},{"$ref":"#/components/parameters/ParamsQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetPresignedUrlResponse"}}}}}}
```

## Get a private presigned URL

> Get a private presigned URL

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}},"RequiredFileNameQueryParam":{"name":"fileName","in":"query","required":true,"description":"File name","schema":{"type":"string"}},"BucketQueryParam":{"name":"bucket","in":"query","required":false,"description":"The base directory name to upload the file","schema":{"type":"string","default":"temp"}},"ParamsQueryParam":{"name":"params","in":"query","required":false,"description":"The params for the file upload","schema":{"type":"string"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"AwsPresignedUrl":{"type":"object","description":"Presigned fields","required":["bucket","key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date","X-Amz-Signature","Policy"],"properties":{"bucket":{"type":"string","description":"Bucket name"},"key":{"type":"string","description":"File key"},"X-Amz-Algorithm":{"type":"string","description":"Algorithm"},"X-Amz-Credential":{"type":"string","description":"Credential"},"X-Amz-Date":{"type":"string","description":"Date"},"X-Amz-Signature":{"type":"string","description":"Signature"},"Policy":{"type":"string","description":"Policy"}}}},"responses":{"GetPrivatePresignedUrlResponse":{"description":"OK","content":{"application/json":{"schema":{"required":["url","fields"],"type":"object","properties":{"url":{"type":"string","description":"Presigned URL"},"fields":{"$ref":"#/components/schemas/AwsPresignedUrl"}}}}}}}},"paths":{"/organizations/{organizationId}/upload/presign/private":{"get":{"summary":"Get a private presigned URL","description":"Get a private presigned URL","operationId":"getOrgPrivatePresignedUrl","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/RequiredFileNameQueryParam"},{"$ref":"#/components/parameters/BucketQueryParam"},{"$ref":"#/components/parameters/ParamsQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetPrivatePresignedUrlResponse"}}}}}}
```

## Create a ticket for help center

> Create a ticket for help center by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}},"TicketTypePathParam":{"name":"type","in":"path","required":true,"description":"The type","schema":{"type":"string","enum":["support","feature-request","bug-report","recommendation"]}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Ticket":{"type":"object","required":["type","message","userId","status"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"type":{"type":"string","description":"The ticket type","enum":[1,2,3,4]},"message":{"type":"string","description":"The ticket message"},"userId":{"$ref":"#/components/schemas/MongoId"},"organizationId":{"$ref":"#/components/schemas/MongoId"},"files":{"type":"array","items":{"type":"string","description":"The ticket s3 file URL"}},"status":{"type":"string","description":"The ticket status","enum":[1,2,3],"default":1},"readAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"closedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"requestBodies":{"CreateTicketRequest":{"required":true,"content":{"application/json":{"schema":{"required":["message"],"properties":{"message":{"type":"string","description":"The ticket message"},"files":{"type":"array","items":{"type":"string","description":"The s3 file url","maximum":5}}}}}}}},"responses":{"TicketResponse":{"description":"OK","content":null,"application/json":null,"schema":null,"$ref":"#/components/schemas/Ticket"},"ValidationErrorResponse":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"validationError":{"type":"object","properties":{}}}}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}}},"paths":{"/organizations/{organizationId}/help-center/feedback/{type}":{"post":{"summary":"Create a ticket for help center","description":"Create a ticket for help center by organization user","operationId":"createTicket","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/TicketTypePathParam"}],"requestBody":{"$ref":"#/components/requestBodies/CreateTicketRequest"},"responses":{"201":{"$ref":"#/components/responses/TicketResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get plugins

> Get plugins by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"LimitQueryParam":{"name":"limit","in":"query","required":false,"description":"The limit of per page","schema":{"type":"integer","default":10}},"PageQueryParam":{"name":"page","in":"query","required":false,"description":"Current page number","schema":{"type":"integer","default":1}},"TextQueryParam":{"name":"text","in":"query","description":"Text","schema":{"type":"string"}},"OrganizationQueryParam":{"name":"organization","in":"query","required":false,"description":"Organization ID","schema":{"type":"string"}}},"responses":{"GetPluginsResponse":{"description":"OK","content":{"application/json":{"schema":{"required":["docs"],"allOf":[{"$ref":"#/components/schemas/Pagination"},{"properties":{"docs":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Plugin"},{"type":"object","properties":{"organization":{"$ref":"#/components/schemas/Organization"}}}]}}}}]}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}},"schemas":{"Pagination":{"type":"object","required":["totalDocs","limit","page","totalPages","pagingCounter","hasPrevPage","hasNextPage","prevPage","nextPage","docs"],"properties":{"totalDocs":{"type":"integer","description":"The total number of users"},"limit":{"type":"integer","description":"The limit of users per page","default":10},"page":{"type":"integer","description":"Current page","default":1},"totalPages":{"type":"integer","description":"The total number of pages"},"pagingCounter":{"type":"integer","description":"Current page number"},"hasPrevPage":{"type":"boolean","description":"Has previous page"},"hasNextPage":{"type":"boolean","description":"Has next page"},"prevPage":{"type":"integer","description":"Previous page number"},"nextPage":{"type":"integer","description":"Next page number"},"docs":{"description":"Items"}}},"Plugin":{"allOf":[{"$ref":"#/components/schemas/Dependency"},{"properties":{"lastDependencyPackage":{"$ref":"#/components/schemas/DependencyPackage"}}}]},"Dependency":{"type":"object","required":["isPrivate","readme","isVisible","_id","name","organization","createdAt","updatedAt"],"properties":{"isPrivate":{"type":"boolean","description":"Dependency is private"},"readme":{"type":"string","description":"Dependency readme"},"isVisible":{"type":"boolean","description":"Dependency is visible"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Dependency name"},"organization":{"type":"string","description":"Organization id"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"DependencyPackage":{"type":"object","required":["assetUrl","isPrivate","readme","_id","versionNumber","createdAt","updatedAt","publisher","dependency","checksum","rank","envVersionNumber"],"properties":{"assetUrl":{"type":"string","description":"Dependency package asset URL"},"isPrivate":{"type":"boolean","description":"Dependency package is private"},"readme":{"type":"string","description":"Dependency package readme"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"versionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package version number"},"publisher":{"type":"object","description":"Dependency package publisher","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"firstName":{"type":"string","minLength":5,"maxLength":255,"description":"User first name"},"lastName":{"type":"string","minLength":5,"maxLength":255,"description":"User last name"}}},"dependency":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"checksum":{"type":"string","description":"Dependency package checksum"},"rank":{"type":"integer","description":"Dependency package rank"},"envVersionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package env version number"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"Organization":{"type":"object","required":["_id","name","slug","description","owner","isExecutive","status","privileges"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Organization name"},"slug":{"$ref":"#/components/schemas/Slug"},"description":{"type":"string","minLength":2,"maxLength":255,"description":"Organization description"},"owner":{"$ref":"#/components/schemas/MongoId"},"isExecutive":{"type":"boolean","description":"Organization is executive","default":false,"readOnly":true},"status":{"$ref":"#/components/schemas/Status"},"privileges":{"type":"array","items":{"type":"string"},"description":"Organization privileges, formatted as (<domain>:<action>)","default":[]},"imageUrl":{"type":"string","description":"Organization image URL"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Slug":{"type":"string","pattern":"^[a-z0-9-]{2,100}$","minLength":2,"maxLength":100,"description":"Slug"},"Status":{"type":"integer","description":"Status","enum":[0,1]},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}},"paths":{"/plugins":{"get":{"summary":"Get plugins","description":"Get plugins by organization user","operationId":"getPlugins","parameters":[{"$ref":"#/components/parameters/LimitQueryParam"},{"$ref":"#/components/parameters/PageQueryParam"},{"$ref":"#/components/parameters/TextQueryParam"},{"$ref":"#/components/parameters/OrganizationQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetPluginsResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get plugins owners

> Get plugins owners by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"responses":{"GetPluginsOwnersResponse":{"description":"OK","content":{"application/json":{"schema":{"required":["docs"],"allOf":[{"$ref":"#/components/schemas/Pagination"},{"properties":{"docs":{"type":"array","items":{"type":"object","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","description":"Plugin owner name"}}}}}}]}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}},"schemas":{"Pagination":{"type":"object","required":["totalDocs","limit","page","totalPages","pagingCounter","hasPrevPage","hasNextPage","prevPage","nextPage","docs"],"properties":{"totalDocs":{"type":"integer","description":"The total number of users"},"limit":{"type":"integer","description":"The limit of users per page","default":10},"page":{"type":"integer","description":"Current page","default":1},"totalPages":{"type":"integer","description":"The total number of pages"},"pagingCounter":{"type":"integer","description":"Current page number"},"hasPrevPage":{"type":"boolean","description":"Has previous page"},"hasNextPage":{"type":"boolean","description":"Has next page"},"prevPage":{"type":"integer","description":"Previous page number"},"nextPage":{"type":"integer","description":"Next page number"},"docs":{"description":"Items"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}},"paths":{"/plugins/owners":{"get":{"summary":"Get plugins owners","description":"Get plugins owners by organization user","operationId":"getPluginsOwners","responses":{"200":{"$ref":"#/components/responses/GetPluginsOwnersResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get a plugin

> Get a plugin by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"PluginIdPathParam":{"name":"pluginId","in":"path","required":true,"description":"Plugin ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Plugin":{"allOf":[{"$ref":"#/components/schemas/Dependency"},{"properties":{"lastDependencyPackage":{"$ref":"#/components/schemas/DependencyPackage"}}}]},"Dependency":{"type":"object","required":["isPrivate","readme","isVisible","_id","name","organization","createdAt","updatedAt"],"properties":{"isPrivate":{"type":"boolean","description":"Dependency is private"},"readme":{"type":"string","description":"Dependency readme"},"isVisible":{"type":"boolean","description":"Dependency is visible"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Dependency name"},"organization":{"type":"string","description":"Organization id"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"DependencyPackage":{"type":"object","required":["assetUrl","isPrivate","readme","_id","versionNumber","createdAt","updatedAt","publisher","dependency","checksum","rank","envVersionNumber"],"properties":{"assetUrl":{"type":"string","description":"Dependency package asset URL"},"isPrivate":{"type":"boolean","description":"Dependency package is private"},"readme":{"type":"string","description":"Dependency package readme"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"versionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package version number"},"publisher":{"type":"object","description":"Dependency package publisher","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"firstName":{"type":"string","minLength":5,"maxLength":255,"description":"User first name"},"lastName":{"type":"string","minLength":5,"maxLength":255,"description":"User last name"}}},"dependency":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"checksum":{"type":"string","description":"Dependency package checksum"},"rank":{"type":"integer","description":"Dependency package rank"},"envVersionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package env version number"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"responses":{"GetPluginResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Plugin"}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundRepsonse":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"apiError":{"type":"array","items":{}}}}}}}}},"paths":{"/plugins/{pluginId}":{"get":{"summary":"Get a plugin","description":"Get a plugin by organization user","operationId":"getPlugin","parameters":[{"$ref":"#/components/parameters/PluginIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetPluginResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Get plugin packages

> Get plugin packages by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"DependencyIdPathParam":{"name":"dependencyId","in":"path","required":true,"description":"Dependency ID","schema":{"$ref":"#/components/schemas/MongoId"}},"LimitQueryParam":{"name":"limit","in":"query","required":false,"description":"The limit of per page","schema":{"type":"integer","default":10}},"PageQueryParam":{"name":"page","in":"query","required":false,"description":"Current page number","schema":{"type":"integer","default":1}},"SortQueryParam":{"name":"sort","in":"query","required":false,"description":"Sort","schema":{"type":"string"}},"VersionNumberQueryParam":{"name":"versionNumber","in":"query","required":false,"description":"Version number","schema":{"type":"string"}},"EnvVersionNumberQueryParam":{"name":"envVersionNumber","in":"query","required":false,"description":"Env version number","schema":{"type":"string"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Pagination":{"type":"object","required":["totalDocs","limit","page","totalPages","pagingCounter","hasPrevPage","hasNextPage","prevPage","nextPage","docs"],"properties":{"totalDocs":{"type":"integer","description":"The total number of users"},"limit":{"type":"integer","description":"The limit of users per page","default":10},"page":{"type":"integer","description":"Current page","default":1},"totalPages":{"type":"integer","description":"The total number of pages"},"pagingCounter":{"type":"integer","description":"Current page number"},"hasPrevPage":{"type":"boolean","description":"Has previous page"},"hasNextPage":{"type":"boolean","description":"Has next page"},"prevPage":{"type":"integer","description":"Previous page number"},"nextPage":{"type":"integer","description":"Next page number"},"docs":{"description":"Items"}}},"DependencyPackage":{"type":"object","required":["assetUrl","isPrivate","readme","_id","versionNumber","createdAt","updatedAt","publisher","dependency","checksum","rank","envVersionNumber"],"properties":{"assetUrl":{"type":"string","description":"Dependency package asset URL"},"isPrivate":{"type":"boolean","description":"Dependency package is private"},"readme":{"type":"string","description":"Dependency package readme"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"versionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package version number"},"publisher":{"type":"object","description":"Dependency package publisher","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"firstName":{"type":"string","minLength":5,"maxLength":255,"description":"User first name"},"lastName":{"type":"string","minLength":5,"maxLength":255,"description":"User last name"}}},"dependency":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"checksum":{"type":"string","description":"Dependency package checksum"},"rank":{"type":"integer","description":"Dependency package rank"},"envVersionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package env version number"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"responses":{"GetPluginPackagesResponse":{"description":"OK","content":{"application/json":{"schema":{"required":["docs"],"allOf":[{"$ref":"#/components/schemas/Pagination"},{"type":"object","properties":{"docs":{"type":"array","items":{"$ref":"#/components/schemas/DependencyPackage"}}}}]}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundRepsonse":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"apiError":{"type":"array","items":{}}}}}}}}},"paths":{"/plugins/{dependencyId}/packages":{"get":{"summary":"Get plugin packages","description":"Get plugin packages by organization user","operationId":"getPluginPackages","parameters":[{"$ref":"#/components/parameters/DependencyIdPathParam"},{"$ref":"#/components/parameters/LimitQueryParam"},{"$ref":"#/components/parameters/PageQueryParam"},{"$ref":"#/components/parameters/SortQueryParam"},{"$ref":"#/components/parameters/VersionNumberQueryParam"},{"$ref":"#/components/parameters/EnvVersionNumberQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetPluginPackagesResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Get a upgrade diff

> Get a upgrade diff

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"TagPathParam":{"name":"tag","in":"path","required":true,"description":"The tags to search, formatted as '<currentVersion>..<targetVersion>'","schema":{"type":"string"}}},"responses":{"UpgradeHelperDiffResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"string"}}}},"BadRequestResponse":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"schemas":{"BadRequestError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}},"paths":{"/upgrade-helper/{tag}":{"get":{"summary":"Get a upgrade diff","description":"Get a upgrade diff","operationId":"getUpgradeHelper","parameters":[{"$ref":"#/components/parameters/TagPathParam"}],"responses":{"200":{"$ref":"#/components/responses/UpgradeHelperDiffResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"}}}}}}
```

## Get upgrade versions

> Get upgrade versions

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"LimitQueryParam":{"name":"limit","in":"query","required":false,"description":"The limit of per page","schema":{"type":"integer","default":10}}},"responses":{"UpgradeHelperVersionsResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}},"BadRequestResponse":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"schemas":{"BadRequestError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}},"paths":{"/upgrade-helper/versions":{"get":{"summary":"Get upgrade versions","description":"Get upgrade versions","operationId":"getUpgradeHelperVersions","parameters":[{"$ref":"#/components/parameters/LimitQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/UpgradeHelperVersionsResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"}}}}}}
```

## Get a file

> Get a file

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"FilePathParam":{"name":"filePath","in":"path","required":true,"description":"File path","schema":{"type":"string"}}},"responses":{"UpgradeHelperFileResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"string"}}}},"BadRequestResponse":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}}},"schemas":{"BadRequestError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}},"paths":{"/upgrade-helper/file/{filePath}":{"get":{"summary":"Get a file","description":"Get a file","operationId":"getUpgradeHelperFile","parameters":[{"$ref":"#/components/parameters/FilePathParam"}],"responses":{"200":{"$ref":"#/components/responses/UpgradeHelperFileResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apidocs.akinon.com/app-maker-open-apis/appmaker-api-oas-3.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
