REST Resource: operators.clients.users.planStatus

Ресурс: PlanStatus

PlanStatus содержит подробную информацию обо всех пакетах мобильных услуг высшего уровня, приобретенных пользователем.

JSON-представление
{
  "name": string,
  "plans": [
    {
      object (Plan)
    }
  ],
  "languageCode": string,
  "expireTime": string,
  "updateTime": string,
  "title": string,
  "subscriberId": string,
  "accountInfo": {
    object (AccountInfo)
  },
  "uiCompatibility": enum (UiCompatibility),
  "notifications": [
    enum (NotificationType)
  ],
  "planInfoPerClient": {
    object (PlanInfoPerClient)
  },
  "cpidState": enum (CpidState)
}
Поля
name

string

Имя ресурса PlanStatus в следующем формате: operators/{asn_id}/planStatuses/{userKey} . При создании записи PlanStatus имя игнорируется.

plans[]

object ( Plan )

Список планов, принадлежащих этому пользователю.

languageCode

string

Обязательно. Код языка BCP-47, например, «en-US» или «sr-Latn». Подробнее см. http://www.unicode.org/reports/tr35/#Unicode_locale_identifier .

expireTime

string ( Timestamp format)

Обязательно. Время, когда информация о группе общих планов устаревает. PlanStatus не будет предоставляться приложениям после этого времени. Время истечения срока действия должно быть в будущем.

Метка времени в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти знаков после запятой. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

updateTime

string ( Timestamp format)

Обязательно. Время, когда агент тарифного плана (DPA) извлек информацию о статусе тарифного плана из внутренних систем. Может использоваться для определения актуальности информации о статусе тарифного плана. Время обновления должно быть в прошлом, но не более 30 дней назад.

Метка времени в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти знаков после запятой. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

title

string

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

subscriberId

string

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

accountInfo

object ( AccountInfo )

Требуется для пользователей предоплатной версии. Информация о балансе счёта пользователя.

uiCompatibility

enum ( UiCompatibility )

Определяет, может ли PlanStatus отображаться пользователю в пользовательском интерфейсе. Если установлено значение UI_INCOMPATIBLE, PlanStatus может использоваться для отправки уведомлений пользователю, но не будет использоваться для отображения информации о плане.

notifications[]

enum ( NotificationType )

Содержит список типов уведомлений, отправляемых пользователю GTAF. GTAF игнорирует это поле, если оно заполнено вызывающим объектом.

planInfoPerClient

object ( PlanInfoPerClient )

Информация о тарифном плане, относящаяся к конкретному клиенту Google.

cpidState

enum ( CpidState )

Статус CPID, связанный с этим статусом плана.

План

Подробная информация о тарифном плане пользователя, представляющем собой пакет мобильных услуг высшего уровня, приобретаемый абонентом. Тариф может быть простым, например, «10 ГБ мобильных данных на 30 дней», или представлять собой набор компонентов (которые мы называем модулями тарифного плана). Например, тариф ACME 199, описанный как «2 ГБ данных, безлимитный WhatsApp + безлимитный WeChat и 1 ГБ Spotify», содержит три модуля.

JSON-представление
{
  "planName": string,
  "planId": string,
  "planCategory": enum (PlanCategory),
  "expirationTime": string,
  "planModules": [
    {
      object (PlanModule)
    }
  ],
  "planState": enum (PlanState)
}
Поля
planName

string

Название тарифного плана мобильной связи пользователя.

planId

string

Обязательно. Идентификатор плана, используемый для ссылки на план в предложениях и т. д.

planCategory

enum ( PlanCategory )

Предоплаченный или постоплатный тарифный план.

expirationTime

string ( Timestamp format)

Обязательно. Когда истекает срок действия плана. Для большинства планов это должно быть равно максимальному сроку действия всех модулей плана. Для планов с периодическим обновлением квоты модулей это должно быть общее время истечения срока действия плана, то есть время, когда модули плана перестают обновляться. Это поле следует опустить, если срок действия плана не истекает.

Метка времени в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти знаков после запятой. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

planModules[]

object ( PlanModule )

Подробная информация о модулях плана (подпланах).

planState

enum ( PlanState )

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

PlanCategory

Возможные типы категорий планов.

Перечисления
PLAN_CATEGORY_UNSPECIFIED Не указано.
PREPAID Предоплаченный план.
POSTPAID Постоплатный план.

PlanModule

Информация о каждом модуле тарифного плана (или подплане) внутри плана.

JSON-представление
{
  "coarseBalanceLevel": enum (BalanceLevel),
  "trafficCategories": [
    enum (PlanModuleTrafficCategory)
  ],
  "expirationTime": string,
  "overUsagePolicy": enum (OverUsagePolicy),
  "maxRateKbps": string,
  "description": string,
  "moduleName": string,
  "usedBytes": string,
  "planModuleState": enum (PlanState),
  "refreshPeriod": enum (RefreshPeriod),

  // Union field balance can be only one of the following:
  "byteBalance": {
    object (ByteQuota)
  },
  "timeBalance": {
    object (TimeQuota)
  }
  // End of list of possible types for union field balance.
}
Поля
coarseBalanceLevel

enum ( BalanceLevel )

Грубая информация о балансе.

trafficCategories[]

enum ( PlanModuleTrafficCategory )

Список категорий трафика, за которые будет взиматься плата по данному модулю плана.

expirationTime

string ( Timestamp format)

Обязательно. Срок действия модуля плана. Для модулей плана с периодически обновляемой квотой это время следующего обновления модуля. Это поле следует пропустить, если срок действия модуля плана не истекает.

Метка времени в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти знаков после запятой. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

overUsagePolicy

enum ( OverUsagePolicy )

Политика чрезмерного использования, например, ограничение.

maxRateKbps

string ( int64 format)

Максимальная скорость передачи данных, разрешенная этим модулем тарифного плана (в кбит/с). Фактическая скорость передачи данных находится в диапазоне от 0 до maxRateKbps в зависимости от условий сети. Отсутствие значения maxRateKbps или значение 0 означает, что для этого модуля тарифного плана регулирование не применяется.

description

string

Обязательно. Описание модуля плана может быть показано пользователю и должно быть близко к описанию этого модуля плана на рынке.

moduleName

string

Обязательно. Название модуля плана.

usedBytes

string ( int64 format)

Общее количество байтов, использованных пользователем из этого модуля плана.

planModuleState

enum ( PlanState )

Состояние модуля плана, например, активный, неактивный и т. д.

refreshPeriod

enum ( RefreshPeriod )

Период обновления данного модуля плана или REFRESH_PERIOD_NONE, если модуль плана не обновляет свою квоту. Модули плана, обновляющие квоту, делают это один раз за каждый период обновления.

balance поля Union. Обязательно. Информация о балансе модуля плана должна быть одной из следующих: byte_balance, time_balance, rough_balance_level. balance может быть только одним из следующих:
byteBalance

object ( ByteQuota )

Информация о балансе модуля плана в байтах. Для модулей, которые обновляются периодически, это поле отображает баланс байтов за период обновления.

timeBalance

object ( TimeQuota )

Информация о балансе модуля по времени. Для модулей, которые обновляются периодически, это поле отображает баланс времени за период обновления.

ByteQuota

Информация о квоте/балансе модуля плана на основе байтов.

JSON-представление
{
  "quotaBytes": string,
  "remainingBytes": string
}
Поля
quotaBytes

string ( int64 format)

Квота модуля в байтах. Для безлимитных тарифов её следует установить как 2^63 - 1 (9223372036854775807).

remainingBytes

string ( int64 format)

Требуется для уведомлений о низком балансе. Остаток квоты в байтах.

TimeQuota

Информация о квоте/балансе модуля временного плана.

JSON-представление
{
  "quotaMinutes": string,
  "remainingMinutes": string
}
Поля
quotaMinutes

string ( int64 format)

Квота модуля в минутах для повременного плана, например, 180 минут.

remainingMinutes

string ( int64 format)

Оставшийся баланс квоты в минутах для повременного плана, например, 40 минут.

BalanceLevel

Информация о балансе данных модуля грубого плана.

Перечисления
BALANCE_LEVEL_UNSPECIFIED Не указано.
NO_PLAN Нет тарифного плана.
OUT_OF_DATA Остаток данных равен нулю.
LOW_QUOTA Остаток данных (или оставшееся время) равен или меньше 10–25% от исходного остатка пакета (или времени). Операторы связи МОГУТ устанавливать точное пороговое значение для каждого пакета по своему усмотрению.
HIGH_QUOTA Остаток данных (или оставшееся время) превышает 10–25% от исходного остатка пакета (или времени). Операторы могут устанавливать точное пороговое значение для каждого пакета по своему усмотрению. Высокий остаток данных.

ПланМодульТрафикКатегория

Категория трафика модуля плана, которая описывает набор трафика приложения, попадающего в определенный модуль плана.

Перечисления
PLAN_MODULE_TRAFFIC_CATEGORY_UNSPECIFIED Не указано.
GENERIC Универсальный, применяется ко всему трафику.
VIDEO Весь видеотрафик.
VIDEO_BROWSING Трафик обнаружения видео (просмотра), который относится ко всему трафику видеоприложений, за исключением потоковой передачи видео/аудио.
VIDEO_OFFLINE Офлайн-видеотрафик, который представляет собой сумму VIDEO_BROWSING и офлайн-видео/аудиотрафика (не потокового вещания).
MUSIC Трафик музыкального приложения.
GAMING Трафик игровых приложений.
SOCIAL Трафик социальных приложений.
MESSAGING Трафик приложения для обмена сообщениями.
APP_STORE Трафик магазина приложений, например обновление или загрузка нового приложения.

Политика чрезмерного использования

Политика превышения квоты: что происходит, когда у пользователя заканчивается квота.

Перечисления
OVER_USAGE_POLICY_UNSPECIFIED Не указано.
THROTTLED Скорость ограничена.
BLOCKED Соединение заблокировано.
PAY_AS_YOU_GO Оплата по факту использования.

PlanState

Перечисление, представляющее различное состояние плана/модуля плана пользователя.

Перечисления
ACTIVE Plan/PlanModule активен, и пользователь может использовать данные, предлагаемые как часть модуля.
INACTIVE Модуль «План/План» неактивен, и пока у пользователя есть модуль, он не может использовать данные, входящие в его состав. Это может произойти, если модуль предоставляет данные только в определённое время суток или если пользователь приобрёл модуль, но он ещё не активирован.
EXPIRING_SOON Срок действия плана/PlanModule скоро истечёт. Вызывающему пользователю следует выбрать соответствующий уровень, чтобы определить, когда устанавливать это значение. Это автоматически означает, что план активен.
NEWLY_ACTIVE Plan/PlanModule, который ранее был неактивен или отсутствовал, только что был активирован. Это состояние следует использовать только в течение очень короткого периода после активации, в противном случае следует использовать состояние ACTIVE. Уведомления о состоянии тарифного плана, отправляемые с модулями NEWLY_ACTIVE, следует отправлять с коротким временем жизни (TTL), поскольку состояние NEWLY_ACTIVE очень быстро становится неточным.
EXPIRED Срок действия плана/модуля плана истек. Установка этого значения перечисления активирует уведомление об истечении срока действия плана.

RefreshPeriod

Представляет собой период обновления — регулярный интервал, через который происходит сброс модуля плана.

Перечисления
REFRESH_PERIOD_NONE Без периода обновления. Используется, когда модуль плана не повторяется.
DAILY Модуль плана обнуляется каждый день.
MONTHLY Модуль плана обнуляется каждый месяц.
BIWEEKLY Модуль плана обнуляется каждые две недели.
WEEKLY Модуль плана обнуляется каждую неделю.

Информация об аккаунте

Информация о балансе счета предоплаченного пользователя.

JSON-представление
{
  "accountBalance": {
    object (Money)
  },
  "loanBalance": {
    object (Money)
  },
  "unpaidLoan": {
    object (Money)
  },
  "accountBalanceStatus": enum (AccountBalanceStatus),
  "validUntil": string,
  "payAsYouGoCharge": {
    object (Money)
  },
  "accountTopUp": {
    object (Money)
  }
}
Поля
accountBalance

object ( Money )

Обязательно. Остаток средств на счете пользователя.

loanBalance

object ( Money )

Обязательно, если применимо. Остаток на счёте пользователя, пополненном денежным займом от оператора. Поле accountBalance (если присутствует) не включает этот баланс.

unpaidLoan

object ( Money )

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

accountBalanceStatus

enum ( AccountBalanceStatus )

Обязательно. Указывает состояние баланса счёта. В случае несоответствия времени validUntil и поля accountBalanceStatus используется accountBalanceStatus.

validUntil

string ( Timestamp format)

Обязательно. Срок действия баланса. В этом поле будет отображаться значение «Недействителен в течение

Метка времени в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти знаков после запятой. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

payAsYouGoCharge

object ( Money )

Сумма, потраченная пользователем при использовании тарифного плана в режиме оплаты по мере использования. Если это поле заполнено оператором при предоставлении информации об аккаунте GTAF, GTAF попытается отправить пользователю уведомление о том, что он тратит деньги в режиме оплаты по мере использования.

accountTopUp

object ( Money )

Обязательно для уведомления о пополнении счёта. Сумма, которую пользователь пополнил баланс своего счёта. Если это поле заполнено оператором при предоставлении информации об учётной записи в GTAF, GTAF попытается отправить пользователю уведомление о пополнении счёта.

Деньги

Представляет собой сумму денег с указанным типом валюты.

JSON-представление
{
  "currencyCode": string,
  "units": string,
  "nanos": integer
}
Поля
currencyCode

string

Трехбуквенный код валюты, определенный в ISO 4217.

units

string ( int64 format)

Целые единицы суммы. Например, если currencyCode"USD" , то 1 единица равна одному доллару США.

nanos

integer

Количество единиц нано (10^-9) от суммы. Значение должно быть в диапазоне от -999 999 999 до +999 999 999 включительно. Если units положительная, nanos должно быть положительным или нулевым. Если units равна нулю, nanos может быть положительным, нулевым или отрицательным. Если units отрицательная, nanos должно быть отрицательным или нулевым. Например, $-1,75 представляется как units = -1, а nanos = -750 000 000.

AccountBalanceStatus

Статус кошелька пользователя.

Перечисления
VALID Баланс счета пользователя действителен и может быть использован для совершения покупок.
INVALID Баланс счета пользователя недействителен и не может быть использован без внесения изменений в счет.

Совместимость с Ui

Перечисление, указывающее, может ли PlanStatus, которым вы делитесь, быть показан пользователю.

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

Тип уведомления

Тип уведомления, отправляемого пользователю настроек тарифного плана мобильной связи.

Перечисления
NOTIFICATION_UNDEFINED Неизвестный тип жанра уведомления
NOTIFICATION_LOW_BALANCE_WARNING Уведомление, предупреждающее пользователей о низком балансе
NOTIFICATION_DATA_EXPIRATION_WARNING Уведомление, предупреждающее пользователей об истечении срока действия тарифного плана
NOTIFICATION_OUT_OF_DATA Уведомление о том, что у пользователей закончились данные
NOTIFICATION_PLAN_ACTIVATION Уведомление о том, что купленный пользователем план теперь активен
NOTIFICATION_PAY_AS_YOU_GO Уведомление, информирующее пользователя о том, что он платит за данные по факту использования.
NOTIFICATION_ACCOUNT_TOP_UP Уведомление, информирующее пользователя о пополнении баланса его счета.
NOTIFICATION_DATA_EXPIRED Уведомление, информирующее пользователя об истечении срока действия его тарифного плана.

PlanInfoPerClient

Информация о тарифном плане, относящаяся к конкретному клиенту Google.

JSON-представление
{
  "youtube": {
    object (YouTube)
  },
  "androidSystemInfo": {
    object (AndroidSystemInfo)
  }
}
Поля
youtube

object ( YouTube )

Информация о плане, связанном с YouTube.

androidSystemInfo

object ( AndroidSystemInfo )

Информация о плане, относящаяся к системе Android.

Ютуб

Информация о тарифном плане для YouTube.

JSON-представление
{
  "rateLimitedStreaming": {
    object (RateLimitedStreaming)
  }
}
Поля
rateLimitedStreaming

object ( RateLimitedStreaming )

Функция потоковой передачи с учетом плана (PAS) YouTube, ограничивающая битрейт передаваемого видео.

RateLimitedStreaming

Информация о тарифном плане, позволяющая YouTube улучшить пользовательский опыт при потоковой передаче данных с ограниченной скоростью.

JSON-представление
{
  "maxMediaRateKbps": integer
}
Поля
maxMediaRateKbps

integer

Поддерживаемая скорость передачи данных YouTube для данного пользователя в кбит/с (тысячах бит в секунду).

AndroidSystemInfo

Информация о тарифном плане, относящаяся ко всей системе Android.

JSON-представление
{
  "cellularInfo": [
    {
      object (CellularInfo)
    }
  ]
}
Поля
cellularInfo[]

object ( CellularInfo )

Информация о сотовой связи для каждого типа подключения. Например, для каждого типа подключения, например, 4G, 5G и т. д., будет отдельное сообщение cellularInfo.

CellularInfo

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

JSON-представление
{
  "connectionType": enum (ConnectionType),
  "meteredness": enum (Meteredness)
}
Поля
connectionType

enum ( ConnectionType )

Тип соединения, которое оператор предоставляет пользователю.

meteredness

enum ( Meteredness )

Состояние дозируемости плана пользователя.

Тип соединения

Тип подключения: 2G, 3G, 4G

Перечисления
CONNECTION_TYPE_UNSPECIFIED Не указано.
CONNECTION_2_G 2G.
CONNECTION_3_G 3G.
CONNECTION_4_G 4G.
CONNECTION_5_G 5G.
CONNECTION_ALL Все типы.

Дозированность

Тип плана, который есть у пользователя

Перечисления
METEREDNESS_UNSPECIFIED GTAF не знает о состоянии измеренности тарифного плана пользователя.
METEREDNESS_UNMETERED У пользователя безлимитный тарифный план.
METEREDNESS_METERED У пользователя тарифный план с оплатой по счетчику.

CpidState

Перечисление для оператора, представляющее состояние CPID.

Перечисления
CPID_STATE_UNSPECIFIED Состояние CPID не указано. Это рассматривается как действительное состояние CPID.
CPID_INVALIDATED CPID становится недействительным, и клиент должен получить новый CPID из конечной точки CPID.

Методы

create

Позволяет оператору мобильной связи (идентифицируемому по уникальному номеру автономной системы (ASN)) добавлять новую запись PlanStatus для пользователя, которая будет использоваться определенным клиентом.