# Методы и поля 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

Подключение к Oz API.

| **Параметр**  | **Тип**                        | **Описание**          |
| ------------- | ------------------------------ | --------------------- |
| 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>](/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/instrukcii-po-migracii/perekhod-s-odnokadrovogo-analiza.md) <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>

Возможные ошибки.

| **Значение**                        | **Описание**                                                                  |
| ----------------------------------- | ----------------------------------------------------------------------------- |
| 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    | Ничего (в этом случае на сервер не отправляется ничего, папка не создается) |

## Методы для работы с контейнером данных OzCapsula <a href="#methods-and-properties" id="methods-and-properties"></a>

### addContainer

Метод заменяет `addAnalysis` в структуре `AnalysisRequest` при использовании контейнера.

**Входные параметры**

|                 |              |                                                                                                                                       |
| --------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| **Параметр**    | **Тип**      | **Описание**                                                                                                                          |
| OzDataContainer | bytearray\[] | Зашифрованный файл с медиа и сопутствующей информацией, результат вызова метода [createMediaCaptureScreen](#createmediacapturescreen) |

### createMediaCaptureScreen

Запускает съемку видео и затем пакует снятое видео и сопутствующую ему информацию в контейнер данных.

**Входные параметры**

| **Параметр**   | **Тип**                                             | **Описание**                      |
| -------------- | --------------------------------------------------- | --------------------------------- |
| request        | [CaptureRequest](#public-data-class-capturerequest) | Распознает запрос на съемку видео |
| session\_token | String                                              | Токен для текущей сессии          |

**Выходные параметры**

| **Параметр**    | **Тип**      | **Описание**                                           |
| --------------- | ------------ | ------------------------------------------------------ |
| OzDataContainer | bytearray\[] | Зашифрованный файл с медиа и сопутствующей информацией |

### public data class CaptureRequest

Распознает запрос на съемку видео.

| **Параметр**                        | **Тип**                                                     | **Описание**                                                                                       |
| ----------------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| analysisProfileList                 | List<[AnalysisProfile](#public-data-class-analysisprofile)> | Список объектов с информацией о медиафайлах и анализах, которые на них назначены                   |
| folderMeta (необязательно)          | Map\<String, Any>                                           | Метаданные папки                                                                                   |
| additionalMediaList (необязательно) | List<[MediaRequest](#public-sealed-class-mediarequest)>     | Дополнительные медиафайлы, которые вы хотите загрузить, но для анализа они не обязательны          |
| cameraPosition (optional)           | String                                                      | <p><code>front</code> (по умолчанию) – передняя камера</p><p><code>back</code> – задняя камера</p> |

### public data class AnalysisProfile

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

| **Параметр**           | **Тип**                                                                                                                                                           | **Описание**                     |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| mediaList              | List<[MediaRequest](#public-sealed-class-mediarequest)>                                                                                                           | Список медиа для анализа         |
| type                   | [AnalysisType](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/sdk/oz-mobile-sdk/ios/pages/58ocyasEYOnj9V51ifLR#h.qww0i8kvhvdr) | Тип анализа                      |
| params (необязательно) | Map\<String, Any>                                                                                                                                                 | Дополнительные параметры анализа |

### public sealed class MediaRequest

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

{% hint style="warning" %}
Обратите внимание: параметры  `actionMedia` и `userMedia` – взаимоисключающие, структура должна содержать только один из них.
{% endhint %}

| **Параметр** | Тип                                                                                                                                                                         | Описание                                                             |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| id           | String (UUID v4)                                                                                                                                                            | Идентификатор медиафайла                                             |
| actionMedia  | [OzVerificationMovement](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/sdk/oz-mobile-sdk/ios/pages/58ocyasEYOnj9V51ifLR#h.20yp3ix24ijd) | Действие, которое пользователь выполняет на видео                    |
| userMedia    | [OZMedia](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/sdk/oz-mobile-sdk/ios/pages/58ocyasEYOnj9V51ifLR#h.hizmhq9c5cq9)                | Файл не из нашего SDK, например, референсное фото или фото документа |

### Список ошибок для контейнера данных

| **Ошибка**                                                                                                                                          | **Текст**                                                     | **Описание**                                      |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------- |
| session\_token\_is\_empty                                                                                                                           | Session token must not be empty                               | Отсутствует session token – обязательный параметр |
| data\_container\_internal\_failure\_1                                                                                                               | Internal failure occurred while processing the data container | На устройстве недостаточно памяти                 |
| <ul><li>data\_container\_internal\_failure\_2</li><li>data\_container\_internal\_failure\_3</li><li>data\_container\_internal\_failure\_4</li></ul> | Internal failure occurred while processing the data container | Контейнер создать не удалось. Попробуйте еще раз  |
| data\_container\_internal\_failure\_1000                                                                                                            | Internal failure occurred while processing the data container | Любая другая ошибка не из списка выше             |

Если во время съемки возникнет ошибка, из-за которой пользователь не сможет завершить сценарий, контейнер данных будет удален.


---

# 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://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/sdk/oz-mobile-sdk/ios/metody-i-polya-ios-sdk.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.
