# Project

Operations related to projects.

## Set organizations project status

> Set organizations project status 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"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":{"GetOrgProjectResponse":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"properties":{"credential":{"type":"object"},"additionalCredentials":{"type":"object"}}}]}}}},"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}/activate":{"post":{"tags":["project"],"summary":"Set organizations project status","description":"Set organizations project status by organization user","operationId":"setOrgProjectActivate","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Set organizations project status

> Set organizations project status 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"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":{"GetOrgProjectResponse":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"properties":{"credential":{"type":"object"},"additionalCredentials":{"type":"object"}}}]}}}},"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}/deactivate":{"post":{"tags":["project"],"summary":"Set organizations project status","description":"Set organizations project status by organization user","operationId":"setOrgProjectDeactivate","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get organizations project credential

> Get organizations project credential 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"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"}}},"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":{"GetOrgProjectCredentialResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"credential":{"$ref":"#/components/schemas/Credential"}}}}}},"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}/credential":{"get":{"tags":["project"],"summary":"Get organizations project credential","description":"Get organizations project credential by organization user","operationId":"getOrgProjectCredential","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectCredentialResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Update organizations project credential

> Update organizations project credential 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"}}},"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"}}}}},"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"},"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":{"UpdateOrgProjectCredentialRequest":{"required":true,"content":{"application/json":{"schema":{"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"}}}}}}}}},"responses":{"UpdateOrgProjectCredentialResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"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}/credential":{"patch":{"tags":["project"],"summary":"Update organizations project credential","description":"Update organizations project credential by organization user","operationId":"updateOrgProjectCredential","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectCredentialRequest"},"responses":{"200":{"$ref":"#/components/responses/UpdateOrgProjectCredentialResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Get organizations project unsafe credential

> Get organizations project unsafe credential 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."}],"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"}},"CredentialNamePathParam":{"name":"name","in":"path","required":true,"description":"Credential name, formatted as (<os>.<buildTarget>.<field>)","schema":{"type":"string"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"responses":{"GetOrgProjectShowCredentialResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"string"}}}},"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}/credential/show-password/{name}":{"get":{"tags":["project"],"summary":"Get organizations project unsafe credential","description":"Get organizations project unsafe credential by organization user","operationId":"getOrgProjectUnsafeCredential","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/CredentialNamePathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectShowCredentialResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Update organizations project credential file

> Update organizations project credential file 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"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":{"UpdateOrgProjectCredentialFileRequest":{"required":true,"content":{"application/json":{"schema":{"required":["os","buildTarget"],"properties":{"os":{"type":"string","enum":["android","ios","huawei"],"description":"Deployment OS"},"buildTarget":{"type":"string","enum":["staging","production"],"description":"Deployment build target"},"provisioningProfile":{"type":"string","description":"Deployment provisioning profile s3 url"},"keystore":{"type":"string","description":"Deployment keystore s3 url"}}}}}}},"responses":{"UpdateOrgProjectCredentialFileResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"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}/credential/file":{"patch":{"tags":["project"],"summary":"Update organizations project credential file","description":"Update organizations project credential file by organization user","operationId":"updateOrgProjectCredentialFile","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectCredentialFileRequest"},"responses":{"200":{"$ref":"#/components/responses/UpdateOrgProjectCredentialFileResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Get organizations project credential validation

> Get organizations project credential validation 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."}],"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"}}},"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":{"CredentialValidationResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","description":"Validation error message"},"path":{"type":"string","description":"Validation error path"},"type":{"type":"string","description":"Validation error type"},"context":{"type":"object","description":"Validation error context"}}}}}}},"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}/credential/validation":{"get":{"tags":["project"],"summary":"Get organizations project credential validation","description":"Get organizations project credential validation by organization user","operationId":"getOrgProjectCredentialValidation","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/CredentialValidationResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get organizations projects

> Get organizations projects 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."}],"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"}},"ProjectStatusQueryParam":{"name":"status","in":"query","description":"Project status","schema":{"type":"string","enum":["active","inactive","draft"]}},"LimitQueryParam":{"name":"limit","in":"query","required":false,"description":"The limit of per page","schema":{"type":"integer","default":10}},"SortQueryParam":{"name":"sort","in":"query","required":false,"description":"Sort","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"}}},"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"},"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":{"GetOrgProjectsResponse":{"description":"OK","content":{"application/json":{"schema":{"required":["docs"],"allOf":[{"$ref":"#/components/schemas/Pagination"},{"type":"object","properties":{"docs":{"type":"array","items":{"$ref":"#/components/schemas/Project"}}}}]}}}},"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":{"get":{"tags":["project"],"summary":"Get organizations projects","description":"Get organizations projects by organization user","operationId":"getOrgProjects","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectStatusQueryParam"},{"$ref":"#/components/parameters/LimitQueryParam"},{"$ref":"#/components/parameters/SortQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectsResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Create a organization project

> Create a organization project 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."}],"servers":[{"url":"https://abp-api.akinon.net/api/v1","description":"Production server"},{"url":"https://abptest-api.akinon.net/api/v1","description":"Test server"},{"url":"http://localhost:5001/api/v1","description":"Local server"}],"security":[{"bearerAuth":[]},{"accessToken":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"accessToken":{"type":"apiKey","in":"header","name":"x-access-token"}},"parameters":{"OrganizationIdPathParam":{"name":"organizationId","in":"path","required":true,"description":"Organization ID","schema":{"$ref":"#/components/schemas/MongoId"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"requestBodies":{"CreateOrgProjectRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Project name"},"description":{"type":"string","description":"Project description"}}}}}}},"responses":{"CreateOrgProjectResponse":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"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"}}}}}},"paths":{"/organizations/{organizationId}/projects":{"post":{"tags":["project"],"summary":"Create a organization project","description":"Create a organization project by organization user","operationId":"createOrgProject","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/CreateOrgProjectRequest"},"responses":{"201":{"$ref":"#/components/responses/CreateOrgProjectResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"}}}}}}
```

## Get a organization project

> Get a organization project 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"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":{"GetOrgProjectResponse":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"properties":{"credential":{"type":"object"},"additionalCredentials":{"type":"object"}}}]}}}},"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}":{"get":{"tags":["project"],"summary":"Get a organization project","description":"Get a organization project by organization user","operationId":"getOrgProject","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Update a organization project

> Update a organization project 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"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":{"UpdateOrgProjectRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"appIconUrl":{"type":"string","description":"Project app icon URL"}}}}}}},"responses":{"GetOrgProjectResponse":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"properties":{"credential":{"type":"object"},"additionalCredentials":{"type":"object"}}}]}}}},"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}":{"patch":{"tags":["project"],"summary":"Update a organization project","description":"Update a organization project by organization user","operationId":"updateOrgProject","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectRequest"},"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Force to update a project

> Force to update a project 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"requestBodies":{"CreateOrgProjectForceUpdateRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["forceUpdate","buildIds"],"properties":{"forceUpdate":{"type":"boolean","description":"Project force update"},"buildIds":{"type":"array","items":{"$ref":"#/components/schemas/MongoId"}}}}}}}},"responses":{"NoContentResponse":{"description":"No Content"},"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}/force-update":{"post":{"tags":["project"],"summary":"Force to update a project","description":"Force to update a project by organization user","operationId":"createOrgProjectForceUpdate","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/CreateOrgProjectForceUpdateRequest"},"responses":{"201":{"$ref":"#/components/responses/NoContentResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Get organizations project git repository

> Get organizations project git repository 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"AwsGitRepository":{"type":"object","properties":{"repositoryName":{"type":"string","description":"Repository name"},"lastModifiedDate":{"type":"string","format":"date-time","description":"Last modified date"},"cloneUrlSsh":{"type":"string","description":"Clone URL SSH"},"cloneUrlHttp":{"type":"string","description":"Clone URL HTTP"}}},"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":{"GetOrgProjectGitRepositoryResponse":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsGitRepository"}}}},"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}/git-repository":{"get":{"tags":["project"],"summary":"Get organizations project git repository","description":"Get organizations project git repository by organization user","operationId":"getOrgProjectGitRepository","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectGitRepositoryResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get organizations project artifact download url

> Get organizations project artifact download url 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."}],"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"}},"RequiredUrlQueryParam":{"name":"url","in":"query","required":true,"description":"Url","schema":{"type":"string"}},"FileNameQueryParam":{"name":"fileName","in":"query","required":false,"description":"File name","schema":{"type":"string"}}},"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":{"GetSignedUrlResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Signed URL"}}}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/artifacts/download":{"get":{"tags":["project"],"summary":"Get organizations project artifact download url","description":"Get organizations project artifact download url by organization user","operationId":"getOrgProjectArtifactDownloadUrl","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/RequiredUrlQueryParam"},{"$ref":"#/components/parameters/FileNameQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetSignedUrlResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get organizations project credential download url

> Get organizations project credential download url 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."}],"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"}},"RequiredUrlQueryParam":{"name":"url","in":"query","required":true,"description":"Url","schema":{"type":"string"}},"FileNameQueryParam":{"name":"fileName","in":"query","required":false,"description":"File name","schema":{"type":"string"}}},"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":{"GetSignedUrlResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Signed URL"}}}}}},"UnauthorizedErrorResponse":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenErrorResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/credentials/download":{"get":{"tags":["project"],"summary":"Get organizations project credential download url","description":"Get organizations project credential download url by organization user","operationId":"getOrgProjectCredentialDownloadUrl","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/RequiredUrlQueryParam"},{"$ref":"#/components/parameters/FileNameQueryParam"}],"responses":{"200":{"$ref":"#/components/responses/GetSignedUrlResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get a organization project additional credentials

> Get a organization project additional credentials 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"}}}}}}}},"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":{"AdditionalCredentialResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"additionalCredentials":{"$ref":"#/components/schemas/AdditionalCredentials"}}}}}},"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}/additional-credentials":{"get":{"tags":["project"],"summary":"Get a organization project additional credentials","description":"Get a organization project additional credentials by organization user","operationId":"getOrgProjectAdditionalCredentials","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/AdditionalCredentialResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Create a organization project additional credential

> Create a organization project additional credential 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."}],"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"}},"PlatformPathParam":{"name":"platform","in":"path","required":true,"description":"Platform","schema":{"type":"string","enum":["android","ios","huawei"]}},"EnvPathParam":{"name":"env","in":"path","required":true,"description":"Env","schema":{"type":"string","enum":["staging","production"]}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"requestBodies":{"CreateOrgProjectAdditionalCredentialRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["bundleIdentifier","provisioningProfile"],"properties":{"provisioningProfile":{"type":"string","description":"Deployment provisioning profile s3 url"},"bundleIdentifier":{"type":"string","description":"Deployment bundle identifier"}}}}}}},"responses":{"CreateOrgProjectAdditionalCredentialResponse":{"description":"Created","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object"},{"properties":{"organization":{"$ref":"#/components/schemas/MongoId"},"additionalCredentials":{"type":"object"},"credential":{"type":"object"}}}]}}}},"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"}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/additional-credentials/{platform}/{env}":{"post":{"tags":["project"],"summary":"Create a organization project additional credential","description":"Create a organization project additional credential by organization user","operationId":"createOrgProjectAdditionalCredential","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/PlatformPathParam"},{"$ref":"#/components/parameters/EnvPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/CreateOrgProjectAdditionalCredentialRequest"},"responses":{"201":{"$ref":"#/components/responses/CreateOrgProjectAdditionalCredentialResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"}}}}}}
```

## Delete a organization project additional credential

> Delete a organization project additional credential 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."}],"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"}},"PlatformPathParam":{"name":"platform","in":"path","required":true,"description":"Platform","schema":{"type":"string","enum":["android","ios","huawei"]}},"EnvPathParam":{"name":"env","in":"path","required":true,"description":"Env","schema":{"type":"string","enum":["staging","production"]}},"BundleIdentifierPathParam":{"name":"bundleIdentifier","in":"path","required":true,"description":"Bundle identifier","schema":{"type":"string"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}},"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}},"responses":{"NoContentResponse":{"description":"No Content"},"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}/additional-credentials/{platform}/{env}/{bundleIdentifier}":{"delete":{"tags":["project"],"summary":"Delete a organization project additional credential","description":"Delete a organization project additional credential by organization user","operationId":"deleteOrgProjectAdditionalCredential","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/PlatformPathParam"},{"$ref":"#/components/parameters/EnvPathParam"},{"$ref":"#/components/parameters/BundleIdentifierPathParam"}],"responses":{"204":{"$ref":"#/components/responses/NoContentResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Update a organization project additional credential

> Update a organization project additional credential 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."}],"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"}},"PlatformPathParam":{"name":"platform","in":"path","required":true,"description":"Platform","schema":{"type":"string","enum":["android","ios","huawei"]}},"EnvPathParam":{"name":"env","in":"path","required":true,"description":"Env","schema":{"type":"string","enum":["staging","production"]}},"BundleIdentifierPathParam":{"name":"bundleIdentifier","in":"path","required":true,"description":"Bundle identifier","schema":{"type":"string"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"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":{"UpdateOrgProjectAdditionalCredentialRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provisioningProfile":{"type":"string","description":"Deployment provisioning profile s3 url"},"bundleIdentifier":{"type":"string","description":"Deployment bundle identifier"}}}}}}},"responses":{"UpdateOrgProjectAdditionalCredentialResponse":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object"},{"properties":{"organization":{"$ref":"#/components/schemas/MongoId"},"additionalCredentials":{"type":"object"},"credential":{"type":"object"}}}]}}}},"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}/additional-credentials/{platform}/{env}/{bundleIdentifier}":{"patch":{"tags":["project"],"summary":"Update a organization project additional credential","description":"Update a organization project additional credential by organization user","operationId":"updateOrgProjectAdditionalCredential","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/PlatformPathParam"},{"$ref":"#/components/parameters/EnvPathParam"},{"$ref":"#/components/parameters/BundleIdentifierPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectAdditionalCredentialRequest"},"responses":{"200":{"$ref":"#/components/responses/UpdateOrgProjectAdditionalCredentialResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Create a organization project deployment

> Create 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."}],"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"}}},"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":{"CreateOrgProjectDeploymentRequest":{"required":true,"content":{"application/json":{"schema":{"required":["user","status","tag","deploymentType","buildTarget","os"],"properties":{"user":{"$ref":"#/components/schemas/MongoId"},"status":{"type":"string","description":"Deployment status","enum":["pending"]},"description":{"type":"string","description":"Deployment description"},"tag":{"type":"string","description":"Deployment tag"},"deploymentType":{"type":"string","description":"Deployment type","enum":["build","code-push"]},"buildTarget":{"type":"string","description":"Deployment build target","enum":["staging","production"]},"forceUpdate":{"type":"boolean","description":"Deployment force update","default":false},"os":{"type":"string","description":"Deployment os","enum":["android","ios","huawei"]},"parent":{"$ref":"#/components/schemas/MongoId"},"isMandatory":{"type":"boolean","description":"Deployment mandatory","default":false},"targetBinaryRange":{"type":"string","description":"Deployment target binary range"}}}}}}},"responses":{"CreateOrgProjectDeploymentResponse":{"description":"Created","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"}}}}}},"paths":{"/organizations/{organizationId}/projects/{projectId}/deployments":{"post":{"tags":["project"],"summary":"Create a organization project deployment","description":"Create a organization project deployment by organization user","operationId":"createOrgProjectDeployment","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/CreateOrgProjectDeploymentRequest"},"responses":{"201":{"$ref":"#/components/responses/CreateOrgProjectDeploymentResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Update a organization project deployment

> Update 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."}],"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":{"UpdateOrgProjectDeploymentRequest":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"type":"string","description":"Deployment status","enum":["pending","success","failed","deploying","canceled"]},"stage":{"anyOf":[{"type":"string","description":"Deployment stage"},{"type":"array","items":{"type":"string","description":"Deployment stages"}}]},"checksum":{"type":"string","description":"Deployment package checksum"},"size":{"type":"number","description":"Deployment package size in bytes"},"uploadDuration":{"type":"number","description":"Deployment upload duration in seconds"},"remoteId":{"type":"number","description":"Deployment build service id"},"label":{"type":"string","description":"Deployment code push label"},"isDisabled":{"type":"boolean","description":"Deployment code push is disabled"},"rollout":{"type":"number","description":"Deployment code push rollout","minimum":0,"maximum":100},"releaseMethod":{"type":"string","description":"Deployment code push release method","enum":["upload","promote","rollback","force-update"]},"xcodeVersion":{"type":"string","description":"Deployment xcode version"},"extensions":{"type":"array","items":{"type":"string","description":"Ios app extensions"}},"javaVersion":{"type":"string","description":"Java version for android and huawei"},"versionCode":{"type":"number","description":"Deployment version code"},"envVersion":{"type":"string","description":"Deployment env version"},"storeVersion":{"type":"string","description":"Deployment store version"},"isOnStore":{"type":"string","description":"Deployment is on store","enum":["pending","success","rejected"]},"plugins":{"type":"array","description":"Deployment plugins","items":{"type":"object","required":["name","version","moduleName"],"properties":{"name":{"type":"string","description":"Plugin name"},"version":{"type":"string","description":"Plugin version"},"moduleName":{"type":"string","description":"Plugin module name"}}}}}}}}}},"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}":{"patch":{"tags":["project"],"summary":"Update a organization project deployment","description":"Update a organization project deployment by organization user","operationId":"updateOrgProjectDeployment","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectDeploymentRequest"},"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 timeline

> Get a organization project deployment timeline 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."}],"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"},"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":{"GetOrgProjectDeploymentTimelineResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"step":{"type":"number","description":"The step number in the timeline"},"startTime":{"$ref":"#/components/schemas/ReadOnlyDate"},"finishTime":{"$ref":"#/components/schemas/ReadOnlyDate"},"error":{"type":"string","description":"Error message if the step failed"},"current":{"type":"boolean","description":"Whether the step is currently running"}}}}}}},"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}/timeline":{"get":{"tags":["project"],"summary":"Get a organization project deployment timeline","description":"Get a organization project deployment timeline by organization user","operationId":"getOrgProjectDeploymentTimeline","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"},{"$ref":"#/components/parameters/DeploymentIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectDeploymentTimelineResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Get organizations project store credentials

> Get organizations project store credentials 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"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"}}},"GooglePlay":{"type":"object","properties":{"googleServiceFile":{"type":"string","description":"Google service file URL"},"packageName":{"type":"string","description":"Android package name"}}},"HuaweiAppGallery":{"type":"object","properties":{"clientId":{"type":"string","description":"Client id"},"clientSecret":{"type":"string","description":"Client secret"}}},"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":{"GetStoreCredentialResponse":{"type":"object","properties":null,"_id":null,"$ref":"#/components/schemas/ReadOnlyMongoId","appleAppStore":{"$ref":"#/components/schemas/AppleAppStore"},"googlePlay":{"$ref":"#/components/schemas/GooglePlay"},"huaweiAppGallery":{"$ref":"#/components/schemas/HuaweiAppGallery"}},"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}/store-credentials":{"get":{"tags":["project"],"summary":"Get organizations project store credentials","description":"Get organizations project store credentials by organization user","operationId":"getOrgProjectStoreCredentials","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/GetStoreCredentialResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Get organizations project store credential validation

> Get organizations project store credential validation 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."}],"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"}}},"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":{"CredentialValidationResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","description":"Validation error message"},"path":{"type":"string","description":"Validation error path"},"type":{"type":"string","description":"Validation error type"},"context":{"type":"object","description":"Validation error context"}}}}}}},"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}/store-credentials/validation":{"get":{"tags":["project"],"summary":"Get organizations project store credential validation","description":"Get organizations project store credential validation by organization user","operationId":"getOrgProjectStoreCredentialValidation","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/CredentialValidationResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"}}}}}}
```

## Update a project apple app store credential

> Update a project apple app store credential 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"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":{"UpdateOrgProjectAppleAppStoreCredentialRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyId":{"type":"string","description":"Apple key id"},"keyIssuerId":{"type":"string","description":"Apple issuer id"},"apiKeyFile":{"type":"string","description":"Apple api key p8 file s3 url"},"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"}}}}}}},"responses":{"GetOrgProjectResponse":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"properties":{"credential":{"type":"object"},"additionalCredentials":{"type":"object"}}}]}}}},"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}/store-credentials/apple-app-store":{"patch":{"tags":["project"],"summary":"Update a project apple app store credential","description":"Update a project apple app store credential by organization user","operationId":"updateOrgProjectAppleAppStoreCredential","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectAppleAppStoreCredentialRequest"},"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```

## Update a project google play credential

> Update a project google play credential 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."}],"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"}}},"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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"},"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":{"UpdateOrgProjectGooglePlayCredentialRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"googleServiceFile":{"type":"string","description":"Google Play service file url"},"packageName":{"type":"string","description":"Google Play package name"}}}}}}},"responses":{"GetOrgProjectResponse":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"properties":{"credential":{"type":"object"},"additionalCredentials":{"type":"object"}}}]}}}},"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}/store-credentials/google-play":{"patch":{"tags":["project"],"summary":"Update a project google play credential","description":"Update a project google play credential by organization user","operationId":"updateOrgProjectGooglePlayCredential","parameters":[{"$ref":"#/components/parameters/OrganizationIdPathParam"},{"$ref":"#/components/parameters/ProjectIdPathParam"}],"requestBody":{"$ref":"#/components/requestBodies/UpdateOrgProjectGooglePlayCredentialRequest"},"responses":{"200":{"$ref":"#/components/responses/GetOrgProjectResponse"},"400":{"$ref":"#/components/responses/ValidationErrorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedErrorResponse"},"403":{"$ref":"#/components/responses/ForbiddenErrorResponse"},"404":{"$ref":"#/components/responses/NotFoundRepsonse"}}}}}}
```
