swagger: '2.0' info: title: Customer Management description: This is Swagger UI environment generated for the TMF Customer Management specification version: '0.1' host: api.ooredoo.com basePath: /tmf-api/customerManagement/v1/ schemes: - https consumes: - application/json;charset=utf-8 produces: - application/json;charset=utf-8 security: - Oauth: - read:customer - write:customer - appKey: [] tags: - name: customer parameters: countrycodeParam: name: countryCode in: header type: string enum: - DZA - MDV - KWT - OMN - PSE - QAT - TUN required: false transactioIdParam: name: transactionId description: Transaction Id should be, an integer value and length should not greater than 20. in: header type: integer required: true activityNameParam: name: activityName in: header type: string required: true timeStampParam: name: timeStamp in: header type: string format: date-time required: true channelParam: name: channel in: header type: string description: Name of the channel. required: true viewCustomerInfoParam: name: viewCustomerInfo in: header type: string description: View additional info for a customer required: false applicationCode: name: applicationCode in: header type: string required: true applicationUserName: name: applicationUserName in: header type: string required: true paths: /customer: get: operationId: listCustomer summary: List or find Customer objects description: This operation list or find Customer entities tags: - customer parameters: - $ref: '#/parameters/transactioIdParam' - $ref: '#/parameters/countrycodeParam' - $ref: '#/parameters/activityNameParam' - $ref: '#/parameters/timeStampParam' - $ref: '#/parameters/channelParam' - $ref: '#/parameters/viewCustomerInfoParam' - name: fields description: Comma-separated properties to be provided in response required: false in: query type: string - name: offset description: Requested index for start of resources to be provided in response required: false in: query type: integer - name: limit description: Requested number of resources to be provided in response required: false in: query type: integer responses: '200': description: Success headers: X-Result-Count: description: Actual number of items returned in the response body type: integer X-Total-Count: description: Total number of items matching criteria type: integer schema: type: array items: $ref: '#/definitions/Customer' '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '404': description: Not Found schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' post: operationId: createCustomer summary: Creates a Customer description: This operation creates a Customer entity. tags: - customer parameters: - $ref: '#/parameters/transactioIdParam' - $ref: '#/parameters/countrycodeParam' - $ref: '#/parameters/activityNameParam' - $ref: '#/parameters/timeStampParam' - $ref: '#/parameters/channelParam' - name: action description: send CREATE , to create the customer required: true in: query type: string - name: customer description: The Customer to be created required: true schema: $ref: '#/definitions/Customer_Create' in: body responses: '201': description: Created schema: $ref: '#/definitions/Customer' headers: transactionId: description: Transaction Id should be, an string value type: string '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' /customer/{id}: get: operationId: retrieveCustomer summary: Retrieves a Customer by ID description: This operation retrieves a Customer entity. Attribute selection is enabled for all first level attributes. tags: - customer parameters: - $ref: '#/parameters/transactioIdParam' - $ref: '#/parameters/countrycodeParam' - $ref: '#/parameters/activityNameParam' - $ref: '#/parameters/timeStampParam' - $ref: '#/parameters/channelParam' - $ref: '#/parameters/viewCustomerInfoParam' - name: id description: Identifier of the Customer required: true type: string in: path - name: fields description: Comma-separated properties to provide in response required: false type: string in: query - name: name required: true type: string in: query - name: customerCode description: customer code required: false type: string in: query - name: agreement.id description: Will always get numeric value in string required: false type: string in: query - name: msisdn description: Customer mobile number required: false type: string in: query - name: addressRoles description: The type of customer address to be returned required: false type: string in: query - name: contactType description: use B to retrive billing contact medium, POSSIBLE VALUES "BILL,PREVIOUS,TEMPORARY,CONTRACT,MAGAZINE,DIRECTORY,SHIPMENT,USER" required: false type: string in: query - name: templateName description: template name for Customer Mgnt required: false type: string in: query - name: contactSeqno description: Sequence number required: false type: integer in: query responses: '200': description: Success schema: $ref: '#/definitions/Customer' headers: transactionId: description: Transaction Id should be, an string value type: string '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '404': description: Not Found schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' patch: operationId: patchCustomer summary: Updates partially a Customer description: This operation updates partially a Customer entity. tags: - customer parameters: - $ref: '#/parameters/transactioIdParam' - $ref: '#/parameters/countrycodeParam' - $ref: '#/parameters/activityNameParam' - $ref: '#/parameters/timeStampParam' - $ref: '#/parameters/channelParam' - name: action description: send UPDATE in field required: true type: string in: query - name: id description: Identifier of the Customer required: true type: string in: path - name: customer description: The Customer to be updated required: true schema: $ref: '#/definitions/Customer_Update' in: body responses: '200': description: Updated schema: $ref: '#/definitions/Customer' headers: transactionId: description: Transaction Id should be, an string value type: string '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '404': description: Not Found schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' delete: operationId: deleteCustomer summary: Deletes a Customer description: This operation deletes a Customer entity. tags: - customer parameters: - name: id description: Identifier of the Customer required: true type: string in: path responses: '204': description: Deleted '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '404': description: Not Found schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' securityDefinitions: Oauth: type: oauth2 authorizationUrl: https://api.ooredoo.com/tmf-api/oauth/token flow: implicit scopes: write:customer: modify customers read:customer: read customers appKey: type: apiKey name: appKey in: header definitions: AccountRef: type: object description: Account reference. A account may be a party account or a financial account. required: - name - id properties: id: type: string description: Unique identifier of the account href: type: string description: Reference of the account description: type: string description: Detailed description of the account name: type: string description: Name of the account '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. AgreementRef: type: object description: Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the agreement '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. required: - id Any: {} Characteristic: type: object description: Describes a given characteristic of an object or entity through a name/value pair. required: - name - value properties: name: type: string description: Name of the characteristic title: type: string description: Key of the title valueType: type: string description: Data type of the value of the characteristic value: $ref: '#/definitions/Any' description: The value of the characteristic '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name ContactMedium: type: object description: Indicates the contact medium that could be used to contact the party. required: - mediumType - characteristic - preferred properties: mediumType: type: string description: 'Type of the contact medium, such as: email address, telephone number, postal address' preferred: type: boolean description: If true, indicates that is the preferred contact medium isActive: type: boolean description: If contact medium is Active then ‘true’ else ‘false’. "mandatory field in cutomer get and post operation." characteristic: $ref: '#/definitions/MediumCharacteristic' description: Any additional characteristic(s) of this contact medium additionalInformation: $ref: '#/definitions/Characteristic' description: Any additional information of the customer validFor: $ref: '#/definitions/TimePeriod' description: The time period that the contact medium is valid for '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name CreditProfile: type: object description: Credit profile for the party (containing credit scoring, ...). By default only the current credit profile is retrieved. It can be used as a list to give the party credit profiles history, the first one in the list will be the current one. required: - creditProfileDate - validFor properties: creditProfileDate: type: string format: date-time description: The date the profile was established creditRiskRating: type: integer description: This is an integer whose value is used to rate the risk creditScore: type: integer description: A measure of a person or organizations creditworthiness calculated on the basis of a combination of factors such as their income and credit history validFor: $ref: '#/definitions/TimePeriod' description: The period for which the profile is valid '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name Customer: type: object required: - name - firstNameLocalLang - secondName - secondNameLocalLang - middleName - middleNameLocalLang - lastName - lastNameLocalLang - engagedParty - id - address - accountProducts - contactMedium - individualIdentification - '@baseType' properties: id: type: string description: Unique identifier for Customers href: type: string description: Url used to reference the customer. customerCode: type: string description: customer code name: type: string description: A word, term, or phrase by which the Customer is known and distinguished from other Customers. firstNameLocalLang: type: string description: Customer first name in local lang. secondName: type: string description: Customer second name secondNameLocalLang: type: string description: Customer second name in local lang. middleName: type: string description: Customer middle name middleNameLocalLang: type: string description: Customer middle name in local lang. title: type: string description: key of the title lastName: type: string description: Customer last name lastNameLocalLang: type: string description: Customer last name in local lang. firstName: type: string description: Customer first name status: type: string description: Used to track the lifecycle status of the customer. statusReason: type: string description: A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection. account: type: array items: $ref: '#/definitions/AccountRef' agreement: type: array items: $ref: '#/definitions/AgreementRef' characteristic: type: array items: $ref: '#/definitions/Characteristic' description: Describes the characteristic of a customer. contactMedium: type: array items: $ref: '#/definitions/ContactMedium' creditProfile: type: array items: $ref: '#/definitions/CreditProfile' engagedParty: $ref: '#/definitions/RelatedParty' description: The party - an organization or an individual - that is engaged as a customer. paymentMethod: type: array items: $ref: '#/definitions/PaymentMethodRef' relatedParty: type: array items: $ref: '#/definitions/RelatedParty' validFor: $ref: '#/definitions/TimePeriod' description: The time period that the Customer is valid for. individualIdentification: type: array items: $ref: '#/definitions/IndividualIdentification' description: Represents the prood of identfication. address: type: array items: $ref: '#/definitions/GeographicAddress' description: Represents the proof of identfication. accountProducts: type: array items: $ref: '#/definitions/Product' custCollectorName: type: string description: cash collector of the customer custPrepayment: type: boolean description: prepayment required bankStatementId: type: string description: Bank statement identity paymentType: type: string description: paymentType as cash or direct debit customerBalance: type: number description: Open balance amount isSearchComplete: type: boolean description: Indicates whether the whole list is returned or not '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name Customer_Create: type: object required: - name - firstNameLocalLang - secondName - secondNameLocalLang - middleName - middleNameLocalLang - lastName - lastNameLocalLang - engagedParty - address - contactMedium - individualIdentification - '@baseType' properties: customerCode: type: string description: customer code name: type: string description: A word, term, or phrase by which the Customer is known and distinguished from other Customers. firstNameLocalLang: type: string description: Customer first name in local lang. secondName: type: string description: Customer second name secondNameLocalLang: type: string description: Customer second name in local lang. middleName: type: string description: Customer middle name middleNameLocalLang: type: string description: Customer middle name in local lang. lastName: type: string description: Customer last name lastNameLocalLang: type: string description: Customer last name in local lang. title: type: string description: key of the title firstName: type: string description: Customer first name status: type: string description: Used to track the lifecycle status of the customer. statusReason: type: string description: A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection. account: type: array items: $ref: '#/definitions/AccountRef' agreement: type: array items: $ref: '#/definitions/AgreementRef' characteristic: type: array items: $ref: '#/definitions/Characteristic' description: Describes the characteristic of a customer. contactMedium: type: array items: $ref: '#/definitions/ContactMedium' creditProfile: type: array items: $ref: '#/definitions/CreditProfile' engagedParty: $ref: '#/definitions/RelatedParty' description: The party - an organization or an individual - that is engaged as a customer. paymentMethod: type: array items: $ref: '#/definitions/PaymentMethodRef' relatedParty: type: array items: $ref: '#/definitions/RelatedParty' validFor: $ref: '#/definitions/TimePeriod' description: The time period that the Customer is valid for. individualIdentification: type: array items: $ref: '#/definitions/IndividualIdentification' description: Represents the prood of identfication. address: type: array items: $ref: '#/definitions/GeographicAddress' description: Represents the proof of identfication. accountProducts: type: array items: $ref: '#/definitions/Product' custCollectorName: type: string description: cash collector of the customer custPrepayment: type: boolean description: prepayment required bankStatementId: type: string description: Bank statement identity paymentType: type: string description: paymentType as cash or direct debit '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name Customer_Update: type: object description: ' Skipped properties: id,href' required: - engagedParty - firstNameLocalLang - middleName - lastName properties: customerCode: type: string description: customer code name: type: string description: A word, term, or phrase by which the Customer is known and distinguished from other Customers. "Conditinal Mandatory field" firstNameLocalLang: type: string description: Customer first name in local lang. "Conditinal Mandatory field" secondName: type: string description: Customer second name. "Conditinal Mandatory field" secondNameLocalLang: type: string description: Customer second name in local lang. "Conditinal Mandatory field" middleName: type: string description: Customer middle name. "Conditinal Mandatory field" middleNameLocalLang: type: string description: Customer middle name in local lang. "Conditinal Mandatory field" lastName: type: string description: Customer last name. "Conditinal Mandatory field" lastNameLocalLang: type: string description: Customer last name in local lang. "Conditinal Mandatory field" firstName: type: string description: Customer first name status: type: string description: Used to track the lifecycle status of the customer. statusReason: type: string description: A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection. account: type: array items: $ref: '#/definitions/AccountRef' agreement: type: array items: $ref: '#/definitions/AgreementRef' characteristic: type: array items: $ref: '#/definitions/Characteristic' description: Describes the characteristic of a customer. contactMedium: type: array items: $ref: '#/definitions/ContactMedium' creditProfile: type: array items: $ref: '#/definitions/CreditProfile' engagedParty: $ref: '#/definitions/RelatedParty' description: The party - an organization or an individual - that is engaged as a customer. paymentMethod: type: array items: $ref: '#/definitions/PaymentMethodRef' relatedParty: type: array items: $ref: '#/definitions/RelatedParty' validFor: $ref: '#/definitions/TimePeriod' description: The time period that the Customer is valid for. individualIdentification: type: array items: $ref: '#/definitions/IndividualIdentification' description: Represents the prood of identfication. address: type: array items: $ref: '#/definitions/GeographicAddress' description: Represents the proof of identfication. accountProducts: type: array items: $ref: '#/definitions/Product' '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name EntityRef: type: object description: Entity reference schema to be use for all entityRef class. properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the related entity. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. required: - id MediumCharacteristic: type: object required: - country - emailAddress - phoneNumber description: Describes the contact medium characteristics that could be used to contact a party (an individual or an organization) properties: island: type: string description: BSS Island Code address: type: string description: Customer primary address address1: type: string description: Customer secondary address city: type: string description: The city contactType: type: string description: 'The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation…' country: type: string description: The country emailAddress: type: string description: Full email address in standard format faxNumber: type: string description: The fax number of the contact phoneNumber: type: string description: The primary phone number of the contact postCode: type: string description: Postcode socialNetworkId: type: string description: Identifier as a member of a social network stateOrProvince: type: string description: State or province street1: type: string description: Describes the street street2: type: string description: Complementary street description '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name PaymentMethodRef: type: object description: PaymentMethod reference. A payment method defines a specific mean of payment (e.g direct debit). properties: id: type: string description: Unique identifier of the payment mean href: type: string description: Reference of the payment mean name: type: string description: Name of the payment mean '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. required: - id RelatedParty: type: object description: Related Entity reference. A related party defines party or party role linked to a specific entity. required: - '@referredType' - id properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the related entity. role: type: string description: Role played by the related party isEngagedParty: type: string description: Check if the customer is an employee parentCode: type: string description: Customer code of the customer's parent '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. TimePeriod: type: object required: - endDateTime description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both properties: endDateTime: type: string format: date-time description: End of the time period, using IETC-RFC-3339 format startDateTime: type: string format: date-time description: Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end EventSubscription: type: object description: Sets the communication endpoint address the service instance must use to deliver notification information required: - id - callback properties: id: type: string description: Id of the listener callback: type: string description: The callback being registered. query: type: string description: additional data to be passed EventSubscriptionInput: type: object description: Sets the communication endpoint address the service instance must use to deliver notification information required: - callback properties: callback: type: string description: The callback being registered. query: type: string description: additional data to be passed CustomerCreateEvent: type: object description: The notification data structure properties: id: type: string description: Identifier of the resource involved in the event href: type: string description: Reference of the resource involved in the event eventId: type: string description: The identifier of the notification. eventTime: type: string format: date-time description: Time of the event occurrence. eventType: type: string description: The type of the notification. correlationId: type: string description: The correlation id for this event. domain: type: string description: The domain of the event. title: type: string description: The title of the event. description: type: string description: An explanatory of the event. priority: type: string description: A priority. timeOcurred: type: string format: date-time description: The time the event occured. event: description: The event payload linked to the involved resource object $ref: '#/definitions/CustomerCreateEventPayload' CustomerCreateEventPayload: type: object description: The event data structure properties: customer: description: The involved resource data for the event $ref: '#/definitions/Customer' CustomerAttributeValueChangeEvent: type: object description: The notification data structure properties: eventId: type: string description: The identifier of the notification. eventTime: type: string format: date-time description: Time of the event occurrence. eventType: type: string description: The type of the notification. correlationId: type: string description: The correlation id for this event. domain: type: string description: The domain of the event. title: type: string description: The title of the event. description: type: string description: An explanatory of the event. priority: type: string description: A priority. timeOcurred: type: string format: date-time description: The time the event occured. fieldPath: type: string description: The path identifying the object field concerned by this notification. event: description: The event payload linked to the involved resource object $ref: '#/definitions/CustomerAttributeValueChangeEventPayload' CustomerAttributeValueChangeEventPayload: type: object description: The event data structure properties: customer: description: The involved resource data for the event $ref: '#/definitions/Customer' CustomerStateChangeEvent: type: object description: The notification data structure properties: id: type: string description: Identifier of the resource involved in the event href: type: string description: Reference of the resource involved in the event eventId: type: string description: The identifier of the notification. eventTime: type: string format: date-time description: Time of the event occurrence. eventType: type: string description: The type of the notification. correlationId: type: string description: The correlation id for this event. domain: type: string description: The domain of the event. title: type: string description: The title of the event. description: type: string description: An explanatory of the event. priority: type: string description: A priority. timeOcurred: type: string format: date-time description: The time the event occured. event: description: The event payload linked to the involved resource object $ref: '#/definitions/CustomerStateChangeEventPayload' CustomerStateChangeEventPayload: type: object description: The event data structure properties: customer: description: The involved resource data for the event $ref: '#/definitions/Customer' CustomerDeleteEvent: type: object description: The notification data structure properties: id: type: string description: Identifier of the resource involved in the event href: type: string description: Reference of the resource involved in the event eventId: type: string description: The identifier of the notification. eventTime: type: string format: date-time description: Time of the event occurrence. eventType: type: string description: The type of the notification. correlationId: type: string description: The correlation id for this event. domain: type: string description: The domain of the event. title: type: string description: The title of the event. description: type: string description: An explanatory of the event. priority: type: string description: A priority. timeOcurred: type: string format: date-time description: The time the event occured. event: description: The event payload linked to the involved resource object $ref: '#/definitions/CustomerDeleteEventPayload' CustomerDeleteEventPayload: type: object description: The event data structure properties: customer: description: The involved resource data for the event $ref: '#/definitions/Customer' IndividualIdentification: type: object required: - identificationId - identificationType - validFor - identificationCode description: Represents our registration of information used as proof of identity by an individual (passport, national identity card, drivers license, social security number, birth certificate) properties: identificationId: type: string description: Identifier identificationCode: type: string description: identificationCode identificationType: type: string description: Identification type (passport, national identity card, drivers license, social security number, birth certificate) issuingAuthority: type: string description: 'Authority which has issued the identifier, such as: social security, town hall' issuingDate: type: string format: date-time description: Date at which the identifier was issued attachment: $ref: '#/definitions/AttachmentRefOrValue' description: It is a mandatory property for cutomer post operation validFor: $ref: '#/definitions/TimePeriod' description: The period for which the identification information is valid. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string description: A URI to a JSON-Schema file that defines additional attributes and relationships format: uri '@type': type: string description: When sub-classing, this defines the sub-class entity name AttachmentRefOrValue: type: object description: An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture. properties: id: type: string description: Unique identifier for this particular attachment href: type: string description: URI for this Attachment attachmentType: type: string description: Attachment type such as video, picture. "Mandatory when cutomer post operation" content: type: string description: The actual contents of the attachment object, if embedded, encoded as base64. "Mandatory when cutomer post operation" description: type: string description: A narrative text describing the content of the attachment mimeType: type: string description: Attachment mime type such as extension file for video, picture and document name: type: string description: The name of the attachment. "Mandatory when cutomer post operation" url: type: string description: Uniform Resource Locator, is a web page address (a subset of URI) size: $ref: '#/definitions/Quantity' description: The size of the attachment. validFor: $ref: '#/definitions/TimePeriod' description: The period of time for which the attachment is valid characteristic: $ref: '#/definitions/Characteristic' description: The chararcteristic of the attachment. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string description: A URI to a JSON-Schema file that defines additional attributes and relationships format: uri '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. GeographicLocationRefOrValue: type: object description: A GeographicLocation is a pure-virtual super-class to the GeoJSON-aligned geometries of Point (addresses and locations), MultiPoint, LineString (streets, highways and boundaries), MultiLineString and Polygon (countries, provinces, tracts of land). Use the @type attribute to specify which of these is being specified by the geometry attribute. required: - '@type' properties: id: type: string description: Unique identifier of the place href: type: string description: Unique reference of the place name: type: string description: A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home] '@baseType': example: ResourceSpecification type: string description: When sub-classing, this defines the super-class bbox: type: array description: A bounding box array that contains the geometry. The axes order follows the axes order of the geometry items: type: number '@schemaLocation': example: https://mycsp.com:8080/tmf-api/schema/Resource/LogicalResourceSpecification.schema.json type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string enum: - GeoJsonPoint - GeoJsonMultiPoint - GeoJsonLineString - GeoJsonMultiLineString - GeoJsonPolygon description: The name of the GeoJSON structure used in the geometry attribute '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. GeographicSubAddress: type: object description: "Representation of a GeographicSubAddress \nIt is used for addressing within a property in an urban area\ \ (country properties are often defined differently). It may refer to a building, a building cluster, or a floor of\ \ a multistory building." properties: id: type: string description: Unique Identifier of the subAddress href: type: string description: Reference of the subAddress buildingName: type: string description: allows for buildings that have well-known names block: type: string description: Block Details if Apartment has multiple blocks levelNumber: type: string description: used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2 levelType: type: string description: describes level types within a building name: type: string description: Name of the subAddress to identify it with a meaningful identification privateStreetName: type: string description: private streets internal to a property (e.g. a university) may have internal names that are not recorded by the land title office. privateStreetNumber: type: string description: private streets numbers internal to a private street subAddressType: type: string description: 'Type of subAddress : it can be a subunit or a private street' subUnitNumber: type: string description: '(obsolete - use the subUnit array) The discriminator used for the subunit often just a simple number e.g. FLAT 5, may also be a range' subUnitType: type: string description: '(obsolete - use the subUnit array) the type of subunit e.g.BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF' '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class Extensible name GeographicAddress: type: object description: Customer Address Details required: - city - name - poBox - stateOrProvinceId - stateOrProvince - localityId - wilayaId - wilaya properties: id: type: string description: Unique identifier of the place href: type: string format: uri description: Unique reference of the place city: type: string description: City that the address is in countryId: type: string description: Country Id country: type: string description: Country that the address is in locality: type: string description: An area of defined or undefined boundaries within a local authority or other legislatively defined area, usually rural or semi rural in nature. [ANZLIC-STREET], or a suburb, a bounded locality within a city, town or shire principally of urban character [ANZLICSTREET] name: type: string description: A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home] postcode: type: string description: descriptor for a postal delivery area, used to speed and simplify the delivery of mail (also know as zipcode) poBox: type: string description: PO BOX value captured in the screen years: type: string description: years at address language: type: string description: Language stateOrProvinceId: type: string description: the State or Province Id that the address is in stateOrProvince: type: string description: the State or Province that the address is in streetName: type: string description: Name of the street or other street type streetNr: type: string description: Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses streetNrLast: type: string description: Last number in a range of street numbers allocated to a property streetNrLastSuffix: type: string description: Last street number suffix for a ranged address streetNrSuffix: type: string description: the first street number suffix streetSuffix: type: string description: A modifier denoting a relative direction streetType: type: string description: 'alley, avenue, boulevard, brae, crescent, drive, highway, lane, terrace, parade, place, tarn, way, wharf ' wayNumber: type: integer description: Way Number localityId: type: integer description: Locality Id. wilayaId: type: integer description: Wilaya Id. wilaya: type: string description: Wilaya Name. Note:Please refer the WilayaName/WilayaArabicName in Customer LOV sheet for mobileApp/eShop latitude: type: string description: Latitude longitude: type: string description: Longitude isPrimaryAddress: type: boolean description: If this is Primary Address then ‘true’ else ‘false’ geographicLocation: $ref: '#/definitions/GeographicLocationRefOrValue' geographicSubAddress: type: array items: $ref: '#/definitions/GeographicSubAddress' characteristic: type: array items: $ref: '#/definitions/Characteristic' '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class Extensible name AgreementItemRef: type: object description: Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. required: - id properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. agreementItemId: type: string description: Identifier of the agreement name: type: string description: Name of the related entity. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. BillingAccountRef: type: object description: BillingAccount reference. A BillingAccount is a detailed description of a bill structure. required: - id properties: id: type: string description: Unique identifier of the billing account href: type: string description: Reference of the billing account name: type: string description: Name of the billing account '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. RelatedPlaceRefOrValue: type: object description: Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself required: - role properties: id: type: string description: Unique identifier of the place href: type: string description: Unique reference of the place name: type: string description: A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home] role: type: string '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. ProductOfferingRef: type: object description: ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information. required: - id properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the related entity. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. RelatedProductOrderItem: type: object description: RelatedProductOrderItem (ProductOrder item) .The product order item which triggered product creation/change/termination. required: - orderItemId - productOrderId properties: orderItemAction: type: string description: Action of the order item for this product orderItemId: type: string description: Identifier of the order item where the product was managed productOrderHref: type: string description: Reference of the related entity. productOrderId: type: string description: Unique identifier of a related entity. role: type: string description: role of the product order item for this product '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. Money: type: object description: A base / value business entity used to represent money properties: unit: type: string description: Currency (ISO4217 norm uses 3 letters to define the currency) value: type: number format: float description: A positive floating point number Price: type: object description: Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration. properties: percentage: type: number format: float description: Percentage to apply for ProdOfferPriceAlteration taxRate: type: number format: float description: Tax rate dutyFreeAmount: $ref: '#/definitions/Money' description: All taxes excluded amount (expressed in the given currency) taxIncludedAmount: $ref: '#/definitions/Money' description: All taxes included amount (expressed in the given currency) '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name ProductOfferingPriceRef: type: object description: ProductPriceOffering reference. An amount, usually of money, that is asked for or allowed when a ProductOffering is bought, rented, or leased required: - id properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the related entity. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. PriceAlteration: type: object description: Is an amount, usually of money, that modifies the price charged for an order item. required: - price - priceType properties: applicationDuration: type: integer description: Duration during which the alteration applies on the order item price (for instance 2 months free of charge for the recurring charge) description: type: string description: A narrative that explains in detail the semantics of this order item price alteration name: type: string description: Name of the order item price alteration priceType: type: string description: A category that describes the price such as recurring, one time and usage. priority: type: integer description: Priority level for applying this alteration among all the defined alterations on the order item price recurringChargePeriod: type: string description: Could be month, week... unitOfMeasure: type: string description: Could be minutes, GB... price: $ref: '#/definitions/Price' productOfferingPrice: $ref: '#/definitions/ProductOfferingPriceRef' '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name ProductRelationship: type: object description: Linked products to the one instantiate, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful required: - product - relationshipType properties: relationshipType: type: string description: Type of the product relationship, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful product: $ref: '#/definitions/Product' '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name TargetProductSchema: type: object description: The reference object to the schema and type of target product which is described by product specification required: - '@schemaLocation' - '@type' properties: '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string description: This field provides a link to the schema describing the target product '@type': type: string description: Class type of the target product ProductSpecificationRef: type: object description: 'Product specification reference: A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.' required: - id properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the related entity. version: type: string description: Version of the product specification targetProductSchema: $ref: '#/definitions/TargetProductSchema' description: A target product schema reference. The reference object to the schema and type of target product which is described by product specification. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. ProductTerm: type: object description: Description of a productTerm linked to this product. This represent a commitment with a duration properties: description: type: string description: Description of the productTerm name: type: string description: Name of the productTerm duration: $ref: '#/definitions/Quantity' description: Duration of the productTerm validFor: $ref: '#/definitions/TimePeriod' description: productTerm validity period '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name ResourceRef: type: object required: - id - name properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the resource value: type: string description: 'The resource value that can be used to identify a resource with a public key (e.g.: a tel nr, an msisdn)' '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. ServiceRef: type: object description: Service reference, for when Service is used by other entities required: - id properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the related entity. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. ProductStatusType: type: string description: Possible values for the status of the product enum: - created - pendingActive - cancelled - active - pendingTerminate - terminated - suspended - 'aborted ' Product: required: - status - statusReason - id - realizingResource - '@type' - '@referredType' type: object description: A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s). properties: id: type: string description: Unique identifier of the product href: type: string description: Reference of the product description: type: string description: Is the description of the product. It could be copied from the description of the Product Offering. isBundle: type: boolean description: If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering. isCustomerVisible: type: boolean description: If true, the product is visible by the customer. name: type: string description: Name of the product. It could be the same as the name of the product offering orderDate: type: string format: date-time description: Is the date when the product was ordered productSerialNumber: type: string description: Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router. startDate: type: string format: date-time description: Is the date from which the product starts terminationDate: type: string format: date-time description: Is the date when the product was terminated agreement: type: array items: $ref: '#/definitions/AgreementItemRef' billingAccount: $ref: '#/definitions/BillingAccountRef' place: type: array items: $ref: '#/definitions/RelatedPlaceRefOrValue' product: type: array items: $ref: '#/definitions/ProductRefOrValue' productCharacteristic: type: array items: $ref: '#/definitions/Characteristic' productOffering: $ref: '#/definitions/ProductOfferingRef' productOrderItem: type: array items: $ref: '#/definitions/RelatedProductOrderItem' productPrice: type: array items: $ref: '#/definitions/ProductPrice' productRelationship: type: array items: $ref: '#/definitions/ProductRelationship' productSpecification: $ref: '#/definitions/ProductSpecificationRef' productTerm: type: array items: $ref: '#/definitions/ProductTerm' realizingResource: type: array items: $ref: '#/definitions/ResourceRef' realizingService: type: array items: $ref: '#/definitions/ServiceRef' relatedParty: type: array items: $ref: '#/definitions/RelatedParty' status: $ref: '#/definitions/ProductStatusType' description: Is the lifecycle status of the product. statusReason: type: string description: Reason if the product status is terminated or barred. bankStatementId: type: string description: Bank statement identity paymentType: type: string description: paymentType as cash or direct debit '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. ProductPrice: type: object description: An amount, usually of money, that represents the actual price paid by a Customer for a purchase, a rent or a lease of a Product. The price is valid for a defined period of time. required: - price - priceType properties: description: type: string description: A narrative that explains in detail the semantics of this product price. name: type: string description: A short descriptive name such as "Subscription price". priceType: type: string description: A category that describes the price, such as recurring, discount, allowance, penalty, and so forth. recurringChargePeriod: type: string description: Could be month, week... unitOfMeasure: type: string description: Could be minutes, GB... billingAccount: $ref: '#/definitions/BillingAccountRef' price: $ref: '#/definitions/Price' productOfferingPrice: $ref: '#/definitions/ProductOfferingPriceRef' productPriceAlteration: type: array items: $ref: '#/definitions/PriceAlteration' '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name ProductRefOrValue: type: object description: A product to be created defined by value or existing defined by reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the product entity and not the RelatedProductRefOrValue class itself properties: id: type: string description: Unique identifier of the product href: type: string description: Reference of the product description: type: string description: Is the description of the product. It could be copied from the description of the Product Offering. isBundle: type: boolean description: If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering. isCustomerVisible: type: boolean description: If true, the product is visible by the customer. name: type: string description: Name of the product. It could be the same as the name of the product offering orderDate: type: string format: date-time description: Is the date when the product was ordered productSerialNumber: type: string description: Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router. startDate: type: string format: date-time description: Is the date from which the product starts terminationDate: type: string format: date-time description: Is the date when the product was terminated agreement: type: array items: $ref: '#/definitions/AgreementItemRef' billingAccount: $ref: '#/definitions/BillingAccountRef' place: type: array items: $ref: '#/definitions/RelatedPlaceRefOrValue' product: type: array items: $ref: '#/definitions/ProductRefOrValue' productCharacteristic: type: array items: $ref: '#/definitions/Characteristic' productOffering: $ref: '#/definitions/ProductOfferingRef' productOrderItem: type: array items: $ref: '#/definitions/RelatedProductOrderItem' productPrice: type: array items: $ref: '#/definitions/ProductPrice' productRelationship: type: array items: $ref: '#/definitions/ProductRelationship' productSpecification: $ref: '#/definitions/ProductSpecificationRef' productTerm: type: array items: $ref: '#/definitions/ProductTerm' realizingResource: type: array items: $ref: '#/definitions/ResourceRef' realizingService: type: array items: $ref: '#/definitions/ServiceRef' relatedParty: type: array items: $ref: '#/definitions/RelatedParty' status: $ref: '#/definitions/ProductStatusType' description: Is the lifecycle status of the product. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. Quantity: type: object description: An amount in a given unit properties: amount: default: 1 type: number format: float description: Numeric value in a given unit units: type: string description: Unit Error: description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx) type: object required: - code - reason properties: code: type: string description: Application relevant detail, defined in the API or a common list. reason: type: string description: Explanation of the reason for the error which can be shown to a client user. message: type: string description: More details and corrective actions related to the error which can be shown to a client user. status: type: string description: HTTP Error code extension referenceError: type: string format: uri description: URI of documentation describing the error. custCollectorName: type: string description: cash collector of the customer custPrepayment: type: boolean description: prepayment required bankStatementId: type: string description: Bank statement identity paymentType: type: string description: paymentType as cash or direct debit '@baseType': type: string description: When sub-classing, this defines the super-class. '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name.