{"openapi":"3.1.0","info":{"title":"TMF Studio","description":"\nThree TM Forum Open APIs for **Meridian Networks**, a UK network operator,\nover one domain core, exposed twice:\n\n* **REST** — TMF639 Resource Inventory, TMF638 Service Inventory and TMF641\n  Service Ordering, on their standard `/tmf-api/...` paths.\n* **MCP** — the same operations as tools at `/mcp`, for AI agents.\n\nThere is one service layer behind both. The order state machine that refuses an\nillegal transition over HTTP refuses it identically over MCP.\n\n### The story the three APIs tell\n\n`ServiceOrder` (TMF641) *add* items reserve `Resource`s (TMF639); completing the\norder materialises `Service`s (TMF638) standing on those resources. Terminating a\nservice hands its resources back to the pool.\n\n### Where to start\n\n| Goal | Call |\n| --- | --- |\n| Understand the estate | `GET /api/overview` |\n| Browse the network | `GET /tmf-api/resourceInventoryManagement/v4/resource?region=Scotland` |\n| A customer's services | `GET /tmf-api/serviceInventory/v4/service?customer=...` |\n| Track an order | `GET /tmf-api/serviceOrdering/v4/serviceOrder?state=inProgress` |\n| Place an order | `POST /tmf-api/serviceOrdering/v4/serviceOrder` |\n\n### Conventions\n\n* TMF style: list endpoints return a bare array with totals in `X-Total-Count` /\n  `X-Result-Count` headers. Page with `offset` and `limit`.\n* Ids are public strings (`RES-00042`, `SVC-00007`, `SO-00019`); every payload\n  carries its `href`.\n* `PATCH` bodies are partial — send only what changes. State changes are\n  validated against the lifecycle and errors name the legal next states.\n* Geography is UK-only: sites are cities inside regions (Greater London,\n  North West England, Scotland, Wales, …); filter with `place` and `region`.\n* Errors return `{\"detail\": \"...\"}`: `404` not found, `409` conflict,\n  `422` rule violation.\n","contact":{"name":"AI Studio","email":"studio@meridiannetworks.com"},"license":{"name":"Demo use"},"version":"1.0.0"},"paths":{"/health":{"get":{"tags":["Service"],"summary":"Liveness probe","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}},"/api":{"get":{"tags":["Service"],"summary":"Service metadata and entry points","operationId":"service_info_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Service Info Api Get"}}}}}}},"/api/overview":{"get":{"tags":["Overview"],"summary":"Snapshot across resources, services and orders","operationId":"get_overview_api_overview_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InventoryOverview"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/coverage":{"get":{"tags":["Overview"],"summary":"Network coverage: site centres, service-boundary rings, region boxes","description":"TMF675-flavoured geography (WGS84): every site's centre point and a ring around its service area, plus a bounding box per region.","operationId":"get_coverage_api_coverage_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoverageMap"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/resourceInventoryManagement/v4/resource":{"get":{"tags":["TMF639 Resource Inventory"],"summary":"List or search resources","operationId":"list_resources_tmf_api_resourceInventoryManagement_v4_resource_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceCategory"},{"type":"null"}],"title":"Category"}},{"name":"resourceStatus","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceStatus"},{"type":"null"}],"title":"Resourcestatus"}},{"name":"administrativeState","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/AdministrativeState"},{"type":"null"}],"title":"Administrativestate"}},{"name":"usageState","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/UsageState"},{"type":"null"}],"title":"Usagestate"}},{"name":"place","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Place"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"}},{"name":"resourceSpecificationId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resourcespecificationid"}},{"name":"parentId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentid"}},{"name":"nearLatitude","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nearlatitude"}},{"name":"nearLongitude","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nearlongitude"}},{"name":"radiusKm","in":"query","required":false,"schema":{"type":"number","default":25.0,"title":"Radiuskm"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Maximum rows (1-500).","default":50,"title":"Limit"},"description":"Maximum rows (1-500)."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Rows to skip, for paging.","default":0,"title":"Offset"},"description":"Rows to skip, for paging."},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceRead"},"title":"Response List Resources Tmf Api Resourceinventorymanagement V4 Resource Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["TMF639 Resource Inventory"],"summary":"Create a resource","operationId":"create_resource_tmf_api_resourceInventoryManagement_v4_resource_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/resourceInventoryManagement/v4/resource/{resource_id}":{"get":{"tags":["TMF639 Resource Inventory"],"summary":"Retrieve a resource","operationId":"get_resource_tmf_api_resourceInventoryManagement_v4_resource__resource_id__get","parameters":[{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["TMF639 Resource Inventory"],"summary":"Partially update a resource","operationId":"update_resource_tmf_api_resourceInventoryManagement_v4_resource__resource_id__patch","parameters":[{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["TMF639 Resource Inventory"],"summary":"Delete a resource","description":"Refused while the resource has children or supports a live service.","operationId":"delete_resource_tmf_api_resourceInventoryManagement_v4_resource__resource_id__delete","parameters":[{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/serviceInventory/v4/service":{"get":{"tags":["TMF638 Service Inventory"],"summary":"List or search services","operationId":"list_services_tmf_api_serviceInventory_v4_service_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ServiceState"},{"type":"null"}],"title":"State"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"serviceSpecificationId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Servicespecificationid"}},{"name":"customer","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer"}},{"name":"supportingResourceId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supportingresourceid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Maximum rows (1-500).","default":50,"title":"Limit"},"description":"Maximum rows (1-500)."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Rows to skip, for paging.","default":0,"title":"Offset"},"description":"Rows to skip, for paging."},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceRead"},"title":"Response List Services Tmf Api Serviceinventory V4 Service Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["TMF638 Service Inventory"],"summary":"Create a service directly in inventory","description":"Normally services arrive through completed TMF641 orders; a direct POST exists for migration-style writes and enforces the same resource rules.","operationId":"create_service_tmf_api_serviceInventory_v4_service_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/serviceInventory/v4/service/{service_id}":{"get":{"tags":["TMF638 Service Inventory"],"summary":"Retrieve a service","operationId":"get_service_tmf_api_serviceInventory_v4_service__service_id__get","parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"string","title":"Service Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["TMF638 Service Inventory"],"summary":"Partially update a service","description":"State changes must follow the service lifecycle.","operationId":"update_service_tmf_api_serviceInventory_v4_service__service_id__patch","parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"string","title":"Service Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["TMF638 Service Inventory"],"summary":"Delete a service","description":"Active services must be terminated before removal from inventory.","operationId":"delete_service_tmf_api_serviceInventory_v4_service__service_id__delete","parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"string","title":"Service Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/serviceOrdering/v4/serviceOrder":{"get":{"tags":["TMF641 Service Ordering"],"summary":"List or search service orders","operationId":"list_orders_tmf_api_serviceOrdering_v4_serviceOrder_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OrderState"},{"type":"null"}],"title":"State"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"externalId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Externalid"}},{"name":"customer","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Maximum rows (1-500).","default":50,"title":"Limit"},"description":"Maximum rows (1-500)."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Rows to skip, for paging.","default":0,"title":"Offset"},"description":"Rows to skip, for paging."},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceOrderRead"},"title":"Response List Orders Tmf Api Serviceordering V4 Serviceorder Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["TMF641 Service Ordering"],"summary":"Create a service order","description":"`add` items order against a serviceSpecification and reserve their supporting resources; `modify`/`delete` items target an existing inventory service.","operationId":"create_order_tmf_api_serviceOrdering_v4_serviceOrder_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceOrderCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceOrderRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/serviceOrdering/v4/serviceOrder/{order_id}":{"get":{"tags":["TMF641 Service Ordering"],"summary":"Retrieve a service order","operationId":"get_order_tmf_api_serviceOrdering_v4_serviceOrder__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceOrderRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["TMF641 Service Ordering"],"summary":"Partially update a service order","description":"A `state` change must follow the order lifecycle. Moving an order to `completed` fulfils it: `add` items materialise as inventory services, `modify` items patch their target, `delete` items terminate it.","operationId":"update_order_tmf_api_serviceOrdering_v4_serviceOrder__order_id__patch","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceOrderUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceOrderRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["TMF641 Service Ordering"],"summary":"Delete a service order","description":"Only acknowledged, rejected or cancelled orders can be deleted.","operationId":"delete_order_tmf_api_serviceOrdering_v4_serviceOrder__order_id__delete","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/resourceCatalog/v4/resourceSpecification":{"get":{"tags":["Catalog (read-only)"],"summary":"Resource specifications","operationId":"list_resource_specs_tmf_api_resourceCatalog_v4_resourceSpecification_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResourceSpecificationRead"},"title":"Response List Resource Specs Tmf Api Resourcecatalog V4 Resourcespecification Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/resourceCatalog/v4/resourceSpecification/{spec_id}":{"get":{"tags":["Catalog (read-only)"],"summary":"Retrieve a resource specification","operationId":"get_resource_spec_tmf_api_resourceCatalog_v4_resourceSpecification__spec_id__get","parameters":[{"name":"spec_id","in":"path","required":true,"schema":{"type":"string","title":"Spec Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceSpecificationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/serviceCatalog/v4/serviceSpecification":{"get":{"tags":["Catalog (read-only)"],"summary":"Service specifications","operationId":"list_service_specs_tmf_api_serviceCatalog_v4_serviceSpecification_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceSpecificationRead"},"title":"Response List Service Specs Tmf Api Servicecatalog V4 Servicespecification Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tmf-api/serviceCatalog/v4/serviceSpecification/{spec_id}":{"get":{"tags":["Catalog (read-only)"],"summary":"Retrieve a service specification","operationId":"get_service_spec_tmf_api_serviceCatalog_v4_serviceSpecification__spec_id__get","parameters":[{"name":"spec_id","in":"path","required":true,"schema":{"type":"string","title":"Spec Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceSpecificationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AdministrativeState":{"type":"string","enum":["locked","unlocked","shutdown"],"title":"AdministrativeState","description":"TMF639 `administrativeState`."},"BoundingBox":{"properties":{"north":{"type":"number","title":"North"},"south":{"type":"number","title":"South"},"east":{"type":"number","title":"East"},"west":{"type":"number","title":"West"},"@type":{"type":"string","title":"@Type","default":"BoundingBox"}},"type":"object","required":["north","south","east","west"],"title":"BoundingBox"},"Characteristic":{"properties":{"name":{"type":"string","maxLength":80,"title":"Name"},"value":{"title":"Value"},"valueType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Valuetype"}},"type":"object","required":["name"],"title":"Characteristic"},"CoverageMap":{"properties":{"organisation":{"type":"string","title":"Organisation"},"country":{"type":"string","title":"Country"},"spatialRef":{"type":"string","title":"Spatialref","default":"WGS84"},"sites":{"items":{"$ref":"#/components/schemas/SiteCoverage"},"type":"array","title":"Sites"},"regions":{"items":{"$ref":"#/components/schemas/RegionCoverage"},"type":"array","title":"Regions"}},"type":"object","required":["organisation","country","sites","regions"],"title":"CoverageMap"},"GeoPoint":{"properties":{"latitude":{"type":"number","title":"Latitude"},"longitude":{"type":"number","title":"Longitude"},"spatialRef":{"type":"string","title":"Spatialref","default":"WGS84"},"@type":{"type":"string","title":"@Type","default":"GeographicPoint"}},"type":"object","required":["latitude","longitude"],"title":"GeoPoint","description":"A TMF675-style geographic point, WGS84."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InventoryOverview":{"properties":{"organisation":{"type":"string","title":"Organisation"},"asOf":{"type":"string","format":"date","title":"Asof"},"resourceSpecifications":{"type":"integer","title":"Resourcespecifications"},"serviceSpecifications":{"type":"integer","title":"Servicespecifications"},"resources":{"$ref":"#/components/schemas/ResourceStats"},"services":{"$ref":"#/components/schemas/ServiceStats"},"serviceOrders":{"$ref":"#/components/schemas/OrderStats"}},"type":"object","required":["organisation","asOf","resourceSpecifications","serviceSpecifications","resources","services","serviceOrders"],"title":"InventoryOverview"},"Note":{"properties":{"text":{"type":"string","maxLength":600,"title":"Text"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date"}},"type":"object","required":["text"],"title":"Note"},"OperationalState":{"type":"string","enum":["enable","disable"],"title":"OperationalState","description":"TMF639 `operationalState`."},"OrderItemAction":{"type":"string","enum":["add","modify","delete","noChange"],"title":"OrderItemAction","description":"TMF641 `serviceOrderItem.action`."},"OrderItemServiceIn":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"type":"string","maxLength":140,"title":"Name","default":""},"serviceSpecification":{"anyOf":[{"$ref":"#/components/schemas/Ref"},{"type":"null"}]},"serviceCharacteristic":{"items":{"$ref":"#/components/schemas/Characteristic"},"type":"array","title":"Servicecharacteristic"},"supportingResource":{"items":{"$ref":"#/components/schemas/Ref"},"type":"array","title":"Supportingresource"}},"type":"object","title":"OrderItemServiceIn","description":"The `service` inside an order item.\n\n* `add` — no id; carries a specification, optional name, characteristics and\n  the inventory resources to build on.\n* `modify` / `delete` — `id` of an existing inventory service."},"OrderItemServiceRead":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"href":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Href"},"name":{"type":"string","title":"Name"},"state":{"anyOf":[{"$ref":"#/components/schemas/ServiceState"},{"type":"null"}]},"serviceSpecification":{"anyOf":[{"$ref":"#/components/schemas/ServiceSpecificationRef"},{"type":"null"}]},"serviceCharacteristic":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Servicecharacteristic"},"supportingResource":{"items":{"$ref":"#/components/schemas/ResourceRef"},"type":"array","title":"Supportingresource"},"@type":{"type":"string","title":"@Type","default":"Service"}},"type":"object","required":["name"],"title":"OrderItemServiceRead"},"OrderState":{"type":"string","enum":["acknowledged","rejected","pending","held","inProgress","cancelled","completed","failed","partial","assessingCancellation","pendingCancellation"],"title":"OrderState","description":"TMF641 `state` (ServiceOrderStateType) — for the order and its items."},"OrderStats":{"properties":{"total":{"type":"integer","title":"Total"},"open":{"type":"integer","title":"Open"},"byState":{"additionalProperties":{"type":"integer"},"type":"object","title":"Bystate"},"byAction":{"additionalProperties":{"type":"integer"},"type":"object","title":"Byaction"},"completionRatePct":{"type":"number","title":"Completionratepct"},"avgItemsPerOrder":{"type":"number","title":"Avgitemsperorder"}},"type":"object","required":["total","open","byState","byAction","completionRatePct","avgItemsPerOrder"],"title":"OrderStats"},"Place":{"properties":{"city":{"type":"string","title":"City"},"region":{"type":"string","title":"Region","description":"UK region, e.g. 'Greater London', 'Scotland'."},"country":{"type":"string","title":"Country","default":"United Kingdom"},"role":{"type":"string","title":"Role","default":"installationSite"},"geoLocation":{"anyOf":[{"$ref":"#/components/schemas/GeoPoint"},{"type":"null"}]},"@type":{"type":"string","title":"@Type","default":"Place"}},"type":"object","required":["city","region"],"title":"Place"},"Ref":{"properties":{"id":{"type":"string","title":"Id"}},"type":"object","required":["id"],"title":"Ref","description":"An input reference: `{\"id\": \"...\"}` is all we need."},"RegionCoverage":{"properties":{"region":{"type":"string","title":"Region"},"cities":{"items":{"type":"string"},"type":"array","title":"Cities"},"resourceTotal":{"type":"integer","title":"Resourcetotal"},"boundingBox":{"$ref":"#/components/schemas/BoundingBox"},"@type":{"type":"string","title":"@Type","default":"GeographicArea"}},"type":"object","required":["region","cities","resourceTotal","boundingBox"],"title":"RegionCoverage"},"RelatedParty":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"type":"string","maxLength":140,"title":"Name"},"role":{"type":"string","maxLength":60,"title":"Role","default":"customer"}},"type":"object","required":["name"],"title":"RelatedParty"},"ResourceCategory":{"type":"string","enum":["physical","logical"],"title":"ResourceCategory"},"ResourceCreate":{"properties":{"name":{"type":"string","maxLength":140,"title":"Name"},"description":{"type":"string","maxLength":500,"title":"Description","default":""},"category":{"$ref":"#/components/schemas/ResourceCategory"},"resourceSpecification":{"anyOf":[{"$ref":"#/components/schemas/Ref"},{"type":"null"}]},"resourceStatus":{"$ref":"#/components/schemas/ResourceStatus","default":"available"},"administrativeState":{"$ref":"#/components/schemas/AdministrativeState","default":"unlocked"},"operationalState":{"$ref":"#/components/schemas/OperationalState","default":"enable"},"usageState":{"$ref":"#/components/schemas/UsageState","default":"idle"},"place":{"type":"string","maxLength":80,"title":"Place","description":"City.","default":""},"region":{"type":"string","maxLength":60,"title":"Region","description":"UK region.","default":""},"latitude":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Longitude"},"resourceCharacteristic":{"items":{"$ref":"#/components/schemas/Characteristic"},"type":"array","title":"Resourcecharacteristic"},"relatedParty":{"items":{"$ref":"#/components/schemas/RelatedParty"},"type":"array","title":"Relatedparty"},"resourceRelationship":{"items":{"$ref":"#/components/schemas/ResourceRelationshipIn"},"type":"array","title":"Resourcerelationship","description":"A single 'partOf' entry makes this resource a child."}},"type":"object","required":["name","category"],"title":"ResourceCreate"},"ResourceRead":{"properties":{"id":{"type":"string","title":"Id"},"href":{"type":"string","title":"Href"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"category":{"$ref":"#/components/schemas/ResourceCategory"},"resourceVersion":{"type":"string","title":"Resourceversion"},"resourceStatus":{"$ref":"#/components/schemas/ResourceStatus"},"administrativeState":{"$ref":"#/components/schemas/AdministrativeState"},"operationalState":{"$ref":"#/components/schemas/OperationalState"},"usageState":{"$ref":"#/components/schemas/UsageState"},"place":{"anyOf":[{"$ref":"#/components/schemas/Place"},{"type":"null"}]},"resourceSpecification":{"anyOf":[{"$ref":"#/components/schemas/ResourceSpecificationRef"},{"type":"null"}]},"resourceRelationship":{"items":{"$ref":"#/components/schemas/ResourceRelationship"},"type":"array","title":"Resourcerelationship"},"resourceCharacteristic":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Resourcecharacteristic"},"relatedParty":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Relatedparty"},"supportingService":{"items":{"$ref":"#/components/schemas/ServiceRef"},"type":"array","title":"Supportingservice","description":"Inventory services this resource currently supports."},"@type":{"type":"string","title":"@Type","default":"Resource"}},"type":"object","required":["id","href","name","description","category","resourceVersion","resourceStatus","administrativeState","operationalState","usageState"],"title":"ResourceRead"},"ResourceRef":{"properties":{"id":{"type":"string","title":"Id"},"href":{"type":"string","title":"Href"},"name":{"type":"string","title":"Name"},"@type":{"type":"string","title":"@Type","default":"ResourceRef"}},"type":"object","required":["id","href","name"],"title":"ResourceRef"},"ResourceRelationship":{"properties":{"relationshipType":{"type":"string","title":"Relationshiptype"},"resource":{"$ref":"#/components/schemas/ResourceRef"},"@type":{"type":"string","title":"@Type","default":"ResourceRelationship"}},"type":"object","required":["relationshipType","resource"],"title":"ResourceRelationship"},"ResourceRelationshipIn":{"properties":{"relationshipType":{"type":"string","maxLength":30,"title":"Relationshiptype"},"resource":{"$ref":"#/components/schemas/Ref"}},"type":"object","required":["relationshipType","resource"],"title":"ResourceRelationshipIn"},"ResourceSpecificationRead":{"properties":{"id":{"type":"string","title":"Id"},"href":{"type":"string","title":"Href"},"name":{"type":"string","title":"Name"},"category":{"$ref":"#/components/schemas/ResourceCategory"},"version":{"type":"string","title":"Version"},"description":{"type":"string","title":"Description"},"@type":{"type":"string","title":"@Type","default":"ResourceSpecification"}},"type":"object","required":["id","href","name","category","version","description"],"title":"ResourceSpecificationRead"},"ResourceSpecificationRef":{"properties":{"id":{"type":"string","title":"Id"},"href":{"type":"string","title":"Href"},"name":{"type":"string","title":"Name"},"version":{"type":"string","title":"Version"},"@type":{"type":"string","title":"@Type","default":"ResourceSpecificationRef"}},"type":"object","required":["id","href","name","version"],"title":"ResourceSpecificationRef"},"ResourceStats":{"properties":{"total":{"type":"integer","title":"Total"},"byStatus":{"additionalProperties":{"type":"integer"},"type":"object","title":"Bystatus"},"byCategory":{"additionalProperties":{"type":"integer"},"type":"object","title":"Bycategory"},"byRegion":{"additionalProperties":{"type":"integer"},"type":"object","title":"Byregion"},"byCity":{"additionalProperties":{"type":"integer"},"type":"object","title":"Bycity"},"bySpecification":{"additionalProperties":{"type":"integer"},"type":"object","title":"Byspecification"},"lockedOrShutdown":{"type":"integer","title":"Lockedorshutdown"}},"type":"object","required":["total","byStatus","byCategory","byRegion","byCity","bySpecification","lockedOrShutdown"],"title":"ResourceStats"},"ResourceStatus":{"type":"string","enum":["standby","alarm","available","reserved","unknown","suspended"],"title":"ResourceStatus","description":"TMF639 `resourceStatus`."},"ResourceUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":140},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"resourceStatus":{"anyOf":[{"$ref":"#/components/schemas/ResourceStatus"},{"type":"null"}]},"administrativeState":{"anyOf":[{"$ref":"#/components/schemas/AdministrativeState"},{"type":"null"}]},"operationalState":{"anyOf":[{"$ref":"#/components/schemas/OperationalState"},{"type":"null"}]},"usageState":{"anyOf":[{"$ref":"#/components/schemas/UsageState"},{"type":"null"}]},"place":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Place"},"region":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Region"},"latitude":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Longitude"},"resourceCharacteristic":{"anyOf":[{"items":{"$ref":"#/components/schemas/Characteristic"},"type":"array"},{"type":"null"}],"title":"Resourcecharacteristic"},"relatedParty":{"anyOf":[{"items":{"$ref":"#/components/schemas/RelatedParty"},"type":"array"},{"type":"null"}],"title":"Relatedparty"}},"type":"object","title":"ResourceUpdate","description":"Partial update. Only the fields you send are changed."},"ServiceCreate":{"properties":{"name":{"type":"string","maxLength":140,"title":"Name"},"description":{"type":"string","maxLength":500,"title":"Description","default":""},"category":{"type":"string","maxLength":60,"title":"Category","default":""},"serviceType":{"type":"string","maxLength":30,"title":"Servicetype","default":"CFS"},"state":{"$ref":"#/components/schemas/ServiceState","default":"designed"},"serviceSpecification":{"$ref":"#/components/schemas/Ref"},"supportingResource":{"items":{"$ref":"#/components/schemas/Ref"},"type":"array","title":"Supportingresource"},"serviceCharacteristic":{"items":{"$ref":"#/components/schemas/Characteristic"},"type":"array","title":"Servicecharacteristic"},"relatedParty":{"items":{"$ref":"#/components/schemas/RelatedParty"},"type":"array","title":"Relatedparty"}},"type":"object","required":["name","serviceSpecification"],"title":"ServiceCreate"},"ServiceOrderCreate":{"properties":{"externalId":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Externalid"},"description":{"type":"string","maxLength":500,"title":"Description","default":""},"category":{"type":"string","maxLength":60,"title":"Category","default":""},"priority":{"type":"integer","maximum":4.0,"minimum":0.0,"title":"Priority","description":"0 is most urgent.","default":2},"requestedStartDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Requestedstartdate"},"requestedCompletionDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Requestedcompletiondate"},"note":{"items":{"$ref":"#/components/schemas/Note"},"type":"array","title":"Note"},"relatedParty":{"items":{"$ref":"#/components/schemas/RelatedParty"},"type":"array","title":"Relatedparty"},"serviceOrderItem":{"items":{"$ref":"#/components/schemas/ServiceOrderItemCreate"},"type":"array","minItems":1,"title":"Serviceorderitem"}},"type":"object","required":["serviceOrderItem"],"title":"ServiceOrderCreate"},"ServiceOrderItemCreate":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Item id within the order; auto-numbered if omitted."},"action":{"$ref":"#/components/schemas/OrderItemAction"},"service":{"$ref":"#/components/schemas/OrderItemServiceIn"}},"type":"object","required":["action","service"],"title":"ServiceOrderItemCreate"},"ServiceOrderItemRead":{"properties":{"id":{"type":"string","title":"Id"},"action":{"$ref":"#/components/schemas/OrderItemAction"},"state":{"$ref":"#/components/schemas/OrderState"},"service":{"$ref":"#/components/schemas/OrderItemServiceRead"},"@type":{"type":"string","title":"@Type","default":"ServiceOrderItem"}},"type":"object","required":["id","action","state","service"],"title":"ServiceOrderItemRead"},"ServiceOrderRead":{"properties":{"id":{"type":"string","title":"Id"},"href":{"type":"string","title":"Href"},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Externalid"},"description":{"type":"string","title":"Description"},"category":{"type":"string","title":"Category"},"priority":{"type":"integer","title":"Priority"},"state":{"$ref":"#/components/schemas/OrderState"},"orderDate":{"type":"string","format":"date-time","title":"Orderdate"},"requestedStartDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Requestedstartdate"},"requestedCompletionDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Requestedcompletiondate"},"expectedCompletionDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expectedcompletiondate"},"completionDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completiondate"},"note":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Note"},"relatedParty":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Relatedparty"},"serviceOrderItem":{"items":{"$ref":"#/components/schemas/ServiceOrderItemRead"},"type":"array","title":"Serviceorderitem"},"@type":{"type":"string","title":"@Type","default":"ServiceOrder"}},"type":"object","required":["id","href","externalId","description","category","priority","state","orderDate","requestedStartDate","requestedCompletionDate","expectedCompletionDate","completionDate"],"title":"ServiceOrderRead"},"ServiceOrderUpdate":{"properties":{"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"category":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Category"},"priority":{"anyOf":[{"type":"integer","maximum":4.0,"minimum":0.0},{"type":"null"}],"title":"Priority"},"requestedCompletionDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Requestedcompletiondate"},"expectedCompletionDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expectedcompletiondate"},"state":{"anyOf":[{"$ref":"#/components/schemas/OrderState"},{"type":"null"}]},"note":{"anyOf":[{"items":{"$ref":"#/components/schemas/Note"},"type":"array"},{"type":"null"}],"title":"Note"}},"type":"object","title":"ServiceOrderUpdate","description":"Partial update. A `state` change must be a legal lifecycle transition."},"ServiceRead":{"properties":{"id":{"type":"string","title":"Id"},"href":{"type":"string","title":"Href"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"category":{"type":"string","title":"Category"},"serviceType":{"type":"string","title":"Servicetype"},"state":{"$ref":"#/components/schemas/ServiceState"},"isServiceEnabled":{"type":"boolean","title":"Isserviceenabled"},"hasStarted":{"type":"boolean","title":"Hasstarted"},"serviceDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Servicedate"},"startDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Startdate"},"endDate":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Enddate"},"serviceSpecification":{"$ref":"#/components/schemas/ServiceSpecificationRef"},"supportingResource":{"items":{"$ref":"#/components/schemas/ResourceRef"},"type":"array","title":"Supportingresource"},"serviceCharacteristic":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Servicecharacteristic"},"relatedParty":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Relatedparty"},"@type":{"type":"string","title":"@Type","default":"Service"}},"type":"object","required":["id","href","name","description","category","serviceType","state","isServiceEnabled","hasStarted","serviceDate","startDate","endDate","serviceSpecification"],"title":"ServiceRead"},"ServiceRef":{"properties":{"id":{"type":"string","title":"Id"},"href":{"type":"string","title":"Href"},"name":{"type":"string","title":"Name"},"state":{"anyOf":[{"$ref":"#/components/schemas/ServiceState"},{"type":"null"}]},"@type":{"type":"string","title":"@Type","default":"ServiceRef"}},"type":"object","required":["id","href","name"],"title":"ServiceRef"},"ServiceSpecificationRead":{"properties":{"id":{"type":"string","title":"Id"},"href":{"type":"string","title":"Href"},"name":{"type":"string","title":"Name"},"version":{"type":"string","title":"Version"},"lifecycleStatus":{"type":"string","title":"Lifecyclestatus"},"description":{"type":"string","title":"Description"},"@type":{"type":"string","title":"@Type","default":"ServiceSpecification"}},"type":"object","required":["id","href","name","version","lifecycleStatus","description"],"title":"ServiceSpecificationRead"},"ServiceSpecificationRef":{"properties":{"id":{"type":"string","title":"Id"},"href":{"type":"string","title":"Href"},"name":{"type":"string","title":"Name"},"version":{"type":"string","title":"Version"},"@type":{"type":"string","title":"@Type","default":"ServiceSpecificationRef"}},"type":"object","required":["id","href","name","version"],"title":"ServiceSpecificationRef"},"ServiceState":{"type":"string","enum":["feasibilityChecked","designed","reserved","active","inactive","terminated"],"title":"ServiceState","description":"TMF638 `state` (ServiceStateType)."},"ServiceStats":{"properties":{"total":{"type":"integer","title":"Total"},"active":{"type":"integer","title":"Active"},"byState":{"additionalProperties":{"type":"integer"},"type":"object","title":"Bystate"},"bySpecification":{"additionalProperties":{"type":"integer"},"type":"object","title":"Byspecification"},"byRegion":{"additionalProperties":{"type":"integer"},"type":"object","title":"Byregion","description":"Region of the supporting resources' sites."}},"type":"object","required":["total","active","byState","bySpecification","byRegion"],"title":"ServiceStats"},"ServiceUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":140},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"category":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Category"},"state":{"anyOf":[{"$ref":"#/components/schemas/ServiceState"},{"type":"null"}]},"isServiceEnabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isserviceenabled"},"serviceCharacteristic":{"anyOf":[{"items":{"$ref":"#/components/schemas/Characteristic"},"type":"array"},{"type":"null"}],"title":"Servicecharacteristic"},"supportingResource":{"anyOf":[{"items":{"$ref":"#/components/schemas/Ref"},"type":"array"},{"type":"null"}],"title":"Supportingresource"},"relatedParty":{"anyOf":[{"items":{"$ref":"#/components/schemas/RelatedParty"},"type":"array"},{"type":"null"}],"title":"Relatedparty"}},"type":"object","title":"ServiceUpdate","description":"Partial update. State changes are validated against the lifecycle."},"SiteCoverage":{"properties":{"city":{"type":"string","title":"City"},"region":{"type":"string","title":"Region"},"centre":{"$ref":"#/components/schemas/GeoPoint"},"resourceTotal":{"type":"integer","title":"Resourcetotal"},"activeServices":{"type":"integer","title":"Activeservices"},"serviceBoundary":{"items":{"$ref":"#/components/schemas/GeoPoint"},"type":"array","title":"Serviceboundary","description":"A TMF675-style ring around the site's service area."},"@type":{"type":"string","title":"@Type","default":"GeographicSite"}},"type":"object","required":["city","region","centre","resourceTotal","activeServices","serviceBoundary"],"title":"SiteCoverage"},"UsageState":{"type":"string","enum":["idle","active","busy"],"title":"UsageState","description":"TMF639 `usageState`."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"Overview","description":"One-call snapshot across all three APIs (not TMF)."},{"name":"TMF639 Resource Inventory","description":"Physical and logical network resources."},{"name":"TMF638 Service Inventory","description":"The services customers actually have."},{"name":"TMF641 Service Ordering","description":"Order lifecycle and fulfilment."},{"name":"Catalog (read-only)","description":"Specification slices of TMF633/TMF634."},{"name":"Service","description":"Health and service metadata."}]}