To my non-practiced eye your example looks OK.
I already stated my recommendation, which is that if you are in any case extending CharacteristicValueSpecification then "displayValue" seems to me a better name than "description".
Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
Original Message:
Sent: Jul 27, 2020 02:22
From: Wing Sin
Subject: Understanding TMF 633 (how to declare simple service specification)
Hi Jonathan,
Thanks for your comments, I have updated the spec.
Would you please advise if we could include the semantic meaning with "description" tag as we want to pass those value instead. Or is there any better approach? Thanks.
"serviceSpecCharacteristicValue": [ { "isDefault": true, "valueType": "String", "description": "Normal", "value": "3" }, { "isDefault": false, "valueType": "String", "description": "Premium", "value": "5" } ]
{ "id": "1", "name": "VMS", "description": "Voice Mail Service Specification", "lastUpdate": "2020-07-22T02:47:10.141Z", "lifecycleStatus": "Active", "version": "0.1", "serviceSpecCharacteristic": [ { "configurable": true, "name": "MSISDN", "description": "Mobile Number", "extensible": true, "isUnique": true, "maxCardinality": 1, "minCardinality": 1, "valueType": "string" }, { "configurable": true, "name": "IMSI", "description": "Mobile SIM Number", "extensible": true, "isUnique": true, "maxCardinality": 1, "minCardinality": 1, "valueType": "string" }, { "configurable": true, "name": "BRANDCODE", "description": "Brand", "extensible": true, "isUnique": true, "maxCardinality": 1, "minCardinality": 1, "valueType": "string", "serviceSpecCharacteristicValue": [ { "isDefault": true, "valueType": "String", "value": "0" }, { "isDefault": false, "valueType": "String", "value": "1" } ] }, { "configurable": true, "name": "VMSSERVICECLASS", "description": "Mail Box Type", "extensible": true, "isUnique": true, "maxCardinality": 1, "minCardinality": 1, "regex": "", "valueType": "string", "serviceSpecCharacteristicValue": [ { "isDefault": true, "valueType": "String", "value": "3" }, { "isDefault": false, "valueType": "String", "value": "5" } ] }, { "configurable": true, "name": "VMSLANG", "description": "Mail Box Language", "extensible": true, "isUnique": true, "maxCardinality": 1, "minCardinality": 1, "regex": "", "valueType": "string", "serviceSpecCharacteristicValue": [ { "isDefault": false, "valueType": "String", "value": "1" }, { "isDefault": true, "valueType": "String", "value": "2" }, { "isDefault": false, "valueType": "String", "value": "3" } ] } ]}
------------------------------
----------------------------------
Wing Sin
PCCW Solutions Limited
----------------------------------
Original Message:
Sent: Jul 23, 2020 06:21
From: Jonathan Goldberg
Subject: Understanding TMF 633 (how to declare simple service specification)
Hi Wai
The service catalog definition reflects the service, not the operations that you carry out on the service. You should create a single Voice Mail service specification in the catalog.
To add, change, or remove voice-mail, you would presumably need to process a service order TMF641 - or perhaps if you can work directly against the network you could use service activation and configuration TMF640.
Specific comments on your proposed model:
- The Open API model does not distinguish between CFS and RFS - if you want to make that distinction that's fine, but then you need to include a @baseType that contains ServiceSpecification and a @schemaLocation that defines CFS extension to ServiceSpec.
- I think it would be better to have true values in your characteristic examples, so that someone who looks at the spec (and the instantiation in the inventory) can understand the semantic meaning. Values such as "3" and "5" for serviceclass, or "1" and "2" for national language, are not necessarily helpful.
- If you set isBundle to true, the expectation is that the service spec has sub-structure, and I would expect to see a reference to a contained service spec.
Hope it helps
------------------------------
Jonathan Goldberg
Amdocs Management Limited
Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
Original Message:
Sent: Jul 23, 2020 04:15
From: wai chow
Subject: Understanding TMF 633 (how to declare simple service specification)
Hi Jonathan,
Thanks for your clarification.
If I need to create <voice mail service> with three operations/actions, should I create
- 1 <voice mail> service catalog
- 3 service catalog (<add voice mail>, <delete voice mail>, <update voice mail>)?
eg/
{
"name": "ADDVMS",
"description": "Add Voice Mail Service Specification",
"isBundle": true,
"lastUpdate": "2020-07-22T02:47:10.141Z",
"lifecycleStatus": "Active",
"version": "0.1",
"serviceSpecCharacteristic": [
{
"configurable": true,
"name": "MSISDN",
"description": "Mobile Number",
"extensible": true,
"isUnique": true,
"maxCardinality": 1,
"minCardinality": 1,
"valueType": "string"
},
{
"configurable": true,
"name": "IMSI",
"description": "IMSI Number",
"extensible": true,
"isUnique": true,
"maxCardinality": 1,
"minCardinality": 1,
"valueType": "string"
},
{
"configurable": true,
"name": "BRANDCODE",
"description": "Brand (mapping)",
"extensible": true,
"isUnique": true,
"maxCardinality": 1,
"minCardinality": 1,
"valueType": "string",
"serviceSpecCharacteristicValue": [
{
"isDefault": true,
"valueType": "String"
"value": "0"
},
{
"isDefault": false,
"valueType": "String"
"value": "1"
}
]
},
{
"configurable": true,
"name": "VMSSERVICECLASS",
"description": "Mail Box Type",
"extensible": true,
"isUnique": true,
"maxCardinality": 1,
"minCardinality": 1,
"regex": "",
"valueType": "string",
"serviceSpecCharacteristicValue": [
{
"isDefault": true,
"valueType": "String"
"value": "3"
},
{
"isDefault": false,
"valueType": "String"
"value": "5"
}
]
},
{
"configurable": true,
"name": "VMSLANG",
"description": "Mail Box Language (mapping)",
"extensible": true,
"isUnique": true,
"maxCardinality": 1,
"minCardinality": 1,
"regex": "",
"valueType": "string",
"serviceSpecCharacteristicValue": [
{
"isDefault": false,
"valueType": "String"
"value": "1"
},
{
"isDefault": true,
"valueType": "String"
"value": "2"
},
{
"isDefault": false,
"valueType": "String"
"value": "3"
}
]
}
],
"@type": "CustomerFacingServiceSpecification"
}
Thanks
------------------------------
wai chow
PCCW Solutions Limited
Original Message:
Sent: Jul 21, 2020 08:19
From: Jonathan Goldberg
Subject: Understanding TMF 633 (how to declare simple service specification)
Hi Wai
Welcome, hope you will find your interaction with the TM Forum productive for yourself and your company.
All the published Open API user guides (we used to call them specifications) include examples of JSON resources and payloads. As the Open API team continue to work on API definitions, we try to refine and update the examples so that they will reflect real business scenarios, as far as possible.
Indeed the simplest way to define a service in the catalog is to use completely dynamic definitions, with specifications, specificationcharacteristics, and values. An example below (admittedly from Resource Catalog, but the idea is very similar for Service Catalog) for a very simple spec for a storage with one characteristic for the maximum storage, using values to represent the list of allowed values.
Hope it helps.
{
"name": "Virtual Storage Medium",
"description": "This resource specification defines the virtual storage medium",
"@type": "LogicalResourceSpecification",
"@baseType": "ResourceSpecification",
"resourceSpecCharacteristic": [
{
"name": "Maximum Allowed Storage",
"description": "The storage limit in the virtual storage medium, ",
"valueType": "integer",
"configurable": true,
"minCardinality": 1,
"maxCardinality": 1,
"isUnique": true,
"resourceSpecCharacteristicValue": [
{
"valueType": "integer",
"value": 1024000
},
{
"valueType": "integer",
"value": 2048000
}
]
}
]
}
------------------------------
Jonathan Goldberg
Amdocs Management Limited
Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
Original Message:
Sent: Jul 21, 2020 02:48
From: wai chow
Subject: Understanding TMF 633 (how to declare simple service specification)
Hi,
I'm new to TM Forum and evaluate how to revamp in house SOM application based on TMF 633/TMF 641/ TMF 638.
I read TMF633 Service catalog management API REST specification (release 18.5.0/pp21, 27-29) but I have no glue how to declare/represent simple (key value) service specification.
For simple/standalone service spec without any service dependency, should I declare everything in ServiceSpecification/ServiceSpecCharacteristic/ServiceSpecCharacteristicValue?
Regards
------------------------------
Wai Chow
PCCW Solutions Limited
------------------------------