swagger: '2.0' info: title: Digital Identity Management description: '## TMF API Reference: TMF720 - Digital Identity Management Digital Identity Management API goal is to provide the ability to manage a digital identity. This digital identity allows to identify an individual, a resource, or a partyRole (a specific role - or set of roles - for a given individual). A digital identity is associated with credential/authentification method. These credential/authentification methods should be extensible to describe all type of authentification method like login/password, biometric, token, etc.. A contact medium is also associated with digital identity (or directly at credential level) to manage credential recovery UCs. ' version: 4.0.0 host: api.ooredoo.com basePath: /tmf-api/digitalIdentityManagement/v1/ schemes: - https consumes: - application/json;charset=utf-8 produces: - application/json;charset=utf-8 security: - Oauth: - read:digital identity - write:digital identity - appKey: [] tags: - name: digitalIdentity - name: notification listeners (client side) - name: events subscription parameters: countryCode: name: countryCode in: header type: string enum: - DZA - MDV - OMN - PSE - QAT - TUN required: false transactionId: name: transactionId description: Transaction Id should be, an string value in: header type: string required: true applicationCode: name: applicationCode in: header type: string required: true applicationUserName: name: applicationUserName in: header type: string required: true paths: /digitalIdentity: get: operationId: listDigitalIdentity summary: List or find DigitalIdentity objects description: This operation list or find DigitalIdentity entities tags: - digitalIdentity parameters: - 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/DigitalIdentity' '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: createDigitalIdentity summary: Creates a DigitalIdentity description: This operation creates a DigitalIdentity entity. tags: - digitalIdentity parameters: - name: digitalIdentity description: The DigitalIdentity to be created required: true schema: $ref: '#/definitions/DigitalIdentity_Create' in: body responses: '201': description: Created schema: $ref: '#/definitions/DigitalIdentity' '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' /digitalIdentity/{id}: get: operationId: retrieveDigitalIdentity summary: Retrieves a DigitalIdentity by ID description: This operation retrieves a DigitalIdentity entity. Attribute selection is enabled for all first level attributes. tags: - digitalIdentity parameters: - name: id description: Identifier of the DigitalIdentity required: true type: string in: path - name: fields description: Comma-separated properties to provide in response required: false type: string in: query - name: msisdn description: msisdn required: true type: string in: query - $ref: '#/parameters/transactionId' - $ref: '#/parameters/countryCode' - $ref: '#/parameters/applicationCode' - $ref: '#/parameters/applicationUserName' responses: '200': description: Success schema: $ref: '#/definitions/DigitalIdentity' 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: deleteDigitalIdentity summary: Deletes a DigitalIdentity description: This operation deletes a DigitalIdentity entity. tags: - digitalIdentity parameters: - name: id description: Identifier of the DigitalIdentity 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' patch: operationId: patchDigitalIdentity summary: Updates partially a DigitalIdentity description: This operation updates partially a DigitalIdentity entity. tags: - digitalIdentity parameters: - name: id description: Identifier of the DigitalIdentity required: true type: string in: path - name: digitalIdentity description: The DigitalIdentity to be updated required: true schema: $ref: '#/definitions/DigitalIdentity_Update' in: body - $ref: '#/parameters/transactionId' - $ref: '#/parameters/countryCode' - $ref: '#/parameters/applicationCode' - $ref: '#/parameters/applicationUserName' responses: '200': description: Updated schema: $ref: '#/definitions/DigitalIdentity' 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' /hub: post: operationId: registerListener summary: Register a listener description: Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics. tags: - events subscription parameters: - name: data schema: $ref: '#/definitions/EventSubscriptionInput' required: true in: body description: Data containing the callback endpoint to deliver the information responses: '201': description: Subscribed schema: $ref: '#/definitions/EventSubscription' '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' /hub/{id}: delete: operationId: unregisterListener summary: Unregister a listener description: Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics. tags: - events subscription parameters: - name: id type: string required: true in: path description: The id of the registered listener 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' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' /listener/digitalIdentityCreateEvent: post: operationId: listenToDigitalIdentityCreateEvent summary: Client listener for entity DigitalIdentityCreateEvent description: Example of a client listener for receiving the notification DigitalIdentityCreateEvent tags: - notification listeners (client side) parameters: - name: data required: true in: body description: The event data schema: $ref: '#/definitions/DigitalIdentityCreateEvent' responses: '201': description: Notified schema: $ref: '#/definitions/EventSubscription' '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' /listener/digitalIdentityStateChangeEvent: post: operationId: listenToDigitalIdentityStateChangeEvent summary: Client listener for entity DigitalIdentityStateChangeEvent description: Example of a client listener for receiving the notification DigitalIdentityStateChangeEvent tags: - notification listeners (client side) parameters: - name: data required: true in: body description: The event data schema: $ref: '#/definitions/DigitalIdentityStateChangeEvent' responses: '201': description: Notified schema: $ref: '#/definitions/EventSubscription' '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' /listener/digitalIdentityDeleteEvent: post: operationId: listenToDigitalIdentityDeleteEvent summary: Client listener for entity DigitalIdentityDeleteEvent description: Example of a client listener for receiving the notification DigitalIdentityDeleteEvent tags: - notification listeners (client side) parameters: - name: data required: true in: body description: The event data schema: $ref: '#/definitions/DigitalIdentityDeleteEvent' responses: '201': description: Notified schema: $ref: '#/definitions/EventSubscription' '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' /listener/digitalIdentityAttributeValueChangeEvent: post: operationId: listenToDigitalIdentityAttributeValueChangeEvent summary: Client listener for entity DigitalIdentityAttributeValueChangeEvent description: Example of a client listener for receiving the notification DigitalIdentityAttributeValueChangeEvent tags: - notification listeners (client side) parameters: - name: data required: true in: body description: The event data schema: $ref: '#/definitions/DigitalIdentityAttributeValueChangeEvent' responses: '201': description: Notified schema: $ref: '#/definitions/EventSubscription' '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:digital identity: modify digital identity operations read:digital identity: read digital identity operations appKey: type: apiKey name: appKey in: header definitions: Addressable: type: object description: Base schema for adressable entities properties: id: type: string description: unique identifier href: type: string description: Hyperlink reference '@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 Attachment: type: object description: Complements the description of an element (for instance a product) through video, pictures... properties: id: example: 4aafacbd-11ff-4dc8-b445-305f2215715f type: string description: Unique identifier for this particular attachment href: example: http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f type: string format: uri description: URI for this Attachment attachmentType: example: video type: string description: Attachment type such as video, picture content: type: string format: base64 description: The actual contents of the attachment object, if embedded, encoded as base64 description: example: Photograph of the Product 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 url: example: http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f type: string format: uri 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 '@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 AttachmentRef: type: object description: Attachment reference. An attachment complements the description of an element (for instance a product) through video, pictures properties: id: type: string description: Unique-Identifier for this attachment href: type: string format: uri description: URL serving as reference for the attachment resource description: type: string description: A narrative text describing the content of the attachment name: type: string description: Name of the related entity. url: type: string format: uri description: Link to the attachment media/content '@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 '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. required: - id 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: example: 4aafacbd-11ff-4dc8-b445-305f2215715f type: string description: Unique identifier for this particular attachment href: example: http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f type: string format: uri description: URI for this Attachment attachmentType: example: video type: string description: Attachment type such as video, picture content: type: string format: base64 description: The actual contents of the attachment object, if embedded, encoded as base64 description: example: Photograph of the Product 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 url: example: http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f type: string format: uri 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 '@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 '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. BiometricCredential: type: object description: A Credential based on a login and a password. properties: id: type: string description: an identifier for a credential/authentification method for this digital identity biometricSubType: type: string description: 'a biometric sub type when required like for finger: thumb, index, ring , pinkyFinger, etc ' biometricType: type: string description: 'a biometric type like finger, iris, face, etc... ' state: type: string description: Used to indicate the current lifecycle state of this credential (like active, inactive, expired). trustLevel: type: string description: A level of assurance associated with this credential - this could be used to limit/allow specific permission based on this trust level. attachment: type: array items: $ref: '#/definitions/AttachmentRefOrValue' description: List of attachment(s) associated with this biometric data. contactMedium: type: array items: $ref: '#/definitions/DigitalIdentityContactMedium' description: List of contact medium associated with this credential/authentification method. validFor: $ref: '#/definitions/TimePeriod' description: The period for which this digial identity 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 Extensible name Credential: type: object description: Credential is a class that allow to describe an authentification method. required: - id - '@type' - currentPasscode - newPasscode properties: id: type: string description: an identifier for a credential/authentification method for this digital identity state: type: string description: Used to indicate the current lifecycle state of this credential (like active, inactive, expired). trustLevel: type: string description: A level of assurance associated with this credential - this could be used to limit/allow specific permission based on this trust level. contactMedium: type: array items: $ref: '#/definitions/DigitalIdentityContactMedium' description: List of contact medium associated with this credential/authentification method. validFor: $ref: '#/definitions/TimePeriod' description: The period for which this digial identity is valid. currentPasscode: type: string description: currentPasscode . newPasscode: type: string description: newPasscod '@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: In Credential Object, for Maldives Type can be of 4 types PhoneCredential,LoginPasswordCredential,EmailPasswordCredential,EFaasCredential login: type: string description: this attribute will have value when @type will be LoginPasswordCredential and EFaasCredential password: type: string description: this attribute will have value when @type will be LoginPasswordCredential email: type: string description: this attribute will have value when @type will be EmailPasswordCredential redirectUrl: type: string description: this attribute will have value when @type will be EFaasCredential DigitalIdentity: type: object description: DigitalIdentity is a class that allow to describe a digital identity for an individual or a resource or a specific party role. One of these three MUST be provided. If an individual is provided, this identity will be for all her/his partyRole. To avoid confusion it is recommended in this case to not provide partyRoleIdentified. properties: id: type: string description: unique identifier href: type: string description: Hyperlink reference creationDate: type: string format: date-time description: Date and time of the Digital Identity creation (timestamp) lastUpdate: type: string format: date-time description: Date and time of the Digital Identity last update (timestamp) nickname: type: string description: Nickname associated to this digital identity (like Juanito17 or the QuebecMoose etc...). status: type: string description: Used to indicate the current lifecycle status of this digital identity (unknown, active, suspended, archived). attachment: type: array items: $ref: '#/definitions/AttachmentRefOrValue' description: List of attachment associated with this digital identity. Could be use to link a cute cat or moose picture to a digital identity for example. contactMedium: type: array items: $ref: '#/definitions/DigitalIdentityContactMedium' description: List of contact medium associated with the digital identity. credential: type: array items: $ref: '#/definitions/Credential' description: A list of credential/authentification method that are used for this digital identity. individualIdentified: $ref: '#/definitions/PartyRef' description: 'Individual identified by this digital identity. In this case the digitial identity is for all her/his role. It is recommended to not provide partyRoleIdentified if individualIdentified provided ' partyRoleIdentified: type: array items: $ref: '#/definitions/RelatedParty' description: Related Parties who are identified by this digital identity. relatedParty: type: array items: $ref: '#/definitions/RelatedParty' description: Parties who have an interest in this digital identity (like the organization in charge of providing identity). This is NOT the party identified by this digital identity. resourceIdentified: $ref: '#/definitions/ResourceRef' description: Resource identified by this digital identity. It is recommended to no provided individualIdentified or partyRoleIdentified if resourceIdentified provided. validFor: $ref: '#/definitions/TimePeriod' description: The period for which this digial identity 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 DigitalIdentity_Create: type: object description: 'DigitalIdentity is a class that allow to describe a digital identity for an individual or a resource or a specific party role. One of these three MUST be provided. If an individual is provided, this identity will be for all her/his partyRole. To avoid confusion it is recommended in this case to not provide partyRoleIdentified. Skipped properties: id,href,status,digitalIdentityDate' required: - credential properties: creationDate: type: string format: date-time description: Date and time of the Digital Identity creation (timestamp) lastUpdate: type: string format: date-time description: Date and time of the Digital Identity last update (timestamp) nickname: type: string description: Nickname associated to this digital identity (like Juanito17 or the QuebecMoose etc...). attachment: type: array items: $ref: '#/definitions/AttachmentRefOrValue' description: List of attachment associated with this digital identity. Could be use to link a cute cat or moose picture to a digital identity for example. contactMedium: type: array items: $ref: '#/definitions/DigitalIdentityContactMedium' description: List of contact medium associated with the digital identity. credential: type: array items: $ref: '#/definitions/Credential' minItems: 1 description: A list of credential/authentification method that are used for this digital identity. individualIdentified: $ref: '#/definitions/PartyRef' description: 'Individual identified by this digital identity. In this case the digitial identity is for all her/his role. It is recommended to not provide partyRoleIdentified if individualIdentified provided ' partyRoleIdentified: type: array items: $ref: '#/definitions/RelatedParty' description: Related Parties who are identified by this digital identity. relatedParty: type: array items: $ref: '#/definitions/RelatedParty' description: Parties who have an interest in this digital identity (like the organization in charge of providing identity). This is NOT the party identified by this digital identity. resourceIdentified: $ref: '#/definitions/ResourceRef' description: Resource identified by this digital identity. It is recommended to no provided individualIdentified or partyRoleIdentified if resourceIdentified provided. validFor: $ref: '#/definitions/TimePeriod' description: The period for which this digial identity 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 DigitalIdentity_Update: type: object description: 'DigitalIdentity is a class that allow to describe a digital identity for an individual or a resource or a specific party role. One of these three MUST be provided. If an individual is provided, this identity will be for all her/his partyRole. To avoid confusion it is recommended in this case to not provide partyRoleIdentified. Skipped properties: id,href' properties: creationDate: type: string format: date-time description: Date and time of the Digital Identity creation (timestamp) lastUpdate: type: string format: date-time description: Date and time of the Digital Identity last update (timestamp) nickname: type: string description: Nickname associated to this digital identity (like Juanito17 or the QuebecMoose etc...). status: type: string description: Used to indicate the current lifecycle status of this digital identity (unknown, active, suspended, archived). attachment: type: array items: $ref: '#/definitions/AttachmentRefOrValue' description: List of attachment associated with this digital identity. Could be use to link a cute cat or moose picture to a digital identity for example. contactMedium: type: array items: $ref: '#/definitions/DigitalIdentityContactMedium' description: List of contact medium associated with the digital identity. credential: type: array items: $ref: '#/definitions/Credential' description: A list of credential/authentification method that are used for this digital identity. individualIdentified: $ref: '#/definitions/PartyRef' description: 'Individual identified by this digital identity. In this case the digitial identity is for all her/his role. It is recommended to not provide partyRoleIdentified if individualIdentified provided ' partyRoleIdentified: type: array items: $ref: '#/definitions/RelatedParty' description: Related Parties who are identified by this digital identity. relatedParty: type: array items: $ref: '#/definitions/RelatedParty' description: Parties who have an interest in this digital identity (like the organization in charge of providing identity). This is NOT the party identified by this digital identity. resourceIdentified: $ref: '#/definitions/ResourceRef' description: Resource identified by this digital identity. It is recommended to no provided individualIdentified or partyRoleIdentified if resourceIdentified provided. validFor: $ref: '#/definitions/TimePeriod' description: The period for which this digial identity 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 DigitalIdentityContactMedium: type: object description: Indicates the contact medium that could be used to contact the party. required: - '@type' - id properties: id: type: string description: Identifier for this contact medium. contactType: type: string description: Type of the contact medium to qualifiy it like pro email / personal email. This is not used to define the contact medium used. preferred: type: boolean description: If true, indicates that is the preferred contact medium 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 Extensible name mobileNumber: type: string description: Mobile Number if contact medium type is mobile EmailMedium: type: object description: Describes an email that could be used to contact a party (an individual or an organization) properties: id: type: string description: Identifier for this contact medium. contactType: type: string description: Type of the contact medium to qualifiy it like pro email / personal email. This is not used to define the contact medium used. emailAddress: type: string description: Full email address in standard format preferred: type: boolean description: If true, indicates that is the preferred contact medium 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 Extensible name EntityRef: type: object description: Entity reference schema to be use for all entityRef class. properties: id: type: string description: unique identifier href: type: string description: Hyperlink reference 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 Extensible name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. required: - id Extensible: type: object description: Base Extensible schema for use in TMForum Open-APIs properties: '@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 LoginPasswordCredential: type: object description: A Credential based on a login and a password. properties: id: type: string description: an identifier for a credential/authentification method for this digital identity login: type: string description: credential login password: type: string description: credential password - must be in write only state: type: string description: Used to indicate the current lifecycle state of this credential (like active, inactive, expired). trustLevel: type: string description: A level of assurance associated with this credential - this could be used to limit/allow specific permission based on this trust level. contactMedium: type: array items: $ref: '#/definitions/DigitalIdentityContactMedium' description: List of contact medium associated with this credential/authentification method. validFor: $ref: '#/definitions/TimePeriod' description: The period for which this digial identity 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 Extensible name NetworkCredential: type: object description: A Credential based on a login and a password. properties: id: type: string description: an identifier for a credential/authentification method for this digital identity password: type: string description: credential password to use resource based credential - must be in write only state: type: string description: Used to indicate the current lifecycle state of this credential (like active, inactive, expired). trustLevel: type: string description: A level of assurance associated with this credential - this could be used to limit/allow specific permission based on this trust level. contactMedium: type: array items: $ref: '#/definitions/DigitalIdentityContactMedium' description: List of contact medium associated with this credential/authentification method. resource: $ref: '#/definitions/ResourceRef' description: Resource used by a network credential. validFor: $ref: '#/definitions/TimePeriod' description: The period for which this digial identity 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 Extensible name PartyRef: type: object required: - '@referredType' - id properties: id: type: string description: unique identifier href: type: string description: Hyperlink reference 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 Extensible name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. PhoneMedium: type: object description: Describes a phone number that could be used to contact a party (an individual or an organization) properties: id: type: string description: Identifier for this contact medium. contactType: type: string description: Type of the contact medium to qualifiy it like pro email / personal email. This is not used to define the contact medium used. phoneNumber: type: string description: The phone number of the contact preferred: type: boolean description: If true, indicates that is the preferred contact medium 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 Extensible name 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 '@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 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 href: type: string description: Hyperlink reference name: type: string description: Name of the related entity. role: type: string description: Role played by the related party '@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 '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. ResourceRef: type: object required: - id properties: id: type: string description: unique identifier href: type: string description: Hyperlink reference 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 Extensible name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. TimePeriod: type: object description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both properties: endDateTime: example: '1985-04-12T23:20:50.52Z' type: string format: date-time description: End of the time period, using IETC-RFC-3339 format startDateTime: example: '1985-04-12T23:20:50.52Z' 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 '@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 TokenCredential: type: object description: A Credential based on a token. properties: id: type: string description: an identifier for a credential/authentification method for this digital identity login: type: string description: credential login state: type: string description: Used to indicate the current lifecycle state of this credential (like active, inactive, expired). tokenCredential: type: string description: Token credential identifier trustLevel: type: string description: A level of assurance associated with this credential - this could be used to limit/allow specific permission based on this trust level. contactMedium: type: array items: $ref: '#/definitions/DigitalIdentityContactMedium' description: List of contact medium associated with this credential/authentification method. validFor: $ref: '#/definitions/TimePeriod' description: The period for which this digial identity 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 Extensible name 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 DigitalIdentityCreateEvent: type: object description: The notification data structure properties: event: description: The event payload linked to the involved resource object $ref: '#/definitions/DigitalIdentityCreateEventPayload' 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 explnatory of the event. priority: type: string description: A priority. timeOcurred: type: string format: date-time description: The time the event occured. DigitalIdentityCreateEventPayload: type: object description: The event data structure properties: digitalIdentity: description: The involved resource data for the event $ref: '#/definitions/DigitalIdentity' DigitalIdentityStateChangeEvent: type: object description: The notification data structure properties: event: description: The event payload linked to the involved resource object $ref: '#/definitions/DigitalIdentityStateChangeEventPayload' 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 explnatory of the event. priority: type: string description: A priority. timeOcurred: type: string format: date-time description: The time the event occured. DigitalIdentityStateChangeEventPayload: type: object description: The event data structure properties: digitalIdentity: description: The involved resource data for the event $ref: '#/definitions/DigitalIdentity' DigitalIdentityDeleteEvent: type: object description: The notification data structure properties: event: description: The event payload linked to the involved resource object $ref: '#/definitions/DigitalIdentityDeleteEventPayload' 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 explnatory of the event. priority: type: string description: A priority. timeOcurred: type: string format: date-time description: The time the event occured. DigitalIdentityDeleteEventPayload: type: object description: The event data structure properties: digitalIdentity: description: The involved resource data for the event $ref: '#/definitions/DigitalIdentity' DigitalIdentityAttributeValueChangeEvent: 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 explnatory 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/DigitalIdentityAttributeValueChangeEventPayload' DigitalIdentityAttributeValueChangeEventPayload: type: object description: The event data structure properties: digitalIdentity: description: The involved resource data for the event $ref: '#/definitions/DigitalIdentity' 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. '@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.