# Методы и поля iOS SDK

## OZSDK <a href="#h.d54w6nclhn63" id="h.d54w6nclhn63"></a>

Синглтон (шаблон-одиночка) для Oz SDK.

### Методы <a href="#h.tdzh7awerneq" id="h.tdzh7awerneq"></a>

#### *OZSDK* <a href="#h.xbz0s42baaxx" id="h.xbz0s42baaxx"></a>

Инициализирует OZSDK, используя данные лицензии. В качестве замыкания передаются либо данные о лицензии, либо [LicenseError](#h.nl72difjt7t4-1).

| **Параметр**   | **Тип**                             | **Описание**      |
| -------------- | ----------------------------------- | ----------------- |
| licenseSources | \[[LicenseSource](#h.1youdsuhceqn)] | Источник лицензии |

**Возвращает**

\-

#### **setLicense**

Принудительно устанавливает лицензию.

| **Параметр**  | **Тип**                          | **Описание**      |
| ------------- | -------------------------------- | ----------------- |
| licenseSource | [LicenseSource](#h.1youdsuhceqn) | Источник лицензии |

#### ***setApiConnection***

Запрашивает токен доступа для пользователя.

| **Параметр**  | **Тип**                        | **Описание**          |
| ------------- | ------------------------------ | --------------------- |
| apiConnection | [Connection](#enum-connection) | Параметры авторизации |

**Возвращает**

Токен доступа или ошибку.

#### ***setEventsConnection***

Запрашивает токен доступа для отправки телеметрии.

| **Параметр**     | **Тип**                        | **Описание**                         |
| ---------------- | ------------------------------ | ------------------------------------ |
| eventsConnection | [Connection](#enum-connection) | Параметры авторизации для телеметрии |

**Возвращает**

Токен доступа или ошибку.

#### *isLoggedIn* <a href="#h.4j8u261to9nm" id="h.4j8u261to9nm"></a>

Проверяет, существует ли токен доступа.

**Параметры**

\-

**Возвращает**

Результат проверки – true или false.

#### *logout* <a href="#h.txtify9mk677" id="h.txtify9mk677"></a>

Удаляет сохраненный токен доступа.

**Параметры**

\-

**Возвращает**

\-

#### *createVerificationVCWithDelegate* <a href="#h.uroxud58sp64" id="h.uroxud58sp64"></a>

Создает контроллер для проверки Liveness.

| **Параметр**                 | **Тип**                                   | **Описание**                                                                                          |
| ---------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| delegate                     | [OZLivenessDelegate](#h.kq1590g3dd67)     | Делегат Oz Liveness                                                                                   |
| actions                      | [OzVerificationMovement](#h.20yp3ix24ijd) | Действие на видео                                                                                     |
| cameraPosition (опционально) | AVCaptureDevice.Position                  | <p><code>front</code> – фронтальная камера (по умолчанию),<br><code>back</code> – основная камера</p> |

**Возвращает**

UIViewController или исключение.

#### *createVerificationVC* <a href="#h.avv4lbfn8jdn" id="h.avv4lbfn8jdn"></a>

Создает контроллер для проверки Liveness.

| **Параметр**                 | **Тип**                                                                                                                                                                       | **Описание**                                                                                                                                             |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| actions                      | [OzVerificationMovement](#h.20yp3ix24ijd)                                                                                                                                     | Действие на видео                                                                                                                                        |
| FaceCaptureCompletion        | <p>type alias</p><p>пример использования::</p><p><code>public typealias FaceCaptureCompletion = (\_ results: \[OZMedia]?, \_ error: OZVerificationStatus?) -> Void</code></p> | Callback-функция, которая вызывается по завершении метода. В качестве замыкания передается либо массив объектов [OzMedia](#h.hizmhq9c5cq9), либо ошибка. |
| cameraPosition (опционально) | AVCaptureDevice.Position                                                                                                                                                      | <p><code>front</code> – фронтальная камера (по умолчанию),<br><code>back</code> – основная камера</p>                                                    |

**Возвращает**

UIViewController или исключение.

#### *cleanTempDirectory* <a href="#h.lxv6e0jcez8m" id="h.lxv6e0jcez8m"></a>

Удаляет все видеоролики.

**Параметры**

\-

**Возвращает**

\-

#### *getEventSessionId*

Запрашивает идентификатор сессии телеметрии.

**Параметры**

\-

**Возвращает**

Идентификатор сессии телеметрии (String).

#### ***set***

Устанавливает кастомный бандл, в котором содержатся переводы строк.

| **Параметр**   | **Тип** | **Описание**               |
| -------------- | ------- | -------------------------- |
| languageBundle | Bundle  | Бандл для поиска переводов |

**Возвращает**

\-

#### *setSelfieLength*

Устанавливает длительность жеста **Селфи** (в миллисекундах).

| **Параметр** | **Тип** | **Описание**                                                                                        |
| ------------ | ------- | --------------------------------------------------------------------------------------------------- |
| selfieLength | Int     | Длительность жеста **Селфи** (в миллисекундах). Должна быть в пределах 500-5000, по умолчанию – 700 |

#### *generateSignedPayload*

Создает `payload` с подписями медиафайлов.

| **Параметр** | **Тип**                    | **Описание**                    |
| ------------ | -------------------------- | ------------------------------- |
| media        | [OZMedia](#h.hizmhq9c5cq9) | Массив медиафайлов              |
| folderMeta   | \[String]                  | Дополнительные метаданные папки |

**Возвращает**

`payload` для загрузки вместе с медиафайлами, для которых он был сгенерирован.

### Поля <a href="#h.zh6o2vvkcwsi" id="h.zh6o2vvkcwsi"></a>

#### *localizationCode* <a href="#h.52t7w0k83w8a" id="h.52t7w0k83w8a"></a>

Язык SDK (если язык не указывается, локаль устанавливается автоматически).

| **Параметр**                          | **Тип** | **Описание** |
| ------------------------------------- | ------- | ------------ |
| [OZLocalizationCode](#h.6x3wdw11shxa) | String  | Код локали   |

#### *host* <a href="#h.ibn5khvrgtdq" id="h.ibn5khvrgtdq"></a>

Хост, к которому обращается система для проверки Liveness.

| **Параметр** | **Тип** | **Описание** |
| ------------ | ------- | ------------ |
| host         | String  | Адрес хоста  |

#### *attemptSettings* <a href="#h.2cizx3edd5ku" id="h.2cizx3edd5ku"></a>

Количество попыток выполнения анализов, после которого SDK выдаст ошибку.

| **Параметр**         | **Тип**                                            | **Описание**                                                                                        |
| -------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| singleCount          | Int                                                | Количество попыток для одного действия/;tcnf                                                        |
| commonCount          | Int                                                | Суммарное количество попыток для всех действий/жестов, если используется последовательность (комбо) |
| faceAlignmentTimeout | Float                                              | Время, в течение которого нужно поместить лицо в рамку                                              |
| uploadMediaSettings  | [UploadMediaSettings](#struct-uploadmediasettings) | Настройки повторной отправки медиафайлов                                                            |

#### *version* <a href="#h.ojhjjmjekdv4" id="h.ojhjjmjekdv4"></a>

Версия SDK.

| **Параметр** | **Тип** | **Описание** |
| ------------ | ------- | ------------ |
| version      | String  | Номер версии |

## OZLivenessDelegate <a href="#h.kq1590g3dd67" id="h.kq1590g3dd67"></a>

Делегат OZSDK.

### Методы <a href="#h.tndvfnha8ff9" id="h.tndvfnha8ff9"></a>

#### *onOZLivenessResult* <a href="#h.vjj6377632zc" id="h.vjj6377632zc"></a>

Запрашивает результаты проверки Liveness.

| **Параметр** | **Тип**                       | **Описан**ие            |
| ------------ | ----------------------------- | ----------------------- |
| results      | \[[OzMedia](#h.hizmhq9c5cq9)] | Массив объектов OzMedia |

**Возвращает**

\-

#### *onError* <a href="#h.empe95oabonl" id="h.empe95oabonl"></a>

Обрабатывает ошибки.

| **Параметр** | **Тип**                                 | **Описание**    |
| ------------ | --------------------------------------- | --------------- |
| status       | [OZVerificationStatus](#h.lh6l9d806vzr) | Описание ошибки |

**Возвращает**

\-

## AnalysisRequest <a href="#h.z1htnl1or79" id="h.z1htnl1or79"></a>

Протокол для выполнения проверок.

### Методы <a href="#h.pbd0dgbi3f9o" id="h.pbd0dgbi3f9o"></a>

#### *AnalysisRequestBuilder* <a href="#h.phxl5byegpph" id="h.phxl5byegpph"></a>

Создает инстанс AnalysisRequest.

| **Параметр**           | **Тип** | **Описание**                                                                                          |
| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------- |
| folderId (опционально) | String  | Идентификатор папки; указывается только в том случае, если нужно загрузить файлы в определенную папку |

**Возвращает**

Инстанс AnalysisRequest.

#### *addAnalysis* <a href="#h.u5vxmniuk79q" id="h.u5vxmniuk79q"></a>

Добавляет в AnalysisRequest анализы.

| **Параметр** | **Тип**  | **Описание**                        |
| ------------ | -------- | ----------------------------------- |
| analysis     | Analysis | Структура с информацией об анализах |

**Возвращает**

\-

#### *uploadMedia* <a href="#h.u5vxmniuk79q" id="h.u5vxmniuk79q"></a>

Загружает медиафайл(ы) на сервер.

| **Параметр** | **Тип**                    | **Описание**                       |
| ------------ | -------------------------- | ---------------------------------- |
| media        | [OZMedia](#h.hizmhq9c5cq9) | Объект или массив объектов OzMedia |

**Возвращает**

\-

#### *addFolderId* <a href="#h.1sbjrsbfezvg" id="h.1sbjrsbfezvg"></a>

Добавляет идентификатор папки для загрузки на сервер.

| **Параметр** | **Тип** | **Описание**        |
| ------------ | ------- | ------------------- |
| folderId     | String  | Идентификатор папки |

**Возвращает**

\-

#### *addFolderMeta* <a href="#h.53ou0g8vq7x4" id="h.53ou0g8vq7x4"></a>

Добавляет в папку метаданные.

| **Параметр** | **Тип**   | **Описание**                                                             |
| ------------ | --------- | ------------------------------------------------------------------------ |
| meta         | \[String] | <p>Массив метаданных; пример:</p><p><code>\["meta1": "data1"]</code></p> |

**Возвращает**

\-

#### *run* <a href="#h.hhljkm79q954" id="h.hhljkm79q954"></a>

Запускает анализы.

| **Параметр**      | **Тип**                                                                                                       | **Описание**                                                                                                                                               |
| ----------------- | ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| statusHandler     | <p>Callback-функция</p><p><code>statusHandler: @escaping ((\_ status: RequestStatus) -> Void)</code></p>      | Вызывается в момент смены состояния метода. В качестве замыкания передается [RequestStatus](#requeststatus), который показывает статус обработки анализов. |
| errorHandler      | <p>Callback-функция</p><p><code>errorHandler: @escaping ((\_ error: Error) -> Void)</code></p>                | Вызывается при возникновении ошибки                                                                                                                        |
| completionHandler | <p>Callback-функция</p><p><code>completionHandler: @escaping (\_ results : RequestResult) -> Void)</code></p> | Вызывается по завершении метода. В качестве замыкания передается [RequestResult](#requestresult), который содержит информацию о результатах проверок.      |

**Возвращает**

Результат проверок или ошибку.

## Customization <a href="#h.eocz154uib0s" id="h.eocz154uib0s"></a>

Настройки кастомизации OzLivenessSDK (используйте `OZSDK.customization`).

### toolbarCustomization <a href="#h.b7u90ed634k0" id="h.b7u90ed634k0"></a>

Настройки кастомизации верхней панели.

<table data-header-hidden><thead><tr><th width="245.33333333333331"></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Параметр</strong></td><td><strong>Тип</strong></td><td><strong>Описание</strong></td></tr><tr><td>closeButtonIcon</td><td>UIImage</td><td>Иконка кнопки закрытия</td></tr><tr><td>closeButtonColor</td><td>UIColor</td><td>Цвет кнопки закрытия, <code>tintColor</code></td></tr><tr><td>titleFont</td><td>UIFont</td><td>Шрифт текста на верхней панели</td></tr><tr><td>titleColor</td><td>UIColor</td><td>Цвет текста на верхней панели</td></tr><tr><td>backgroundColor</td><td>UIColor</td><td>Цвет фона верхней панели</td></tr><tr><td>titleText</td><td>String</td><td>Текст на верхней панели</td></tr></tbody></table>

### centerHintCustomization <a href="#h.9467gf9uekkd" id="h.9467gf9uekkd"></a>

Настройки кастомизации текста подсказки, ориентируясь на который, пользователь снимает фото или видео.

| **Параметр**           | **Тип** | **Описание**                                                           |
| ---------------------- | ------- | ---------------------------------------------------------------------- |
| textFont               | UIFont  | Шрифт текста подсказки                                                 |
| textColor              | UIColor | Цвет текста подсказки                                                  |
| backgroundColor        | UIColor | Цвет фона текста подсказки                                             |
| verticalPosition       | Int     | Положение подсказки по вертикали (от верхнего края экрана, в %, 0-100) |
| hideTextBackground     | Bool    | Скрывает подложку подсказки                                            |
| backgroundCornerRadius | Int     | Угловой радиус подложки                                                |

### hintAnimationCustomization <a href="#h.9467gf9uekkd" id="h.9467gf9uekkd"></a>

Настройки кастомизации для анимации подсказки.

| **Параметр**      | **Тип** | **Описание**                                                              |
| ----------------- | ------- | ------------------------------------------------------------------------- |
| hideAnimation     | Bool    | Переключатель для отображения анимации, значение `True` скрывает анимацию |
| animationIconSize | CGfloat | Размер стороны квадрата, в который вписана иконка анимации                |
| hintGradientColor | UIColor | Цвет градиента у рамки                                                    |

### faceFrameCustomization <a href="#h.4xa7epa0fizn" id="h.4xa7epa0fizn"></a>

Настройки кастомизации рамки вокруг лица.

| **Параметр**              | **Тип**                         | **Описание**                                                     |
| ------------------------- | ------------------------------- | ---------------------------------------------------------------- |
| geometryType              | [GeometryType](#h.nl72difjt7t4) | Форма рамки: овал, прямоугольник, круг или квадрат               |
| cornerRadius              | CGFloat                         | Угловой радиус прямоугольника/квадрата (в dp)                    |
| strokeFaceNotAlignedColor | UIColor                         | Цвет рамки, когда лицо не в кадре                                |
| strokeFaceAlignedColor    | UIColor                         | Цвет рамки, когда лицо в кадре                                   |
| strokeWidth               | CGFloat                         | Толщина линии (в dp, 0-20)                                       |
| strokePadding             | CGFloat                         | Отступ от рамки до овала, куда нужно поместить лицо (в dp, 0-10) |

### backgroundCustomization <a href="#h.1j5m1u980aq6" id="h.1j5m1u980aq6"></a>

Настройки кастомизации фона за рамкой.

| **Параметр**    | **Тип** | **Описание**        |
| --------------- | ------- | ------------------- |
| backgroundColor | UIColor | Цвет фона за рамкой |

### versionCustomization <a href="#h.1ejjedxjm8az" id="h.1ejjedxjm8az"></a>

Настройки кастомизации текста версии SDK.

| **Параметр** | **Тип** | **Описание**            |
| ------------ | ------- | ----------------------- |
| textFont     | UIFont  | Шрифт текста версии SDK |
| textColor    | UIColor | Цвет текста версии SDK  |

### antiscamCustomization <a href="#h.1ejjedxjm8az" id="h.1ejjedxjm8az"></a>

Настройки защиты от мошенников – сообщения, предупреждающего человека о том, что его снимают.

<table data-header-hidden><thead><tr><th width="254.33333333333331"></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Parameter</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td></tr><tr><td>customizationEnableAntiscam</td><td>Bool</td><td>Включает защиту от мошенников</td></tr><tr><td>customizationAntiscamTextMessage</td><td>String</td><td>Текст сообщения</td></tr><tr><td>customizationAntiscamTextFont</td><td>UIFont</td><td>Шрифт текста сообщения</td></tr><tr><td>customizationAntiscamTextColor</td><td>UIColor</td><td>Цвет текста сообщения</td></tr><tr><td>customizationAntiscamBackgroundColor</td><td>UIColor</td><td>Цвет подложки сообщения</td></tr><tr><td>customizationAntiscamCornerRadius</td><td>CGFloat</td><td>Угловой радиус подложки</td></tr><tr><td>customizationAntiscamFlashColor</td><td>UIColor</td><td>Цвет мигающего индикатора рядом с сообщением</td></tr></tbody></table>

### logoCustomization

Параметры настройки логотипа, если лицензия предусматривает возможность его изменения. По умолчанию логотип расположен в нижнем левом углу.

| **Parameter**      | **Type**                       | **Description**         |
| ------------------ | ------------------------------ | ----------------------- |
| image              | UIImage                        | Изображение для лого    |
| size               | CGSize                         | Размер лого (в dp)      |
| verticalPosition   | Int (0-100), по умолчанию: 100 | Смещение по вертикали   |
| horizontalPosition | Int (0-100), по умолчанию: 0   | Смещение по горизонтали |

## Переменные и объекты <a href="#h.cus902e8glm0" id="h.cus902e8glm0"></a>

### enum LicenseSource <a href="#h.1youdsuhceqn" id="h.1youdsuhceqn"></a>

Источник лицензии.

| **Значение**    | **Описание**                        |
| --------------- | ----------------------------------- |
| licenseFilePath | Абсолютный путь к лицензии (String) |
| licenseFileName | Имя файла лицензии                  |

### struct LicenseData <a href="#h.vc1ob77t7yzu" id="h.vc1ob77t7yzu"></a>

Полная информация о лицензии

| **Параметр**          | **Тип**          | **Описание**                                                  |
| --------------------- | ---------------- | ------------------------------------------------------------- |
| appIDS                | \[String]        | Массив идентификаторов приложений                             |
| expires               | TimeInterval     | Период времени, спустя который срок действия лицензии истечет |
| features              | Features         | Особенности лицензии                                          |
| configs (опционально) | ABTestingConfigs | Дополнительная конфигурация                                   |

### enum OzVerificationMovement <a href="#h.20yp3ix24ijd" id="h.20yp3ix24ijd"></a>

Действие, представленное на видео.

<mark style="background-color:red;">С 1 января 2027 года однокадровый анализ (жест One Shot) будет отключен. Пожалуйста, спланируйте</mark> [<mark style="background-color:red;">миграцию</mark>](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/instrukcii-po-migracii/perekhod-s-odnokadrovogo-analiza) <mark style="background-color:red;">заранее.</mark>

| **Значение** | **Описание**                            |
| ------------ | --------------------------------------- |
| smile        | Улыбка                                  |
| eyes         | Моргание                                |
| scanning     | Сканирование                            |
| selfie       | Селфи с проверкой позиционирования лица |
| one\_shot    | Лучший кадр из снятого видео            |
| left         | Поворот головы налево                   |
| right        | Поворот головы направо                  |
| down         | Наклон головы вниз                      |
| up           | Подъем головы наверх                    |

### enum OZLocalizationCode <a href="#h.6x3wdw11shxa" id="h.6x3wdw11shxa"></a>

Код языка SDK в соответствии с [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).

| **Значение**   | **Описание**                                    |
| -------------- | ----------------------------------------------- |
| en             | Английский                                      |
| ru             | Русский                                         |
| hy             | Армянский                                       |
| kk             | Казахский                                       |
| ky             | Кыргызский                                      |
| tr             | Турецкий                                        |
| es             | Испанский                                       |
| pt-BR          | Португальский (бразильский вариант)             |
| custom(String) | Кастомный язык (код языка ISO 639-1, две буквы) |

### struct OZMedia <a href="#h.hizmhq9c5cq9" id="h.hizmhq9c5cq9"></a>

Содержит информацию о медиафайле.

| Параметр          | Тип                                       | Описание                        |
| ----------------- | ----------------------------------------- | ------------------------------- |
| movement          | [OZVerificationMovement](#h.20yp3ix24ijd) | Действие на видео               |
| mediaType         | [MediaType](#h.x1o4e6r9wn22)              | Тип медиафайла                  |
| metaData          | \[String]                                 | Метаданные, если есть           |
| videoURL          | URL                                       | URL видео с проверкой Liveness  |
| bestShotURL       | URL                                       | URL лучшего кадра в формате PNG |
| preferredMediaURL | URL                                       | URL медиаконтейнера API         |
| timestamp         | Date                                      | Время окончания проверки        |

### enum MediaType <a href="#h.x1o4e6r9wn22" id="h.x1o4e6r9wn22"></a>

Тип медиафайла.

| **Значение**  | **Описание**                     |
| ------------- | -------------------------------- |
| movement      | Видео/фото с действием           |
| documentBack  | Фото оборотной стороны документа |
| documentFront | Фото лицевой стороны документа   |

### enum OZVerificationStatus <a href="#h.lh6l9d806vzr" id="h.lh6l9d806vzr"></a>

Описание не актуально (deprecated) и будет удалено в будущих релизах.

| **Значение**                        | **Описание**                                                                  |
| ----------------------------------- | ----------------------------------------------------------------------------- |
| userNotProcessed                    | Проверка не была обработана                                                   |
| failedBecauseUserCancelled          | Проверка была прервана пользователем.                                         |
| failedBecauseCameraPermissionDenied | Нельзя выполнить проверку из-за отсутствия доступа к камере                   |
| failedBecauseOfBackgroundMode       | Нельзя выполнить проверку, так как приложение было свернуто                   |
| failedBecauseOfTimeout              | Нельзя выполнить проверку, так как время, отведенное на проверку, закончилось |
| failedBecauseOfAttemptLimit         | Нельзя выполнить проверку, так как превышен лимит попыток                     |
| failedBecausePreparingTimout        | Нельзя выполнить проверку, так как время, отведенное на съемку, закончилось   |
| failedBecauseOfLowMemory            | Нельзя выполнить проверку, так как не хватает памяти                          |

### struct Analysis <a href="#h.kt3ifyywae8e" id="h.kt3ifyywae8e"></a>

Содержит информацию о том, какие анализы и к каким медиафайлам применять.

| **Параметр**          | **Тип**                                              | **Описание**                                                                                                                     |
| --------------------- | ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| media                 | \[[OzMedia](#h.hizmhq9c5cq9)]                        | Массив объектов OzMedia                                                                                                          |
| type                  | [AnalysisType](#h.qww0i8kvhvdr)                      | Тип анализа                                                                                                                      |
| mode                  | [AnalysisMode](#h.wu8r2jgbdoba)                      | Режим анализа                                                                                                                    |
| sizeReductionStrategy | [SizeReductionStrategy](#enum-sizereductionstrategy) | Определяет размер файла, отправляемого на сервер после успешного завершения проверки на устройстве в составе гибридного анализа. |
| params (опционально)  | String                                               | Дополнительные параметры                                                                                                         |

### enum AnalysisType <a href="#h.qww0i8kvhvdr" id="h.qww0i8kvhvdr"></a>

Тип анализа.

| **Значение** | **Описание**                                                                                       |
| ------------ | -------------------------------------------------------------------------------------------------- |
| biometry     | Позволяет сравнить несколько фото или видео и оценить уровень схожести запечатленных на них людей. |
| quality      | Проверяет наличие живого человека в кадре                                                          |
| document     | Определяет наличие документа в кадре и проверяет корректность полей документа согласно его типу.   |
| blacklist    | Сравнивает лицо снятого на фото или видео человека с лицами из заранее созданной базы медиафайлов  |

{% hint style="info" %}
В настоящее время для типа `DOCUMENTS` режим `onDevice` не поддерживается.
{% endhint %}

### enum AnalysisMode <a href="#h.wu8r2jgbdoba" id="h.wu8r2jgbdoba"></a>

Режим анализа.

| **Значение** | **Описание**                                                                                                                                             |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| onDevice     | Анализ на устройстве                                                                                                                                     |
| serverBased  | Анализ на сервере                                                                                                                                        |
| hybrid       | Гибридный анализ для Liveness: если итоговая оценка анализа на устройстве больше определенного порога, медиафайл дополнительно анализируется на сервере. |

### enum ScenarioState <a href="#h.j3ofb2op1rpr" id="h.j3ofb2op1rpr"></a>

Отображает статус обработки медиафайлов.

| **Значение**       | **Описание**                                      |
| ------------------ | ------------------------------------------------- |
| addToFolder        | Система создает папку и помещает в нее медиафайлы |
| addAnalyses        | Система добавляет анализы                         |
| waitAnalysisResult | Система ожидает результата                        |

### struct AnalysisStatus <a href="#h.1xatds1ujqc" id="h.1xatds1ujqc"></a>

Отображает статус загрузки файлов.

| **Параметр** | **Тип**                    | **Описание**                                |
| ------------ | -------------------------- | ------------------------------------------- |
| media        | [OzMedia](#h.hizmhq9c5cq9) | Объект, который загружается в данный момент |
| index        | Int                        | Номер объекта в списке                      |
| from         | Int                        | Количество объектов                         |
| progress     | Progress                   | Статус загрузки                             |

### RequestStatus

Отображает промежуточный результат обработки анализов.

| **Параметр**   | **Тип**                          | **Описание**               |
| -------------- | -------------------------------- | -------------------------- |
| status         | [ScenarioState](#h.j3ofb2op1rpr) | Статус обработки анализов  |
| progressStatus | [AnalysisStatus](#h.1xatds1ujqc) | Статус загрузки медиафайла |

### ResultMedia

Описывает результат анализа для одного медиафайла.

| **Параметр**    | **Тип**                                       | **Описание**                              |
| --------------- | --------------------------------------------- | ----------------------------------------- |
| resolution      | [AnalysisResolutionStatus](#h.ye4jwpwll78m)   | Общий результат анализа                   |
| sourceId        | String                                        | Идентификатор медиафайла на сервере       |
| isOnDevice      | Bool                                          | Режим анализа                             |
| confidenceScore | Float                                         | Итоговая оценка                           |
| mediaType       | String                                        | Тип медиафайла: VIDEO / IMAGE / SHOT\_SET |
| media           | [OZMedia](#h.hizmhq9c5cq9)                    | Анализируемый медиафайл                   |
| error           | AnalysisError (наследуется от базового Error) | Ошибка                                    |

### RequestResult

Сводный результат анализа для всех медиафайлов.

| **Параметр**    | **Тип**                                     | **Описание**               |
| --------------- | ------------------------------------------- | -------------------------- |
| resolution      | [AnalysisResolutionStatus](#h.ye4jwpwll78m) | Сводный результат анализов |
| folderId        | String                                      | Идентификатор              |
| analysisResults | \[[AnalysisResult](#h.umcbfiz2ybss)]        | Результаты анализов        |

### class AnalysisResult <a href="#h.umcbfiz2ybss" id="h.umcbfiz2ybss"></a>

Содержит результат проверок.

| **Параметр**      | **Тип**                                       | **Описание**                                         |
| ----------------- | --------------------------------------------- | ---------------------------------------------------- |
| resolution        | [AnalysisResolutionStatus](#h.ye4jwpwll78m)   | Общий результат анализа                              |
| type              | [AnalysisType](#h.qww0i8kvhvdr)               | Тип анализа                                          |
| mode              | [AnalysisMode](#h.wu8r2jgbdoba)               | Режим анализа                                        |
| analysisId        | String                                        | Идентификатор анализа                                |
| error             | AnalysisError (наследуется от базового Error) | Ошибка                                               |
| resultMedia       | \[[ResultMedia](#resultmedia)]                | Список результатов анализов по отдельным медиафайлам |
| confidenceScore   | Float                                         | Итоговая оценка                                      |
| serverRawResponse | String                                        | Ответ сервера                                        |

### enum AnalyseResolutionStatus <a href="#h.ye4jwpwll78m" id="h.ye4jwpwll78m"></a>

Сводный статус по выполненным анализам.

| **Значение**       | **Описание**                                                         |
| ------------------ | -------------------------------------------------------------------- |
| INITIAL            | Анализы не назначались                                               |
| PROCESSING         | Анализы выполняются                                                  |
| FAILED             | Один или более анализов не удалось завершить из-за ошибок            |
| FINISHED           | Анализы выполнены                                                    |
| DECLINED           | Проверка не пройдена (лица не совпадают или замечена спуфинг-атака)  |
| SUCCESS            | Проверка успешно пройдена                                            |
| OPERATOR\_REQUIRED | Результат анализов должен быть дополнительно перепроверен оператором |

### struct AnalyseResolution <a href="#h.l4zpyeqpo63l" id="h.l4zpyeqpo63l"></a>

Содержит результаты одиночных анализов.

| **Параметр**            | **Тип**                                    | **Описание**                   |
| ----------------------- | ------------------------------------------ | ------------------------------ |
| analyseResolutionStatus | [AnalyseResolutionStatus](#h.ye4jwpwll78m) | Статус анализа                 |
| type                    | [AnalysisType](#h.qww0i8kvhvdr)            | Тип анализа                    |
| folderID                | String                                     | Идентификатор папки            |
| score                   | Float                                      | Результат выполненной проверки |

### enum GeometryType <a href="#h.nl72difjt7t4" id="h.nl72difjt7t4"></a>

Форма рамки.

| **Значение**                     | **Описание**                               |
| -------------------------------- | ------------------------------------------ |
| oval                             | Овальная рамка                             |
| rectangle(cornerRadius: CGFloat) | Прямоугольная рамка (угловой радиус рамки) |
| circle                           | Круглая рамка                              |
| square(cornerRadius: CGFloat)    | Квадратная рамка (угловой радиус рамки)    |

### enum LicenseError <a href="#h.nl72difjt7t4" id="h.nl72difjt7t4"></a>

Возможные ошибки лицензирования.

| **Case**            | **Description**                                                          |
| ------------------- | ------------------------------------------------------------------------ |
| licenseFileNotFound | Лицензия не найдена                                                      |
| licenseParseError   | Невозможно распознать файл лицензии                                      |
| licenseBundleError  | Указанный в лицензии`bundle_id` не совпадает с используемым `bundle_id`. |
| licenseExpired      | Срок действия лицензии истек                                             |

### **enum Connection**

Тип авторизации.

| **Значение**     | **Описание**                                                                                                          |
| ---------------- | --------------------------------------------------------------------------------------------------------------------- |
| fromServiceToken | <p>Авторизация через токен:</p><ul><li>host: String</li><li>token: String</li></ul>                                   |
| fromCredentials  | <p>Авторизация через логин и пароль:</p><ul><li>host: String</li><li>login: String</li><li>password: String</li></ul> |

### struct UploadMediaSettings

Настройки повторной отправки медиафайлов.

| Параметр        | Тип | Описание                               |
| --------------- | --- | -------------------------------------- |
| attemptsCount   | Int | Количество попыток загрузки медиафайла |
| attemptsTimeout | Int | Интервал времени между попытками       |

### enum SizeReductionStrategy

Определяет размер файла, отправляемого на сервер после успешного завершения проверки на устройстве в составе гибридного анализа. По умолчанию отправляется сжатое видео.

| Case             | Description                                                                 |
| ---------------- | --------------------------------------------------------------------------- |
| uploadOriginal   | Исходное видео                                                              |
| uploadCompressed | Сжатое видео                                                                |
| uploadBestShot   | Полученный из видео лучший кадр                                             |
| uploadNothing    | Ничего (в этом случае на сервер не отправляется ничего, папка не создается) |
