Totogi Charging as a Service API

Welcome to the Totogi Charging as a Service API. This GraphQL API is useful for querying balances and EDRs, provisioning subscribers and devices, subscribing to plans and managing configuration.

API Endpoints
# US Tenants:
https://gql.produseast1.api.totogi.com/graphql
# Singapore Tenants:
https://gql.prodapsoutheast1.api.totogi.com/graphql
Version

generated at 2025-03-03T16:29:13Z

Queries

getAccount

Description

Returns an account for a provider by an account ID.

Response

Returns an AccountResult

Arguments
Name Description
providerId - ID! Service provider ID.
accountId - ID! Account ID.
balanceTypeIds - [ID!] Balance type Ids to retrieve

Example

Query
query getAccount(
  $providerId: ID!,
  $accountId: ID!,
  $balanceTypeIds: [ID!]
) {
  getAccount(
    providerId: $providerId,
    accountId: $accountId,
    balanceTypeIds: $balanceTypeIds
  ) {
    ... on Account {
      ...AccountFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"providerId": 4, "accountId": 4, "balanceTypeIds": [4]}
Response
{"data": {"getAccount": Account}}

getAccountBalanceTypeCounters

Description

Retrieve Balance Type Counters configured for an account.

Response

Returns an AccountBalanceTypeCountersResult

Arguments
Name Description
input - GetAccountBalanceTypeCountersInput!

Example

Query
query getAccountBalanceTypeCounters($input: GetAccountBalanceTypeCountersInput!) {
  getAccountBalanceTypeCounters(input: $input) {
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on AccountBalanceTypeCountersPayload {
      ...AccountBalanceTypeCountersPayloadFragment
    }
    ... on AccountBalanceTypeCounterNotFound {
      ...AccountBalanceTypeCounterNotFoundFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": GetAccountBalanceTypeCountersInput}
Response
{
  "data": {
    "getAccountBalanceTypeCounters": AccountNotFound
  }
}

getAccountCohort

Description

Fetch an Account Cohort by ID and provider ID.

Response

Returns a GetAccountCohortResult

Arguments
Name Description
input - GetAccountCohortInput!

Example

Query
query getAccountCohort($input: GetAccountCohortInput!) {
  getAccountCohort(input: $input) {
    ... on AccountCohort {
      ...AccountCohortFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on AccountCohortNotFound {
      ...AccountCohortNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": GetAccountCohortInput}
Response
{"data": {"getAccountCohort": AccountCohort}}

getAccountCohorts

Description

Fetch a list of Account Cohorts by provider ID with pagination.

Response

Returns a GetAccountCohortsResult

Arguments
Name Description
input - GetAccountCohortsInput!

Example

Query
query getAccountCohorts($input: GetAccountCohortsInput!) {
  getAccountCohorts(input: $input) {
    ... on AccountCohortConnection {
      ...AccountCohortConnectionFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": GetAccountCohortsInput}
Response
{"data": {"getAccountCohorts": AccountCohortConnection}}

getBalanceType

Description

Gets the balance type information of a specific balance type ID.

Response

Returns a GetBalanceTypeResult

Arguments
Name Description
getBalanceTypeInput - GetBalanceTypeInput! Includes the provider ID and balance type ID.

Example

Query
query getBalanceType($getBalanceTypeInput: GetBalanceTypeInput!) {
  getBalanceType(getBalanceTypeInput: $getBalanceTypeInput) {
    ... on BalanceTypePayload {
      ...BalanceTypePayloadFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"getBalanceTypeInput": GetBalanceTypeInput}
Response
{"data": {"getBalanceType": BalanceTypePayload}}

getBalanceTypeCounters

Description

Retrieve Balance Type Counter notifications based on the provided input parameters. At least one value must be supplied.

Response

Returns a GetBalanceTypeCountersResult

Arguments
Name Description
input - GetBalanceTypeCountersInput!

Example

Query
query getBalanceTypeCounters($input: GetBalanceTypeCountersInput!) {
  getBalanceTypeCounters(input: $input) {
    ... on BalanceTypeCountersPayload {
      ...BalanceTypeCountersPayloadFragment
    }
    ... on BalanceTypeCounterNotFound {
      ...BalanceTypeCounterNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": GetBalanceTypeCountersInput}
Response
{
  "data": {
    "getBalanceTypeCounters": BalanceTypeCountersPayload
  }
}

getBalanceTypes

Description

Gets the balance type information of a list or all balance type IDs. If none is provided, all are returned. If some are provided, the ones that are found are returned.

Response

Returns a GetBalanceTypesResult

Arguments
Name Description
getBalanceTypesInput - GetBalanceTypesInput! Includes the provider ID and an optional list of balance type IDs.

Example

Query
query getBalanceTypes($getBalanceTypesInput: GetBalanceTypesInput!) {
  getBalanceTypes(getBalanceTypesInput: $getBalanceTypesInput) {
    ... on GetBalanceTypesPayload {
      ...GetBalanceTypesPayloadFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"getBalanceTypesInput": GetBalanceTypesInput}
Response
{"data": {"getBalanceTypes": GetBalanceTypesPayload}}

getBulkMetadataJobStatus

Description

Get the status of a bulk metadata job.

Response

Returns a GetBulkUploadMetadataResult!

Arguments
Name Description
input - GetBulkUploadMetadataInput!

Example

Query
query getBulkMetadataJobStatus($input: GetBulkUploadMetadataInput!) {
  getBulkMetadataJobStatus(input: $input) {
    ... on GetBulkUploadMetadataPayload {
      ...GetBulkUploadMetadataPayloadFragment
    }
    ... on BulkUploadMetadataJobNotFound {
      ...BulkUploadMetadataJobNotFoundFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": GetBulkUploadMetadataInput}
Response
{
  "data": {
    "getBulkMetadataJobStatus": GetBulkUploadMetadataPayload
  }
}

getCampaign

Description

Get details of a specific campaign.

Response

Returns a GetCampaignResult!

Arguments
Name Description
input - GetCampaignInput!

Example

Query
query getCampaign($input: GetCampaignInput!) {
  getCampaign(input: $input) {
    ... on Campaign {
      ...CampaignFragment
    }
    ... on CampaignNotFound {
      ...CampaignNotFoundFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": GetCampaignInput}
Response
{"data": {"getCampaign": Campaign}}

getCampaignStatistics

Description

Retrieve Campaign Statistics.

Response

Returns a CampaignStatisticsResult

Arguments
Name Description
input - GetCampaignStatisticsInput!

Example

Query
query getCampaignStatistics($input: GetCampaignStatisticsInput!) {
  getCampaignStatistics(input: $input) {
    ... on CampaignStatisticsPayload {
      ...CampaignStatisticsPayloadFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on CampaignNotFound {
      ...CampaignNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": GetCampaignStatisticsInput}
Response
{
  "data": {
    "getCampaignStatistics": CampaignStatisticsPayload
  }
}

getCampaigns

Description

Get a list of campaigns with pagination.

Response

Returns a GetCampaignsResult!

Arguments
Name Description
input - GetCampaignsInput!

Example

Query
query getCampaigns($input: GetCampaignsInput!) {
  getCampaigns(input: $input) {
    ... on CampaignConnection {
      ...CampaignConnectionFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": GetCampaignsInput}
Response
{"data": {"getCampaigns": CampaignConnection}}

getCurrentUser

Description

Gets info for the currently logged in User. When used in an API context, this will return the API user.


Authorized Roles: All


Response

Returns a GetUserPayload

Example

Query
query getCurrentUser {
  getCurrentUser {
    providerId
    userId
    email
    name
    roleGroupMemberships
    profilePicture {
      ...ProfilePhotoFragment
    }
    phoneNumber
    jobTitle
    softwareMfaEnabled
    expiry
    alertInterval
  }
}
Response
{
  "data": {
    "getCurrentUser": {
      "providerId": 4,
      "userId": "4",
      "email": AWSEmail,
      "name": "xyz789",
      "roleGroupMemberships": ["Account_Query"],
      "profilePicture": ProfilePhoto,
      "phoneNumber": AWSPhone,
      "jobTitle": "abc123",
      "softwareMfaEnabled": true,
      "expiry": AWSDateTime,
      "alertInterval": 123
    }
  }
}

getDeployedFieldMappings

Description

Gets deployed field mappings for a provider sorted by when they will be applied.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher, Network_Operator, Network_Admin


Response

Returns a DeployedFieldMappingConnection

Arguments
Name Description
providerId - ID! Service provider ID.
first - Int! Returns the first n elements from the list or a maximum of 25.
after - String Returns the elements in the list that come after the specified cursor.

Example

Query
query getDeployedFieldMappings(
  $providerId: ID!,
  $first: Int!,
  $after: String
) {
  getDeployedFieldMappings(
    providerId: $providerId,
    first: $first,
    after: $after
  ) {
    edges {
      ...DeployedFieldMappingEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "providerId": 4,
  "first": 123,
  "after": "abc123"
}
Response
{
  "data": {
    "getDeployedFieldMappings": {
      "edges": [DeployedFieldMappingEdge],
      "pageInfo": PageInfo
    }
  }
}

getDevice

Description

Returns a Device for a provider by a device ID.


Authorized Roles: Account_Query, Account_Admin, Data_Admin


Response

Returns a DeviceResult

Arguments
Name Description
providerId - ID! Service provider ID.
deviceId - ID! Device ID.

Example

Query
query getDevice(
  $providerId: ID!,
  $deviceId: ID!
) {
  getDevice(
    providerId: $providerId,
    deviceId: $deviceId
  ) {
    ... on Device {
      ...DeviceFragment
    }
    ... on DeviceNotFound {
      ...DeviceNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "providerId": "4",
  "deviceId": "4"
}
Response
{"data": {"getDevice": Device}}

getEventDataRecordsByAccount

Description

Gets a list of event data records for an Account with pagination.


Authorized Roles: Data_Admin


Arguments
Name Description
providerId - ID! Service provider ID.
accountId - ID! Account ID.
first - Int! Returns the first n elements from the list or a maximum of 25.
after - String Returns the elements in the list that come after the specified cursor.
filterBy - EventDataRecordFilter Filtering options for event data records returned in the connection.

Example

Query
query getEventDataRecordsByAccount(
  $providerId: ID!,
  $accountId: ID!,
  $first: Int!,
  $after: String,
  $filterBy: EventDataRecordFilter
) {
  getEventDataRecordsByAccount(
    providerId: $providerId,
    accountId: $accountId,
    first: $first,
    after: $after,
    filterBy: $filterBy
  ) {
    ... on EventDataRecordAccountConnection {
      ...EventDataRecordAccountConnectionFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "providerId": "4",
  "accountId": "4",
  "first": 123,
  "after": "xyz789",
  "filterBy": EventDataRecordFilter
}
Response
{
  "data": {
    "getEventDataRecordsByAccount": EventDataRecordAccountConnection
  }
}

getEventDataRecordsByDevice

Description

Gets a list of event data records for a Device with pagination.


Authorized Roles: Data_Admin


Arguments
Name Description
providerId - ID! Service provider ID.
deviceId - ID! Device ID.
first - Int! Returns the first n elements from the list or a maximum of 25.
after - String Returns the elements in the list that come after the specified cursor.
filterBy - EventDataRecordFilter Filtering options for event data records returned in the connection.

Example

Query
query getEventDataRecordsByDevice(
  $providerId: ID!,
  $deviceId: ID!,
  $first: Int!,
  $after: String,
  $filterBy: EventDataRecordFilter
) {
  getEventDataRecordsByDevice(
    providerId: $providerId,
    deviceId: $deviceId,
    first: $first,
    after: $after,
    filterBy: $filterBy
  ) {
    ... on EventDataRecordDeviceConnection {
      ...EventDataRecordDeviceConnectionFragment
    }
    ... on DeviceNotFound {
      ...DeviceNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "providerId": "4",
  "deviceId": "4",
  "first": 987,
  "after": "abc123",
  "filterBy": EventDataRecordFilter
}
Response
{
  "data": {
    "getEventDataRecordsByDevice": EventDataRecordDeviceConnection
  }
}

getFieldMappings

Description

Gets NOT deployed field mappings for a provider.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher, Network_Operator


Response

Returns a FieldMappingConnection

Arguments
Name Description
providerId - ID! Service provider ID.
first - Int! Returns the first n elements from the list or a maximum of 25.
after - String Returns the elements in the list that come after the specified cursor.

Example

Query
query getFieldMappings(
  $providerId: ID!,
  $first: Int!,
  $after: String
) {
  getFieldMappings(
    providerId: $providerId,
    first: $first,
    after: $after
  ) {
    edges {
      ...FieldMappingEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "providerId": "4",
  "first": 987,
  "after": "xyz789"
}
Response
{
  "data": {
    "getFieldMappings": {
      "edges": [FieldMappingEdge],
      "pageInfo": PageInfo
    }
  }
}

getLifecycle

Description

Gets a single lifecycle.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher


Response

Returns a GetLifecycleResult

Arguments
Name Description
providerId - ID! Service provider ID.
lifecycleId - ID! Lifecyle ID.

Example

Query
query getLifecycle(
  $providerId: ID!,
  $lifecycleId: ID!
) {
  getLifecycle(
    providerId: $providerId,
    lifecycleId: $lifecycleId
  ) {
    ... on Lifecycle {
      ...LifecycleFragment
    }
    ... on LifecycleNotFound {
      ...LifecycleNotFoundFragment
    }
    ... on ProviderNotFound {
      ...ProviderNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "providerId": "4",
  "lifecycleId": "4"
}
Response
{"data": {"getLifecycle": Lifecycle}}

getLifecycles

Description

Gets a list of all lifecycles.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher


Response

Returns a GetLifecyclesResult

Arguments
Name Description
providerId - ID! Service provider ID.

Example

Query
query getLifecycles($providerId: ID!) {
  getLifecycles(providerId: $providerId) {
    ... on Lifecycles {
      ...LifecyclesFragment
    }
    ... on ProviderNotFound {
      ...ProviderNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"providerId": 4}
Response
{"data": {"getLifecycles": Lifecycles}}

getMyExportJobs

Description

Gets export jobs of the current tenant.


Authorized Roles: Tenant_Admin


Response

Returns a GetMyExportJobsResult

Arguments
Name Description
getMyExportJobsInput - GetMyExportJobsInput!

Example

Query
query getMyExportJobs($getMyExportJobsInput: GetMyExportJobsInput!) {
  getMyExportJobs(getMyExportJobsInput: $getMyExportJobsInput) {
    ... on GetMyExportJobsPayload {
      ...GetMyExportJobsPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"getMyExportJobsInput": GetMyExportJobsInput}
Response
{"data": {"getMyExportJobs": GetMyExportJobsPayload}}

getMyProviderConfig

Description

Gets tenant configuration of the logged in User.


Authorized Roles: All


Response

Returns a GetMyProviderConfigResult

Example

Query
query getMyProviderConfig {
  getMyProviderConfig {
    ... on ProviderConfig {
      ...ProviderConfigFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Response
{"data": {"getMyProviderConfig": ProviderConfig}}

getMyRestoreJobs

Description

Gets restore jobs of the current tenant.


Authorized Roles: Tenant_Admin


Response

Returns a GetMyRestoreJobsResult

Arguments
Name Description
getMyRestoreJobsInput - GetMyRestoreJobsInput!

Example

Query
query getMyRestoreJobs($getMyRestoreJobsInput: GetMyRestoreJobsInput!) {
  getMyRestoreJobs(getMyRestoreJobsInput: $getMyRestoreJobsInput) {
    ... on GetMyRestoreJobsPayload {
      ...GetMyRestoreJobsPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"getMyRestoreJobsInput": GetMyRestoreJobsInput}
Response
{"data": {"getMyRestoreJobs": GetMyRestoreJobsPayload}}

getOffers

Description

Returns the list of Offers for a provider.


Authorized Roles: Account_Admin


Response

Returns a GetOffersResult

Arguments
Name Description
providerId - ID! Service provider ID.
first - Int! Returns the first n elements from the list.
after - String Returns the elements in the list that come after the specified cursor.

Example

Query
query getOffers(
  $providerId: ID!,
  $first: Int!,
  $after: String
) {
  getOffers(
    providerId: $providerId,
    first: $first,
    after: $after
  ) {
    ... on OfferConnection {
      ...OfferConnectionFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "providerId": "4",
  "first": 987,
  "after": "abc123"
}
Response
{"data": {"getOffers": OfferConnection}}

getPlan

Description

Gets a Plan for a provider by a plan ID.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher


Response

Returns a PlanResult

Arguments
Name Description
providerId - ID! Service provider ID.
planId - ID! Already existing plan ID.

Example

Query
query getPlan(
  $providerId: ID!,
  $planId: ID!
) {
  getPlan(
    providerId: $providerId,
    planId: $planId
  ) {
    ... on Plan {
      ...PlanFragment
    }
    ... on PlanNotFound {
      ...PlanNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"providerId": 4, "planId": 4}
Response
{"data": {"getPlan": Plan}}

getPlanVersion

Description

Gets a Plan Version for a provider by a plan version ID.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher


Response

Returns a PlanVersionResult

Arguments
Name Description
providerId - ID! Service provider ID.
planVersionId - ID! Already existing plan version ID.

Example

Query
query getPlanVersion(
  $providerId: ID!,
  $planVersionId: ID!
) {
  getPlanVersion(
    providerId: $providerId,
    planVersionId: $planVersionId
  ) {
    ... on PlanVersion {
      ...PlanVersionFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"providerId": 4, "planVersionId": 4}
Response
{"data": {"getPlanVersion": PlanVersion}}

getPlans

Description

Gets a list of plans for a provider with pagination.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher


Response

Returns a PlanConnection

Arguments
Name Description
providerId - ID! Service provider ID.
first - Int! Returns the first n elements from the list or a maximum of 25.
after - String Returns the elements in the list that come after the specified cursor.
orderBy - PlanOrder Ordering options for plans returned from the connection.

Example

Query
query getPlans(
  $providerId: ID!,
  $first: Int!,
  $after: String,
  $orderBy: PlanOrder
) {
  getPlans(
    providerId: $providerId,
    first: $first,
    after: $after,
    orderBy: $orderBy
  ) {
    edges {
      ...PlanEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "providerId": "4",
  "first": 987,
  "after": "xyz789",
  "orderBy": PlanOrder
}
Response
{
  "data": {
    "getPlans": {
      "edges": [PlanEdge],
      "pageInfo": PageInfo
    }
  }
}

getRatingGroupHierarchy

Description

Gets Rating Group hierarchy for a provider.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher, Network_Admin


Response

Returns a RatingGroupResult

Arguments
Name Description
providerId - ID! Service provider ID.

Example

Query
query getRatingGroupHierarchy($providerId: ID!) {
  getRatingGroupHierarchy(providerId: $providerId) {
    ... on RatingGroup {
      ...RatingGroupFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"providerId": "4"}
Response
{"data": {"getRatingGroupHierarchy": RatingGroup}}

getRelatedAccountsByDevice

Description

Gets a list of all parent accounts for a provided device ID.


Authorized Roles:Account_Query, Account_Admin,Data_Admin


Arguments
Name Description
providerId - ID! Service provider ID.
deviceId - ID! Finds all related accounts by a device ID.

Example

Query
query getRelatedAccountsByDevice(
  $providerId: ID!,
  $deviceId: ID!
) {
  getRelatedAccountsByDevice(
    providerId: $providerId,
    deviceId: $deviceId
  ) {
    ... on GetRelatedAccountsByDevicePayload {
      ...GetRelatedAccountsByDevicePayloadFragment
    }
    ... on DeviceNotFound {
      ...DeviceNotFoundFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"providerId": "4", "deviceId": 4}
Response
{
  "data": {
    "getRelatedAccountsByDevice": GetRelatedAccountsByDevicePayload
  }
}

getSGSNTable

Description

Gets the SGSN table for a provider.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher, Network_Operator


Response

Returns an SGSNTableResult

Arguments
Name Description
providerId - ID! Service provider ID.

Example

Query
query getSGSNTable($providerId: ID!) {
  getSGSNTable(providerId: $providerId) {
    ... on SGSNTable {
      ...SGSNTableFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"providerId": "4"}
Response
{"data": {"getSGSNTable": SGSNTable}}

getSettings

Description

Gets settings for a provider.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher, Plan_Admin


Response

Returns a SettingsResult

Arguments
Name Description
providerId - ID! Service provider ID.

Example

Query
query getSettings($providerId: ID!) {
  getSettings(providerId: $providerId) {
    ... on Settings {
      ...SettingsFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"providerId": "4"}
Response
{"data": {"getSettings": Settings}}

getUser

Description

Gets a User for a given provider ID and user ID, or returns a UserNotFound error.


Authorized Roles: Tenant_Admin


Response

Returns a GetUserResult

Arguments
Name Description
getUserInput - GetUserInput! Get user input

Example

Query
query getUser($getUserInput: GetUserInput!) {
  getUser(getUserInput: $getUserInput) {
    ... on GetUserPayload {
      ...GetUserPayloadFragment
    }
    ... on UserNotFound {
      ...UserNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"getUserInput": GetUserInput}
Response
{"data": {"getUser": GetUserPayload}}

listUsers

Description

Lists the users for the given provider ID.


Authorized Roles: Tenant_Admin


Response

Returns a ListUsersResult

Arguments
Name Description
providerId - ID! Service provider ID.
first - Int! Returns the first n elements from the list or a maximum of 25.
after - String Returns the elements in the list that come after the specified cursor.

Example

Query
query listUsers(
  $providerId: ID!,
  $first: Int!,
  $after: String
) {
  listUsers(
    providerId: $providerId,
    first: $first,
    after: $after
  ) {
    ... on ListUsersConnection {
      ...ListUsersConnectionFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "providerId": "4",
  "first": 123,
  "after": "xyz789"
}
Response
{"data": {"listUsers": ListUsersConnection}}

Mutations

archivePlanVersion

Description

Archives a Plan Version if it is suspended with no subscribed accounts.


Authorized Roles: Plan_Designer


Response

Returns an ArchivePlanVersionResult!

Arguments
Name Description
input - ArchivePlanVersionInput! Parameters for DeletePlanVersion.

Example

Query
mutation archivePlanVersion($input: ArchivePlanVersionInput!) {
  archivePlanVersion(input: $input) {
    ... on ArchivePlanVersionPayload {
      ...ArchivePlanVersionPayloadFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on PlanVersionWrongTransition {
      ...PlanVersionWrongTransitionFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": ArchivePlanVersionInput}
Response
{
  "data": {
    "archivePlanVersion": ArchivePlanVersionPayload
  }
}

bulkUploadMetadata

Description

Bulk upload metadata for Accounts provided by customer

Response

Returns a BulkUploadMetadataResult

Arguments
Name Description
input - BulkUploadMetadataInput!

Example

Query
mutation bulkUploadMetadata($input: BulkUploadMetadataInput!) {
  bulkUploadMetadata(input: $input) {
    ... on BulkUploadMetadataPayload {
      ...BulkUploadMetadataPayloadFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": BulkUploadMetadataInput}
Response
{
  "data": {
    "bulkUploadMetadata": BulkUploadMetadataPayload
  }
}

cancelPlanSubscription

Description

Cancels existing assignment of a Plan to an Account.

  • Uses the planSubscriptionId to identify the correct plan.
  • Balances from the Plan remain after cancellation.

Authorized Roles: Account_Admin


Arguments
Name Description
input - CancelPlanSubscriptionInput! Parameters for CancelPlanSubscription.

Example

Query
mutation cancelPlanSubscription($input: CancelPlanSubscriptionInput!) {
  cancelPlanSubscription(input: $input) {
    ... on CancelPlanVersionSubscriptionPayload {
      ...CancelPlanVersionSubscriptionPayloadFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on SubscriptionNotFound {
      ...SubscriptionNotFoundFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
  }
}
Variables
{"input": CancelPlanSubscriptionInput}
Response
{
  "data": {
    "cancelPlanSubscription": CancelPlanVersionSubscriptionPayload
  }
}

createAccount

Description

Creates an Account for a provider.


Authorized Roles: Account_Admin


Response

Returns a CreateAccountResult!

Arguments
Name Description
input - CreateAccountInput! Parameters for CreateAccount.

Example

Query
mutation createAccount($input: CreateAccountInput!) {
  createAccount(input: $input) {
    ... on CreateAccountPayload {
      ...CreateAccountPayloadFragment
    }
    ... on TransactionHasBeenProcessed {
      ...TransactionHasBeenProcessedFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on AccountAlreadyExists {
      ...AccountAlreadyExistsFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on LifecycleNotFound {
      ...LifecycleNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on PostpaidFieldInPrepaidAccount {
      ...PostpaidFieldInPrepaidAccountFragment
    }
    ... on PostpaidPropertiesRequired {
      ...PostpaidPropertiesRequiredFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreateAccountInput}
Response
{"data": {"createAccount": CreateAccountPayload}}

createAccountCohort

Description

Create a new Account Cohort.

Response

Returns a CreateAccountCohortResult

Arguments
Name Description
input - CreateAccountCohortInput!

Example

Query
mutation createAccountCohort($input: CreateAccountCohortInput!) {
  createAccountCohort(input: $input) {
    ... on AccountCohort {
      ...AccountCohortFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
  }
}
Variables
{"input": CreateAccountCohortInput}
Response
{"data": {"createAccountCohort": AccountCohort}}

createBalance

Description

Creates a new balance for the provider.

Response

Returns a CreateBalanceResult

Arguments
Name Description
input - CreateBalanceInput! Payload with provider ID and balance information.

Example

Query
mutation createBalance($input: CreateBalanceInput!) {
  createBalance(input: $input) {
    ... on BalancePayload {
      ...BalancePayloadFragment
    }
    ... on TransactionHasBeenProcessed {
      ...TransactionHasBeenProcessedFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreateBalanceInput}
Response
{"data": {"createBalance": BalancePayload}}

createBalanceType

Description

Creates a new balance type for the provider.

Response

Returns a CreateBalanceTypeResult

Arguments
Name Description
input - CreateBalanceTypeInput! Payload with provider ID and balance type information.

Example

Query
mutation createBalanceType($input: CreateBalanceTypeInput!) {
  createBalanceType(input: $input) {
    ... on BalanceTypePayload {
      ...BalanceTypePayloadFragment
    }
    ... on BalanceTypeNameInUse {
      ...BalanceTypeNameInUseFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreateBalanceTypeInput}
Response
{"data": {"createBalanceType": BalanceTypePayload}}

createCampaign

Description

Create a new Campaign.


Authorized Roles: Account_Admin


Response

Returns a CreateCampaignResult!

Arguments
Name Description
input - CreateCampaignInput!

Example

Query
mutation createCampaign($input: CreateCampaignInput!) {
  createCampaign(input: $input) {
    ... on CreateCampaignPayload {
      ...CreateCampaignPayloadFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on EmailNotActivated {
      ...EmailNotActivatedFragment
    }
    ... on OfferNotFound {
      ...OfferNotFoundFragment
    }
    ... on AccountCohortNotFound {
      ...AccountCohortNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on CampaignManagementNotReady {
      ...CampaignManagementNotReadyFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
  }
}
Variables
{"input": CreateCampaignInput}
Response
{"data": {"createCampaign": CreateCampaignPayload}}

createDevice

Description

Creates a Device in an Account.


Authorized Roles: Account_Admin


Response

Returns a CreateDeviceResult!

Arguments
Name Description
input - CreateDeviceInput! Parameters for CreateDevice.

Example

Query
mutation createDevice($input: CreateDeviceInput!) {
  createDevice(input: $input) {
    ... on CreateDevicePayload {
      ...CreateDevicePayloadFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on DeviceAlreadyExists {
      ...DeviceAlreadyExistsFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreateDeviceInput}
Response
{"data": {"createDevice": CreateDevicePayload}}

createFieldMapping

Description

Creates a Field Mapping in draft. Draft field mappings need to be deployed using deployFieldMappings to become effective.


Authorized Roles: Network_Operator, Plan_Publisher


Response

Returns a CreateFieldMappingResult!

Arguments
Name Description
input - CreateFieldMappingInput! Parameters for CreateFieldMapping.

Example

Query
mutation createFieldMapping($input: CreateFieldMappingInput!) {
  createFieldMapping(input: $input) {
    ... on CreateFieldMappingPayload {
      ...CreateFieldMappingPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on FieldMappingAlreadyExists {
      ...FieldMappingAlreadyExistsFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreateFieldMappingInput}
Response
{
  "data": {
    "createFieldMapping": CreateFieldMappingPayload
  }
}

createLifecycle

Description

Creates a lifecycle.


Authorized Roles: Plan_Designer, Plan_Publisher


Response

Returns a CreateLifecycleResult

Arguments
Name Description
input - CreateLifecycleInput!

Example

Query
mutation createLifecycle($input: CreateLifecycleInput!) {
  createLifecycle(input: $input) {
    ... on LifecyclePayload {
      ...LifecyclePayloadFragment
    }
    ... on InvalidNumberOfStates {
      ...InvalidNumberOfStatesFragment
    }
    ... on InvalidStateTransitions {
      ...InvalidStateTransitionsFragment
    }
    ... on ProviderNotFound {
      ...ProviderNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreateLifecycleInput}
Response
{"data": {"createLifecycle": LifecyclePayload}}

createOffer

Description

Creates an Offer.


Authorized Roles: Account_Admin


Response

Returns a CreateOfferResult!

Arguments
Name Description
input - CreateOfferInput! Parameters for CreateOffer.

Example

Query
mutation createOffer($input: CreateOfferInput!) {
  createOffer(input: $input) {
    ... on CreateOfferPayload {
      ...CreateOfferPayloadFragment
    }
    ... on OfferAlreadyExists {
      ...OfferAlreadyExistsFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
  }
}
Variables
{"input": CreateOfferInput}
Response
{"data": {"createOffer": CreateOfferPayload}}

createPlanFromInitialRecurringFirstUsageTemplate

Description

Creates a plan by using a template.

Arguments
Name Description
input - CreatePlanFromInitialRecurringFirstUsageTemplateInput! Parameters for CreatePlanFromInitialRecurringFirstUsageTemplate.

Example

Query
mutation createPlanFromInitialRecurringFirstUsageTemplate($input: CreatePlanFromInitialRecurringFirstUsageTemplateInput!) {
  createPlanFromInitialRecurringFirstUsageTemplate(input: $input) {
    ... on CreatePlanPayload {
      ...CreatePlanPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on PlanAlreadyExists {
      ...PlanAlreadyExistsFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on CreatePlanValidationFailed {
      ...CreatePlanValidationFailedFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on ServiceFormatError {
      ...ServiceFormatErrorFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "input": CreatePlanFromInitialRecurringFirstUsageTemplateInput
}
Response
{
  "data": {
    "createPlanFromInitialRecurringFirstUsageTemplate": CreatePlanPayload
  }
}

createPlanFromInitialTemplate

Description

Creates a Plan by using a template.


Authorized Roles: Plan_Designer


Arguments
Name Description
input - CreatePlanFromInitialTemplateInput! Parameters for CreatePlanFromInitialTemplate.

Example

Query
mutation createPlanFromInitialTemplate($input: CreatePlanFromInitialTemplateInput!) {
  createPlanFromInitialTemplate(input: $input) {
    ... on CreatePlanPayload {
      ...CreatePlanPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on PlanAlreadyExists {
      ...PlanAlreadyExistsFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on CreatePlanValidationFailed {
      ...CreatePlanValidationFailedFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on ServiceFormatError {
      ...ServiceFormatErrorFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreatePlanFromInitialTemplateInput}
Response
{
  "data": {
    "createPlanFromInitialTemplate": CreatePlanPayload
  }
}

createPlanVersionFromInitialRecurringFirstUsageTemplate

Description

Updates a plan that was created by using a template. Creates a new version of the plan.

Arguments
Name Description
input - CreatePlanVersionFromInitialRecurringFirstUsageTemplateInput! Parameters for CreatePlanVersionFromInitialRecurringFirstUsageTemplate.

Example

Query
mutation createPlanVersionFromInitialRecurringFirstUsageTemplate($input: CreatePlanVersionFromInitialRecurringFirstUsageTemplateInput!) {
  createPlanVersionFromInitialRecurringFirstUsageTemplate(input: $input) {
    ... on PlanVersionPayload {
      ...PlanVersionPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on CreatePlanValidationFailed {
      ...CreatePlanValidationFailedFragment
    }
    ... on PlanVersionAlreadyExists {
      ...PlanVersionAlreadyExistsFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on ServiceFormatError {
      ...ServiceFormatErrorFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "input": CreatePlanVersionFromInitialRecurringFirstUsageTemplateInput
}
Response
{
  "data": {
    "createPlanVersionFromInitialRecurringFirstUsageTemplate": PlanVersionPayload
  }
}

createPlanVersionFromInitialTemplate

Description

Creates a new Plan Version of a Plan that was originally created by using createPlanFromInitialTemplate.


Authorized Roles: Plan_Designer


Arguments
Name Description
input - CreatePlanVersionFromInitialTemplateInput! Parameters for CreatePlanVersionFromInitialTemplate.

Example

Query
mutation createPlanVersionFromInitialTemplate($input: CreatePlanVersionFromInitialTemplateInput!) {
  createPlanVersionFromInitialTemplate(input: $input) {
    ... on PlanVersionPayload {
      ...PlanVersionPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on CreatePlanValidationFailed {
      ...CreatePlanValidationFailedFragment
    }
    ... on PlanVersionAlreadyExists {
      ...PlanVersionAlreadyExistsFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on ServiceFormatError {
      ...ServiceFormatErrorFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreatePlanVersionFromInitialTemplateInput}
Response
{
  "data": {
    "createPlanVersionFromInitialTemplate": PlanVersionPayload
  }
}

createUser

Description

Creates a tenant User.


Authorized Roles: Tenant_Admin


Response

Returns a CreateUserResult!

Arguments
Name Description
input - CreateUserInput! Parameters for CreateUser.

Example

Query
mutation createUser($input: CreateUserInput!) {
  createUser(input: $input) {
    ... on SaveUserPayload {
      ...SaveUserPayloadFragment
    }
    ... on UserAlreadyExists {
      ...UserAlreadyExistsFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreateUserInput}
Response
{"data": {"createUser": SaveUserPayload}}

deleteAccount

Description

Deletes an Account if it does not have any children or devices.


Authorized Roles: Account_Admin


Response

Returns a DeleteAccountResult!

Arguments
Name Description
input - DeleteAccountInput! Parameters for DeleteAccount.

Example

Query
mutation deleteAccount($input: DeleteAccountInput!) {
  deleteAccount(input: $input) {
    ... on DeleteAccountPayload {
      ...DeleteAccountPayloadFragment
    }
    ... on TransactionHasBeenProcessed {
      ...TransactionHasBeenProcessedFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on AccountHasReferences {
      ...AccountHasReferencesFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteAccountInput}
Response
{"data": {"deleteAccount": DeleteAccountPayload}}

deleteAccountBalanceTypeCounter

Description

Delete a Balance Type Counter for an account based on the provided input parameters.

Arguments
Name Description
input - DeleteAccountBalanceTypeCounterInput!

Example

Query
mutation deleteAccountBalanceTypeCounter($input: DeleteAccountBalanceTypeCounterInput!) {
  deleteAccountBalanceTypeCounter(input: $input) {
    ... on DeleteAccountBalanceTypeCounterPayload {
      ...DeleteAccountBalanceTypeCounterPayloadFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on AccountBalanceTypeCounterNotFound {
      ...AccountBalanceTypeCounterNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteAccountBalanceTypeCounterInput}
Response
{
  "data": {
    "deleteAccountBalanceTypeCounter": DeleteAccountBalanceTypeCounterPayload
  }
}

deleteAccountCohort

Description

Delete an existing Account Cohort.

Response

Returns a DeleteAccountCohortResult

Arguments
Name Description
input - DeleteAccountCohortInput!

Example

Query
mutation deleteAccountCohort($input: DeleteAccountCohortInput!) {
  deleteAccountCohort(input: $input) {
    ... on DeleteAccountCohortPayload {
      ...DeleteAccountCohortPayloadFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on AccountCohortNotFound {
      ...AccountCohortNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteAccountCohortInput}
Response
{
  "data": {
    "deleteAccountCohort": DeleteAccountCohortPayload
  }
}

deleteBalance

Description

Deletes an existing balance for the provider.

Response

Returns a DeleteBalanceResult

Arguments
Name Description
input - DeleteBalanceInput! Payload with provider ID and balance ID.

Example

Query
mutation deleteBalance($input: DeleteBalanceInput!) {
  deleteBalance(input: $input) {
    ... on DeleteBalancePayload {
      ...DeleteBalancePayloadFragment
    }
    ... on TransactionHasBeenProcessed {
      ...TransactionHasBeenProcessedFragment
    }
    ... on BalanceNotFound {
      ...BalanceNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on BalanceHasReferences {
      ...BalanceHasReferencesFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteBalanceInput}
Response
{"data": {"deleteBalance": DeleteBalancePayload}}

deleteBalanceType

Description

Deletes an existing balance type for the provider.

Response

Returns a DeleteBalanceTypeResult

Arguments
Name Description
input - DeleteBalanceTypeInput! Payload with provider ID and balance type ID.

Example

Query
mutation deleteBalanceType($input: DeleteBalanceTypeInput!) {
  deleteBalanceType(input: $input) {
    ... on DeleteBalanceTypePayload {
      ...DeleteBalanceTypePayloadFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on BalanceTypeHasReferences {
      ...BalanceTypeHasReferencesFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteBalanceTypeInput}
Response
{"data": {"deleteBalanceType": DeleteBalanceTypePayload}}

deleteBalanceTypeCounter

Description

Delete a Balance Type Counter based on the provided input parameters.

Response

Returns a DeleteBalanceTypeCounterResult

Arguments
Name Description
input - DeleteBalanceTypeCounterInput!

Example

Query
mutation deleteBalanceTypeCounter($input: DeleteBalanceTypeCounterInput!) {
  deleteBalanceTypeCounter(input: $input) {
    ... on DeleteBalanceTypeCounterPayload {
      ...DeleteBalanceTypeCounterPayloadFragment
    }
    ... on BalanceTypeCounterNotFound {
      ...BalanceTypeCounterNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteBalanceTypeCounterInput}
Response
{
  "data": {
    "deleteBalanceTypeCounter": DeleteBalanceTypeCounterPayload
  }
}

deleteCampaign

Description

Deletes an existing Campaign.


Authorized Roles: Account_Admin


Response

Returns a DeleteCampaignResult!

Arguments
Name Description
input - DeleteCampaignInput!

Example

Query
mutation deleteCampaign($input: DeleteCampaignInput!) {
  deleteCampaign(input: $input) {
    ... on DeleteCampaignPayload {
      ...DeleteCampaignPayloadFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on CampaignNotFound {
      ...CampaignNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteCampaignInput}
Response
{"data": {"deleteCampaign": DeleteCampaignPayload}}

deleteDevice

Description

Deletes a Device from an Account.


Authorized Roles: Account_Admin


Response

Returns a DeleteDeviceResult!

Arguments
Name Description
input - DeleteDeviceInput! Parameters for DeleteDevice.

Example

Query
mutation deleteDevice($input: DeleteDeviceInput!) {
  deleteDevice(input: $input) {
    ... on DeleteDevicePayload {
      ...DeleteDevicePayloadFragment
    }
    ... on DeviceNotFound {
      ...DeviceNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteDeviceInput}
Response
{"data": {"deleteDevice": DeleteDevicePayload}}

deleteFieldMapping

Description

Deletes a Field Mapping in draft. Draft field mappings need to be deployed using deployFieldMappings to become effective.


Authorized Roles: Network_Operator, Plan_Publisher


Response

Returns a DeleteFieldMappingResult!

Arguments
Name Description
input - DeleteFieldMappingInput! Parameters for DeleteFieldMapping.

Example

Query
mutation deleteFieldMapping($input: DeleteFieldMappingInput!) {
  deleteFieldMapping(input: $input) {
    ... on DeleteFieldMappingPayload {
      ...DeleteFieldMappingPayloadFragment
    }
    ... on FieldMappingNotFound {
      ...FieldMappingNotFoundFragment
    }
    ... on FieldMappingHasReferences {
      ...FieldMappingHasReferencesFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteFieldMappingInput}
Response
{
  "data": {
    "deleteFieldMapping": DeleteFieldMappingPayload
  }
}

deleteLifecycle

Description

Deletes a lifecycle.


Authorized Roles: Plan_Designer, Plan_Publisher


Response

Returns a DeleteLifecycleResult

Arguments
Name Description
input - DeleteLifecycleInput!

Example

Query
mutation deleteLifecycle($input: DeleteLifecycleInput!) {
  deleteLifecycle(input: $input) {
    ... on DeleteLifecyclePayload {
      ...DeleteLifecyclePayloadFragment
    }
    ... on LifecycleNotFound {
      ...LifecycleNotFoundFragment
    }
    ... on ProviderNotFound {
      ...ProviderNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteLifecycleInput}
Response
{"data": {"deleteLifecycle": DeleteLifecyclePayload}}

deleteOffer

Description

Deletes an Offer.


Authorized Roles: Account_Admin


Response

Returns a DeleteOfferResult!

Arguments
Name Description
input - DeleteOfferInput! Parameters for DeleteOffer.

Example

Query
mutation deleteOffer($input: DeleteOfferInput!) {
  deleteOffer(input: $input) {
    ... on DeleteOfferPayload {
      ...DeleteOfferPayloadFragment
    }
    ... on OfferNotFound {
      ...OfferNotFoundFragment
    }
    ... on OfferIsReadOnly {
      ...OfferIsReadOnlyFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteOfferInput}
Response
{"data": {"deleteOffer": DeleteOfferPayload}}

deletePlan

Only template APIs are supported moving forward. Deprecated date is 2024-10-31. Expiration date is 2025-01-31.
Description

Deletes a Plan. Deployed plans cannot be deleted but its plan versions can be archived using archivePlanVersion.

Important: This mutation is deprecated. Only template APIs are supported moving forward. Deprecated date is 2024-10-31. Expiration date is 2025-01-31.


Authorized Roles: Plan_Designer


Response

Returns a DeletePlanResult!

Arguments
Name Description
input - DeletePlanInput! Parameters for DeletePlan.

Example

Query
mutation deletePlan($input: DeletePlanInput!) {
  deletePlan(input: $input) {
    ... on DeletePlanPayload {
      ...DeletePlanPayloadFragment
    }
    ... on PlanNotFound {
      ...PlanNotFoundFragment
    }
    ... on PlanVersionHasReferences {
      ...PlanVersionHasReferencesFragment
    }
    ... on PlanIsReadOnly {
      ...PlanIsReadOnlyFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeletePlanInput}
Response
{"data": {"deletePlan": DeletePlanPayload}}

deletePlanVersion

Description

Deletes a Plan Version if it was never deployed.


Authorized Roles: Plan_Designer


Response

Returns a DeletePlanVersionResult!

Arguments
Name Description
input - DeletePlanVersionInput! Parameters for DeletePlanVersion.

Example

Query
mutation deletePlanVersion($input: DeletePlanVersionInput!) {
  deletePlanVersion(input: $input) {
    ... on DeletePlanVersionPayload {
      ...DeletePlanVersionPayloadFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on PlanVersionHasReferences {
      ...PlanVersionHasReferencesFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeletePlanVersionInput}
Response
{"data": {"deletePlanVersion": DeletePlanVersionPayload}}

deleteUser

Description

Deletes a tenant User.


Authorized Roles: Tenant_Admin


Response

Returns a DeleteUserResult!

Arguments
Name Description
input - DeleteUserInput! Parameters for DeleteUser.

Example

Query
mutation deleteUser($input: DeleteUserInput!) {
  deleteUser(input: $input) {
    ... on DeleteUserPayload {
      ...DeleteUserPayloadFragment
    }
    ... on UserNotFound {
      ...UserNotFoundFragment
    }
    ... on UserIsReadOnly {
      ...UserIsReadOnlyFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeleteUserInput}
Response
{"data": {"deleteUser": DeleteUserPayload}}

deployFieldMappings

Description

Once you have defined a new Field Mapping, you can call deployFieldMappings and specify the path of the field mapping you want to deploy.

  • By providing a from date, you can specify a point in the future when current set of field mappings will take effect, e.g. the first of the coming month for the field mapping to become active.
  • If you omit the from date, immediate activation is performed.
  • The process to deploy an updated field mapping is equivalent to a new one. You specify the path of the field mapping you want to deploy and this specific mapping will be updated. Any other deployed mappings remain untouched.
  • If you provide a list of paths, this set of field mappings will be deployed. Any other deployed mappings remain unchanged.
  • To remove a deployed Field Mapping: - Delete the Field Mapping from the draft using deleteFieldMapping. - Next invoke the deployFieldMappings without providing the paths parameter. - This operation will deploy only the field mappings that are specified in the draft. - If a from date is not provided, the current time is used as the default from date. - Any existing field mappings not in the draft will be removed with the following limitations. When existing field mappings are deleted, the system checks if the from date of the existing mapping is earlier than the from date specified for the new mapping. If it is, the deleted mapping is re-added. So to completely delete a deployed field mapping, you should provide a from date that matches or precedes the from date used in the prior deployment of the field mapping you wish to remove.

Authorized Roles: Network_Admin, Plan_Publisher


Response

Returns a DeployFieldMappingsResult!

Arguments
Name Description
input - DeployFieldMappingsInput! Parameters for DeployFieldMappings.

Example

Query
mutation deployFieldMappings($input: DeployFieldMappingsInput!) {
  deployFieldMappings(input: $input) {
    ... on DeployFieldMappingsPayload {
      ...DeployFieldMappingsPayloadFragment
    }
    ... on FieldMappingNotFound {
      ...FieldMappingNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeployFieldMappingsInput}
Response
{
  "data": {
    "deployFieldMappings": DeployFieldMappingsPayload
  }
}

deployPlan

Description

Deploys a Plan so it can be subscribed by accounts. A deployed plan cannot be updated anymore.


Authorized Roles: Plan_Publisher


Response

Returns a DeployPlanVersionResult!

Arguments
Name Description
input - DeployPlanVersionInput! Parameters for DeployPlan.

Example

Query
mutation deployPlan($input: DeployPlanVersionInput!) {
  deployPlan(input: $input) {
    ... on PlanVersionPayload {
      ...PlanVersionPayloadFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on DeploymentVerificationFailed {
      ...DeploymentVerificationFailedFragment
    }
    ... on MigrationAlreadyInProgress {
      ...MigrationAlreadyInProgressFragment
    }
    ... on PlanVersionWrongTransition {
      ...PlanVersionWrongTransitionFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeployPlanVersionInput}
Response
{"data": {"deployPlan": PlanVersionPayload}}

makePlanAssignable

Description

Makes a Plan assignable so it can be subscribed by accounts. Plan must be deployed to be able to make it assignable.


Authorized Roles: Plan_Publisher


Response

Returns an AssignablePlanVersionResult!

Arguments
Name Description
input - AssignablePlanVersionInput! Parameters for MakePlanAssignable.
revert - Boolean Makes a Plan NOT assignable. It can be done at any point in time to make sure that a Plan cannot be subscribed by accounts.

Example

Query
mutation makePlanAssignable(
  $input: AssignablePlanVersionInput!,
  $revert: Boolean
) {
  makePlanAssignable(
    input: $input,
    revert: $revert
  ) {
    ... on PlanVersionPayload {
      ...PlanVersionPayloadFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on PlanVersionWrongTransition {
      ...PlanVersionWrongTransitionFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": AssignablePlanVersionInput, "revert": false}
Response
{"data": {"makePlanAssignable": PlanVersionPayload}}

makePlanNotAssignable

Description

Makes a Plan NOT assignable. It can be done at any point in time to make sure that a Plan cannot be subscribed by accounts.

Important: This mutation is deprecated. Use makePlanAssignable with revert: true instead. Deprecated date is 2024-10-31. Expiration date is 2025-01-31.


Authorized Roles: Plan_Publisher


Response

Returns an AssignablePlanVersionResult!

Arguments
Name Description
input - AssignablePlanVersionInput! Parameters for MakePlanNotAssignable.

Example

Query
mutation makePlanNotAssignable($input: AssignablePlanVersionInput!) {
  makePlanNotAssignable(input: $input) {
    ... on PlanVersionPayload {
      ...PlanVersionPayloadFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on PlanVersionWrongTransition {
      ...PlanVersionWrongTransitionFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": AssignablePlanVersionInput}
Response
{"data": {"makePlanNotAssignable": PlanVersionPayload}}

resetUserPassword

Description

Resets the password of a given User.


Authorized Roles: Tenant_Admin


Response

Returns a ResetUserPasswordResult!

Arguments
Name Description
input - ResetUserPasswordInput! Parameters for ResetUserPasswordInput

Example

Query
mutation resetUserPassword($input: ResetUserPasswordInput!) {
  resetUserPassword(input: $input) {
    ... on ResetUserPasswordPayload {
      ...ResetUserPasswordPayloadFragment
    }
    ... on UserNotFound {
      ...UserNotFoundFragment
    }
    ... on UserIncorrectStatus {
      ...UserIncorrectStatusFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": ResetUserPasswordInput}
Response
{"data": {"resetUserPassword": ResetUserPasswordPayload}}

subscribeToPlan

Description

Assigns a Plan to an Account for a predefined period of time. If the from parameter is not specified, the plan starts immediately. If the to parameter is not specified, the plan continues indefinitely for recurring plans, or until the end of the plan period for non-recurring plans.

When subscribing to a plan, provide one of the following identifiers:

  • planVersionId: The unique identifier of a specific version of a plan. Use this when you need to enforce a particular plan version without automatic updates.
  • planId: The unique identifier of a plan. This is the preferred method as it ensures that the subscription is continuously updated to the latest active version of the plan, reducing the need for manual interventions. If provided, the subscription will apply the current active version of the specified plan deployed with an alias. This means, if there is no active version of the plan at the time of the API call, SubscribeToPlan will raise an error even if the subscription is for a future date.

Authorized Roles: Account_Admin


Response

Returns a SubscribeToPlanVersionResult!

Arguments
Name Description
input - SubscribeToPlanVersionInput! Parameters for SubscribeToPlan.

Example

Query
mutation subscribeToPlan($input: SubscribeToPlanVersionInput!) {
  subscribeToPlan(input: $input) {
    ... on SubscribeToPlanVersionPayload {
      ...SubscribeToPlanVersionPayloadFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on PlanVersionIsNotAssignable {
      ...PlanVersionIsNotAssignableFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on SubscriptionNotFound {
      ...SubscriptionNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on SubscribeToPlanVersionValidationFailed {
      ...SubscribeToPlanVersionValidationFailedFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on PlanNotFound {
      ...PlanNotFoundFragment
    }
    ... on PlanAliasNotFound {
      ...PlanAliasNotFoundFragment
    }
    ... on PlanAliasNotActive {
      ...PlanAliasNotActiveFragment
    }
  }
}
Variables
{"input": SubscribeToPlanVersionInput}
Response
{
  "data": {
    "subscribeToPlan": SubscribeToPlanVersionPayload
  }
}

triggerRar

Description

Create RARs for all active sessions of an account.

Response

Returns a TriggerRarResult

Arguments
Name Description
input - TriggerRarInput! Payload with provider ID and account ID.

Example

Query
mutation triggerRar($input: TriggerRarInput!) {
  triggerRar(input: $input) {
    ... on TriggerRarPayload {
      ...TriggerRarPayloadFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on RarNotEnabled {
      ...RarNotEnabledFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": TriggerRarInput}
Response
{"data": {"triggerRar": TriggerRarPayload}}

updateAccount

Description

Updates Account attributes.


Authorized Roles: Account_Admin


Response

Returns an UpdateAccountResult!

Arguments
Name Description
input - UpdateAccountInput! Parameters for UpdateAccount.

Example

Query
mutation updateAccount($input: UpdateAccountInput!) {
  updateAccount(input: $input) {
    ... on UpdateAccountPayload {
      ...UpdateAccountPayloadFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on CannotChangeAccountType {
      ...CannotChangeAccountTypeFragment
    }
    ... on PostpaidFieldInPrepaidAccount {
      ...PostpaidFieldInPrepaidAccountFragment
    }
    ... on CannotSetLongFirstBillingCycle {
      ...CannotSetLongFirstBillingCycleFragment
    }
    ... on DayOfMonthAlreadySet {
      ...DayOfMonthAlreadySetFragment
    }
    ... on LifecycleNotFound {
      ...LifecycleNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateAccountInput}
Response
{"data": {"updateAccount": UpdateAccountPayload}}

updateAccountBalanceTypeCounter

Description

Updates or creates a Balance Type Counter for an account based on the provided input parameters. If balanceTypeCounterId is specified, the new configuration will override the settings inherited from the associated BalanceType.

Note: A BalanceType Counter operates on the sum of all balances of the same BalanceType on the account, not on an individual balance.

Response

Returns an AccountBalanceTypeCounterResult

Arguments
Name Description
input - UpdateAccountBalanceTypeCounterInput!

Example

Query
mutation updateAccountBalanceTypeCounter($input: UpdateAccountBalanceTypeCounterInput!) {
  updateAccountBalanceTypeCounter(input: $input) {
    ... on AccountBalanceTypeCounterPayload {
      ...AccountBalanceTypeCounterPayloadFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on AccountBalanceTypeCounterNotFound {
      ...AccountBalanceTypeCounterNotFoundFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateAccountBalanceTypeCounterInput}
Response
{
  "data": {
    "updateAccountBalanceTypeCounter": AccountBalanceTypeCounterPayload
  }
}

updateAccountCohort

Description

Update an existing Account Cohort.

Response

Returns an UpdateAccountCohortResult

Arguments
Name Description
input - UpdateAccountCohortInput!

Example

Query
mutation updateAccountCohort($input: UpdateAccountCohortInput!) {
  updateAccountCohort(input: $input) {
    ... on AccountCohort {
      ...AccountCohortFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on AccountCohortNotFound {
      ...AccountCohortNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
  }
}
Variables
{"input": UpdateAccountCohortInput}
Response
{"data": {"updateAccountCohort": AccountCohort}}

updateArchivingPolicy

Description

Creates a lifecycle rule on EDR S3 bucket to move objects to Glacier store after a period of time.


Authorized Roles: Tenant_Admin


Response

Returns an UpdateArchivingPolicyResult!

Arguments
Name Description
input - UpdateArchivingPolicyInput! Parameters for UpdateArchivingPolicy.

Example

Query
mutation updateArchivingPolicy($input: UpdateArchivingPolicyInput!) {
  updateArchivingPolicy(input: $input) {
    ... on UpdateArchivingPolicyPayload {
      ...UpdateArchivingPolicyPayloadFragment
    }
    ... on UpdateArchivingPolicyFailed {
      ...UpdateArchivingPolicyFailedFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateArchivingPolicyInput}
Response
{
  "data": {
    "updateArchivingPolicy": UpdateArchivingPolicyPayload
  }
}

updateBalance

Description

Updates an existing balance for the provider.

Response

Returns an UpdateBalanceResult

Arguments
Name Description
input - UpdateBalanceInput! Payload with provider ID, balance ID, and fields to be updated.

Example

Query
mutation updateBalance($input: UpdateBalanceInput!) {
  updateBalance(input: $input) {
    ... on BalancePayload {
      ...BalancePayloadFragment
    }
    ... on TransactionHasBeenProcessed {
      ...TransactionHasBeenProcessedFragment
    }
    ... on BalanceNotFound {
      ...BalanceNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateBalanceInput}
Response
{"data": {"updateBalance": BalancePayload}}

updateBalanceType

Description

Updates an existing balance type for the provider.

Response

Returns an UpdateBalanceTypeResult

Arguments
Name Description
input - UpdateBalanceTypeInput! Payload with provider ID, balance type ID, and fields to be updated.

Example

Query
mutation updateBalanceType($input: UpdateBalanceTypeInput!) {
  updateBalanceType(input: $input) {
    ... on BalanceTypePayload {
      ...BalanceTypePayloadFragment
    }
    ... on BalanceTypeNameInUse {
      ...BalanceTypeNameInUseFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on BalanceTypeHasReferences {
      ...BalanceTypeHasReferencesFragment
    }
    ... on BalanceTypeCounterNotFound {
      ...BalanceTypeCounterNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateBalanceTypeInput}
Response
{"data": {"updateBalanceType": BalanceTypePayload}}

updateBalanceTypeCounter

Description

Update or create Balance Type Counter notifications based on the provided input parameters. Creates or updates BalanceTypeCounter.

Response

Returns a BalanceTypeCounterResult

Arguments
Name Description
input - UpdateBalanceTypeCounterInput!

Example

Query
mutation updateBalanceTypeCounter($input: UpdateBalanceTypeCounterInput!) {
  updateBalanceTypeCounter(input: $input) {
    ... on UpdateBalanceTypeCounterPayload {
      ...UpdateBalanceTypeCounterPayloadFragment
    }
    ... on BalanceTypeCounterNotFound {
      ...BalanceTypeCounterNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateBalanceTypeCounterInput}
Response
{
  "data": {
    "updateBalanceTypeCounter": UpdateBalanceTypeCounterPayload
  }
}

updateCampaign

Description

Updates an existing Campaign.


Authorized Roles: Account_Admin


Response

Returns an UpdateCampaignResult!

Arguments
Name Description
input - UpdateCampaignInput!

Example

Query
mutation updateCampaign($input: UpdateCampaignInput!) {
  updateCampaign(input: $input) {
    ... on UpdateCampaignPayload {
      ...UpdateCampaignPayloadFragment
    }
    ... on CampaignAlreadyCompleted {
      ...CampaignAlreadyCompletedFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on OfferNotFound {
      ...OfferNotFoundFragment
    }
    ... on AccountCohortNotFound {
      ...AccountCohortNotFoundFragment
    }
    ... on CampaignNotFound {
      ...CampaignNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on CampaignManagementNotReady {
      ...CampaignManagementNotReadyFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateCampaignInput}
Response
{"data": {"updateCampaign": UpdateCampaignPayload}}

updateDevice

Description

Updates Device attributes.


Authorized Roles: Account_Admin


Response

Returns an UpdateDeviceResult!

Arguments
Name Description
input - UpdateDeviceInput! Parameters for UpdateDevice.

Example

Query
mutation updateDevice($input: UpdateDeviceInput!) {
  updateDevice(input: $input) {
    ... on UpdateDevicePayload {
      ...UpdateDevicePayloadFragment
    }
    ... on DeviceNotFound {
      ...DeviceNotFoundFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateDeviceInput}
Response
{"data": {"updateDevice": UpdateDevicePayload}}

updateFieldMapping

Description

Updates a Field Mapping in draft. Draft field mappings need to be deployed using deployFieldMappings to become effective.


Authorized Roles: Network_Operator, Plan_Publisher


Response

Returns an UpdateFieldMappingResult!

Arguments
Name Description
input - UpdateFieldMappingInput! Parameters for UpdateFieldMapping.

Example

Query
mutation updateFieldMapping($input: UpdateFieldMappingInput!) {
  updateFieldMapping(input: $input) {
    ... on UpdateFieldMappingPayload {
      ...UpdateFieldMappingPayloadFragment
    }
    ... on FieldMappingNotFound {
      ...FieldMappingNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateFieldMappingInput}
Response
{
  "data": {
    "updateFieldMapping": UpdateFieldMappingPayload
  }
}

updateLifecycle

Description

Updates a lifecycle.


Authorized Roles: Plan_Designer, Plan_Publisher


Response

Returns an UpdateLifecycleResult

Arguments
Name Description
input - UpdateLifecycleInput!

Example

Query
mutation updateLifecycle($input: UpdateLifecycleInput!) {
  updateLifecycle(input: $input) {
    ... on LifecyclePayload {
      ...LifecyclePayloadFragment
    }
    ... on LifecycleNotFound {
      ...LifecycleNotFoundFragment
    }
    ... on InvalidNumberOfStates {
      ...InvalidNumberOfStatesFragment
    }
    ... on InvalidStateTransitions {
      ...InvalidStateTransitionsFragment
    }
    ... on ProviderNotFound {
      ...ProviderNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateLifecycleInput}
Response
{"data": {"updateLifecycle": LifecyclePayload}}

updateMyProviderConfig

Description

Updates config of the current tenant.


Authorized Roles: Tenant_Admin


Response

Returns an UpdateMyProviderConfigResult!

Arguments
Name Description
input - UpdateMyProviderConfigInput! Parameters for UpdateMyProviderConfig.

Example

Query
mutation updateMyProviderConfig($input: UpdateMyProviderConfigInput!) {
  updateMyProviderConfig(input: $input) {
    ... on ProviderConfig {
      ...ProviderConfigFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateMyProviderConfigInput}
Response
{"data": {"updateMyProviderConfig": ProviderConfig}}

updateOffer

Description

Updates Offer attributes.


Authorized Roles: Account_Admin


Response

Returns an UpdateOfferResult!

Arguments
Name Description
input - UpdateOfferInput! Parameters for UpdateOffer.

Example

Query
mutation updateOffer($input: UpdateOfferInput!) {
  updateOffer(input: $input) {
    ... on UpdateOfferPayload {
      ...UpdateOfferPayloadFragment
    }
    ... on OfferNotFound {
      ...OfferNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on CampaignsNotEnabled {
      ...CampaignsNotEnabledFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
  }
}
Variables
{"input": UpdateOfferInput}
Response
{"data": {"updateOffer": UpdateOfferPayload}}

updatePlan

Only template APIs are supported moving forward. Deprecated date is 2024-10-31. Expiration date is 2025-01-31.
Description

Updates attributes of a Plan, such as name.

Important: This mutation is deprecated. Only template APIs are supported moving forward. Deprecated date is 2024-10-31. Expiration date is 2025-01-31.


Authorized Roles: Plan_Designer


Response

Returns an UpdatePlanResult!

Arguments
Name Description
input - UpdatePlanInput! Parameters for UpdatePlan.

Example

Query
mutation updatePlan($input: UpdatePlanInput!) {
  updatePlan(input: $input) {
    ... on UpdatePlanPayload {
      ...UpdatePlanPayloadFragment
    }
    ... on PlanNotFound {
      ...PlanNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdatePlanInput}
Response
{"data": {"updatePlan": UpdatePlanPayload}}

updatePlanSubscription

Description

Updates the properties of a Plan instance subscribed by an Account or switches the subscription to a different plan.

  • Plan Switching: If planId or planVersionId is specified, the subscription will be switched to the corresponding plan. The switch is handled similarly to canceling the current plan and subscribing to a new one.
  • Plan Switching: If planId or planVersionId is specified, the subscription will be switched to the corresponding plan. The switch is handled similarly to canceling the current plan and subscribing to a new one but without charging the new plan's purchase fee.
  • Balances: Any balances associated with the current plan will remain intact after switching to a different plan. Balances of the switched plan will be created as well.

When switching plans, it is recommended to use planId because it ensures that the subscription is automatically updated to the latest active version of the new plan going forward, minimizing the need for manual updates. However, if you need to enforce a specific version, you can use planVersionId.


Authorized Roles: Account_Admin


Arguments
Name Description
input - UpdatePlanSubscriptionInput! Parameters for UpdatePlanSubscription.

Example

Query
mutation updatePlanSubscription($input: UpdatePlanSubscriptionInput!) {
  updatePlanSubscription(input: $input) {
    ... on SubscribeToPlanVersionPayload {
      ...SubscribeToPlanVersionPayloadFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on PlanVersionIsNotAssignable {
      ...PlanVersionIsNotAssignableFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on SubscriptionNotFound {
      ...SubscriptionNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on SubscribeToPlanVersionValidationFailed {
      ...SubscribeToPlanVersionValidationFailedFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on PlanNotFound {
      ...PlanNotFoundFragment
    }
    ... on PlanAliasNotFound {
      ...PlanAliasNotFoundFragment
    }
    ... on PlanAliasNotActive {
      ...PlanAliasNotActiveFragment
    }
  }
}
Variables
{"input": UpdatePlanSubscriptionInput}
Response
{
  "data": {
    "updatePlanSubscription": SubscribeToPlanVersionPayload
  }
}

updatePlanVersionFromInitialRecurringFirstUsageTemplate

Description

Updates a plan that was created by using a template.

Arguments
Name Description
input - UpdatePlanVersionFromInitialRecurringFirstUsageTemplateInput! Parameters for UpdatePlanVersionFromInitialRecurringFirstUsageTemplate.

Example

Query
mutation updatePlanVersionFromInitialRecurringFirstUsageTemplate($input: UpdatePlanVersionFromInitialRecurringFirstUsageTemplateInput!) {
  updatePlanVersionFromInitialRecurringFirstUsageTemplate(input: $input) {
    ... on PlanVersionPayload {
      ...PlanVersionPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on CreatePlanValidationFailed {
      ...CreatePlanValidationFailedFragment
    }
    ... on PlanVersionIsReadOnly {
      ...PlanVersionIsReadOnlyFragment
    }
    ... on PlanVersionAlreadyExists {
      ...PlanVersionAlreadyExistsFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on ServiceFormatError {
      ...ServiceFormatErrorFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on PlanVersionUpdateAlreadyInProgress {
      ...PlanVersionUpdateAlreadyInProgressFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "input": UpdatePlanVersionFromInitialRecurringFirstUsageTemplateInput
}
Response
{
  "data": {
    "updatePlanVersionFromInitialRecurringFirstUsageTemplate": PlanVersionPayload
  }
}

updatePlanVersionFromInitialTemplate

Description

Updates Plan Version of a Plan that was originally created by using a template.


Authorized Roles: Plan_Designer


Arguments
Name Description
input - UpdatePlanVersionFromInitialTemplateInput! Parameters for UpdatePlanVersionFromInitialTemplate.

Example

Query
mutation updatePlanVersionFromInitialTemplate($input: UpdatePlanVersionFromInitialTemplateInput!) {
  updatePlanVersionFromInitialTemplate(input: $input) {
    ... on PlanVersionPayload {
      ...PlanVersionPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on CreatePlanValidationFailed {
      ...CreatePlanValidationFailedFragment
    }
    ... on PlanVersionIsReadOnly {
      ...PlanVersionIsReadOnlyFragment
    }
    ... on PlanVersionAlreadyExists {
      ...PlanVersionAlreadyExistsFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on ServiceFormatError {
      ...ServiceFormatErrorFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on PlanVersionUpdateAlreadyInProgress {
      ...PlanVersionUpdateAlreadyInProgressFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdatePlanVersionFromInitialTemplateInput}
Response
{
  "data": {
    "updatePlanVersionFromInitialTemplate": PlanVersionPayload
  }
}

updateRatingGroupHierarchy

Description

Updates and deploys after verifying Rating Group hierarchy.


Authorized Roles: Network_Admin, Plan_Publisher


Response

Returns an UpdateRatingGroupHierarchyResult!

Arguments
Name Description
input - UpdateRatingGroupHierarchyInput! Parameters for UpdateRatingGroupHierarchy.

Example

Query
mutation updateRatingGroupHierarchy($input: UpdateRatingGroupHierarchyInput!) {
  updateRatingGroupHierarchy(input: $input) {
    ... on UpdateRatingGroupHierarchyPayload {
      ...UpdateRatingGroupHierarchyPayloadFragment
    }
    ... on RatingGroupHierarchyHasReferences {
      ...RatingGroupHierarchyHasReferencesFragment
    }
    ... on RatingGroupValidationFailed {
      ...RatingGroupValidationFailedFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateRatingGroupHierarchyInput}
Response
{
  "data": {
    "updateRatingGroupHierarchy": UpdateRatingGroupHierarchyPayload
  }
}

updateSGSNTable

Description

Update the SGSN table for a provider.


Authorized Roles: Network_Operator, Plan_Publisher


Response

Returns an UpdateSGSNTableResult!

Arguments
Name Description
input - UpdateSGSNTableInput! Parameters for UpdateSGSNTable.

Example

Query
mutation updateSGSNTable($input: UpdateSGSNTableInput!) {
  updateSGSNTable(input: $input) {
    ... on UpdateSGSNTablePayload {
      ...UpdateSGSNTablePayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateSGSNTableInput}
Response
{"data": {"updateSGSNTable": UpdateSGSNTablePayload}}

updateSettings

Description

Updates settings of a provider.


Authorized Roles: Plan_Admin, Plan_Publisher


Response

Returns an UpdateSettingsResult!

Arguments
Name Description
input - UpdateSettingsInput! Parameters for UpdateSettings.

Example

Query
mutation updateSettings($input: UpdateSettingsInput!) {
  updateSettings(input: $input) {
    ... on UpdateSettingsPayload {
      ...UpdateSettingsPayloadFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateSettingsInput}
Response
{"data": {"updateSettings": UpdateSettingsPayload}}

updateUser

Description

Updates a specific User for a given tenant. It returns the updated user or an error.


Authorized Roles: Tenant_Admin


Response

Returns an UpdateUserResult!

Arguments
Name Description
input - UpdateUserInput! Parameters for UpdateUser

Example

Query
mutation updateUser($input: UpdateUserInput!) {
  updateUser(input: $input) {
    ... on SaveUserPayload {
      ...SaveUserPayloadFragment
    }
    ... on UserNotFound {
      ...UserNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on UserIsReadOnly {
      ...UserIsReadOnlyFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateUserInput}
Response
{"data": {"updateUser": SaveUserPayload}}

updateUserProfile

Description

Updates user profile for current User.


Authorized Roles: All


Response

Returns an UpdateUserProfileResult!

Arguments
Name Description
input - UpdateUserProfileInput! Parameters for UpdateUserProfile.

Example

Query
mutation updateUserProfile($input: UpdateUserProfileInput!) {
  updateUserProfile(input: $input) {
    ... on SaveUserPayload {
      ...SaveUserPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateUserProfileInput}
Response
{"data": {"updateUserProfile": SaveUserPayload}}

uploadMetadata

Description

Upload metadata for Account provided by customer

Response

Returns an UploadMetadataResult

Arguments
Name Description
input - UploadMetadataInput!

Example

Query
mutation uploadMetadata($input: UploadMetadataInput!) {
  uploadMetadata(input: $input) {
    ... on UploadMetadataPayload {
      ...UploadMetadataPayloadFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UploadMetadataInput}
Response
{"data": {"uploadMetadata": UploadMetadataPayload}}

Types

AWSDate

Description

An extended ISO 8601 date string in the format YYYY-MM-DD.

Example
AWSDate

AWSDateTime

Description

An extended ISO 8601 date and time string in the format YYYY-MM-DDThh:mm:ss.sssZ.

Example
AWSDateTime

AWSEmail

Description

An email address in the format local-part@domain-part as defined by RFC 822.

Example
AWSEmail

AWSJSON

Description

A JSON string. Any valid JSON construct is automatically parsed and loaded in the resolver mapping templates as maps, lists, or scalar values rather than as the literal input strings. Unquoted strings or otherwise invalid JSON result in a GraphQL validation error.

Example
AWSJSON

AWSPhone

Description

A phone number. This value is stored as a string. Phone numbers can contain either spaces or hyphens to separate digit groups. Phone numbers without a country code are assumed to be US/North American numbers adhering to the North American Numbering Package (NANP).

Example
AWSPhone

AWSURL

Description

A URL as defined by RFC 1738. For example, https://www.amazon.com/dp/B000NZW3KC/ or mailto:example@example.com. URLs must contain a schema (http, mailto) and can't contain two forward slashes (//) in the path part.

Example
AWSURL

Account

Description

An account to manage multiple devices.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - ID! A unique identifier of an account.
customData - AWSJSON Any custom data required by the account. Can include used and reserved balance for different services.
parent - Account The parent account in an account hierarchy.
inactivePlanVersions - [SubscribedPlanVersion] Any plan version that the account is subscribed to but is not currently active. Newly subscribed to plans are inactive until the first credit/charge request.
activePlanVersions - [SubscribedPlanVersion] Any plan version that the account is subscribed to and are currently active. The same plan service can not be used in multiple version.
archivedPlanVersions - [SubscribedPlanVersion] Any plan version that the account was subscribed to but the subscription ended.
friendsAndFamily - [String] List of friends and family. This field is deprecated in favor of custom fields. Deprecated date is 2025-02-14. Expiration date is 2025-04-13.
creditLimit - Float The limit an account can be credited to. It should be negative/zero for prepaid accounts and positive for postpaid accounts.
notificationCreditLimitThresholds - [Float] Thresholds of the default monetary balance on the account. Whenever the account balance goes lower than any of the values in the set a notification is sent.
balances - [AccountBalanceInfo!]! Balances associated with the Account, either created through plan subscriptions and renewals or manually added via the createBalance API.
postpaid - AccountPostpaidProperties If account is a postpaid account, i.e. creditLimit is greater than zero, this holds the postpaid properties
churnScore - Float The churn score for the account, which is the probability that this account would churn
activatedAt - AWSDateTime Date of account activation.
accountLifecycle - AccountLifecycle Information about the Account’s assigned Lifecycle
Example
{
  "providerId": "4",
  "id": "4",
  "customData": AWSJSON,
  "parent": Account,
  "inactivePlanVersions": [SubscribedPlanVersion],
  "activePlanVersions": [SubscribedPlanVersion],
  "archivedPlanVersions": [SubscribedPlanVersion],
  "friendsAndFamily": ["xyz789"],
  "creditLimit": 987.65,
  "notificationCreditLimitThresholds": [987.65],
  "balances": [AccountBalanceInfo],
  "postpaid": AccountPostpaidProperties,
  "churnScore": 987.65,
  "activatedAt": AWSDateTime,
  "accountLifecycle": AccountLifecycle
}

AccountAlreadyExists

Description

An error type to be thrown if an account with provided ID already exists.

Fields
Field Name Description
accountId - ID! Already existing account ID.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "accountId": "4",
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

AccountAttributeDimension

Description

Defines a filter dimension for an account attribute.

Fields
Field Name Description
attribute - String! The account attribute to filter on.
dimensionType - AttributeDimensionType! The type of dimension being filtered. Default is INCLUSIVE. If values are in ISO_INSTANT format the type can be: "BEFORE", "AFTER", "BETWEEN", "ON".
values - [String!]! The values to filter on.
Example
{
  "attribute": "abc123",
  "dimensionType": "INCLUSIVE",
  "values": ["abc123"]
}

AccountAttributeDimensionInput

Description

Defines a filter dimension for an account attribute.

Fields
Input Field Description
attribute - String! The account attribute to filter on.
dimensionType - AttributeDimensionType! The type of dimension being filtered. Default is INCLUSIVE. If values are in ISO_INSTANT format the type can be: "BEFORE", "AFTER", "BETWEEN", "ON".
values - [String!]! The values to filter on.
Example
{
  "attribute": "xyz789",
  "dimensionType": "INCLUSIVE",
  "values": ["abc123"]
}

AccountBalanceInfo

Description

Balance details return type.

Fields
Field Name Description
balanceId - ID! ID for the balance.
balanceType - BalanceTypePayload! Each balance is associated with a BalanceType, which defines its characteristics, such as type (e.g., volume, time, rate), notification thresholds, policy counters, and the maximum allowable value.
priority - Float! Priority of the balance. If there are multiple balances of the same type, the one with the highest priority will be used first.
unlimited - Boolean Whether the balance is unlimited or not.
limit - Float

The maximum amount a balance can reach through credit operations. For multiple balances of the same BalanceType on the account, the limit applies independently to each balance. By default, limits are inherited from the balance’s BalanceType and can be overridden at the account level using the createBalance and updateBalance APIs.

Rate-based balances (e.g., the default Monetary balance) can have decimal limits, while others (e.g., volume, time) should use integers.

from - AWSDateTime

Defines the start date of the balance's validity.

  • For balances created through plans, this date aligns with the start of the plan period.
  • For manually created balances, the start date is provided with the createBalance or updateBalance APIs.
to - AWSDateTime

Defines the end date of the balance's validity.

  • For balances created through plans, this date matches the end of the current plan period.
  • For manually created balances, the end date is provided with the createBalance or updateBalance APIs.
total - Float The allowance of the balance configured in the plan service managing that balance. Total is the sum of Available, Reserved and Used. Modifications to the balance through the updateBalance API directly affect the Total value; credits increase Total and debits decrease Total.
reserved - Float The quantity of money or service (bytes, seconds, units) reserved by active sessions.
used - Float The quantity of money or service consumed during the balance’s lifetime where lifetime is defined as the period between the balance 'from' and 'to' dates. The only exception is the default monetary balance on postpaid accounts, which resets monthly on the Billing Day of Month.
available - Float The quantity of money or service available for consumption, excluding active reservations. At renewal, if rollover is configured, the available balance is also adjusted according to rollover settings (e.g., maximum rollover amount per period).
value - Float The quantity of money or service, including active reservations. The calculation is total - used.
counters - [BalanceTypeCounterPayload!]

All counters configured on the balance, including notification counters for allowance thresholds and policy counters to enable PCRF/PCF interworking.

By default, counters are inherited from the BalanceType of the balance and can be overridden at the account level using updateAccountBalanceTypeCounter.

planSubscriptionId - ID The ID of the associated plan subscription if the balance is managed by a plan service.
Example
{
  "balanceId": 4,
  "balanceType": BalanceTypePayload,
  "priority": 123.45,
  "unlimited": true,
  "limit": 987.65,
  "from": AWSDateTime,
  "to": AWSDateTime,
  "total": 123.45,
  "reserved": 123.45,
  "used": 987.65,
  "available": 123.45,
  "value": 123.45,
  "counters": [BalanceTypeCounterPayload],
  "planSubscriptionId": 4
}

AccountBalanceTypeCounterNotFound

Description

An error type to be thrown if the Balance Type Counter was not found with the given inputs for the account.

Fields
Field Name Description
balanceTypeCounterId - ID! Service balanceTypeCounter Id with problem.
balanceTypeId - ID! Service balanceType with problem.
accountId - ID! Account Id with problem.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "balanceTypeCounterId": "4",
  "balanceTypeId": 4,
  "accountId": 4,
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

AccountBalanceTypeCounterPayload

Description

A representation of a single Balance Type Counter overridden in an Account.

Fields
Field Name Description
balanceTypeId - ID! The Balance Type associated with the Balance Type Counter.
accountId - ID! The account ID associated with the Balance Type Counter.
counter - BalanceTypeCounterPayload! The counter information payload.
Example
{
  "balanceTypeId": 4,
  "accountId": "4",
  "counter": BalanceTypeCounterPayload
}

AccountBalanceTypeCounterResult

Description

Return type of BalanceTypeCounter including all possible errors.

  • AccountNotFound (AccountNotFound) - The specified account does not exist.
  • AccountBalanceTypeCounterNotFound (AccountBalanceTypeCounterNotFound) - The specified counter does not exist in the account.
  • BalanceTypeNotFound (BalanceTypeNotFound) - The specified balance type does not exist.
Example
AccountBalanceTypeCounterPayload

AccountBalanceTypeCountersPayload

Description

A representation of BalanceType counters configured on an account.

A BalanceType counter is created on the account the first time a balance of a certain BalanceType is created, either during plan subscription or through the createBalance API. The corresponding counter configuration is inherited from the BalanceType.

Once the counter configuration is copied to the account, any modifications can only be made using the updateAccountBalanceTypeCounter API. Changes made to the BalanceType counters after it is copied to the account are not reflected to the account Balance Type Counters.

Fields
Field Name Description
balanceTypeId - ID! The Balance Type associated with the counter.
accountId - ID! The account ID associated with the Balance Type Counter.
counters - [BalanceTypeCounterPayload!]! List of counter payload on the account configured for the given BalanceType.
Example
{
  "balanceTypeId": "4",
  "accountId": "4",
  "counters": [BalanceTypeCounterPayload]
}

AccountBalanceTypeCountersResult

Description

Return type of several BalanceTypeCounter items including all possible errors.

  • AccountNotFound (AccountNotFound) - The specified account does not exist.
  • AccountBalanceTypeCounterNotFound (AccountBalanceTypeCounterNotFound) - The specified counter does not exist in the account.
  • BalanceTypeNotFound (BalanceTypeNotFound) - The specified balance type does not exist.
Example
AccountNotFound

AccountCohort

Description

The Account Cohort definition for Plan Marketing Campaigns.

Fields
Field Name Description
id - ID! Unique identifier for the Account Cohort.
name - String! Name of the Account Cohort.
dimensions - AccountCohortDimensions! Conditions for Account Dimensions.
nestedConditions - AccountCohortGroups Additional nested conditions.
creationDate - AWSDateTime! Creation date of the Account Cohort.
lastModifiedDate - AWSDateTime! Last modification date of the Account Cohort.
Example
{
  "id": "4",
  "name": "xyz789",
  "dimensions": AccountCohortDimensions,
  "nestedConditions": AccountCohortGroups,
  "creationDate": AWSDateTime,
  "lastModifiedDate": AWSDateTime
}

AccountCohortConnection

Description

Pagination result for the GetAccountCohorts query.

Fields
Field Name Description
edges - [AccountCohortEdge!]! List of nodes in the connection.
pageInfo - PageInfo! Information about pagination in the connection.
Example
{
  "edges": [AccountCohortEdge],
  "pageInfo": PageInfo
}

AccountCohortDimensions

Description

Account Cohort dimensions to filter on.

Fields
Field Name Description
attributes - [AccountAttributeDimension] Filter based on account attributes.
userAttributes - [AccountAttributeDimension] Filter based on account user attributes.
metrics - [AccountCohortMetricDimension] Metrics based criteria.
Example
{
  "attributes": [AccountAttributeDimension],
  "userAttributes": [AccountAttributeDimension],
  "metrics": [AccountCohortMetricDimension]
}

AccountCohortDimensionsInput

Description

Account Cohort dimensions to filter on.

Fields
Input Field Description
attributes - [AccountAttributeDimensionInput] Filter based on account custom attributes.
metrics - [AccountCohortMetricDimensionInput] Metrics based criteria.
userAttributes - [AccountAttributeDimensionInput] Filter based on account user attributes.
Example
{
  "attributes": [AccountAttributeDimensionInput],
  "metrics": [AccountCohortMetricDimensionInput],
  "userAttributes": [AccountAttributeDimensionInput]
}

AccountCohortEdge

Description

Item in the pagination result for the GetAccountCohorts query.

Fields
Field Name Description
node - AccountCohort! The item at the end of the edge.
cursor - String! A cursor for use in pagination.
Example
{
  "node": AccountCohort,
  "cursor": "abc123"
}

AccountCohortGroup

Description

Defines an Account Cohort group of conditions on several dimensions joined by a logical operation.

Fields
Field Name Description
dimensions - [AccountCohortDimensions!]! Dimensions of the group.
join - AccountCohortJoinType The joining approach for conditions of the dimensions.
Example
{"dimensions": [AccountCohortDimensions], "join": "ALL"}

AccountCohortGroupInput

Description

Defines an Account Cohort group of conditions on several dimensions joined by a logical operation.

Fields
Input Field Description
dimensions - [AccountCohortDimensionsInput!]! Dimensions of the group.
join - AccountCohortJoinType The joining approach for conditions of the dimensions. Default is ALL.
Example
{
  "dimensions": [AccountCohortDimensionsInput],
  "join": "ALL"
}

AccountCohortGroups

Description

Defines a set of Account Cohort condition groups joined by a logical operation.

Fields
Field Name Description
groups - [AccountCohortGroup]! List of nested groups.
join - AccountCohortJoinType The joining approach for conditions of the groups.
Example
{"groups": [AccountCohortGroup], "join": "ALL"}

AccountCohortGroupsInput

Description

Defines a set of Account Cohort condition groups joined by a logical operation.

Fields
Input Field Description
groups - [AccountCohortGroupInput]! List of groups within the cohort.
join - AccountCohortJoinType The joining approach for conditions of the groups. Default is ALL.
Example
{"groups": [AccountCohortGroupInput], "join": "ALL"}

AccountCohortInput

Description

Defines the Account Cohort properties.

Fields
Input Field Description
name - String! The name of the cohort.
dimensions - AccountCohortDimensionsInput! The dimensions for the cohort.
nestedConditions - AccountCohortGroupsInput Additional nested conditions.
Example
{
  "name": "abc123",
  "dimensions": AccountCohortDimensionsInput,
  "nestedConditions": AccountCohortGroupsInput
}

AccountCohortJoinType

Description

Defines how the set of filters is joined together.

Values
Enum Value Description

ALL

Match all of the results (AND operator).

ANY

Match any of the results (OR operator).

NONE

Match none of the results (NOT operator).
Example
"ALL"

AccountCohortMetricDimension

Description

The filter dimension for an account metric.

Fields
Field Name Description
metric - AccountMetric! The account metric
dimensionType - MetricDimensionType! The comparison operator for the dimension. Default is EQUAL.
value - Float! The values to compare with.
Example
{"metric": "churnScore", "dimensionType": "GREATER_THAN", "value": 123.45}

AccountCohortMetricDimensionInput

Description

The filter dimension for an account metric.

Fields
Input Field Description
metric - AccountMetric! The account metric
dimensionType - MetricDimensionType! The comparison operator for the dimension. Default is EQUAL.
value - Float! The values to compare with.
Example
{"metric": "churnScore", "dimensionType": "GREATER_THAN", "value": 123.45}

AccountCohortNotFound

Description

An error type to be thrown if a given Account Cohort was not found.

Fields
Field Name Description
providerId - ID! The unique identifier for the Service Provider.
id - ID! The unique identifier for the Account Cohort.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "id": 4,
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

AccountHasReferences

Description

An error type to be thrown if an account has references preventing it from deletion.

Fields
Field Name Description
providerId - ID! An account for a provided provider ID has references (such as devices or children accounts) preventing it from deletion.
accountId - ID! An account with a provided account ID has references (such as devices or children accounts) preventing it from deletion.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "accountId": 4,
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

AccountLifecycle

Description

Information about the Account’s assigned Lifecycle.

Fields
Field Name Description
lifecycle - Lifecycle! Assigned Lifecycle.
state - String! Current state within the assigned Lifecycle.
Example
{
  "lifecycle": Lifecycle,
  "state": "xyz789"
}

AccountLifecycleInput

Description

Information about the Account’s assigned Lifecycle

Fields
Input Field Description
lifecycle - ID! Assigned Lifecycle
state - String Initial state within the assigned Lifecycle. Null indicates to use the lifecycle’s default state
Example
{
  "lifecycle": "4",
  "state": "xyz789"
}

AccountMetric

Description

Metrics reported for an account for usage in account cohort filters.

Values
Enum Value Description

churnScore

The churn score of users.

averageMonthlySpend

The average monthly spend of users.
Example
"churnScore"

AccountNotFound

Description

An error type to be thrown if an account was not found.

Fields
Field Name Description
providerId - ID! An account for a provided provider ID was not found.
accountId - ID! An account with a provided account ID was not found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "accountId": "4",
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

AccountPostpaidProperties

Description

Type to hold the postpaid properties of accounts

Fields
Field Name Description
timezone - String The timezone of the user in +/-hh:mm or Country/City format. This is a property for postpaid accounts only. This is a property for postpaid accounts only.
billingDayOfMonth - Int The day of month for resetting balance and units for account. Value is between 1 and 31 inclusive. This is a property for postpaid accounts only.
newBillingDayOfMonth - Int The new day of month for resetting balance and units for account. Value is between 1 and 31 inclusive. This is a property for postpaid accounts only.
lastBillingDate - AWSDate The date (in yyyy-mm-dd format) of the previous billing. This is a property for postpaid accounts only.
longFirstBillingCycle - Boolean Whether the first billing cycle is a long one, e.g. if billing DoM is on the 1st and the account was created on the 16th. If this value is true, it means that the first bill will be for 45 days, while if false, bill will be for 15 days only. This is a property for postpaid accounts only.
newLongFirstBillingCycle - Boolean Whether the new first billing cycle is a long one, e.g. if billing DoM is on the 1st and the account was created on the 16th. If this value is true, it means that the first bill will be for 45 days, while if false, bill will be for 15 days only. This is a property for postpaid accounts only.
Example
{
  "timezone": "abc123",
  "billingDayOfMonth": 987,
  "newBillingDayOfMonth": 123,
  "lastBillingDate": AWSDate,
  "longFirstBillingCycle": false,
  "newLongFirstBillingCycle": false
}

AccountResult

Description

Return type of Account including all possible errors.

Example
Account

AdjustmentType

Description

Balance adjustment type.

Values
Enum Value Description

CREDIT

If amount need to be added to the balance.

DEBIT

If amount need to be subtracted from the balance.

SET

If amount need to be set as the balance.

NONE

If no balance adjustment.
Example
"CREDIT"

Alias

Fields
Field Name Description
planVersionId - ID! The plan version ID that is being aliased.
effectiveTime - AWSDateTime The effective time the plan version ID becomes active for the alias.
migrationType - MigrationType! The migration type of the alias.
Example
{
  "planVersionId": 4,
  "effectiveTime": AWSDateTime,
  "migrationType": "TIME"
}

AliasInput

Fields
Input Field Description
effectiveTime - AWSDateTime The optional time the new plan version should become active in the alias. Needs to be at least 6min in the future. If not provided and 'migrationFromVersions' is not provided as well, the alias will be active in 6min in the future.
migrationType - MigrationType The optional migration type how the new plan version should become active. The default is TIME if not passed.
Example
{"effectiveTime": AWSDateTime, "migrationType": "TIME"}

AnnouncementMapping

Description

Type for mapping specific conditions to announcement codes.

Fields
Field Name Description
endUserServiceDenied - Float Announcement code to return when end user service is denied. Providing a negative value will explicitly delete it.
quotaLimitReached - Float Announcement code to return when quota limit is reached. Providing a negative value will explicitly delete it.
otherError - Float Announcement code to return for other error conditions. Providing a negative value will explicitly delete it.
Example
{
  "endUserServiceDenied": 987.65,
  "quotaLimitReached": 123.45,
  "otherError": 123.45
}

AnnouncementMappingInput

Description

Input type for mapping specific conditions to announcement codes.

Fields
Input Field Description
endUserServiceDenied - Float Announcement code to return when end user service is denied. Providing a negative value will explicitly delete it.
quotaLimitReached - Float Announcement code to return when quota limit is reached. Providing a negative value will explicitly delete it.
otherError - Float Announcement code to return for other error conditions. Providing a negative value will explicitly delete it.
Example
{
  "endUserServiceDenied": 987.65,
  "quotaLimitReached": 123.45,
  "otherError": 987.65
}

ApiLimitsConfig

Description

The configurations for limiting a specific API.

Fields
Field Name Description
apiType - ApiType! API type including 4G/5G interface.
rejectRequestsOverSoftLimit - Boolean If true, API requests are rejected beyond the soft limit.
softLimitTps - Int The soft limit for the average number of transactions per second.
hardLimitTps - Int The hard limit for the average number of transactions per second.
overSoftLimitUntil - AWSDateTime DateTime when the provider will no longer be over the soft limit.
overHardLimitUntil - AWSDateTime DateTime when the provider will no longer be over the hard limit.
Example
{
  "apiType": "DA_GY",
  "rejectRequestsOverSoftLimit": false,
  "softLimitTps": 987,
  "hardLimitTps": 123,
  "overSoftLimitUntil": AWSDateTime,
  "overHardLimitUntil": AWSDateTime
}

ApiType

Description

All possible API types including 4G/5G interface.

Values
Enum Value Description

DA_GY

Diameter Adapter (4G) Gy interface.

DA_SY

Diameter Adapter (4G) Sy interface.

ENGINE_N40

Engine (5G) n40 interface.

ENGINE_N28

Engine (5G) n28 interface.

APPSYNC

AppSync (GraphQL) API.
Example
"DA_GY"

ArchivePlanVersionInput

Description

Input type of ArchivePlanVersion.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planVersionId - ID! An existing plan version ID.
Example
{"providerId": "4", "planVersionId": 4}

ArchivePlanVersionPayload

Description

Return type of ArchivePlanVersion.

Fields
Field Name Description
archivedPlanVersion - PlanVersion! A plan version that has been archived.
Example
{"archivedPlanVersion": PlanVersion}

ArchivePlanVersionResult

Description

Return type of ArchivePlanVersion including all possible errors.

Example
ArchivePlanVersionPayload

AssignablePlanVersionInput

Description

Input type of MakePlanVersionAssignable and MakePlanVersionNotAssignable.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planVersionId - ID! A unique identifier of a plan version to make assignable or not assignable.
Example
{"providerId": "4", "planVersionId": 4}

AssignablePlanVersionResult

Description

Return type of MakePlanVersionAssignable and MakePlanVersionNotAssignable including all possible errors.

  • PlanVersionNotFound (PlanVersionNotFound) - The requested plan version with the provided ID cannot be found.
  • MigrationAlreadyInProgress (MigrationAlreadyInProgress) - Another migration on the same plan can be done only when the current migration is finished.
  • PlanVersionWrongTransition (PlanVersionIsAlreadyInState) - The plan version is already in the correct state. Transition is not required.
  • PlanVersionWrongTransition (PlanVersionIsAlreadyInState) - The plan version is already archived and can not move to suspended anymore.
  • PlanVersionWrongTransition (PlanVersionCanNotBeAvailable) - The state of a plan version can be changed to available only if it is in suspended or deployed state.
  • PlanVersionWrongTransition (PlanVersionCanNotBeSuspended) - The state of a plan version can be changed to suspended only if it is in available or deployed state.
  • PlanVersionWrongTransition (PlanAliasUsesVersions) - The plan version is part of a plan alias and other versions of the plan alias that would be made unassignable are either in use or will be in use by the alias.
  • InternalServerError (ChargeEngineNotAvailable) - The charge engine is not available at this time.
Example
PlanVersionPayload

AttributeDimensionType

Description

The account attribute dimension type.

Values
Enum Value Description

INCLUSIVE

Accounts matching the specified values would be included in the cohort.

EXCLUSIVE

Accounts matching the specified values would be excluded from the cohort.

CONTAINS

Accounts having the attribute value with the given substring would be included in the cohort.

BEFORE

Accounts having the attribute value as a datetime before the given value would be included in the cohort.

AFTER

Accounts having the attribute value as a datetime after the given value would be included in the cohort.

BETWEEN

Accounts having the attribute value as a datetime between the given values would be included in the cohort.

ON

Accounts having the attribute value as a date matching the given value would be included in the cohort. The time component in the attribute is ignored.
Example
"INCLUSIVE"

AuthProvider

Values
Enum Value Description

apiKey

iam

oidc

userPools

Example
"apiKey"

AuthRule

Fields
Input Field Description
allow - AuthStrategy!
provider - AuthProvider
ownerField - String
identityClaim - String
groupClaim - String
groups - [String]
groupsField - String
operations - [ModelOperation]
queries - [ModelQuery]
mutations - [ModelMutation]
Example
{
  "allow": "owner",
  "provider": "apiKey",
  "ownerField": "xyz789",
  "identityClaim": "abc123",
  "groupClaim": "abc123",
  "groups": ["xyz789"],
  "groupsField": "abc123",
  "operations": ["create"],
  "queries": ["get"],
  "mutations": ["create"]
}

AuthStrategy

Values
Enum Value Description

owner

groups

private

public

Example
"owner"

BalanceHasReferences

Description

An error type to be thrown if the balance is used in an active account.

Fields
Field Name Description
balanceId - ID! The ID of the rating group that has references.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "balanceId": 4,
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

BalanceNotFound

Description

An error type to be thrown if a balance was not found.

Fields
Field Name Description
providerId - ID! The provider for which the balance ID wasn't found.
balanceId - ID! The balance ID that wasn't found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "balanceId": 4,
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

BalancePayload

Description

Balance return type.

Fields
Field Name Description
providerId - ID! Provider ID.
accountId - ID! Account ID.
balanceInfo - AccountBalanceInfo! Details of the created balance, including its type, value, and validity.
transactionId - ID!

The transaction ID returned as a result of the createBalance API call. This ID ensures idempotency and allows for the correlation of transactions between Totogi and upstream systems.

If not provided in the request, Totogi generates a unique identifier for the transaction.

Example
{
  "providerId": 4,
  "accountId": "4",
  "balanceInfo": AccountBalanceInfo,
  "transactionId": "4"
}

BalanceTypeCounterInput

Description

Input parameters for updating Balance Type Counter configuration.

Fields
Input Field Description
balanceTypeCounterId - ID The unique identifier for the Balance Type Counter. If balanceTypeCounterId is not provided, a new counter will be created. Otherwise, the existing counter will be modified.
name - String

The unique name associated with the Balance Type Counter. This name will appear in the Event Bridge notifications. If the counter is used to track policy management, the name should be set to the PCRF policy counter name, while individual state names should match the PCRF counter value in the states array.

The name is required if balanceTypeCounterId is not provided to create a new counter. Otherwise, the existing counter name will be modified. Name must be between 1 and 50 characters and consist of letters, digits, or special characters.

period - BalanceTypeCounterPeriodInput The optional reset date for the Balance Type Counter. Note: This feature is reserved for future implementation and is currently not functional.
isActive - Boolean Indicates whether the counter is active or not.
states - [BalanceTypeCounterStateInput] An optional list of states associated with the Balance Type Counter. The current state of a counter is determined by comparing the threshold value against the balance values, either the used balance (if isOnUsedBalance is true) or the available balance (if isOnUsedBalance is false). The isExclusive parameter determines whether reservations are included on top of available or used when calculating the current state.
isExclusive - Boolean

Indicates whether the counter includes or excludes reservations when calculating the current state.

  • If isExclusive is true, reservations are not added to the used or the available balance.
  • If isExclusive is false, reservations are added on top of the used or available balance when determining the current state.
isOnUsedBalance - Boolean Indicates whether the counter operates on the remaining (available) balance or the used balance.
Example
{
  "balanceTypeCounterId": 4,
  "name": "xyz789",
  "period": BalanceTypeCounterPeriodInput,
  "isActive": true,
  "states": [BalanceTypeCounterStateInput],
  "isExclusive": true,
  "isOnUsedBalance": false
}

BalanceTypeCounterNotFound

Description

An error type to be thrown if Balance Type Counter was not found with the given inputs.

Fields
Field Name Description
balanceTypeCounterId - ID! Service balanceTypeCounter Id with problem.
balanceTypeId - ID! Service balanceType with problem.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "balanceTypeCounterId": "4",
  "balanceTypeId": "4",
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

BalanceTypeCounterPayload

Description

A representation of Balance Type Counter.

Fields
Field Name Description
balanceTypeCounterId - ID! The unique identifier for the Balance Type Counter.
name - String! The unique name associated with the Balance Type Counter. This name will appear in the Event Bridge notifications. If the counter is used to track policy management, the name should be the PCRF policy counter name, while individual state names should match the PCRF counter value in the states array.
period - BalanceTypeCounterPeriod The optional reset date for the Balance Type Counter. Note: This feature is reserved for future implementation and is currently not functional.
isActive - Boolean Indicates whether the counter is active or not.
states - [BalanceTypeCounterState]

An optional list of states associated with the Balance Type Counter.

The current state of a counter is determined by comparing the threshold value against the balance values, either the used balance (if isOnUsedBalance is true) or the available balance (if isOnUsedBalance is false).

The isExclusive parameter determines whether reservations are included on top of available or used when calculating the current state.

isExclusive - Boolean!

Indicates whether the counter includes or excludes reservations when calculating the current state.

  • If isExclusive is true, reservations are not added to the used or the available balance.
  • If isExclusive is false, reservations are added on top of the used or available balance when determining the current state.
isOnUsedBalance - Boolean! Indicates whether the counter operates on the remaining (available) balance or the used balance.
Example
{
  "balanceTypeCounterId": "4",
  "name": "abc123",
  "period": BalanceTypeCounterPeriod,
  "isActive": false,
  "states": [BalanceTypeCounterState],
  "isExclusive": true,
  "isOnUsedBalance": true
}

BalanceTypeCounterPeriod

Description

Information when balance counter value resets.

Important: This feature is reserved for future implementation and is currently not functional.

Fields
Field Name Description
type - CounterPeriodType! The period when counter value must be reset.
hourOfDay - Int The hour at which a balance type counter is reset in UTC in case of DAILY periods.
dayOfMonth - Int The day on which a balance type counter is reset in case of MONTHLY periods.
Example
{"type": "SAME_AS_PLAN", "hourOfDay": 987, "dayOfMonth": 123}

BalanceTypeCounterPeriodInput

Description

Information when balance counter value must be reset.

Important: This feature is reserved for future implementation and is currently not functional.

Fields
Input Field Description
type - CounterPeriodType! Determines the period when the counter value must be reset. Use the option NONE when providing the counter period.
hourOfDay - Int The hour at which a balance type counter is reset in UTC. Applicable for DAILY periods. Has to be in range of 0 - 23. Default is 0.
dayOfMonth - Int The day on which a balance type counter is reset. Required for MONTHLY periods. Has to be in range of 1 - 31. If the day is not valid for the month, the reset will happen on the last day of the month.
Example
{"type": "SAME_AS_PLAN", "hourOfDay": 987, "dayOfMonth": 123}

BalanceTypeCounterResult

Description

Return type of BalanceTypeCounter including all possible errors.

  • BalanceTypeCounterNotFound (BalanceTypeCounterNotFound) - The balance type ID provided does not exist.
  • BalanceTypeNotFound (BalanceTypeNotFound) - The balance type ID provided does not exist.
Example
UpdateBalanceTypeCounterPayload

BalanceTypeCounterState

Description

Defines the name, threshold, and action for a Balance Type Counter state.

A state represents a specific threshold in the counter’s operation and triggers the configured actions when that threshold is reached. Each counter has at least one initial state with a null threshold.

Fields
Field Name Description
name - String!

The unique name of the Balance Type Counter's current state. This name is used to identify both the previous and current states in Event Bridge notifications. If the counter is configured for policy management, state names should correspond to the PCRF policy counter values of the associated policy counter.

The name must be between 1 and 50 characters and consist of letters, digits, or special characters.

threshold - Float

The threshold value that determines when the Balance Type Counter transitions to the specified state. If no threshold is provided, the state is considered the default state. This threshold is compared against either the used or available balance to trigger state transitions.

  • For the used balance, a state is reached if the used balance is greater than the corresponding threshold.
  • For the remaining balance, a state is reached if the available balance is less than the corresponding state threshold.
actions - [BalanceTypeCounterStateAction!]! Actions to perform when the state is triggered.
Example
{
  "name": "abc123",
  "threshold": 987.65,
  "actions": ["NOTIFY"]
}

BalanceTypeCounterStateAction

Description

The action to perform when a Balance Type Counter State is triggered.

Values
Enum Value Description

NOTIFY

Trigger notification when the state is triggered.

BLOCK_BALANCE

Block the balance (if not blocked) when this state is triggered.

UNBLOCK_BALANCE

Unblock the balance (if blocked) when this state is triggered.
Example
"NOTIFY"

BalanceTypeCounterStateInput

Description

Defines the name, threshold, and action for a Balance Type Counter state. A state represents a specific threshold in the counter’s operation and triggers the configured actions when that threshold is reached. Each counter must have at least one initial state with a null threshold. If not provided, the backend automatically creates an initial state with name: "normal", threshold: null, and action: "notify".

Fields
Input Field Description
name - String!

The unique name of the Balance Type Counter's current state. This name is used to identify both the previous and current states in Event Bridge notifications.

If the counter is configured for policy management, state names should correspond to the PCRF values of the associated policy counter. The name must be between 1 and 50 characters and consist of letters, digits, or special characters.

threshold - Float

The threshold value that determines when the Balance Type Counter transitions to the specified state. If no threshold is provided, the state is considered the default state. This threshold is compared against either the used or available balance to trigger state transitions.

  • For the used balance, a state is reached if the used balance is greater than the corresponding threshold.
  • For the remaining balance, a state is reached if the available balance is less than the corresponding state threshold.
actions - [BalanceTypeCounterStateAction!]

Specifies the actions to be performed when the counter reaches the given state.

  • If no actions are desired, provide an empty array to prevent any action from being triggered.
  • If actions is not provided at all, a default NOTIFY action is created.

Actions typically include notifications sent to Event Bridge. If the counter is configured for Policy Management, the PCRF is additionally notified about state changes for the subscribed counters.

Example
{
  "name": "abc123",
  "threshold": 123.45,
  "actions": ["NOTIFY"]
}

BalanceTypeCountersPayload

Description

A representation of Balance Type Counters associated with a balance type.

Fields
Field Name Description
balanceTypeId - ID! The Balance Type associated with the Balance Type Counter.
counters - [BalanceTypeCounterPayload]! The counters information payload.
Example
{
  "balanceTypeId": 4,
  "counters": [BalanceTypeCounterPayload]
}

BalanceTypeHasReferences

Description

An error type to be thrown if the balance type is used in an active plan.

Fields
Field Name Description
balanceTypeId - ID! The ID of the rating group that has references.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "balanceTypeId": "4",
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

BalanceTypeNameInUse

Description

An error type to be thrown if the BalanceType name is already in use.

Fields
Field Name Description
balanceTypeId - ID! The Balance Type ID which uses the name.
name - String! Balance Type Name with problem.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "balanceTypeId": 4,
  "name": "abc123",
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

BalanceTypeNotFound

Description

An error type to be thrown if a balance type was not found.

Fields
Field Name Description
providerId - ID! The provider for which the balance type ID wasn't found.
balanceTypeId - ID! The balance type ID that wasn't found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "balanceTypeId": 4,
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

BalanceTypePayload

Description

Balance type return type.

Fields
Field Name Description
balanceTypeId - ID! ID for the balance type.
providerId - ID! Provider ID.
name - String! Name of the balance type.
unitType - UnitType! Unit type of the balance type.
limit - Float

The maximum amount a balance of a specific BalanceType can reach through credit operations. For multiple balances of the same BalanceType on the account, the limit applies independently to each balance.

Rate-based balances (e.g., the default Monetary balance) can have decimal limits, while others (e.g., volume, time) should use integers.

rateBased - Boolean! Specifies whether the BalanceType is rate-based, like the default Monetary balance, or allowance-based, measured in units (e.g., time, volume).
counters - [BalanceTypeCounterPayload!] List of counters configured for the given BalanceType.
Example
{
  "balanceTypeId": "4",
  "providerId": "4",
  "name": "xyz789",
  "unitType": "TIME",
  "limit": 123.45,
  "rateBased": true,
  "counters": [BalanceTypeCounterPayload]
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

BulkUploadMetadataInput

Description

Input parameters for bulk uploading metadata

Fields
Input Field Description
providerId - ID! Provider ID.
Example
{"providerId": 4}

BulkUploadMetadataJobNotFound

Description

An error type to be thrown if a job was not found for given ID.

Fields
Field Name Description
providerId - ID! Service provider ID with problem.
jobId - ID! Job ID with problem.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "jobId": 4,
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

BulkUploadMetadataJobStatus

Description

Status of a bulk update job.

Values
Enum Value Description

CREATED

The job was created, but a file was not yet provided.

STARTED

The job was started, but not yet completed.

SUCCESS

The job ended successfully.

FAILURE

The job ended with a failure.
Example
"CREATED"

BulkUploadMetadataPayload

Description

Return type of BulkUploadMetadata

Fields
Field Name Description
jobId - ID! The ID of the job that was created for the bulk upload.
uploadUrl - AWSURL! The pre-signed URL to use for uploading a GZIP input file.
Example
{
  "jobId": "4",
  "uploadUrl": AWSURL
}

BulkUploadMetadataResult

Example
BulkUploadMetadataPayload

Campaign

Description

Campaign details.

Fields
Field Name Description
providerId - ID! The object belongs to a provider.
id - ID! The unique identifier for the campaign.
name - String! The name of the campaign.
description - String A custom description of the campaign.
campaignSchedule - CampaignSchedule Specifies the schedule settings for a campaign.
campaignEmailMessage - CampaignEmailMessage Specifies the content for an email message that's sent to recipients of a campaign.
offers - [Offer!] Offers for this campaign.
cohort - AccountCohort! Cohort for this campaign.
state - CampaignState! The current status of the campaign.
createdAt - AWSDateTime! When it was created.
modifiedAt - AWSDateTime! When it was last modified.
Example
{
  "providerId": 4,
  "id": "4",
  "name": "xyz789",
  "description": "xyz789",
  "campaignSchedule": CampaignSchedule,
  "campaignEmailMessage": CampaignEmailMessage,
  "offers": [Offer],
  "cohort": AccountCohort,
  "state": "COMPLETED",
  "createdAt": AWSDateTime,
  "modifiedAt": AWSDateTime
}

CampaignActivityDetail

Description

A key/value for grouping details about activity metrics of the campaign.

Fields
Field Name Description
date - AWSDate! Date of the delivery.
delivered - Float! The number of delivered messages.
Example
{"date": AWSDate, "delivered": 123.45}

CampaignActivityEntry

Description

The actual statistics for the campaign execution.

Fields
Field Name Description
state - CampaignExecutionState! The current status of the activity.
successfulAccountCount - Int! The total number of accounts that the campaign successfully delivered messages to.
totalAccountCount - Int! The total number of accounts that the campaign successfully delivered messages to.
scheduledStart - AWSDateTime The scheduled start time of the activity.
actualStart - AWSDateTime The actual start time of the activity.
end - AWSDateTime The actual end time when the activity was cancelled or completed.
executionMetrics - CampaignExecutionMetric The metrics for the execution.
Example
{
  "state": "PENDING",
  "successfulAccountCount": 123,
  "totalAccountCount": 987,
  "scheduledStart": AWSDateTime,
  "actualStart": AWSDateTime,
  "end": AWSDateTime,
  "executionMetrics": CampaignExecutionMetric
}

CampaignAlreadyCompleted

Description

An error type to be thrown if campaign was already completed with the given inputs.

Fields
Field Name Description
providerId - ID! The campaign for a provided provider ID was already completed.
campaignId - ID! campaignId with problem.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "campaignId": 4,
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

CampaignConnection

Description

A connection to a list of Campaign items.

Fields
Field Name Description
edges - [CampaignEdge!]! List of campaigns.
pageInfo - PageInfo! Information about pagination in a connection.
Example
{
  "edges": [CampaignEdge],
  "pageInfo": PageInfo
}

CampaignEdge

Description

An edge in a connection.

Fields
Field Name Description
node - Campaign! The item at the end of the edge.
cursor - String A cursor for use in pagination.
Example
{
  "node": Campaign,
  "cursor": "xyz789"
}

CampaignEmailMessage

Description

Campaign email message content.

Fields
Field Name Description
body - String The body of the email for recipients whose email clients don't render HTML content.
htmlBody - String! The body of the email, in HTML format, for recipients whose email clients render HTML content.
subject - String! The subject line, or title, of the email.
Example
{
  "body": "abc123",
  "htmlBody": "xyz789",
  "subject": "abc123"
}

CampaignEmailMessageInput

Description

Input for campaign email message content.

Fields
Input Field Description
body - String The body of the email for recipients whose email clients don't render HTML content.
htmlBody - String! The body of the email, in HTML format, for recipients whose email clients render HTML content.
subject - String! The subject line, or title, of the email.
Example
{
  "body": "abc123",
  "htmlBody": "xyz789",
  "subject": "xyz789"
}

CampaignExecutionMetric

Description

The detailed statistics for the campaign.

Fields
Field Name Description
hardBounceRate - Float For all campaign runs, the percentage of email messages that couldn't be delivered to recipients. This metric measures only hard bounces—that is, messages in which the recipient's email address had a permanent issue that prevented the message from being delivered.
successfulDeliveryRate - Float For all campaign runs, the percentage of messages that were delivered to recipients.
successfulDeliveryGroupedByDate - [CampaignActivityDetail] For all campaign runs, the percentage of messages that were delivered to recipients during each day in the specified date range. The query results for this metric are grouped by calendar day.
emailOpenRate - Float For all campaign runs, the percentage of email messages that were opened by recipients.
directEmailOpens - Float For each campaign run, the number of email messages that were opened by recipients.
uniqueDeliveries - Float For all campaign runs, the number of unique endpoints that messages were delivered to.
uniqueDeliveriesByDate - [CampaignActivityDetail] For all campaign runs, the number of unique endpoints that messages were delivered to, for each day in the specified date range. The query results for this metric are grouped by calendar day.
clicks - Float For each campaign run, the number of times that recipients clicked links in the email message. If a single recipient clicked multiple links in the message, or clicked the same link more than once, each click is included in the count.
successfulDeliveries - Float For each campaign run, the number of messages that were delivered to recipients.
attemptedDeliveries - Float For each campaign run, the number of messages that were sent.
Example
{
  "hardBounceRate": 123.45,
  "successfulDeliveryRate": 123.45,
  "successfulDeliveryGroupedByDate": [
    CampaignActivityDetail
  ],
  "emailOpenRate": 987.65,
  "directEmailOpens": 123.45,
  "uniqueDeliveries": 987.65,
  "uniqueDeliveriesByDate": [CampaignActivityDetail],
  "clicks": 123.45,
  "successfulDeliveries": 987.65,
  "attemptedDeliveries": 123.45
}

CampaignExecutionState

Description

Status of the campaign.

Values
Enum Value Description

PENDING

The campaign is pending.

INITIALIZING

The campaign is invalid.

RUNNING

The campaign is running.

PAUSED

The campaign is paused.

CANCELLED

The campaign has been cancelled.

COMPLETED

The campaign has been completed.

FAIL

The campaign failed.
Example
"PENDING"

CampaignFrequency

Description

Frequency at which the campaign is sent.

Values
Enum Value Description

ONCE

Campaign is sent once.

HOURLY

Campaign is sent hourly.

DAILY

Campaign is sent daily.

WEEKLY

Campaign is sent weekly.

MONTHLY

Campaign is sent monthly.
Example
"ONCE"

CampaignManagementNotReady

Description

An error type to be thrown if the campaign management is not fully ready.

Fields
Field Name Description
providerId - ID! The unique identifier for the Provider.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

CampaignNotFound

Description

An error type to be thrown if campaign was not found with the given inputs.

Fields
Field Name Description
providerId - ID! The campaign for a provided provider ID was not found.
campaignId - ID! campaignId with problem.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "campaignId": 4,
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

CampaignSchedule

Description

Campaign schedule settings.

Fields
Field Name Description
startDate - AWSDateTime! The scheduled start date of the campaign in ISO 8601 format.
endDate - AWSDateTime The scheduled end date of the campaign in ISO 8601 format.
frequency - CampaignFrequency! The frequency at which the campaign is sent.
Example
{
  "startDate": AWSDateTime,
  "endDate": AWSDateTime,
  "frequency": "ONCE"
}

CampaignScheduleInput

Description

Input for campaign schedule settings.

Fields
Input Field Description
startDate - AWSDateTime The scheduled start date of the campaign in ISO 8601 format. Optional, Campaign is started immediately if omitted.
endDate - AWSDateTime! The scheduled end date of the campaign in ISO 8601 format.
frequency - CampaignFrequency! The frequency at which the campaign is sent.
Example
{
  "startDate": AWSDateTime,
  "endDate": AWSDateTime,
  "frequency": "ONCE"
}

CampaignState

Description

Status of the campaign.

Values
Enum Value Description

COMPLETED

The campaign has been completed.

DELETED

The campaign has been deleted.

EXECUTING

The campaign is currently executing.

INVALID

The campaign is invalid.

PAUSED

The campaign is paused.

PENDING_NEXT_RUN

The campaign is pending its next run.

SCHEDULED

The campaign is scheduled to run.
Example
"COMPLETED"

CampaignStatisticsConnection

Description

A connection to a list of Campaign items.

Fields
Field Name Description
edges - [CampaignStatisticsEdge!]! List of campaigns.
pageInfo - PageInfo! Information about pagination in a connection.
Example
{
  "edges": [CampaignStatisticsEdge],
  "pageInfo": PageInfo
}

CampaignStatisticsEdge

Description

An edge in a connection.

Fields
Field Name Description
node - CampaignActivityEntry! The item at the end of the edge.
cursor - String! A cursor for use in pagination.
Example
{
  "node": CampaignActivityEntry,
  "cursor": "xyz789"
}

CampaignStatisticsPayload

Description

Return type for campaign statistics.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
campaignId - ID! The campaign ID.
statistics - CampaignStatisticsConnection! Array of statitics for each execution of the campaign.
Example
{
  "providerId": 4,
  "campaignId": 4,
  "statistics": CampaignStatisticsConnection
}

CampaignStatisticsResult

Description

Return type of campaign statistics including all possible errors.

Example
CampaignStatisticsPayload

CampaignsNotEnabled

Description

An error type to be thrown if a campaign management feature is not enabled for the provider.

Fields
Field Name Description
providerId - ID! The unique identifier for the Service Provider.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

CancelPlanSubscriptionInput

Description

Input type of CancelPlanSubscription.

Fields
Input Field Description
planSubscriptionId - ID! A unique identifier of a plan subscription to unsubscribe.
providerId - ID! A unique identifier of a service provider.
accountId - ID! A unique identifier of an account.
Example
{"planSubscriptionId": 4, "providerId": 4, "accountId": 4}

CancelPlanVersionSubscriptionPayload

Description

Return type of CancelPlanVersionSubscription.

Fields
Field Name Description
account - Account! The account for which the subscription was cancelled.
planSubscriptionId - ID! The account for which the subscription was cancelled.
Example
{
  "account": Account,
  "planSubscriptionId": "4"
}

CancelPlanVersionSubscriptionResult

Description

Return type of CancelPlanVersionSubscription including all possible errors.

  • AccountNotFound (AccountNotFound) - The requested account with the provided ID cannot be found.
  • SubscriptionNotFound (SubscriptionNotFound) - The plan subscription with the provided ID was not found.
  • InternalServerError (ChargeEngineNotAvailable) - The charge engine is not available at this time.
Example
CancelPlanVersionSubscriptionPayload

CannotChangeAccountType

Description

An error that is thrown when user tries to change a postpaid account into a prepaid one and vice versa

Fields
Field Name Description
providerId - ID! Account for a provided provider ID cannot be changed from postpaid to prepaid and vice versa.
accountId - ID! Account with a provided account ID cannot be changed from postpaid to prepaid and vice versa.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "accountId": "4",
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

CannotSetLongFirstBillingCycle

Description

An error that is thrown when user tries to set longFirstBillingCycle without changing DoM

Fields
Field Name Description
providerId - ID! Provider ID.
accountId - ID! Account ID.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "accountId": "4",
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

Counter

Description

Counters provide a posibility to calculate spending values and change their states based on the calculations. Later on their state can be used to provide notifications to the customer. They enable other elements of the Provider's core network to support real-time quality-of-service and other policies, even for post-paid offline transactions.

Fields
Field Name Description
name - String! Unique name for this Counter.
persistent - Boolean! Persistent counter saves its state between sessions, transient counter resets its state between sessions.
period - CounterPeriod Determines when a counter is reset.
selector - String Boolean expression to determine if the current event should be counted.
increment - String! Value expression that will be used to increment the counter.
states - [CounterState!]! Possible states of the counter.
notificationFields - [String] Additional notification fields which are sent in notifications caused by this counter.
Example
{
  "name": "xyz789",
  "persistent": false,
  "period": CounterPeriod,
  "selector": "xyz789",
  "increment": "xyz789",
  "states": [CounterState],
  "notificationFields": ["xyz789"]
}

CounterPeriod

Description

Information when counter value must be reset.

Fields
Field Name Description
type - CounterPeriodType! Determines a period when counter value must be reset.
data - String! Value expression, specific for the given period type - e.g. the hour to reset daily counter.
Example
{"type": "SAME_AS_PLAN", "data": "abc123"}

CounterPeriodType

Description

Possible period types for counters.

Values
Enum Value Description

SAME_AS_PLAN

Counter value is reset when the plan that contains the counter is renewed.

MONTHLY

Counter value is reset every month.

DAILY

Counter value is reset every day.

NONE

Counter value is never reset.
Example
"SAME_AS_PLAN"

CounterState

Description

List of name / value pairs used to determine the counter's current state.

Fields
Field Name Description
name - String! Unique name of the counter's current state.
threshold - String Value expression used as the upper bound of the state - previous state threshold is the lower bound.
Example
{
  "name": "abc123",
  "threshold": "xyz789"
}

CreateAccountCohortInput

Description

Defines the input for the CreateAccountCohort mutation.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
definition - AccountCohortInput! Defines the input for the Account Cohort properties.
Example
{
  "providerId": "4",
  "definition": AccountCohortInput
}

CreateAccountCohortResult

CreateAccountInput

Description

Input type of CreateAccount.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
accountId - ID A unique identifier of an account.
parentAccountId - ID The parent account in an account hierarchy.
customData - AWSJSON Any custom data required by the account.
friendsAndFamily - [String] List of friends and family. This field is deprecated in favor of custom fields. Deprecated date is 2025-02-14. Expiration date is 2025-04-13.
creditLimit - Float The limit an account can be credited to. It should be negative/zero for prepaid accounts and positive for postpaid accounts.
notificationCreditLimitThresholds - [Float!] Thresholds of the default monetary balance on the account. Whenever the account balance goes lower than any of the values in the set a notification is sent.
balances - [CreateBalanceInfoInput!] Balances types for account. TODO: Make it required field when moving to schema.graphql
postpaid - CreateAccountPostpaidPropertiesInput If account is a postpaid account, i.e. creditLimit is greater than zero, this holds the postpaid properties
activatedAt - AWSDateTime Date of account activation. If it is set, then it’s used, else, it defaults to the invocation time of the mutation.
transactionId - ID An optional transaction ID to ensure idempotency of the API call if required.
accountLifecycle - AccountLifecycleInput Initial Lifecycle and state to assign to the new account
Example
{
  "providerId": 4,
  "accountId": "4",
  "parentAccountId": "4",
  "customData": AWSJSON,
  "friendsAndFamily": ["xyz789"],
  "creditLimit": 123.45,
  "notificationCreditLimitThresholds": [123.45],
  "balances": [CreateBalanceInfoInput],
  "postpaid": CreateAccountPostpaidPropertiesInput,
  "activatedAt": AWSDateTime,
  "transactionId": 4,
  "accountLifecycle": AccountLifecycleInput
}

CreateAccountPayload

Description

Return type of CreateAccount.

Fields
Field Name Description
account - Account! The created account.
transactionId - ID! A transaction ID to ensure idempotency of the API call if required.
Example
{"account": Account, "transactionId": 4}

CreateAccountPostpaidPropertiesInput

Description

An input type to hold the postpaid properties of accounts to enforce required fields for postpaid accounts only

Fields
Input Field Description
timezone - String! The timezone of the user in +/-hh:mm or Country/City format. This is a property for postpaid accounts only.
billingDayOfMonth - Int! The day of month for resetting balance and units for account. Value is between 1 and 31 inclusive. This is a property for postpaid accounts only.
longFirstBillingCycle - Boolean! Whether the first billing cycle is a long one, e.g. if billing DoM is on the 1st and the account was created on the 16th. If this value is true, it means that the first bill will be for 45 days, while if false, bill will be for 15 days only. This is a property for postpaid accounts only.
Example
{
  "timezone": "xyz789",
  "billingDayOfMonth": 123,
  "longFirstBillingCycle": true
}

CreateAccountResult

Description

Return type of CreateAccount including all possible errors.

  • BalanceTypeNotFound (BalanceTypeNotFound) - The balance type ID provided does not exist.
  • LifecycleNotFound (LifecycleNotFound) - The specified lifecycle doesn't exist.
  • TransactionHasBeenProcessed (TransactionHasBeenProcessed) - The transaction has been processed.
  • InvalidField (InvalidLifecycleState) - The state for the lifecycle is invalid.
  • InvalidField (InvalidFriendsAndFamilyList) - Friends and family list can consist of 20 numbers maximum.
  • InvalidField (InvalidFriendsAndFamilyNumber) - Friends and family list consists of invalid number. The only allowed format is E.164.
  • InvalidField (InvalidJsonCreditLimit) - Cannot set credit limit from json.creditLimit. Must use creditLimit directly.
  • InvalidField (InvalidTimezone) - Timezone format is wrong. It should be between -12:00 and +14:00 or use a Country/City format.
  • InvalidField (InvalidDayOfMonth) - Billing day of month should be between 1 and 31 inclusive.
  • InvalidField (InvalidCreateBalanceInfoInput) - Only value field can be provided for the default monetary balance type.
  • InvalidField (BalanceLimitViolation) - When the balance total exceeds the balance or balance type limit or limit exceeds the limit in balance type.
Example
CreateAccountPayload

CreateBalanceInfoInput

Description

Input type for creating a new balance details.

Fields
Input Field Description
balanceTypeId - ID! ID of the BalanceType, which defines the characteristics of the balance to be created, such as type (e.g., volume, time, rate), notification thresholds, policy counters, and the maximum allowable value.
priority - Float! Priority of the balance. If there are multiple balances of the same type, the one with the highest priority will be used first.
value - Float! Value of the balance.
limit - Float

The maximum amount a balance can reach through credit operations. If there are multiple balances of the same BalanceType on the account, the limit applies independently to each balance. If not specified, limits are inherited from the BalanceType.

For rate-based balances (e.g., the default Monetary balance), the limit can be a decimal. For others (e.g., volume, time), integers should be used.

from - AWSDateTime Defines the start date of the balance's validity.
to - AWSDateTime Defines the end date of the balance's validity.
Example
{
  "balanceTypeId": 4,
  "priority": 987.65,
  "value": 987.65,
  "limit": 123.45,
  "from": AWSDateTime,
  "to": AWSDateTime
}

CreateBalanceInput

Description

Input type for creating a new balance.

Fields
Input Field Description
providerId - ID! Provider ID.
accountId - ID! Account ID.
balanceInfo - CreateBalanceInfoInput! Details of the balance to be created, including its type, value, and validity.
transactionId - ID

An optional transaction ID to ensure idempotency of the API call, allowing for transaction correlation between Totogi and upstream systems.

If not provided, Totogi automatically generates a unique identifier for each transaction

Example
{
  "providerId": 4,
  "accountId": 4,
  "balanceInfo": CreateBalanceInfoInput,
  "transactionId": 4
}

CreateBalanceResult

Description

Return type of DeleteBalance including all possible errors.

  • TransactionHasBeenProcessed (TransactionHasBeenProcessed) - The transaction has been processed.
  • InvalidField (InvalidLimit) - The limit has to be an integer value if it is not a rate based balance. Only rate based balance types can have decimal limits.
  • AccountNotFound (AccountNotFound) - The specified account does not exist.
  • BalanceTypeNotFound (BalanceTypeNotFound) - None of the balance type IDs provided does exist.
  • InvalidField (BalanceLimitViolation) - When the balance total exceeds the balance or balance type limit or limit exceeds the limit in balance type.
Example
BalancePayload

CreateBalanceTypeInput

Description

Input type for creating a new balance type.

Fields
Input Field Description
providerId - ID! Provider ID.
name - String! Name of the balance type. Has to be unique across a tenant.
unitType - UnitType! Unit type of the balance type.
limit - Float Limit of the balance type. If the balance is rate based, it is equivalent creditLimit.
rateBased - Boolean! Whether it is a rate based balance type like a monetary balance or an allowance based type that is in units. If it is a rate based type, then decimal limits are allowed, otherwise, they aren't.
counters - [BalanceTypeCounterInput!] List of balance type counter inputs of the balance type.
Example
{
  "providerId": "4",
  "name": "abc123",
  "unitType": "TIME",
  "limit": 123.45,
  "rateBased": false,
  "counters": [BalanceTypeCounterInput]
}

CreateBalanceTypeResult

Description

Return type of CreateBalanceType including all possible errors.

  • BalanceTypeNameInUse (BalanceTypeNameInUse) - The balance type name is already in use.
  • InvalidField (InvalidLimit) - The limit has to be an integer value if it is not a rate based balance type. Only rate based balance types can have decimal limits.
  • InvalidField (InvalidCounterName) - The provided counter name must be between 1 and 50 characters and consist of letters, digits or special characters.
  • InvalidField (InvalidCounterNames) - Counter names must be unique across the balance type.
  • InvalidField (InvalidCounterStates) - Thresholds and names of states must be unique across the counter and one of the states must not have a threshold.
Example
BalanceTypePayload

CreateCampaignInput

Description

Input for creating a campaign.

Fields
Input Field Description
providerId - ID! Service provider ID.
name - String! The name of the campaign.
description - String A custom description of the campaign.
campaignSchedule - CampaignScheduleInput Specifies the schedule settings for a campaign. If not provided, it will default to an intermediately starting campaign.
campaignEmailMessage - CampaignEmailMessageInput Specifies the content for an email message that's sent to recipients of a campaign.
offerIds - [ID!] Array of Offers.
cohortId - ID! The Cohort ID.
Example
{
  "providerId": 4,
  "name": "xyz789",
  "description": "abc123",
  "campaignSchedule": CampaignScheduleInput,
  "campaignEmailMessage": CampaignEmailMessageInput,
  "offerIds": ["4"],
  "cohortId": 4
}

CreateCampaignPayload

Description

Return type of createCampaign.

Fields
Field Name Description
campaign - Campaign! The created campaign.
Example
{"campaign": Campaign}

CreateCampaignResult

Description

Result of the CreateCampaign mutation.

  • InvalidField (NameAlreadyExists) - The campaign name already exists
Example
CreateCampaignPayload

CreateDeviceInput

Description

Input type of CreateDevice.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
accountId - ID! A unique identifier of an account.
deviceId - ID A unique identifier of a device.
customData - AWSJSON Any custom data required by the device.
Example
{
  "providerId": "4",
  "accountId": 4,
  "deviceId": "4",
  "customData": AWSJSON
}

CreateDevicePayload

Description

Return type of CreateDevice.

Fields
Field Name Description
device - Device! The created device.
Example
{"device": Device}

CreateDeviceResult

Description

Return type of CreateDevice including all possible errors.

Example
CreateDevicePayload

CreateFieldMappingInput

Description

Input type of CreateFieldMapping.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
path - String!

The path to the field you want to manipulate. For example, "transformedRequest.sMSChargingInformation.numberofMessagesSent". The path must start from either "transformedRequest." or "transformedResponse." and might be existing path or not existing. If provided path does not exist in request or response, only the last key should not exist. For example, "transformedResponse.invocationResult.message" is allowed, while "transformedResponse.invocationResult.message.text" is not allowed, because message is a new key already. It is possible to set a new field to a list. Originally SpEL does not support that, but we iterate over lists with provided [] after them. For example, "transformedRequest.multipleUnitUsage[].usedUnitContainer[].timeSpecificUnits", both multipleUnitUsage and usedUnitContainer are arrays, it means eventually field mapper will add to each item in these lists a new key "timeSpecificUnits".

For the N28/SY interface, the path must start from either "transformedN28Request" or "transformedN28Response". You can then set the custom "tenantIdentifier" field by using the path "transformedN28Request.tenantIdentifier". This field can and will not be set on deleting spending limit subscriptions but the subscription ID will be used.

expr - String!

SpEL expression to generate the value(s). It must return one value, but also it can use the same expressions as "path" with []. For example, "originalRequest.multipleUnitUsage[].usedUnitContainer[].serviceSpecificUnits * 10". It is also possible to use "originalField" as a reference to original value if field exists. For example, "originalField + 10".

For the N28/SY interface, the expression must start with either "originalN28Request" or "originalN28Response".

Example
{
  "providerId": 4,
  "path": "transformedRequest.multipleUnitUsage[].ratingGroup",
  "expr": "originalField?:100"
}

CreateFieldMappingPayload

Description

Return type of CreateFieldMapping.

Fields
Field Name Description
fieldMapping - FieldMapping! Created field mapping.
Example
{"fieldMapping": FieldMapping}

CreateFieldMappingResult

Description

Return type of CreateFieldMapping including all possible errors.

  • InvalidField (InvalidFieldMappingPath) - The provided field mapping path cannot be compiled.
  • InvalidField (InvalidFieldMappingExpression) - The provided field mapping SpEL expression cannot be compiled.
Example
CreateFieldMappingPayload

CreateLifecycleInput

Fields
Input Field Description
providerId - ID! Service provider ID.
name - String! Descriptive name
states - [LifecycleStateInput!]! Lifecycle Definition; first state is used as the default.
Example
{
  "providerId": 4,
  "name": "xyz789",
  "states": [LifecycleStateInput]
}

CreateLifecycleResult

Description

Return type of CreateAccount including all possible errors.

  • InvalidNumberOfStates (InvalidNumberOfStates) - The lifecycle requires at least one state.
  • InvalidStateTransitions (InvalidStateTransitions) - Transitions need to be to a valid state.
Example
LifecyclePayload

CreateOfferInput

Description

Input type of CreateOffer.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
offerId - ID A new offer ID, if not provided then autogenerated.
planVersionId - ID! The ID of the plan version this offer is based on
name - String! The name of the offer.
offerParameters - AWSJSON The parameters that can be substituted into a message to customers.
acceptanceLink - AWSURL! Acceptance link for subscribers. The offer link takes the user to a company - operated page that makes the plan change without user input. It then redirects the browser to a telco - provided URL.
Example
{
  "providerId": "4",
  "offerId": 4,
  "planVersionId": "4",
  "name": "xyz789",
  "offerParameters": AWSJSON,
  "acceptanceLink": AWSURL
}

CreateOfferPayload

Description

Return type of CreateOffer.

Fields
Field Name Description
offer - Offer! The created offer.
Example
{"offer": Offer}

CreateOfferResult

Description

Return type of CreateOffer including all possible errors.

Example
CreateOfferPayload

CreatePlanFromInitialRecurringFirstUsageTemplateInput

Description

Input type of createPlanFromInitialRecurringFirstUsageTemplate.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planId - ID A new plan ID. Autogenerated if not provided.
version - String! The name of the first version.
name - String! A name for a new plan.
recurringFirstUsageFee - Float! A fee that will be charged every time after the recurringFirstUsagePeriod expires. Currently, this is at the next hour for hourly plans, at next midnight of the account timezone for daily plans, at next Saturday midnight of the account timezone for weekly plans, and at the last day of the month midnight of the account timezone for monthly plans.
recurringFirstUsagePeriodType - PeriodType! The period type at which the recurringFirstUsageFee is charged, hourly, daily, weekly, monthly.
services - [InitialRecurringFirstUsageTemplateServiceInput!]! List of plan services.
json - AWSJSON Custom data in JSON format to be able to save and retrieve some configurations.
priority - Float Plan priority that determines the execution order for charging and rating. Considered as 0 if not provided.
Example
{
  "providerId": 4,
  "planId": "4",
  "version": "abc123",
  "name": "xyz789",
  "recurringFirstUsageFee": 987.65,
  "recurringFirstUsagePeriodType": "HOUR",
  "services": [
    InitialRecurringFirstUsageTemplateServiceInput
  ],
  "json": AWSJSON,
  "priority": 123.45
}

CreatePlanFromInitialTemplateInput

Description

Input type of CreatePlanFromInitialTemplate.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planId - ID A new plan ID. Autogenerated if not provided.
version - String! The name of the first version.
name - String! A name for a new plan.
fee - Float A fee that will be charged per specified recurring period. Recurring fee is charged first time after the first period. If you need to charge some fee on subscription you need to use purchaseFee. If not provided then no such fee is charged.
firstUsageFee - Float A fee that will be charged just once on first usage of the plan. If not provided then no such fee is charged.
purchaseFee - Float A fee that will be charged just once right after the subscription. If not provided then no such fee is charged.
period - RecurringPeriodInput A period when specified fee will be charged. If not provided then it is considered that plan never expires until cancellation and there are no recurring actions.
services - [InitialTemplateServiceInput!]! List of plan services. A plan service can only specify a monetary or unit rate but not both, they are exclusive.
notificationPeriodsBeforeExpiration - [Int] A set of periods in seconds when to send multiple notifications before the plan expires.
renewalGracePeriod - [DurationInput] Put a plan on hold for a limited grace period while waiting for a successful renewal. It is a sum of provided duration inputs.
json - AWSJSON Custom data in JSON format to be able to save and retrieve some configurations.
priority - Float Plan priority that determines the execution order for charging and rating. Considered as 0 if not provided.
proratingOptions - ProratingOptionsInput The prorating options for the plan
Example
{
  "providerId": 4,
  "planId": "4",
  "version": "abc123",
  "name": "abc123",
  "fee": 987.65,
  "firstUsageFee": 987.65,
  "purchaseFee": 987.65,
  "period": RecurringPeriodInput,
  "services": [InitialTemplateServiceInput],
  "notificationPeriodsBeforeExpiration": [987],
  "renewalGracePeriod": [DurationInput],
  "json": AWSJSON,
  "priority": 987.65,
  "proratingOptions": ProratingOptionsInput
}

CreatePlanFromInitialTemplateResult

Description

Return type of CreatePlanFromInitialTemplate including all possible errors.

  • InvalidField (InvalidExtendedRate) - In the roaming or long distance one of the inputs (origination or termination) must be provided.
  • InvalidField (InvalidRatingGroup) - There is no provided rating group ID in the hierarchy or provided rating group ID is the Root.
  • InvalidField (SubscriptionPolicy) - If "alignBillingToDoM" is set to false and "subscriptionPolicy" was anything other than NONE or empty
  • InvalidField (RefundPolicy) - If "alignBillingToDoM" is set to false and "refundPolicy" was anything other than NONE or empty
  • InvalidField (ProratingOptionsSetForNonMonthlyPlan) - If "alignBillingToDoM" is set to true for a non-monthly plan
  • InvalidField (InvalidRecurringFirstUsageFee) - recurringFirstUsageFee cannot be zero for recurring first usage template
  • BalanceTypeNotFound (BalanceTypeNotFound) - One of the provided balance type IDs does not exist.
  • CreatePlanValidationFailed (FeeIsNotRequired) - Fee is provided for a non recurring plan. Recurring plan must have a period specified and this period must be marked as recurring.
  • ServiceFormatError (ServiceFormatError) - A new version of a plan is created based on the old format while a version with the new format exists. As soon as a plan uses the new balance format, all versions of the plan must use the new format.
Example
CreatePlanPayload

CreatePlanPayload

Description

Return type of CreatePlanFromInitialTemplate.

Fields
Field Name Description
plan - Plan! Created plan.
Example
{"plan": Plan}

CreatePlanValidationFailed

Description

An error type to be thrown if a plan cannot be created out of the provided input.

  • DuplicateCounterName - Two or more counters in a service have the same name.
  • MissingCounterStates - One or more counter has no states. At least one state is required.
  • DuplicateCounterStateName - Two or more counter states in a counter have the same name.
  • MissingDefaultCounterState - A counter has no default state (a state with no threshold).
  • DuplicateCounterStateThreshold - Two or more states of a counter have the same threshold.
  • WrongCountryCodeExpression - The country code expression defines a non-restricting value set.
  • RoamingConfigOverlapping - The roaming configuration includes overlapping entries. A start () includes all countries, having an entry with "" and one with "US" is overlapping "*" needs to be replaced with "!US".
  • LongDistanceConfigOverlapping - The long distance configuration includes overlapping entries. A start () includes all countries, having an entry with "" and one with "US" is overlapping "*" needs to be replaced with "!US".
  • TooManyEntries - The entry list for the roaming and long distance configuration has too many entries. 10k entries is the maximum.
  • PlanServiceAllowanceIsUnlimited - If "periodAllowance" is not provided, the plan service is considered unlimited. "overage" is not needed.
Fields
Field Name Description
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

CreatePlanVersionFromInitialRecurringFirstUsageTemplateInput

Description

Input type of CreatePlanVersionFromInitialRecurringFirstUsageTemplate.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planVersionId - ID! An existing plan version ID to be updated or a base plan version ID for a new version.
version - String! The name of the new version.
recurringFirstUsageFee - Float! A fee that will be charged every time after the recurringFirstUsagePeriod expires. Currently, this is at the next hour for hourly plans, at next midnight of the account timezone for daily plans, at next Saturday midnight of the account timezone for weekly plans, and at the last day of the month midnight of the account timezone for monthly plans.
recurringFirstUsagePeriodType - PeriodType! The period type at which the recurringFirstUsageFee is charged, hourly, daily, weekly, monthly.
services - [InitialRecurringFirstUsageTemplateServiceInput!] List of plan services. If not provided used from the original version.
json - AWSJSON Custom data in JSON format to be able to save and retrieve some configurations. If not provided used from the original version.
priority - Float Plan priority that determines the execution order for charging and rating. If not provided used from the original version.
Example
{
  "providerId": "4",
  "planVersionId": 4,
  "version": "abc123",
  "recurringFirstUsageFee": 123.45,
  "recurringFirstUsagePeriodType": "HOUR",
  "services": [
    InitialRecurringFirstUsageTemplateServiceInput
  ],
  "json": AWSJSON,
  "priority": 123.45
}

CreatePlanVersionFromInitialTemplateInput

Description

Input type of CreatePlanVersionFromInitialTemplate.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planVersionId - ID! An existing plan version ID to be updated or a base plan version ID for a new version.
version - String! The name of the new version.
fee - Float A fee that will be charged per specified recurring period. Recurring fee is charged first time after the first period. If you need to charge some fee on subscription you need to use purchaseFee. If not provided used from original version.
firstUsageFee - Float A fee that will be charged just once on first usage of the plan. If not provided used from original version.
purchaseFee - Float A fee that will be charged just once right after the subscription. If not provided used from original version.
period - RecurringPeriodInput A period when specified fee will be charged. If not provided used from original version.
services - [InitialTemplateServiceInput!] List of plan services. If not provided used from the original version. A plan service can only specify a monetary or unit rate but not both, they are exclusive.
notificationPeriodsBeforeExpiration - [Int] A set of periods in seconds when to send multiple notifications before the plan expires. If not provided and there's an original version, values are taken from there.
renewalGracePeriod - [DurationInput] Put a plan on hold for a limited grace period while waiting for a successful renewal. It is a sum of provided duration inputs.
json - AWSJSON Custom data in JSON format to be able to save and retrieve some configurations. If not provided used from the original version.
priority - Float Plan priority that determines the execution order for charging and rating. If not provided used from the original version.
proratingOptions - ProratingOptionsInput The prorating options for the plan
Example
{
  "providerId": "4",
  "planVersionId": 4,
  "version": "abc123",
  "fee": 987.65,
  "firstUsageFee": 123.45,
  "purchaseFee": 987.65,
  "period": RecurringPeriodInput,
  "services": [InitialTemplateServiceInput],
  "notificationPeriodsBeforeExpiration": [987],
  "renewalGracePeriod": [DurationInput],
  "json": AWSJSON,
  "priority": 123.45,
  "proratingOptions": ProratingOptionsInput
}

CreatePlanVersionFromInitialTemplateResult

Description

Return type of CreatePlanVersionFromInitialTemplate including all possible errors.

  • InvalidField (InvalidExtendedRate) - In the roaming or long distance one of the inputs (origination or termination) must be provided.
  • InvalidField (InvalidRatingGroup) - There is no provided rating group ID in the hierarchy or provided rating group ID is the Root.
  • InvalidField (SubscriptionPolicy) - If "alignBillingToDoM" is set to false and "subscriptionPolicy" was anything other than NONE or empty
  • InvalidField (RefundPolicy) - If "alignBillingToDoM" is set to false and "refundPolicy" was anything other than NONE or empty
  • InvalidField (ProratingOptionsSetForNonMonthlyPlan) - If "alignBillingToDoM" is set to true for a non monthly plan
  • BalanceTypeNotFound (BalanceTypeNotFound) - One of the provided balance type IDs does not exist.
  • CreatePlanValidationFailed (FeeIsNotRequired) - Fee is provided for a non recurring plan. Recurring plan must have a period specified and this period must be marked as recurring.
  • CreatePlanValidationFailed (BaseVersionIsNotTemplate) - The specified planVersionId is not a template version.
  • ServiceFormatError (ServiceFormatError) - A new version of a plan is created based on the old format while a version with the new format exists. As soon as a plan uses the new balance format, all versions of the plan must use the new format.
Example
PlanVersionPayload

CreateUserInput

Description

Input type of CreateUser

Fields
Input Field Description
providerId - ID! Service provider ID
email - AWSEmail! Email
name - String! The name of the user. Should be between 2 and 75 characters
roleGroupMemberships - [RoleGroup!]! The roles this user belong to
phoneNumber - AWSPhone The user's phone number
jobTitle - String The user's job title. If present, it should be between 2 and 50 characters
expiry - AWSDateTime The time when the user should expire. Used for temporary access.
alertInterval - Int The alarm interval in minutes when an email should be send to the user that access expires. Only used when expiry is specified. Can be 0 or not specified when expiry is specified which means no email is send.
Example
{
  "providerId": "4",
  "email": AWSEmail,
  "name": "abc123",
  "roleGroupMemberships": ["Account_Query"],
  "phoneNumber": AWSPhone,
  "jobTitle": "abc123",
  "expiry": AWSDateTime,
  "alertInterval": 987
}

CreateUserResult

Description

Return type of CreateUser including all possible errors.

  • InvalidField (name) - Name should be at least two characters long and a maximum of seventy five
  • InvalidField (jobTitle) - Job title should be at least two characters long and a maximum of fifty
  • InvalidField (expiry) - Expiry needs to be in the future and needs to be a valid datetime string
  • InvalidField (alertInterval) - The alert interval can't be negative
Example
SaveUserPayload

DayOfMonthAlreadySet

Description

An error that is thrown when user tries to change DoM during the same cycle DoM was changed.

Fields
Field Name Description
providerId - ID! Provider ID.
accountId - ID! Account ID.
billingDayOfMonth - Int! The current value of the DoM.
newBillingDayOfMonth - Int! The updated value of the DoM.
longFirstBillingCycle - Boolean The current value of the long billing cycle.
newLongFirstBillingCycle - Boolean The updated value of the long billing cycle.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "accountId": "4",
  "billingDayOfMonth": 987,
  "newBillingDayOfMonth": 123,
  "longFirstBillingCycle": true,
  "newLongFirstBillingCycle": true,
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

DeleteAccountBalanceTypeCounterInput

Description

Input parameters for deleting a Balance Type Counter for an account. Deletes an AccountBalanceCounter record.

Fields
Input Field Description
providerId - ID! Provider ID.
balanceTypeCounterId - ID! The unique identifier for the Balance Type Counter to be deleted.
balanceTypeId - ID! The unique identifier for the Balance Type where the counter should be be deleted.
accountId - ID! The Account ID associated with the Balance Type Counter.
Example
{
  "providerId": 4,
  "balanceTypeCounterId": "4",
  "balanceTypeId": "4",
  "accountId": 4
}

DeleteAccountBalanceTypeCounterPayload

Description

Return type when deleting a Balance Type Counter

Fields
Field Name Description
deletedBalanceTypeCounterId - ID! The ID of the balance that has been deleted.
accountId - ID! The Account ID associated with the Balance Type Counter.
balanceTypeId - ID! The Balance Type where the counter was be deleted.
Example
{
  "deletedBalanceTypeCounterId": "4",
  "accountId": 4,
  "balanceTypeId": 4
}

DeleteAccountBalanceTypeCounterResult

Description

Return type of Balance Type Counter including all possible errors.

  • AccountNotFound (AccountNotFound) - The specified account does not exist.
  • AccountBalanceTypeCounterNotFound (AccountBalanceTypeCounterNotFound) - The specified counter does not exist in the account.
  • BalanceTypeNotFound (BalanceTypeNotFound) - The balance type ID provided does not exist.
Example
DeleteAccountBalanceTypeCounterPayload

DeleteAccountCohortInput

Description

Defines the input for the DeleteAccountCohort mutation.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
id - ID! Account Cohort identifier.
Example
{"providerId": 4, "id": 4}

DeleteAccountCohortPayload

Description

The successful response of the DeleteAccountCohort mutation.

Fields
Field Name Description
id - ID! Account Cohort identifier.
name - String! Name of the cohort.
Example
{
  "id": "4",
  "name": "abc123"
}

DeleteAccountCohortResult

DeleteAccountInput

Description

Input type of DeleteAccount.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
accountId - ID! A unique identifier of an account.
transactionId - ID An optional transaction ID to ensure idempotency of the API call if required.
Example
{
  "providerId": "4",
  "accountId": "4",
  "transactionId": "4"
}

DeleteAccountPayload

Description

Return type of DeleteAccount.

Fields
Field Name Description
deletedAccountId - ID! The unique identifier of the deleted account.
parentAccount - Account The parent account in an account hierarchy, if present.
transactionId - ID! A transaction ID to ensure idempotency of the API call if required.
Example
{
  "deletedAccountId": "4",
  "parentAccount": Account,
  "transactionId": 4
}

DeleteAccountResult

Description

Return type of DeleteAccount including all possible errors.

Example
DeleteAccountPayload

DeleteBalanceInput

Description

Input type for deleting a balance.

Fields
Input Field Description
balanceTypeId - ID! Balance type ID.
balanceId - ID! ID for the balance.
providerId - ID! Provider ID.
accountId - ID! Account ID.
transactionId - ID An optional transaction ID to ensure idempotency of the API call if required.
Example
{
  "balanceTypeId": 4,
  "balanceId": "4",
  "providerId": 4,
  "accountId": 4,
  "transactionId": "4"
}

DeleteBalancePayload

Description

Return type when deleting a balance

Fields
Field Name Description
deletedBalanceId - ID! The ID of the balance that has been deleted.
transactionId - ID! A transaction ID to ensure idempotency of the API call if required.
Example
{
  "deletedBalanceId": "4",
  "transactionId": "4"
}

DeleteBalanceResult

Description

Return type of DeleteBalance including all possible errors.

  • TransactionHasBeenProcessed (TransactionHasBeenProcessed) - The transaction has been processed.
  • BalanceHasReferences (BalanceHasReferences) - The balance is used in an active plan and can't be deleted.
  • BalanceNotFound (BalanceNotFound) - The balance ID provided does not exist.
  • AccountNotFound (AccountNotFound) - The specified account does not exist.
  • BalanceTypeNotFound (BalanceTypeNotFound) - None of the balance type IDs provided does exist.
Example
DeleteBalancePayload

DeleteBalanceTypeCounterInput

Description

Input parameters for deleting a Balance Type Counter.

Fields
Input Field Description
providerId - ID! Provider ID.
balanceTypeCounterId - ID! The unique identifier for the Balance Type Counter to be deleted.
balanceTypeId - ID! The unique identifier for the Balance Type where the counter should be be deleted.
Example
{
  "providerId": "4",
  "balanceTypeCounterId": "4",
  "balanceTypeId": "4"
}

DeleteBalanceTypeCounterPayload

Description

Return type when deleting a Balance Type Counter

Fields
Field Name Description
deletedBalanceTypeCounterId - ID! The ID of the balance that has been deleted.
balanceTypeId - ID! The Balance Type where the counter was be deleted.
Example
{
  "deletedBalanceTypeCounterId": "4",
  "balanceTypeId": 4
}

DeleteBalanceTypeCounterResult

Description

Return type of Balance Type Counter including all possible errors.

  • BalanceTypeCounterNotFound (BalanceTypeCounterNotFound) - The balance type counter ID provided does not exist.
  • BalanceTypeNotFound (BalanceTypeNotFound) - The balance type ID provided does not exist.
Example
DeleteBalanceTypeCounterPayload

DeleteBalanceTypeInput

Description

Input type for deleting a balance type.

Fields
Input Field Description
balanceTypeId - ID! ID for the balance type.
providerId - ID! Provider ID.
Example
{"balanceTypeId": 4, "providerId": "4"}

DeleteBalanceTypePayload

Description

Return type when deleting a balance type

Fields
Field Name Description
deletedBalanceTypeId - ID! The ID of the balance type that has been deleted.
Example
{"deletedBalanceTypeId": "4"}

DeleteBalanceTypeResult

Description

Return type of DeleteBalanceType including all possible errors.

  • BalanceTypeHasReferences (BalanceTypeHasReferences) - The balance type is used in an active plan and can't be deleted.
  • BalanceTypeNotFound (BalanceTypeNotFound) - The balance type ID provided does not exist.
Example
DeleteBalanceTypePayload

DeleteCampaignInput

Description

Input for deleting a campaign.

Fields
Input Field Description
providerId - ID! Service provider ID.
campaignId - ID! The unique identifier for the campaign.
Example
{
  "providerId": "4",
  "campaignId": "4"
}

DeleteCampaignPayload

Description

Return type of deleteCampaign.

Fields
Field Name Description
providerId - ID! Service provider ID.
campaignId - ID! The ID of the deleted campaign.
Example
{"providerId": "4", "campaignId": 4}

DeleteCampaignResult

Example
DeleteCampaignPayload

DeleteDeviceInput

Description

Input type of DeleteDevice.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
accountId - ID! The unique identifier of the account the device is associated to.
deviceId - ID! The unique identifier of the to be deleted device.
Example
{
  "providerId": 4,
  "accountId": "4",
  "deviceId": "4"
}

DeleteDevicePayload

Description

Return type of DeleteDevice.

Fields
Field Name Description
deletedDeviceId - ID! The unique identifier of the deleted device.
account - Account! The account the device was associated to.
Example
{
  "deletedDeviceId": "4",
  "account": Account
}

DeleteDeviceResult

Description

Return type of DeleteDevice including all possible errors.

Example
DeleteDevicePayload

DeleteFieldMappingInput

Description

Input type of DeleteFieldMapping.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
path - ID! A path of a field mapping to delete.
Example
{"providerId": 4, "path": "4"}

DeleteFieldMappingPayload

Description

Return type of DeleteFieldMapping.

Fields
Field Name Description
deletedPath - ID! A path of a field mapping that has been deleted.
Example
{"deletedPath": "4"}

DeleteFieldMappingResult

Description

Return type of DeleteFieldMapping including all possible errors.

Example
DeleteFieldMappingPayload

DeleteLifecycleInput

Fields
Input Field Description
providerId - ID! Service provider ID.
lifecycleId - ID! Lifecycle ID.
Example
{"providerId": 4, "lifecycleId": 4}

DeleteLifecyclePayload

Fields
Field Name Description
lifecycleId - ID! The created lifecycle.
Example
{"lifecycleId": "4"}

DeleteLifecycleResult

Description

Return type of CreateAccount including all possible errors.

  • LifecycleNotFound (LifecycleNotFound) - The specified lifecycle doesn't exist.
Example
DeleteLifecyclePayload

DeleteOfferInput

Description

Input type of DeleteOffer.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
offerId - ID! The unique identifier of the to be deleted offer.
Example
{"providerId": "4", "offerId": 4}

DeleteOfferPayload

Description

Return type of DeleteOffer.

Fields
Field Name Description
providerId - ID! The unique identifier of the service provider associated with the deleted offer.
deletedOfferId - ID! The unique identifier of the deleted offer.
Example
{"providerId": 4, "deletedOfferId": "4"}

DeleteOfferResult

Description

Return type of DeleteOffer including all possible errors.

Example
DeleteOfferPayload

DeletePlanInput

Description

Input type of DeletePlan.

Important: This input type is deprecated. Only template APIs are supported moving forward. Deprecated date is 2024-10-31. Expiration date is 2025-01-31.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planId - ID! A unique identifier of a plan to delete.
Example
{
  "providerId": "4",
  "planId": "4"
}

DeletePlanPayload

Description

Return type of DeletePlan.

Fields
Field Name Description
deletedPlanId - ID! A unique identifier of a plan that has been deleted.
deletedPlanVersions - [ID!]! A list of plan version IDs for deleted plan versions.
deletedPlanServices - [ID!]! A list of plan service IDs for deleted plan services.
Example
{
  "deletedPlanId": "4",
  "deletedPlanVersions": [4],
  "deletedPlanServices": ["4"]
}

DeletePlanResult

Description

Return type of DeletePlan including all possible errors.

Example
DeletePlanPayload

DeletePlanVersionInput

Description

Input type of DeletePlanVersion.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planVersionId - ID! An existing plan version ID.
Example
{"providerId": "4", "planVersionId": 4}

DeletePlanVersionPayload

Description

Return type of DeletePlanVersion.

Fields
Field Name Description
deletedPlanVersionId - ID! A unique identifier of a plan version that has been deleted.
plan - Plan! A plan from where the version has been deleted.
Example
{
  "deletedPlanVersionId": "4",
  "plan": Plan
}

DeletePlanVersionResult

Description

Return type of DeletePlanVersion including all possible errors.

Example
DeletePlanVersionPayload

DeleteUserInput

Description

Delete User Mutation Input.

Fields
Input Field Description
providerId - ID! Service provider ID.
userId - ID! User ID
Example
{"providerId": "4", "userId": 4}

DeleteUserPayload

Description

Delete user mutation response payload object.

Fields
Field Name Description
providerId - ID! provider ID
userId - ID! User ID
Example
{"providerId": 4, "userId": "4"}

DeleteUserResult

DeployFieldMappingsInput

Description

Input type of DeployFieldMappings.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
paths - [String!] Deploys only provided list of fields. If not provided then all field mappings are replaced. If provided then all configurations applied after "from" date are updated with provided set of fields.
from - AWSDateTime The date when current set of field mappings take effect in the system. If not provided then considered as now. All the configurations after this date are either updated with provided paths or removed if paths are not provided.
Example
{
  "providerId": 4,
  "paths": ["abc123"],
  "from": AWSDateTime
}

DeployFieldMappingsPayload

Description

Return type of DeployFieldMappings.

Fields
Field Name Description
deployedFieldMapping - DeployedFieldMapping!
Example
{"deployedFieldMapping": DeployedFieldMapping}

DeployFieldMappingsResult

Description

Return type of DeployFieldMappings including all possible errors.

Example
DeployFieldMappingsPayload

DeployPlanVersionInput

Description

Input type of DeployPlanVersion.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planVersionId - ID! A unique identifier of a planVersion version to deploy. If another version of the same common plan has already been deployed, it will be made unassignable.
migrateFromVersions - [ID!] The list of plan version IDs to migrate from to this new deployed version. Automatically upgrade already subscribed accounts to the new version. Not required for a new deployment. If not specified considered as no auto migration is required.
alias - AliasInput Optional alias deployment. If provided, an alias will be deployed with the new plan version. Other plan versions will only be made unassignable if the version is not referenced in the alias as a current or future version.
Example
{
  "providerId": "4",
  "planVersionId": 4,
  "migrateFromVersions": [4],
  "alias": AliasInput
}

DeployPlanVersionResult

Description

Return type of DeployPlanVersion including all possible errors.

  • PlanVersionNotFound (PlanVersionNotFound) - The requested plan version with the provided ID cannot be found.
  • DeploymentVerificationFailed (PlanServiceConfigIsNotComplete) - The plan contains plan service configuration(s) that are not complete to provide enough information for charging / crediting.
  • DeploymentVerificationFailed (PlanIsReadOnly) - The requested plan is an initial plan and cannot be deployed.
  • MigrationAlreadyInProgress (MigrationAlreadyInProgress) - Another migration on the same plan can be done only when the current migration is finished.
  • PlanVersionWrongTransition (PlanVersionIsAlreadyInState) - The plan version is already in the correct state. Transition is not required.
  • InternalServerError (ChargeEngineNotAvailable) - The charge engine is not available at this time.
Example
PlanVersionPayload

DeployedFieldMapping

Description

Field mappings that have been deployed and take effect starting from some date.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
from - AWSDateTime! The date when current set of field mappings take effect in the system.
fieldMappings - FieldMappingConnection! A list of deployed field mappings.
Arguments
first - Int

Returns the first n elements from the list or a maximum of 25.

after - String

Returns the elements in the list that come after the specified cursor.

Example
{
  "providerId": 4,
  "from": AWSDateTime,
  "fieldMappings": FieldMappingConnection
}

DeployedFieldMappingConnection

Description

The connection type for DeployedFieldMapping.

Fields
Field Name Description
edges - [DeployedFieldMappingEdge!] List of nodes in the connection.
pageInfo - PageInfo! Information about pagination in the connection.
Example
{
  "edges": [DeployedFieldMappingEdge],
  "pageInfo": PageInfo
}

DeployedFieldMappingEdge

Description

An edge in a connection.

Fields
Field Name Description
node - DeployedFieldMapping! The item at the end of the edge.
cursor - String! A cursor for use in pagination.
Example
{
  "node": DeployedFieldMapping,
  "cursor": "xyz789"
}

DeploymentVerificationFailed

Description

An error type to be thrown if a plan failed verification on deployment.

Fields
Field Name Description
providerId - ID! A plan for a provided provider ID failed verification.
planVersionId - ID! A plan version with a provided plan version ID failed verification.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "planVersionId": "4",
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

Device

Description

The smallest unit in the Charging Engine which represents an end user and belongs to an account.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - ID! A unique identifier of a device.
account - Account! The account to which the device belongs to.
customData - AWSJSON Any custom data required by the device.
Example
{
  "providerId": "4",
  "id": "4",
  "account": Account,
  "customData": AWSJSON
}

DeviceAlreadyExists

Description

An error type to be thrown if a device with provided ID already exists.

Fields
Field Name Description
deviceId - ID! Already existing device ID.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "deviceId": 4,
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

DeviceIdSelector

Description

Possible values for deviceIdSelector.

Values
Enum Value Description

SERVED_GPSI

To take the device id from PDUSessionChargingInformation > userInformation > servedGpsi for charging or gpsi for spending limit control.

SUBSCRIBER_IDENTIFIER

To take the device id from subscriberIdentifier for charging or supi for spending limit control. This is the default value.
Example
"SERVED_GPSI"

DeviceNotFound

Description

An error type to be thrown if a device was not found.

Fields
Field Name Description
providerId - ID! A device for a provided provider ID was not found.
deviceId - ID! A device with a provided device ID was not found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "deviceId": 4,
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

DeviceResult

Description

Return type of Device including all possible errors.

Example
Device

Duration

Description

A time-based amount of time, such as '34.5 seconds'

Fields
Field Name Description
amount - Int! The amount of the duration, measured in terms of the unit.
unit - PeriodType! The unit that the duration is measured in.
Example
{"amount": 987, "unit": "HOUR"}

DurationInput

Description

Input type for some time period. For example, 2w, 1d, 30m, etc.

Fields
Input Field Description
type - PeriodType! Determines a period.
value - Int! The number of period types to calculate the final time period.
Example
{"type": "HOUR", "value": 123}

EmailNotActivated

Description

An error type to be thrown if a project does not have email channel enabled.

Fields
Field Name Description
providerId - ID! The unique identifier for the Service Provider.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

Error

Description

Represents an error type.

Fields
Field Name Description
errorCode - String! Machine-readable error identifier.
errorMessage - String Human-readable error description.
Example
{
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

EventDataRecord

Description

Represents an event in the Charging Engine.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - ID! A unique identifier of a record.
createdAt - AWSDateTime! When the record was created.
action - EventDataRecordAction! Event action.
customData - AWSJSON Any custom data of the record.
eventData - AWSJSON Arbitrary event data.
Example
{
  "providerId": 4,
  "id": 4,
  "createdAt": AWSDateTime,
  "action": "subscribeToPlan",
  "customData": AWSJSON,
  "eventData": AWSJSON
}

EventDataRecordAccountConnection

Description

The connection type for EventDataRecord.

Fields
Field Name Description
edges - [EventDataRecordEdge!] List of nodes in the connection.
pageInfo - PageInfo! Information about pagination in the connection.
account - Account! All of the EDRs belong to this account.
Example
{
  "edges": [EventDataRecordEdge],
  "pageInfo": PageInfo,
  "account": Account
}

EventDataRecordAccountConnectionResult

Description

Return type of EventDataRecordAccountConnection including all possible errors.

Example
EventDataRecordAccountConnection

EventDataRecordAction

Description

Possible actions in event data records.

Values
Enum Value Description

subscribeToPlan

An account has been subscribed to some plan.

activatePlanSubscription

An existing subscription has been activated.

updatePlanSubscription

An existing subscription has been changed.

migratePlanSubscription

An existing subscription has been migrated.

cancelPlanSubscription

An existing subscription has been cancelled.

expirePlanSubscription

An existing subscription has expired.

recurringFee

A recurring fee has been charged from an account.

purchaseFee

A purchase fee has been charged from an account.

firstUsageFee

A first usage fee has been charged from an account.

recurringFirstUsageFee

A recurring first usage fee has been charged from an account.

postpaidReset

Postpaid account has been reset.

credit

A credit event has happened.

debit

A debit event has happened.

createSpendingLimitSubscription

Create a spending limit subscription.

charge

A charge event has happened.

notify

A counter threshold has been crossed and a notification has been sent.

notification

A counter threshold has been crossed and a notification has been sent. (Old)

deleteDevice

A device has been deleted.

createAccount

An account has been created.

createDevice

A device has been created.

updateAccount

An account has been updated.

deleteAccount

An account has been deleted.

updateDevice

A device as been updated.

createPlan

A new plan has been created.

createPlanBETA

A new plan has been created.

createPlanVersion

A new plan version has been created.

createPlanVersionBETA

A new plan version has been created.

updatePlanVersion

A plan version has been updated.

updatePlanVersionBETA

A plan version has been updated.

updatePlan

A plan has been updated.

updatePlanBETA

A plan has been updated.

createPlanService

A plan service has been created.

copyPlan

A plan has been copied.

deletePlan

A plan has been deleted.

deletePlanBETA

A plan has been deleted.

deployPlan

A plan has been deployed.

deployPlanBETA

A plan has been deployed.

archivePlanVersion

A plan version has been archived.

archivePlanVersionBETA

A plan version has been archived.

deletePlanVersion

A plan version has been deleted.

deletePlanVersionBETA

A plan version has been deleted.

makePlanAssignable

A plan has been made assignable.

makePlanAssignableBETA

A plan has been made assignable.

makePlanNotAssignable

A plan has been made not assignable.

copyPlanService

A plan service has been copied.

deletePlanService

A plan service has been deleted.

updatePlanService

A plan service has been updated.

updateRatingGroupHierarchy

The rating group hierarchy has been updated.

deployRatingGroupHierarchy

A new rating group hierarchy has been deployed.

churnScoreUpdate

An account's churn score has been updated.

createBalance

Creation a balance on an account.

updateBalance

Updating the balance of an account.

deleteBalance

Deleting the balance of an account.

createLifecycle

Creation of a lifecycle.

updateLifecycle

Updating of a lifecycle.

deleteLifecycle

Deleting of a lifecycle.

updateAccountBalanceType

Updating the balance type of an account.
Example
"subscribeToPlan"

EventDataRecordDeviceConnection

Description

The connection type for EventDataRecord.

Fields
Field Name Description
edges - [EventDataRecordEdge!] List of nodes in the connection.
pageInfo - PageInfo! Information about pagination in the connection.
device - Device! All of the EDRs belong to this device.
Example
{
  "edges": [EventDataRecordEdge],
  "pageInfo": PageInfo,
  "device": Device
}

EventDataRecordDeviceConnectionResult

Description

Return type of EventDataRecordDeviceConnection including all possible errors.

Example
EventDataRecordDeviceConnection

EventDataRecordEdge

Description

An edge in a connection.

Fields
Field Name Description
node - EventDataRecord! The item at the end of the edge.
cursor - String! A cursor for use in pagination.
Example
{
  "node": EventDataRecord,
  "cursor": "abc123"
}

EventDataRecordFilter

Description

Filtering options for event data records.

Fields
Input Field Description
types - [EventDataRecordType!] If not provided, then it is considered that all types are included.
from - AWSDateTime Return EDRs created only at this time or later.
to - AWSDateTime Return EDRs created only earlier than this time.
Example
{
  "types": ["CHARGING"],
  "from": AWSDateTime,
  "to": AWSDateTime
}

EventDataRecordType

Description

Possible types of event data records.

Values
Enum Value Description

CHARGING

Charging EDRs are created as part of "init" and "update" charging requests.

BILLING

Billing EDRs are created as part of "terminate" charging requests, and event based requests.

ACCOUNT

Account EDRs are created as part of executing any account mutation, and each EDR includes the time of the transaction, the identifier of the user who made the change, the action taken, the changed account identifier and the changed attributes.

DEVICE

Device EDRs are created as part of executing any device mutation, and each EDR includes the time of the transaction, the identifier of the user who made the change, the action taken, the changed device identifier and the changed attributes.

CHURN_SCORE

Churn score EDRs are created for providers that have churnFeatureEnabled set to true on a regular basis when calculating the churn score for each account. An EDR record is created for each update to every account. Each EDR contains the time of the update, the account ID, account type (prepaid/postpaid), the previous churn score and the current churn score.
Example
"CHARGING"

ExportConfig

Description

output type for data export config.

Fields
Field Name Description
awsAccountId - String! AWS Account ID where the Iceberg table is located
databaseName - String! Database name containing the Iceberg table
tableName - String! Name of the Iceberg table
s3BucketUri - String! S3 bucket name in the form s3://bucket-name
roleArn - String! ARN in the tenant account that we assume when writing to the tenant table
Example
{
  "awsAccountId": "xyz789",
  "databaseName": "abc123",
  "tableName": "xyz789",
  "s3BucketUri": "abc123",
  "roleArn": "abc123"
}

ExportJob

Description

Type for export job.

Fields
Field Name Description
id - ID! ID for the restore job.
providerId - ID! Provider ID.
status - ExportJobStatus! Status of the job.
createdAt - AWSDateTime! The creation time of the job.
createdBy - AWSEmail! The email of the person who triggered the export job.
modifiedAt - AWSDateTime! Time of the last update of the record. Will be the same as the creation date when record is created.
Example
{
  "id": 4,
  "providerId": 4,
  "status": "STARTED",
  "createdAt": AWSDateTime,
  "createdBy": AWSEmail,
  "modifiedAt": AWSDateTime
}

ExportJobStatus

Description

Status of a export job.

Values
Enum Value Description

STARTED

The job was started, but not yet completed.

SUCCESS

The job ended successfully.

FAILURE

The job ended with a failure.
Example
"STARTED"

ExtendedRate

Description

Rate configuration for roaming.

Fields
Field Name Description
origination - Origination Information about A and B parties for MO calls.
termination - Termination Information about A and B parties for MT calls.
rate - Rate Rate configuration. If not provided means roaming for this origination is denied.
Example
{
  "origination": Origination,
  "termination": Termination,
  "rate": Rate
}

ExtendedRateInput

Description

Information about the rate for a plan. Either origination or termination must be provided. If no rate is provided, it is assumed that the rate is for long distance calls and origination is denied.

Fields
Input Field Description
origination - OriginationInput Information about A and B parties for MO calls. Either origination or termination must be provided.
termination - TerminationInput Information about A and B parties for MT calls. Either origination or termination must be provided.
rate - RateInput Rate configuration. If not provided means long distance for this number and origination is denied.
Example
{
  "origination": OriginationInput,
  "termination": TerminationInput,
  "rate": RateInput
}

FailureHandling

Description

Failure handling strategies

Values
Enum Value Description

TERMINATE

CONTINUE

RETRY_AND_TERMINATE

Example
"TERMINATE"

FieldMapping

Description

Field mapping.

Fields
Field Name Description
path - String! The path to the field you want to manipulate. For example, "transformedRequest.sMSChargingInformation.numberofMessagesSent". The path must start from either "transformedRequest." or "transformedResponse." and might be existing path or not existing. If provided path does not exist in request or response, only the last key should not exist. For example, "transformedResponse.invocationResult.message" is allowed, while "transformedResponse.invocationResult.message.text" is not allowed, because message is a new key already. It is possible to set a new field to a list. Originally SpEL does not support that, but we iterate over lists with provided [] after them. For example, "transformedRequest.multipleUnitUsage[].usedUnitContainer[].timeSpecificUnits", both multipleUnitUsage and usedUnitContainer are arrays, it means eventually field mapper will add to each item in these lists a new key "timeSpecificUnits".
expr - String! SpEL expression to generate the value(s). It must return one value, but also it can use the same expressions as "path" with []. For example, "originalRequest.multipleUnitUsage[].usedUnitContainer[].serviceSpecificUnits * 10". It is also possible to use "originalField" as a reference to original value if field exists. For example, "originalField + 10".
Example
{
  "path": "transformedRequest.multipleUnitUsage[].ratingGroup",
  "expr": "originalField?:100"
}

FieldMappingAlreadyExists

Description

An error type to be thrown if a field mapping for provided path already exists.

Fields
Field Name Description
path - String! Already existing path.
errorCode - String!
errorMessage - String
Example
{
  "path": "abc123",
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

FieldMappingConnection

Description

The connection type for FieldMapping.

Fields
Field Name Description
edges - [FieldMappingEdge!] List of nodes in the connection.
pageInfo - PageInfo! Information about pagination in the connection.
Example
{
  "edges": [FieldMappingEdge],
  "pageInfo": PageInfo
}

FieldMappingEdge

Description

An edge in a connection.

Fields
Field Name Description
node - FieldMapping! The item at the end of the edge.
cursor - String! A cursor for use in pagination.
Example
{
  "node": FieldMapping,
  "cursor": "xyz789"
}

FieldMappingHasReferences

Description

An error type to be thrown if a field mapping has references preventing it from deletion.

Fields
Field Name Description
fieldMapping - FieldMapping! A field mapping with has references preventing it from deletion.
errorCode - String!
errorMessage - String
Example
{
  "fieldMapping": FieldMapping,
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

FieldMappingNotFound

Description

An error type to be thrown if a field mapping was not found.

Fields
Field Name Description
providerId - ID! A field mapping for a provided provider ID was not found.
path - String! A field mapping with a provided path was not found.
errorCode - String!
errorMessage - String
Example
{
  "providerId": "4",
  "path": "abc123",
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

GetAccountBalanceTypeCountersInput

Description

Input parameters for retrieving Balance Type Counter notifications for an account.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
accountId - ID! The account ID associated with the Balance Type Counter. Retrieves the Balance Type Counter records from the account.
balanceTypeId - ID! The Balance Type associated with the counter. Retrieves the Balance Type Counter records for the Balance Type.
balanceTypeCounterId - ID The optional unique identifier of the Balance Type Counter. If specified, retrieves only the Balance Type Counter record with that ID.
Example
{
  "providerId": 4,
  "accountId": 4,
  "balanceTypeId": "4",
  "balanceTypeCounterId": "4"
}

GetAccountCohortInput

Description

Defines the input for the GetAccountCohort query.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
id - ID! Account Cohort identifier.
Example
{"providerId": 4, "id": 4}

GetAccountCohortResult

GetAccountCohortsInput

Description

Defines the input for the GetAccountCohorts query.

Fields
Input Field Description
providerId - ID! Service provider ID.
first - Int! Returns the first n elements from the list.
after - String Returns the elements in the list that come after the specified cursor.
Example
{
  "providerId": 4,
  "first": 123,
  "after": "xyz789"
}

GetAccountCohortsResult

Example
AccountCohortConnection

GetBalanceTypeCountersInput

Description

Input parameters for retrieving Balance Type Counters.

Fields
Input Field Description
balanceTypeCounterId - ID The optional unique identifier for the Balance Type Counter. If provided retrieves the single Balance Type Counter from the Balance Type.
balanceTypeId - ID! The Balance Type associated with the counter. Retrieves the Balance Type Counter records from the Balance Type.
providerId - ID! Provider ID.
Example
{
  "balanceTypeCounterId": "4",
  "balanceTypeId": "4",
  "providerId": 4
}

GetBalanceTypeCountersResult

Description

Return type of several BalanceTypeCounter including all possible errors.

  • BalanceTypeCounterNotFound (BalanceTypeCounterNotFound) - The balance type ID provided does not exist.
  • BalanceTypeNotFound (BalanceTypeNotFound) - The balance type ID provided does not exist.
Example
BalanceTypeCountersPayload

GetBalanceTypeInput

Description

Input type for getting balance type data.

Fields
Input Field Description
balanceTypeId - ID! ID for the balance type.
providerId - ID! Provider ID.
Example
{"balanceTypeId": "4", "providerId": 4}

GetBalanceTypeResult

Description

Return type of GetBalanceType including all possible errors.

  • BalanceTypeNotFound (BalanceTypeNotFound) - The balance type ID provided does not exist.
Example
BalanceTypePayload

GetBalanceTypesInput

Description

Input type for getting balance types data. Returns only IDs that are found. If none of the specified are found, returns an error.

Fields
Input Field Description
balanceTypeIds - [ID!] List of IDs for the balance types. If not provided, returns all balance types.
providerId - ID! Provider ID.
Example
{"balanceTypeIds": ["4"], "providerId": 4}

GetBalanceTypesPayload

Description

Balance type return type for getting multiple balance types.

Fields
Field Name Description
balanceTypes - [BalanceTypePayload!] The found balance types.
Example
{"balanceTypes": [BalanceTypePayload]}

GetBalanceTypesResult

Description

Return type of GetBalanceTypes including all possible errors.

  • BalanceTypeNotFound (BalanceTypeNotFound) - None of the balance type IDs provided does exist.
Example
GetBalanceTypesPayload

GetBulkUploadMetadataInput

Description

Input parameters for bulk uploading metadata for an account

Fields
Input Field Description
providerId - ID! Provider ID.
jobId - ID! The ID of the job that was created for the bulk upload.
Example
{
  "providerId": "4",
  "jobId": "4"
}

GetBulkUploadMetadataPayload

Description

Return type of BulkUploadMetadata

Fields
Field Name Description
status - BulkUploadMetadataJobStatus! The status of the job.
Example
{"status": "CREATED"}

GetBulkUploadMetadataResult

Example
GetBulkUploadMetadataPayload

GetCampaignInput

Description

Input for getting a specific campaign.

Fields
Input Field Description
providerId - ID! Service provider ID.
campaignId - ID! The unique identifier for the campaign.
Example
{"providerId": "4", "campaignId": 4}

GetCampaignResult

Description

Return type of get campaign query including all possible errors.

Example
Campaign

GetCampaignStatisticsInput

Description

Input for getting a list of statistics.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
campaignId - ID! The ID of the campaign associated with the interaction.
first - Int! Returns the first n elements from the list.
after - String Returns the elements in the list that come after the specified cursor.
Example
{
  "providerId": 4,
  "campaignId": "4",
  "first": 987,
  "after": "abc123"
}

GetCampaignsInput

Description

Input for getting a list of campaigns with pagination.

Fields
Input Field Description
providerId - ID! Service provider ID.
first - Int! Returns the first n elements from the list.
after - String Returns the elements in the list that come after the specified cursor.
Example
{
  "providerId": 4,
  "first": 123,
  "after": "xyz789"
}

GetCampaignsResult

Description

Return type of get campaigns query including all possible errors.

Example
CampaignConnection

GetLifecycleResult

Description

Return type of CreateAccount including all possible errors.

  • InvalidNumberOfStates (InvalidNumberOfStates) - The lifecycle requires at least one state.
  • InvalidStateTransitions (InvalidStateTransitions) - Transitions need to be to a valid state.
  • LifecycleNotFound (LifecycleNotFound) - The specified lifecycle doesn't exist.
Example
Lifecycle

GetLifecyclesResult

Description

Return type of GetLifecycles including all possible errors.

  • LifecycleNotFound (LifecycleNotFound) - The specified lifecycle doesn't exist.
Example
Lifecycles

GetMyExportJobsInput

Description

Input type for GetMyExportJobs.

Fields
Input Field Description
jobId - ID Optional ID to get info of a specific job. If not passed, then we list jobs.
from - AWSDateTime Optional date/time in UTC to get the jobs created after (inclusive). If jobId is used, job exists, but doesn't match 'from', then an empty result is returned.
to - AWSDateTime Date/time in UTC to get the jobs created before (inclusive). If jobId is used, job exists, but doesn't match 'to', then an empty result is returned.
Example
{
  "jobId": "4",
  "from": AWSDateTime,
  "to": AWSDateTime
}

GetMyExportJobsPayload

Description

Return type for GetMyExportJobs.

Fields
Field Name Description
jobs - [ExportJob]! Array of export jobs, sorted in a descending order by date and limited to 100 results.
Example
{"jobs": [ExportJob]}

GetMyExportJobsResult

Description

Return type of GetMyExportJobs including all possible errors.

  • InvalidField(from) - From field must be before to.
Example
GetMyExportJobsPayload

GetMyProviderConfigResult

Description

Return type of GetMyProviderConfig including all possible errors.

  • InvalidProviderLifecycleStage - Provider user can't call API when provider lifecycle stage is CREATING, SUSPENDED, TERMINATED or DELETED.
Example
ProviderConfig

GetMyRestoreJobsInput

Description

Input type for GetMyRestoreJobs.

Fields
Input Field Description
jobId - ID Optional ID to get info of a specific job. If not passed, then we list jobs.
from - AWSDateTime Optional date/time in UTC to get the jobs created after (inclusive). If jobId is used, job exists, but doesn't match 'from', then an empty result is returned.
to - AWSDateTime Date/time in UTC to get the jobs created before (inclusive). If jobId is used, job exists, but doesn't match 'to', then an empty result is returned.
Example
{
  "jobId": "4",
  "from": AWSDateTime,
  "to": AWSDateTime
}

GetMyRestoreJobsPayload

Description

Return type for GetMyRestoreJobs.

Fields
Field Name Description
jobs - [RestoreJob]! The ID for the job.
Example
{"jobs": [RestoreJob]}

GetMyRestoreJobsResult

Description

Return type of GetMyRestoreJobs including all possible errors.

  • InvalidField(from) - From field must be before to.
Example
GetMyRestoreJobsPayload

GetOffersResult

Description

Return type of Offer including all possible errors.

Example
OfferConnection

GetRelatedAccountsByDevicePayload

Description

Return type of getRelatedAccountsByDevice

Fields
Field Name Description
providerId - ID! Service provider ID. This is retrieved from cognito group named Provider_{providerId}
deviceId - ID! Device id for which the related accounts are returned
accounts - [Account!]! Accounts the device is related to
Example
{"providerId": 4, "deviceId": 4, "accounts": [Account]}

GetRelatedAccountsByDeviceResult

Description

Return type of GetRelatedAccountsByDevice including all possible errors.

  • DeviceNotFound - Given device ID does not exist in the tenant
Example
GetRelatedAccountsByDevicePayload

GetUserInput

Description

Input type of GetUser

Fields
Input Field Description
providerId - ID! Service provider ID.
userId - ID! Cognito User ID
Example
{"providerId": 4, "userId": 4}

GetUserPayload

Description

Return type of a User for queries fetching a user or listing a group of them

Fields
Field Name Description
providerId - ID! Service provider ID. This is retrieved from cognito group named Provider_{providerId}
userId - ID! Cognito User ID
email - AWSEmail! User email
name - String The name of the user
roleGroupMemberships - [RoleGroup!]! The roles this user belong to
profilePicture - ProfilePhoto The user's profile picture. If profile picture exists, it will always contain a pre-signed URL to download profile picture. It will contain pre-signed URL to upload picture only for the updateUserProfile mutation
phoneNumber - AWSPhone The user's phone number
jobTitle - String The user's job title
softwareMfaEnabled - Boolean! Whether the user has enabled software MFA or not
expiry - AWSDateTime The time when the user should expire. Used for temporary access.
alertInterval - Int The alarm interval in minutes when an email should be send to the user that access expires. Only used when expiry is specified. Can be 0 or not specified when expiry is specified which means no email is send.
Example
{
  "providerId": 4,
  "userId": "4",
  "email": AWSEmail,
  "name": "abc123",
  "roleGroupMemberships": ["Account_Query"],
  "profilePicture": ProfilePhoto,
  "phoneNumber": AWSPhone,
  "jobTitle": "xyz789",
  "softwareMfaEnabled": true,
  "expiry": AWSDateTime,
  "alertInterval": 987
}

GetUserResult

Description

Return type of GetUser including all possible errors.

  • UserNotFound - Given user ID does not exist for the given provider, even if provider does not exist.
Example
GetUserPayload

HttpHeader

Fields
Input Field Description
key - String
value - String
Example
{
  "key": "xyz789",
  "value": "abc123"
}

HttpMethod

Values
Enum Value Description

PUT

POST

GET

DELETE

PATCH

Example
"PUT"

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

InitialRecurringFirstUsageTemplateInstance

Description

All the parameters with which initial recurring first usage fee template was used to create a plan.

Fields
Field Name Description
recurringFirstUsageFee - Float! A fee that will be charged every time after the recurringFirstUsagePeriod expires. Currently, this is at the next hour for hourly plans, at next midnight of the account timezone for daily plans, at next Saturday midnight of the account timezone for weekly plans, and at the last day of the month midnight of the account timezone for monthly plans.
recurringFirstUsagePeriodType - PeriodType! The period type at which the recurringFirstUsageFee is charged, hourly, daily, weekly, monthly.
services - [InitialRecurringFirstUsageTemplateService!]! List of plan services.
json - AWSJSON Custom data in JSON format to be able to save and retrieve some configurations.
priority - Float Plan priority that determines the execution order for charging and rating.
Example
{
  "recurringFirstUsageFee": 987.65,
  "recurringFirstUsagePeriodType": "HOUR",
  "services": [InitialRecurringFirstUsageTemplateService],
  "json": AWSJSON,
  "priority": 123.45
}

InitialRecurringFirstUsageTemplateService

Description

All the parameters for each service in initial recurring first usage template.

Fields
Field Name Description
ratingGroupId - Int! Custom rating group ID for this service.
priority - Float Plan service priority that determines the execution order for charging and rating.
balanceTypeIds - [ID!]! List of unique balance type IDs the plan service uses for charging if a balance of that type exists on the account. Balance type IDs could be, for example, manually added to the account and used if present or from another service. Order of the IDs specifies in what order the balances are applied on charging.
rateBalance - RateBalance Rate based balance configuration for this service. The configuration is used for any rate based balance type based on the order of input for the balance types. Premium numbers are only applicable to rate based balances.
workingHours - [TimePeriod!] A list of time periods when service is applicable.
fromCountriesExpr - String Applicable only for unit allowance. For monetary allowance, refer to roaming and longDistance fields in RateBalance. If provided, the origination party must be located in one of these countries for the service allowance and rating to be used. ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA.
toCountriesExpr - String Applicable only for unit allowance. For monetary allowance, refer to roaming and longDistance fields in RateBalance. If provided, the termination party must belong to an operator in one of these countries for the service allowance and rating to be used. ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA.
bNumbersExpr - String If provided, the MOC calls are restricted by the provided expression. It contains service(s). For example, for voice it consists of number(s) and it must match calledPartyAddress in 5G. Negation can be used. For example, !+12024561111. Conjunction can be used. For example, (+12024561111,+12024561414).
denyOtherServices - Boolean If provided and current service can serve a request (even if it does not have enough balance to do that), then no other services next in the order will be executed. If both unit and monetary are not provided then requests that match provided ratingGroupId, workingHours, fromCountriesExpr, toCountriesExpr and bNumbersExpr are immediately failed without execution of all next services. By default it is false.
restrictions - [ServiceConstraint] The service allowance and rating can only be used if all the constraints listed are met.
Example
{
  "ratingGroupId": 123,
  "priority": 123.45,
  "balanceTypeIds": [4],
  "rateBalance": RateBalance,
  "workingHours": [TimePeriod],
  "fromCountriesExpr": "xyz789",
  "toCountriesExpr": "xyz789",
  "bNumbersExpr": "abc123",
  "denyOtherServices": true,
  "restrictions": ["IS_FRIEND_FAMILY"]
}

InitialRecurringFirstUsageTemplateServiceInput

Description

Input type for creating a recurring first usage service from a template. If parameters free, unit and monetary are not specified then service is denied completely. A plan service can only specify a monetary or unit rate but not both, they are exclusive.

Fields
Input Field Description
ratingGroupId - Int! Rating group ID for this service.
priority - Float Plan priority that determines the execution order for charging and rating. Considered as 0 (the highest) if not provided.
balanceTypeIds - [ID!]! List of unique balance type IDs the plan service uses for charging if a balance of that type exists on the account. Balance type IDs could be, for example, manually added to the account and used if present or from another service. Order of the IDs specifies in what order the balances are applied on charging.
rateBalance - RateBalanceInput Rate based balance configuration for this service. The configuration is used for any rate based balance type based on the order of input for the balance types. Premium numbers are only applicable to rate based balances.
workingHours - [TimePeriodInput!] A list of time periods when service is applicable.
fromCountriesExpr - String Applicable only for unit allowance. For monetary allowance, refer to roaming and longDistance fields in RateBalance. If provided, the origination party must be located in one of these countries for the service allowance and rating to be used. ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA.
toCountriesExpr - String Applicable only for unit allowance. For monetary allowance, refer to roaming and longDistance fields in RateBalance. If provided, the termination party must belong to an operator in one of these countries for the service allowance and rating to be used. ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA.
bNumbersExpr - String If provided, the MOC calls are restricted by the provided expression. It contains service(s). For example, for voice it consists of number(s) and it must match calledPartyAddress in 5G. Negation can be used. For example, !+12024561111. Conjunction can be used. For example, (+12024561111,+12024561414).
denyOtherServices - Boolean If provided and current service can serve a request (even if it does not have enough balance to do that), then no other services next in the order will be executed. If both unit and monetary are not provided then requests that match provided ratingGroupId, workingHours, fromCountriesExpr, toCountriesExpr and bNumbersExpr are immediately failed without execution of all next services. By default it is false.
restrictions - [ServiceConstraint] The service allowance and rating can only be used if all the constraints listed are met. Note: Do not include opposite restrictions together at the same time, such as IS_ON_NET and IS_OFF_NET.
Example
{
  "ratingGroupId": 123,
  "priority": 123.45,
  "balanceTypeIds": [4],
  "rateBalance": RateBalanceInput,
  "workingHours": [TimePeriodInput],
  "fromCountriesExpr": "xyz789",
  "toCountriesExpr": "xyz789",
  "bNumbersExpr": "abc123",
  "denyOtherServices": true,
  "restrictions": ["IS_FRIEND_FAMILY"]
}

InitialTemplateInstance

Description

All the parameters with which initial template was used to create a plan.

Fields
Field Name Description
fee - Float A fee that will be charged per specified recurring period. Recurring fee is charged first time after the first period. If you need to charge some fee on subscription you need to use purchaseFee.
firstUsageFee - Float A fee that will be charged just once on first usage of the plan.
purchaseFee - Float A fee that will be charged just once right after the subscription.
period - RecurringPeriod A period when specified fee will be charged.
services - [InitialTemplateService!]! List of plan services. A plan service can only specify a monetary or unit rate but not both, they are exclusive.
notificationPeriodsBeforeExpiration - [Int] A set of periods in seconds when to send multiple notifications before the plan expires.
renewalGracePeriod - [Duration] Put a plan on hold for a limited grace period while waiting for a successful renewal. It is a sum of provided durations.
json - AWSJSON Custom data in JSON format to be able to save and retrieve some configurations.
priority - Float Plan priority that determines the execution order for charging and rating.
proratingOptions - ProratingOptions The prorating options of the plan
Example
{
  "fee": 987.65,
  "firstUsageFee": 987.65,
  "purchaseFee": 123.45,
  "period": RecurringPeriod,
  "services": [InitialTemplateService],
  "notificationPeriodsBeforeExpiration": [123],
  "renewalGracePeriod": [Duration],
  "json": AWSJSON,
  "priority": 987.65,
  "proratingOptions": ProratingOptions
}

InitialTemplateService

Description

All the parameters for each service in initial template. If parameters free, unit and monetary are not specified then service is denied completely. A plan service can only specify a monetary or unit rate but not both, they are exclusive.

Fields
Field Name Description
ratingGroupId - Int! Custom rating group ID for this service.
priority - Float Plan service priority that determines the execution order for charging and rating.
balanceTypeIds - [ID!] List of unique balance type IDs the plan service uses for charging if a balance of that type exists on the account. Only a single balance type ID is managed by the service. Other balance type IDs could be, for example, manually added to the account and used if present. Order of the IDs specifies in what order the balances are applied on charging.
managedBalance - ManagedBalance Managed balance configuration for this service. Roaming and long distance calls use this unit balance unless it is not restricted by from and to countries. Only unit and monetary or managedBalance and rateBalance can be specified but not both, they are exclusive. If the field is not specified, the service will not have a recurring allowance or rollover. For fair usage and unlimited plans, a balance type counter should be added to the specified balance type ID.
rateBalance - RateBalance Rate based balance configuration for this service. The configuration is used for any rate based balance type based on the order of input for the balance types. Premium numbers are only applicable to rate based balances. Only unit and monetary or managedBalance and rateBalance can be specified but not both, they are exclusive.
workingHours - [TimePeriod!] A list of time periods when service is applicable.
fromCountriesExpr - String Applicable only for unit allowance. For monetary allowance, refer to roaming and longDistance fields in RateBalance. If provided, the origination party must be located in one of these countries for the service allowance and rating to be used. ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA.
toCountriesExpr - String Applicable only for unit allowance. For monetary allowance, refer to roaming and longDistance fields in RateBalance. If provided, the termination party must belong to an operator in one of these countries for the service allowance and rating to be used. ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA.
bNumbersExpr - String If provided, the MOC calls are restricted by the provided expression. It contains service(s). For example, for voice it consists of number(s) and it must match calledPartyAddress in 5G. Negation can be used. For example, !+12024561111. Conjunction can be used. For example, (+12024561111,+12024561414).
denyOtherServices - Boolean If provided and current service can serve a request (even if it does not have enough balance to do that), then no other services next in the order will be executed. If both unit and monetary are not provided then requests that match provided ratingGroupId, workingHours, fromCountriesExpr, toCountriesExpr and bNumbersExpr are immediately failed without execution of all next services. By default it is false.
restrictions - [ServiceConstraint] The service allowance and rating can only be used if all the constraints listed are met.
Example
{
  "ratingGroupId": 987,
  "priority": 987.65,
  "balanceTypeIds": [4],
  "managedBalance": ManagedBalance,
  "rateBalance": RateBalance,
  "workingHours": [TimePeriod],
  "fromCountriesExpr": "xyz789",
  "toCountriesExpr": "xyz789",
  "bNumbersExpr": "abc123",
  "denyOtherServices": false,
  "restrictions": ["IS_FRIEND_FAMILY"]
}

InitialTemplateServiceInput

Description

Input type for creating a service from a template. If parameters free, unit and monetary are not specified then service is denied completely. A plan service can only specify a monetary or unit rate but not both, they are exclusive.

Fields
Input Field Description
ratingGroupId - Int! Rating group ID for this service.
priority - Float Plan priority that determines the execution order for charging and rating. Considered as 0 (the highest) if not provided.
balanceTypeIds - [ID!] List of unique balance type IDs the plan service uses for charging if a balance of that type exists on the account. Only a single balance type ID is managed by the service. Other balance type IDs could be, for example, manually added to the account and used if present. Order of the IDs specifies in what order the balances are applied on charging.
managedBalance - ManagedBalanceInput Managed balance configuration for this service. Roaming and long distance calls use this unit balance unless it is not restricted by from and to countries. Only unit and monetary or managedBalance and rateBalance can be specified but not both, they are exclusive. If the field is not specified, the service will not have a recurring allowance or rollover. For fair usage and unlimited plans, a balance type counter should be added to the specified balance type ID.
rateBalance - RateBalanceInput Rate based balance configuration for this service. The configuration is used for any rate based balance type based on the order of input for the balance types. Premium numbers are only applicable to rate based balances. Only unit and monetary or managedBalance and rateBalance can be specified but not both, they are exclusive.
workingHours - [TimePeriodInput!] A list of time periods when service is applicable.
fromCountriesExpr - String Applicable only for unit allowance. For monetary allowance, refer to roaming and longDistance fields in RateBalance. If provided, the origination party must be located in one of these countries for the service allowance and rating to be used. ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA.
toCountriesExpr - String Applicable only for unit allowance. For monetary allowance, refer to roaming and longDistance fields in RateBalance. If provided, the termination party must belong to an operator in one of these countries for the service allowance and rating to be used. ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA.
bNumbersExpr - String If provided, the MOC calls are restricted by the provided expression. It contains service(s). For example, for voice it consists of number(s) and it must match calledPartyAddress in 5G. Negation can be used. For example, !+12024561111. Conjunction can be used. For example, (+12024561111,+12024561414).
denyOtherServices - Boolean If provided and current service can serve a request (even if it does not have enough balance to do that), then no other services next in the order will be executed. If both unit and monetary are not provided then requests that match provided ratingGroupId, workingHours, fromCountriesExpr, toCountriesExpr and bNumbersExpr are immediately failed without execution of all next services. By default it is false.
restrictions - [ServiceConstraint] The service allowance and rating can only be used if all the constraints listed are met. Note: Do not include opposite restrictions together at the same time, such as IS_ON_NET and IS_OFF_NET.
Example
{
  "ratingGroupId": 987,
  "priority": 123.45,
  "balanceTypeIds": ["4"],
  "managedBalance": ManagedBalanceInput,
  "rateBalance": RateBalanceInput,
  "workingHours": [TimePeriodInput],
  "fromCountriesExpr": "xyz789",
  "toCountriesExpr": "xyz789",
  "bNumbersExpr": "xyz789",
  "denyOtherServices": true,
  "restrictions": ["IS_FRIEND_FAMILY"]
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

InternalServerError

Description

An error type to be thrown if an internal error happened or the charge engine is not available.

Fields
Field Name Description
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

InvalidField

Description

An error type to be thrown if a value of a field in an input fails a validation.

Fields
Field Name Description
fieldName - String! A name of the invalid field.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "fieldName": "abc123",
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

InvalidNumberOfStates

Description

An error type to be thrown if a lifecycle doesn't define any states.

Fields
Field Name Description
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

InvalidProviderLifecycleStage

Description

An error type to be thrown if a provider's lifecycle state is not valid to execute the operation

Fields
Field Name Description
providerLifecycleStage - ProviderLifecycleStage! A name of the provider lifecycle stage.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerLifecycleStage": "CREATING",
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

InvalidStateTransitions

Description

An error type to be thrown if a lifecycle defines an invalid state transition.

Fields
Field Name Description
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

KeyValue

Description

Key value object.

Fields
Field Name Description
name - String! Name of the key.
value - String! Value for the key.
Example
{
  "name": "abc123",
  "value": "abc123"
}

KeyValueInput

Description

Input type of KeyValue. This type is used in overrides which are key value pairs which can be nested. There are two main levels: plan and plan service.

  • A simple plan override is the following: { name: "recurring period", value: "HOUR" }
  • A nested override is used for plan services and can be like the following: "{ name: \"TemplateService0\", value: {\"recurring units":\"120\"} }" Pay attention to the format, it is a JSON, but as an escaped string because only strings are allowed as values. The same applies to inner values, such as recurring units, it must be also a string. A nested override uses the override field and value as the high-level value field with value. The following override fields are valid:
    Field ReferencedField Type Scope Format
    alignToBillingDoM ProratingOptionsInput. alignToBillingDoM BOOLEAN Plan old and new
    fee fee NUMBER Plan old
    renewalFee fee NUMBER Plan new
    first usage fee firstUsageFee NUMBER Plan old
    firstUsageFee firstUsageFee NUMBER Plan new
    number of periods RecurringPeriodInput. numberOfPeriods NUMBER Plan old
    numberOfPeriods RecurringPeriodInput. numberOfPeriods NUMBER Plan new
    recurring RecurringPeriodInput. recurring BOOLEAN Plan old and new
    recurring period RecurringPeriodInput. numberOfPeriods STRING Plan old
    recurringPeriod RecurringPeriodInput. numberOfPeriods STRING Plan new
    refundPolicy ProratingOptionsInput. refundPolicy STRING(NONE /FULL_REFUND /TIME_BASED) Plan old and new
    renewalGracePeriod InitialTemplateInstance. renewalGracePeriod STRING Plan old and new
    subscriptionPolicy ProratingOptionsInput. subscriptionPolicy STRING (NONE / TIME_BASED) Plan old and new
    purchase fee InitialTemplateInstance. purchaseFee NUMBER Plan old
    purchaseFee InitialTemplateInstance. purchaseFee NUMBER Plan new
    periodAllowance ManagedBalance. periodAllowance NUMBER Plan -Service new
    rollover ManagedBalance.rollover BOOLEAN Plan Service
    maxRolloverPeriods ManagedBalance. maxRolloverPeriods NUMBER Plan-Service new
    rolloverAllowance ManagedBalance. rolloverAllowance NUMBER Plan-Service new
    rolloverMaxAllowance ManagedBalance. rolloverMaxAllowance NUMBER Plan-Service new
    chargeNewBalanceFirst ManagedBalance. chargeNewBalanceFirst BOOLEAN Plan-Service new
    workingHours InitialTemplateServiceInput. workingHours JSON Plan-Service old and new
Fields
Input Field Description
name - String! Name of the key.
value - String Value for the key. If not provided then the key will be removed.
Example
{
  "name": "abc123",
  "value": "abc123"
}

Lifecycle

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - ID! A unique identifier of a Lifecycle.
name - String! Descriptive name
states - [LifecycleState!]! Lifecycle Definition; first state is used as the default.
Example
{
  "providerId": 4,
  "id": "4",
  "name": "abc123",
  "states": [LifecycleState]
}

LifecycleNotFound

Description

An error type to be thrown if a lifecycle defines an invalid state transition.

Fields
Field Name Description
id - ID! The requested lifecycle ID.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "id": "4",
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

LifecyclePayload

Fields
Field Name Description
lifecycle - Lifecycle! The created lifecycle.
Example
{"lifecycle": Lifecycle}

LifecycleState

Fields
Field Name Description
name - String! Name of State; used for specifying transitions
transitions - [LifecycleTransition!] Transitions to other states
Example
{
  "name": "abc123",
  "transitions": [LifecycleTransition]
}

LifecycleStateInput

Fields
Input Field Description
name - String! Name of State; used for specifying transitions
transitions - [LifecycleTransitionInput!] Transitions to other states
Example
{
  "name": "abc123",
  "transitions": [LifecycleTransitionInput]
}

LifecycleTransition

Fields
Field Name Description
state - String! Name of State to transition to
Example
{"state": "xyz789"}

LifecycleTransitionInput

Fields
Input Field Description
state - String! Name of State to transition to
Example
{"state": "abc123"}

Lifecycles

Description

Balance type return type for getting multiple balance types.

Fields
Field Name Description
lifecycles - [Lifecycle!] The found balance types.
Example
{"lifecycles": [Lifecycle]}

ListUserPayload

Description

Return type of a User for queries fetching a user or listing a group of them

Fields
Field Name Description
providerId - ID! Service provider ID. This is retrieved from cognito group named Provider_{providerId}
userId - ID! Cognito User ID
email - AWSEmail! User email
name - String The name of the user
phoneNumber - AWSPhone The user's phone number
jobTitle - String The user's job title
expiry - AWSDateTime The time when the user should expire. Used for temporary access.
alertInterval - Int The alarm interval in minutes when an email should be send to the user that access expires. Only used when expiry is specified. Can be 0 or not specified when expiry is specified which means no email is send.
Example
{
  "providerId": 4,
  "userId": 4,
  "email": AWSEmail,
  "name": "xyz789",
  "phoneNumber": AWSPhone,
  "jobTitle": "xyz789",
  "expiry": AWSDateTime,
  "alertInterval": 123
}

ListUsersConnection

Description

The connection type for ListUsers

Fields
Field Name Description
edges - [ListUsersEdge!]! List of nodes in the connection.
pageInfo - PageInfo! Information about pagination in the connection.
Example
{
  "edges": [ListUsersEdge],
  "pageInfo": PageInfo
}

ListUsersEdge

Description

An edge in a user connection.

Fields
Field Name Description
node - ListUserPayload! The item at the end of the edge.
cursor - String A cursor for use in pagination.
Example
{
  "node": ListUserPayload,
  "cursor": "xyz789"
}

ListUsersResult

Description

Return type of ListUsers including all possible errors.

Example
ListUsersConnection

ManagedBalance

Description

Input type for the managed balance.

Fields
Field Name Description
managedBalanceTypeId - ID! The balance type ID that the plan service manages. Managing means that for this balance type ID, the service creates balances on subscription and renewal and handles rollover if specified. BalanceTypeIds must be provided if this is set and the referred balance type ID must be provided in balanceTypeIds. For fair usage and unlimited plans, a balance type counter should be added to the specified balance type ID.
periodAllowance - Float Value that the managed balance type ID will be created with. Can only be a decimal value for rate based balance types. If not specified or zero it means that it is unlimited. For fair usage and unlimited plans, a balance type counter should be added to the specified balance type ID.
rollover - Boolean An action to perform with balances from a previous period. Rollover if true or reset if false. False by default.
maxRolloverPeriods - Int The maximum number of periods a rollover is maintained. If rollover is set but this value isn't, then it is one period. This value uses a multiple of the plan period. For example, if the plan period is 2 weeks, then a value of 3 means the rollover balance is valid for 6 weeks.
rolloverAllowance - Float The maximum allowance that is rolled over per period. If rollover is set but this value isn't, then it is unlimited.
rolloverMaxAllowance - Float The maximum allowance that is rolled over for all periods specified by maxRolloverPeriods. If the overall rollover balance is larger then it will be removed from balances in the same order as chargeNewBalanceFirst is set.
chargeNewBalanceFirst - Boolean Determines if the newest balance or the oldest balance is charged first. False By default which means the oldest balance is charged first.
Example
{
  "managedBalanceTypeId": "4",
  "periodAllowance": 123.45,
  "rollover": false,
  "maxRolloverPeriods": 123,
  "rolloverAllowance": 987.65,
  "rolloverMaxAllowance": 123.45,
  "chargeNewBalanceFirst": true
}

ManagedBalanceInput

Description

Input type for the managed balance.

Fields
Input Field Description
managedBalanceTypeId - ID! The balance type ID that the plan service manages. Managing means that for this balance type ID, the service creates balances on subscription and renewal and handles rollover if specified. BalanceTypeIds must be provided if this is set and the referred balance type ID must be provided in balanceTypeIds. For fair usage and unlimited plans, a balance type counter should be added to the specified balance type ID.
periodAllowance - Float Value that the managed balance type ID will be created with. Can only be a decimal value for rate based balance types. If not specified or zero it means that it is unlimited. For fair usage and unlimited plans, a balance type counter should be added to the specified balance type ID.
rollover - Boolean An action to perform with balances from a previous period. Rollover if true or reset if false. False by default.
maxRolloverPeriods - Int The maximum number of periods a rollover is maintained. If rollover is set but this value isn't, then it is one period. This value uses a multiple of the plan period. For example, if the plan period is 2 weeks, then a value of 3 means the rollover balance is valid for 6 weeks.
rolloverAllowance - Float The maximum allowance that is rolled over per period. If rollover is set but this value isn't, then it is unlimited.
rolloverMaxAllowance - Float The maximum allowance that is rolled over for all periods specified by maxRolloverPeriods. If the overall rollover balance is larger then it will be removed from balances in the same order as chargeNewBalanceFirst is set.
chargeNewBalanceFirst - Boolean Determines if the newest balance or the oldest balance is charged first. False By default which means the oldest balance is charged first.
Example
{
  "managedBalanceTypeId": "4",
  "periodAllowance": 987.65,
  "rollover": false,
  "maxRolloverPeriods": 987,
  "rolloverAllowance": 987.65,
  "rolloverMaxAllowance": 987.65,
  "chargeNewBalanceFirst": false
}

MetricDimensionType

Description

The metric dimension type.

Values
Enum Value Description

GREATER_THAN

Match values greater than the specified value.

LESS_THAN

Match values less than the specified value.

GREATER_THAN_OR_EQUAL

Match values greater than or equal to the specified value.

LESS_THAN_OR_EQUAL

Match values less than or equal to the specified value.

EQUAL

Match values equal to the specified value.
Example
"GREATER_THAN"

MigrationAlreadyInProgress

Description

An error type to be thrown if there is already migration in progress for this plan.

Fields
Field Name Description
providerId - ID! A plan for a provided provider ID is being migrated.
planVersionId - ID! A plan version to which there is an ongoing migration.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "planVersionId": "4",
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

MigrationType

Description

The possible values of migrating to a new plan alias.

Values
Enum Value Description

TIME

Migrating on a specific timestamp.
Example
"TIME"

ModelMutation

Values
Enum Value Description

create

update

delete

Example
"create"

ModelMutationMap

Fields
Input Field Description
create - String
update - String
delete - String
Example
{
  "create": "xyz789",
  "update": "xyz789",
  "delete": "xyz789"
}

ModelOperation

Values
Enum Value Description

create

update

delete

read

Example
"create"

ModelQuery

Values
Enum Value Description

get

list

Example
"get"

ModelQueryMap

Fields
Input Field Description
get - String
list - String
Example
{
  "get": "xyz789",
  "list": "xyz789"
}

ModelSubscriptionLevel

Values
Enum Value Description

off

public

on

Example
"off"

ModelSubscriptionMap

Fields
Input Field Description
onCreate - [String]
onUpdate - [String]
onDelete - [String]
level - ModelSubscriptionLevel
Example
{
  "onCreate": ["xyz789"],
  "onUpdate": ["abc123"],
  "onDelete": ["abc123"],
  "level": "off"
}

Node

Description

An object with an ID.

Fields
Field Name Description
providerId - ID! The object belongs to a provider.
id - ID! ID of the object.
Example
{
  "providerId": "4",
  "id": "4"
}

Offer

Description

An offer for the tenant to present to its subscribers.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - ID! A unique identifier of an offer.
name - String! The name of the offer.
planVersionId - ID! The ID of the plan version this offer is based on
offerParameters - AWSJSON The parameters that can be substituted into a message to customers.
acceptanceLink - AWSURL! Acceptance link for subscribers. The offer link takes the user to a company - operated page that makes the plan change without user input. It then redirects the browser to a telco - provided URL.
createdAt - AWSDateTime! When it was created.
createdBy - String! By whom it was created.
modifiedAt - AWSDateTime! When it was last modified.
modifiedBy - String! By whom it was modified.
Example
{
  "providerId": "4",
  "id": "4",
  "name": "xyz789",
  "planVersionId": "4",
  "offerParameters": AWSJSON,
  "acceptanceLink": AWSURL,
  "createdAt": AWSDateTime,
  "createdBy": "abc123",
  "modifiedAt": AWSDateTime,
  "modifiedBy": "abc123"
}

OfferAlreadyExists

Description

An error type to be thrown if an offer with provided ID already exists.

Fields
Field Name Description
providerId - ID! Provider ID of the already existing offer ID.
offerId - ID! Offer ID of the already existing offer ID.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "offerId": "4",
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

OfferConnection

Description

The connection type for Rule.

Fields
Field Name Description
edges - [OfferEdge!] List of nodes in the connection.
pageInfo - PageInfo! Information about pagination in the connection.
Example
{
  "edges": [OfferEdge],
  "pageInfo": PageInfo
}

OfferEdge

Description

An edge in a connection.

Fields
Field Name Description
node - Offer! The item at the end of the edge.
cursor - String! A cursor for use in pagination.
Example
{
  "node": Offer,
  "cursor": "xyz789"
}

OfferIsReadOnly

Description

An error type to be thrown if a user tries to remove an offer that belongs to a campaign.

Fields
Field Name Description
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

OfferNotFound

Description

An error type to be thrown if an offer was not found.

Fields
Field Name Description
providerId - ID! An offer for a provided provider ID was not found.
offerId - ID! An offer with a provided offer ID was not found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "offerId": 4,
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

OrderDirection

Description

Possible directions in which to order a list of items when provided an orderBy argument.

Values
Enum Value Description

ASC

Specifies an ascending order for a given orderBy argument.

DESC

Specifies a descending order for a given orderBy argument.
Example
"ASC"

Origination

Fields
Field Name Description
aNumberCurrentCountryExpr - String

ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA. Other valid examples are (US,!CA) , !(US,!CA)

Only aNumberCurrentCountryExpr or currentOperatorExpr can be specified but not both, they are exclusive.

bNumberHomeCountryExpr - String! ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA. Other valid examples are (US,!CA) , !(US,!CA)
currentOperatorExpr - String

An MCC/MNC expression that allows for wildcards, conjunction, and negation and identifies the operator network. For example, specifying: 505/* - All of Australia and its territories. 31*/* - All of the US. 310/(350,012) - Two specific Verizon networks in the US. This uses an OR. {31*, !310/(350,012)} - All of the US except two specific Verizon networks. This is an outer AND and an inner OR.

Only currentOperatorExpr or aNumberCurrentCountryExpr can be specified but not both, they are exclusive.

Example
{
  "aNumberCurrentCountryExpr": "abc123",
  "bNumberHomeCountryExpr": "abc123",
  "currentOperatorExpr": "abc123"
}

OriginationInput

Description

Information about A and B parties for MO calls.

Fields
Input Field Description
aNumberCurrentCountryExpr - String

ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA. Other valid examples are (US,!CA) , !(US,!CA)

Only aNumberCurrentCountryExpr or currentOperatorExpr can be specified but not both, they are exclusive.

bNumberHomeCountryExpr - String! ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA. Other valid examples are (US,!CA) , !(US,!CA)
currentOperatorExpr - String An MCC/MNC expression that allows for wildcards, conjunction, and negation and identifies the operator network. For example, specifying: 505/* - All of Australia and its territories. 31*/* - All of the US. 310/(350,012) - Two specific Verizon networks in the US. This uses an OR. {31*, !310/(350,012)} - All of the US except two specific Verizon networks. This is an outer AND and an inner OR. Only currentOperatorExpr or aNumberCurrentCountryExpr can be specified but not both, they are exclusive.
Example
{
  "aNumberCurrentCountryExpr": "xyz789",
  "bNumberHomeCountryExpr": "xyz789",
  "currentOperatorExpr": "xyz789"
}

PageInfo

Description

Information about pagination in a connection.

Fields
Field Name Description
hasPreviousPage - Boolean! When paginating backwards, are there more items?
hasNextPage - Boolean! When paginating forwards, are there more items?
startCursor - String When paginating backwards, the cursor to continue.
endCursor - String When paginating forwards, the cursor to continue.
Example
{
  "hasPreviousPage": true,
  "hasNextPage": false,
  "startCursor": "abc123",
  "endCursor": "xyz789"
}

PeriodType

Description

The possible values for recurring period.

Values
Enum Value Description

HOUR

Per hour.

DAY

Per day.

WEEK

Per week.

MONTH

Per month.
Example
"HOUR"

Plan

Description

An object to represent a set of plan services that contains all the information to perform charging / crediting operations.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - ID! A unique identifier of a plan.
name - String! A human readable name. Not unique.
alias - [Alias!] The list of plan versions and their properties that this plan aliases.
versions - PlanVersionConnection! A list of versions of the plan.
Arguments
first - Int

Returns the first n elements from the list or a maximum of 25.

after - String

Returns the elements in the list that come after the specified cursor.

orderBy - PlanVersionOrder

Ordering options for plan versions returned from the connection.

Example
{
  "providerId": 4,
  "id": 4,
  "name": "abc123",
  "alias": [Alias],
  "versions": PlanVersionConnection
}

PlanAliasNotActive

Description

An error type to be thrown if a plan alias does not have an active version.

Fields
Field Name Description
providerId - ID! A plan for a provided provider ID was not found.
planId - ID! A plan alias with a provided plan ID was not found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "planId": "4",
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

PlanAliasNotFound

Description

An error type to be thrown if a plan alias was not found.

Fields
Field Name Description
providerId - ID! A plan for a provided provider ID was not found.
planId - ID! A plan alias with a provided plan ID was not found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "planId": 4,
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

PlanAlreadyExists

Description

An error type to be thrown if a plan with provided ID already exists.

Fields
Field Name Description
planId - ID! Already existing plan ID.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "planId": "4",
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

PlanConnection

Description

The connection type for Plan.

Fields
Field Name Description
edges - [PlanEdge!]! List of nodes in the connection.
pageInfo - PageInfo! Information about pagination in the connection.
Example
{
  "edges": [PlanEdge],
  "pageInfo": PageInfo
}

PlanEdge

Description

An edge in a connection.

Fields
Field Name Description
node - Plan! The item at the end of the edge.
cursor - String! A cursor for use in pagination.
Example
{
  "node": Plan,
  "cursor": "abc123"
}

PlanIsReadOnly

Description

An error type to be thrown if the plan is the initial one preventing it from deletion.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
planId - ID! A unique identifier of a plan.
errorCode - String! Machine-readable error identifier.
errorMessage - String Human-readable error description.
Example
{
  "providerId": 4,
  "planId": 4,
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

PlanNotFound

Description

An error type to be thrown if a plan was not found.

Fields
Field Name Description
providerId - ID! A plan for a provided provider ID was not found.
planId - ID! A plan with a provided plan ID was not found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "planId": 4,
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

PlanOrder

Description

Ways in which lists of plans can be ordered upon return.

Fields
Input Field Description
direction - OrderDirection! The direction in which to order issues by the specified field.
field - PlanOrderField! The field in which to order plans by.
Example
{"direction": "ASC", "field": "PRIORITY"}

PlanOrderField

Description

Properties by which plan connections can be ordered.

Values
Enum Value Description

PRIORITY

Order plans by last deployed plan version priority.

PLAN_NAME

Order plans by the plan name.

PLAN_STATUS

Order plans by last deployed plan version state.

LAST_MODIFICATION_DATE

Order plans by last deployed plan version modification date.

TOTAL_PROVISIONED_SUBS

Order plans by the number of subscribers. The number of subscribers per plan is the sum of subscribers across available and suspended plan versions of this plan. The number of subscribers per plan is updated every full hour UTC.

PURCHASE_FEE

Order plans by last deployed plan version purchase fee.

RENEWAL_FEE

Order plans by last deployed plan version renewal fee.
Example
"PRIORITY"

PlanResult

Description

Return type of Plan including all possible errors.

Example
Plan

PlanServiceBETA

Description

Plan Service Definition.

This type is reserved for the upcoming Rate Anything capability, enabling customers to configure rates based on any attribute from the network message or subscriber database, such as birthday or class. Further details will be provided as the feature is rolled out.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - ID! A unique identifier of a plan service.
name - String! The name of the plan service.
ratingGroups - [Int!]! The rating groups supported by the service.
priority - Float The priority of the service compared to others.
Possible Types
PlanServiceBETA Types

UnlimitedPlanService

Example
{
  "providerId": "4",
  "id": 4,
  "name": "abc123",
  "ratingGroups": [123],
  "priority": 987.65
}

PlanState

Description

Possible states of a planVersion.

Values
Enum Value Description

NEW

A planVersion was just created and currently editable.

DEPLOYED

A planVersion was already deployed and is no longer editable, but cannot be assigned to an Account.

AVAILABLE

A planVersion can be assigned to an Account.

SUSPENDED

A planVersion cannot be assigned to an Account.

ARCHIVED

A planVersion is no longer used by any Accounts.
Example
"NEW"

PlanVersion

Description

Versioned part of the planVersion.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - ID! A unique identifier of a plan version.
version - String! String representation of the version.
basedOn - PlanVersion If the current version is based on another version.
plan - Plan! Plan of the plan version.
state - PlanState! Each version has its own state.
refCount - Int! The number of assignments to Accounts this version has.
createdAt - AWSDateTime! When it was created.
createdBy - String! By whom it was created.
modifiedAt - AWSDateTime! When it was last modified.
modifiedBy - String! By whom it was modified.
deployedAt - AWSDateTime When it was deployed.
deployedBy - String By whom it was deployed.
template - TemplateInstance If the plan version was created by using template this attribute contains all the parameters with which it was created.
counters - [Counter] List of counters defined in the plan.
priority - Float Plan version priority that determines the execution order for charging and rating.
services - [PlanServiceBETA!]

The list of plan services of the plan version.

This attribute is reserved for the upcoming Rate Anything capability, enabling customers to configure rates based on any attribute from the network message or subscriber database, such as birthday or class. Further details will be provided as the feature is rolled out.

custom - AWSJSON Any custom details.
purchaseFee - Float A fee that will be charged just once right after the subscription. If not provided, no fee is charged.
firstUsageFee - Float A fee that will be charged just once on first usage of the plan. If not provided, no fee is charged.
expiration - Duration Defines the period the plan is available.
notificationSecondsBeforeExpiration - [Int!] Defines the seconds before expiration to send notifications.
Example
{
  "providerId": 4,
  "id": 4,
  "version": "xyz789",
  "basedOn": PlanVersion,
  "plan": Plan,
  "state": "NEW",
  "refCount": 987,
  "createdAt": AWSDateTime,
  "createdBy": "abc123",
  "modifiedAt": AWSDateTime,
  "modifiedBy": "xyz789",
  "deployedAt": AWSDateTime,
  "deployedBy": "abc123",
  "template": InitialTemplateInstance,
  "counters": [Counter],
  "priority": 123.45,
  "services": [PlanServiceBETA],
  "custom": AWSJSON,
  "purchaseFee": 123.45,
  "firstUsageFee": 987.65,
  "expiration": Duration,
  "notificationSecondsBeforeExpiration": [123]
}

PlanVersionAlreadyExists

Description

An error type to be thrown if a plan version already exists in a plan.

Fields
Field Name Description
plan - Plan! A plan where the version already exists.
planVersion - PlanVersion! Already existing plan version.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "plan": Plan,
  "planVersion": PlanVersion,
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

PlanVersionConnection

Description

The connection type for PlanVersion.

Fields
Field Name Description
edges - [PlanVersionEdge!]! List of nodes in the connection.
pageInfo - PageInfo! Information about pagination in the connection.
Example
{
  "edges": [PlanVersionEdge],
  "pageInfo": PageInfo
}

PlanVersionEdge

Description

An edge in a connection.

Fields
Field Name Description
node - PlanVersion! The item at the end of the edge.
cursor - String! A cursor for use in pagination.
Example
{
  "node": PlanVersion,
  "cursor": "abc123"
}

PlanVersionHasReferences

Description

An error type to be thrown if a plan version has references preventing it from deletion.

Fields
Field Name Description
planVersion - PlanVersion! A plan version with has references preventing it from deletion.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "planVersion": PlanVersion,
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

PlanVersionIsNotAssignable

Description

An error type to be thrown if a plan cannot be assigned.

Fields
Field Name Description
providerId - ID! A plan for a provided provider ID cannot be assigned.
planVersionId - ID! A plan version with a provided plan version ID cannot be assigned.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "planVersionId": 4,
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

PlanVersionIsReadOnly

Description

An error type to be thrown if a plan version is read only. For example, when the version is already deployed.

Fields
Field Name Description
planVersion - PlanVersion! A plan version which is read only.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "planVersion": PlanVersion,
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

PlanVersionNotFound

Description

An error type to be thrown if a plan was not found.

Fields
Field Name Description
providerId - ID! A plan for a provided provider ID was not found.
planVersionId - ID! A plan version with a provided plan version ID was not found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "planVersionId": 4,
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

PlanVersionOrder

Description

Ways in which lists of plan versions can be ordered upon return.

Fields
Input Field Description
direction - OrderDirection! The direction in which to order issues by the specified field.
field - PlanVersionOrderField! The field in which to order versions by.
Example
{"direction": "ASC", "field": "ID"}

PlanVersionOrderField

Description

Properties by which version connections can be ordered.

Values
Enum Value Description

ID

Order versions by id.

LAST_MODIFIED

Order versions by update time.

DEPLOYED_DATE

Order versions by deploy time.
Example
"ID"

PlanVersionPayload

Description

Return type of PlanVersion.

Fields
Field Name Description
planVersion - PlanVersion! Created plan version.
Example
{"planVersion": PlanVersion}

PlanVersionResult

Description

Return type of PlanVersion including all possible errors.

Example
PlanVersion

PlanVersionUpdateAlreadyInProgress

Description

An error type to be the plan version update is in progress.

Fields
Field Name Description
providerId - ID! A plan for a provider ID.
planVersionId - ID! The plan version.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "planVersionId": 4,
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

PlanVersionWrongTransition

Description

An error type to be thrown if transition from one state to another is not possible.

Fields
Field Name Description
providerId - ID! A plan version for a provided provider ID cannot be transitioned.
planVersionId - ID! A plan version with a provided plan version ID cannot be transitioned.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "planVersionId": "4",
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

PostpaidFieldInPrepaidAccount

Description

An error type to be thrown when creating account if postpaid properties were not set when creditLimit of account is positive.

Fields
Field Name Description
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

PostpaidPropertiesRequired

Description

An error type to be thrown when creating account if postpaid properties were not set when creditLimit of account is positive.

Fields
Field Name Description
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

PredictionsActions

Values
Enum Value Description

identifyText

identifyLabels

convertTextToSpeech

translateText

Example
"identifyText"

ProfilePhoto

Description

An object (a file) in S3

Fields
Field Name Description
url - AWSURL The URL for the object
uploadUrl - AWSURL The pre-signed URL to use for uploading the object
Example
{"url": AWSURL, "uploadUrl": AWSURL}

ProratingOptions

Description

The prorating options for a plan for postpaid accounts

Fields
Field Name Description
alignToBillingDoM - Boolean Whether to align the plan billing to the account billing day of month. If true, then subscription offer and refund policies must be filled,
subscriptionPolicy - SubscriptionPolicy The subscription policy for plans that align billing to the account billing day of month. Default is NONE.
refundPolicy - RefundPolicy The refund policy for plans that align billing to the account billing day of month. Default is NONE.
Example
{
  "alignToBillingDoM": true,
  "subscriptionPolicy": "NONE",
  "refundPolicy": "NONE"
}

ProratingOptionsInput

Description

Input for the prorating options for a plan for postpaid accounts

Fields
Input Field Description
alignToBillingDoM - Boolean Whether to align the plan billing to the account billing day of month. If false, then subscription and refund policies should always be NONE
subscriptionPolicy - SubscriptionPolicy The subscription policy for plans that align billing to the account billing day of month. Default is NONE.
refundPolicy - RefundPolicy The refund policy for plans that align billing to the account billing day of month. Default is NONE.
Example
{
  "alignToBillingDoM": true,
  "subscriptionPolicy": "NONE",
  "refundPolicy": "NONE"
}

ProviderConfig

Description

Configurations of a tenant.

Fields
Field Name Description
id - ID! The ID of the tenant.
name - String! The name of the tenant.
commonName - String! The common name that will be used in the SSL certificates of the tenant.
homeNetworks - String The home networks for the tenant. Required if onNet calls should be supported.
emergencyNumbers - [String] List of emergency numbers.
lifecycleStage - ProviderLifecycleStage! The lifecycle stage of the tenant
allowedLifecycleTransitions - [ProviderLifecycleStage!]! The allowed lifecycle transitions for the tenant.
limits - [ApiLimitsConfig] API limit configurations for 4G, 5G and GraphQL calls.
churnFeatureEnabled - Boolean Whether account churn calculation feature is enabled or not.
frequencyOfModelUpdate - Int The frequency of which the ML model is updated in days.
frequencyOfChurnCalculation - Int The frequency of calculating the accounts churn in days.
lookbackPeriod - Int The number of weeks to use for look-back data.
deleteProviderExecutionArn - String The execution ARN of delete provider operation. Empty if deletion is not in progress
eventBusArn - String The ARN of the event bus that we should be sending events to.
parent - ID The parent of this tenant.
subtenants - [ID] The list of all subtenants of a provider.
vpcEndpointsIds - [String] The list of approved VPC Endpoints IDs to be used by provider to communicate with Diameter Adapter by using non-TLS connection.
activeAlarms - [TenantAlarmType] The tenant specific alarms the provider is subscribed to.
deviceIdSelector - DeviceIdSelector The field to select device ID. Can be either 'servedGpsi' or 'subscriberIdentifier'. For the spending limit API, it uses 'gpsi' if 'servedGpsi' is used or 'supi' if 'subscriberIdentifier' is used. The default value is 'subscriberIdentifier'.
campaignManagementEnabled - Boolean Whether campaign management feature is enabled or not.
failureHandling - FailureHandling Failure handling strategy. Default is RETRY_AND_TERMINATE.
rarEnabled - Boolean Whether RAR notifications are enabled or not. Defaults to false.
createAlarm - Boolean Whether alarm is created for the tenant or not. Defaults to false.
exportEnabled - Boolean Incremental DB exports enabled.
exportConfig - ExportConfig Configuration for data export
Example
{
  "id": "4",
  "name": "xyz789",
  "commonName": "xyz789",
  "homeNetworks": "xyz789",
  "emergencyNumbers": ["xyz789"],
  "lifecycleStage": "CREATING",
  "allowedLifecycleTransitions": ["CREATING"],
  "limits": [ApiLimitsConfig],
  "churnFeatureEnabled": true,
  "frequencyOfModelUpdate": 123,
  "frequencyOfChurnCalculation": 987,
  "lookbackPeriod": 123,
  "deleteProviderExecutionArn": "xyz789",
  "eventBusArn": "xyz789",
  "parent": 4,
  "subtenants": [4],
  "vpcEndpointsIds": ["abc123"],
  "activeAlarms": ["ACCOUNT_NOT_FOUND"],
  "deviceIdSelector": "SERVED_GPSI",
  "campaignManagementEnabled": true,
  "failureHandling": "TERMINATE",
  "rarEnabled": true,
  "createAlarm": true,
  "exportEnabled": true,
  "exportConfig": ExportConfig
}

ProviderLifecycleStage

Description

Providers possible Lifecycle stages

Values
Enum Value Description

CREATING

Provider is in the process of being created but cannot be used for any live operations / traffic.

UAT_READY

Provider has reference data (plan, accounts devices) loaded, is connected to receive charging events and is ready for User Acceptance Testing.

ACTIVE

Provider is fully operational.

SUSPENDED

Provider is suspended and no usage of the system is possible. Requests via any API will be rejected with an error code indicating the suspended state.

TERMINATED

Provider is fully terminated. No data is deleted from the system.

DELETED

All customer data, except for EDRs, is removed from the system with the exception of any data that must be maintained / archived for regulatory reasons. Customers may also ask for 'proof' of data destruction.
Example
"CREATING"

ProviderNotFound

Description

An error type to be thrown if tenant was not found for given ID.

Fields
Field Name Description
providerId - ID! Service provider ID with problem.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

RarNotEnabled

Description

An error type to be thrown when RAR is triggered for a provider with disabled RAR feature.

Fields
Field Name Description
providerId - ID! The provider ID.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

Rate

Description

Rate configuration.

Fields
Field Name Description
ratePerRounding - String Particular rate in unit rounding to be applied.
taxRate - Float! A tax rate to be applied. It is a percentage and expressed as a fraction. For example, 0.15 stands for 15% tax rate.
rateMinUnits - Int Minimum number of units to use when premium numbers are specified. Numbers specified are a multiple of perUnitRounding defined in the rating group hierarchy for that rating group. If not specified, it will default to 0.
initialCharge - String The initial monetary charge/flag fall fee if premium numbers are specified. If not specified, it will default to 0.
Example
{
  "ratePerRounding": "xyz789",
  "taxRate": 123.45,
  "rateMinUnits": 987,
  "initialCharge": "abc123"
}

RateBalance

Description

Rate configuration for monetary balance.

Fields
Field Name Description
rate - Rate Rate configuration. If not specified then monetary usage is denied (except roaming and long distance which are configured independently).
roaming - [ExtendedRate!] Roaming configuration. If not specified then roaming will be denied.
longDistance - [ExtendedRate!] Long distance configuration. If not specified then long distance will be denied.
Example
{
  "rate": Rate,
  "roaming": [ExtendedRate],
  "longDistance": [ExtendedRate]
}

RateBalanceInput

Description

Input type for rate based balances.

Fields
Input Field Description
rate - RateInput Rate configuration. If not specified then monetary usage is denied (except roaming and long distance which are configured independently).
roaming - [ExtendedRateInput!] Roaming configuration. If not specified then roaming will be denied.
longDistance - [ExtendedRateInput!] Long distance configuration. If not specified then long distance will be denied.
Example
{
  "rate": RateInput,
  "roaming": [ExtendedRateInput],
  "longDistance": [ExtendedRateInput]
}

RateInput

Description

Rate configuration.

Fields
Input Field Description
ratePerRounding - String Particular rate in unit rounding to be applied.
taxRate - Float! A tax rate to be applied. It is a percentage and expressed as a fraction. For example, 0.15 stands for 15% tax rate.
rateMinUnits - Int Minimum number of units to use when premium numbers are specified. Numbers specified are a multiple of perUnitRounding defined in the rating group hierarchy for that rating group. If not specified, it will default to 0.
initialCharge - String The initial monetary charge/flag fall fee if premium numbers are specified. If not specified, it will default to 0.
Example
{
  "ratePerRounding": "abc123",
  "taxRate": 123.45,
  "rateMinUnits": 123,
  "initialCharge": "xyz789"
}

RateLimitExceeded

Description

An error type to be thrown if a provider crossed the rate limit and request will be rejected

Fields
Field Name Description
providerId - ID! Service provider ID with problem.
retryAfter - AWSDateTime! Date when the rate limit should be restored and request should be retried
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "retryAfter": AWSDateTime,
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

RatingGroup

Description

Rating group.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - Int! Rating Group ID.
name - String! Name of the rating group.
perUnitRounding - Int Unit rounding.
minReservation - Float Minimum total resevation that can be held for this rating group. If empty then there is no minimum.
maxReservation - Float Maximum total resevation that can be held for this rating group. If empty then there is no maximum.
unitType - UnitType! Unit type that is used for this rating group.
quotaValidityTime - Int Validity type which is returned in responses.
quotaHoldingTime - Int Holding time which is returned in responses.
enableDynamicQuotaAllocation - Boolean Whether dynamic quotas will be used or not.
announcementMapping - AnnouncementMapping Configuration for condition-specific announcement codes.
isDefault - Boolean! Default groups are determined by names, not by IDs, ID of default group can be changed.
children - [RatingGroup] List of nested rating groups.
Example
{
  "providerId": "4",
  "id": 123,
  "name": "xyz789",
  "perUnitRounding": 987,
  "minReservation": 123.45,
  "maxReservation": 123.45,
  "unitType": "TIME",
  "quotaValidityTime": 987,
  "quotaHoldingTime": 987,
  "enableDynamicQuotaAllocation": true,
  "announcementMapping": AnnouncementMapping,
  "isDefault": true,
  "children": [RatingGroup]
}

RatingGroupHierarchyHasReferences

Description

An error type to be thrown if there is a rating group which is not provided in the input but used by some plan.

Fields
Field Name Description
ratingGroup - [RatingGroup!]! A list of rating groups that have references to plans.
errorCode - String!
errorMessage - String
Example
{
  "ratingGroup": [RatingGroup],
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

RatingGroupInput

Description

Rating group parameters.

Fields
Input Field Description
id - Int! Rating group ID.
name - String! Unique name for this Rating Group. Must be between 1 and 50 characters and consist of letters, digits or special characters.
perUnitRounding - Int Unit rounding. If not provided then unit rounding is used from parents RGs.
minReservation - Float Minimum total reservation that can be held for this rating group. If not provided then there is no minimum.
maxReservation - Float Maximum total reservation that can be held for this rating group. If not provided then there is no maximum.
unitType - UnitType Unit type that is used for this rating group. Service specific units used by default.
quotaValidityTime - Int Validity type which is returned in responses.
quotaHoldingTime - Int Holding time which is returned in responses.
enableDynamicQuotaAllocation - Boolean Whether dynamic quotas will be used or not.
announcementMapping - AnnouncementMappingInput Configuration for condition-specific announcement codes.
children - [RatingGroupInput] List of nested rating groups.
Example
{
  "id": 987,
  "name": "xyz789",
  "perUnitRounding": 987,
  "minReservation": 123.45,
  "maxReservation": 987.65,
  "unitType": "TIME",
  "quotaValidityTime": 987,
  "quotaHoldingTime": 987,
  "enableDynamicQuotaAllocation": false,
  "announcementMapping": AnnouncementMappingInput,
  "children": [RatingGroupInput]
}

RatingGroupResult

Description

Return type of RatingGroup including all possible errors.

Example
RatingGroup

RatingGroupValidationFailed

Description

An error type to be thrown if rating group hierarchy validation failed.

Fields
Field Name Description
root - RatingGroup! A list of default rating groups if default rating groups were not provided.
errorCode - String!
errorMessage - String
Example
{
  "root": RatingGroup,
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

RecurringPeriod

Description

Information about the plan recurring period

Fields
Field Name Description
periodType - PeriodType! Determines a period when counter value must be reset.
numberOfPeriods - Int! The number of period types that will be used to reset or expire the plan.
recurring - Boolean! Determines if the plan is recurring or expires after the period.
Example
{"periodType": "HOUR", "numberOfPeriods": 123, "recurring": true}

RecurringPeriodInput

Description

Parameters for recurring period.

Fields
Input Field Description
periodType - PeriodType! Determines a period when counter value must be reset.
numberOfPeriods - Int! The number of period types that will be used to reset or expire the plan.
recurring - Boolean! Determines if the plan is recurring or expires after the period.
Example
{"periodType": "HOUR", "numberOfPeriods": 987, "recurring": false}

RefundPolicy

Description

The possible values of prorating for the accounts on cancellation of subscriptions.

Values
Enum Value Description

NONE

No refund for for any remaining time in the cycle.

FULL_REFUND

The recurring offer charge is refunded in full.

TIME_BASED

The recurring offer charge is refunded relative to the point in the bill cycle that the offer was canceled.
Example
"NONE"

ResetUserPasswordInput

Description

Input type of ResetUserPassword.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
userId - ID! A unique identifier of the user.
Example
{"providerId": "4", "userId": 4}

ResetUserPasswordPayload

Description

Return type of ResetUserPassword Mutation

Fields
Field Name Description
providerId - ID! Service provider ID. This is retrieved from cognito group named Provider_{providerId}
userId - ID! Cognito User ID
Example
{"providerId": 4, "userId": "4"}

ResetUserPasswordResult

Description

Return type of ResetUserPassword including all possible errors.

  • UserNotFound - Given user ID does not exist in the tenant, even if user ID exists in Cognito
  • UserIncorrectStatus - Given user is not in a state where the password can be reset
Example
ResetUserPasswordPayload

RestoreJob

Description

Type for restore job.

Fields
Field Name Description
id - ID! ID for the restore job.
providerId - ID! Provider ID.
status - RestoreJobStatus! Status of the job.
createdAt - AWSDateTime! The creation time of the job.
createdBy - AWSEmail! The email of the person who triggered the restore job.
modifiedAt - AWSDateTime! Time of the last update of the record. Will be the same as the creation date when record is created.
timestamp - AWSDateTime! Date/time in UTC to restore the data to.
Example
{
  "id": 4,
  "providerId": 4,
  "status": "CREATED",
  "createdAt": AWSDateTime,
  "createdBy": AWSEmail,
  "modifiedAt": AWSDateTime,
  "timestamp": AWSDateTime
}

RestoreJobStatus

Description

Status of a restore job.

Values
Enum Value Description

CREATED

Status when the job is first created.

IN_PROGRESS

Status to state that the job is in progress.

COMPLETE

Status after job is complete.

CANCELED

Status after job is canceled.
Example
"CREATED"

RoleGroup

Description

Cognito role groups

Values
Enum Value Description

Account_Query

Role to allow user to query accounts/devices

Account_Admin

Role to allow user to manipulate accounts/devices

Data_Admin

Role to allow user to query/manipulate accounts/devices and query EDRs

Plan_Query

Role to allow user to query plan related data

Plan_Designer

Role to allow user to query/manipulate plan related data

Plan_Publisher

Role to allow user to query/manipulate plan related data and to publish plans

Tenant_Admin

Role to allow user to administer users of his/her own tenant

Network_Admin

Role to allow user to query/deploy field mappings and update rating groups of his/her own tenant

Network_Operator

Role to allow user to query/manipulate field mappings and SGSN table of his/her own tenant

Plan_Admin

Role to allow user to query/manipulate plan design settings of his/her own tenant

Infrastructure

Allows access to engine APIs
Example
"Account_Query"

SGSNTable

Description

Information about the SGSN table

Fields
Field Name Description
rows - [SGSNTableItem]! SGSN table rows
Example
{"rows": [SGSNTableItem]}

SGSNTableInput

Description

Information about the SGSN table

Fields
Input Field Description
rows - [SGSNTableItemInput]! SGSN table rows
Example
{"rows": [SGSNTableItemInput]}

SGSNTableItem

Description

Information about the SGSN table row

Fields
Field Name Description
sgsnIPCIDR - String! SGSN IP range of the telco
countryCode - String! Country code of the telco in ISO3166-alpha-2 format
Example
{
  "sgsnIPCIDR": "abc123",
  "countryCode": "abc123"
}

SGSNTableItemInput

Description

Information about the SGSN table row

Fields
Input Field Description
sgsnIPCIDR - String! SGSN IP range of the telco
countryCode - String! Country code of the telco in ISO3166-alpha-2 format
Example
{
  "sgsnIPCIDR": "abc123",
  "countryCode": "abc123"
}

SGSNTableResult

Description

Return type of getSGSNTable.

Example
SGSNTable

SaveUserPayload

Description

Return type of a User for mutations creating/updating

Fields
Field Name Description
providerId - ID! Service provider ID. This is retrieved from cognito group named Provider_{providerId}
userId - ID! Cognito User ID
email - AWSEmail! User email
name - String! The name of the user
roleGroupMemberships - [RoleGroup!]! The roles this user belong to
profilePicture - ProfilePhoto The user's profile picture. If profile picture exists, it will always contain a pre-signed URL to download profile picture. It will contain pre-signed URL to upload picture only for the updateUserProfile mutation
phoneNumber - AWSPhone The user's phone number
jobTitle - String The user's job title
expiry - AWSDateTime The time when the user should expire. Used for temporary access.
alertInterval - Int The alarm interval in minutes when an email should be send to the user that access expires. Only used when expiry is specified. Can be 0 or not specified when expiry is specified which means no email is send.
Example
{
  "providerId": "4",
  "userId": "4",
  "email": AWSEmail,
  "name": "abc123",
  "roleGroupMemberships": ["Account_Query"],
  "profilePicture": ProfilePhoto,
  "phoneNumber": AWSPhone,
  "jobTitle": "abc123",
  "expiry": AWSDateTime,
  "alertInterval": 987
}

SearchableQueryMap

Fields
Input Field Description
search - String
Example
{"search": "xyz789"}

ServiceConstraint

Description

Possible restrictions for plan service usage.

Values
Enum Value Description

IS_FRIEND_FAMILY

A flag indicating calls to or from friends and family. This field is deprecated in favor of custom fields. Deprecated date is 2025-02-14. Expiration date is 2025-04-13.

IS_ON_NET

A flag indicating on-net calls. On-net means that the A-number is in the home network and the B-number belongs to the same service provider. Only supported if the provider carrier code/homeNetworks is set.

IS_OFF_NET

A flag indicating off-net calls. If a call is not on-net it is off-net. Only supported if the provider carrier code/homeNetworks is set.

IS_SAME_COUNTRY

A flag indicating whether roaming services are only applicable if the A-number and B-number are in the same country. For example, when roaming in the US and calling a number in the US.
Example
"IS_FRIEND_FAMILY"

ServiceFormatError

Description

An error type to be thrown if a new version of a plan is created based on the old format while a version with the new format exists.

Fields
Field Name Description
providerId - ID! The provider for which the balance type ID wasn't found.
versionId - ID! The balance type ID that wasn't found.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": "4",
  "versionId": "4",
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

Settings

Description

Settings for providers.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
json - AWSJSON All settings formatted in JSON.
enableDynamicQuotaTestMode - Boolean Status of the Dynamic Quota Allocation test mode. When enabled additional data is saved in EDRs for analysis of DQ feature.
Example
{
  "providerId": 4,
  "json": AWSJSON,
  "enableDynamicQuotaTestMode": true
}

SettingsResult

Description

Return type of Settings including all possible errors.

Example
Settings

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

SubscribeToPlanVersionInput

Description

Input type of SubscribeToPlanVersion.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
accountId - ID! A unique identifier of an account.
planVersionId - ID

Unique identifier of a plan version to subscribe to. You should provide only one of the following: planVersionId or planId. When using planVersionId, the specified version of the plan is applied directly to the subscriber.

Opt for planVersionId when a specific plan version must be enforced without automatic updates to newer versions. This approach ensures that the subscriber remains on the selected plan version without transitioning to newer versions unless explicitly migrated.

planId - ID Additional Information: If there is no active version of the plan at the time of the API call, SubscribeToPlan will raise an error even if the subscription is for a future date. The active plan version is the one with the most recent effectiveDateTime that is not in the future, and it is included in the aliases array returned by the getPlan query.
from - AWSDateTime The start time of the subscription. Set to now if not provided.
to - AWSDateTime The end time of the subscription. If not provided, it defaults to "3000-01-01T00:00:00.000Z" to indicate an indefinite end date for recurring plans and set to start time (from) plus the plan period for non-recurring ones.
overrides - [KeyValueInput] List of fields with values that override values from a plan.
Example
{
  "providerId": "4",
  "accountId": 4,
  "planVersionId": "4",
  "planId": 4,
  "from": AWSDateTime,
  "to": AWSDateTime,
  "overrides": [KeyValueInput]
}

SubscribeToPlanVersionPayload

Description

Return type of SubscribeToPlanVersion.

Fields
Field Name Description
subscribedPlanVersion - SubscribedPlanVersion! The subscribed plan version in question.
account - Account! The account in question.
Example
{
  "subscribedPlanVersion": SubscribedPlanVersion,
  "account": Account
}

SubscribeToPlanVersionResult

Description

Return type of SubscribeToPlan including all possible errors.

  • SubscribeToPlanVersionValidationFailed (SubscriptionDateCannotExceedPlanPeriod) - should be returned when the plan is non recurring and the subscription exceeds the plan period length.
  • SubscribeToPlanVersionValidationFailed (ActiveSubscriptionFromDateIsReadOnly) - The “from” date of an active subscription cannot be changed.
  • SubscribeToPlanVersionValidationFailed (PurchaseFeeCannotBeCharged) - There is not enough balance to charge a purchase fee, plan subscription has been expired immediately.
  • SubscribeToPlanVersionValidationFailed (DuplicatePlanSubscription) - The same plan can only be subscribed to once.
  • PlanVersionNotFound (PlanVersionNotFound) - The requested plan version with the provided ID cannot be found.
  • PlanNotFound (PlanNotFound) - The requested plan with the provided ID cannot be found.
  • PlanAliasNotFound (PlanAliasNotFound) - The requested plan alias with the provided ID cannot be found.
  • PlanAliasNotActive (PlanAliasNotActive) - The requested plan alias with the provided ID does not have an active version.
  • PlanVersionIsNotAssignable (PlanVersionIsNotAssignable) - The requested plan version is marked as not assignable. Please, make it assignable first.
  • AccountNotFound (AccountNotFound) - The requested account with the provided ID cannot be found.
  • SubscriptionNotFound (SubscriptionNotFound) - The plan subscription with the provided ID was not found.
  • InvalidField (OnlyOnePlanToBeProvided) - You cannot provide both planId and planVersionId.
  • InvalidField (PlanMustBeProvided) - Either planId or planVersionId must be provided.
  • InvalidField (InvalidFutureDate) - The provided date cannot be in the past.
  • InvalidField (InvalidDatesRange) - The provided "to" date cannot be earlier than the provided "from" date..
  • InternalServerError (ChargeEngineNotAvailable) - The charge engine is not available at this time.
Example
SubscribeToPlanVersionPayload

SubscribeToPlanVersionValidationFailed

Description

An error type to be thrown if a plan cannot be assigned or reassigned to provided dates.

Fields
Field Name Description
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "errorCode": "xyz789",
  "errorMessage": "xyz789"
}

SubscribedPlanVersion

Description

An instance of a plan version that belongs to an account.

Fields
Field Name Description
planSubscriptionId - ID! The ID of the subscription.
from - AWSDateTime The start time of the subscription.
to - AWSDateTime The end time of the subscription.
renewal - AWSDateTime The time of the next renewal of the subscription if it is a recurring plan.
planVersion - PlanVersion! The plan version of the subscription.
aliasEnabled - Boolean! Whether or not this is a referenced plan version defined through the deploy API.
overrides - [KeyValue] List of fields with values that override values from a plan.
Example
{
  "planSubscriptionId": "4",
  "from": AWSDateTime,
  "to": AWSDateTime,
  "renewal": AWSDateTime,
  "planVersion": PlanVersion,
  "aliasEnabled": true,
  "overrides": [KeyValue]
}

SubscriptionNotFound

Description

An error type to be thrown if a subscription for provided dates cannot be found. If "to" was empty in input, it will be empty in error. If "from" was empty in input, it will be "now" in error.

Fields
Field Name Description
planSubscriptionId - ID! The ID of the subscription.
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "planSubscriptionId": "4",
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

SubscriptionPolicy

Description

The possible values of prorating for the postpaid accounts on subscription.

Values
Enum Value Description

NONE

Recurring offers (charge or allowance) are applied in full, independent of when the offer is purchased related to the bill cycle date.

TIME_BASED

Recurring offers (charge or allowance) are prorated based on when the offer is purchased relative to the bill cycle.
Example
"NONE"

TemplateInstance

Description

A union to define all possible parameters for templates.

Example
InitialTemplateInstance

TenantAlarmType

Description

Type of tenant specific alarms that tenants can subscribe to.

Values
Enum Value Description

ACCOUNT_NOT_FOUND

When tenant subscribes to this, they will be notified whenever they try to charge an account that does not exist.

DEVICE_NOT_FOUND

When tenant subscribes to this, they will be notified whenever they try to charge a device that does not exist.

NO_RATING_PLAN

When tenant subscribes to this, they will be notified whenever rating plan cannot be found when processing a charge request.

SESSION_NOT_FOUND

When tenant subscribes to this, they will be notified whenever they try to update or terminate a session that does not exist.

STALE_SESSION_CLOSED

When tenant subscribes to this, they will be notified whenever they try to update or terminate a session that is closed.
Example
"ACCOUNT_NOT_FOUND"

Termination

Fields
Field Name Description
aNumberHomeCountryExpr - String! ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA. Other valid examples are (US,!CA) , !(US,!CA)
bNumberCurrentCountryExpr - String

ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA. Other valid examples are (US,!CA) , !(US,!CA)

Only bNumberCurrentCountryExpr or currentOperatorExpr can be specified but not both, they are exclusive.

currentOperatorExpr - String

An MCC/MNC expression that allows for wildcards, conjunction, and negation and identifies the operator network. For example, specifying: 505/* - All of Australia and its territories. 31*/* - All of the US. 310/(350,012) - Two specific Verizon networks in the US. This uses an OR. {31*, !310/(350,012)} - All of the US except two specific Verizon networks. This is an outer AND and an inner OR.

Only currentOperatorExpr or bNumberCurrentCountryExpr can be specified but not both, they are exclusive.

Example
{
  "aNumberHomeCountryExpr": "xyz789",
  "bNumberCurrentCountryExpr": "abc123",
  "currentOperatorExpr": "xyz789"
}

TerminationInput

Description

Information about A and B parties for MT calls.

Fields
Input Field Description
aNumberHomeCountryExpr - String! ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA. Other valid examples are (US,!CA) , !(US,!CA)
bNumberCurrentCountryExpr - String

ISO 3166-1 alpha-2 country code. For example, US. The list can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Negation can be used. For example, !US. Conjunction can be used. For example, (US,CA). This means US OR CA. Other valid examples are (US,!CA) , !(US,!CA)

Only bNumberCurrentCountryExpr or currentOperatorExpr can be specified but not both, they are exclusive.

currentOperatorExpr - String An MCC/MNC expression that allows for wildcards, conjunction, and negation and identifies the operator network. For example, specifying: 505/* - All of Australia and its territories. 31*/* - All of the US. 310/(350,012) - Two specific Verizon networks in the US. This uses an OR. {31*, !310/(350,012)} - All of the US except two specific Verizon networks. This is an outer AND and an inner OR. Only currentOperatorExpr or bNumberCurrentCountryExpr can be specified but not both, they are exclusive.
Example
{
  "aNumberHomeCountryExpr": "abc123",
  "bNumberCurrentCountryExpr": "abc123",
  "currentOperatorExpr": "abc123"
}

TimePeriod

Description

Consists of times and days to make an overall period (e.g. Mon-Fri 09:00-18:00 as working hours period). It should have times specified or days specified or both.

Fields
Field Name Description
times - [String!] A list of time intervals in a format of HH:mm-HH:mm (10:32-15:43) or hh24:mm-hh24:mm (10:32am-3:43pm).
days - [WeekDay!] A list of week days.
Example
{"times": ["abc123"], "days": ["MONDAY"]}

TimePeriodInput

Description

Input type of TimePeriod. It should have times specified or days specified or both.

Fields
Input Field Description
times - [String!] A list of time intervals in a format of HH:mm-HH:mm (10:32-15:43) or hh24:mm-hh24:mm (10:32am-3:43pm).
days - [WeekDay!] A list of week days.
Example
{"times": ["abc123"], "days": ["MONDAY"]}

TimestampConfiguration

Fields
Input Field Description
createdAt - String
updatedAt - String
Example
{
  "createdAt": "xyz789",
  "updatedAt": "abc123"
}

TransactionHasBeenProcessed

Description

An error type to be thrown if the transaction has been processed.

Fields
Field Name Description
providerId - ID! Service provider ID.
transactionId - ID! Transaction ID.
errorCode - String!
errorMessage - String
Example
{
  "providerId": 4,
  "transactionId": "4",
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

TriggerRarInput

Description

Input type for triggering a RAR request.

Fields
Input Field Description
providerId - ID! Provider ID.
accountId - ID! Account ID.
Example
{"providerId": 4, "accountId": 4}

TriggerRarPayload

Description

Return type when triggering a RAR.

Fields
Field Name Description
providerId - ID! The provider ID.
accountId - ID! The account ID.
Example
{"providerId": 4, "accountId": "4"}

TriggerRarResult

Description

Return type of TriggerRar including all possible errors.

  • AccountNotFound (AccountNotFound) - The specified account does not exist.
  • RarNotEnabled (RarNotEnabled) - The RAR feature is not enabled for the provider.
Example
TriggerRarPayload

UnitType

Description

Possible types of units that will be granted.

Values
Enum Value Description

TIME

Time type of units. Seconds for example.

VOLUME

Volume type of units. Bytes for example.

SERVICE_SPECIFIC_UNITS

Any service specific types of units. SMS for example.
Example
"TIME"

UnlimitedPlanService

Description

Type definition for an unlimited plan service.

This type is reserved for the upcoming Rate Anything capability, enabling customers to configure rates based on any attribute from the network message or subscriber database, such as birthday or class. Further details will be provided as the feature is rolled out.

Fields
Field Name Description
providerId - ID! A unique identifier of a service provider.
id - ID! A unique identifier of a plan service.
name - String! The name of the plan service.
ratingGroups - [Int!]! The rating groups supported by the service.
priority - Float The priority of the service compared to others.
balanceType - ID! The balance type consumed by the service.
Example
{
  "providerId": 4,
  "id": "4",
  "name": "abc123",
  "ratingGroups": [987],
  "priority": 123.45,
  "balanceType": "4"
}

UpdateAccountBalanceTypeCounterInput

Description

Input parameters for updating Balance Type Counter settings for an account. Updates an AccountBalanceCounter record.

Fields
Input Field Description
providerId - ID! Provider ID.
balanceTypeId - ID! The balanceType ID for which to update a Counter in the Account.
accountId - ID! ID of the Accout whose Balance Type Counter will be modified.
counter - BalanceTypeCounterInput! The information about the counter.
Example
{
  "providerId": "4",
  "balanceTypeId": "4",
  "accountId": "4",
  "counter": BalanceTypeCounterInput
}

UpdateAccountCohortInput

Description

Defines the input for the UpdateAccountCohort mutation.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
id - ID! The ID of the Account Cohort
definition - AccountCohortInput Defines the input for the Account Cohort properties.
Example
{
  "providerId": "4",
  "id": 4,
  "definition": AccountCohortInput
}

UpdateAccountCohortResult

UpdateAccountInput

Description

Input type of UpdateAccount.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
accountId - ID! A unique identifier of an account.
customData - AWSJSON Any custom data required by the account.
friendsAndFamily - [String] List of friends and family. This field is deprecated in favor of custom fields. Deprecated date is 2025-02-14. Expiration date is 2025-04-13.
creditLimit - Float The limit an account can be credited to. It should be negative/zero for prepaid accounts and positive for postpaid accounts.
notificationCreditLimitThresholds - [Float] Thresholds of the default monetary balance on the account. Whenever the account balance goes lower than any of the values in the set a notification is sent.
postpaid - UpdateAccountPostpaidPropertiesInput If account is a postpaid account, i.e. creditLimit is greater than zero, this holds the postpaid properties
accountLifecycle - AccountLifecycleInput Initial Lifecycle and state to assign to the new account
Example
{
  "providerId": 4,
  "accountId": "4",
  "customData": AWSJSON,
  "friendsAndFamily": ["xyz789"],
  "creditLimit": 987.65,
  "notificationCreditLimitThresholds": [987.65],
  "postpaid": UpdateAccountPostpaidPropertiesInput,
  "accountLifecycle": AccountLifecycleInput
}

UpdateAccountPayload

Description

Return type of UpdateAccount.

Fields
Field Name Description
account - Account! The updated account.
Example
{"account": Account}

UpdateAccountPostpaidPropertiesInput

Description

An input type to hold the postpaid properties of accounts

Fields
Input Field Description
timezone - String The timezone of the user in +/-hh:mm or Country/City format. This is a property for postpaid accounts only.
billingDayOfMonth - Int The day of month for resetting balance and units for account. Value is between 1 and 31 inclusive. This is a property for postpaid accounts only.
longFirstBillingCycle - Boolean Whether the new billing cycle is a long one, e.g. if current date is the 1st and the account was updated to use the 16th. If this value is true, it means that the next bill will be for 45 days, while if false, bill will be for 15 days only. If not provided then used already existing value for this account.
Example
{
  "timezone": "abc123",
  "billingDayOfMonth": 987,
  "longFirstBillingCycle": true
}

UpdateAccountResult

Description

Return type of UpdateAccount including all possible errors.

  • LifecycleNotFound (LifecycleNotFound) - The specified lifecycle doesn't exist.
  • InvalidField (InvalidLifecycleState) - The state for the lifecycle is invalid.
  • InvalidField (InvalidFriendsAndFamilyList) - Friends and family list can consist of 20 numbers maximum.
  • InvalidField (InvalidFriendsAndFamilyNumber) - Friends and family list consists of invalid number. The only allowed format is E.164.
  • InvalidField (InvalidJsonCreditLimit) - Cannot set credit limit from json.creditLimit. Must use creditLimit directly.
  • InvalidField (InvalidTimezone) - Timezone format is wrong. It should be between -12:00 and +14:00 or use a Country/City format.
  • InvalidField (InvalidDayOfMonth) - Billing day of month should be between 1 and 31 inclusive.
Example
UpdateAccountPayload

UpdateArchivingPolicyFailed

Description

An error type to be thrown if updating archive policy fails.

Fields
Field Name Description
providerId - ID! Service provider ID.
archiveThreshold - Int The current value for archiving threshold if it exists.
errorCode - String!
errorMessage - String
Example
{
  "providerId": 4,
  "archiveThreshold": 987,
  "errorCode": "xyz789",
  "errorMessage": "abc123"
}

UpdateArchivingPolicyInput

Description

Input type of UpdateArchivingPolicy.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
archiveThreshold - Int! The number of days after which objects should be moved to Glacier storage.
Example
{"providerId": 4, "archiveThreshold": 987}

UpdateArchivingPolicyPayload

Description

Return type of UpdateArchivingPolicy.

Fields
Field Name Description
providerId - ID! Service provider ID.
oldArchiveThreshold - Int Old value for archiving threshold if it exists.
newArchiveThreshold - Int! New value of archiving threshold, which should be equal to that of one defined in input.
Example
{
  "providerId": "4",
  "oldArchiveThreshold": 987,
  "newArchiveThreshold": 987
}

UpdateArchivingPolicyResult

Description

Return type of updateArchivingPolicy and all possible errors.

  • UpdateArchivingPolicyFailed (ErrorSavingArchivingPolicy) - The propagated error message coming from S3.
  • UpdateArchivingPolicyFailed (InvalidArchivingThreshold) - The provided archiveThreshold is invalid. Value should be greater than 0.
Example
UpdateArchivingPolicyPayload

UpdateBalanceInfoInput

Description

Input type for updating a balance details.

Fields
Input Field Description
balanceTypeId - ID! Balance type ID.
priority - Float Priority of the balance. If there are multiple balances of the same type, the one with the highest priority will be used first.
balanceValue - Float Value of the balance.
adjustment - AdjustmentType Value of the adjustment to the current balance. The default value is NONE.
limit - Float Limit for the balance.
from - AWSDateTime Start date of the balance.
to - AWSDateTime End date of the balance.
Example
{
  "balanceTypeId": "4",
  "priority": 123.45,
  "balanceValue": 987.65,
  "adjustment": "CREDIT",
  "limit": 123.45,
  "from": AWSDateTime,
  "to": AWSDateTime
}

UpdateBalanceInput

Description

Input type for updating a balance.

Fields
Input Field Description
balanceId - ID! ID for the balance.
providerId - ID! Provider ID.
accountId - ID! Account ID.
balanceInfo - UpdateBalanceInfoInput! Balance info.
transactionId - ID An optional transaction ID to ensure idempotency of the API call if required.
Example
{
  "balanceId": "4",
  "providerId": 4,
  "accountId": "4",
  "balanceInfo": UpdateBalanceInfoInput,
  "transactionId": "4"
}

UpdateBalanceResult

Description

Return type of UpdateBalance including all possible errors.

  • TransactionHasBeenProcessed (TransactionHasBeenProcessed) - The transaction has been processed.
  • BalanceNotFound (BalanceNotFound) - The balance ID provided does not exist.
  • AccountNotFound (AccountNotFound) - The specified account does not exist.
  • BalanceTypeNotFound (BalanceTypeNotFound) - None of the balance type IDs provided does exist.
  • InvalidField (BalanceLimitViolation) - When the balance total exceeds the balance or balance type limit or limit exceeds the limit in balance type.
  • InvalidField (UnlimitedBalanceCannotBeChanged) - When attempting to change the balance value of an unlimited balance.
Example
BalancePayload

UpdateBalanceTypeCounterInput

Description

Input parameters for updating Balance Type Counter notifications.

Fields
Input Field Description
providerId - ID! Provider ID.
balanceTypeId - ID! The balanceType ID associated with the Balance Type Counter Creates or updates the counter for the correct Balance Type.
counter - BalanceTypeCounterInput! The information about the counter.
Example
{
  "providerId": "4",
  "balanceTypeId": 4,
  "counter": BalanceTypeCounterInput
}

UpdateBalanceTypeCounterPayload

Description

A representation of Balance Type Counter notifications.

Fields
Field Name Description
balanceTypeId - ID! The Balance Type associated with the Balance Type Counter.
counter - BalanceTypeCounterPayload! The counter information payload.
Example
{
  "balanceTypeId": "4",
  "counter": BalanceTypeCounterPayload
}

UpdateBalanceTypeInput

Description

Input type for updating a balance type.

Fields
Input Field Description
balanceTypeId - ID! ID for the balance type.
providerId - ID! Provider ID.
name - String! Name of the balance type. Has to be unique across a tenant.
unitType - UnitType! Unit type of the balance type.
limit - Float Limit of the balance type. If the balance is rate based, it is equivalent creditLimit.
counters - [BalanceTypeCounterInput!] List of balance type counter inputs of the balance type.
Example
{
  "balanceTypeId": "4",
  "providerId": "4",
  "name": "xyz789",
  "unitType": "TIME",
  "limit": 987.65,
  "counters": [BalanceTypeCounterInput]
}

UpdateBalanceTypeResult

Description

Return type of UpdateBalanceType including all possible errors.

  • BalanceTypeNameInUse (BalanceTypeNameInUse) - The balance type name is already in use.
  • BalanceTypeHasReferences (BalanceTypeHasReferences) - The balance type is used in an active plan and the unit type and name can't be updated.
  • BalanceTypeNotFound (BalanceTypeNotFound) - The balance type ID provided does not exist.
  • BalanceTypeCounterNotFound (BalanceTypeCounterNotFound) - One of the counter IDs does not exist.
  • InvalidField (InvalidLimit) - The limit has to be an integer value if it is not a rate based balance type. Only rate based balance types can have decimal limits.
  • InvalidField (InvalidCounterName) - The provided counter name must be between 1 and 50 characters and consist of letters, digits or special characters.
  • InvalidField (InvalidCounterNames) - Counter names must be unique across the balance type.
  • InvalidField (InvalidCounterStates) - Thresholds and names of states must be unique across the counter and one of the states must not have a threshold.
Example
BalanceTypePayload

UpdateCampaignInput

Description

Input for updating a campaign.

Fields
Input Field Description
providerId - ID! Service provider ID.
campaignId - ID! The unique identifier for the campaign.
name - String The name of the campaign. Remains not changed if not provided.
description - String A custom description of the campaign. Remains not changed if not provided.
campaignSchedule - CampaignScheduleInput Specifies the schedule settings for a campaign. Remains not changed if not provided.
campaignEmailMessage - CampaignEmailMessageInput Specifies the content for an email message that's sent to recipients of a campaign. Remains not changed if not provided.
offerIds - [ID!] Array of Offers. Remains not changed if not provided.
cohortId - ID The cohort ID. Remains not changed if not provided.
Example
{
  "providerId": 4,
  "campaignId": "4",
  "name": "xyz789",
  "description": "xyz789",
  "campaignSchedule": CampaignScheduleInput,
  "campaignEmailMessage": CampaignEmailMessageInput,
  "offerIds": ["4"],
  "cohortId": 4
}

UpdateCampaignPayload

Description

Return type of updateCampaign.

Fields
Field Name Description
campaign - Campaign! The updated campaign.
Example
{"campaign": Campaign}

UpdateCampaignResult

UpdateDeviceInput

Description

Input type of UpdateDevice.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
accountId - ID! A unique identifier of an account.
deviceId - ID! A unique identifier of a device.
customData - AWSJSON Any custom data required by the device.
Example
{
  "providerId": "4",
  "accountId": "4",
  "deviceId": 4,
  "customData": AWSJSON
}

UpdateDevicePayload

Description

Return type of UpdateDevice.

Fields
Field Name Description
device - Device! The updated device.
Example
{"device": Device}

UpdateDeviceResult

Description

Return type of UpdateDevice including all possible errors.

Example
UpdateDevicePayload

UpdateFieldMappingInput

Description

Input type of UpdateFieldMapping.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
path - String!

The path to the field you want to manipulate. For example, "transformedRequest.sMSChargingInformation.numberofMessagesSent". The path must start from either "transformedRequest." or "transformedResponse." and must be an existing path. If provided path does not exist in request or response, only the last key should not exist. For example, "transformedResponse.invocationResult.message" is allowed, while "transformedResponse.invocationResult.message.text" is not allowed, because message is a new key already. It is possible to set a new field to a list. Originally SpEL does not support that, but we iterate over lists with provided [] after them. For example, "transformedRequest.multipleUnitUsage[].usedUnitContainer[].timeSpecificUnits", both multipleUnitUsage and usedUnitContainer are arrays, it means eventually field mapper will add to each item in these lists a new key "timeSpecificUnits".

For the N28/SY interface, the path must start from either "transformedN28Request" or "transformedN28Response". You can then set the custom "tenantIdentifier" field by using the path "transformedN28Request.tenantIdentifier". This field can and will not be set on deleting spending limit subscriptions but the subscription ID will be used.

expr - String!

SpEL expression to generate the value(s). It must return one value, but also it can use the same expressions as "path" with []. For example, "originalRequest.multipleUnitUsage[].usedUnitContainer[].serviceSpecificUnits * 10". It is also possible to use "originalField" as a reference to original value if field exists. For example, "originalField + 10".

For the N28/SY interface, the expression must start with either "originalN28Request" or "originalN28Response".

Example
{
  "providerId": 4,
  "path": "xyz789",
  "expr": "xyz789"
}

UpdateFieldMappingPayload

Description

Return type of UpdateFieldMapping.

Fields
Field Name Description
fieldMapping - FieldMapping! Updated field mapping.
Example
{"fieldMapping": FieldMapping}

UpdateFieldMappingResult

Description

Return type of UpdateFieldMapping including all possible errors.

  • InvalidField (InvalidFieldMappingExpression) - The provided field mapping SpEL expression cannot be compiled.
Example
UpdateFieldMappingPayload

UpdateLifecycleInput

Fields
Input Field Description
providerId - ID! Service provider ID.
lifecycleId - ID! Lifecycle ID.
name - String Descriptive name
states - [LifecycleStateInput!] Lifecycle Definition; first state is used as the default.
Example
{
  "providerId": "4",
  "lifecycleId": "4",
  "name": "xyz789",
  "states": [LifecycleStateInput]
}

UpdateLifecycleResult

Description

Return type of CreateAccount including all possible errors.

  • InvalidNumberOfStates (InvalidNumberOfStates) - The lifecycle requires at least one state.
  • InvalidStateTransitions (InvalidStateTransitions) - Transitions need to be to a valid state.
  • LifecycleNotFound (LifecycleNotFound) - The specified lifecycle doesn't exist.
Example
LifecyclePayload

UpdateMyProviderConfigInput

Fields
Input Field Description
name - String The name of the tenant. Stays the same if not provided.
commonName - String The common name that will be used in the SSL certificates of the tenant. Stays the same if not provided.
homeNetworks - String The home networks for the tenant. Required if onNet calls should be supported. Stays the same if not provided.
emergencyNumbers - [String] List of emergency numbers. Stays the same if not provided.
carrierCode - String The carrier code. Stays the same if not provided.
eventBusArn - String The ARN of the event bus that we should be sending events to.
activeAlarms - [TenantAlarmType] The tenant specific alarms the provider is subscribed to.
failureHandling - FailureHandling Failure handling strategy. Default is RETRY_AND_TERMINATE.
rarEnabled - Boolean Whether RAR notifications are enabled or not. Defaults to false.
Example
{
  "name": "xyz789",
  "commonName": "xyz789",
  "homeNetworks": "xyz789",
  "emergencyNumbers": ["abc123"],
  "carrierCode": "abc123",
  "eventBusArn": "xyz789",
  "activeAlarms": ["ACCOUNT_NOT_FOUND"],
  "failureHandling": "TERMINATE",
  "rarEnabled": true
}

UpdateMyProviderConfigResult

Description

Return type of UpdateMyProviderConfig including all possible errors.

  • InvalidField (WrongNameLength) - Name length must be between 2 and 50 characters.
  • InvalidProviderLifecycleStage - Provider user can't call API when provider lifecycle stage is CREATING, SUSPENDED, TERMINATED or DELETED.
  • InvalidField (CommonNameExists) - The common name exists for a non-deleted provider.
Example
ProviderConfig

UpdateOfferInput

Description

Input type of UpdateOffer.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
offerId - ID! A unique identifier of an offer.
name - String The name of the offer. Remains not changed if not provided.
planVersionId - ID The ID of the plan version this offer is based on. If not set, the same version as before update is used.
offerParameters - AWSJSON The parameters that can be substituted into a message to customers. Remains not changed if not provided.
acceptanceLink - AWSURL Acceptance link for subscribers. The offer link takes the user to a company - operated page that makes the plan change without user input. It then redirects the browser to a telco - provided URL. Remains not changed if not provided.
Example
{
  "providerId": 4,
  "offerId": "4",
  "name": "abc123",
  "planVersionId": "4",
  "offerParameters": AWSJSON,
  "acceptanceLink": AWSURL
}

UpdateOfferPayload

Description

Return type of UpdateOffer.

Fields
Field Name Description
offer - Offer! The updated offer.
Example
{"offer": Offer}

UpdateOfferResult

Description

Return type of UpdateOffer including all possible errors.

Example
UpdateOfferPayload

UpdatePlanInput

Description

Input type of UpdatePlan.

Important: This input type is deprecated. Only template APIs are supported moving forward. Deprecated date is 2024-10-31. Expiration date is 2025-01-31.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planId - ID! A unique identifier of a plan to update.
name - String A human readable name. Not unique.
Example
{
  "providerId": "4",
  "planId": "4",
  "name": "xyz789"
}

UpdatePlanPayload

Description

Return type of UpdatePlan.

Important: This type is deprecated. Only template APIs are supported moving forward. Deprecated date is 2024-10-31. Expiration date is 2025-01-31.

Fields
Field Name Description
plan - Plan! Updated plan.
Example
{"plan": Plan}

UpdatePlanResult

Description

Return type of UpdatePlan including all possible errors.

  • InvalidField (InvalidName) - The provided name must be between 2 and 50 characters and consist of letters, digits or special characters.

Important: This type is deprecated. Only template APIs are supported moving forward. Deprecated date is 2024-10-31. Expiration date is 2025-01-31.

Example
UpdatePlanPayload

UpdatePlanSubscriptionInput

Description

Input type of UpdatePlanSubscription.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
accountId - ID! A unique identifier of an account.
planSubscriptionId - ID! A unique identifier of a plan subscription to use.
planVersionId - ID

The unique identifier of a specific plan version to which the subscription will be switched. When switching to a new plan, provide only one of the following: planVersionId or planId. If planVersionId is provided, the subscription will be updated to the specified version of the plan.

Opt for planVersionId when you need to enforce a specific plan version for the subscription without automatically transitioning to newer versions. This ensures that the subscriber remains on the chosen version unless explicitly migrated.

planId - ID

A unique identifier of a plan reference to subscribe to. When switching a subscription to a new plan or version, provide only one of the following: planId or planVersionId. If planId is provided, the currently active version of the plan is automatically applied and continuously evaluated with each operation, ensuring that the most recent version is always enforced.

If there is no active version of the plan at the time of the API call, SubscribeToPlan will raise an error even if the subscription is for a future date.

overrides - [KeyValueInput] List of fields with values that override values from a plan.
from - AWSDateTime The start time of the subscription. Set to now if not provided.
to - AWSDateTime The end time of the subscription. Set to a far time into the future if not provided.
Example
{
  "providerId": "4",
  "accountId": "4",
  "planSubscriptionId": 4,
  "planVersionId": "4",
  "planId": "4",
  "overrides": [KeyValueInput],
  "from": AWSDateTime,
  "to": AWSDateTime
}

UpdatePlanVersionFromInitialRecurringFirstUsageTemplateInput

Description

Input type of UpdatePlanVersionFromInitialRecurringFirstUsageTemplate.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planVersionId - ID! An existing plan version ID to be updated.
version - String The name of the version to be updated. Remains not changed if not provided.
recurringFirstUsageFee - Float! A fee that will be charged every time after the recurringFirstUsagePeriod expires. Currently, this is at the next hour for hourly plans, at next midnight of the account timezone for daily plans, at next Saturday midnight of the account timezone for weekly plans, and at the last day of the month midnight of the account timezone for monthly plans.
recurringFirstUsagePeriodType - PeriodType! The period type at which the recurringFirstUsageFee is charged, hourly, daily, weekly, monthly.
services - [InitialRecurringFirstUsageTemplateServiceInput!] List of plan services. Remains not changed if not provided.
json - AWSJSON Custom data in JSON format to be able to save and retrieve some configurations. Remains not changed if not provided.
priority - Float Plan priority that determines the execution order for charging and rating. Remains not changed if not provided.
Example
{
  "providerId": "4",
  "planVersionId": 4,
  "version": "xyz789",
  "recurringFirstUsageFee": 987.65,
  "recurringFirstUsagePeriodType": "HOUR",
  "services": [
    InitialRecurringFirstUsageTemplateServiceInput
  ],
  "json": AWSJSON,
  "priority": 987.65
}

UpdatePlanVersionFromInitialTemplateInput

Description

Input type of UpdatePlanVersionFromInitialTemplate.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
planVersionId - ID! An existing plan version ID to be updated.
version - String The name of the version to be updated. Remains not changed if not provided.
fee - Float A fee that will be charged per specified recurring period. Recurring fee is charged first time after the first period. If you need to charge some fee on subscription you need to use purchaseFee. Remains not changed if not provided.
firstUsageFee - Float A fee that will be charged just once on first usage of the plan. Remains not changed if not provided.
purchaseFee - Float A fee that will be charged just once right after the subscription. Remains not changed if not provided.
period - RecurringPeriodInput A period when specified fee will be charged. Remains not changed if not provided.
services - [InitialTemplateServiceInput!] List of plan services. Remains not changed if not provided. A plan service can only specify a monetary or unit rate but not both, they are exclusive.
notificationPeriodsBeforeExpiration - [Int] A set of periods in seconds when to send multiple notifications before the plan expires. Remains unchanged if not provided.
renewalGracePeriod - [DurationInput] Put a plan on hold for a limited grace period while waiting for a successful renewal. It is a sum of provided duration inputs.
json - AWSJSON Custom data in JSON format to be able to save and retrieve some configurations. Remains not changed if not provided.
priority - Float Plan priority that determines the execution order for charging and rating. Remains not changed if not provided.
proratingOptions - ProratingOptionsInput The prorating options for the plan
Example
{
  "providerId": 4,
  "planVersionId": "4",
  "version": "xyz789",
  "fee": 987.65,
  "firstUsageFee": 123.45,
  "purchaseFee": 987.65,
  "period": RecurringPeriodInput,
  "services": [InitialTemplateServiceInput],
  "notificationPeriodsBeforeExpiration": [987],
  "renewalGracePeriod": [DurationInput],
  "json": AWSJSON,
  "priority": 987.65,
  "proratingOptions": ProratingOptionsInput
}

UpdatePlanVersionFromInitialTemplateResult

Description

Return type of UpdatePlanVersionFromInitialTemplate including all possible errors.

  • InvalidField (InvalidExtendedRate) - In the roaming or long distance one of the inputs (origination or termination) must be provided.
  • InvalidField (InvalidRatingGroup) - There is no provided rating group ID in the hierarchy or provided rating group ID is the Root.
  • InvalidField (SubscriptionPolicy) - If "alignBillingToDoM" is set to false and "subscriptionPolicy" was anything other than NONE or empty
  • InvalidField (RefundPolicy) - If "alignBillingToDoM" is set to false and "refundPolicy" was anything other than NONE or empty
  • InvalidField (ProratingOptionsSetForNonMonthlyPlan) - If "alignBillingToDoM" is set to true for a non monthly plan
  • BalanceTypeNotFound (BalanceTypeNotFound) - One of the provided balance type IDs does not exist.
  • CreatePlanValidationFailed (FeeIsNotRequired) - Fee is provided for a non recurring plan. Recurring plan must have a period specified and this period must be marked as recurring.
  • CreatePlanValidationFailed (BaseVersionIsNotTemplate) - The specified planVersionId is not a template version.
  • ServiceFormatError (ServiceFormatError) - A new version of a plan is created based on the old format while a version with the new format exists. As soon as a plan uses the new balance format, all versions of the plan must use the new format.
Example
PlanVersionPayload

UpdatePlanVersionSubscriptionResult

Description

Return type of UpdatePlanSubscription including all possible errors.

  • SubscribeToPlanVersionValidationFailed (SubscriptionDateCannotExceedPlanPeriod) - should be returned when the plan is non recurring and the subscription exceeds the plan period length.
  • SubscribeToPlanVersionValidationFailed (ActiveSubscriptionFromDateIsReadOnly) - The “from” date of an active subscription cannot be changed.
  • SubscribeToPlanVersionValidationFailed (DuplicatePlanSubscription) - The same plan can only be subscribed to once.
  • PlanVersionNotFound (PlanVersionNotFound) - The requested plan version with the provided ID cannot be found.
  • PlanNotFound (PlanNotFound) - The requested plan with the provided ID cannot be found.
  • PlanAliasNotFound (PlanAliasNotFound) - The requested plan alias with the provided ID cannot be found.
  • PlanAliasNotActive (PlanAliasNotActive) - The requested plan alias with the provided ID does not have an active version.
  • PlanVersionIsNotAssignable (PlanVersionIsNotAssignable) - The requested plan version is marked as not assignable. Please, make it assignable first.
  • AccountNotFound (AccountNotFound) - The requested account with the provided ID cannot be found.
  • SubscriptionNotFound (SubscriptionNotFound) - The plan subscription with the provided ID was not found.
  • InvalidField (OnlyOnePlanToBeProvided) - You cannot provide both planId and planVersionId.
  • InvalidField (PlanMustBeProvided) - Either planId or planVersionId must be provided.
  • InvalidField (InvalidFutureDate) - The provided date cannot be in the past.
  • InvalidField (InvalidDatesRange) - The provided "to" date cannot be earlier than the provided "from" date..
  • InternalServerError (ChargeEngineNotAvailable) - The charge engine is not available at this time.
Example
SubscribeToPlanVersionPayload

UpdateRatingGroupHierarchyInput

Description

Input type of UpdateRatingGroupHierarchy.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
root - RatingGroupInput! Root rating group where the whole hierarchy starts.
Example
{"providerId": 4, "root": RatingGroupInput}

UpdateRatingGroupHierarchyPayload

Description

Return type of UpdateRatingGroupHierarchy.

Fields
Field Name Description
root - RatingGroup! Root rating group where the whole hierarchy starts.
Example
{"root": RatingGroup}

UpdateRatingGroupHierarchyResult

Description

Return type of UpdateRatingGroupHierarchy including all possible errors.

  • RatingGroupValidationFailed (DefaultRatingGroupIsNotProvided) - Mandatory default rating group(s) were not provided with a new hierarchy.
  • RatingGroupValidationFailed (RatingGroupIsDuplicated) - Each rating group ID must be unique.
  • RatingGroupValidationFailed (UnitRoundingInvalidLevel) - Unit rounding can be set only on the second level of hierarchy (the next after Root).
  • RatingGroupValidationFailed (MissingMinReservationForDynamicQuota) - The minReservations should be defined on the same or upper level of the rating group hierarchy when Dynamic Quota Allocation is enabled.
  • RatingGroupValidationFailed (MissingQuotaValidityTimeForDynamicQuota) - The quotaValidityTime should be defined on the same or upper level of the rating group hierarchy when Dynamic Quota Allocation is enabled.
  • RatingGroupHierarchyHasReferences (RatingGroupHierarchyHasReferences) - A node in the hierarchy can not be removed or changed if there are any active Plans referring to it.
  • InvalidField (InvalidReservations) - The max reservation must be greater than the min reservation.
  • InvalidField (InvalidPositiveNumber) - The provided number can be only a positive number.
  • InvalidField (InvalidQuotaHoldingTime) - The provided number cannot be a negative number.
Example
UpdateRatingGroupHierarchyPayload

UpdateSGSNTableInput

Description

Input type of UpdateSGSNTable.

Fields
Input Field Description
providerId - ID! Service provider ID.
sgsnTable - SGSNTableInput! A unique identifier of a service provider.
Example
{"providerId": 4, "sgsnTable": SGSNTableInput}

UpdateSGSNTablePayload

Description

Return type of UpdateSGSNTable.

Fields
Field Name Description
sgsnTable - SGSNTable! Updated table.
Example
{"sgsnTable": SGSNTable}

UpdateSGSNTableResult

Description

Return type of UpdateSGSNTableResult including all possible errors.

  • InvalidField (InvalidISO3166CountryCode) - The provided string must be a country code and must be in ISO 3166-1 alpha-2 format.
  • InvalidField (InvalidIPCIDR) - The IP CIDR provided is not valid.
Example
UpdateSGSNTablePayload

UpdateSettingsInput

Description

Input type of UpdateSettings.

Fields
Input Field Description
providerId - ID! A unique identifier of a service provider.
json - AWSJSON All settings formatted in JSON.
enableDynamicQuotaTestMode - Boolean Status of the Dynamic Quota Allocation test mode. When enabled additional data is saved in EDRs for analysis of DQ feature.
Example
{
  "providerId": 4,
  "json": AWSJSON,
  "enableDynamicQuotaTestMode": false
}

UpdateSettingsPayload

Description

Return type of UpdateSettings.

Fields
Field Name Description
settings - Settings! The updated settings.
Example
{"settings": Settings}

UpdateSettingsResult

Description

Return type of UpdateSettings including all possible errors.

Example
UpdateSettingsPayload

UpdateUserInput

Description

Input type of UpdateUser

Fields
Input Field Description
providerId - ID! Service provider ID
userId - ID! Cognito User ID
email - AWSEmail! Email
name - String! The name of the user. Should be between 2 and 75 characters
roleGroupMemberships - [RoleGroup!]! The roles this user belong to
phoneNumber - AWSPhone The user's phone number
jobTitle - String The user's job title. If present, it should be between 2 and 50 characters
expiry - AWSDateTime The time when the user should expire. Used for temporary access.
alertInterval - Int The alarm interval in minutes when an email should be send to the user that access expires. Only used when expiry is specified. Can be 0 or not specified when expiry is specified which means no email is send.
Example
{
  "providerId": 4,
  "userId": "4",
  "email": AWSEmail,
  "name": "abc123",
  "roleGroupMemberships": ["Account_Query"],
  "phoneNumber": AWSPhone,
  "jobTitle": "xyz789",
  "expiry": AWSDateTime,
  "alertInterval": 987
}

UpdateUserProfileInput

Description

Input type of UpdateUserProfile

Fields
Input Field Description
name - String! The name of the user. Should be between 2 and 75 characters
phoneNumber - AWSPhone The user's phone number
jobTitle - String The user's job title. If present, it should be between 2 and 50 characters
Example
{
  "name": "abc123",
  "phoneNumber": AWSPhone,
  "jobTitle": "abc123"
}

UpdateUserProfileResult

Description

Return type of UpdateUser including all possible errors.

  • InvalidField (name) - Name should be at least two characters long and a maximum of seventy five
  • InvalidField (jobTitle) - Job title should be at least two characters long and a maximum of fifty
Example
SaveUserPayload

UpdateUserResult

Description

Return type of UpdateUser including all possible errors.

  • UserNotFound - Given user ID does not exist in the tenant, even if user ID exists in Cognito
  • InvalidField (name) - Name should be at least two characters long and a maximum of seventy five
  • InvalidField (jobTitle) - Job title should be at least two characters long and a maximum of fifty
  • UserIsReadOnly(UsersCanNotUpdateThemselves) - Updating own record should be done via update profile
  • InvalidField (expiry) - Expiry needs to be in the future and needs to be a valid datetime string
  • InvalidField (alertInterval) - The alert interval can't be negative
Example
SaveUserPayload

UploadMetadata

Description

An instance of a metadata that belongs to an account.

Fields
Field Name Description
accountId - ID! The account ID to associate metadata with
contactInformation - AWSEmail! Contact information for the account.
marketingOptIn - Boolean Whether the account should be subscribed to marketing options.
customAttributes - [KeyValue] Custom attributes in the metadata. Can be any key value pair and later used for cohorts.
Example
{
  "accountId": 4,
  "contactInformation": AWSEmail,
  "marketingOptIn": true,
  "customAttributes": [KeyValue]
}

UploadMetadataInput

Description

Input parameters for uploading metadata for an account

Fields
Input Field Description
providerId - ID! Provider ID.
accountId - ID! The account ID to associate metadata with
contactInformation - AWSEmail! Contact information for the account.
marketingOptIn - Boolean Whether the account should be subscribed to marketing options.
customAttributes - [KeyValueInput] Custom attributes in the metadata. Can be any key value pair and later used for cohorts.
Example
{
  "providerId": "4",
  "accountId": 4,
  "contactInformation": AWSEmail,
  "marketingOptIn": true,
  "customAttributes": [KeyValueInput]
}

UploadMetadataPayload

Description

Return type of UploadMetadata

Fields
Field Name Description
accountId - ID! The account ID to associate metadata with
metadata - UploadMetadata Metadata associated with the account
Example
{
  "accountId": "4",
  "metadata": UploadMetadata
}

UploadMetadataResult

Example
UploadMetadataPayload

UserAlreadyExists

Description

An error type to be thrown if a user with the same email exists in the user pool. Provider ID and user ID are not returned to not expose them in case user exists for a different provider

Fields
Field Name Description
email - AWSEmail! The email of the user that already exists
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "email": AWSEmail,
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

UserIncorrectStatus

Description

An error type to be thrown if user was not verified yet. This is returned whether the user does not exist, or if the provider does not exist.

Fields
Field Name Description
providerId - ID! Service provider ID with problem.
userId - ID! User ID
state - String! State of the user
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "userId": 4,
  "state": "abc123",
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

UserIsReadOnly

Description

An error type to be thrown if a user tries to update his/her own user record using the admin API instead of the update user profile API, or if they try to delete their own user record

Fields
Field Name Description
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

UserNotFound

Description

An error type to be thrown if user was not found for given provider. This is returned whether the user does not exist, or if the provider does not exist.

Fields
Field Name Description
providerId - ID! Service provider ID with problem.
userId - ID! User ID
errorCode - String! The error code in question.
errorMessage - String The error message in question.
Example
{
  "providerId": 4,
  "userId": 4,
  "errorCode": "abc123",
  "errorMessage": "abc123"
}

WeekDay

Description

The possible values for week days.

Values
Enum Value Description

MONDAY

Monday.

TUESDAY

Tuesday.

WEDNESDAY

Wednesday.

THURSDAY

Thursday.

FRIDAY

Friday.

SATURDAY

Saturday.

SUNDAY

Sunday.
Example
"MONDAY"