# Models

## The GooglePlayApiKey object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"GooglePlayApiKey":{"type":"object","required":["name","type","data"],"properties":{"name":{"type":"string","minLength":3,"maxLength":255,"description":"Service connection name"},"type":{"type":"string","description":"Service connection type"},"data":{"type":"object","properties":{"type":{"type":"string"},"project_id":{"type":"string"},"private_key_id":{"type":"string"},"private_key":{"type":"string"},"client_email":{"type":"string"},"client_id":{"type":"string"},"auth_uri":{"type":"string"},"token_uri":{"type":"string"},"auth_provider_x509_cert_url":{"type":"string"},"client_x509_cert_url":{"type":"string"},"universe_domain":{"type":"string"}},"description":"Service connection data"}}}}}}
```

## The AppleApiKey object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"AppleApiKey":{"type":"object","required":["type","name","data"],"properties":{"name":{"type":"string","minLength":3,"maxLength":255,"description":"Service connection name"},"type":{"type":"string","description":"Service connection type"},"data":{"type":"object","properties":{"keyAlias":{"type":"string"},"keyId":{"type":"string"},"keyName":{"type":"string"},"key_p8_base64":{"type":"string"}},"description":"Service connection data"}}}}}}
```

## The AwsPresignedUrl object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"AwsPresignedUrl":{"type":"object","description":"Presigned fields","required":["bucket","key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date","X-Amz-Signature","Policy"],"properties":{"bucket":{"type":"string","description":"Bucket name"},"key":{"type":"string","description":"File key"},"X-Amz-Algorithm":{"type":"string","description":"Algorithm"},"X-Amz-Credential":{"type":"string","description":"Credential"},"X-Amz-Date":{"type":"string","description":"Date"},"X-Amz-Signature":{"type":"string","description":"Signature"},"Policy":{"type":"string","description":"Policy"}}}}}}
```

## The Pagination object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Pagination":{"type":"object","required":["totalDocs","limit","page","totalPages","pagingCounter","hasPrevPage","hasNextPage","prevPage","nextPage","docs"],"properties":{"totalDocs":{"type":"integer","description":"The total number of users"},"limit":{"type":"integer","description":"The limit of users per page","default":10},"page":{"type":"integer","description":"Current page","default":1},"totalPages":{"type":"integer","description":"The total number of pages"},"pagingCounter":{"type":"integer","description":"Current page number"},"hasPrevPage":{"type":"boolean","description":"Has previous page"},"hasNextPage":{"type":"boolean","description":"Has next page"},"prevPage":{"type":"integer","description":"Previous page number"},"nextPage":{"type":"integer","description":"Next page number"},"docs":{"description":"Items"}}}}}}
```

## The BadRequestError object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"BadRequestError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}}}
```

## The UnauthorizedError object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"UnauthorizedError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}}}
```

## The ForbiddenError object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"ForbiddenError":{"type":"object","properties":{"apiError":{"type":"array","items":{"type":"string"},"description":"Error message"}}}}}}
```

## The ReadOnlyDate object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The Date object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Date":{"type":"string","format":"date-time","description":"Date"}}}}
```

## The FirstName object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"FirstName":{"type":"string","minLength":5,"maxLength":255,"description":"User first name"}}}}
```

## The LastName object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"LastName":{"type":"string","minLength":5,"maxLength":255,"description":"User last name"}}}}
```

## The Slug object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Slug":{"type":"string","pattern":"^[a-z0-9-]{2,100}$","minLength":2,"maxLength":100,"description":"Slug"}}}}
```

## The AndroidCredential object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The IosCredential object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The Credential object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The AdditionalCredentials object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}}}}}}
```

## The Status object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Status":{"type":"integer","description":"Status","enum":[0,1]}}}}
```

## The MongoId object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"}}}}
```

## The ReadOnlyMongoId object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true}}}}
```

## The GooglePlay object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"GooglePlay":{"type":"object","properties":{"googleServiceFile":{"type":"string","description":"Google service file URL"},"packageName":{"type":"string","description":"Android package name"}}}}}}
```

## The HuaweiAppGallery object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"HuaweiAppGallery":{"type":"object","properties":{"clientId":{"type":"string","description":"Client id"},"clientSecret":{"type":"string","description":"Client secret"}}}}}}
```

## The AppleAppStore object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The Job object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Job":{"required":["id","name","timestamp","status","queueName"],"properties":{"id":{"type":"string","description":"Job id"},"name":{"type":"string","description":"Job name"},"timestamp":{"type":"string","format":"date-time","description":"Job timestamp"},"queueQualifiedName":{"type":"string","description":"Job queue name"},"data":{"type":"object"},"opts":{"type":"object"},"processedOn":{"type":"number"},"finishedOn":{"type":"number"},"failedReason":{"type":"string"},"stacktrace":{"type":"array","items":{"type":"string"}},"attemptsMade":{"type":"number"},"delay":{"type":"number"},"progress":{"description":"Job progress"},"returnValue":{"type":"object"},"priority":{"type":"number"},"attemptsStarted":{"type":"number"},"stalledCounter":{"type":"number"}}}}}}
```

## The Notification object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Notification":{"required":["title","publishAt","description"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"title":{"type":"string","minLength":3,"maxLength":255,"description":"Notification title"},"description":{"type":"string","maxLength":1000,"description":"Notification description"},"user":{"$ref":"#/components/schemas/MongoId"},"publishAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"isVisible":{"type":"boolean","description":"Notification is visible","default":true}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The User object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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]},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The OrganizationUser object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"OrganizationUser":{"allOf":[{"$ref":"#/components/schemas/User"},{"properties":{"organization":{"$ref":"#/components/schemas/MongoId"},"roles":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Role"},{"properties":{"organization":{"$ref":"#/components/schemas/MongoId"}}}]}}}}]},"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"}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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]},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"Role":{"required":["name","organization","status","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Role name"},"description":{"type":"string","description":"Role description"},"organization":{"$ref":"#/components/schemas/Organization"},"privileges":{"type":"array","items":{"type":"string"},"description":"Role privileges, formatted as (<domain>:<action>)"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"Organization":{"type":"object","required":["_id","name","slug","description","owner","isExecutive","status","privileges"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Organization name"},"slug":{"$ref":"#/components/schemas/Slug"},"description":{"type":"string","minLength":2,"maxLength":255,"description":"Organization description"},"owner":{"$ref":"#/components/schemas/MongoId"},"isExecutive":{"type":"boolean","description":"Organization is executive","default":false,"readOnly":true},"status":{"$ref":"#/components/schemas/Status"},"privileges":{"type":"array","items":{"type":"string"},"description":"Organization privileges, formatted as (<domain>:<action>)","default":[]},"imageUrl":{"type":"string","description":"Organization image URL"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"Slug":{"type":"string","pattern":"^[a-z0-9-]{2,100}$","minLength":2,"maxLength":100,"description":"Slug"}}}}
```

## The Organization object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Organization":{"type":"object","required":["_id","name","slug","description","owner","isExecutive","status","privileges"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Organization name"},"slug":{"$ref":"#/components/schemas/Slug"},"description":{"type":"string","minLength":2,"maxLength":255,"description":"Organization description"},"owner":{"$ref":"#/components/schemas/MongoId"},"isExecutive":{"type":"boolean","description":"Organization is executive","default":false,"readOnly":true},"status":{"$ref":"#/components/schemas/Status"},"privileges":{"type":"array","items":{"type":"string"},"description":"Organization privileges, formatted as (<domain>:<action>)","default":[]},"imageUrl":{"type":"string","description":"Organization image URL"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Slug":{"type":"string","pattern":"^[a-z0-9-]{2,100}$","minLength":2,"maxLength":100,"description":"Slug"},"Status":{"type":"integer","description":"Status","enum":[0,1]},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The Role object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Role":{"required":["name","organization","status","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Role name"},"description":{"type":"string","description":"Role description"},"organization":{"$ref":"#/components/schemas/Organization"},"privileges":{"type":"array","items":{"type":"string"},"description":"Role privileges, formatted as (<domain>:<action>)"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Organization":{"type":"object","required":["_id","name","slug","description","owner","isExecutive","status","privileges"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Organization name"},"slug":{"$ref":"#/components/schemas/Slug"},"description":{"type":"string","minLength":2,"maxLength":255,"description":"Organization description"},"owner":{"$ref":"#/components/schemas/MongoId"},"isExecutive":{"type":"boolean","description":"Organization is executive","default":false,"readOnly":true},"status":{"$ref":"#/components/schemas/Status"},"privileges":{"type":"array","items":{"type":"string"},"description":"Organization privileges, formatted as (<domain>:<action>)","default":[]},"imageUrl":{"type":"string","description":"Organization image URL"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"Slug":{"type":"string","pattern":"^[a-z0-9-]{2,100}$","minLength":2,"maxLength":100,"description":"Slug"},"Status":{"type":"integer","description":"Status","enum":[0,1]},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The Me object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Me":{"required":["organization","roles","userType"],"allOf":[{"$ref":"#/components/schemas/User"},{"properties":{"organization":{"$ref":"#/components/schemas/Organization"},"roles":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Role"},{"properties":{"organization":{"$ref":"#/components/schemas/MongoId"}}}]},"description":"User roles"},"userType":{"type":"string","enum":["super-admin","admin","user"],"description":"User type","readOnly":true}}}]},"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"}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"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]},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"Organization":{"type":"object","required":["_id","name","slug","description","owner","isExecutive","status","privileges"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Organization name"},"slug":{"$ref":"#/components/schemas/Slug"},"description":{"type":"string","minLength":2,"maxLength":255,"description":"Organization description"},"owner":{"$ref":"#/components/schemas/MongoId"},"isExecutive":{"type":"boolean","description":"Organization is executive","default":false,"readOnly":true},"status":{"$ref":"#/components/schemas/Status"},"privileges":{"type":"array","items":{"type":"string"},"description":"Organization privileges, formatted as (<domain>:<action>)","default":[]},"imageUrl":{"type":"string","description":"Organization image URL"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"Slug":{"type":"string","pattern":"^[a-z0-9-]{2,100}$","minLength":2,"maxLength":100,"description":"Slug"},"Role":{"required":["name","organization","status","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Role name"},"description":{"type":"string","description":"Role description"},"organization":{"$ref":"#/components/schemas/Organization"},"privileges":{"type":"array","items":{"type":"string"},"description":"Role privileges, formatted as (<domain>:<action>)"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}}}}}
```

## The PublicKey object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"PublicKey":{"required":["_id","label","status","publicKey","awsPublicKeyId","user","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"label":{"type":"string","minLength":3,"maxLength":100,"description":"Public key label"},"status":{"$ref":"#/components/schemas/Status"},"publicKey":{"type":"string","minLength":1024,"maxLength":16384,"description":"Public key"},"awsPublicKeyId":{"type":"string","readOnly":true},"filePath":{"type":"string","description":"Public key file path"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"Status":{"type":"integer","description":"Status","enum":[0,1]},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The Stage object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Stage":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string","enum":["failed","succeeded","pending"]},"payload":{"type":"string"},"result":{"type":"string"},"error":{"type":"string"}}}}}}
```

## The Privilege object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Privilege":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"group":{"type":"string","enum":["administration","organization"]}}}}}}
```

## The Changelog object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Changelog":{"type":"object","required":["targetVersion","summary","markdown","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"targetVersion":{"type":"string","minLength":5,"maxLength":20,"description":"Target version, formatted as semantic version"},"summary":{"type":"string","maxLength":100,"description":"Changelog summary"},"markdown":{"type":"string"},"rank":{"type":"integer","description":"Rank for sorting","default":0,"readOnly":true},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The Project object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Slug":{"type":"string","pattern":"^[a-z0-9-]{2,100}$","minLength":2,"maxLength":100,"description":"Slug"},"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"}}}}
```

## The AndroidAppStatus object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The IosAppStatus object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The Deployment object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}},"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"},"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}}}}
```

## The BuildDeployment object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}},"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"},"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"}}}}}}
```

## The CodePushDeployment object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"CodePushDeployment":{"type":"object","required":["targetBinaryRange","deploymentType"],"allOf":[{"$ref":"#/components/schemas/Deployment"},{"properties":{"targetBinaryRange":{"type":"string","description":"Code push target binary range"},"deploymentType":{"type":"string","enum":["code-push"],"description":"Deployment type"},"label":{"type":"string","description":"Code push label"},"originalLabel":{"type":"string","description":"Code push original label"},"isMandatory":{"type":"boolean","description":"Code push is mandatory","default":false},"isDisabled":{"type":"boolean","description":"Code push is disabled","default":false},"rollout":{"type":"number","description":"Code push rollout","minimum":0,"maximum":100,"default":100},"releaseMethod":{"type":"string","description":"Code push release method","enum":["upload","promote","rollback","force-update"]}}}]},"Deployment":{"type":"object","required":["_id","project","user","status","os","buildTarget","deploymentType","tag","createdAt","updatedAt"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"project":{"allOf":[{"$ref":"#/components/schemas/Project"},{"properties":{"credential":{"type":"object"},"additionalCredentials":{"type":"object"},"organization":{"type":"string","description":"Organization id"}}}]},"user":{"$ref":"#/components/schemas/User"},"parent":{"$ref":"#/components/schemas/MongoId"},"description":{"type":"string","maxLength":1000,"description":"Deployment description"},"status":{"type":"string","enum":["pending","deploying","success","failed","canceled"],"description":"Deployment status"},"os":{"type":"string","enum":["android","ios","huawei"],"description":"Deployment OS"},"buildTarget":{"type":"string","enum":["staging","production"],"description":"Deployment build target"},"deploymentType":{"type":"string","enum":["build","code-push"],"description":"Deployment type"},"stages":{"type":"array","items":{"type":"object","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","description":"Stage name"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"description":"Deployment stages","readOnly":true},"startedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"completedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"abolisher":{"$ref":"#/components/schemas/MongoId"},"forceUpdate":{"type":"boolean","description":"Deployment force update","default":false},"tag":{"type":"string","description":"Deployment tag"},"checksum":{"type":"string","description":"Deployment package checksum"},"size":{"type":"integer","description":"Deployment package size in bytes"},"uploadDuration":{"type":"integer","description":"Deployment upload duration in milliseconds"},"downloadUrl":{"type":"string","description":"Deployment artifact download URL"},"remoteId":{"type":"integer","description":"Build service ID"},"plugins":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Plugin name"},"version":{"type":"string","description":"Plugin version"},"moduleName":{"type":"string","description":"Plugin module name"}}},"description":"Deployment plugins","readOnly":true},"issues":{"type":"array","items":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["error","warning"],"description":"Issue type"},"message":{"type":"string","description":"Issue message"}}}},"timeline":{"type":"array","items":{"type":"object","required":["step","startTime","finishTime"],"properties":{"step":{"type":"number","description":"Step number in the timeline"},"startTime":{"$ref":"#/components/schemas/ReadOnlyDate"},"finishTime":{"$ref":"#/components/schemas/ReadOnlyDate"},"error":{"type":"string","description":"The error message if the step failed"}}}},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"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"},"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}}}}
```

## The IosBuildDeployment object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The AndroidBuildDeployment object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"AndroidBuildDeployment":{"type":"object","properties":{"versionCode":{"type":"integer","description":"Android version code"},"javaVersion":{"type":"string","description":"Java version"}}}}}}
```

## The Dependency object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Dependency":{"type":"object","required":["isPrivate","readme","isVisible","_id","name","organization","createdAt","updatedAt"],"properties":{"isPrivate":{"type":"boolean","description":"Dependency is private"},"readme":{"type":"string","description":"Dependency readme"},"isVisible":{"type":"boolean","description":"Dependency is visible"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Dependency name"},"organization":{"type":"string","description":"Organization id"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The DependencyPackage object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"DependencyPackage":{"type":"object","required":["assetUrl","isPrivate","readme","_id","versionNumber","createdAt","updatedAt","publisher","dependency","checksum","rank","envVersionNumber"],"properties":{"assetUrl":{"type":"string","description":"Dependency package asset URL"},"isPrivate":{"type":"boolean","description":"Dependency package is private"},"readme":{"type":"string","description":"Dependency package readme"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"versionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package version number"},"publisher":{"type":"object","description":"Dependency package publisher","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"firstName":{"type":"string","minLength":5,"maxLength":255,"description":"User first name"},"lastName":{"type":"string","minLength":5,"maxLength":255,"description":"User last name"}}},"dependency":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"checksum":{"type":"string","description":"Dependency package checksum"},"rank":{"type":"integer","description":"Dependency package rank"},"envVersionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package env version number"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The Invitation object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Invitation":{"type":"object","required":["email","token","organization"],"properties":{"email":{"type":"string","description":"Invitation email"},"token":{"type":"string","description":"Invitation token"},"organization":{"$ref":"#/components/schemas/Organization"},"user":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"registered":{"type":"object","properties":{"completedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"user":{"$ref":"#/components/schemas/ReadOnlyMongoId"}}},"status":{"type":"string","description":"Invitation status","default":"pending","enum":["pending","success","suspended"]},"validatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"Organization":{"type":"object","required":["_id","name","slug","description","owner","isExecutive","status","privileges"],"properties":{"_id":{"$ref":"#/components/schemas/MongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Organization name"},"slug":{"$ref":"#/components/schemas/Slug"},"description":{"type":"string","minLength":2,"maxLength":255,"description":"Organization description"},"owner":{"$ref":"#/components/schemas/MongoId"},"isExecutive":{"type":"boolean","description":"Organization is executive","default":false,"readOnly":true},"status":{"$ref":"#/components/schemas/Status"},"privileges":{"type":"array","items":{"type":"string"},"description":"Organization privileges, formatted as (<domain>:<action>)","default":[]},"imageUrl":{"type":"string","description":"Organization image URL"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"Slug":{"type":"string","pattern":"^[a-z0-9-]{2,100}$","minLength":2,"maxLength":100,"description":"Slug"},"Status":{"type":"integer","description":"Status","enum":[0,1]},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true}}}}
```

## The Plugin object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Plugin":{"allOf":[{"$ref":"#/components/schemas/Dependency"},{"properties":{"lastDependencyPackage":{"$ref":"#/components/schemas/DependencyPackage"}}}]},"Dependency":{"type":"object","required":["isPrivate","readme","isVisible","_id","name","organization","createdAt","updatedAt"],"properties":{"isPrivate":{"type":"boolean","description":"Dependency is private"},"readme":{"type":"string","description":"Dependency readme"},"isVisible":{"type":"boolean","description":"Dependency is visible"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","minLength":2,"maxLength":100,"description":"Dependency name"},"organization":{"type":"string","description":"Organization id"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"},"DependencyPackage":{"type":"object","required":["assetUrl","isPrivate","readme","_id","versionNumber","createdAt","updatedAt","publisher","dependency","checksum","rank","envVersionNumber"],"properties":{"assetUrl":{"type":"string","description":"Dependency package asset URL"},"isPrivate":{"type":"boolean","description":"Dependency package is private"},"readme":{"type":"string","description":"Dependency package readme"},"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"versionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package version number"},"publisher":{"type":"object","description":"Dependency package publisher","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"firstName":{"type":"string","minLength":5,"maxLength":255,"description":"User first name"},"lastName":{"type":"string","minLength":5,"maxLength":255,"description":"User last name"}}},"dependency":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"checksum":{"type":"string","description":"Dependency package checksum"},"rank":{"type":"integer","description":"Dependency package rank"},"envVersionNumber":{"type":"string","minLength":5,"maxLength":20,"description":"Dependency package env version number"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}}}}}
```

## The Webhook object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Webhook":{"type":"object","description":"Project webhook","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","description":"Webhook name"},"url":{"type":"string","format":"uri","description":"Webhook URL"},"headers":{"type":"object","description":"Webhook headers"},"active":{"type":"boolean","description":"Webhook is active","default":true},"events":{"type":"array","items":{"type":"string","enum":["deployment.build.created","deployment.build.succeeded","deployment.build.failed","deployment.build.canceled","deployment.codePush.created","deployment.codePush.succeeded","deployment.codePush.failed","deployment.codePush.canceled","distribution.created","distribution.succeeded","distribution.failed","distribution.canceled"]}},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The EnvVar object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"EnvVar":{"type":"object","description":"Project envvar","properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","description":"Pipeline envvar name"},"value":{"type":"string","description":"Pipeline envvar value"},"isSecret":{"type":"boolean","description":"Pipeline envvar is secret","default":false},"env":{"type":"string","description":"Pipeline envvar environment","enum":["production","staging"]},"authorId":{"$ref":"#/components/schemas/MongoId"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The Distribution object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Distribution":{"type":"object","required":["type","remoteId","releaseNotes"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"type":{"type":"string","description":"Distribution type; APPLE_APP_STORE 1, GOOGLE_PLAY 2, HUAWEI_APP_GALLERY 3","enum":[1,2,3]},"deploymentId":{"$ref":"#/components/schemas/MongoId"},"projectId":{"$ref":"#/components/schemas/MongoId"},"userId":{"$ref":"#/components/schemas/MongoId"},"abolisherId":{"$ref":"#/components/schemas/MongoId"},"releaseNotes":{"type":"string","description":"Release notes"},"status":{"type":"string","enum":["pending","uploading","success","failed","canceled"]},"startedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"completedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"remoteId":{"type":"string","description":"Remote ID"},"releaseMethod":{"type":"string","description":"Release method","enum":["upload","promote"]},"track":{"type":"string","description":"Distribution track","enum":["TestFlight","Production","production","beta","alpha","internal"]},"uploadMetadata":{"type":"boolean","description":"Deployment upload metadata","default":false},"uploadScreenshots":{"type":"boolean","description":"Deployment upload screenshots","default":false},"shouldSubmitForReview":{"type":"boolean","description":"Deployment should submit for review","default":false},"shouldAutoRelease":{"type":"boolean","description":"Deployment should auto release","default":false},"userFraction":{"type":"number","description":"Deployment user fraction","minimum":0,"maximum":1,"default":1},"updatePriority":{"type":"number","description":"Deployment update priority","minimum":0,"maximum":5,"default":0},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The UserAccessToken object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"UserAccessToken":{"type":"object","required":["name","token","expiresOn","privileges","userId","organizationId"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"name":{"type":"string","description":"Access token name"},"token":{"type":"string","description":"Access token value"},"privileges":{"type":"array","items":{"type":"string","description":"Access token privileges formatted as (<domain>:<action>)"},"description":"Access token privileges"},"userId":{"$ref":"#/components/schemas/MongoId"},"organizationId":{"$ref":"#/components/schemas/MongoId"},"expiresOn":{"$ref":"#/components/schemas/ReadOnlyDate"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```

## The Ticket object

```json
{"openapi":"3.0.3","info":{"title":"AppMaker API - OAS 3.0","version":"1.0.0"},"components":{"schemas":{"Ticket":{"type":"object","required":["type","message","userId","status"],"properties":{"_id":{"$ref":"#/components/schemas/ReadOnlyMongoId"},"type":{"type":"string","description":"The ticket type","enum":[1,2,3,4]},"message":{"type":"string","description":"The ticket message"},"userId":{"$ref":"#/components/schemas/MongoId"},"organizationId":{"$ref":"#/components/schemas/MongoId"},"files":{"type":"array","items":{"type":"string","description":"The ticket s3 file URL"}},"status":{"type":"string","description":"The ticket status","enum":[1,2,3],"default":1},"readAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"closedAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"createdAt":{"$ref":"#/components/schemas/ReadOnlyDate"},"updatedAt":{"$ref":"#/components/schemas/ReadOnlyDate"}}},"ReadOnlyMongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID","readOnly":true},"MongoId":{"type":"string","pattern":"^[0-9a-fA-F]{24}$","description":"Entity ID"},"ReadOnlyDate":{"type":"string","format":"date-time","readOnly":true,"description":"Date"}}}}
```


---

# 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/models.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.
