# 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"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

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

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

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

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

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