Hi Everyone,
I'm reviewing the latest version 5 specs for 632 (party management) and 629 (customer management).
I've noticed that while 632 provides subclassed characteristics (string, bool, number etc.) 629 does not.
TMF632 Party Management v5
Characteristic:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Describes a given characteristic of an object or entity through a name/value pair.
properties:
id:
type: string
description: Unique identifier of the characteristic
name:
type: string
description: Name of the characteristic
valueType:
type: string
description: Data type of the value of the characteristic
characteristicRelationship:
type: array
items:
$ref: '#/components/schemas/CharacteristicRelationship'
discriminator:
propertyName: '@type'
mapping:
Characteristic: '#/components/schemas/Characteristic'
StringCharacteristic: '#/components/schemas/StringCharacteristic'
StringArrayCharacteristic: '#/components/schemas/StringArrayCharacteristic'
ObjectCharacteristic: '#/components/schemas/ObjectCharacteristic'
ObjectArrayCharacteristic: '#/components/schemas/ObjectArrayCharacteristic'
NumberCharacteristic: '#/components/schemas/NumberCharacteristic'
NumberArrayCharacteristic: '#/components/schemas/NumberArrayCharacteristic'
IntegerCharacteristic: '#/components/schemas/IntegerCharacteristic'
IntegerArrayCharacteristic: '#/components/schemas/IntegerArrayCharacteristic'
FloatCharacteristic: '#/components/schemas/FloatCharacteristic'
BooleanCharacteristic: '#/components/schemas/BooleanCharacteristic'
TMF629 Customer Management v5
Characteristic:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Describes a given characteristic of an object or entity through a name/value pair.
properties:
id:
type: string
description: Unique identifier of the characteristic
name:
type: string
description: Name of the characteristic
valueType:
type: string
description: Data type of the value of the characteristic
characteristicRelationship:
type: array
items:
$ref: '#/components/schemas/CharacteristicRelationship'
discriminator:
propertyName: '@type'
mapping:
Characteristic: '#/components/schemas/Characteristic'
This appears to leave 629 without a "value" property on its characteristics.
My use-case is representing a customer with some related information, as so:
TMF629 GET /customer/{id}
{
"@type": "Customer",
"role": "Customer",
"id": "c1234567-d89b-42c3-b456-556642440000",
"href": "/customerManagement/v5/customer/c1234567-d89b-42c3-b456-556642440000",
"name": "Coffee Do Brazil",
"characteristic": [
{
"@type": "Characteristic",
"name": "Segment",
"value": "Enterprise", // not in the spec
"valueType": "string"
}
],
...
}
I'd greatly appreciate it if anyone could shed some light on this.
------------------------------
George Beatty
Aussie Broadband Limited
------------------------------