REST Resource: operators.clients.users.planStatus

Recurso: PlanStatus

PlanStatus contém detalhes de todos os pacotes de serviços móveis de nível superior que um usuário comprou.

Representação 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

O nome do recurso do PlanStatus no seguinte formato: operators/{asn_id}/planStatuses/{userKey}. O nome é ignorado ao criar uma entrada PlanStatus.

plans[]

object (Plan)

Lista de planos de propriedade deste usuário.

languageCode

string

Obrigatório. O código de idioma BCP-47, como "pt-BR" ou "en-US". Para mais informações, consulte http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.

expireTime

string (Timestamp format)

Obrigatório. O momento em que as informações do grupo de planos compartilhados ficam desatualizadas. PlanStatus não será veiculado para aplicativos após esse período. O horário de expiração precisa estar no futuro.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Obrigatório. Hora em que o agente do plano de dados (DPA, na sigla em inglês) buscou as informações de status do plano nos sistemas de back-end. Pode ser usado para determinar a atualização das informações de status do plano. O horário de atualização precisa ser no passado, mas não pode ter mais de 30 dias.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

title

string

Título do contrato que o usuário tem com a operadora. Ele vai aparecer no cabeçalho da interface.

subscriberId

string

Identificador exclusivo e estável no sistema da operadora para identificar o usuário.

accountInfo

object (AccountInfo)

Necessário para usuários pré-pagos. Informações sobre o saldo da conta do usuário.

uiCompatibility

enum (UiCompatibility)

Determina se o PlanStatus pode ser mostrado ao usuário em uma interface. Quando definido como UI_INCOMPATIBLE, o PlanStatus pode ser usado para enviar notificações ao usuário, mas não para mostrar as informações do plano.

notifications[]

enum (NotificationType)

Contém a lista de tipos de notificações enviadas ao usuário pelo GTAF. A GTAF ignora esse campo se ele for preenchido pelo caller.

planInfoPerClient

object (PlanInfoPerClient)

Informações do plano de dados relevantes para um determinado cliente do Google.

cpidState

enum (CpidState)

Status do CPID associado a este status do plano.

Plano

Detalhes do plano de celular do usuário, que é o pacote de serviços móveis de nível superior que um assinante compra. O plano pode ser tão simples quanto "10 GB de dados móveis por 30 dias" ou pode ser definido como uma coleção de componentes (que chamamos de módulos de plano). Por exemplo, o plano 199 da ACME, descrito como "2 GB de dados, WhatsApp ilimitado + WeChat ilimitado e 1 GB de Spotify", contém três módulos de plano.

Representação JSON
{
  "planName": string,
  "planId": string,
  "planCategory": enum (PlanCategory),
  "expirationTime": string,
  "planModules": [
    {
      object (PlanModule)
    }
  ],
  "planState": enum (PlanState)
}
Campos
planName

string

Nome do plano móvel do usuário.

planId

string

Obrigatório. Identificador do plano, usado para se referir a ele durante ofertas etc.

planCategory

enum (PlanCategory)

Plano pré-pago ou pós-pago.

expirationTime

string (Timestamp format)

Obrigatório. Quando este plano expira. Para a maioria dos planos, isso precisa ser igual ao máximo de todos os tempos de expiração específicos do módulo do plano. Para planos que atualizam periodicamente a cota de módulos, esse deve ser o tempo geral de expiração do plano, o momento em que os módulos do plano param de ser atualizados. Esse campo precisa ser omitido se o plano não expirar.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

planModules[]

object (PlanModule)

Informações detalhadas sobre os módulos do plano (subplanos).

planState

enum (PlanState)

Estado do plano do usuário, por exemplo, ativo, inativo etc.

PlanCategory

Possíveis tipos de categoria de plano.

Enums
PLAN_CATEGORY_UNSPECIFIED Não especificado.
PREPAID Plano pré-pago.
POSTPAID Plano pós-pago.

PlanModule

Informações de cada módulo de plano de dados (ou subplano) dentro de um plano.

Representação 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)

Informações gerais sobre o saldo.

trafficCategories[]

enum (PlanModuleTrafficCategory)

Lista de categorias de tráfego que serão cobradas de acordo com este módulo do plano.

expirationTime

string (Timestamp format)

Obrigatório. Tempo de expiração específico do módulo do plano. Para módulos de plano com cota que é atualizada periodicamente, esse é o horário da próxima atualização do módulo. Esse campo precisa ser omitido se o módulo do plano não expirar.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

overUsagePolicy

enum (OverUsagePolicy)

Política de uso excessivo, por exemplo, limitada.

maxRateKbps

string (int64 format)

Taxa máxima de dados permitida por este módulo de plano em Kbps. A taxa de dados real observada fica entre 0 e maxRateKbps, dependendo das condições da rede. Omitir maxRateKbps ou definir como 0 indica que nenhuma limitação será realizada para este módulo de plano.

description

string

Obrigatório. Descrição do módulo de plano, que pode ser mostrada ao usuário e precisa ser semelhante à descrição de mercado desse módulo.

moduleName

string

Obrigatório. Nome do módulo do plano.

usedBytes

string (int64 format)

Número total de bytes usados pelo usuário neste módulo do plano.

planModuleState

enum (PlanState)

Estado do módulo do plano, por exemplo, ativo, inativo etc.

refreshPeriod

enum (RefreshPeriod)

O período de atualização deste módulo de plano ou REFRESH_PERIOD_NONE se o módulo não atualizar a cota. Os módulos de plano que atualizam a cota fazem isso uma vez a cada período de atualização.

Campo de união balance. Obrigatório. Informações de saldo do módulo do plano, que precisam ser uma das seguintes opções: byte_balance, time_balance, coarse_balance_level. balance pode ser apenas de um dos tipos a seguir:
byteBalance

object (ByteQuota)

Informações sobre o saldo do módulo do plano baseado em bytes. Para módulos que são atualizados periodicamente, esse campo representa o saldo de bytes por período de atualização.

timeBalance

object (TimeQuota)

Informações sobre o saldo do módulo de plano com base no tempo. Para módulos que são atualizados periodicamente, esse campo representa o saldo de tempo por período de atualização.

ByteQuota

Informações de cota/saldo do módulo do plano baseado em bytes.

Representação JSON
{
  "quotaBytes": string,
  "remainingBytes": string
}
Campos
quotaBytes

string (int64 format)

Cota do módulo em bytes. Para planos ilimitados, defina como 2^63 - 1 (9223372036854775807).

remainingBytes

string (int64 format)

Necessário para notificações de saldo baixo. Saldo restante da cota em bytes.

TimeQuota

Informações de cota/saldo do módulo de plano baseado em tempo.

Representação JSON
{
  "quotaMinutes": string,
  "remainingMinutes": string
}
Campos
quotaMinutes

string (int64 format)

Cota de módulo em minutos para plano baseado em tempo, por exemplo, 180 minutos.

remainingMinutes

string (int64 format)

Saldo restante da cota em minutos para um plano baseado em tempo, por exemplo, 40 minutos.

BalanceLevel

Informações gerais sobre o saldo de dados do módulo de plano.

Enums
BALANCE_LEVEL_UNSPECIFIED Não especificado.
NO_PLAN Sem plano de dados.
OUT_OF_DATA O saldo de dados é zero.
LOW_QUOTA O saldo de dados (ou tempo restante) é igual ou inferior a 10 a 25% do saldo (ou tempo) original do pacote. As transportadoras PODEM determinar o limite exato para cada pacote conforme considerarem adequado.
HIGH_QUOTA O saldo de dados (ou tempo restante) é mais de 10 a 25% do saldo (ou tempo) original do pacote. As transportadoras PODEM determinar o limite exato para cada pacote conforme considerarem adequado. O saldo de dados está alto.

PlanModuleTrafficCategory

Categoria de tráfego do módulo de plano, que descreve o conjunto de tráfego de aplicativos que se enquadra em um módulo de plano específico.

Enums
PLAN_MODULE_TRAFFIC_CATEGORY_UNSPECIFIED Não especificado.
GENERIC Genérico, aplicável a todo o tráfego.
VIDEO Todo o tráfego de vídeo.
VIDEO_BROWSING Tráfego de descoberta de vídeo (navegação), que se refere a todo o tráfego de apps de vídeo, exceto a parte de streaming de vídeo/áudio.
VIDEO_OFFLINE Tráfego off-line de vídeo, que é a soma de VIDEO_BROWSING e tráfego off-line de vídeo/áudio (não streaming).
MUSIC Tráfego de apps de música.
GAMING Tráfego de apps de jogos.
SOCIAL Tráfego de apps sociais.
MESSAGING Tráfego do app de mensagens.
APP_STORE Tráfego da app store, como atualizar ou baixar um novo app.

OverUsagePolicy

Política de uso excessivo: o que acontece quando o usuário fica sem cota.

Enums
OVER_USAGE_POLICY_UNSPECIFIED Não especificado.
THROTTLED A velocidade é limitada.
BLOCKED A conexão está bloqueada.
PAY_AS_YOU_GO Pague pelo que usar.

PlanState

Enum que representa diferentes estados do plano/módulo de plano do usuário.

Enums
ACTIVE O Plan/PlanModule está ativo, e o usuário pode usar os dados oferecidos como parte do módulo.
INACTIVE O plano/módulo do plano está inativo, e embora o usuário ainda tenha o módulo, ele não pode usar os dados que fazem parte dele. Isso pode acontecer se o módulo só oferecer dados em determinados horários do dia ou se o usuário tiver comprado um módulo, mas ele ainda não estiver ativado.
EXPIRING_SOON O Plan/PlanModule vai expirar em breve. O caller precisa escolher o nível adequado para determinar quando definir esse valor. Isso significa que o plano está ativo.
NEWLY_ACTIVE O Plan/PlanModule que estava inativo ou não existia foi ativado. Esse estado só deve ser usado por um período muito curto após o horário de ativação. Caso contrário, use o estado "ACTIVE". As notificações de status do plano de dados enviadas com módulos NEWLY_ACTIVE precisam ter um TTL curto, já que o status NEWLY_ACTIVE se torna impreciso muito rapidamente.
EXPIRED O Plan/PlanModule expirou. Definir esse valor de enumeração aciona uma notificação de plano expirado.

RefreshPeriod

Representa um período de atualização, o intervalo regular em que um módulo de plano é redefinido.

Enums
REFRESH_PERIOD_NONE Sem período de atualização. Usado quando o módulo de plano não é recorrente.
DAILY O módulo de plano é redefinido todos os dias.
MONTHLY O módulo do plano é redefinido todos os meses.
BIWEEKLY O módulo de plano é redefinido a cada duas semanas.
WEEKLY O módulo de plano é redefinido a cada semana.

AccountInfo

Informações sobre o saldo da conta de um usuário pré-pago.

Representação 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)

Obrigatório. Saldo restante na conta do usuário.

loanBalance

object (Money)

Obrigatório, se aplicável. Saldo restante na conta de usuário adicionado por um empréstimo monetário da operadora. Se presente, o campo "accountBalance" não inclui esse saldo.

unpaidLoan

object (Money)

Valor que o usuário deve à operadora devido a empréstimos monetários.

accountBalanceStatus

enum (AccountBalanceStatus)

Obrigatório. Indica o status do saldo da conta. Em caso de incompatibilidade entre o horário validUntil e o campo accountBalanceStatus, usamos accountBalanceStatus.

validUntil

string (Timestamp format)

Obrigatório. O período de validade do saldo da conta. Esse campo será usado para mostrar "Inválido em

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

payAsYouGoCharge

object (Money)

O valor gasto pelo usuário ao usar o plano no estado de pagamento conforme o uso. Se esse campo for preenchido pela transportadora ao compartilhar informações da conta com o GTAF, o GTAF vai tentar enviar uma notificação ao usuário indicando que ele está gastando dinheiro em um estado de pagamento conforme o uso.

accountTopUp

object (Money)

Obrigatório para a notificação de recarga da conta. O valor que o usuário adicionou ao saldo da conta. Se esse campo for preenchido pela transportadora ao compartilhar informações da conta com o GTAF, o GTAF vai tentar enviar uma notificação ao usuário indicando que a conta dele recebeu uma recarga.

Dinheiro

Representa um montante em dinheiro com o respectivo tipo de moeda.

Representação JSON
{
  "currencyCode": string,
  "units": string,
  "nanos": integer
}
Campos
currencyCode

string

O código de moeda de três letras definido no ISO 4217.

units

string (int64 format)

As unidades inteiras do montante. Por exemplo, se currencyCode for "USD", então 1 unidade equivalerá a um dólar americano.

nanos

integer

Número de unidades nano (10^-9) do montante. É necessário que o valor fique entre -999.999.999 e +999.999.999 (inclusive os dois limites). Se units for positivo, nanos será positivo ou zero. Se units for zero, nanos poderá ser positivo, zero ou negativo. Se units for negativo, nanos será negativo ou zero. Por exemplo,US $-1,75 é representado como units=-1 e nanos=-750.000.000.

AccountBalanceStatus

Status da carteira do usuário.

Enums
VALID O saldo da conta de usuário é válido e pode ser usado para fazer compras.
INVALID O saldo da conta de usuário é inválido e não pode ser usado sem fazer mudanças na conta.

UiCompatibility

Enum que representa se o PlanStatus compartilhado pode ser mostrado ao usuário.

Enums
UI_COMPATIBILITY_UNSPECIFIED Por padrão, vamos presumir que o PlanStatus é compatível com a interface.
UI_COMPATIBLE Indica que todo o PlanStatus é compatível com a interface e que as informações do plano podem ser mostradas ao usuário.
UI_INCOMPATIBLE Indica que o PlanStatus não é compatível com a interface. Os campos podem ser usados para enviar notificações ao usuário, mas não para mostrar informações do plano.

NotificationType

O tipo de notificação enviada ao usuário das configurações do plano de dados móveis.

Enums
NOTIFICATION_UNDEFINED Tipo de gênero de notificação desconhecido
NOTIFICATION_LOW_BALANCE_WARNING Notificação que avisa os usuários sobre saldo baixo
NOTIFICATION_DATA_EXPIRATION_WARNING Notificação que avisa aos usuários que o plano de dados vai expirar
NOTIFICATION_OUT_OF_DATA Notificação de que os usuários estão sem dados
NOTIFICATION_PLAN_ACTIVATION Notificação de que o plano comprado por um usuário está ativo
NOTIFICATION_PAY_AS_YOU_GO Uma notificação informando ao usuário que ele está pagando por dados em um estado de pagamento conforme o uso.
NOTIFICATION_ACCOUNT_TOP_UP Uma notificação informando que o usuário recarregou o saldo da conta.
NOTIFICATION_DATA_EXPIRED Uma notificação informando ao usuário que o plano de dados expirou.

PlanInfoPerClient

Informações do plano de dados relevantes para um determinado cliente do Google.

Representação JSON
{
  "youtube": {
    object (YouTube)
  },
  "androidSystemInfo": {
    object (AndroidSystemInfo)
  }
}
Campos
youtube

object (YouTube)

Informações sobre planos relacionados ao YouTube.

androidSystemInfo

object (AndroidSystemInfo)

Informações do plano relevantes para o sistema Android.

YouTube

Informações sobre o plano de dados relevantes para o YouTube.

Representação JSON
{
  "rateLimitedStreaming": {
    object (RateLimitedStreaming)
  }
}
Campos
rateLimitedStreaming

object (RateLimitedStreaming)

O recurso de transmissão com reconhecimento de plano (PAS, na sigla em inglês) do YouTube, que limita a taxa de bits do vídeo transmitido.

RateLimitedStreaming

Informações do plano de dados para permitir que o YouTube melhore a experiência do usuário de streaming com limitação de taxa.

Representação JSON
{
  "maxMediaRateKbps": integer
}
Campos
maxMediaRateKbps

integer

A taxa de bits do YouTube compatível com esse usuário em kbps (milhares de bits por segundo).

AndroidSystemInfo

Informações do plano de dados relevantes para todo o sistema Android.

Representação JSON
{
  "cellularInfo": [
    {
      object (CellularInfo)
    }
  ]
}
Campos
cellularInfo[]

object (CellularInfo)

Informações de rede celular por tipo de conexão. Por exemplo, haverá uma mensagem cellularInfo para cada tipo de conexão, como 4G, 5G etc.

CellularInfo

Informações sobre uma conexão celular que o plano oferece ao usuário.

Representação JSON
{
  "connectionType": enum (ConnectionType),
  "meteredness": enum (Meteredness)
}
Campos
connectionType

enum (ConnectionType)

O tipo de conexão que a operadora está oferecendo ao usuário.

meteredness

enum (Meteredness)

O estado de medição do plano do usuário.

ConnectionType

Tipo de conexão: 2G, 3G, 4G

Enums
CONNECTION_TYPE_UNSPECIFIED Não especificado.
CONNECTION_2_G 2G.
CONNECTION_3_G 3G.
CONNECTION_4_G 4G.
CONNECTION_5_G 5G.
CONNECTION_ALL Todos os tipos.

Limitação

Tipo de plano do usuário

Enums
METEREDNESS_UNSPECIFIED O GTAF não sabe sobre o estado de medição do plano do usuário.
METEREDNESS_UNMETERED O usuário tem um plano ilimitado.
METEREDNESS_METERED O usuário tem um plano medido.

CpidState

Uma enumeração para a operadora representar o estado do CPID.

Enums
CPID_STATE_UNSPECIFIED O estado do CPID não foi especificado. Isso é tratado como se o CPID fosse válido.
CPID_INVALIDATED O CPID é invalidado, e o cliente precisa buscar um novo CPID no endpoint correspondente.

Métodos

create

Permite que uma operadora móvel (identificada pelo número de sistema autônomo (ASN) exclusivo) adicione uma nova entrada PlanStatus para um usuário ser usado por um cliente específico.