Back to Collection Items
Use ChilkatAx-9.5.0-win32.pkg
Procedure Test
Handle hoHttp
Boolean iSuccess
Variant vQueryParams
Handle hoQueryParams
Variant vResp
Handle hoResp
Variant vSbResponseBody
Handle hoSbResponseBody
Handle hoJResp
Integer iRespStatusCode
String sCanceled
String sCreated
String sDisplay_timezone
String sMessage
String sModified
String sMonitor_id
String sMute_first_recovery_notification
String sV_End
String sStart
String sTimezone
String sScope
String sStatus
String sId
String sId
String sV_Type
String sDataId
String sDataType
String sV_type
Integer j
Integer iCount_j
String sStrVal
String sDuration
String sRrule
String sStart
String sCreated_at
String sDisabled
String sV_Email
String sHandle
String sIcon
String sModified_at
String sName
String sService_account
String sAttributesStatus
String sTitle
String sVerified
String sTotal_filtered_count
Integer i
Integer iCount_i
String sTemp1
Boolean bTemp1
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
Get Create (RefClass(cComChilkatJsonObject)) To hoQueryParams
If (Not(IsComObjectCreated(hoQueryParams))) Begin
Send CreateComObject of hoQueryParams
End
Get ComUpdateString Of hoQueryParams "current_only" "<boolean>" To iSuccess
Get ComUpdateString Of hoQueryParams "include" "<string>" To iSuccess
Get ComUpdateInt Of hoQueryParams "page[offset]" 0 To iSuccess
Get ComUpdateInt Of hoQueryParams "page[limit]" 30 To iSuccess
Send ComSetRequestHeader To hoHttp "Accept" "application/json"
Get pvComObject of hoQueryParams to vQueryParams
Get ComQuickRequestParams Of hoHttp "GET" "https://api.app.ddog-gov.com/api/v2/downtime" vQueryParams To vResp
If (IsComObject(vResp)) Begin
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
Set pvComObject Of hoResp To vResp
End
Get ComLastMethodSuccess Of hoHttp To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
If (Not(IsComObjectCreated(hoJResp))) Begin
Send CreateComObject of hoJResp
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
Set ComEmitCompact Of hoJResp To False
Showln "Response Body:"
Get ComEmit Of hoJResp To sTemp1
Showln sTemp1
Get ComStatusCode Of hoResp To iRespStatusCode
Showln "Response Status Code = " iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Header:"
Get ComHeader Of hoResp To sTemp1
Showln sTemp1
Showln "Failed."
Send Destroy of hoResp
Procedure_Return
End
Send Destroy of hoResp
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "data": [
// {
// "attributes": {
// "canceled": "<dateTime>",
// "created": "<dateTime>",
// "display_timezone": "UTC",
// "message": "<string>",
// "modified": "<dateTime>",
// "monitor_identifier": {
// "monitor_id": "<long>"
// },
// "mute_first_recovery_notification": "<boolean>",
// "notify_end_states": [
// "no data",
// "no data"
// ],
// "notify_end_types": [
// "canceled",
// "canceled"
// ],
// "schedule": {
// "recurrences": [
// {
// "duration": "<string>",
// "rrule": "<string>",
// "start": "<string>"
// }
// ],
// "current_downtime": {
// "end": "<dateTime>",
// "start": "<dateTime>"
// },
// "timezone": "UTC"
// },
// "scope": "<string>",
// "status": "active"
// },
// "id": "<string>",
// "relationships": {
// "created_by": {
// "data": {
// "id": "<string>",
// "type": "users"
// }
// },
// "monitor": {
// "data": {
// "id": "<string>",
// "type": "monitors"
// }
// }
// },
// "type": "downtime"
// },
// {
// "attributes": {
// "canceled": "<dateTime>",
// "created": "<dateTime>",
// "display_timezone": "UTC",
// "message": "<string>",
// "modified": "<dateTime>",
// "monitor_identifier": {
// "monitor_id": "<long>"
// },
// "mute_first_recovery_notification": "<boolean>",
// "notify_end_states": [
// "warn",
// "alert"
// ],
// "notify_end_types": [
// "canceled",
// "canceled"
// ],
// "schedule": {
// "recurrences": [
// {
// "duration": "<string>",
// "rrule": "<string>",
// "start": "<string>"
// }
// ],
// "current_downtime": {
// "end": "<dateTime>",
// "start": "<dateTime>"
// },
// "timezone": "UTC"
// },
// "scope": "<string>",
// "status": "scheduled"
// },
// "id": "<string>",
// "relationships": {
// "created_by": {
// "data": {
// "id": "<string>",
// "type": "users"
// }
// },
// "monitor": {
// "data": {
// "id": "<string>",
// "type": "monitors"
// }
// }
// },
// "type": "downtime"
// }
// ],
// "included": [
// {
// "attributes": {
// "created_at": "<dateTime>",
// "disabled": "<boolean>",
// "email": "<string>",
// "handle": "<string>",
// "icon": "<string>",
// "modified_at": "<dateTime>",
// "name": "<string>",
// "service_account": "<boolean>",
// "status": "<string>",
// "title": "<string>",
// "verified": "<boolean>"
// },
// "id": "<string>",
// "relationships": {
// "org": {
// "data": {
// "id": "<string>",
// "type": "orgs"
// }
// },
// "other_orgs": {
// "data": [
// {
// "id": "<string>",
// "type": "orgs"
// },
// {
// "id": "<string>",
// "type": "orgs"
// }
// ]
// },
// "other_users": {
// "data": [
// {
// "id": "<string>",
// "type": "users"
// },
// {
// "id": "<string>",
// "type": "users"
// }
// ]
// },
// "roles": {
// "data": [
// {
// "id": "<string>",
// "type": "roles"
// },
// {
// "id": "<string>",
// "type": "roles"
// }
// ]
// }
// },
// "type": "users"
// },
// {
// "attributes": {
// "created_at": "<dateTime>",
// "disabled": "<boolean>",
// "email": "<string>",
// "handle": "<string>",
// "icon": "<string>",
// "modified_at": "<dateTime>",
// "name": "<string>",
// "service_account": "<boolean>",
// "status": "<string>",
// "title": "<string>",
// "verified": "<boolean>"
// },
// "id": "<string>",
// "relationships": {
// "org": {
// "data": {
// "id": "<string>",
// "type": "orgs"
// }
// },
// "other_orgs": {
// "data": [
// {
// "id": "<string>",
// "type": "orgs"
// },
// {
// "id": "<string>",
// "type": "orgs"
// }
// ]
// },
// "other_users": {
// "data": [
// {
// "id": "<string>",
// "type": "users"
// },
// {
// "id": "<string>",
// "type": "users"
// }
// ]
// },
// "roles": {
// "data": [
// {
// "id": "<string>",
// "type": "roles"
// },
// {
// "id": "<string>",
// "type": "roles"
// }
// ]
// }
// },
// "type": "users"
// }
// ],
// "meta": {
// "page": {
// "total_filtered_count": "<long>"
// }
// }
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
Get ComStringOf Of hoJResp "meta.page.total_filtered_count" To sTotal_filtered_count
Move 0 To i
Get ComSizeOfArray Of hoJResp "data" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComStringOf Of hoJResp "data[i].attributes.canceled" To sCanceled
Get ComStringOf Of hoJResp "data[i].attributes.created" To sCreated
Get ComStringOf Of hoJResp "data[i].attributes.display_timezone" To sDisplay_timezone
Get ComStringOf Of hoJResp "data[i].attributes.message" To sMessage
Get ComStringOf Of hoJResp "data[i].attributes.modified" To sModified
Get ComStringOf Of hoJResp "data[i].attributes.monitor_identifier.monitor_id" To sMonitor_id
Get ComStringOf Of hoJResp "data[i].attributes.mute_first_recovery_notification" To sMute_first_recovery_notification
Get ComStringOf Of hoJResp "data[i].attributes.schedule.current_downtime.end" To sV_End
Get ComStringOf Of hoJResp "data[i].attributes.schedule.current_downtime.start" To sStart
Get ComStringOf Of hoJResp "data[i].attributes.schedule.timezone" To sTimezone
Get ComStringOf Of hoJResp "data[i].attributes.scope" To sScope
Get ComStringOf Of hoJResp "data[i].attributes.status" To sStatus
Get ComStringOf Of hoJResp "data[i].id" To sId
Get ComStringOf Of hoJResp "data[i].relationships.created_by.data.id" To sId
Get ComStringOf Of hoJResp "data[i].relationships.created_by.data.type" To sV_Type
Get ComStringOf Of hoJResp "data[i].relationships.monitor.data.id" To sDataId
Get ComStringOf Of hoJResp "data[i].relationships.monitor.data.type" To sDataType
Get ComStringOf Of hoJResp "data[i].type" To sV_type
Move 0 To j
Get ComSizeOfArray Of hoJResp "data[i].attributes.notify_end_states" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Get ComStringOf Of hoJResp "data[i].attributes.notify_end_states[j]" To sStrVal
Move (j + 1) To j
Loop
Move 0 To j
Get ComSizeOfArray Of hoJResp "data[i].attributes.notify_end_types" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Get ComStringOf Of hoJResp "data[i].attributes.notify_end_types[j]" To sStrVal
Move (j + 1) To j
Loop
Move 0 To j
Get ComSizeOfArray Of hoJResp "data[i].attributes.schedule.recurrences" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Get ComStringOf Of hoJResp "data[i].attributes.schedule.recurrences[j].duration" To sDuration
Get ComStringOf Of hoJResp "data[i].attributes.schedule.recurrences[j].rrule" To sRrule
Get ComStringOf Of hoJResp "data[i].attributes.schedule.recurrences[j].start" To sStart
Move (j + 1) To j
Loop
Move (i + 1) To i
Loop
Move 0 To i
Get ComSizeOfArray Of hoJResp "included" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComStringOf Of hoJResp "included[i].attributes.created_at" To sCreated_at
Get ComStringOf Of hoJResp "included[i].attributes.disabled" To sDisabled
Get ComStringOf Of hoJResp "included[i].attributes.email" To sV_Email
Get ComStringOf Of hoJResp "included[i].attributes.handle" To sHandle
Get ComStringOf Of hoJResp "included[i].attributes.icon" To sIcon
Get ComStringOf Of hoJResp "included[i].attributes.modified_at" To sModified_at
Get ComStringOf Of hoJResp "included[i].attributes.name" To sName
Get ComStringOf Of hoJResp "included[i].attributes.service_account" To sService_account
Get ComStringOf Of hoJResp "included[i].attributes.status" To sAttributesStatus
Get ComStringOf Of hoJResp "included[i].attributes.title" To sTitle
Get ComStringOf Of hoJResp "included[i].attributes.verified" To sVerified
Get ComStringOf Of hoJResp "included[i].id" To sId
Get ComStringOf Of hoJResp "included[i].relationships.org.data.id" To sDataId
Get ComStringOf Of hoJResp "included[i].relationships.org.data.type" To sDataType
Get ComStringOf Of hoJResp "included[i].type" To sV_type
Move 0 To j
Get ComSizeOfArray Of hoJResp "included[i].relationships.other_orgs.data" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Get ComStringOf Of hoJResp "included[i].relationships.other_orgs.data[j].id" To sId
Get ComStringOf Of hoJResp "included[i].relationships.other_orgs.data[j].type" To sV_type
Move (j + 1) To j
Loop
Move 0 To j
Get ComSizeOfArray Of hoJResp "included[i].relationships.other_users.data" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Get ComStringOf Of hoJResp "included[i].relationships.other_users.data[j].id" To sId
Get ComStringOf Of hoJResp "included[i].relationships.other_users.data[j].type" To sV_type
Move (j + 1) To j
Loop
Move 0 To j
Get ComSizeOfArray Of hoJResp "included[i].relationships.roles.data" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJResp To j
Get ComStringOf Of hoJResp "included[i].relationships.roles.data[j].id" To sId
Get ComStringOf Of hoJResp "included[i].relationships.roles.data[j].type" To sV_type
Move (j + 1) To j
Loop
Move (i + 1) To i
Loop
End_Procedure
Curl Command
curl -G -d "current_only=%3Cboolean%3E"
-d "include=%3Cstring%3E"
-d "page[offset]=0"
-d "page[limit]=30"
-H "Accept: application/json"
https://api.app.ddog-gov.com/api/v2/downtime
Postman Collection Item JSON
{
"name": "Get all downtimes",
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/downtime?current_only=<boolean>&include=<string>&page[offset]=0&page[limit]=30",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"downtime"
],
"query": [
{
"key": "current_only",
"value": "<boolean>",
"description": "Only return downtimes that are active when the request is made."
},
{
"key": "include",
"value": "<string>",
"description": "Comma-separated list of resource paths for related resources to include in the response. Supported resource\npaths are `created_by` and `monitor`."
},
{
"key": "page[offset]",
"value": "0",
"description": "Specific offset to use as the beginning of the returned page."
},
{
"key": "page[limit]",
"value": "30",
"description": "Maximum number of downtimes in the response."
}
]
},
"description": "Get all scheduled downtimes."
},
"response": [
{
"name": "OK",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/downtime?current_only=<boolean>&include=<string>&page[offset]=0&page[limit]=30",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"downtime"
],
"query": [
{
"key": "current_only",
"value": "<boolean>",
"description": "Only return downtimes that are active when the request is made."
},
{
"key": "include",
"value": "<string>",
"description": "Comma-separated list of resource paths for related resources to include in the response. Supported resource\npaths are `created_by` and `monitor`."
},
{
"key": "page[offset]",
"value": "0",
"description": "Specific offset to use as the beginning of the returned page."
},
{
"key": "page[limit]",
"value": "30",
"description": "Maximum number of downtimes in the response."
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"data\": [\n {\n \"attributes\": {\n \"canceled\": \"<dateTime>\",\n \"created\": \"<dateTime>\",\n \"display_timezone\": \"UTC\",\n \"message\": \"<string>\",\n \"modified\": \"<dateTime>\",\n \"monitor_identifier\": {\n \"monitor_id\": \"<long>\"\n },\n \"mute_first_recovery_notification\": \"<boolean>\",\n \"notify_end_states\": [\n \"no data\",\n \"no data\"\n ],\n \"notify_end_types\": [\n \"canceled\",\n \"canceled\"\n ],\n \"schedule\": {\n \"recurrences\": [\n {\n \"duration\": \"<string>\",\n \"rrule\": \"<string>\",\n \"start\": \"<string>\"\n }\n ],\n \"current_downtime\": {\n \"end\": \"<dateTime>\",\n \"start\": \"<dateTime>\"\n },\n \"timezone\": \"UTC\"\n },\n \"scope\": \"<string>\",\n \"status\": \"active\"\n },\n \"id\": \"<string>\",\n \"relationships\": {\n \"created_by\": {\n \"data\": {\n \"id\": \"<string>\",\n \"type\": \"users\"\n }\n },\n \"monitor\": {\n \"data\": {\n \"id\": \"<string>\",\n \"type\": \"monitors\"\n }\n }\n },\n \"type\": \"downtime\"\n },\n {\n \"attributes\": {\n \"canceled\": \"<dateTime>\",\n \"created\": \"<dateTime>\",\n \"display_timezone\": \"UTC\",\n \"message\": \"<string>\",\n \"modified\": \"<dateTime>\",\n \"monitor_identifier\": {\n \"monitor_id\": \"<long>\"\n },\n \"mute_first_recovery_notification\": \"<boolean>\",\n \"notify_end_states\": [\n \"warn\",\n \"alert\"\n ],\n \"notify_end_types\": [\n \"canceled\",\n \"canceled\"\n ],\n \"schedule\": {\n \"recurrences\": [\n {\n \"duration\": \"<string>\",\n \"rrule\": \"<string>\",\n \"start\": \"<string>\"\n }\n ],\n \"current_downtime\": {\n \"end\": \"<dateTime>\",\n \"start\": \"<dateTime>\"\n },\n \"timezone\": \"UTC\"\n },\n \"scope\": \"<string>\",\n \"status\": \"scheduled\"\n },\n \"id\": \"<string>\",\n \"relationships\": {\n \"created_by\": {\n \"data\": {\n \"id\": \"<string>\",\n \"type\": \"users\"\n }\n },\n \"monitor\": {\n \"data\": {\n \"id\": \"<string>\",\n \"type\": \"monitors\"\n }\n }\n },\n \"type\": \"downtime\"\n }\n ],\n \"included\": [\n {\n \"attributes\": {\n \"created_at\": \"<dateTime>\",\n \"disabled\": \"<boolean>\",\n \"email\": \"<string>\",\n \"handle\": \"<string>\",\n \"icon\": \"<string>\",\n \"modified_at\": \"<dateTime>\",\n \"name\": \"<string>\",\n \"service_account\": \"<boolean>\",\n \"status\": \"<string>\",\n \"title\": \"<string>\",\n \"verified\": \"<boolean>\"\n },\n \"id\": \"<string>\",\n \"relationships\": {\n \"org\": {\n \"data\": {\n \"id\": \"<string>\",\n \"type\": \"orgs\"\n }\n },\n \"other_orgs\": {\n \"data\": [\n {\n \"id\": \"<string>\",\n \"type\": \"orgs\"\n },\n {\n \"id\": \"<string>\",\n \"type\": \"orgs\"\n }\n ]\n },\n \"other_users\": {\n \"data\": [\n {\n \"id\": \"<string>\",\n \"type\": \"users\"\n },\n {\n \"id\": \"<string>\",\n \"type\": \"users\"\n }\n ]\n },\n \"roles\": {\n \"data\": [\n {\n \"id\": \"<string>\",\n \"type\": \"roles\"\n },\n {\n \"id\": \"<string>\",\n \"type\": \"roles\"\n }\n ]\n }\n },\n \"type\": \"users\"\n },\n {\n \"attributes\": {\n \"created_at\": \"<dateTime>\",\n \"disabled\": \"<boolean>\",\n \"email\": \"<string>\",\n \"handle\": \"<string>\",\n \"icon\": \"<string>\",\n \"modified_at\": \"<dateTime>\",\n \"name\": \"<string>\",\n \"service_account\": \"<boolean>\",\n \"status\": \"<string>\",\n \"title\": \"<string>\",\n \"verified\": \"<boolean>\"\n },\n \"id\": \"<string>\",\n \"relationships\": {\n \"org\": {\n \"data\": {\n \"id\": \"<string>\",\n \"type\": \"orgs\"\n }\n },\n \"other_orgs\": {\n \"data\": [\n {\n \"id\": \"<string>\",\n \"type\": \"orgs\"\n },\n {\n \"id\": \"<string>\",\n \"type\": \"orgs\"\n }\n ]\n },\n \"other_users\": {\n \"data\": [\n {\n \"id\": \"<string>\",\n \"type\": \"users\"\n },\n {\n \"id\": \"<string>\",\n \"type\": \"users\"\n }\n ]\n },\n \"roles\": {\n \"data\": [\n {\n \"id\": \"<string>\",\n \"type\": \"roles\"\n },\n {\n \"id\": \"<string>\",\n \"type\": \"roles\"\n }\n ]\n }\n },\n \"type\": \"users\"\n }\n ],\n \"meta\": {\n \"page\": {\n \"total_filtered_count\": \"<long>\"\n }\n }\n}"
},
{
"name": "Forbidden",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/downtime?current_only=<boolean>&include=<string>&page[offset]=0&page[limit]=30",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"downtime"
],
"query": [
{
"key": "current_only",
"value": "<boolean>",
"description": "Only return downtimes that are active when the request is made."
},
{
"key": "include",
"value": "<string>",
"description": "Comma-separated list of resource paths for related resources to include in the response. Supported resource\npaths are `created_by` and `monitor`."
},
{
"key": "page[offset]",
"value": "0",
"description": "Specific offset to use as the beginning of the returned page."
},
{
"key": "page[limit]",
"value": "30",
"description": "Maximum number of downtimes in the response."
}
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"<string>\",\n \"<string>\"\n ]\n}"
},
{
"name": "Too many requests",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/downtime?current_only=<boolean>&include=<string>&page[offset]=0&page[limit]=30",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"downtime"
],
"query": [
{
"key": "current_only",
"value": "<boolean>",
"description": "Only return downtimes that are active when the request is made."
},
{
"key": "include",
"value": "<string>",
"description": "Comma-separated list of resource paths for related resources to include in the response. Supported resource\npaths are `created_by` and `monitor`."
},
{
"key": "page[offset]",
"value": "0",
"description": "Specific offset to use as the beginning of the returned page."
},
{
"key": "page[limit]",
"value": "30",
"description": "Maximum number of downtimes in the response."
}
]
}
},
"status": "Too Many Requests",
"code": 429,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"<string>\",\n \"<string>\"\n ]\n}"
}
]
}