> For the complete documentation index, see [llms.txt](https://apidocs.akinon.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidocs.akinon.com/app-maker-open-apis/project/deployment.md).

# Deployment

Operations related to project deployments.

## Get organizations project deployments

> Get organizations project deployments by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project 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"}},"DeploymentTypeQueryParam":{"name":"deploymentType","in":"query","required":false,"description":"Deployment type","schema":{"type":"string","enum":["build","code-push"]}},"IsLiveQueryParam":{"name":"isLive","in":"query","required":false,"description":"The is live to filter","schema":{"type":"boolean"}},"IsOnStoreQueryParam":{"name":"isOnStore","in":"query","required":false,"description":"The is on store to filter","schema":{"type":"string","enum":["success","rejected","pending"]}},"StatusQueryParam":{"name":"status","in":"query","required":false,"description":"Status","schema":{"type":"string"}},"OsQueryParam":{"name":"os","in":"query","required":false,"description":"Os","schema":{"type":"string","enum":["android","ios","huawei"]}},"BuildTargetQueryParam":{"name":"buildTarget","in":"query","required":false,"description":"Build target","schema":{"type":"string","enum":["staging","production"]}},"ForceUpdateQueryParam":{"name":"forceUpdate","in":"query","required":false,"description":"The force update to filter","schema":{"type":"boolean"}},"EnvVersionQueryParam":{"name":"envVersion","in":"query","required":false,"description":"Env version","schema":{"type":"string"}},"StoreVersionQueryParam":{"name":"storeVersion","in":"query","required":false,"description":"Store version","schema":{"type":"string"}},"ParentQueryParam":{"name":"parent","in":"query","required":false,"description":"Parent","schema":{"type":"string"}},"CreatedByQueryParam":{"name":"createdBy","in":"query","required":false,"description":"The created by to filter","schema":{"$ref":"#/components/schemas/MongoId"}},"CreatedAtQueryParam":{"name":"createdAt","in":"query","required":false,"description":"Created at date","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"}}},"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":{"GetOrgProjectDeploymentsResponse":{"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}/projects/{projectId}/deployments":{"get":{"tags":["deployment","project"],"summary":"Get organizations project deployments","description":"Get organizations project deployments by organization user","operationId":"getOrgProjectDeployments","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/LimitQueryParam"},{"$ref":"#/components/parameters/PageQueryParam"},{"$ref":"#/components/parameters/SortQueryParam"},{"$ref":"#/components/parameters/DeploymentTypeQueryParam"},{"$ref":"#/components/parameters/IsLiveQueryParam"},{"$ref":"#/components/parameters/IsOnStoreQueryParam"},{"$ref":"#/components/parameters/StatusQueryParam"},{"$ref":"#/components/parameters/OsQueryParam"},{"$ref":"#/components/parameters/BuildTargetQueryParam"},{"$ref":"#/components/parameters/ForceUpdateQueryParam"},{"$ref":"#/components/parameters/EnvVersionQueryParam"},{"$ref":"#/components/parameters/StoreVersionQueryParam"},{"$ref":"#/components/parameters/ParentQueryParam"},{"$ref":"#/components/parameters/CreatedByQueryParam"},{"$ref":"#/components/parameters/CreatedAtQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectDeploymentsResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get a organization project deployment

> Get a organization project deployment by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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":{"GetOrgProjectDeploymentResponse":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BuildDeployment"},{"$ref":"#/components/schemas/CodePushDeployment"}],"discriminator":{"propertyName":"deploymentType","mapping":{"build":"#/components/schemas/BuildDeployment","code-push":"#/components/schemas/CodePushDeployment"}}}}}},"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":{"/organizations/{organizationId}/projects/{projectId}/deployments/{deploymentId}":{"get":{"tags":["deployment","project"],"summary":"Get a organization project deployment","description":"Get a organization project deployment by organization user","operationId":"getOrgProjectDeployment","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectDeploymentResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Cancel a organization project deployment

> Cancel a organization project deployment by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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":{"UpdateOrgProjectDeploymentResponse":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BuildDeployment"},{"$ref":"#/components/schemas/CodePushDeployment"}],"discriminator":{"propertyName":"deploymentType","mapping":{"build":"#/components/schemas/BuildDeployment","code-push":"#/components/schemas/CodePushDeployment"}}}}}},"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"}}}},"NotFoundRepsonse":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"apiError":{"type":"array","items":{}}}}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/deployments/{deploymentId}/cancel":{"patch":{"tags":["deployment","project"],"summary":"Cancel a organization project deployment","description":"Cancel a organization project deployment by organization user","operationId":"cancelOrgProjectDeployment","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/UpdateOrgProjectDeploymentResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Update deployment store state

> Update deployment store state by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"}}}},"requestBodies":{"UpdateOrgProjectDeploymentStoreStateRequest":{"required":true,"content":{"application/json":{"schema":{"required":["isOnStore"],"properties":{"isOnStore":{"type":"string","enum":["pending","success","rejected"]}}}}}}},"responses":{"UpdateOrgProjectDeploymentResponse":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BuildDeployment"},{"$ref":"#/components/schemas/CodePushDeployment"}],"discriminator":{"propertyName":"deploymentType","mapping":{"build":"#/components/schemas/BuildDeployment","code-push":"#/components/schemas/CodePushDeployment"}}}}}},"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"}}}},"NotFoundRepsonse":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"apiError":{"type":"array","items":{}}}}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/deployments/{deploymentId}/storestate":{"patch":{"tags":["deployment","project"],"summary":"Update deployment store state","description":"Update deployment store state by organization user","operationId":"updateOrgProjectDeploymentStoreState","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectDeploymentStoreStateRequest"},"responses":{"200":{"$ref":"#/components/responses/UpdateOrgProjectDeploymentResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Get a organization project deployment metrics

> Get a organization project deployment metrics by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment 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"}}}},"responses":{"GetOrgProjectDeploymentMetricsResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"active":{"type":"number","description":"Active count"},"installed":{"type":"number","description":"Installed count"},"downloaded":{"type":"number","description":"Downloaded count"},"failed":{"type":"number","description":"Failed count"},"label":{"type":"string","description":"Label"}}}}}}},"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":{"/organizations/{organizationId}/projects/{projectId}/deployments/{deploymentId}/metrics":{"get":{"tags":["deployment","project"],"summary":"Get a organization project deployment metrics","description":"Get a organization project deployment metrics by organization user","operationId":"getOrgProjectDeploymentMetrics","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectDeploymentMetricsResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Update a organization project deployment release

> Update a organization project deployment release by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"}}}},"requestBodies":{"UpdateOrgProjectDeploymentReleaseRequest":{"required":true,"content":{"application/json":{"schema":{"properties":{"release":{"type":"object","properties":{"targetBinaryRange":{"type":"string","description":"Release target binary range"},"description":{"type":"string","description":"Release description"},"isDisabled":{"type":"boolean","description":"Release is disabled"},"isMandatory":{"type":"boolean","description":"Release is mandatory"},"rollout":{"type":"number","description":"Release rollout","minimum":0,"maximum":100}}}}}}}}},"responses":{"UpdateOrgProjectDeploymentResponse":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BuildDeployment"},{"$ref":"#/components/schemas/CodePushDeployment"}],"discriminator":{"propertyName":"deploymentType","mapping":{"build":"#/components/schemas/BuildDeployment","code-push":"#/components/schemas/CodePushDeployment"}}}}}},"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"}}}},"NotFoundRepsonse":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"apiError":{"type":"array","items":{}}}}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/deployments/{deploymentId}/code-push-release":{"patch":{"tags":["deployment","project"],"summary":"Update a organization project deployment release","description":"Update a organization project deployment release by organization user","operationId":"updateOrgProjectDeploymentRelease","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectDeploymentReleaseRequest"},"responses":{"200":{"$ref":"#/components/responses/UpdateOrgProjectDeploymentResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Rollback a organization project deployment code push

> Rollback a organization project deployment code push by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"]}}}]},"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},"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":{"RollbackOrgProjectDeploymentCodePushRequest":{"required":true,"content":{"application/json":{"schema":{"required":["releaseLabel"],"properties":{"releaseLabel":{"type":"string","description":"Code push label"}}}}}}},"responses":{"RollbackOrgProjectDeploymentCodePushResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodePushDeployment"}}}},"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"}}}},"NotFoundRepsonse":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"apiError":{"type":"array","items":{}}}}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/deployments/{deploymentId}/rollback-release":{"post":{"tags":["deployment","project"],"summary":"Rollback a organization project deployment code push","description":"Rollback a organization project deployment code push by organization user","operationId":"rollbackOrgProjectDeploymentCodePush","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/RollbackOrgProjectDeploymentCodePushRequest"},"responses":{"200":{"$ref":"#/components/responses/RollbackOrgProjectDeploymentCodePushResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Promote a organization project deployment code push

> Promote a organization project deployment code push by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"]}}}]},"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},"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":{"PromoteOrgProjectDeploymentCodePushResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodePushDeployment"}}}},"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"}}}},"NotFoundRepsonse":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"apiError":{"type":"array","items":{}}}}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/deployments/{deploymentId}/promote-release":{"post":{"tags":["deployment","project"],"summary":"Promote a organization project deployment code push","description":"Promote a organization project deployment code push by organization user","operationId":"promoteOrgProjectDeploymentCodePush","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/PromoteOrgProjectDeploymentCodePushResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Get a organization project deployment distributions

> Get a organization project deployment distributions by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Distribution":{"type":"object","required":["type","remoteId","releaseNotes"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"type":{"type":"string","description":"Distribution type; APPLE_APP_STORE 1, GOOGLE_PLAY 2, HUAWEI_APP_GALLERY 3","enum":[1,2,3]},"deploymentId":{"$ref":"#/components/schemas/MongoId"},"projectId":{"$ref":"#/components/schemas/MongoId"},"userId":{"$ref":"#/components/schemas/MongoId"},"abolisherId":{"$ref":"#/components/schemas/MongoId"},"releaseNotes":{"type":"string","description":"Release notes"},"status":{"type":"string","enum":["pending","uploading","success","failed","canceled"]},"startedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"completedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"remoteId":{"type":"string","description":"Remote ID"},"releaseMethod":{"type":"string","description":"Release method","enum":["upload","promote"]},"track":{"type":"string","description":"Distribution track","enum":["TestFlight","Production","production","beta","alpha","internal"]},"uploadMetadata":{"type":"boolean","description":"Deployment upload metadata","default":false},"uploadScreenshots":{"type":"boolean","description":"Deployment upload screenshots","default":false},"shouldSubmitForReview":{"type":"boolean","description":"Deployment should submit for review","default":false},"shouldAutoRelease":{"type":"boolean","description":"Deployment should auto release","default":false},"userFraction":{"type":"number","description":"Deployment user fraction","minimum":0,"maximum":1,"default":1},"updatePriority":{"type":"number","description":"Deployment update priority","minimum":0,"maximum":5,"default":0},"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":{"GetOrgProjectDeploymentDistributionsResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Distribution"}}}}},"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":{"/organizations/{organizationId}/projects/{projectId}/deployments/{deploymentId}/distributions":{"get":{"tags":["deployment","project"],"summary":"Get a organization project deployment distributions","description":"Get a organization project deployment distributions by organization user","operationId":"getOrgProjectDeploymentDistributions","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectDeploymentDistributionsResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Create a organization project deployment distribution

> Create a organization project deployment distribution by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Distribution":{"type":"object","required":["type","remoteId","releaseNotes"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"type":{"type":"string","description":"Distribution type; APPLE_APP_STORE 1, GOOGLE_PLAY 2, HUAWEI_APP_GALLERY 3","enum":[1,2,3]},"deploymentId":{"$ref":"#/components/schemas/MongoId"},"projectId":{"$ref":"#/components/schemas/MongoId"},"userId":{"$ref":"#/components/schemas/MongoId"},"abolisherId":{"$ref":"#/components/schemas/MongoId"},"releaseNotes":{"type":"string","description":"Release notes"},"status":{"type":"string","enum":["pending","uploading","success","failed","canceled"]},"startedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"completedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"remoteId":{"type":"string","description":"Remote ID"},"releaseMethod":{"type":"string","description":"Release method","enum":["upload","promote"]},"track":{"type":"string","description":"Distribution track","enum":["TestFlight","Production","production","beta","alpha","internal"]},"uploadMetadata":{"type":"boolean","description":"Deployment upload metadata","default":false},"uploadScreenshots":{"type":"boolean","description":"Deployment upload screenshots","default":false},"shouldSubmitForReview":{"type":"boolean","description":"Deployment should submit for review","default":false},"shouldAutoRelease":{"type":"boolean","description":"Deployment should auto release","default":false},"userFraction":{"type":"number","description":"Deployment user fraction","minimum":0,"maximum":1,"default":1},"updatePriority":{"type":"number","description":"Deployment update priority","minimum":0,"maximum":5,"default":0},"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":{"CreateOrgProjectDeploymentDistributionRequest":{"required":true,"content":{"application/json":{"schema":{"required":["releaseNotes","track"],"properties":{"releaseNotes":{"type":"string","description":"Deployment release notes"},"releaseMethod":{"type":"string","description":"Deployment release method","enum":["upload","promote"]},"track":{"type":"string","description":"Deployment track","enum":["TestFlight","Production","production","beta","alpha","internal"]},"uploadMetadata":{"type":"boolean","description":"Deployment upload metadata","default":false},"uploadScreenshots":{"type":"boolean","description":"Deployment upload screenshots","default":false},"shouldSubmitForReview":{"type":"boolean","description":"Deployment should submit for review","default":false},"shouldAutoRelease":{"type":"boolean","description":"Deployment should auto release","default":false},"userFraction":{"type":"number","description":"Deployment user fraction","minimum":0,"maximum":1,"default":1},"updatePriority":{"type":"number","description":"Deployment update priority","minimum":0,"maximum":5,"default":0}}}}}}},"responses":{"GetOrgProjectDeploymentDistributionResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Distribution"}}}},"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}/projects/{projectId}/deployments/{deploymentId}/distributions":{"post":{"tags":["deployment","project"],"summary":"Create a organization project deployment distribution","description":"Create a organization project deployment distribution by organization user","operationId":"createOrgProjectDeploymentDistribution","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/CreateOrgProjectDeploymentDistributionRequest"},"responses":{"201":{"$ref":"#/components/responses/GetOrgProjectDeploymentDistributionResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get a organization project deployment distribution

> Get a organization project deployment distribution by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DistributionIdPathParam":{"name":"distributionId","in":"path","required":true,"description":"Distribution ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Distribution":{"type":"object","required":["type","remoteId","releaseNotes"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"type":{"type":"string","description":"Distribution type; APPLE_APP_STORE 1, GOOGLE_PLAY 2, HUAWEI_APP_GALLERY 3","enum":[1,2,3]},"deploymentId":{"$ref":"#/components/schemas/MongoId"},"projectId":{"$ref":"#/components/schemas/MongoId"},"userId":{"$ref":"#/components/schemas/MongoId"},"abolisherId":{"$ref":"#/components/schemas/MongoId"},"releaseNotes":{"type":"string","description":"Release notes"},"status":{"type":"string","enum":["pending","uploading","success","failed","canceled"]},"startedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"completedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"remoteId":{"type":"string","description":"Remote ID"},"releaseMethod":{"type":"string","description":"Release method","enum":["upload","promote"]},"track":{"type":"string","description":"Distribution track","enum":["TestFlight","Production","production","beta","alpha","internal"]},"uploadMetadata":{"type":"boolean","description":"Deployment upload metadata","default":false},"uploadScreenshots":{"type":"boolean","description":"Deployment upload screenshots","default":false},"shouldSubmitForReview":{"type":"boolean","description":"Deployment should submit for review","default":false},"shouldAutoRelease":{"type":"boolean","description":"Deployment should auto release","default":false},"userFraction":{"type":"number","description":"Deployment user fraction","minimum":0,"maximum":1,"default":1},"updatePriority":{"type":"number","description":"Deployment update priority","minimum":0,"maximum":5,"default":0},"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":{"GetOrgProjectDeploymentDistributionResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Distribution"}}}},"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}/projects/{projectId}/deployments/{deploymentId}/distributions/{distributionId}":{"get":{"tags":["deployment","project"],"summary":"Get a organization project deployment distribution","description":"Get a organization project deployment distribution by organization user","operationId":"getOrgProjectDeploymentDistribution","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"},{"$ref":"#/components/parameters/DistributionIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectDeploymentDistributionResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Update a organization project deployment distribution

> Update a organization project deployment distribution by organization user

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"tags":[{"name":"project","description":"Operations related to projects."},{"name":"deployment","description":"Operations related to project deployments."}],"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"}},"ProjectIdPathParam":{"name":"projectId","in":"path","required":true,"description":"Project ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DeploymentIdPathParam":{"name":"deploymentId","in":"path","required":true,"description":"Deployment ID","schema":{"$ref":"#/components/schemas/MongoId"}},"DistributionIdPathParam":{"name":"distributionId","in":"path","required":true,"description":"Distribution ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Distribution":{"type":"object","required":["type","remoteId","releaseNotes"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"type":{"type":"string","description":"Distribution type; APPLE_APP_STORE 1, GOOGLE_PLAY 2, HUAWEI_APP_GALLERY 3","enum":[1,2,3]},"deploymentId":{"$ref":"#/components/schemas/MongoId"},"projectId":{"$ref":"#/components/schemas/MongoId"},"userId":{"$ref":"#/components/schemas/MongoId"},"abolisherId":{"$ref":"#/components/schemas/MongoId"},"releaseNotes":{"type":"string","description":"Release notes"},"status":{"type":"string","enum":["pending","uploading","success","failed","canceled"]},"startedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"completedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"remoteId":{"type":"string","description":"Remote ID"},"releaseMethod":{"type":"string","description":"Release method","enum":["upload","promote"]},"track":{"type":"string","description":"Distribution track","enum":["TestFlight","Production","production","beta","alpha","internal"]},"uploadMetadata":{"type":"boolean","description":"Deployment upload metadata","default":false},"uploadScreenshots":{"type":"boolean","description":"Deployment upload screenshots","default":false},"shouldSubmitForReview":{"type":"boolean","description":"Deployment should submit for review","default":false},"shouldAutoRelease":{"type":"boolean","description":"Deployment should auto release","default":false},"userFraction":{"type":"number","description":"Deployment user fraction","minimum":0,"maximum":1,"default":1},"updatePriority":{"type":"number","description":"Deployment update priority","minimum":0,"maximum":5,"default":0},"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"}}}},"requestBodies":{"UpdateOrgProjectDeploymentDistributionRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Deployment status","enum":["pending","success","failed","uploading","canceled"]},"remoteId":{"type":"number","description":"Deployment remote id"}}}}}}},"responses":{"GetOrgProjectDeploymentDistributionResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Distribution"}}}},"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"}}}},"NotFoundRepsonse":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"apiError":{"type":"array","items":{}}}}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/deployments/{deploymentId}/distributions/{distributionId}":{"patch":{"tags":["deployment","project"],"summary":"Update a organization project deployment distribution","description":"Update a organization project deployment distribution by organization user","operationId":"updateOrgProjectDeploymentDistribution","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"},{"$ref":"#/components/parameters/DistributionIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectDeploymentDistributionRequest"},"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectDeploymentDistributionResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://apidocs.akinon.com/app-maker-open-apis/project/deployment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
