> For the complete documentation index, see [llms.txt](https://api-docs.adcreative.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-docs.adcreative.ai/docs/common-resources.md).

# Common Resources

## Enum Definitions and JSON Representation

This document provides a comprehensive explanation of the enums used in the AdCreative API. These enums are essential for understanding the JSON requests and responses, enabling developers to use the correct values.

***

### 1. `RenderKind`

The `RenderKind` enum specifies the dimensions of the output renders. Each value corresponds to a specific size or group of sizes.

#### Definition

```json
{
    "Unset": 0,
    "Post": 1,
    "Story": 2,
    "Landscape": 4,
    "Vertical": 8,
    "PinSize": 16,
    "Social": 31,
    "MediumBanner": 32,
    "LeaderBoard": 64,
    "WideSkyScraper": 128,
    "HalfPage": 256,
    "LargeLeaderboard": 512,
    "FullHD": 1024,
    "Portrait": 2048,
    "Widescreen": 4096,
    "VideoPortrait": 8192,
    "VideoLandscape": 16384,
    "Display": 992,
    "All": 1023
}
```

#### Description

| Value              | Description                          | Dimensions     |
| ------------------ | ------------------------------------ | -------------- |
| `Unset`            | No rendering type set.               | N/A            |
| `Post`             | Square post size.                    | 1080x1080 px   |
| `Story`            | Vertical story size.                 | 1080x1920 px   |
| `Landscape`        | Landscape size for banners.          | 1200x628 px    |
| `Vertical`         | Vertical size for portrait ads.      | 1080x1350 px   |
| `PinSize`          | Pinterest-specific size.             | 1000x1500 px   |
| `Social`           | Combination of all social sizes.     | Multiple sizes |
| `MediumBanner`     | Medium rectangle banner.             | 300x250 px     |
| `LeaderBoard`      | Large horizontal banner.             | 728x90 px      |
| `WideSkyScraper`   | Tall vertical banner.                | 160x600 px     |
| `HalfPage`         | Large vertical half-page banner.     | 300x600 px     |
| `LargeLeaderboard` | Large leaderboard banner.            | 970x90 px      |
| `FullHD`           | Full HD resolution.                  | 1920x1080 px   |
| `Portrait`         | Portrait resolution.                 | 768x1024 px    |
| `Widescreen`       | Widescreen resolution.               | 1024x768 px    |
| `VideoPortrait`    | Portrait-oriented video resolution.  | 768x1280 px    |
| `VideoLandscape`   | Landscape-oriented video resolution. | 1280x768 px    |
| `Display`          | Combination of display ad sizes.     | Multiple sizes |
| `All`              | All possible sizes.                  | Multiple sizes |

***

### 2. `RenderType`

The `RenderType` enum specifies the type of output render.

#### Definition

```json
{
    "Unset": 0,
    "Html": 1,
    "Svg": 2,
    "AiProduct": 4,
    "AiImageUpscaling": 8,
    "AiProductCreative": 16,
    "AiImageGeneration": 32,
    "AiSampledImageGeneration": 64,
    "AiFaceEnhancing": 128,
    "AiInPainting": 1024,
    "AiOutPainting": 127,
    "AiDressing": 256,
    "AiDetailEnhancing": 512,
    "TemplateBased": 19,
    "AiGenerationBased": 100,
    "All": 127
}
```

#### Description

| Value                      | Description                                 |
| -------------------------- | ------------------------------------------- |
| `Unset`                    | No render type set.                         |
| `Html`                     | HTML-based render (deprecated).             |
| `Svg`                      | SVG format render.                          |
| `AiProduct`                | AI-generated product images.                |
| `AiImageUpscaling`         | AI-based image upscaling.                   |
| `AiProductCreative`        | AI-generated product creatives.             |
| `AiImageGeneration`        | AI-based image generation.                  |
| `AiSampledImageGeneration` | AI image generation using a sample.         |
| `AiFaceEnhancing`          | AI-based facial detail enhancement.         |
| `AiInPainting`             | AI-based in-painting for image restoration. |
| `AiOutPainting`            | AI-based out-painting for extending images. |
| `AiDressing`               | AI dressing of models.                      |
| `AiDetailEnhancing`        | AI-based detail enhancement.                |
| `TemplateBased`            | Template-based rendering types.             |
| `AiGenerationBased`        | AI generation-related rendering types.      |
| `All`                      | All rendering types.                        |

***

### 3. `RenderState`

The `RenderState` enum describes the state of a rendering process.

#### Definition

```json
{
    "NotStarted": 0,
    "Started": 1,
    "Scheduled": 2,
    "Cancelled": 3,
    "Failed": 4,
    "Succeeded": 5,
    "Default": 0
}
```

#### Description

| Value        | Description                                     |
| ------------ | ----------------------------------------------- |
| `NotStarted` | The render process has not started.             |
| `Started`    | The render process has started.                 |
| `Scheduled`  | The render process is scheduled.                |
| `Cancelled`  | The render process was cancelled.               |
| `Failed`     | The render process failed.                      |
| `Succeeded`  | The render process succeeded.                   |
| `Default`    | The default state (equivalent to `NotStarted`). |

***

### 4. `NotificationChannel`

The `NotificationChannel` enum specifies the channel for notifications.

#### Definition

```json
{
    "WebHook": 0,
    "SignalR": 1,
    "RabbitMQ": 2
}
```

#### Description

| Value      | Description                          |
| ---------- | ------------------------------------ |
| `WebHook`  | Notifications are sent via WebHook.  |
| `SignalR`  | Notifications are sent via SignalR.  |
| `RabbitMQ` | Notifications are sent via RabbitMQ. |

***

This document serves as a reference for all enum definitions, ensuring consistent and correct usage in JSON requests and responses.

***
