# FormFieldValidationTypes

## Introduction

`FormFieldValidationTypes` associated to [FormFieldValidations](https://docs.api.intratool.de/api-reference/forms/form-field-validations) by their `key` describe how an applied validation should be interpreted.

Every `FormFielValidationType` offers a generic default configuration and describes how a concrete configuration is validated when creating a [FormFieldValidation](https://docs.api.intratool.de/api-reference/forms/form-field-validations).

## List

Get a list of all `FormFieldValidationTypes`.

**Definition**

<mark style="color:green;">`GET`</mark> `/api/forms/field-validation-types`

**Example Request**

{% tabs %}
{% tab title="PHP" %}

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/forms/field-validation-types', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
[
  {
    "id": "datetime",
    "default_config": {
      "format": "Y-m-d H:i:s"
    },
    "sort_number": 6,
    "created_at": "2019-01-21 00:00:00",
    "updated_at": "2019-01-21 00:00:00"
  },
  {
    "id": "email",
    "default_config": {},
    "sort_number": 2,
    "created_at": "2019-01-21 00:00:00",
    "updated_at": "2019-01-21 00:00:00"
  },
  {
    "id": "mimetypes",
    "default_config": {
      "allowed": ["image/gif", "image/jpeg", "image/png", "image/tiff"]
    },
    "sort_number": 7,
    "created_at": "2019-01-21 00:00:00",
    "updated_at": "2019-01-21 00:00:00"
  },
  {
    "id": "minmax",
    "default_config": {
      "min": 0
    },
    "sort_number": 5,
    "created_at": "2019-01-21 00:00:00",
    "updated_at": "2019-01-21 00:00:00"
  },
  {
    "id": "number",
    "default_config": {
      "type": "numeric"
    },
    "sort_number": 4,
    "created_at": "2019-01-21 00:00:00",
    "updated_at": "2019-01-21 00:00:00"
  },
  {
    "id": "required",
    "default_config": {},
    "sort_number": 1,
    "created_at": "2019-01-21 00:00:00",
    "updated_at": "2019-01-21 00:00:00"
  },
  {
    "id": "url",
    "default_config": {},
    "sort_number": 3,
    "created_at": "2019-01-21 00:00:00",
    "updated_at": "2019-01-21 00:00:00"
  }
]
```

## Show

Show a single `FormFielValidationType` by `id`.

**Definition**

<mark style="color:green;">`GET`</mark> `/api/forms/field-validation-types/{id}`

**Example Request**

{% tabs %}
{% tab title="PHP" %}

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/forms/field-validation-types/number', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);

```

{% endtab %}
{% endtabs %}

**Example Response**

```json
[]
```

## Required

The field will be marked and validated as required.

**Key** `required`

**Configuration**

No further configuration available.

## Url

The field value has to be a valid URL.

**Key** `url`

**Configuration**

No further configuration available.

## DateTime

The field value has to be a valid date/time according to the format configuration.

**Key** `datetime`

**Configuration**

| Key         | Description                                | Type   | Default       | Example |
| ----------- | ------------------------------------------ | ------ | ------------- | ------- |
| `format` \* | The date/time format the value should have | string | `Y-m-d H:i:s` | `H:i`   |

Keys with `*` are required.

## MimeTypes

The input file will be validated to have one of the defined mimetypes.

**Key** `mimetypes`

**Configuration**

| Key          | Description             | Type  | Default                                                      | Example               |
| ------------ | ----------------------- | ----- | ------------------------------------------------------------ | --------------------- |
| `allowed` \* | The supported mimetypes | array | `["image\/gif", "image\/jpeg", "image\/png", "image\/tiff"]` | `["application/pdf"]` |

Keys with `*` are required.

## Email

The field value has to be a valid email address.

**Key** `email`

**Configuration**

No further configuration available.

## Number

The field value has to be a number.

**Key** `number`

**Configuration**

| Key       | Description            | Type   | Default   | Example   |
| --------- | ---------------------- | ------ | --------- | --------- |
| `type` \* | The type of the number | string | `numeric` | `integer` |

Keys with `*` are required.

## MinMax

The field value has to be a number in the defined valid range.

**Key** `minmax`

**Configuration**

| Key   | Description   | Type    | Default | Example   |
| ----- | ------------- | ------- | ------- | --------- |
| `min` | Minimum value | integer | `0`     | `integer` |
| `max` | Maximum value | integer | -       | `integer` |
