openapi: 3.0.1 info: title: TMF676 IoT Device Management description: "This service provides comprehensive IoT device management capabilities\ \ for TMF908 operations including device information retrieval, device management\ \ operations, and lifecycle management. The service integrates with various IoT\ \ platforms and provides standardized APIs for device operations across the MTN\ \ ecosystem." license: name: MADAPI url: https://developers.mtn.com/ version: 3.0.0 - Last updated date:2026-06-22 15:14:01 servers: - url: https://api.mtn.com/v1 description: Production Server security: - OAuth2: [] tags: - name: Device Information - name: TMF908 IoT Device Management paths: /device-information/{deviceId}: get: tags: - Device Information summary: Get Device Information description: "This operation retrieves comprehensive device information based\ \ on device ID, type, and various optional parameters. The endpoint supports\ \ multiple device types and provides detailed device resource output." operationId: DeviceInformation_get_getDeviceSpecification_deviceinformationdev parameters: - name: deviceId in: path required: true schema: type: string - name: deviceIp in: header required: false schema: type: string - name: deviceSerialNumber in: header required: false schema: type: string - name: deviceType in: query required: true schema: type: string - name: portName in: header required: false schema: type: string - name: targetSystem in: header required: true schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI TMF908-iot-Device Management flows. content: application/json: schema: title: DeviceResourceOutputDTO type: object properties: refResource: title: RefResourceDTO type: object properties: neInfos: title: NeInfoDTO type: object properties: neIp: type: string resId: type: string onus: type: array items: title: OnuDTO type: object properties: sn: type: string mac: type: string name: type: string resId: type: string onuId: type: string onuClass: type: string ponPorts: type: array items: title: PonPortDTO type: object properties: name: type: string neIp: type: string resId: type: string splitters: type: array items: title: SplitterDTO type: object properties: rfId: type: string name: type: string resId: type: string alias: type: string layer: type: string qrCode: type: string remark: type: string vendor: type: string barcode: type: string modelId: type: string customTag: type: string refLandmark: type: string inPortNumber: type: string outPortNumber: type: string unevenSplitRatio: type: string refHolderOdnDevice: type: string landmarks: type: array items: title: LandmarkDTO type: object properties: name: type: string type: type: string floor: type: string resId: type: string alias: type: string remark: type: string address: type: string latitude: type: string longitude: type: string odnDevices: type: array items: title: OdnDeviceDTO type: object properties: name: type: string rfId: type: string resId: type: string alias: type: string remark: type: string modelId: type: string barcode: type: string customTag: type: string deviceType: type: string refLandmark: type: string totalPortCount: type: string lifeCycleStatus: type: string availablePortCount: type: string cableSegments: type: array items: title: CableSegmentDTO type: object properties: name: type: string alias: type: string resId: type: string length: type: string refAEndLandmark: type: string refZEndLandmark: type: string aEndCoiledLength: type: string zEndCoiledLength: type: string odnDeviceRelation: title: OdnDeviceRelationDTO type: object properties: odnDevice: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_OdnDeviceDTO' inPortInfos: type: array items: title: PortInfoDTO type: object properties: portName: type: string refResourceType: type: string refResourceResId: type: string refCableSegments: type: array items: type: string outPortInfos: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_PortInfoDTO' neInfo: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_NeInfoDTO' onus: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_OnuDTO' odms: type: array items: title: OdmDTO type: object properties: name: type: string role: type: string resId: type: string fiberCoresNum: type: integer format: int32 refParentOdnDevice: type: string ponPort: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_PonPortDTO' cables: type: array items: title: CableGrp type: object properties: type: type: string name: type: string resId: type: string alias: type: string remark: type: string fiberCores: type: integer format: int32 refAEndLandmark: type: string refZEndLandmark: type: string ponLinks: type: array items: title: PonLinkDTO type: object properties: resId: type: string name: type: string alias: type: string aEndType: type: string zEndType: type: string refZEndOnu: type: string refAEndLtp: type: string refParentNe: type: string refAEndSplitter: type: string refZEndSplitter: type: string landmarks: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_LandmarkDTO' splitters: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_SplitterDTO' odnDevices: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_OdnDeviceDTO' fiberRoutes: type: array items: title: FiberRouteDTO type: object properties: aEndType: type: string refAEnd: type: string zEndType: type: string refZEnd: type: string aEndFiberCoreLabel: type: string zEndFiberCoreLabel: type: string cableSegmentRelations: type: array items: title: CableSegmentRelationDTO type: object properties: cableSegment: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_CableSegmentDTO' relation: title: RelationDTO type: object properties: refAEnd: type: string refZEnd: type: string aEndType: type: string zEndType: type: string refAEndPort: type: string refZEndPort: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' deprecated: false /iotDevice: post: tags: - TMF908 IoT Device Management summary: IoT Device TAC Validation description: This operation performs TAC (Type Allocation Code) validation for IoT devices through the NMS system. The endpoint handles device requests with comprehensive transaction tracking and response logging. operationId: Tmf908IotDeviceManagementAggregatorService_post_iotDevice parameters: - name: targetSystem in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string requestBody: content: application/json: schema: title: IotDeviceRequest type: object properties: description: type: string deviceType: type: string versionNumber: type: string name: type: string deviceState: type: string lifecycleState: type: string characteristic: type: array items: title: Characteristic type: object properties: name: type: string value: type: string resourceRelationship: type: array items: title: ResourceRelationship type: object properties: resource: title: Resource type: object properties: id: type: string status: type: boolean '@type': type: string required: true responses: "200": description: Success "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' deprecated: false /iotDevice/{id}: patch: tags: - TMF908 IoT Device Management summary: updates partially a IotDevice entity. description: This operation performs a partial TAC (Type Allocation Code) validation for IoT devices system. The endpoint handles device requests with comprehensive transaction tracking and response logging. operationId: Tmf908IotDeviceManagementAggregatorService_patch_updateIotDevice_iotDeviceid parameters: - name: id in: path required: true schema: type: string - name: targetSystem in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/com_mtn_aggregator_models_request_json_IotDeviceRequest' required: true responses: "200": description: Success "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' deprecated: false /iotDeviceSpecification: get: tags: - TMF908 IoT Device Management summary: Get IoT Device Specification description: This operation retrieves IoT device specification information based on related party ID and optional device parameters. The endpoint supports both UGA and system layer routing with proper authorization validation and transaction tracking. operationId: Tmf908IotDeviceManagementAggregatorService_get_getDeviceSpecification_iotDeviceSpecificati parameters: - name: deviceId in: query required: false schema: type: string - name: relatedPartyId in: query required: true schema: type: string - name: targetSystem in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI TMF908-iot-Device Management flows. content: application/json: schema: title: DeviceSpecificationResponse type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string statusCode: type: string data: type: array items: title: DeviceSpecification type: object properties: name: type: string description: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' deprecated: false post: tags: - TMF908 IoT Device Management summary: Get IoT Device Specification description: This operation pushes IoT device specification information for IoT devices system. The endpoint handles device requests with comprehensive transaction tracking and response logging. operationId: Tmf908IotDeviceManagementAggregatorService_post_iotDeviceSpecification_iotDeviceSpecificati parameters: - name: requestType in: header required: true schema: type: string - name: targetSystem in: header required: true schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string requestBody: content: application/json: schema: type: string required: true responses: "200": description: Success "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' deprecated: false /resourceSpecification: post: tags: - TMF908 IoT Device Management summary: Push Internet Settings description: This operation pushes internet settings for IoT devices through resource specification management. The endpoint supports XMF device compatibility checks and both UGA and system layer routing with comprehensive transaction tracking. operationId: Tmf908IotDeviceManagementAggregatorService_post_pushInternetSettings_resourceSpecificatio parameters: - name: targetSystem in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string requestBody: content: application/json: schema: title: InternetSettings type: object properties: id: type: string name: type: string description: type: string isBundle: type: boolean relatedParty: type: array items: title: RelatedParty type: object properties: id: type: string name: type: string channel: type: array items: title: ResourceSpecCharacteristic type: object properties: id: type: string value: type: string name: type: string resourceSpecCharacteristic: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_request_ResourceSpecCharacteristic' required: true responses: "200": description: Success "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' deprecated: false components: schemas: com_mtn_aggregator_models_response_deviceinformation_CableSegmentRelationDTO: title: CableSegmentRelationDTO type: object properties: cableSegment: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_CableSegmentDTO' relation: title: RelationDTO type: object properties: refAEnd: type: string refZEnd: type: string aEndType: type: string zEndType: type: string refAEndPort: type: string refZEndPort: type: string com_mtn_aggregator_models_response_deviceinformation_RefResourceDTO: title: RefResourceDTO type: object properties: neInfos: title: NeInfoDTO type: object properties: neIp: type: string resId: type: string onus: type: array items: title: OnuDTO type: object properties: sn: type: string mac: type: string name: type: string resId: type: string onuId: type: string onuClass: type: string ponPorts: type: array items: title: PonPortDTO type: object properties: name: type: string neIp: type: string resId: type: string splitters: type: array items: title: SplitterDTO type: object properties: rfId: type: string name: type: string resId: type: string alias: type: string layer: type: string qrCode: type: string remark: type: string vendor: type: string barcode: type: string modelId: type: string customTag: type: string refLandmark: type: string inPortNumber: type: string outPortNumber: type: string unevenSplitRatio: type: string refHolderOdnDevice: type: string landmarks: type: array items: title: LandmarkDTO type: object properties: name: type: string type: type: string floor: type: string resId: type: string alias: type: string remark: type: string address: type: string latitude: type: string longitude: type: string odnDevices: type: array items: title: OdnDeviceDTO type: object properties: name: type: string rfId: type: string resId: type: string alias: type: string remark: type: string modelId: type: string barcode: type: string customTag: type: string deviceType: type: string refLandmark: type: string totalPortCount: type: string lifeCycleStatus: type: string availablePortCount: type: string cableSegments: type: array items: title: CableSegmentDTO type: object properties: name: type: string alias: type: string resId: type: string length: type: string refAEndLandmark: type: string refZEndLandmark: type: string aEndCoiledLength: type: string zEndCoiledLength: type: string com_mtn_aggregator_models_response_deviceinformation_DeviceResourceOutputDTO: title: DeviceResourceOutputDTO type: object properties: refResource: title: RefResourceDTO type: object properties: neInfos: title: NeInfoDTO type: object properties: neIp: type: string resId: type: string onus: type: array items: title: OnuDTO type: object properties: sn: type: string mac: type: string name: type: string resId: type: string onuId: type: string onuClass: type: string ponPorts: type: array items: title: PonPortDTO type: object properties: name: type: string neIp: type: string resId: type: string splitters: type: array items: title: SplitterDTO type: object properties: rfId: type: string name: type: string resId: type: string alias: type: string layer: type: string qrCode: type: string remark: type: string vendor: type: string barcode: type: string modelId: type: string customTag: type: string refLandmark: type: string inPortNumber: type: string outPortNumber: type: string unevenSplitRatio: type: string refHolderOdnDevice: type: string landmarks: type: array items: title: LandmarkDTO type: object properties: name: type: string type: type: string floor: type: string resId: type: string alias: type: string remark: type: string address: type: string latitude: type: string longitude: type: string odnDevices: type: array items: title: OdnDeviceDTO type: object properties: name: type: string rfId: type: string resId: type: string alias: type: string remark: type: string modelId: type: string barcode: type: string customTag: type: string deviceType: type: string refLandmark: type: string totalPortCount: type: string lifeCycleStatus: type: string availablePortCount: type: string cableSegments: type: array items: title: CableSegmentDTO type: object properties: name: type: string alias: type: string resId: type: string length: type: string refAEndLandmark: type: string refZEndLandmark: type: string aEndCoiledLength: type: string zEndCoiledLength: type: string odnDeviceRelation: title: OdnDeviceRelationDTO type: object properties: odnDevice: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_OdnDeviceDTO' inPortInfos: type: array items: title: PortInfoDTO type: object properties: portName: type: string refResourceType: type: string refResourceResId: type: string refCableSegments: type: array items: type: string outPortInfos: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_PortInfoDTO' neInfo: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_NeInfoDTO' onus: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_OnuDTO' odms: type: array items: title: OdmDTO type: object properties: name: type: string role: type: string resId: type: string fiberCoresNum: type: integer format: int32 refParentOdnDevice: type: string ponPort: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_PonPortDTO' cables: type: array items: title: CableGrp type: object properties: type: type: string name: type: string resId: type: string alias: type: string remark: type: string fiberCores: type: integer format: int32 refAEndLandmark: type: string refZEndLandmark: type: string ponLinks: type: array items: title: PonLinkDTO type: object properties: resId: type: string name: type: string alias: type: string aEndType: type: string zEndType: type: string refZEndOnu: type: string refAEndLtp: type: string refParentNe: type: string refAEndSplitter: type: string refZEndSplitter: type: string landmarks: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_LandmarkDTO' splitters: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_SplitterDTO' odnDevices: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_OdnDeviceDTO' fiberRoutes: type: array items: title: FiberRouteDTO type: object properties: aEndType: type: string refAEnd: type: string zEndType: type: string refZEnd: type: string aEndFiberCoreLabel: type: string zEndFiberCoreLabel: type: string cableSegmentRelations: type: array items: title: CableSegmentRelationDTO type: object properties: cableSegment: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_CableSegmentDTO' relation: title: RelationDTO type: object properties: refAEnd: type: string refZEnd: type: string aEndType: type: string zEndType: type: string refAEndPort: type: string refZEndPort: type: string com_mtn_aggregator_models_request_json_Characteristic: title: Characteristic type: object properties: name: type: string value: type: string com_mtn_aggregator_models_response_DeviceSpecificationResponse: title: DeviceSpecificationResponse type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string statusCode: type: string data: type: array items: title: DeviceSpecification type: object properties: name: type: string description: type: string com_mtn_aggregator_models_response_deviceinformation_OdmDTO: title: OdmDTO type: object properties: name: type: string role: type: string resId: type: string fiberCoresNum: type: integer format: int32 refParentOdnDevice: type: string com_mtn_aggregator_models_response_deviceinformation_NeInfoDTO: title: NeInfoDTO type: object properties: neIp: type: string resId: type: string com_mtn_aggregator_models_request_json_RelatedParty: title: RelatedParty type: object properties: id: type: string name: type: string com_mtn_aggregator_models_response_deviceinformation_OdnDeviceDTO: title: OdnDeviceDTO type: object properties: name: type: string rfId: type: string resId: type: string alias: type: string remark: type: string modelId: type: string barcode: type: string customTag: type: string deviceType: type: string refLandmark: type: string totalPortCount: type: string lifeCycleStatus: type: string availablePortCount: type: string com_mtn_aggregator_models_response_deviceinformation_CableSegmentDTO: title: CableSegmentDTO type: object properties: name: type: string alias: type: string resId: type: string length: type: string refAEndLandmark: type: string refZEndLandmark: type: string aEndCoiledLength: type: string zEndCoiledLength: type: string APIError: title: APIError required: - statusCode - statusMessage type: object properties: statusCode: type: string description: Error status code example: "400" statusMessage: type: string description: Human-readable error message example: Bad request. Invalid parameters provided. supportMessage: type: string description: Technical support message or error code for troubleshooting example: VALIDATION_ERROR transactionId: type: string description: Transaction identifier for tracking and correlation example: "1234567890" sequenceNo: type: string description: Sequence number for request tracking example: "20250115120000001" timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time example: 2025-01-15T12:00:00Z path: type: string description: API endpoint path where the error occurred example: /api/v1/resource method: type: string description: HTTP method of the request that caused the error example: POST downstreamStatusCode: type: string description: Downstream service error code if applicable description: Generic MADAPI error response structure example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z com_mtn_aggregator_models_request_json_IotDeviceRequest: title: IotDeviceRequest type: object properties: description: type: string deviceType: type: string versionNumber: type: string name: type: string deviceState: type: string lifecycleState: type: string characteristic: type: array items: title: Characteristic type: object properties: name: type: string value: type: string resourceRelationship: type: array items: title: ResourceRelationship type: object properties: resource: title: Resource type: object properties: id: type: string status: type: boolean '@type': type: string com_mtn_aggregator_models_response_deviceinformation_PortInfoDTO: title: PortInfoDTO type: object properties: portName: type: string refResourceType: type: string refResourceResId: type: string refCableSegments: type: array items: type: string com_mtn_aggregator_models_request_json_nms_ResourceRelationship: title: ResourceRelationship type: object properties: resource: title: Resource type: object properties: id: type: string status: type: boolean com_mtn_aggregator_models_response_deviceinformation_CableGrp: title: CableGrp type: object properties: type: type: string name: type: string resId: type: string alias: type: string remark: type: string fiberCores: type: integer format: int32 refAEndLandmark: type: string refZEndLandmark: type: string com_mtn_aggregator_models_response_deviceinformation_FiberRouteDTO: title: FiberRouteDTO type: object properties: aEndType: type: string refAEnd: type: string zEndType: type: string refZEnd: type: string aEndFiberCoreLabel: type: string zEndFiberCoreLabel: type: string com_mtn_aggregator_models_response_deviceinformation_PonPortDTO: title: PonPortDTO type: object properties: name: type: string neIp: type: string resId: type: string com_mtn_aggregator_models_response_deviceinformation_SplitterDTO: title: SplitterDTO type: object properties: rfId: type: string name: type: string resId: type: string alias: type: string layer: type: string qrCode: type: string remark: type: string vendor: type: string barcode: type: string modelId: type: string customTag: type: string refLandmark: type: string inPortNumber: type: string outPortNumber: type: string unevenSplitRatio: type: string refHolderOdnDevice: type: string com_mtn_aggregator_models_response_deviceinformation_RelationDTO: title: RelationDTO type: object properties: refAEnd: type: string refZEnd: type: string aEndType: type: string zEndType: type: string refAEndPort: type: string refZEndPort: type: string com_mtn_aggregator_models_response_deviceinformation_LandmarkDTO: title: LandmarkDTO type: object properties: name: type: string type: type: string floor: type: string resId: type: string alias: type: string remark: type: string address: type: string latitude: type: string longitude: type: string com_mtn_aggregator_models_request_json_InternetSettings: title: InternetSettings type: object properties: id: type: string name: type: string description: type: string isBundle: type: boolean relatedParty: type: array items: title: RelatedParty type: object properties: id: type: string name: type: string channel: type: array items: title: ResourceSpecCharacteristic type: object properties: id: type: string value: type: string name: type: string resourceSpecCharacteristic: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_request_ResourceSpecCharacteristic' com_mtn_aggregator_models_response_deviceinformation_OdnDeviceRelationDTO: title: OdnDeviceRelationDTO type: object properties: odnDevice: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_OdnDeviceDTO' inPortInfos: type: array items: title: PortInfoDTO type: object properties: portName: type: string refResourceType: type: string refResourceResId: type: string refCableSegments: type: array items: type: string outPortInfos: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_response_deviceinformation_PortInfoDTO' com_mtn_aggregator_models_request_json_nms_Resource: title: Resource type: object properties: id: type: string status: type: boolean com_mtn_aggregator_models_response_deviceinformation_PonLinkDTO: title: PonLinkDTO type: object properties: resId: type: string name: type: string alias: type: string aEndType: type: string zEndType: type: string refZEndOnu: type: string refAEndLtp: type: string refParentNe: type: string refAEndSplitter: type: string refZEndSplitter: type: string com_mtn_aggregator_models_response_DeviceSpecification: title: DeviceSpecification type: object properties: name: type: string description: type: string com_mtn_aggregator_models_response_deviceinformation_OnuDTO: title: OnuDTO type: object properties: sn: type: string mac: type: string name: type: string resId: type: string onuId: type: string onuClass: type: string com_mtn_aggregator_models_request_ResourceSpecCharacteristic: title: ResourceSpecCharacteristic type: object properties: id: type: string value: type: string name: type: string securitySchemes: OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://api.mtn.com/v1/oauth/access_token scopes: {} Bearer: type: http description: Bearer token received from OAuth2.0 authentication with the MADAPI scheme: bearer bearerFormat: JWT