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 "Zulu" с разрешением в наносекунды и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

updateTime

string ( Timestamp format)

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

Временная метка в формате RFC3339 UTC "Zulu" с разрешением в наносекунды и до девяти дробных цифр. Примеры: "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 "Zulu" с разрешением в наносекунды и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

planModules[]

object ( PlanModule )

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

planState

enum ( PlanState )

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

ПланКатегория

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

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

ПланМодуль

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

Представление 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 "Zulu" с разрешением в наносекунды и до девяти дробных цифр. Примеры: "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 поля Союза. Необходимый. Информация о балансе модуля плана должна быть одной из следующих: byte_balance, time_balance,ough_balance_level. balance может быть только одним из следующих:
byteBalance

object ( ByteQuota )

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

timeBalance

object ( TimeQuota )

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

БайтКвота

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

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

string ( int64 format)

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

remainingBytes

string ( int64 format)

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

квота времени

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

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

string ( int64 format)

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

remainingMinutes

string ( int64 format)

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

Уровень баланса

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

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

PlanModuleTrafficCategory

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

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

OverUsagePolicy

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

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

ПланСостояние

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

перечисления
ACTIVE Plan/PlanModule активен, и пользователь может использовать данные, предлагаемые как часть модуля.
INACTIVE Модуль Plan/Plan неактивен, и пока у пользователя все еще есть модуль, пользователь не может использовать данные, являющиеся частью модуля. Это может произойти, если модуль предлагает данные только в определенное время дня или если пользователь приобрел модуль, но он еще не активирован.
EXPIRING_SOON Срок действия Plan/PlanModule скоро истечет. Вызывающий должен выбрать соответствующий уровень для определения того, когда устанавливать это значение. Это автоматически означает, что план активен.
NEWLY_ACTIVE Plan/PlanModule, который ранее был неактивным или несуществующим, только что был активирован. Это состояние следует использовать только в течение очень короткого периода после времени активации, в противном случае вместо него следует использовать состояние АКТИВНО. Уведомления о статусе тарифного плана, отправляемые с модулями NEWLY_ACTIVE, следует отправлять с коротким TTL, так как статус NEWLY_ACTIVE очень быстро станет неточным.
EXPIRED Срок действия плана/планмодуля истек. Установка этого значения перечисления активирует уведомление об истечении срока действия плана.

ОбновитьПериод

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

перечисления
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 "Zulu" с разрешением в наносекунды и до девяти дробных цифр. Примеры: "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 000 000.

Состояние Баланса Аккаунта

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

перечисления
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 Уведомление, информирующее пользователя о том, что срок действия его тарифного плана истек.

ПланИнфоПерКлиент

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

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

object ( YouTube )

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

androidSystemInfo

object ( AndroidSystemInfo )

Планируйте информацию, относящуюся к системе Android.

YouTube

Информация о тарифном плане, имеющая отношение к YouTube.

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

object ( RateLimitedStreaming )

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

RateLimitedStreaming

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

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

integer

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

Информация о системе Android

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

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

object ( CellularInfo )

Информация о сотовой связи для каждого типа подключения. Например, для каждого типа подключения, такого как 4G, 5G и т. д., будет одно сообщение 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 для пользователя, который будет использоваться конкретным клиентом.