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 的状态。

方案

用户的移动套餐(订阅者购买的顶级移动服务套餐)的详细信息。套餐可以很简单,例如“30 天 10 GB 的移动流量”,也可以定义为一系列组件(我们称之为套餐模块)。例如,ACME 计划 199(称为“2GB 数据、无限 WhatsApp + 无限微信以及 1GB 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)

用户计划的状态,例如“有效”、“无效”等。

方案类别

可能的方案类别类型。

枚举
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)(即“祖鲁时”)格式,分辨率为纳秒级,最多包含九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

overUsagePolicy

enum (OverUsagePolicy)

过度使用政策(例如:受到限制)。

maxRateKbps

string (int64 format)

此计划模块允许的最大数据速率 (Kbps)。观察到的实际数据率介于 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、coarse_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%。运营商可以根据自己的需要确定每个礼包的确切阈值。流量余额高。

计划模块流量类别

计划模块流量类别,用于说明属于特定计划模块的一组应用流量。

枚举
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 按用量计费。

计划状态

表示用户计划/计划模块的不同状态的枚举。

枚举
ACTIVE 方案/PlanModule 处于活动状态,并且用户可以使用在模块中提供的数据。
INACTIVE 计划/计划模块处于非活动状态,并且当用户仍然拥有该模块时,用户无法使用属于该模块的数据。如果模块仅在一天的某些时段提供数据,或者用户已购买模块但尚未激活,就可能会发生这种情况。
EXPIRING_SOON Plan/PlanModule 即将到期。调用方应选择适当的级别来确定何时设置此值。这会自动意味着该方案处于有效状态。
NEWLY_ACTIVE 之前处于无效或不存在的方案/PlanModule 刚刚激活。此状态只能在启用时间后的一小段时间内使用,否则应改为使用 ACTIVE 状态。使用 NEWLY_ACTIVE 模块发送的流量套餐状态通知应具有较短的 TTL,因为 NEWLY_ACTIVE 状态很快就会变得不准确。
EXPIRED Plan/PlanModule 已过期。设置此枚举值会触发方案过期通知。

RefreshPeriod

表示刷新周期,即计划模块重置的固定时间间隔。

枚举
REFRESH_PERIOD_NONE 无刷新周期。在方案模块不周期性时使用。
DAILY 方案模块每天都会重置。
MONTHLY 方案模块每月重置。
BIWEEKLY 方案模块每两周重置一次。
WEEKLY 方案模块每周重置。

AccountInfo

关于预付费用户帐号余额的信息。

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 中定义的由 3 个字母组成的货币代码。

units

string (int64 format)

金额的整数单位。例如,如果 currencyCode"USD",则 1 单位就是一美元。

nanos

integer

金额的纳诺 (10^-9) 单位数。这个值必须在 -999999999(含)和 +999999999(含)之间。如果 units 是正数,nanos 必须是正数或零。如果 units 为零,nanos 可以是正数、零或负数。如果 units 是负数,nanos 必须是负数或零。例如 $-1.75 表示为 units=-1 和 nanos=-750000000。

帐号余额状态

用户电子钱包的状态。

枚举
VALID 用户帐号余额有效,可用于购物。
INVALID 用户帐号余额无效,未对帐号进行任何更改即可使用帐号余额。

界面兼容性

表示是否可以向用户显示的 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 计划感知流式传输 (PAS) 功能,用于限制正在传输的视频的码率。

速率限制流

流量套餐信息,可让 YouTube 提升受限的直播用户体验。

JSON 表示法
{
  "maxMediaRateKbps": integer
}
字段
maxMediaRateKbps

integer

该用户的 YouTube 比特率,单位为 kbps(每秒 1000 位数)。

Android 系统信息

与整个 Android 系统相关的流量套餐信息。

JSON 表示法
{
  "cellularInfo": [
    {
      object (CellularInfo)
    }
  ]
}
字段
cellularInfo[]

object (CellularInfo)

每种连接类型的移动网络信息。例如,系统会针对每种网络连接类型(例如 4G、5G 等)显示一条移动数据网络信息。

移动网络信息

套餐为用户提供的移动网络连接的相关信息。

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) 识别)添加新的方案状态条目,以供特定的客户使用。