Mobile Messaging Exchange - Account Administration

Account administration and lookup reporting for the Tata Communications Mobile Messaging Exchange (A2P/wholesale SMS) platform, covering destination lookup, report retrieval, and sender-ID registration. Publicly visible on the Tata Communications developer portal with a downloadable Swagger 2.0 document; 3 operations across 3 paths.

OpenAPI Specification

tata-communications-mobile-messaging-exchange-account-administration.json Raw ↑
{"swagger":"2.0","info":{"description":"This API manage account and lookup reports.","version":"1.0","title":"Mobile Messaging Exchange - Account Administration "},"paths":{"/destination":{"get":{"operationId":"getdestination","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"accountId","in":"query","required":false},{"name":"mnc","in":"query","required":false},{"name":"appid","in":"header","required":false},{"name":"mcc","in":"query","required":false}],"responses":{"default":{"description":" "}}}},"/report":{"get":{"operationId":"getreport","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"accountId","in":"query","required":false},{"name":"appid","in":"header","required":false}],"responses":{"default":{"description":" "}}}},"/senderId":{"post":{"operationId":"postsenderId","consumes":["application/json"],"parameters":[{"name":"accountId","in":"query","required":false},{"name":"mnc","in":"query","required":false},{"name":"appid","in":"header","required":false},{"in":"body","name":"SenderIdWhitelistRequest","required":false},{"name":"mcc","in":"query","required":false}],"responses":{"default":{"description":" "}}}}},"definitions":{"rspTODO":{"properties":{"INVVALID_PARM":{"type":"string","minLength":1,"maxLength":1}},"description":"Invalid response TODO:: Exists to assist in the development of the API. There should be no path references to this in a production system"},"metadata":{"properties":{"href":{"type":"string","minLength":25,"maxLength":300}}},"propositionList":{"type":"array","description":"The set of all propositions which are available to the subscriptions which have the identified Business Entity Account as a parent","items":{"type":"object","properties":{"id":{"type":"string","readOnly":true,"minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","description":" a unique name for the Proposition","minLength":0,"maxLength":30},"code":{"type":"string","description":"proposition code","minLength":0,"maxLength":30},"subscriptionTypeCode":{"type":"string","description":"Subscription Type code","minLength":0,"maxLength":30},"COpropositionCode":{"type":"string","description":"Commercial Offer Proposition Code","minLength":0,"maxLength":30},"balanceProfileCode":{"type":"string","description":"Balance Profile COde","minLength":0,"maxLength":30},"LifecycleCode":{"type":"string","description":"The id of the subscription/SIM lifecycle","minLength":0,"maxLength":30},"commercialOfferList":{"type":"array","description":"A list of all commercial offers available as part of the proposition","uniqueItems":true,"items":{"type":"object","properties":{"id":{"type":"string","readOnly":true,"minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","description":"A unique user defined, human readable name for the Commercial Offer.","minLength":0,"maxLength":30},"code":{"type":"string","description":"The human readable Commercial Offer Code","minLength":0,"maxLength":30},"isSharedBalance":{"type":"boolean","description":"flags the Commercial Offer as being suitable for a Shared Balance account"},"serviceTypeCode":{"type":"string","description":"within the base proposition the Commercial Offer components can be based on one or more of the core mobile services: Voice, SMS or Data.","enum":["Voice","SMS","Data"]},"subscriptionCode":{"type":"string","description":"A human readable code for the type of subscription identifing its intended use.","minLength":0,"maxLength":30},"quota":{"type":"number","format":"float","description":"The Quota identifies the Credit Limit of the commercial Offer. It is a monetary amount in the currency of the MVNO tenancy.","minimum":0,"maximum":100},"bundleAmount":{"type":"number","format":"float","description":"The number of billing units include in the Commercial Offer.","minimum":0,"maximum":100},"periodicity":{"type":"string","description":"Identifies the frequency at which the given Commercial Offer/Bundle is applied to a Subscription/Shared Balance.","enum":["MONTH"]},"notificationTriggers":{"type":"array","description":"A Commercial Offer comes with a set of predefined notification Trigger Points. These are applied per subscription but are defined within a commercial offer. This means that they are defined collectively and may be used for commercial or regulatory purposes and cannot be modified per subscription but collectively through the commercial offer definition.","items":{"type":"object","description":"A Notification Trigger is a marker that when reached/transitioned results in an action, typically a notification.","properties":{"applyedAgainst":{"type":"string","description":"A trigger can be one of two variants and apply to either a bundle or a quota. That is; it can either represent measure of consumption of one of two things; \r\n * BUNDLE:\t An effectively prepaid/provisioned volume of credit for a specific service. \r\n* QUOTA: \t A Credit Limit for the service. Once the subscription goes out of bundle, it starts accruing credit unit it reaches its Quota (credit Limit) the notification Trigger Point.","enum":["BUNDLE ","QUOTA"]},"trigger":{"type":"number","format":"float","description":"A count of the outstanding amount (as a percentage of total) at which a notification will be triggered","minimum":0,"maximum":100}}},"minItems":1},"whiteZoneList":{"type":"array","description":"A list of zones for which the identified balances can be used. The use of a whitelist is mutually exclusive  to the use se of a blacklist as both together is redundant.","uniqueItems":true,"items":{"type":"integer","format":"int32","minimum":1,"maximum":100},"minItems":1},"blackZoneList":{"type":"array","description":"A list of zones for which the identified balances can NOT be used. The use of a blacklist is mutually exclusive  to the use se of a whitelist as both together is redundant.","uniqueItems":true,"items":{"type":"integer","format":"int32","minimum":1,"maximum":100},"minItems":1}}},"maxItems":3,"minItems":1}}},"uniqueItems":true,"minItems":1},"namedAPNset":{"type":"object","required":["apnSet","name"],"properties":{"name":{"type":"string","minLength":0,"maxLength":50},"apnSet":{"type":"array","description":"A set of APNs.","items":{"type":"string","description":"A simple restriction on an APN format as per 3GPP TS 23.003 V14.3.0. TODO remove BOTH double slash in the pattern","maxLength":200,"pattern":"^((\\*)|([a-zB-Z0-9-_]*\\.([a-zB-Z0-9-_])*[a-zB-Z0-9]))$"},"minItems":0}}},"transferAmount":{"type":"integer","minimum":1,"format":"int32","description":"A count of the number of balance units that should be transfered. This can never be less than one"},"generic5charString":{"type":"string","minLength":0,"maxLength":5},"customFieldSet":{"required":["customFields"],"properties":{"customFields":{"type":"object","additionalProperties":{"type":"string"}}},"description":"The Tata system supports the ability for the operator to store a set of custom values against a subscription. The meaning, validation, true type and usage of these is not known to the system. There is a limit of 5 custom fields and they are stored and communicated as strings"},"balance":{"properties":{"balanceName":{"type":"string","description":"The human readable identifier for a balance. The set of permitted balances is predefined and each has a unique name which used here effectively as a primary ID.","minLength":0,"maxLength":30},"outstandingAmount":{"type":"number","format":"float","description":"The number of billing units or equivalents (cash) which constitute the current balance. On a topup the initial amount is added to the outstandingAmount which is subsequently decremented towards 0 as consumption occurs ","minimum":0},"unitType":{"type":"string","description":"The unit in which the amount is expresses. Possible values: minutes, USD, EUR, MB, SMS, etc.. This need not necessarily represent the unit of billing which could be bigger. That is the unit may be KB but it is possible that the unit of billing is 5KB","minLength":0,"maxLength":10},"expirationDate":{"type":"string","format":"date-time","description":"The date on which the outstandingAmount will expire"},"creationDate":{"type":"string","format":"date-time","description":"The date on which the outstandingAmount will expire"},"againstServices":{"type":"array","description":"A list of unique serviceTypes","uniqueItems":true,"items":{"type":"string","description":"an instance of a service selected from the permitted set of services","enum":["Voice","SMS","Data"]},"minItems":1},"initial_amount":{"type":"number","format":"float","description":"The number of billing units or equivalents (cash) which constitute the initial amount of the balance when created/topped-up.","minimum":0}}},"genericPropositionCode":{"required":["id","name"],"properties":{"id":{"type":"string","readOnly":true,"minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","minLength":0,"maxLength":50}}},"postPersonSuccessRsp":{"required":["personID","trid"],"properties":{"trid":{"type":"string","minLength":5,"maxLength":36,"pattern":"^([a-zA-Z0-9_][a-zA-Z0-9_-]*[a-zA-Z0-9_]){5,36}$"},"personID":{"type":"string","minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"}},"description":"In certain cases calls to data modifying method (POST, PUT, PATCH and DELETE) result in more than the primary resource repository being updated. In these cases, the system responds once the primary system has validated and persisted the data with a 202 response and update the downstream systems asynchroniously"},"serviceTypes":{"type":"string","description":"an instance of a service selected from the permitted set of services","enum":["Voice","SMS","Data"]},"SIMstatus":{"type":"string","description":"The full set of permitted states. A given implementation (MVNO) may not avail of all of these. TODO: align with the final set from Teleena","enum":["Inventory","TestReady","ActivationReady","preActive","Active","Suspended","Dormant","DormantSuspended","Terminated"]},"DIALED_DIGITS":{"type":"string","minLength":0,"maxLength":15,"pattern":"^$|^[0-9]{5,15}$","description":"A valid number when presented, should be at least 5 digits long but the definition also supports the absence of a number."},"genericMin2Max50charString":{"type":"string","minLength":2,"maxLength":50},"callForwardSettings":{"required":["busy","noAnswer","noNetwork","unconditional"],"properties":{"unconditional":{"type":"string","description":"A valid number when presented, should be at least 5 digits long but the definition also supports the absence of a number.","minLength":0,"maxLength":15,"pattern":"^$|^[0-9]{5,15}$"},"busy":{"type":"string","description":"A valid number when presented, should be at least 5 digits long but the definition also supports the absence of a number.","minLength":0,"maxLength":15,"pattern":"^$|^[0-9]{5,15}$"},"noAnswer":{"type":"string","description":"A valid number when presented, should be at least 5 digits long but the definition also supports the absence of a number.","minLength":0,"maxLength":15,"pattern":"^$|^[0-9]{5,15}$"},"noNetwork":{"type":"string","description":"A valid number when presented, should be at least 5 digits long but the definition also supports the absence of a number.","minLength":0,"maxLength":15,"pattern":"^$|^[0-9]{5,15}$"}},"description":"A collection of call forward settings for a single subscription"},"AuthorisationError":{"type":"object","required":["errorCode","title"],"properties":{"errorCode":{"type":"integer","format":"int32","description":"Tata code for this error to allow referencing through documentation","minimum":1,"maximum":30},"title":{"type":"string","description":"A descriptive header for the error","minLength":10,"maxLength":200},"additionalInfo":{"type":"string","description":"unique uri for this error","minLength":20,"maxLength":250}},"additionalProperties":false},"BAOC_opts":{"type":"string","enum":["NOT_ACTIVE","ALL_OUTGOING_CALLS","ALL_OUTGOING_INTERNATIONAL_CALLS","OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HPLMN_COUNTRY","ALL_OUTGOING_CALLS_WHEN_ROAMING_OUTSIDE_HPLMN"]},"ISO639_2":{"type":"string","minLength":3,"maxLength":3,"pattern":"^[a-zA-Z]{3}$","description":"Language Codes"},"SET_OF_MSISDNS":{"type":"array","description":"A simple list of unique MSISDNs","items":{"type":"string","minLength":3,"maxLength":15,"pattern":"^[1-9][0-9]{2,14}$"},"uniqueItems":true,"minItems":0},"ISO639_1":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[a-zA-Z]{2}$","description":"Language Codes"},"locationDetailsSet":{"type":"array","description":"A set of location details. The set supports the empty set to cater for cases where no location information exists or is accessible.","items":{"type":"object","properties":{"imsi":{"type":"string","minLength":3,"maxLength":15,"pattern":"^[0,2-7,9][0-9]{2,14}$"},"gt":{"type":"string","minLength":5,"maxLength":100,"pattern":"^[0-9]{5,15}$"},"domain":{"type":"string","enum":["voice","data"]},"timeStamp":{"type":"string","format":"date-time"}}},"minItems":0},"locationDetails":{"properties":{"imsi":{"type":"string","minLength":3,"maxLength":15,"pattern":"^[0,2-7,9][0-9]{2,14}$"},"gt":{"type":"string","minLength":5,"maxLength":100,"pattern":"^[0-9]{5,15}$"},"domain":{"type":"string","enum":["voice","data"]},"timeStamp":{"type":"string","format":"date-time"}}},"new_propInheritability":{"type":"boolean"},"InternalError":{"type":"object","required":["errorCode","title"],"properties":{"errorCode":{"type":"integer","format":"int32","description":"Tata code for this error to allow referencing through documentation","minimum":1,"maximum":30},"title":{"type":"string","description":"A descriptive header for the error","minLength":10,"maxLength":200}},"additionalProperties":false},"TRID":{"type":"string","minLength":5,"maxLength":36,"pattern":"^([a-zA-Z0-9_][a-zA-Z0-9_-]*[a-zA-Z0-9_]){5,36}$"},"voiceMailSettings":{"type":"object","required":["emailNotification","language","smsNotification"],"properties":{"language":{"type":"string","description":"Language Codes","minLength":2,"maxLength":2,"pattern":"^[a-zA-Z]{2}$"},"pin":{"type":"string","minLength":4,"maxLength":4},"smsNotification":{"type":"boolean"},"emailNotification":{"type":"boolean"},"email":{"type":"string","description":"A very basic open definition of an email address. It does not claim to be a catchall for valid email addresses but represents a simple check which should not have false negatives.","minLength":5,"maxLength":75}},"description":"The complete set of voicemail settings. It is possible that emailNotification will be set to true but the email be absent. In this case notification will be sent to the on-record email address for the subscription owner","additionalProperties":false},"gender":{"type":"string","enum":["Male","Female","Unknown"]},"new_offerProposition":{"required":["id","name","serviceBundleBalanceDetails","status","subscriptionType","validForZones"],"properties":{"id":{"type":"string","minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","minLength":0,"maxLength":40},"status":{"type":"string","enum":["Unpublished","Published","Retired"]},"subscriptionType":{"type":"string","description":"A named classification indicating what services are on offer.","enum":["PPU","Prepaid","SharedBalance"]},"validForZones":{"type":"object","description":"Details of the services, pricing and restrictions of use.","properties":{"id":{"type":"string","readOnly":true,"minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","minLength":0,"maxLength":50}},"required":["id","name"]},"serviceBundleBalanceDetails":{"type":"object","description":"A referance to the Lifecycle state machine applied to subscriptions using this proposition","properties":{"id":{"type":"string","readOnly":true,"minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","minLength":0,"maxLength":50}},"required":["id","name"]},"whiteZoneList":{"type":"array","description":"A list of zones for which the identified balances can be used. The use of a whitelist is mutually exclusive  to the use se of a blacklist as both together is redundant.","uniqueItems":true,"items":{"type":"integer","format":"int32","minimum":1,"maximum":100},"minItems":1},"blackZoneList":{"type":"array","description":"A list of zones for which the identified balances can NOT be used. The use of a blacklist is mutually exclusive  to the use se of a whitelist as both together is redundant.","uniqueItems":true,"items":{"type":"integer","format":"int32","minimum":1,"maximum":100},"minItems":1}}},"camelRegion":{"properties":{"id":{"type":"integer"},"name":{"type":"string","minLength":0,"maxLength":40}},"description":"A single referenceable region identifier"},"coreSubscriptionDetailsList":{"type":"array","description":"A set of Subscription details. It is possible that an empty set will be returned so we must cater for this.","items":{"type":"object","additionalProperties":false},"minItems":0},"SIM_PIN":{"type":"string","minLength":1,"maxLength":15},"SIMdetails":{"properties":{"iccid":{"type":"string","minLength":12,"maxLength":20,"pattern":"^89[0-9]{10,18}"},"imsis":{"type":"array","description":"A simple list of unique IMSIs.","uniqueItems":true,"items":{"type":"string","minLength":3,"maxLength":15,"pattern":"^[0,2-7,9][0-9]{2,14}$"},"minItems":0},"PIN1":{"type":"string","minLength":1,"maxLength":15},"PIN2":{"type":"string","minLength":1,"maxLength":15},"PUK1":{"type":"string","minLength":1,"maxLength":50},"PUK2":{"type":"string","minLength":1,"maxLength":50},"simVendor":{"type":"string","minLength":0,"maxLength":30},"simType":{"type":"string","minLength":0,"maxLength":50}}},"roamingLimitOptOut":{"properties":{"roamingLimitOptOut":{"type":"boolean"}}},"balances":{"type":"array","description":"A set of Balances, typically this will constitute the collection of balances against a single subscription","items":{"type":"object","properties":{"balanceName":{"type":"string","description":"The human readable identifier for a balance. The set of permitted balances is predefined and each has a unique name which used here effectively as a primary ID.","minLength":0,"maxLength":30},"outstandingAmount":{"type":"number","format":"float","description":"The number of billing units or equivalents (cash) which constitute the current balance. On a topup the initial amount is added to the outstandingAmount which is subsequently decremented towards 0 as consumption occurs ","minimum":0},"unitType":{"type":"string","description":"The unit in which the amount is expresses. Possible values: minutes, USD, EUR, MB, SMS, etc.. This need not necessarily represent the unit of billing which could be bigger. That is the unit may be KB but it is possible that the unit of billing is 5KB","minLength":0,"maxLength":10},"expirationDate":{"type":"string","format":"date-time","description":"The date on which the outstandingAmount will expire"},"creationDate":{"type":"string","format":"date-time","description":"The date on which the outstandingAmount will expire"},"againstServices":{"type":"array","description":"A list of unique serviceTypes","uniqueItems":true,"items":{"type":"string","description":"an instance of a service selected from the permitted set of services","enum":["Voice","SMS","Data"]},"minItems":1},"initial_amount":{"type":"number","format":"float","description":"The number of billing units or equivalents (cash) which constitute the initial amount of the balance when created/topped-up.","minimum":0}}},"uniqueItems":true,"minItems":0},"baocValues":{"type":"string","enum":["NOT_ACTIVE","ALL_OUTGOING_CALLS","ALL_OUTGOING_INTERNATIONAL_CALLS","OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HPLMN_COUNTRY","ALL_OUTGOING_CALLS_WHEN_ROAMING_OUTSIDE_HPLMN"]},"MSISDN_STATUS":{"type":"string","description":"An in usage status for an MSISDN","enum":["available","inuse"]},"coreAccountDetails":{"type":"object","required":["accountID","accountName"],"properties":{"accountID":{"type":"string","readOnly":true,"minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"accountName":{"type":"string","description":"A name which helps the viewer understand which account it is. This is typically human readable but does not need to be. Nor does it need to be unique within any given context. The decision on this is left solely up to the originator.","minLength":2,"maxLength":50},"accountRef":{"type":"string","description":"This is an identifier which uniquely identifies the account within the context of the defining entity. That is, it need only be unique within the context of the creating entity. Typically, this will be a reference (primary ID) within an external system.","minLength":3,"maxLength":40},"parentAccountID":{"type":"string","description":"In the event that the particular account is owned by another account it will be displayed here.","minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"adminID":{"type":"string","description":"The id of the administrator of the account. This ID can be used with the people collection to retrieve information on the administrator if any is held within the Tata systems","minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"wppID":{"type":"integer","description":"The identity of the Wholesale Pricing Plan which the account is to be subject to. This is a limited list and identity is a numeric code.","minimum":1,"maximum":5000},"propositions":{"type":"array","description":"The set of all propositions associated the account under consideration which may be assigned to subscriptions directly or indirectly associated with it.","readOnly":true,"items":{"type":"object","properties":{"propostionID":{"type":"string","minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"endUserSubscription":{"type":"boolean"}}},"minItems":0}},"additionalProperties":false},"IMSI":{"type":"string","minLength":3,"maxLength":15,"pattern":"^[0,2-7,9][0-9]{2,14}$"},"genericMin2Max5charString":{"type":"string","minLength":2,"maxLength":5},"supplementaryServiceSettings":{"type":"object","properties":{"clip":{"type":"boolean"},"clir":{"type":"boolean"},"multiParty":{"type":"boolean"},"callWaiting":{"type":"boolean"}},"description":"A set of barring status for a subscription. ","additionalProperties":false},"adminPassword":{"type":"string","pattern":"^([a-z][A-Z)(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,25})","description":"A restriction on a password where applicable"},"ICCID":{"type":"string","minLength":12,"maxLength":20,"pattern":"^89[0-9]{10,18}"},"ISO3166_A2":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[a-zA-Z]{2,}$","description":"An ISO ISO3166-1 Alpha2 standard two leter Country Code"},"ISO3166_A3":{"type":"string","minLength":3,"maxLength":3,"pattern":"^[a-zA-Z]{3}$","description":"An ISO ISO3166-1 Alpha3 standard three leter Country Code"},"new_propositionStatus":{"type":"string","enum":["Unpublished","Published","Retired"]},"SIMgeneralDetails":{"properties":{"status":{"type":"string","description":"The full set of permitted states. A given implementation (MVNO) may not avail of all of these. TODO: align with the final set from Teleena","enum":["Inventory","TestReady","ActivationReady","preActive","Active","Suspended","Dormant","DormantSuspended","Terminated"]},"iccid":{"type":"string","minLength":12,"maxLength":20,"pattern":"^89[0-9]{10,18}"},"msisdns":{"type":"array","description":"A simple list of unique MSISDNs","uniqueItems":true,"items":{"type":"string","minLength":3,"maxLength":15,"pattern":"^[1-9][0-9]{2,14}$"},"minItems":0},"imsis":{"type":"array","description":"A simple list of unique IMSIs.","uniqueItems":true,"items":{"type":"string","minLength":3,"maxLength":15,"pattern":"^[0,2-7,9][0-9]{2,14}$"},"minItems":0}}},"NotFoundError":{"type":"object","properties":{"errorCode":{"type":"integer","format":"int32","description":"Tata code for this error to allow referencing through documentation","minimum":1,"maximum":30},"title":{"type":"string","description":"A descriptive header for the error","minLength":10,"maxLength":200},"additionalInfo":{"type":"string","description":"unique uri for this error","minLength":25,"maxLength":200}},"additionalProperties":false},"ICCIDset":{"type":"array","description":"A simple unordered set of ICCIDs","items":{"type":"string","minLength":12,"maxLength":20,"pattern":"^89[0-9]{10,18}"},"uniqueItems":true,"minItems":0},"commercialOffer":{"properties":{"id":{"type":"string","readOnly":true,"minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","description":"A unique user defined, human readable name for the Commercial Offer.","minLength":0,"maxLength":30},"code":{"type":"string","description":"The human readable Commercial Offer Code","minLength":0,"maxLength":30},"isSharedBalance":{"type":"boolean","description":"flags the Commercial Offer as being suitable for a Shared Balance account"},"serviceTypeCode":{"type":"string","description":"within the base proposition the Commercial Offer components can be based on one or more of the core mobile services: Voice, SMS or Data.","enum":["Voice","SMS","Data"]},"subscriptionCode":{"type":"string","description":"A human readable code for the type of subscription identifing its intended use.","minLength":0,"maxLength":30},"quota":{"type":"number","format":"float","description":"The Quota identifies the Credit Limit of the commercial Offer. It is a monetary amount in the currency of the MVNO tenancy.","minimum":0,"maximum":100},"bundleAmount":{"type":"number","format":"float","description":"The number of billing units include in the Commercial Offer.","minimum":0,"maximum":100},"periodicity":{"type":"string","description":"Identifies the frequency at which the given Commercial Offer/Bundle is applied to a Subscription/Shared Balance.","enum":["MONTH"]},"notificationTriggers":{"type":"array","description":"A Commercial Offer comes with a set of predefined notification Trigger Points. These are applied per subscription but are defined within a commercial offer. This means that they are defined collectively and may be used for commercial or regulatory purposes and cannot be modified per subscription but collectively through the commercial offer definition.","items":{"type":"object","description":"A Notification Trigger is a marker that when reached/transitioned results in an action, typically a notification.","properties":{"applyedAgainst":{"type":"string","description":"A trigger can be one of two variants and apply to either a bundle or a quota. That is; it can either represent measure of consumption of one of two things; \r\n * BUNDLE:\t An effectively prepaid/provisioned volume of credit for a specific service. \r\n* QUOTA: \t A Credit Limit for the service. Once the subscription goes out of bundle, it starts accruing credit unit it reaches its Quota (credit Limit) the notification Trigger Point.","enum":["BUNDLE ","QUOTA"]},"trigger":{"type":"number","format":"float","description":"A count of the outstanding amount (as a percentage of total) at which a notification will be triggered","minimum":0,"maximum":100}}},"minItems":1},"whiteZoneList":{"type":"array","description":"A list of zones for which the identified balances can be used. The use of a whitelist is mutually exclusive  to the use se of a blacklist as both together is redundant.","uniqueItems":true,"items":{"type":"integer","format":"int32","minimum":1,"maximum":100},"minItems":1},"blackZoneList":{"type":"array","description":"A list of zones for which the identified balances can NOT be used. The use of a blacklist is mutually exclusive  to the use se of a whitelist as both together is redundant.","uniqueItems":true,"items":{"type":"integer","format":"int32","minimum":1,"maximum":100},"minItems":1}}},"APNset":{"type":"array","description":"A set of APNs.","items":{"type":"string","description":"A simple restriction on an APN format as per 3GPP TS 23.003 V14.3.0. TODO remove BOTH double slash in the pattern","maxLength":200,"pattern":"^((\\*)|([a-zB-Z0-9-_]*\\.([a-zB-Z0-9-_])*[a-zB-Z0-9]))$"},"minItems":0},"setOfAPNset":{"type":"array","description":"A set of named APN sets.","items":{"type":"object","properties":{"name":{"type":"string","minLength":0,"maxLength":50},"apnSet":{"type":"array","description":"A set of APNs.","items":{"type":"string","description":"A simple restriction on an APN format as per 3GPP TS 23.003 V14.3.0. TODO remove BOTH double slash in the pattern","maxLength":200,"pattern":"^((\\*)|([a-zB-Z0-9-_]*\\.([a-zB-Z0-9-_])*[a-zB-Z0-9]))$"},"minItems":0}},"required":["apnSet","name"]},"minItems":0},"camelProfile":{"properties":{"id":{"type":"string","minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","minLength":0,"maxLength":40},"regions":{"type":"array","uniqueItems":true,"items":{"type":"object","description":"A single referenceable region identifier","properties":{"id":{"type":"integer"},"name":{"type":"string","minLength":0,"maxLength":40}}},"minItems":0}},"description":"A named collection Camel Regions defining the Camel Profile for a single subscription"},"CO_NotifyTriggerPoint":{"properties":{"applyedAgainst":{"type":"string","description":"A trigger can be one of two variants and apply to either a bundle or a quota. That is; it can either represent measure of consumption of one of two things; \r\n * BUNDLE:\t An effectively prepaid/provisioned volume of credit for a specific service. \r\n* QUOTA: \t A Credit Limit for the service. Once the subscription goes out of bundle, it starts accruing credit unit it reaches its Quota (credit Limit) the notification Trigger Point.","enum":["BUNDLE ","QUOTA"]},"trigger":{"type":"number","format":"float","description":"A count of the outstanding amount (as a percentage of total) at which a notification will be triggered","minimum":0,"maximum":100}},"description":"A Notification Trigger is a marker that when reached/transitioned results in an action, typically a notification."},"SET_OF_IMSIS":{"type":"array","description":"A simple list of unique IMSIs.","items":{"type":"string","minLength":3,"maxLength":15,"pattern":"^[0,2-7,9][0-9]{2,14}$"},"uniqueItems":true,"minItems":0},"callbackSMSsetting":{"properties":{"callbackSMSsetting":{"type":"boolean"}}},"MSISDNdetails":{"type":"object","properties":{"msisdn":{"type":"string","minLength":3,"maxLength":15,"pattern":"^[1-9][0-9]{2,14}$"},"status":{"type":"string","description":"An in usage status for an MSISDN","enum":["available","inuse"]},"country":{"type":"string","description":"An ISO ISO3166-1 Alpha2 standard two leter Country Code","minLength":2,"maxLength":2,"pattern":"^[a-zA-Z]{2,}$"}},"description":"MSISDN details provide additional information beyond the MSISDN itself including its current Usage Status and the Country it is associated with."},"roamingSMSsetting":{"properties":{"roamingSMSsetting":{"type":"boolean"}}},"baseErrorElements":{"type":"object","properties":{"errorCode":{"type":"integer","format":"int32","minimum":1,"maximum":30},"title":{"type":"string","minLength":10,"maxLength":200}},"additionalProperties":false},"new_propositionStruct":{"required":["LifecycleCode","balanceProfile","id","name","offerProposition","status"],"properties":{"id":{"type":"string","minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","minLength":0,"maxLength":40},"status":{"type":"string","enum":["Unpublished","Published","Retired"]},"balanceProfile":{"type":"object","description":"a named reference to the balance profile applicable","properties":{"id":{"type":"string","readOnly":true,"minLength":36,"maxLength":36,"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string","minLength":0,"maxLength":50}},"required":["id","name"]},"offerP

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tata-communications/refs/heads/main/openapi/tata-communications-mobile-messaging-exchange-account-administration.json