Back to Collection Items
LOCAL loHttp
LOCAL lnSuccess
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lcId
LOCAL lcV_type
LOCAL lcTimeOfAssignment
LOCAL lcAction
LOCAL lcAssignedTo
LOCAL lcTime
LOCAL lcReason
LOCAL lcAdditionalInfo
LOCAL lcId
LOCAL lcService_id
LOCAL lcAlert_source_id
LOCAL lcOrganization_id
LOCAL lnIncidentNumber
LOCAL lcMessage
LOCAL lcDescription
LOCAL lcStatus
LOCAL lcTimeOfCreation
LOCAL lcTags
LOCAL lnTime
LOCAL lcUserId
LOCAL lcEscalationPolicyId
LOCAL lcSquadId
LOCAL lnTtrTime
LOCAL lcTtrUserId
LOCAL lcTtrEscalationPolicyId
LOCAL lcTtrSquadId
LOCAL lcPinned_messages
LOCAL lnDeleted
LOCAL i
LOCAL lnCount_i
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http')
loHttp = CreateObject('Chilkat.Http')
* Adds the "Authorization: Bearer <access_token>" header.
loHttp.AuthToken = "<access_token>"
* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder')
loSbResponseBody = CreateObject('Chilkat.StringBuilder')
lnSuccess = loHttp.QuickGetSb("https://api.squadcast.com/v3/incidents/:incidentID",loSbResponseBody)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loSbResponseBody
CANCEL
ENDIF
* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject')
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0
? "Response Body:"
? loJResp.Emit()
lnRespStatusCode = loHttp.LastStatus
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
? "Response Header:"
? loHttp.LastHeader
? "Failed."
RELEASE loHttp
RELEASE loSbResponseBody
RELEASE loJResp
CANCEL
ENDIF
* Sample JSON response:
* (Sample code for parsing the JSON response is shown below)
* {
* "data": {
* "id": "5d81d9bc60e42f6b99ca4307",
* "service_id": "5d81d9687000fb6b9def7e35",
* "alert_source_id": "5a9002f082bb573a2bc779eb",
* "organization_id": "5d81d9187000fb6b9def7e32",
* "incidentNumber": 3,
* "message": "[warning] CPUThrottlingHigh",
* "assignedTo": [
* {
* "id": "5d81d9407000fb6b9def7e33",
* "type": "escalationpolicy",
* "timeOfAssignment": "2019-09-18T07:16:12.218Z"
* },
* {
* "id": "5d81d9187000fb6b9def7e31",
* "type": "user",
* "timeOfAssignment": "2019-09-20T11:06:37.838Z"
* }
* ],
* "description": "Message: 64% throttling of CPU in namespace kube-system for container autoscaler in pod calico-typha-horizontal-autoscaler-5ff7f558cc-qlm2t.\nRunbook url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-cputhrottlinghigh\nLabels\n Alertname: CPUThrottlingHigh\n Container name: autoscaler\n Namespace: kube-system\n Pod name: calico-typha-horizontal-autoscaler-5ff7f558cc-qlm2t\n Prometheus: monitoring/monitoring-prometheus-oper-prometheus\n Severity: warning\n Generator URL: http://monitoring-prometheus-oper-prometheus.monitoring:9090/graph?g0.expr=100+%2A+sum+by%28container_name%2C+pod_name%2C+namespace%29+%28increase%28container_cpu_cfs_throttled_periods_total%7Bcontainer_name%21%3D%22%22%7D%5B5m%5D%29%29+%2F+sum+by%28container_name%2C+pod_name%2C+namespace%29+%28increase%28container_cpu_cfs_periods_total%5B5m%5D%29%29+%3E+25&g0.tab=1",
* "status": "resolved",
* "timeOfCreation": "2019-09-18T07:16:12.218Z",
* "tags": null,
* "logs": [
* {
* "action": "triggered",
* "assignedTo": "escalationpolicy",
* "id": "5d81d9407000fb6b9def7e33",
* "time": "2019-09-18T07:16:12.215Z",
* "reason": "",
* "additionalInfo": null
* },
* {
* "action": "acknowledged",
* "assignedTo": "user",
* "id": "5d81d9187000fb6b9def7e31",
* "time": "2019-09-20T11:06:37.838Z",
* "reason": "",
* "additionalInfo": null
* },
* {
* "action": "resolved",
* "assignedTo": "user",
* "id": "5d81d9187000fb6b9def7e31",
* "time": "2019-09-20T11:06:40.724Z",
* "reason": "",
* "additionalInfo": null
* }
* ],
* "analytics": {
* "tta": {
* "time": 186625623,
* "userId": "5d81d9187000fb6b9def7e31",
* "escalationPolicyId": "5d81d9407000fb6b9def7e33",
* "squadId": "000000000000000000000000"
* },
* "ttr": {
* "time": 186628509,
* "userId": "5d81d9187000fb6b9def7e31",
* "escalationPolicyId": "5d81d9407000fb6b9def7e33",
* "squadId": "000000000000000000000000"
* }
* },
* "pinned_messages": null,
* "deleted": false,
* "relevantUsers": [
* ],
* "relevantEscalationPolicies": [
* ],
* "relevantSquads": [
* ],
* "relevantSchedules": [
* ],
* "relevantPeopleLogs": [
* ],
* "responseNotes": [
* ]
* }
* }
* Sample code for parsing the JSON response...
* Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
lcId = loJResp.StringOf("data.id")
lcService_id = loJResp.StringOf("data.service_id")
lcAlert_source_id = loJResp.StringOf("data.alert_source_id")
lcOrganization_id = loJResp.StringOf("data.organization_id")
lnIncidentNumber = loJResp.IntOf("data.incidentNumber")
lcMessage = loJResp.StringOf("data.message")
lcDescription = loJResp.StringOf("data.description")
lcStatus = loJResp.StringOf("data.status")
lcTimeOfCreation = loJResp.StringOf("data.timeOfCreation")
lcTags = loJResp.StringOf("data.tags")
lnTime = loJResp.IntOf("data.analytics.tta.time")
lcUserId = loJResp.StringOf("data.analytics.tta.userId")
lcEscalationPolicyId = loJResp.StringOf("data.analytics.tta.escalationPolicyId")
lcSquadId = loJResp.StringOf("data.analytics.tta.squadId")
lnTtrTime = loJResp.IntOf("data.analytics.ttr.time")
lcTtrUserId = loJResp.StringOf("data.analytics.ttr.userId")
lcTtrEscalationPolicyId = loJResp.StringOf("data.analytics.ttr.escalationPolicyId")
lcTtrSquadId = loJResp.StringOf("data.analytics.ttr.squadId")
lcPinned_messages = loJResp.StringOf("data.pinned_messages")
lnDeleted = loJResp.BoolOf("data.deleted")
i = 0
lnCount_i = loJResp.SizeOfArray("data.assignedTo")
DO WHILE i < lnCount_i
loJResp.I = i
lcId = loJResp.StringOf("data.assignedTo[i].id")
lcV_type = loJResp.StringOf("data.assignedTo[i].type")
lcTimeOfAssignment = loJResp.StringOf("data.assignedTo[i].timeOfAssignment")
i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("data.logs")
DO WHILE i < lnCount_i
loJResp.I = i
lcAction = loJResp.StringOf("data.logs[i].action")
lcAssignedTo = loJResp.StringOf("data.logs[i].assignedTo")
lcId = loJResp.StringOf("data.logs[i].id")
lcTime = loJResp.StringOf("data.logs[i].time")
lcReason = loJResp.StringOf("data.logs[i].reason")
lcAdditionalInfo = loJResp.StringOf("data.logs[i].additionalInfo")
i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("data.relevantUsers")
DO WHILE i < lnCount_i
loJResp.I = i
i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("data.relevantEscalationPolicies")
DO WHILE i < lnCount_i
loJResp.I = i
i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("data.relevantSquads")
DO WHILE i < lnCount_i
loJResp.I = i
i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("data.relevantSchedules")
DO WHILE i < lnCount_i
loJResp.I = i
i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("data.relevantPeopleLogs")
DO WHILE i < lnCount_i
loJResp.I = i
i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("data.responseNotes")
DO WHILE i < lnCount_i
loJResp.I = i
i = i + 1
ENDDO
RELEASE loHttp
RELEASE loSbResponseBody
RELEASE loJResp
Curl Command
curl -X GET
-H "Authorization: Bearer <access_token>"
https://api.squadcast.com/v3/incidents/:incidentID
Postman Collection Item JSON
{
"name": "Get Incident by ID",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{sq_pb_auth_header}}",
"type": "string"
}
]
},
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/incidents/:incidentID",
"host": [
"{{baseUrl}}"
],
"path": [
"incidents",
":incidentID"
],
"variable": [
{
"key": "incidentID",
"value": "5d81d9bc60e42f6b99ca4307"
}
]
},
"description": "- This endpoint is used to get the incident details by ID.\n- Requires `access_token` as a `Bearer {{token}}` in the `Authorization` header."
},
"response": [
{
"name": "400 Bad Request",
"originalRequest": {
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/incidents/:incidentID",
"host": [
"{{baseUrl}}"
],
"path": [
"incidents",
":incidentID"
],
"variable": [
{
"key": "incidentID",
"value": "5d81d9bc60e42f6b99ca4307"
}
]
}
},
"status": "Bad Request",
"code": 400,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Server",
"value": "nginx/1.17.7"
},
{
"key": "Date",
"value": "Tue, 07 Jul 2020 21:06:25 GMT"
},
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Vary",
"value": "Origin"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=15724800; includeSubDomains"
},
{
"key": "Content-Encoding",
"value": "gzip"
}
],
"cookie": [
],
"body": "{\n \"meta\": {\n \"status\": 400,\n \"error_message\": \"invalid incident id\"\n }\n}"
},
{
"name": "404 Not Found",
"originalRequest": {
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/incidents/:incidentID",
"host": [
"{{baseUrl}}"
],
"path": [
"incidents",
":incidentID"
],
"variable": [
{
"key": "incidentID",
"value": "5d81d9bc60e42f6b99ca4307"
}
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Server",
"value": "nginx/1.17.7"
},
{
"key": "Date",
"value": "Tue, 07 Jul 2020 21:06:25 GMT"
},
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Vary",
"value": "Origin"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=15724800; includeSubDomains"
},
{
"key": "Content-Encoding",
"value": "gzip"
}
],
"cookie": [
],
"body": "{\n \"meta\": {\n \"status\": 404,\n \"error_message\": \"incident not found\"\n }\n}"
},
{
"name": "401 Unauthorized",
"originalRequest": {
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/incidents/:incidentID",
"host": [
"{{baseUrl}}"
],
"path": [
"incidents",
":incidentID"
],
"variable": [
{
"key": "incidentID",
"value": "5d81d9bc60e42f6b99ca4307"
}
]
}
},
"status": "Unauthorized",
"code": 401,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Server",
"value": "nginx/1.17.7"
},
{
"key": "Date",
"value": "Tue, 07 Jul 2020 21:06:25 GMT"
},
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Vary",
"value": "Origin"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=15724800; includeSubDomains"
},
{
"key": "Content-Encoding",
"value": "gzip"
}
],
"cookie": [
],
"body": "{\n \"meta\": {\n \"status\": 401,\n \"error_message\": \"<string>\"\n }\n}"
},
{
"name": "403 - Forbidden",
"originalRequest": {
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/incidents/:incidentID",
"host": [
"{{baseUrl}}"
],
"path": [
"incidents",
":incidentID"
],
"variable": [
{
"key": "incidentID",
"value": "5d81d9bc60e42f6b99ca4307"
}
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Server",
"value": "nginx/1.17.7"
},
{
"key": "Date",
"value": "Tue, 07 Jul 2020 21:06:25 GMT"
},
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Vary",
"value": "Origin"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=15724800; includeSubDomains"
},
{
"key": "Content-Encoding",
"value": "gzip"
}
],
"cookie": [
],
"body": "{\n \"meta\": {\n \"status\": 403,\n \"error_message\": \"<string>\"\n }\n}"
},
{
"name": "200 OK",
"originalRequest": {
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/incidents/:incidentID",
"host": [
"{{baseUrl}}"
],
"path": [
"incidents",
":incidentID"
],
"variable": [
{
"key": "incidentID",
"value": "5d81d9bc60e42f6b99ca4307"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Server",
"value": "nginx/1.17.7"
},
{
"key": "Date",
"value": "Tue, 07 Jul 2020 21:06:25 GMT"
},
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Vary",
"value": "Origin"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=15724800; includeSubDomains"
},
{
"key": "Content-Encoding",
"value": "gzip"
}
],
"cookie": [
],
"body": "{\n \"data\": {\n \"id\": \"5d81d9bc60e42f6b99ca4307\",\n \"service_id\": \"5d81d9687000fb6b9def7e35\",\n \"alert_source_id\": \"5a9002f082bb573a2bc779eb\",\n \"organization_id\": \"5d81d9187000fb6b9def7e32\",\n \"incidentNumber\": 3,\n \"message\": \"[warning] CPUThrottlingHigh\",\n \"assignedTo\": [\n {\n \"id\": \"5d81d9407000fb6b9def7e33\",\n \"type\": \"escalationpolicy\",\n \"timeOfAssignment\": \"2019-09-18T07:16:12.218Z\"\n },\n {\n \"id\": \"5d81d9187000fb6b9def7e31\",\n \"type\": \"user\",\n \"timeOfAssignment\": \"2019-09-20T11:06:37.838Z\"\n }\n ],\n \"description\": \"Message: 64% throttling of CPU in namespace kube-system for container autoscaler in pod calico-typha-horizontal-autoscaler-5ff7f558cc-qlm2t.\\nRunbook url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-cputhrottlinghigh\\nLabels\\n Alertname: CPUThrottlingHigh\\n Container name: autoscaler\\n Namespace: kube-system\\n Pod name: calico-typha-horizontal-autoscaler-5ff7f558cc-qlm2t\\n Prometheus: monitoring/monitoring-prometheus-oper-prometheus\\n Severity: warning\\n Generator URL: http://monitoring-prometheus-oper-prometheus.monitoring:9090/graph?g0.expr=100+%2A+sum+by%28container_name%2C+pod_name%2C+namespace%29+%28increase%28container_cpu_cfs_throttled_periods_total%7Bcontainer_name%21%3D%22%22%7D%5B5m%5D%29%29+%2F+sum+by%28container_name%2C+pod_name%2C+namespace%29+%28increase%28container_cpu_cfs_periods_total%5B5m%5D%29%29+%3E+25&g0.tab=1\",\n \"status\": \"resolved\",\n \"timeOfCreation\": \"2019-09-18T07:16:12.218Z\",\n \"tags\": null,\n \"logs\": [\n {\n \"action\": \"triggered\",\n \"assignedTo\": \"escalationpolicy\",\n \"id\": \"5d81d9407000fb6b9def7e33\",\n \"time\": \"2019-09-18T07:16:12.215Z\",\n \"reason\": \"\",\n \"additionalInfo\": null\n },\n {\n \"action\": \"acknowledged\",\n \"assignedTo\": \"user\",\n \"id\": \"5d81d9187000fb6b9def7e31\",\n \"time\": \"2019-09-20T11:06:37.838Z\",\n \"reason\": \"\",\n \"additionalInfo\": null\n },\n {\n \"action\": \"resolved\",\n \"assignedTo\": \"user\",\n \"id\": \"5d81d9187000fb6b9def7e31\",\n \"time\": \"2019-09-20T11:06:40.724Z\",\n \"reason\": \"\",\n \"additionalInfo\": null\n }\n ],\n \"analytics\": {\n \"tta\": {\n \"time\": 186625623,\n \"userId\": \"5d81d9187000fb6b9def7e31\",\n \"escalationPolicyId\": \"5d81d9407000fb6b9def7e33\",\n \"squadId\": \"000000000000000000000000\"\n },\n \"ttr\": {\n \"time\": 186628509,\n \"userId\": \"5d81d9187000fb6b9def7e31\",\n \"escalationPolicyId\": \"5d81d9407000fb6b9def7e33\",\n \"squadId\": \"000000000000000000000000\"\n }\n },\n \"pinned_messages\": null,\n \"deleted\": false,\n \"relevantUsers\": [],\n \"relevantEscalationPolicies\": [],\n \"relevantSquads\": [],\n \"relevantSchedules\": [],\n \"relevantPeopleLogs\": [],\n \"responseNotes\": []\n }\n}"
}
]
}