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
https://gql.produseast1.api.totogi.com/graphql
Version

generated at 2024-02-20T09:43:27Z

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 Counter notifications 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": "xyz789",
      "softwareMfaEnabled": false,
      "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": 987,
  "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": "abc123",
  "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": 123,
  "after": "xyz789",
  "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": 123,
  "after": "xyz789"
}
Response
{
  "data": {
    "getFieldMappings": {
      "edges": [FieldMappingEdge],
      "pageInfo": PageInfo
    }
  }
}

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}}

getPlanServices

Description

Gets a list of plan services for a provider with pagination.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher


Response

Returns a PlanServiceConnection

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 getPlanServices(
  $providerId: ID!,
  $first: Int!,
  $after: String
) {
  getPlanServices(
    providerId: $providerId,
    first: $first,
    after: $after
  ) {
    edges {
      ...PlanServiceEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "providerId": 4,
  "first": 123,
  "after": "xyz789"
}
Response
{
  "data": {
    "getPlanServices": {
      "edges": [PlanServiceEdge],
      "pageInfo": PageInfo
    }
  }
}

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": 123,
  "after": "abc123",
  "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
  }
}

getRules

Description

Gets a list of rules for a provider with pagination.


Authorized Roles: Plan_Query, Plan_Designer, Plan_Publisher


Response

Returns a RuleConnection

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 getRules(
  $providerId: ID!,
  $first: Int!,
  $after: String
) {
  getRules(
    providerId: $providerId,
    first: $first,
    after: $after
  ) {
    edges {
      ...RuleEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{
  "providerId": 4,
  "first": 987,
  "after": "abc123"
}
Response
{
  "data": {
    "getRules": {
      "edges": [RuleEdge],
      "pageInfo": PageInfo
    }
  }
}

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": "abc123"
}
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.

  • If the parameters to and from are not specified, it cancels the first matching Plan.
  • If it is an indefinite Plan, then to and from should be specified to get a match.

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 PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on SubscriptionNotFound {
      ...SubscriptionNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on MultipleSubscriptions {
      ...MultipleSubscriptionsFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
  }
}
Variables
{"input": CancelPlanSubscriptionInput}
Response
{
  "data": {
    "cancelPlanSubscription": CancelPlanVersionSubscriptionPayload
  }
}

copyPlan

Description

Creates a new Plan out of an existing one.


Authorized Roles: Plan_Designer


Response

Returns a CopyPlanResult!

Arguments
Name Description
from - CopyFromPlanVersion! Parameters to define from what plan to copy.
to - CopyToPlan! Parameters to define how to create a new plan.

Example

Query
mutation copyPlan(
  $from: CopyFromPlanVersion!,
  $to: CopyToPlan!
) {
  copyPlan(
    from: $from,
    to: $to
  ) {
    ... on CopyPlanPayload {
      ...CopyPlanPayloadFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "from": CopyFromPlanVersion,
  "to": CopyToPlan
}
Response
{"data": {"copyPlan": CopyPlanPayload}}

copyPlanService

Description

Creates a Plan Service in a provided Plan by copying an existing plan service from another plan.


Authorized Roles: Plan_Designer


Response

Returns a CopyPlanServiceResult!

Arguments
Name Description
from - CopyPlanServiceFrom! Parameters to define from what plan service to copy.
to - CopyPlanServiceTo! Parameters to define where to copy a new plan service.

Example

Query
mutation copyPlanService(
  $from: CopyPlanServiceFrom!,
  $to: CopyPlanServiceTo!
) {
  copyPlanService(
    from: $from,
    to: $to
  ) {
    ... on CopyPlanServicePayload {
      ...CopyPlanServicePayloadFragment
    }
    ... on PlanServiceNotFound {
      ...PlanServiceNotFoundFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{
  "from": CopyPlanServiceFrom,
  "to": CopyPlanServiceTo
}
Response
{"data": {"copyPlanService": CopyPlanServicePayload}}

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 AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on AccountAlreadyExists {
      ...AccountAlreadyExistsFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... 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 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
  }
}

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}}

createPlan

Description

Creates a Plan for a provider.


Authorized Roles: Plan_Designer


Response

Returns a CreatePlanResult!

Arguments
Name Description
input - CreatePlanInput! Parameters for CreatePlan.

Example

Query
mutation createPlan($input: CreatePlanInput!) {
  createPlan(input: $input) {
    ... on CreatePlanPayload {
      ...CreatePlanPayloadFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on PlanServiceNotFound {
      ...PlanServiceNotFoundFragment
    }
    ... on PlanAlreadyExists {
      ...PlanAlreadyExistsFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreatePlanInput}
Response
{"data": {"createPlan": CreatePlanPayload}}

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
  }
}

createPlanService

Description

Creates a Plan Service in a Plan.


Authorized Roles: Plan_Designer


Response

Returns a CreatePlanServiceResult!

Arguments
Name Description
input - CreatePlanServiceInput! Parameters for CreatePlanService.

Example

Query
mutation createPlanService($input: CreatePlanServiceInput!) {
  createPlanService(input: $input) {
    ... on CreatePlanServicePayload {
      ...CreatePlanServicePayloadFragment
    }
    ... on PlanVersionNotFound {
      ...PlanVersionNotFoundFragment
    }
    ... on RuleNotFound {
      ...RuleNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on FieldNotFound {
      ...FieldNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on ServiceFormatError {
      ...ServiceFormatErrorFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreatePlanServiceInput}
Response
{"data": {"createPlanService": CreatePlanServicePayload}}

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}}

creditAccount

Use updateBalance instead. Deprecated date is 2024-01-23. Expiration date is 2024-03-08.
Description

Add money to the monetary balance.

Response

Returns a CreditAccountResult!

Arguments
Name Description
input - CreditAccountInput! Parameters for a Credit request.

Example

Query
mutation creditAccount($input: CreditAccountInput!) {
  creditAccount(input: $input) {
    ... on CreditAccountPayload {
      ...CreditAccountPayloadFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": CreditAccountInput}
Response
{"data": {"creditAccount": CreditAccountPayload}}

debitAccount

Use updateBalance instead. Deprecated date is 2024-01-23. Expiration date is 2024-03-08.
Description

Deduct money from the monetary balance.

Response

Returns a DebitAccountResult!

Arguments
Name Description
input - DebitAccountInput! Parameters for a Debit request.

Example

Query
mutation debitAccount($input: DebitAccountInput!) {
  debitAccount(input: $input) {
    ... on DebitAccountPayload {
      ...DebitAccountPayloadFragment
    }
    ... on DebitAccountFailed {
      ...DebitAccountFailedFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
  }
}
Variables
{"input": DebitAccountInput}
Response
{"data": {"debitAccount": DebitAccountPayload}}

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 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 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
  }
}

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

Description

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


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}}

deletePlanService

Description

Deletes a Plan Service from a new Pllan. Deployed plans cannot be edited.


Authorized Roles: Plan_Designer


Response

Returns a DeletePlanServiceResult!

Arguments
Name Description
input - DeletePlanServiceInput! Parameters for DeletePlanService.

Example

Query
mutation deletePlanService($input: DeletePlanServiceInput!) {
  deletePlanService(input: $input) {
    ... on DeletePlanServicePayload {
      ...DeletePlanServicePayloadFragment
    }
    ... on PlanServiceNotFound {
      ...PlanServiceNotFoundFragment
    }
    ... on PlanVersionHasReferences {
      ...PlanVersionHasReferencesFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": DeletePlanServiceInput}
Response
{"data": {"deletePlanService": DeletePlanServicePayload}}

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.

Example

Query
mutation makePlanAssignable($input: AssignablePlanVersionInput!) {
  makePlanAssignable(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": {"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.


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 parameters to and from are not specified, the plan period is from now to a far time in the future (indefinite).


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 InvalidField {
      ...InvalidFieldFragment
    }
    ... on SubscribeToPlanVersionValidationFailed {
      ...SubscribeToPlanVersionValidationFailedFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on PlanNotFound {
      ...PlanNotFoundFragment
    }
  }
}
Variables
{"input": SubscribeToPlanVersionInput}
Response
{
  "data": {
    "subscribeToPlan": SubscribeToPlanVersionPayload
  }
}

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 InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdateAccountInput}
Response
{"data": {"updateAccount": UpdateAccountPayload}}

updateAccountBalanceTypeCounter

Description

Update or create Balance Type Counter notifications for an account based on the provided input parameters. This will override anything coming from the BalanceType counter definition for a given counter. Creates or updates an AccountBalanceCounter record.

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 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}}

updateDebit

Description

Updates a RESERVED debit request.


Authorized Roles: Account_Admin


Response

Returns an UpdateDebitResult!

Arguments
Name Description
input - UpdateDebitInput! Parameters for the update debit request.

Example

Query
mutation updateDebit($input: UpdateDebitInput!) {
  updateDebit(input: $input) {
    ... on UpdateDebitPayload {
      ...UpdateDebitPayloadFragment
    }
    ... on DebitReservationNotFound {
      ...DebitReservationNotFoundFragment
    }
    ... on AccountNotFound {
      ...AccountNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
  }
}
Variables
{"input": UpdateDebitInput}
Response
{"data": {"updateDebit": UpdateDebitPayload}}

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
  }
}

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

Description

Updates attributes of a Plan, such as name.


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}}

updatePlanService

Description

Updates attributes of a Plan Service, such as name.


Authorized Roles: Plan_Designer


Response

Returns an UpdatePlanServiceResult!

Arguments
Name Description
input - UpdatePlanServiceInput! Parameters for UpdatePlanService.

Example

Query
mutation updatePlanService($input: UpdatePlanServiceInput!) {
  updatePlanService(input: $input) {
    ... on UpdatePlanServicePayload {
      ...UpdatePlanServicePayloadFragment
    }
    ... on PlanServiceNotFound {
      ...PlanServiceNotFoundFragment
    }
    ... on RuleNotFound {
      ...RuleNotFoundFragment
    }
    ... on InvalidField {
      ...InvalidFieldFragment
    }
    ... on PlanServiceIsReadOnly {
      ...PlanServiceIsReadOnlyFragment
    }
    ... on FieldNotFound {
      ...FieldNotFoundFragment
    }
    ... on InvalidProviderLifecycleStage {
      ...InvalidProviderLifecycleStageFragment
    }
    ... on ServiceFormatError {
      ...ServiceFormatErrorFragment
    }
    ... on BalanceTypeNotFound {
      ...BalanceTypeNotFoundFragment
    }
    ... on RateLimitExceeded {
      ...RateLimitExceededFragment
    }
    ... on InternalServerError {
      ...InternalServerErrorFragment
    }
  }
}
Variables
{"input": UpdatePlanServiceInput}
Response
{"data": {"updatePlanService": UpdatePlanServicePayload}}

updatePlanSubscription

Description

Updates properties of a Plan instance subscribed by an Account.


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
    }
  }
}
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.
balance - Balance The current balance of the account.
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.
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 types for account.
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.
Example
{
  "providerId": "4",
  "id": "4",
  "customData": AWSJSON,
  "balance": Balance,
  "parent": Account,
  "inactivePlanVersions": [SubscribedPlanVersion],
  "activePlanVersions": [SubscribedPlanVersion],
  "archivedPlanVersions": [SubscribedPlanVersion],
  "friendsAndFamily": ["abc123"],
  "creditLimit": 987.65,
  "notificationCreditLimitThresholds": [123.45],
  "balances": [AccountBalanceInfo],
  "postpaid": AccountPostpaidProperties,
  "churnScore": 123.45,
  "activatedAt": AWSDateTime
}

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": "abc123",
  "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": "xyz789",
  "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": "abc123",
  "dimensionType": "INCLUSIVE",
  "values": ["abc123"]
}

AccountBalanceInfo

Description

Balance details return type.

Fields
Field Name Description
balanceId - ID! ID for the balance.
balanceType - BalanceTypePayload! 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.
limit - Float The limit for the balance can be decimal only for rate-based ones. Unit-based ones should use full numbers, if not specified take from balanceTypeId.
from - AWSDateTime Start date of the balance.
to - AWSDateTime End date of the balance.
total - Float Total balance of the account.
reserved - Float Reserved balance of the account.
used - Float Used balance of the account.
available - Float Available balance of the account.
counters - [BalanceTypeCounterPayload!] List of counters overwritten by an account in this balance.
Example
{
  "balanceId": 4,
  "balanceType": BalanceTypePayload,
  "priority": 987.65,
  "balanceValue": 123.45,
  "limit": 987.65,
  "from": AWSDateTime,
  "to": AWSDateTime,
  "total": 987.65,
  "reserved": 987.65,
  "used": 123.45,
  "available": 123.45,
  "counters": [BalanceTypeCounterPayload]
}

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": "abc123",
  "errorMessage": "abc123"
}

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 Balance Type Counters 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.
counters - [BalanceTypeCounterPayload!]! The counters information payload.
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.
metrics - [AccountCohortMetricDimension] Metrics based criteria.
Example
{
  "attributes": [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": "xyz789"
}

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": "abc123"
}

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": "abc123",
  "errorMessage": "abc123"
}

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": "xyz789"
}

AccountPostpaidProperties

Description

Type to hold the postpaid properties of accounts

Fields
Field Name Description
timezone - String The timezone of the user. 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
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
Example
{
  "timezone": "abc123",
  "billingDayOfMonth": 987,
  "lastBillingDate": AWSDate,
  "longFirstBillingCycle": 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.
Example
"CREDIT"

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": true,
  "softLimitTps": 987,
  "hardLimitTps": 987,
  "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.

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": "xyz789",
  "groups": ["abc123"],
  "groupsField": "xyz789",
  "operations": ["create"],
  "queries": ["get"],
  "mutations": ["create"]
}

AuthStrategy

Values
Enum Value Description

owner

groups

private

public

Example
"owner"

Balance

Description

Representation of a balance of one particular account.

Fields
Field Name Description
version - Int The current version of the balance.
value - Float The value or currency of the balance.
customData - AWSJSON Any custom data required by the balance.
Example
{"version": 987, "value": 987.65, "customData": AWSJSON}

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": "abc123",
  "errorMessage": "xyz789"
}

BalancePayload

Description

Balance return type.

Fields
Field Name Description
providerId - ID! Provider ID.
accountId - ID! Account ID.
balanceInfo - AccountBalanceInfo! Balance info
Example
{
  "providerId": "4",
  "accountId": "4",
  "balanceInfo": AccountBalanceInfo
}

BalanceTypeCounterInput

Description

Input parameters for updating Balance Type Counter notifications.

Fields
Input Field Description
balanceTypeCounterId - ID The unique identifier for the Balance Type Counter. Will create a new balance type counter if not provided. Will update an existing balance type counter if provided.
name - String The unique name associated with the Balance Type Counter. Required if balanceTypeCounterId is not provided to create a new counter. If balanceTypeCounterId is provided, then it updates the counter 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.
isActive - Boolean Indicates whether the counter is active or not. Reserved for future use.
states - [BalanceTypeCounterStateInput] An optional list of states associated with the Balance Type Counter. Names of states must be unique. Thresholds must be unique.
isExclusive - Boolean Indicates whether the counter is inclusive reservation or exclusive. Reserved for future use.
isOnUsedBalance - Boolean Indicates whether the counter is on remaining or used balance. Reserved for future use.
Example
{
  "balanceTypeCounterId": 4,
  "name": "abc123",
  "period": BalanceTypeCounterPeriodInput,
  "isActive": false,
  "states": [BalanceTypeCounterStateInput],
  "isExclusive": true,
  "isOnUsedBalance": true
}

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": "abc123"
}

BalanceTypeCounterPayload

Description

A representation of Balance Type Counter notifications.

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.
period - BalanceTypeCounterPeriod The optional reset date for the balance type counter.
isActive - Boolean Indicates whether the counter is active or not. Reserved for future use.
states - [BalanceTypeCounterState] An optional list of states associated with the Balance Type Counter.
isExclusive - Boolean! Indicates whether the counter is inclusive reservation or exclusive. Reserved for future use.
isOnUsedBalance - Boolean! Indicates whether the counter is on remaining or used balance. Reserved for future use.
Example
{
  "balanceTypeCounterId": "4",
  "name": "xyz789",
  "period": BalanceTypeCounterPeriod,
  "isActive": false,
  "states": [BalanceTypeCounterState],
  "isExclusive": false,
  "isOnUsedBalance": false
}

BalanceTypeCounterPeriod

Description

Information when balance counter value must be reset.

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.

Fields
Input Field Description
type - CounterPeriodType! Determines a period when counter value must be reset.
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": 123, "dayOfMonth": 987}

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

Name and threshold of a balance type counter state.

Fields
Field Name Description
name - String! Unique name of the balance type counter's current state.
threshold - Float Threshold of the balance type counter's current state. If no threshold is provided, this is the default state.
actions - [BalanceTypeCounterStateAction!]! Actions to perform when the state is triggered.
Example
{
  "name": "xyz789",
  "threshold": 123.45,
  "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

Name and threshold of a balance type counter state.

Fields
Input Field Description
name - String! Unique name of the balance type counter's current state. Must be between 1 and 50 characters and consist of letters, digits or special characters.
threshold - Float Threshold of the balance type counter's current state. If no threshold is provided, this is the default state.
actions - [BalanceTypeCounterStateAction!] Actions to perform when the state is triggered. If not provided, creates a NOTIFY action by default. Give an empty array as input to have no actions.
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": "xyz789",
  "errorCode": "abc123",
  "errorMessage": "xyz789"
}

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 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 - [BalanceTypeCounterPayload!] List of balance type counter inputs of the balance type.
Example
{
  "balanceTypeId": 4,
  "providerId": 4,
  "name": "xyz789",
  "unitType": "TIME",
  "limit": 123.45,
  "rateBased": false,
  "counters": [BalanceTypeCounterPayload]
}

Boolean

Description

The Boolean scalar type represents true or false.

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": "xyz789",
  "errorMessage": "xyz789"
}

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": "abc123",
  "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": 987.65}

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": 123,
  "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": "xyz789"
}

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": "xyz789",
  "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": "xyz789",
  "htmlBody": "abc123",
  "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": 987.65,
  "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": "xyz789",
  "errorMessage": "xyz789"
}

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": "xyz789",
  "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": "abc123"
}

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": "abc123",
  "errorMessage": "abc123"
}

CancelPlanSubscriptionInput

Description

Input type of CancelPlanSubscription.

Fields
Input Field Description
planSubscriptionId - ID A unique identifier of a plan subscription to unsubscribe. Either a planVersionId or a planSubscriptionId must be provided at the same time. Will become mandatory when planVersionId is removed.
providerId - ID! A unique identifier of a service provider.
accountId - ID! A unique identifier of an account.
planVersionId - ID The unique identifier of a plan version. Replaced by planSubscriptionId. Deprecated date is 2024-01-23. Expiration date is 2024-03-08.
from - AWSDateTime The start time of the subscription. Set to now if not provided and if plan version ID exists more than once. If both, 'to' and 'from' are not provided, it will cancel the plan version if only one occurrence exists.
to - AWSDateTime The end time of the subscription. Set to a far time into the future (the first of January 3000) if not provided and if plan version ID exists more than once. If both, 'to' and 'from' are not provided, it will cancel the plan version if only one occurrence exists.
Example
{
  "planSubscriptionId": "4",
  "providerId": 4,
  "accountId": 4,
  "planVersionId": "4",
  "from": AWSDateTime,
  "to": AWSDateTime
}

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.

  • 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": "xyz789",
  "errorMessage": "abc123"
}

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": "abc123",
  "errorMessage": "abc123"
}

CopyFromPlanVersion

Description

Input type of CopyPlan to define a plan version to copy from.

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

CopyPlanPayload

Description

Return type of CopyPlan.

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

CopyPlanResult

Description

Return type of CopyPlan including all possible errors.

Example
CopyPlanPayload

CopyPlanServiceFrom

Description

Input type of CopyPlanService to define a plan service to copy from.

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

CopyPlanServicePayload

Description

Return type of CopyPlanService.

Fields
Field Name Description
planService - PlanService! The copied plan service.
planVersion - PlanVersion! The plan version it was copied to.
Example
{
  "planService": PlanService,
  "planVersion": PlanVersion
}

CopyPlanServiceResult

Description

Return type of CopyPlanService including all possible errors.

Example
CopyPlanServicePayload

CopyPlanServiceTo

Description

Input type of CopyPlanService to define a new plan service attributes.

Fields
Input Field Description
planVersionId - ID! A unique identifier of a plan version where to create a copy of a plan service.
name - String The name of the plan service.
Example
{
  "planVersionId": "4",
  "name": "xyz789"
}

CopyToPlan

Description

Input type of CopyPlan to define a new plan attributes.

Fields
Input Field Description
name - String! The name of the plan attribute.
Example
{"name": "xyz789"}

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": "abc123",
  "persistent": true,
  "period": CounterPeriod,
  "selector": "xyz789",
  "increment": "xyz789",
  "states": [CounterState],
  "notificationFields": ["xyz789"]
}

CounterInput

Description

Parameters for counter creation.

Fields
Input Field Description
name - String! Unique name for this Counter. Must be between 1 and 50 characters and consist of letters, digits or special characters.
persistent - Boolean Persistent counter saves its state between sessions, transient counter resets its state between sessions. If not provided then considered as transient - false.
period - CounterPeriodInput Determines when a counter is reset. If not provided then the counter is never reset and will be active while subscription is active.
selector - String Boolean expression to determine if the current event should be counted. If not provided then all events are counted.
increment - String! Value expression that will be used to increment the counter. The result of the expression must return a number.
states - [CounterStateInput!]! Possible states of the counter.
notificationFields - [String] Additional notification fields which are sent in notifications caused by this counter.
Example
{
  "name": "abc123",
  "persistent": true,
  "period": CounterPeriodInput,
  "selector": "xyz789",
  "increment": "abc123",
  "states": [CounterStateInput],
  "notificationFields": ["abc123"]
}

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"}

CounterPeriodInput

Description

Information when counter value must be reset.

Fields
Input Field 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. The result of the expression could be either an integer or a date in AWSDateTime format.
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": "xyz789",
  "threshold": "abc123"
}

CounterStateInput

Description

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

Fields
Input Field 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. The result of the expression must be a number.
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.
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.
Example
{
  "providerId": "4",
  "accountId": "4",
  "parentAccountId": 4,
  "customData": AWSJSON,
  "friendsAndFamily": ["xyz789"],
  "creditLimit": 123.45,
  "notificationCreditLimitThresholds": [987.65],
  "balances": [CreateBalanceInfoInput],
  "postpaid": CreateAccountPostpaidPropertiesInput,
  "activatedAt": AWSDateTime
}

CreateAccountPayload

Description

Return type of CreateAccount.

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

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 format (+/-hh:mm). 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": 987,
  "longFirstBillingCycle": true
}

CreateAccountResult

Description

Return type of CreateAccount including all possible errors.

  • BalanceTypeNotFound (BalanceTypeNotFound) - The balance type ID provided does not exist.
  • 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.
  • 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 (BalanceTypeLimitViolation) - When the balance total 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! 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.
value - Float! Value of the balance.
limit - Float The limit for the balance can be decimal only for rate-based ones. Unit-based ones should use full numbers, if not specified take from balanceTypeId.
from - AWSDateTime Start date of the balance.
to - AWSDateTime End date of the balance.
Example
{
  "balanceTypeId": "4",
  "priority": 987.65,
  "value": 123.45,
  "limit": 987.65,
  "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! Balance info.
Example
{
  "providerId": 4,
  "accountId": 4,
  "balanceInfo": CreateBalanceInfoInput
}

CreateBalanceResult

Description

Return type of DeleteBalance including all possible errors. 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 (BalanceTypeLimitViolation) - When the balance total 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": true,
  "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".
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
{
  "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

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 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.
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 - [InitialTemplateServiceInput!]! 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": "xyz789",
  "name": "xyz789",
  "recurringFirstUsageFee": 123.45,
  "recurringFirstUsagePeriodType": "HOUR",
  "services": [InitialTemplateServiceInput],
  "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.
notificationCreditLimitThresholds - [Float] Thresholds of the credit limit on the account. Whenever the account goes lower than any of the values in the set a notification is sent. Removed and should be handled by using updateBalanceTypeCounter to add the counter to the default monetary balance on the account or createAccount/updateAccount with setting notificationCreditLimitThresholds. Deprecated date is 2024-01-23. Expiration date is 2024-03-08.
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": "xyz789",
  "name": "xyz789",
  "fee": 123.45,
  "firstUsageFee": 987.65,
  "purchaseFee": 987.65,
  "period": RecurringPeriodInput,
  "services": [InitialTemplateServiceInput],
  "notificationPeriodsBeforeExpiration": [987],
  "notificationCreditLimitThresholds": [987.65],
  "renewalGracePeriod": [DurationInput],
  "json": AWSJSON,
  "priority": 123.45,
  "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 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.

Exam