Chilkat Online Tools

VB.NET / Squadcast API V3 / Get Incident by ID

Back to Collection Items

' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim http As New Chilkat.Http
Dim success As Boolean

' Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = "<access_token>"

Dim sbResponseBody As New Chilkat.StringBuilder
success = http.QuickGetSb("https://api.squadcast.com/v3/incidents/:incidentID",sbResponseBody)
If (success = False) Then
    Debug.WriteLine(http.LastErrorText)
    Exit Sub
End If


Dim jResp As New Chilkat.JsonObject
jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = False

Debug.WriteLine("Response Body:")
Debug.WriteLine(jResp.Emit())

Dim respStatusCode As Integer = http.LastStatus
Debug.WriteLine("Response Status Code = " & respStatusCode)
If (respStatusCode >= 400) Then
    Debug.WriteLine("Response Header:")
    Debug.WriteLine(http.LastHeader)
    Debug.WriteLine("Failed.")
    Exit Sub
End If


' 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



Dim id As String
Dim v_type As String
Dim timeOfAssignment As String
Dim action As String
Dim assignedTo As String
Dim time As String
Dim reason As String
Dim additionalInfo As String

Dim Id As String = jResp.StringOf("data.id")
Dim Service_id As String = jResp.StringOf("data.service_id")
Dim Alert_source_id As String = jResp.StringOf("data.alert_source_id")
Dim Organization_id As String = jResp.StringOf("data.organization_id")
Dim IncidentNumber As Integer = jResp.IntOf("data.incidentNumber")
Dim Message As String = jResp.StringOf("data.message")
Dim Description As String = jResp.StringOf("data.description")
Dim Status As String = jResp.StringOf("data.status")
Dim TimeOfCreation As String = jResp.StringOf("data.timeOfCreation")
Dim Tags As String = jResp.StringOf("data.tags")
Dim Time As Integer = jResp.IntOf("data.analytics.tta.time")
Dim UserId As String = jResp.StringOf("data.analytics.tta.userId")
Dim EscalationPolicyId As String = jResp.StringOf("data.analytics.tta.escalationPolicyId")
Dim SquadId As String = jResp.StringOf("data.analytics.tta.squadId")
Dim TtrTime As Integer = jResp.IntOf("data.analytics.ttr.time")
Dim TtrUserId As String = jResp.StringOf("data.analytics.ttr.userId")
Dim TtrEscalationPolicyId As String = jResp.StringOf("data.analytics.ttr.escalationPolicyId")
Dim TtrSquadId As String = jResp.StringOf("data.analytics.ttr.squadId")
Dim Pinned_messages As String = jResp.StringOf("data.pinned_messages")
Dim Deleted As Boolean = jResp.BoolOf("data.deleted")
Dim i As Integer = 0
Dim count_i As Integer = jResp.SizeOfArray("data.assignedTo")
While i < count_i
    jResp.I = i
    id = jResp.StringOf("data.assignedTo[i].id")
    v_type = jResp.StringOf("data.assignedTo[i].type")
    timeOfAssignment = jResp.StringOf("data.assignedTo[i].timeOfAssignment")
    i = i + 1
End While
i = 0
count_i = jResp.SizeOfArray("data.logs")
While i < count_i
    jResp.I = i
    action = jResp.StringOf("data.logs[i].action")
    assignedTo = jResp.StringOf("data.logs[i].assignedTo")
    id = jResp.StringOf("data.logs[i].id")
    time = jResp.StringOf("data.logs[i].time")
    reason = jResp.StringOf("data.logs[i].reason")
    additionalInfo = jResp.StringOf("data.logs[i].additionalInfo")
    i = i + 1
End While
i = 0
count_i = jResp.SizeOfArray("data.relevantUsers")
While i < count_i
    jResp.I = i
    i = i + 1
End While
i = 0
count_i = jResp.SizeOfArray("data.relevantEscalationPolicies")
While i < count_i
    jResp.I = i
    i = i + 1
End While
i = 0
count_i = jResp.SizeOfArray("data.relevantSquads")
While i < count_i
    jResp.I = i
    i = i + 1
End While
i = 0
count_i = jResp.SizeOfArray("data.relevantSchedules")
While i < count_i
    jResp.I = i
    i = i + 1
End While
i = 0
count_i = jResp.SizeOfArray("data.relevantPeopleLogs")
While i < count_i
    jResp.I = i
    i = i + 1
End While
i = 0
count_i = jResp.SizeOfArray("data.responseNotes")
While i < count_i
    jResp.I = i
    i = i + 1
End While

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}"
    }
  ]
}