REST Resource: operators.clients.users.planStatus

Zasób: PlanStatus

PlanStatus zawiera szczegóły wszystkich pakietów usług mobilnych najwyższego poziomu, które użytkownik kupił.

Zapis 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)
}
Pola
name

string

Nazwa zasobu PlanStatus w tym formacie: operators/{asn_id}/planStatuses/{userKey}. Podczas tworzenia wpisu PlanStatus nazwa jest ignorowana.

plans[]

object (Plan)

Lista planów należących do tego użytkownika.

languageCode

string

Wymagany. Kod języka w formacie BCP-47, np. „en-US” lub „sr-Latn”. Więcej informacji znajdziesz na stronie http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.

expireTime

string (Timestamp format)

Wymagany. Czas, po którym informacje o grupie planu udostępnionego stają się nieaktualne. Po tym czasie aplikacje nie będą otrzymywać informacji o stanie subskrypcji. Czas wygaśnięcia musi przypadać w przyszłości.

Znacznik czasu w formacie RFC3339 UTC „Zulu”, z dokładnością do nanosekund i maksymalnie 9 miejscami po przecinku. Przykłady: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Wymagany. Czas, w którym agent planu danych pobrał informacje o stanie planu z systemów backendowych. Może służyć do określania, jak aktualne są informacje o stanie abonamentu. Czas aktualizacji musi być w przeszłości, ale nie może być starszy niż 30 dni.

Znacznik czasu w formacie RFC3339 UTC „Zulu”, z dokładnością do nanosekund i maksymalnie 9 miejscami po przecinku. Przykłady: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

title

string

Tytuł umowy, którą użytkownik zawarł z operatorem. Będzie on widoczny w nagłówku interfejsu.

subscriberId

string

Unikalny stały identyfikator w systemie operatora służący do identyfikowania użytkownika.

accountInfo

object (AccountInfo)

Wymagane w przypadku użytkowników korzystających z przedpłaty. Informacje o saldzie konta użytkownika.

uiCompatibility

enum (UiCompatibility)

Określa, czy stan planu może być wyświetlany użytkownikowi w interfejsie. Jeśli wartość to UI_INCOMPATIBLE, stan PlanStatus może być używany do wysyłania powiadomień do użytkownika, ale nie będzie używany do wyświetlania informacji o abonamencie.

notifications[]

enum (NotificationType)

Zawiera listę typów powiadomień wysłanych do użytkownika przez GTAF. Jeśli to pole jest wypełnione przez wywołującego, GTAF je ignoruje.

planInfoPerClient

object (PlanInfoPerClient)

Informacje o pakiecie danych istotne dla konkretnego klienta Google.

cpidState

enum (CpidState)

Stan identyfikatora CPID powiązanego z tym stanem planu.

Abonament

Szczegóły abonamentu komórkowego użytkownika, czyli pakietu usług komórkowych najwyższego poziomu, który subskrybent kupuje. Może to być np. „10 GB danych mobilnych na 30 dni” lub zbiór komponentów (nazywanych modułami planu). Na przykład abonament ACME 199, opisany jako „2 GB danych, nielimitowany WhatsApp + nielimitowany WeChat i 1 GB Spotify”, zawiera 3 moduły abonamentu.

Zapis JSON
{
  "planName": string,
  "planId": string,
  "planCategory": enum (PlanCategory),
  "expirationTime": string,
  "planModules": [
    {
      object (PlanModule)
    }
  ],
  "planState": enum (PlanState)
}
Pola
planName

string

Nazwa abonamentu komórkowego użytkownika.

planId

string

Wymagany. Identyfikator planu używany do odwoływania się do planu w ofertach itp.

planCategory

enum (PlanCategory)

abonament przedpłacony lub abonament z płatnością z dołu;

expirationTime

string (Timestamp format)

Wymagany. gdy ten abonament wygaśnie. W przypadku większości planów powinna być ona równa maksymalnemu czasowi wygaśnięcia wszystkich modułów planu. W przypadku subskrypcji, w których limit modułów jest okresowo odświeżany, powinien to być ogólny czas wygaśnięcia subskrypcji, czyli czas, w którym moduły subskrypcji przestają się odświeżać. Jeśli plan nie wygasa, to pole należy pominąć.

Znacznik czasu w formacie RFC3339 UTC „Zulu”, z dokładnością do nanosekund i maksymalnie 9 miejscami po przecinku. Przykłady: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

planModules[]

object (PlanModule)

Szczegółowe informacje o modułach planu (podplanach).

planState

enum (PlanState)

Stan planu użytkownika, np. aktywny, nieaktywny itp.

PlanCategory

Możliwe typy kategorii planów.

Wartości w polu enum
PLAN_CATEGORY_UNSPECIFIED Nie określono.
PREPAID abonament przedpłacony,
POSTPAID abonamentu.

PlanModule

Informacje o każdym module planu transmisji danych (lub subskrypcji) w ramach planu.

Zapis 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.
}
Pola
coarseBalanceLevel

enum (BalanceLevel)

ogólne informacje o saldzie;

trafficCategories[]

enum (PlanModuleTrafficCategory)

Lista kategorii ruchu, za które będzie naliczana opłata w ramach tego modułu planu.

expirationTime

string (Timestamp format)

Wymagany. Określony czas wygaśnięcia modułu planu. W przypadku modułów planu z limitem, który jest okresowo odświeżany, jest to czas następnego odświeżenia modułu. Jeśli moduł planu nie wygasa, to pole należy pominąć.

Znacznik czasu w formacie RFC3339 UTC „Zulu”, z dokładnością do nanosekund i maksymalnie 9 miejscami po przecinku. Przykłady: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

overUsagePolicy

enum (OverUsagePolicy)

Zasady dotyczące przekroczenia limitu, np. ograniczenie przepustowości.

maxRateKbps

string (int64 format)

Maksymalna szybkość transmisji danych dozwolona w ramach tego modułu planu w kilobitach na sekundę. Rzeczywista szybkość transmisji danych wynosi od 0 do maxRateKbps w zależności od warunków sieciowych. Pominięcie parametru maxRateKbps lub ustawienie go na 0 oznacza, że w przypadku tego modułu planu nie należy stosować ograniczania przepustowości.

description

string

Wymagany. Opis modułu abonamentu, który może być wyświetlany użytkownikowi i powinien być zbliżony do opisu tego modułu na rynku.

moduleName

string

Wymagany. Nazwa modułu planu.

usedBytes

string (int64 format)

Łączna liczba bajtów wykorzystanych przez użytkownika w ramach tego modułu planu.

planModuleState

enum (PlanState)

Stan modułu planu, np. aktywny, nieaktywny itp.

refreshPeriod

enum (RefreshPeriod)

Okres odświeżania tego modułu planu lub REFRESH_PERIOD_NONE, jeśli moduł planu nie odświeża swojego limitu. Moduły planu, które odświeżają limit, będą to robić raz w każdym okresie odświeżania.

Pole unii balance. Wymagany. Informacje o stanie modułu planu, które powinny być jedną z tych wartości: byte_balance, time_balance, coarse_balance_level. balance może mieć tylko jedną z tych wartości:
byteBalance

object (ByteQuota)

Informacje o saldzie modułu abonamentu opartego na bajtach. W przypadku modułów, które są okresowo odświeżane, to pole reprezentuje saldo bajtów w okresie odświeżania.

timeBalance

object (TimeQuota)

Informacje o saldzie modułu abonamentu opartego na czasie. W przypadku modułów, które są okresowo odświeżane, to pole reprezentuje saldo czasu w okresie odświeżania.

ByteQuota

Informacje o limicie/stanie modułu planu opartego na bajtach.

Zapis JSON
{
  "quotaBytes": string,
  "remainingBytes": string
}
Pola
quotaBytes

string (int64 format)

Limit modułu w bajtach. W przypadku abonamentów bez limitu powinna mieć wartość 2^63 – 1 (9223372036854775807).

remainingBytes

string (int64 format)

Wymagane w przypadku powiadomień o niskim saldzie. Pozostałe saldo limitu w bajtach.

TimeQuota

Informacje o limicie lub stanie środków w module abonamentu czasowego.

Zapis JSON
{
  "quotaMinutes": string,
  "remainingMinutes": string
}
Pola
quotaMinutes

string (int64 format)

Limit modułu w minutach w przypadku abonamentu opartego na czasie, np. 180 minut.

remainingMinutes

string (int64 format)

Pozostały limit w minutach w przypadku abonamentu opartego na czasie, np. 40 minut.

BalanceLevel

Ogólne informacje o stanie konta w module pakietu.

Wartości w polu enum
BALANCE_LEVEL_UNSPECIFIED Nie określono.
NO_PLAN Brak abonamentu na transmisję danych.
OUT_OF_DATA Stan konta wynosi zero.
LOW_QUOTA Stan konta (lub pozostały czas) jest równy lub mniejszy niż 10–25% pierwotnego stanu konta (lub czasu). Przewoźnicy MOGĄ określać dokładny próg dla każdego opakowania według własnego uznania.
HIGH_QUOTA Saldo danych (lub pozostały czas) wynosi więcej niż 10–25% oryginalnego salda pakietu (lub czasu). Przewoźnicy MOGĄ określać dokładny próg dla każdego opakowania według własnego uznania. Stan konta jest wysoki.

PlanModuleTrafficCategory

Kategoria ruchu modułu planu, która opisuje zestaw ruchu aplikacji należący do określonego modułu planu.

Wartości w polu enum
PLAN_MODULE_TRAFFIC_CATEGORY_UNSPECIFIED Nie określono.
GENERIC Ogólne, dotyczy całego ruchu.
VIDEO Cały ruch generowany przez filmy.
VIDEO_BROWSING Ruch związany z odkrywaniem filmów (przeglądaniem), czyli cały ruch w aplikacji wideo z wyłączeniem części związanej ze strumieniowym przesyłaniem wideo lub audio.
VIDEO_OFFLINE Ruch offline związany z filmami, który jest sumą ruchu VIDEO_BROWSING oraz ruchu offline związanego z filmami i audio (nie strumieniowego).
MUSIC Ruch w aplikacji muzycznej.
GAMING Ruch w aplikacji do gier.
SOCIAL Ruch w aplikacji społecznościowej.
MESSAGING Ruch w aplikacji do obsługi wiadomości.
APP_STORE Ruch w sklepie z aplikacjami, np. aktualizowanie lub pobieranie nowej aplikacji.

OverUsagePolicy

Zasady dotyczące przekroczenia limitu: co się stanie, gdy użytkownikowi skończy się miejsce.

Wartości w polu enum
OVER_USAGE_POLICY_UNSPECIFIED Nie określono.
THROTTLED Szybkość jest ograniczona.
BLOCKED Połączenie jest zablokowane.
PAY_AS_YOU_GO Płatność tylko za wykorzystane zasoby.

PlanState

Wyliczenie reprezentujące różne stany planu lub modułu planu użytkownika.

Wartości w polu enum
ACTIVE Plan/PlanModule jest aktywny i użytkownik może korzystać z danych oferowanych w ramach modułu.
INACTIVE Plan lub moduł planu jest nieaktywny i chociaż użytkownik nadal ma moduł, nie może korzystać z danych, które są jego częścią. Może się tak zdarzyć, jeśli moduł udostępnia dane tylko w określonych porach dnia lub jeśli użytkownik kupił moduł, ale nie został on jeszcze aktywowany.
EXPIRING_SOON Plan/PlanModule wkrótce wygaśnie. Wywołujący powinien wybrać odpowiedni poziom, aby określić, kiedy ustawić tę wartość. Oznacza to, że plan jest aktywny.
NEWLY_ACTIVE Abonament lub moduł abonamentu, który był wcześniej nieaktywny lub nie istniał, został właśnie aktywowany. Ten stan powinien być używany tylko przez bardzo krótki czas po aktywacji. W innych przypadkach należy używać stanu ACTIVE. Powiadomienia o stanie pakietu danych wysyłane z modułami NEWLY_ACTIVE powinny mieć krótki czas życia, ponieważ stan NEWLY_ACTIVE bardzo szybko staje się nieaktualny.
EXPIRED Abonament lub moduł abonamentu wygasł. Ustawienie tej wartości wyliczeniowej powoduje wysłanie powiadomienia o wygasłym abonamencie.

RefreshPeriod

Okres odświeżania, czyli regularny odstęp czasu, po którym moduł planu jest resetowany.

Wartości w polu enum
REFRESH_PERIOD_NONE Brak okresu odświeżania. Używane, gdy moduł planu nie jest cykliczny.
DAILY Moduł planu jest resetowany codziennie.
MONTHLY Moduł planu jest resetowany co miesiąc.
BIWEEKLY Moduł planu resetuje się co 2 tygodnie.
WEEKLY Moduł planu resetuje się co tydzień.

AccountInfo

Informacje o stanie konta użytkownika korzystającego z usług przedpłaconych.

Zapis JSON
{
  "accountBalance": {
    object (Money)
  },
  "loanBalance": {
    object (Money)
  },
  "unpaidLoan": {
    object (Money)
  },
  "accountBalanceStatus": enum (AccountBalanceStatus),
  "validUntil": string,
  "payAsYouGoCharge": {
    object (Money)
  },
  "accountTopUp": {
    object (Money)
  }
}
Pola
accountBalance

object (Money)

Wymagany. Saldo konta użytkownika.

loanBalance

object (Money)

Wymagany, jeśli ma zastosowanie. Saldo konta użytkownika, które zostało dodane w ramach pożyczki pieniężnej od operatora. Jeśli występuje, pole accountBalance nie zawiera tego salda.

unpaidLoan

object (Money)

Kwota, którą użytkownik jest winien operatorowi z tytułu pożyczek pieniężnych.

accountBalanceStatus

enum (AccountBalanceStatus)

Wymagany. Wskazuje stan salda konta. W przypadku niezgodności między czasem validUntil a polem accountBalanceStatus używamy pola accountBalanceStatus.

validUntil

string (Timestamp format)

Wymagany. Czas, do którego saldo konta jest ważne. To pole będzie używane do wyświetlania użytkownikowi komunikatu „Nieprawidłowe w 

Znacznik czasu w formacie RFC3339 UTC „Zulu”, z dokładnością do nanosekund i maksymalnie 9 miejscami po przecinku. Przykłady: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

payAsYouGoCharge

object (Money)

Kwota pieniędzy wydana przez użytkownika w ramach abonamentu w trybie płatności za rzeczywiste wykorzystanie. Jeśli to pole zostanie wypełnione przez operatora podczas udostępniania informacji o koncie usłudze GTAF, usługa GTAF spróbuje wysłać do użytkownika powiadomienie o tym, że wydaje pieniądze w ramach płatności za wykorzystanie.

accountTopUp

object (Money)

Wymagany w przypadku powiadomienia o doładowaniu konta. Kwota środków dodanych przez użytkownika do salda konta. Jeśli to pole zostanie wypełnione przez operatora podczas udostępniania GTAF informacji o koncie, GTAF spróbuje wysłać do użytkownika powiadomienie o doładowaniu konta.

Pieniądze

Reprezentuje kwotę pieniędzy wraz z rodzajem waluty.

Zapis JSON
{
  "currencyCode": string,
  "units": string,
  "nanos": integer
}
Pola
currencyCode

string

Trzyliterowy kod waluty zdefiniowany w normie ISO 4217.

units

string (int64 format)

Całe jednostki kwoty. Jeśli na przykład currencyCode to "USD", 1 jednostka to 1 dolar amerykański.

nanos

integer

Liczba jednostek nano (10^-9) kwoty. Wartość musi mieścić się w przedziale od -999 999 999 do +999 999 999 (włącznie). Jeśli wartość units jest dodatnia, wartość nanos musi być dodatnia lub wynosić zero. Jeśli units wynosi zero, nanos może być dodatnia, ujemna lub równa zero. Jeśli wartość units jest ujemna, wartość nanos musi być ujemna lub równa zero. Na przykład wartość $-1,75 jest reprezentowana jako units=-1 i nanos=-750 000 000.

AccountBalanceStatus

Stan portfela użytkownika.

Wartości w polu enum
VALID Saldo konta użytkownika jest prawidłowe i można go używać do dokonywania zakupów.
INVALID Saldo konta użytkownika jest nieprawidłowe i nie można go używać bez wprowadzenia zmian na koncie.

UiCompatibility

Wyliczenie określające, czy udostępniany stan planu może być wyświetlany użytkownikowi.

Wartości w polu enum
UI_COMPATIBILITY_UNSPECIFIED Domyślnie zakładamy, że PlanStatus jest zgodny z interfejsem.
UI_COMPATIBLE Wskazuje, że cały obiekt PlanStatus jest zgodny z interfejsem i informacje o planie mogą być wyświetlane użytkownikowi.
UI_INCOMPATIBLE Wskazuje, że PlanStatus jest niezgodny z interfejsem. Pola mogą być używane do wysyłania powiadomień do użytkownika, ale nie mogą być używane do wyświetlania informacji o abonamencie.

NotificationType

Typ powiadomienia wysyłanego do użytkownika ustawień abonamentu na mobilną transmisję danych.

Wartości w polu enum
NOTIFICATION_UNDEFINED Nieznany typ gatunku powiadomienia
NOTIFICATION_LOW_BALANCE_WARNING Powiadomienie ostrzegające użytkowników o niskim saldzie
NOTIFICATION_DATA_EXPIRATION_WARNING Powiadomienie ostrzegające użytkowników, że pakiet danych wygaśnie
NOTIFICATION_OUT_OF_DATA Powiadomienie o wyczerpaniu limitu danych
NOTIFICATION_PLAN_ACTIVATION Powiadomienie o aktywacji zakupionego abonamentu użytkownika
NOTIFICATION_PAY_AS_YOU_GO Powiadomienie informujące użytkownika, że płaci za dane w ramach modelu płatności za wykorzystanie.
NOTIFICATION_ACCOUNT_TOP_UP Powiadomienie informujące użytkownika o doładowaniu konta.
NOTIFICATION_DATA_EXPIRED Powiadomienie informujące użytkownika o wygaśnięciu pakietu danych.

PlanInfoPerClient

Informacje o pakiecie danych istotne dla konkretnego klienta Google.

Zapis JSON
{
  "youtube": {
    object (YouTube)
  },
  "androidSystemInfo": {
    object (AndroidSystemInfo)
  }
}
Pola
youtube

object (YouTube)

Informacje o subskrypcji powiązanej z YouTube.

androidSystemInfo

object (AndroidSystemInfo)

Informacje o abonamencie istotne dla systemu Android.

YouTube

Informacje o pakiecie danych istotne dla YouTube.

Zapis JSON
{
  "rateLimitedStreaming": {
    object (RateLimitedStreaming)
  }
}
Pola
rateLimitedStreaming

object (RateLimitedStreaming)

Funkcja YouTube Plan Aware Streaming (PAS), która ogranicza szybkość transmisji bitów dostarczanego filmu.

RateLimitedStreaming

Informacje o pakiecie danych, które umożliwiają YouTube zwiększenie wygody użytkowników korzystających ze streamingu z ograniczoną szybkością.

Zapis JSON
{
  "maxMediaRateKbps": integer
}
Pola
maxMediaRateKbps

integer

Szybkość transmisji w YouTube obsługiwana w przypadku tego użytkownika w kbps (tysiące bitów na sekundę).

AndroidSystemInfo

Informacje o pakiecie danych istotne dla całego systemu Android.

Zapis JSON
{
  "cellularInfo": [
    {
      object (CellularInfo)
    }
  ]
}
Pola
cellularInfo[]

object (CellularInfo)

Informacje o sieci komórkowej według typu połączenia. Na przykład dla każdego typu połączenia, takiego jak 4G czy 5G, będzie wysyłana jedna wiadomość cellularInfo.

CellularInfo

Informacje o połączeniu komórkowym, które jest dostępne w ramach abonamentu.

Zapis JSON
{
  "connectionType": enum (ConnectionType),
  "meteredness": enum (Meteredness)
}
Pola
connectionType

enum (ConnectionType)

Rodzaj połączenia, które operator zapewnia użytkownikowi.

meteredness

enum (Meteredness)

Stan planu użytkownika w zakresie pomiaru.

ConnectionType

Typ połączenia: 2G, 3G, 4G

Wartości w polu enum
CONNECTION_TYPE_UNSPECIFIED Nie określono.
CONNECTION_2_G 2G.
CONNECTION_3_G 3G.
CONNECTION_4_G 4G.
CONNECTION_5_G 5G.
CONNECTION_ALL Wszystkie gatunki.

Pomiar wykorzystania limitu

typ abonamentu użytkownika;

Wartości w polu enum
METEREDNESS_UNSPECIFIED GTAF nie zna stanu limitu danych w abonamencie użytkownika.
METEREDNESS_UNMETERED Użytkownik ma abonament bez limitu.
METEREDNESS_METERED Użytkownik korzysta z abonamentu opartego na zużyciu.

CpidState

Enum operatora reprezentujący stan CPID.

Wartości w polu enum
CPID_STATE_UNSPECIFIED Stan identyfikatora CPID jest nieokreślony. Jest to traktowane tak, jakby identyfikator CPID był prawidłowy.
CPID_INVALIDATED Identyfikator CPID zostanie unieważniony, a klient powinien pobrać nowy identyfikator CPID z punktu końcowego CPID.

Metody

create

Umożliwia operatorowi komórkowemu (identyfikowanemu przez unikalny numer systemu autonomicznego (ASN)) dodanie nowego wpisu PlanStatus dla użytkownika, który będzie używany przez konkretnego klienta.