For every single of operation on the entities use the following templates and provide sample REST notification POST calls.
It is assumed that the Pub/Sub uses the Register and UnRegister mechanisms described in the REST Guidelines reproduced below.
REGISTER LISTENER POST /hub
Description :
Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics. Subsequent POST calls will be rejected by the service if it does not support multiple listeners. In this case DELETE /api/hub/{id} must be called before an endpoint can be created again.
Behavior :
Returns HTTP/1.1 status code 204 if the request was successful.
Returns HTTP/1.1 status code 409 if request is not successful.
REQUEST |
POST /api/hub
Accept: application/json
{"callback": "http://in.listener.com"} |
RESPONSE |
201
Content-Type: application/json
Location: /api/hub/42
{"id":"42","callback":"http://in.listener.com","query":null} |
UNREGISTER LISTENER DELETE hub/{id}
Description :
Clears the communication endpoint address that was set by creating the Hub.
Behavior :
Returns HTTP/1.1 status code 204 if the request was successful.
Returns HTTP/1.1 status code 404 if the resource is not found.
REQUEST |
DELETE /api/hub/{id}
Accept: application/json |
RESPONSE |
204 |
publish adhocCollectionAVCN POST /listener
Description:
Publish the changes to adhocCollection for the following attributes:
- lastModifiedTime
- AdminState
- jobPriority
- executionstate
- scheduleDef
- Id
- sourceTime
- ObjectType
Behavior:
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
REQUEST |
POST /client/listener
Accept: application/json
{ "event":{
" lastModifiedTime": "",
"AdminState": "UNLOCKED",
"jobPriority": "5",
"executionState" : "Executing",
"scheduleDefinition": {
"type": "RecurringScheduleDefinition",
"scheduleInfo": {
"scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530",
"scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530"
}
},
"id": "collJob001",
"sourceTime" : "11-26-2014 16:00:00 +0530",
"ObjectType" : "AdhocCollection" }, "eventType": "adhocCollectionAVCN " } |
RESPONSE |
201
Content-Type: application/json |
publish measurementCollectionJobAVCN POST /listener
Description:
Publish the changes to measurementCollectionJob for the following attributes:
- reportingPeriod
- granularity
- monitoredObjectsCriteria
- AdminState
- jobPriority
- executionstate
- scheduleDef
- Id
- sourceTime
- ObjectType
Behavior:
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
REQUEST |
POST /client/listener
Accept: application/json
{ "event":{
"reportingPeriod": "R_15M",
"granularity": "G_15M",
"monitoredObjectsCriteria": {
"type": "MonitoredClassCriteria",
"monitoredObjectInfo": {
"monitoredObjectClass": "SDH-Route"
}
},
"AdminState": "UNLOCKED",
"jobPriority": "5",
"executionState" : "Executing",
"scheduleDefinition": {
"type": "RecurringScheduleDefinition",
"scheduleInfo": {
"scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530",
"scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530"
}
},
"id": "collJob001",
"sourceTime" : "11-26-2014 16:00:00 +0530",
"ObjectType" : "AdhocCollection"},"eventType": " MeasurementCollectionJobAVCN "} |
RESPONSE |
201
Content-Type: application/json |
publish measurementProductionJobAVCN POST /listener
Description:
Publish the changes to MeasurementProductionJob for the following attributes:
- granularity
- monitoredObjectsCriteria
- AdminState
- jobPriority
- executionstate
- scheduleDef
- Id
- sourceTime
- ObjectType
Behavior:
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
REQUEST |
POST /client/listener
Accept: application/json
{ "event":{
"granularity": "G_15M",
"monitoredObjectsCriteria": {
"type": "MonitoredClassCriteria",
"monitoredObjectInfo": {
"monitoredObjectClass": "SDH-Route"
}
},
"AdminState": "UNLOCKED",
"jobPriority": "5",
"executionState" : "Executing",
"scheduleDefinition": {
"type": "RecurringScheduleDefinition",
"scheduleInfo": {
"scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530",
"scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530"
}
},
"id": "collJob001",
"sourceTime" : "11-26-2014 16:00:00 +0530",
"ObjectType" : "AdhocCollection"},"eventType": " MeasurementProductionJobAVCN"} |
RESPONSE |
201
Content-Type: application/json |
publish measurementCollectionJobOCN POST /listener
Description:
Publish the creation of MeasurementCollectionJob.
Behavior:
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
REQUEST |
200
Content-Type: application/json
{
"event":{
"measurementCollectionJob": {
"id": "collJob001",
"creationTime": "11-26-2014 16:00:00 +0530",
"lastModifiedTime": "11-26-2014 16:00:00 +0530",
"adminState": "2",
"jobPriority": "5",
"executionState": "ExecutionState",
"scheduleDefinition": {
"type": "RecurringScheduleDefinition",
"scheduleInfo": {
"scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530",
"scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530"
}
},
"consumingApplicationId": "CONSUMER001",
"producingApplicationId": "NE001",
"reportingPeriod": "R_15M",
"granularity": "G_15M",
"monitoredObjectsCriteria": {
"type": "MonitoredClassCriteria",
"monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" }
},
"protocolTransferData": {
"transportProtocol": "FILE_TRANSFER",
"fileTransferData": {
"fileLocation": "\\pm pmdata",
"fileFormat": "XML",
"compressionType": "NO_COMPRESSION",
"retentionDuration": {
"units": "MINUTES",
"amount": "180"
},
"packingType": "NO_PACKING"
}
},
"reportingPeriod": "R_15M",
"outputFormat": "3GPP",
"performanceIndicatorGroup": [
{ "name": "TRANSPORT01" },
{ "name": "TRANSPORT02" }
],
"performanceIndicatorSpecification": [
{ "name": "ES" },
{ "name": "SES" },
{ "name": "UAS" },
{ "name": "BBE" },
{ "name": "FEBBE" },
{ "name": "FEES" },
{ "name": "FESES" },
{ "name": "FEUAS" },
{ "name": "UASBID" },
{ "name": "LINK_AVAIL_PCT" }
]
},
"sourceTime" : "11-26-2014 16:00:00 +0530",
"ObjectType" : "AdhocCollection"
},
"eventType": " MeasurementCollectionJobOCN "
} |
RESPONSE |
201
Content-Type: application/json |
publish measurementProductionJobOCN POST /listener
Description:
Publish the creation of MeasurementProductionJob.
Behavior:
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
REQUEST |
POST /client/listener
Accept: application/json
{ "event":{
"id": "prodJob001",
"creationTime": "11-26-2013 16:00:00 +0530",
"lastModifiedTime": "11-26-2013 16:00:00 +0530",
"adminState": "2",
"jobPriority": "5",
"executionState": "ExecutionState",
"scheduleDefinition": {
"type": "RecurringScheduleDefinition",
"scheduleInfo": {
"scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530",
"scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530"
}
},
"consumingApplicationId": "CONSUMER001",
"producingApplicationId": "NE001",
"granularity": "G_15M",
"monitoredObjectsCriteria": {
"type": "MonitoredClassCriteria",
"monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" }
},
"protocolTransferData": {
"transportProtocol": "FILE_TRANSFER",
"fileTransferData": {
"fileLocation": "\\pm pmdata",
"fileFormat": "XML",
"compressionType": "NO_COMPRESSION",
"retentionDuration": {
"units": "MINUTES",
"amount": "180"
},
"packingType": "NO_PACKING"
}
},
"performanceIndicatorGroup": [
{ "name": "TRANSPORT01" },
{ "name": "TRANSPORT02" }
],
"performanceIndicatorSpecification": [
{ "name": "ES" },
{ "name": "SES" },
{ "name": "UAS" },
{ "name": "BBE" },
{ "name": "FEBBE" },
{ "name": "FEES" },
{ "name": "FESES" },
{ "name": "FEUAS" },
{ "name": "UASBID" },
{ "name": "LINK_AVAIL_PCT" }
]
},
"sourceTime" : "11-26-2014 16:00:00 +0530",
"ObjectType" : "AdhocCollection"
}"eventType": " MeasurementProductionJobOCN "} |
RESPONSE |
201
Content-Type: application/json |
publish measurementCollectionJobODelN POST /listener
Description:
Publish the deletion of MeasurementCollectionJob.
Behavior:
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
REQUEST |
200
Content-Type: application/json
{
"event":{
"measurementCollectionJob": {
"id": "collJob001",
"creationTime": "11-26-2014 16:00:00 +0530",
"lastModifiedTime": "11-26-2014 16:00:00 +0530",
"adminState": "2",
"jobPriority": "5",
"executionState": "ExecutionState",
"scheduleDefinition": {
"type": "RecurringScheduleDefinition",
"scheduleInfo": {
"scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530",
"scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530"
}
},
"consumingApplicationId": "CONSUMER001",
"producingApplicationId": "NE001",
"reportingPeriod": "R_15M",
"granularity": "G_15M",
"monitoredObjectsCriteria": {
"type": "MonitoredClassCriteria",
"monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" }
},
"protocolTransferData": {
"transportProtocol": "FILE_TRANSFER",
"fileTransferData": {
"fileLocation": "\\pm pmdata",
"fileFormat": "XML",
"compressionType": "NO_COMPRESSION",
"retentionDuration": {
"units": "MINUTES",
"amount": "180"
},
"packingType": "NO_PACKING"
}
},
"reportingPeriod": "R_15M",
"outputFormat": "3GPP",
"performanceIndicatorGroup": [
{ "name": "TRANSPORT01" },
{ "name": "TRANSPORT02" }
],
"performanceIndicatorSpecification": [
{ "name": "ES" },
{ "name": "SES" },
{ "name": "UAS" },
{ "name": "BBE" },
{ "name": "FEBBE" },
{ "name": "FEES" },
{ "name": "FESES" },
{ "name": "FEUAS" },
{ "name": "UASBID" },
{ "name": "LINK_AVAIL_PCT" }
]
},
"sourceTime" : "11-26-2014 16:00:00 +0530",
"ObjectType" : "AdhocCollection"
},
"eventType": " MeasurementCollectionJobODelN "
} |
RESPONSE |
201
Content-Type: application/json |
publish measurementProductionJobODelN POST /listener
Description:
Publish the deletion of MeasurementProductionJob.
Behavior:
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
REQUEST |
POST /client/listener
Accept: application/json
{ "event":{
"id": "prodJob001",
"creationTime": "11-26-2013 16:00:00 +0530",
"lastModifiedTime": "11-26-2013 16:00:00 +0530",
"adminState": "2",
"jobPriority": "5",
"executionState": "ExecutionState",
"scheduleDefinition": {
"type": "RecurringScheduleDefinition",
"scheduleInfo": {
"scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530",
"scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530"
}
},
"consumingApplicationId": "CONSUMER001",
"producingApplicationId": "NE001",
"granularity": "G_15M",
"monitoredObjectsCriteria": {
"type": "MonitoredClassCriteria",
"monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" }
},
"protocolTransferData": {
"transportProtocol": "FILE_TRANSFER",
"fileTransferData": {
"fileLocation": "\\pm pmdata",
"fileFormat": "XML",
"compressionType": "NO_COMPRESSION",
"retentionDuration": {
"units": "MINUTES",
"amount": "180"
},
"packingType": "NO_PACKING"
}
},
"performanceIndicatorGroup": [
{ "name": "TRANSPORT01" },
{ "name": "TRANSPORT02" }
],
"performanceIndicatorSpecification": [
{ "name": "ES" },
{ "name": "SES" },
{ "name": "UAS" },
{ "name": "BBE" },
{ "name": "FEBBE" },
{ "name": "FEES" },
{ "name": "FESES" },
{ "name": "FEUAS" },
{ "name": "UASBID" },
{ "name": "LINK_AVAIL_PCT" }
]
},
"sourceTime" : "11-26-2014 16:00:00 +0530",
"ObjectType" : "AdhocCollection"
}"eventType": " MeasurementProductionJobODelN "} |
RESPONSE |
201
Content-Type: application/json |
publish filesReady POST /listener
Description:
Publish the filesReady event.
Behavior:
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
REQUEST |
POST /client/listener
Accept: application/json
{
"event": {
"id": "1",
"compressionType": "NO_COMPRESSION",
"packingType": "NO_PACKING",
"fileInfo": {
"fileName": "SDH-NE_SDH-Route_20131126163000+0530_900.csv",
"fileLocation": "/pm/pmdata/collJob001/",
"readyTime": "11-26-2014 16:30:00 +0530"
},
"fileTransferStatus": "COMPLETE"
},
"eventType": "FilesReady"
} |
RESPONSE |
201
Content-Type: application/json |
publish filesPreparationError POST /listener
Description:
Publish the filespreparationerror event.
Behavior:
Returns HTTP/1.1 status code 201 if the service is able to set the configuration.
REQUEST |
POST /client/listener
Accept: application/json
{
"event": {
"id": "1",
"compressionType": "NO_COMPRESSION",
"packingType": "NO_PACKING",
"fileInfo": {
"fileName": "SDH-NE_SDH-Route_20131126163000+0530_900.csv",
"fileLocation": "/pm/pmdata/collJob001/",
"readyTime": "11-26-2014 16:30:00 +0530"
},
"reason": " filePreparationErrorReason ",
"description": " prepation error for link down "
},
"eventType": "FilesPreparationError"
} |
RESPONSE |
201
Content-Type: application/json |
Example see TMF REST Design Guidelines.