Hello.
I would like to clarify my understanding of defining a new product and accessing it via TMF APIs.
Here is my view:
Terms
CFS is „the center" of product modelling and can connect all domains: product, service, resources - accessible via corresponding catalog API.
CFS Specification
- Definition of characteristics and possible values of CFS (IG1233 Product and Service modelling)
- Is used through a ProductSpecification (GB922 Resource)
ProductSpecification
- Restricts CFS Specification at characteristic values level (IG1233)
ProductOffering
Applies or overrides the characteristics in the ProductSpecification
Determines the price
Summary image

Sequence of product modeling (IG1233)
1. Service Catalog manager
a. CFS definition - main characteristics and possible values = CFS specification
b. Association to the different technical solutions available = RFS specifications definition: composite/atomic pattern or selecting rules for selection depended RFS specifications
2. Product Catalog manager
a. Product specifications based on know-how (restrictions of available CFS specifications)
b. Association with at least one Atomic Product Offerings
API structure
Product Catalog
IG1233, Figure 4.10. Mail Products and Product Offerings
ProductSpecification
JSON snippet
{
"id": "9881",
"href": "https://mycsp.com:8080/tmfapi/productCatalogManagement/v5/productSpecification/9881",
"name": "Standard Mail Product",
"serviceSpecification": [
{
"id": "22",
"href": "https://mycsp.com:8080/tmfapi/serviceCatalogManagement/v5/serviceSpecification/22",
"name": "Mail Solution (Legacy)",
"@referredType": "ServiceSpecification",
"@type": "ServiceSpecificationRef"
}
],
"productSpecCharacteristic": [
{
"name": "Mail address",
"valueType": "string",
"configurable": true,
"minCardinality": 1,
"maxCardinality": 1
},
{
"name": "Domain",
"valueType": "string",
"configurable": false,
"minCardinality": 1,
"maxCardinality": 1,
"@type": "CharacteristicSpecification",
"characteristicValueSpecification": [
{
"valueType": "orange.fr",
"value": "Black",
"@type": "StringCharacteristicValueSpecification"
}
]
}
],
"@type": "ProductSpecification"
}
ProductOffering
{
"id": "7655",
"href": "https://mycsp.com:8080/tmfapi/productCatalogManagement/v5/productOffering/7655",
"name": "Mail Offer",
"productSpecification": {
"id": "9881",
"href": "https://mycsp.com:8080/tmfapi/productCatalogManagement/v5/productSpecification/9881",
"version": "1.1",
"name": "Standard Mail Product",
"@referredType": "ProductSpecification",
"@type": "ProductSpecificationRef"
},
"@type": "ProductOffering"
}
Service Catalog
IG1233, Figure 4.7. Mail CFS - Available Technical Solutions
ServiceSpecification
JSON snippet (hierarchy simplified)
[
{
"id": "22",
"href": "https://mycsp.com:8080/tmfapi/serviceCatalogManagement/v4/serviceSpecification/22",
"name": "Mail Solution (Legacy)",
"isBundle": true,
"serviceSpecRelationship": [
{
"relationshipType": "bundled",
"id": "5563",
"href": "https://mycsp.com:8080/tmfapi/serviceCatalogManagement/v4/serviceSpecification/5563",
"name": "Mail Storage Platform",
"@referredType": "ResourceFacingServiceSpecification",
"@type": "ServiceSpecRelationship"
}
],
"@schemaLocation": "https://mycsp.com:8080/tmfapi/schema/Service/ResourceFacingServiceSpecification.schema.json",
"@baseType": "ServiceSpecification"
},
{
"id": "5563",
"href": "https://mycsp.com:8080/tmfapi/serviceCatalogManagement/v4/serviceSpecification/5563",
"name": "Mail Storage Platform",
"isBundle": false,
"resourceSpecRelationship": [
{
"id": "556788",
"href": "https://mycsp.com:8080/tmfapi/resourceCatalog/v5/resourceSpecification/556788",
"name": "Mail Storage Server",
"relationshipType": "dependency",
"@type": "ResourceSpecificationRelationship"
}
],
"specCharacteristic": [
{
"name": "operatingSystem",
"valueType": "string",
"configurable": true,
"minCardinality": 0,
"maxCardinality": 1,
"isUnique": true,
"characteristicValueSpecification": [
{
"valueType": "string",
"isDefault": false,
"value": "Windows"
},
{
"valueType": "string",
"isDefault": true,
"value": "Unix"
}
],
"@type": "SpecCharacteristic"
}
],
"@type": "ResourceFacingServiceSpecification",
"@baseType": "ServiceSpecification"
}
]
Resource Catalog
IG1233, Figure 4.7. Mail CFS - Available Technical Solutions
ResourceSpecification
JSON snippet
{
"id": "556788",
"href": "https://mycsp.com:8080/tmf/resourceCatalogManagement",
"name": "Mail Storage Server",
"@type": "ResourceSpecification",
"isBundle": false,
"resourceSpecCharacteristic": [
{
"name": "HW id",
"valueType": "string",
"configurable": true,
"minCardinality": 1,
"maxCardinality": 1,
"isUnique": true,
"@type": "CharacteristicSpecification",
"characteristicValueSpecification": [
{
"value": "evv44wdv",
"@type": "StringCharacteristicValueSpecification"
},
{
"value": "cdw42fg",
"@type": "StringCharacteristicValueSpecification"
}
]
}
]
}
Do I understand the terms correctly?
Is the logic in the APIs correct?
------------------------------
Jan Brnka
T-Mobile Czech & Slovak Telekom, a.s.
------------------------------