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 GB 移动流量,有效期 30 天”,也可以定义为一组组件(我们称之为方案模块)。例如,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)

用户方案的状态,例如有效、无效等。

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)

相应方案模块允许的最大数据速率(以 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)

基于时间的方案模块余额信息。对于定期刷新的模块,此字段表示每个刷新周期的时间余额。

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%。运营商可以根据自己的判断,确定每个数据包的确切阈值。数据平衡度高。

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 按用量付费。

PlanState

表示用户方案/方案模块的不同状态的枚举。

枚举
ACTIVE 方案/PlanModule 处于有效状态,用户可以使用作为模块一部分提供的数据。
INACTIVE 方案/方案模块处于非有效状态,虽然用户仍拥有该模块,但无法使用该模块中的数据。如果模块仅在一天中的特定时间提供数据,或者用户已购买模块但尚未激活,则可能会出现这种情况。
EXPIRING_SOON 相应方案/PlanModule 即将过期。调用方应选择适当的级别来确定何时设置此值。这会自动意味着相应方案处于有效状态。
NEWLY_ACTIVE 之前处于非活动状态或不存在的方案/PlanModule 刚刚被激活。此状态仅应在激活时间之后使用很短的时间,否则应改用 ACTIVE 状态。使用 NEWLY_ACTIVE 模块发送的数据流量方案状态通知应使用较短的 TTL,因为 NEWLY_ACTIVE 状态很快就会变得不准确。
EXPIRED 方案/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 将尝试向用户发送通知,告知其账号已充值。

Money

表示含有货币类型的金额。

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。

AccountBalanceStatus

用户钱包的状态。

枚举
VALID 用户账号余额有效,可用于购物。
INVALID 用户账号余额无效,必须更改账号才能使用。

UiCompatibility

表示所分享的 PlanStatus 是否可向用户显示。

枚举
UI_COMPATIBILITY_UNSPECIFIED 默认情况下,我们会假设 PlanStatus 与界面兼容。
UI_COMPATIBLE 表示整个 PlanStatus 都与界面兼容,并且可以将方案信息显示给用户。
UI_INCOMPATIBLE 表示 PlanStatus 与界面不兼容。字段可用于向用户发送通知,但不能用于向用户显示方案信息。

NotificationType

发送给移动流量套餐设置用户的通知类型。

枚举
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

与 YouTube 相关的数据流量方案信息。

JSON 表示法
{
  "rateLimitedStreaming": {
    object (RateLimitedStreaming)
  }
}
字段
rateLimitedStreaming

object (RateLimitedStreaming)

YouTube 流量感知型串流 (PAS) 功能,可限制所传送视频的比特率。

RateLimitedStreaming

数据流量套餐信息,以便 YouTube 提升受限速的流式传输用户体验。

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

integer

相应用户支持的 YouTube 比特率(以 kbps 为单位,即每秒传输的位数)。

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)

用户方案的按流量计费状态。

ConnectionType

连接类型: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 条目,以供特定客户端使用。