Валидация дополнительных параметров услуг для тарифного плана

Метод Validate order attributes of plan используется при покупке новой подписки (см. Создание заказа на покупку) для валидации значений дополнительных параметров (см. Получение списка дополнительных параметров услуг для Тарифного плана реселлера), необходимых для провижининга услуги, по указанному ID тарифного плана текущего реселлера или любого из его нижестоящих.

В результате выполнения запроса в платформе создается асинхронная задача, в рамках которой будет выполняться валидация дополнительных параметров на стороне услуги. Для проверки результата выполнения задачи необходимо использовать метод Get async task (см. Получение информации об асинхронной задаче).

  • Для услуг, не требующих валидации дополнительных параметров (например, Google Workspace (G Suite)), в результате вызова метода асинхронная задача всё равно будет создана и успешно завершена.
    1. Проверка необходимости принятия клиентом соглашения Microsoft Customer Agreement:
      • Если требуется принятие клиентом соглашения Microsoft Customer Agreement, то проверяется, чтобы в теле запроса был указан параметр microsoft_customer_agreement = 1.
      • Если принятие клиентом соглашения Microsoft Customer Agreement не требуется, то параметр microsoft_customer_agreement в теле запроса игнорируется.
    2. Проверка наличия в платформе Tenant Name для клиента:

      • Если в платформе для указанного клиента есть Tenant Name:

        1. Параметры is_new_domain, with_subdomain и customer_domain в теле запроса игнорируются.

        2. Проверка необходимости создания нового Tenant Name на стороне Microsoft для клиента не выполняется.
      • Если в платформе для указанного клиента нет Tenant Name, то переход к следующей проверке.

    3. Проверка необходимости создания нового Tenant Name на стороне Microsoft для клиента на основе значения параметра is_new_domain в теле запроса:

      • Если в теле запроса указан параметр is_new_domain = 1:

        1. Параметр with_subdomain в теле запроса игнорируется.

        2. Для клиента создается новый Tenant Name: к значению параметра customer_domain автоматически добавляется .onmicrosoft.com.

      • Если в теле запроса указан параметр is_new_domain = 0, то выполняется поиск существующего Tenant Name на стороне Microsoft для клиента с учетом значения параметра with_subdomain:

        • Если в теле запроса указан параметр with_subdomain = 0, то используется Tenant Name, указанный в параметре customer_domain.
        • Если в теле запроса указан параметр with_subdomain = 1, то используется следующий Tenant Name: к значению параметра customer_domain добавляется .onmicrosoft.com.
    4. Если в теле запроса указан параметр microsoft_customer_agreement = 1, то для клиента принимается соглашение Microsoft Customer Agreement от имени сотрудника, токен которого указан в заголовке запроса.

    1. Проверка предпосылки покупки MicrosoftCloudAgreement о необходимости принятия клиентом соглашения Microsoft Customer Agreement:
      • Если хотя бы для одного указанного plan_resource_id требуется принятие клиентом соглашения Microsoft Customer Agreement, то проверяется, чтобы в теле запроса был указан параметр microsoft_customer_agreement = 1.
      • Если принятие клиентом соглашения Microsoft Customer Agreement не требуется, то параметр microsoft_customer_agreement в теле запроса игнорируется.
    2. Проверка Предпосылки покупки AzureSubscriptionRegistration о необходимости наличия у клиента связанной активной подписки Microsoft Azure:
      • Если хотя бы для одного указанного plan_resource_id требуется наличия у клиента связанной активной подписки Microsoft Azure, то проверяется, чтобы в теле запроса в параметре microsoft_azure_subscription был указан ID принадлежащей клиенту подписки Microsoft Azure в статусе Активная, а в параметре reservation_scope — одно из допустимых значений.
      • Если наличие у клиента связанной активной подписки Microsoft Azure не требуется, то параметры microsoft_azure_subscription и reservation_scope в теле запроса игнорируется.
    3. Проверка предпосылки покупки InventoryCheck о доступности для клиента выбранных ресурсов по их SKU:
      • Если для указанного plan_resource_id требуется проверка доступности для клиента по SKU, то проверяется, чтобы SKU для указанного в теле запроса plan_resource_id не имел ограничений.
    4. Проверка наличия в платформе Tenant Name для клиента:

      • Если в платформе для указанного клиента есть Tenant Name:

        1. Параметры is_new_domain, with_subdomain и customer_domain в теле запроса игнорируются.

        2. Проверка необходимости создания нового Tenant Name на стороне Microsoft для клиента не выполняется.
      • Если в платформе для указанного клиента нет Tenant Name, то переход к следующей проверке.

    5. Проверка необходимости создания нового Tenant Name на стороне Microsoft для клиента на основе значения параметра is_new_domain в теле запроса:

      • Если в теле запроса указан параметр is_new_domain = 1:

        1. Параметр with_subdomain в теле запроса игнорируется.

        2. Для клиента создается новый Tenant Name: к значению параметра customer_domain автоматически добавляется .onmicrosoft.com.

      • Если в теле запроса указан параметр is_new_domain = 0, то выполняется поиск существующего Tenant Name на стороне Microsoft для клиента с учетом значения параметра with_subdomain:

        • Если в теле запроса указан параметр with_subdomain = 0, то используется Tenant Name, указанный в параметре customer_domain.
        • Если в теле запроса указан параметр with_subdomain = 1, то используется следующий Tenant Name: к значению параметра customer_domain добавляется .onmicrosoft.com.
    6. Если в теле запроса указан параметр microsoft_customer_agreement = 1, то для клиента принимается соглашение Microsoft Customer Agreement от имени сотрудника, токен которого указан в заголовке запроса.

    7. Для клиента создается корзина с заказом на стороне Microsoft.

Для авторизации требуется API-токен менеджера (сотрудника). API-токен можно получить через Панель управления Оператора (см. Просмотр и обновление информации о сотруднике).

По указанному в запросе API-токену определяются:

  • Роль и уровень доступа менеджера, от которых зависит доступность метода.
  • Текущий реселлер и его нижестоящие реселлеры, доступные в рамках метода.

POST {base_url}/api/v3/resellers/{reseller_id}/plans/{plan_id}/order_attributes_validation

Аргументы

Название

Тип параметра

Тип данных

Обязательный/ 
Опциональный

Описание

X-Api-TokenheaderstringОбязательныйAPI-токен сотрудника, выполняющего операцию (см. Просмотр и обновление информации о сотруднике)
Content-TypeheaderstringОбязательныйТип данных, передаваемых в запросе. Необходимо указать: application/vnd.api+json
AcceptheaderstringОбязательныйПоддерживаемые типы данных в ответе. Необходимо указать: application/vnd.api+json
base_urlpathstringОбязательныйURL ActivePlatform
reseller_idpathintegerОбязательныйID реселлера. Возможно указать ID текущего реселлера или ID любого из его нижестоящих реселлеров (см. Просмотр информации о реселлере)
plan_idpathintegerОбязательный

ID тарифного плана

dataformobjectОбязательныйИнформация об атрибутах операции

account_idformintegerОбязательныйID клиента, для которого покупается подписка

plan_period_idformintegerОпциональныйID заказываемого периода указанного тарифного плана (см. Создание заказа на покупку). Обязательный для услуг на основе модуля MicrosoftCspProducts, так как влияет на логику валидации

order_attributesformarrayОбязательныйСписок дополнительных параметров и их значений в зависимости от услуги, связанной с указанным тарифным планом (см. Получение списка дополнительных параметров услуги для Тарифного плана реселлера)


keyformstringОбязательныйКлюч дополнительного параметра


valueformstring
Обязательный

Значение дополнительного параметра.

Для checkbox и boolean (см. Получение списка дополнительных параметров услуг для тарифного плана) допустимые значения:

  • 1 — опция, соответствующая параметру, выбрана.
  • 0 — опция, соответствующая параметру, не выбрана.


plugin_slugform

string

Обязательный

Модуль, на основе которого создана услуга для указанного дополнительного параметра:

  • office365 — модуль Office365.
  • microsoft_csp_products — модуль MicrosoftCspProducts.
  • vendor_service — модуль VSP (Vendor service plugin).

resourcesformarrayОпциональныйСписок заказываемых ресурсов. Обязательный для услуг на основе модуля MicrosoftCspProducts, так как влияет на логику валидации


plan_resource_idformintegerОпциональныйID заказываемого ресурса указанного тарифного плана (см. Создание заказа на покупку). 


quantityformintegerОпциональныйКоличество заказываемого ресурса указанного тарифного плана

Модель ответа

В случае отсутствия ошибок метод возвращает данные о созданной асинхронной задаче в статусе pending (см. модель ответа в Получение информации об асинхронной задаче).

Пример запроса

POST /api/v3/resellers/1/plans/1770/order_attributes_validation
Host: test.activeplatform.com
Content-Type: application/vnd.api+json
X-Api-Token: vY5fwetestK3gJXZH5uHCw
Accept: application/vnd.api+json
{
    "data": {
        "account_id": 833,
        "order_attributes": [
            {
                "plugin_slug": "office365",
                "key": "is_new_domain",
                "value": "1"
            },
            {
                "plugin_slug": "office365",
                "key": "with_subdomain",
                "value": "1"
            },
            {
                "plugin_slug": "office365",
                "key": "customer_domain",
                "value": "exampledomain"
            },
            {
                "plugin_slug": "office365",
                "key": "microsoft_customer_agreement",
                "value": "1"
            }
        ]
    }
}

Пример ответа

{
     "data":
    {
        "id": "9b68427b-52d5-4c01-9b77-eb1b70517414",
        "type": "async_tasks",
        "attributes":
        {
            "status": "pending",
            "failure_message": "",
            "result": []
        }
    }
}