REST Resource: operators.clients.users.planStatus

Recurso: PlanStatus

PlanStatus contiene detalles de todos los paquetes de servicios móviles de nivel superior que compró un usuario.

Representación 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)
}
Campos
name

string

Es el nombre del recurso de PlanStatus con el siguiente formato: operators/{asn_id}/planStatuses/{userKey}. El nombre se ignora cuando se crea una entrada de PlanStatus.

plans[]

object (Plan)

Es la lista de planes que posee este usuario.

languageCode

string

Es obligatorio. El código de idioma BCP-47, como "en-US" o "sr-Latn". Para obtener más información, consulta http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.

expireTime

string (Timestamp format)

Es obligatorio. Es la fecha y hora en que la información del grupo de planes compartidos deja de estar actualizada. Después de este período, PlanStatus no se publicará en las aplicaciones. La hora de vencimiento debe ser posterior a la actual.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Es obligatorio. Fecha y hora en que el agente del plan de datos (DPA) recuperó la información del estado del plan de los sistemas de backend. Se puede usar para determinar qué tan reciente es la información del estado del plan. La hora de actualización debe ser anterior, pero no puede tener más de 30 días.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

title

string

Es el título del contrato que el usuario tiene con el operador. Se mostrará en el encabezado de la IU.

subscriberId

string

Es el identificador estable y único en el sistema del operador para identificar al usuario.

accountInfo

object (AccountInfo)

Se requiere para los usuarios prepagos. Es la información sobre el saldo de la cuenta del usuario.

uiCompatibility

enum (UiCompatibility)

Determina si el PlanStatus se puede mostrar al usuario en una interfaz de usuario. Cuando se establece en UI_INCOMPATIBLE, el PlanStatus se puede usar para enviar notificaciones al usuario, pero no para mostrarle la información del plan.

notifications[]

enum (NotificationType)

Contiene la lista de tipos de notificaciones que GTAF envía al usuario. GTAF ignora este campo si el llamador lo propaga.

planInfoPerClient

object (PlanInfoPerClient)

Es la información del plan de datos pertinente para un cliente de Google en particular.

cpidState

enum (CpidState)

Es el estado del CPID asociado con este estado del plan.

Plan

Son los detalles del plan para dispositivos móviles del usuario, que es el paquete de servicios para dispositivos móviles de nivel superior que compra un suscriptor. El plan puede ser tan simple como "10 GB de datos móviles por 30 días" o definirse como una colección de componentes (a los que nos referimos como módulos del plan). Por ejemplo, el plan 199 de ACME, que se describe como "2 GB de datos, WhatsApp ilimitado + WeChat ilimitado y 1 GB de Spotify", contiene tres módulos de plan.

Representación JSON
{
  "planName": string,
  "planId": string,
  "planCategory": enum (PlanCategory),
  "expirationTime": string,
  "planModules": [
    {
      object (PlanModule)
    }
  ],
  "planState": enum (PlanState)
}
Campos
planName

string

Nombre del plan para dispositivos móviles del usuario.

planId

string

Es obligatorio. Es el identificador del plan que se usa para hacer referencia a él durante las ofertas, etcétera.

planCategory

enum (PlanCategory)

Plan prepagado o pospagado

expirationTime

string (Timestamp format)

Es obligatorio. Fecha de vencimiento de este plan. En la mayoría de los planes, este valor debe ser igual al máximo de todos los tiempos de vencimiento específicos del módulo del plan. En el caso de los planes que actualizan periódicamente la cuota de módulos, debe ser la hora de vencimiento general del plan, es decir, la hora en la que los módulos del plan dejan de actualizarse. Este campo se debe omitir si el plan no vence.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

planModules[]

object (PlanModule)

Información detallada sobre los módulos del plan (subplanes)

planState

enum (PlanState)

Estado del plan del usuario, p.ej., activo, inactivo, etcétera.

PlanCategory

Son los tipos de categorías de planes posibles.

Enumeraciones
PLAN_CATEGORY_UNSPECIFIED Sin especificar.
PREPAID Plan prepagado.
POSTPAID Plan pospago

PlanModule

Es la información de cada módulo del plan de datos (o subplan) dentro de un plan.

Representación 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.
}
Campos
coarseBalanceLevel

enum (BalanceLevel)

Información general del saldo.

trafficCategories[]

enum (PlanModuleTrafficCategory)

Es la lista de categorías de tráfico que se cobrarán según este módulo del plan.

expirationTime

string (Timestamp format)

Es obligatorio. Es la hora de vencimiento específica del módulo del plan. Para los módulos del plan con cuota que se actualiza periódicamente, esta es la hora de la próxima actualización del módulo. Este campo se debe omitir si el módulo del plan no vence.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

overUsagePolicy

enum (OverUsagePolicy)

Política de uso excesivo, p.ej., se limitó la velocidad.

maxRateKbps

string (int64 format)

Es la velocidad de datos máxima permitida por este módulo del plan en Kbps. La tasa de datos real observada se encuentra entre 0 y maxRateKbps, según las condiciones de la red. Si se omite maxRateKbps o se establece en 0, se indica que no se debe realizar ninguna limitación para este módulo del plan.

description

string

Es obligatorio. Es la descripción del módulo del plan, que puede mostrarse al usuario y debe ser similar a la descripción de mercado de este módulo del plan.

moduleName

string

Es obligatorio. Es el nombre del módulo del plan.

usedBytes

string (int64 format)

Cantidad total de bytes que usó el usuario de este módulo del plan.

planModuleState

enum (PlanState)

Estado del módulo del plan, p.ej., activo, inactivo, etcétera.

refreshPeriod

enum (RefreshPeriod)

Es el período de actualización de este módulo del plan o REFRESH_PERIOD_NONE si el módulo del plan no actualiza su cuota. Los módulos de planificación que actualizan la cuota lo harán una vez por período de actualización.

Campo de unión balance. Es obligatorio. Es la información del balance del módulo de planificación y debe ser uno de los siguientes: byte_balance, time_balance o coarse_balance_level. Las direcciones (balance) solo pueden ser una de las siguientes opciones:
byteBalance

object (ByteQuota)

Es la información del saldo del módulo del plan basado en bytes. En el caso de los módulos que se actualizan periódicamente, este campo representa el saldo de bytes por período de actualización.

timeBalance

object (TimeQuota)

Es información sobre el saldo del módulo del plan basado en el tiempo. En el caso de los módulos que se actualizan periódicamente, este campo representa el saldo de tiempo por período de actualización.

ByteQuota

Es la información sobre la cuota o el saldo del módulo del plan basado en bytes.

Representación JSON
{
  "quotaBytes": string,
  "remainingBytes": string
}
Campos
quotaBytes

string (int64 format)

Es la cuota del módulo en bytes. En el caso de los planes ilimitados, este valor debe establecerse en 2^63 - 1 (9223372036854775807).

remainingBytes

string (int64 format)

Se requiere para las notificaciones de saldo bajo. Es el saldo de la cuota restante en bytes.

TimeQuota

Es información sobre la cuota o el saldo del módulo del plan basado en el tiempo.

Representación JSON
{
  "quotaMinutes": string,
  "remainingMinutes": string
}
Campos
quotaMinutes

string (int64 format)

Cuota del módulo en minutos para el plan basado en el tiempo, p.ej., 180 minutos

remainingMinutes

string (int64 format)

Saldo de cuota restante en minutos para el plan basado en el tiempo, p.ej., 40 minutos

BalanceLevel

Es información general sobre el balance de datos del módulo de planificación.

Enumeraciones
BALANCE_LEVEL_UNSPECIFIED Sin especificar.
NO_PLAN No se requiere un plan de datos.
OUT_OF_DATA El balance de datos es cero.
LOW_QUOTA El saldo de datos (o el tiempo restante) es igual o inferior al 10-25% del saldo (o tiempo) original del paquete. Los operadores PUEDEN determinar el umbral exacto para cada paquete según lo consideren apropiado.
HIGH_QUOTA El saldo de datos (o el tiempo restante) es más del 10% al 25% del saldo (o tiempo) original del paquete. Los operadores PUEDEN determinar el umbral exacto para cada paquete según lo consideren apropiado. El saldo de datos es alto.

PlanModuleTrafficCategory

Es la categoría de tráfico del módulo de planificación, que describe el conjunto de tráfico de la aplicación que pertenece a un módulo de planificación en particular.

Enumeraciones
PLAN_MODULE_TRAFFIC_CATEGORY_UNSPECIFIED Sin especificar.
GENERIC Es genérico y se aplica a todo el tráfico.
VIDEO Todo el tráfico de video
VIDEO_BROWSING Tráfico de descubrimiento de video (navegación), que se refiere a todo el tráfico de la app de video, excepto la parte de transmisión de audio o video
VIDEO_OFFLINE Tráfico sin conexión de video, que es la suma del tráfico de VIDEO_BROWSING y el tráfico sin conexión de audio o video (no de transmisión).
MUSIC Tráfico de la app de música
GAMING Tráfico de la app de juegos.
SOCIAL Tráfico de apps sociales
MESSAGING Tráfico de la app de mensajería
APP_STORE Tráfico de la tienda de aplicaciones, como la actualización o descarga de una app nueva

OverUsagePolicy

Política de uso excesivo: Qué sucede cuando el usuario se queda sin cuota.

Enumeraciones
OVER_USAGE_POLICY_UNSPECIFIED Sin especificar.
THROTTLED La velocidad está limitada.
BLOCKED La conexión está bloqueada.
PAY_AS_YOU_GO Pago por uso

PlanState

Es una enumeración que representa los diferentes estados del plan o módulo del plan del usuario.

Enumeraciones
ACTIVE Plan/PlanModule está activo y el usuario puede usar los datos que se ofrecen como parte del módulo.
INACTIVE El plan o el módulo del plan están inactivos y, si bien el usuario aún tiene el módulo, no puede usar los datos que forman parte de él. Esto podría suceder si el módulo solo ofrece datos en ciertos momentos del día o si el usuario compró un módulo, pero aún no está activado.
EXPIRING_SOON El Plan o PlanModule vencerá pronto. La entidad llamadora debe elegir el nivel adecuado para determinar cuándo establecer este valor. Esto significa automáticamente que el plan está activo.
NEWLY_ACTIVE Se acaba de activar el Plan o PlanModule que antes estaba inactivo o no existía. Este estado solo se debe usar durante un período muy corto después de la hora de activación. De lo contrario, se debe usar el estado ACTIVE. Las notificaciones de estado del plan de datos que se envían con módulos NEWLY_ACTIVE deben tener un TTL corto, ya que el estado NEWLY_ACTIVE dejará de ser preciso muy rápidamente.
EXPIRED El Plan o PlanModule venció. Si se establece este valor de enumeración, se activa una notificación de vencimiento del plan.

RefreshPeriod

Representa un período de actualización, el intervalo regular en el que se restablece un módulo del plan.

Enumeraciones
REFRESH_PERIOD_NONE No hay período de actualización. Se usa cuando el módulo del plan no es recurrente.
DAILY El módulo del plan se restablece todos los días.
MONTHLY El módulo del plan se restablece todos los meses.
BIWEEKLY El módulo de plan se restablece cada dos semanas.
WEEKLY El módulo de plan se restablece todas las semanas.

AccountInfo

Es la información sobre el saldo de la cuenta del usuario prepagado.

Representación JSON
{
  "accountBalance": {
    object (Money)
  },
  "loanBalance": {
    object (Money)
  },
  "unpaidLoan": {
    object (Money)
  },
  "accountBalanceStatus": enum (AccountBalanceStatus),
  "validUntil": string,
  "payAsYouGoCharge": {
    object (Money)
  },
  "accountTopUp": {
    object (Money)
  }
}
Campos
accountBalance

object (Money)

Es obligatorio. Es el saldo de la cuenta que queda en la cuenta del usuario.

loanBalance

object (Money)

Obligatorio si corresponde. Es el saldo restante en la cuenta de usuario que se agregó con un préstamo monetario del operador. Si está presente, el campo accountBalance no incluye este saldo.

unpaidLoan

object (Money)

Es la cantidad de dinero que el usuario le debe al operador debido a préstamos monetarios.

accountBalanceStatus

enum (AccountBalanceStatus)

Es obligatorio. Indica el estado del saldo de la cuenta. En caso de que no coincidan la fecha y hora de validUntil y el campo accountBalanceStatus, usaremos accountBalanceStatus.

validUntil

string (Timestamp format)

Es obligatorio. Es la fecha y hora hasta la que es válido el saldo de la cuenta. Este campo se usará para mostrar el mensaje "No válido en

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

payAsYouGoCharge

object (Money)

Es la cantidad de dinero que el usuario gastó usando el plan en estado de prepago. Si la empresa de transporte completa este campo cuando comparte la información de la cuenta con GTAF, GTAF intentará enviar una notificación al usuario para indicarle que está gastando dinero en un estado de pago por uso.

accountTopUp

object (Money)

Es obligatorio para la notificación de recarga de la cuenta. Es la cantidad de dinero que el usuario agregó a su saldo de cuenta. Si la empresa de transporte completa este campo cuando comparte la información de la cuenta con la GTAF, la GTAF intentará enviar una notificación al usuario para indicarle que se agregó saldo a su cuenta.

Dinero

Representa un importe de dinero con su tipo de moneda.

Representación JSON
{
  "currencyCode": string,
  "units": string,
  "nanos": integer
}
Campos
currencyCode

string

El código de moneda de 3 letras definido en el estándar ISO 4217.

units

string (int64 format)

La unidad entera del importe. Por ejemplo, si currencyCode es "USD", 1 unidad es un dólar estadounidense.

nanos

integer

Número de unidades nano (10^-9) del importe. Debe ser un valor entre -999,999,999 y +999,999,999. Si units es positivo, nanos debe ser positivo o cero. Si units es cero, nanos puede ser positivo, cero o negativo. Si units es negativo, nanos debe ser negativo o cero. Por ejemplo, –$1.75 se representa como units=-1 y nanos=-750,000,000.

AccountBalanceStatus

Es el estado de la billetera del usuario.

Enumeraciones
VALID El saldo de la cuenta del usuario es válido y se puede usar para realizar compras.
INVALID El saldo de la cuenta de usuario no es válido y no se puede usar sin realizar cambios en la cuenta.

UiCompatibility

Es un enum que representa si el PlanStatus que se comparte se puede mostrar al usuario.

Enumeraciones
UI_COMPATIBILITY_UNSPECIFIED De forma predeterminada, supondremos que el PlanStatus es compatible con la IU.
UI_COMPATIBLE Indica que todo el PlanStatus es compatible con la IU y que se puede mostrar la información del plan al usuario.
UI_INCOMPATIBLE Indica que PlanStatus no es compatible con la IU. Los campos se pueden usar para enviar notificaciones al usuario, pero no para mostrarle información del plan.

NotificationType

Es el tipo de notificación que se envía al usuario de la configuración del plan de datos móviles.

Enumeraciones
NOTIFICATION_UNDEFINED Tipo de género de notificación desconocido
NOTIFICATION_LOW_BALANCE_WARNING Notificación que advierte a los usuarios sobre el saldo bajo
NOTIFICATION_DATA_EXPIRATION_WARNING Notificación que advierte a los usuarios que el plan de datos está por vencer
NOTIFICATION_OUT_OF_DATA Notificación de que los usuarios se quedaron sin datos
NOTIFICATION_PLAN_ACTIVATION Notificación de que el plan comprado por un usuario ya está activo
NOTIFICATION_PAY_AS_YOU_GO Es una notificación que informa al usuario que está pagando por los datos en un estado de prepago.
NOTIFICATION_ACCOUNT_TOP_UP Notificación que informa al usuario que recargó el saldo de su cuenta.
NOTIFICATION_DATA_EXPIRED Notificación que informa al usuario que venció su plan de datos.

PlanInfoPerClient

Es la información del plan de datos pertinente para un cliente de Google en particular.

Representación JSON
{
  "youtube": {
    object (YouTube)
  },
  "androidSystemInfo": {
    object (AndroidSystemInfo)
  }
}
Campos
youtube

object (YouTube)

Es la información del plan relacionada con YouTube.

androidSystemInfo

object (AndroidSystemInfo)

Es la información del plan relevante para el sistema Android.

YouTube

Es la información del plan de datos relevante para YouTube.

Representación JSON
{
  "rateLimitedStreaming": {
    object (RateLimitedStreaming)
  }
}
Campos
rateLimitedStreaming

object (RateLimitedStreaming)

Función de transmisión adaptable al plan (PAS) de YouTube, que limita la tasa de bits del video que se entrega.

RateLimitedStreaming

Información del plan de datos para permitir que YouTube mejore la experiencia del usuario de transmisión con límite de velocidad.

Representación JSON
{
  "maxMediaRateKbps": integer
}
Campos
maxMediaRateKbps

integer

Es la tasa de bits de YouTube admitida para este usuario en Kbps (miles de bits por segundo).

AndroidSystemInfo

Es la información del plan de datos pertinente para todo el sistema Android.

Representación JSON
{
  "cellularInfo": [
    {
      object (CellularInfo)
    }
  ]
}
Campos
cellularInfo[]

object (CellularInfo)

Información celular por tipo de conexión Por ejemplo, habrá un mensaje cellularInfo para cada tipo de conexión, como 4G, 5G, etcétera.

CellularInfo

Es la información sobre la conexión celular que el plan ofrece al usuario.

Representación JSON
{
  "connectionType": enum (ConnectionType),
  "meteredness": enum (Meteredness)
}
Campos
connectionType

enum (ConnectionType)

Es el tipo de conexión que el operador proporciona al usuario.

meteredness

enum (Meteredness)

Es el estado de medición del plan del usuario.

Tipo de conexión

Tipo de conexión: 2G, 3G, 4G

Enumeraciones
CONNECTION_TYPE_UNSPECIFIED Sin especificar.
CONNECTION_2_G 2G.
CONNECTION_3_G 3G.
CONNECTION_4_G 4G.
CONNECTION_5_G 5G.
CONNECTION_ALL Todos los géneros

Medición de uso

Tipo de plan que tiene el usuario

Enumeraciones
METEREDNESS_UNSPECIFIED GTAF no conoce el estado de medición del plan del usuario.
METEREDNESS_UNMETERED El usuario tiene un plan sin medición.
METEREDNESS_METERED El usuario tiene un plan medido.

CpidState

Es una enumeración para que el operador represente el estado del CPID.

Enumeraciones
CPID_STATE_UNSPECIFIED El estado del CPID no está especificado. Esto se trata como si el CPID fuera válido.
CPID_INVALIDATED El CPID deja de ser válido y el cliente debe recuperar un CPID nuevo del extremo de CPID.

Métodos

create

Permite que un operador de telefonía celular (identificado por su número de sistema autónomo [ASN] único) agregue una nueva entrada de PlanStatus para que un usuario la use con un cliente en particular.