# cloud-iam-service - Сервис для обмена OAUTH-токена на iam-токен Яндекс.Облака

### Как работает
[Получение IAM-токена для аккаунта на Яндексе](https://docs.yandex-team.ru/cloud/iam/operations/iam-token/create)

Для создания бина поставщика iam-токенов типа `IIamTokenProvider` в спринге (@Bean) нужно вызвать метод `CloudIamTokenProviderService.create()`,
передав ему ветки конфига Директа с параметрами соединения с api облака (типа секции `cloud`), секцию с настройками поставщика iam-токенов
(типа секции `cloud_iam_default`) и спринговый планировщик периодических задач (типа `TaskScheduler`).

Метод `CloudIamTokenProviderService.create()` создаст поставщика iam-токенов Яндекс.Облака типа `IIamTokenProvider`,
который будет периодически обновлять iam-токен из API облака, а так же следить за обновлениями OAUTH-токена в переданном файле.
И если OAUTH-токен обновится, то поставщик получит для него новый iam-токен не дожидаясь окончания времени жизни предыдущего.
Так же он корректно освободит все ресурсы при завершении работы.

Таким образом с помощью метода `CloudIamTokenProviderService.create()` можно создать несколько экземпляров поставщиков
iam-токенов облака, для разных OAUTH-токенов, если это потребуется. Например, для реализации разграничения прав доступа к облаку.
