Back to Collection Items
var
http: TChilkatHttp;
success: Integer;
json: TChilkatJsonObject;
resp: IChilkatHttpResponse;
sbResponseBody: TChilkatStringBuilder;
jResp: TChilkatJsonObject;
respStatusCode: Integer;
Sample_rate: Integer;
filterQuery: WideString;
is_enabled: Integer;
name: WideString;
Query: WideString;
daily_limit: Integer;
is_rate_limited: Integer;
num_retention_days: Integer;
i: Integer;
count_i: Integer;
begin
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := TChilkatHttp.Create(Self);
// Use this online tool to generate code from sample JSON: Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "name": "main",
// "filter": {
// "query": "source:python"
// },
// "daily_limit": 300000000,
// "exclusion_filters": [
// {
// "name": "payment",
// "filter": {
// "sample_rate": 1,
// "query": "*"
// },
// "is_enabled": false
// },
// {
// "name": "payment",
// "filter": {
// "sample_rate": 1,
// "query": "*"
// },
// "is_enabled": true
// }
// ],
// "is_rate_limited": false,
// "num_retention_days": 15
// }
json := TChilkatJsonObject.Create(Self);
json.UpdateString('name','main');
json.UpdateString('filter.query','source:python');
json.UpdateInt('daily_limit',300000000);
json.UpdateString('exclusion_filters[0].name','payment');
json.UpdateInt('exclusion_filters[0].filter.sample_rate',1);
json.UpdateString('exclusion_filters[0].filter.query','*');
json.UpdateBool('exclusion_filters[0].is_enabled',0);
json.UpdateString('exclusion_filters[1].name','payment');
json.UpdateInt('exclusion_filters[1].filter.sample_rate',1);
json.UpdateString('exclusion_filters[1].filter.query','*');
json.UpdateBool('exclusion_filters[1].is_enabled',1);
json.UpdateBool('is_rate_limited',0);
json.UpdateInt('num_retention_days',15);
http.SetRequestHeader('Content-Type','application/json');
http.SetRequestHeader('Accept','application/json');
resp := http.PostJson3('https://api.app.ddog-gov.com/api/v1/logs/config/indexes','application/json',json.ControlInterface);
if (http.LastMethodSuccess = 0) then
begin
Memo1.Lines.Add(http.LastErrorText);
Exit;
end;
sbResponseBody := TChilkatStringBuilder.Create(Self);
resp.GetBodySb(sbResponseBody.ControlInterface);
jResp := TChilkatJsonObject.Create(Self);
jResp.LoadSb(sbResponseBody.ControlInterface);
jResp.EmitCompact := 0;
Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(jResp.Emit());
respStatusCode := resp.StatusCode;
Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode));
if (respStatusCode >= 400) then
begin
Memo1.Lines.Add('Response Header:');
Memo1.Lines.Add(resp.Header);
Memo1.Lines.Add('Failed.');
Exit;
end;
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "name": "main",
// "filter": {
// "query": "source:python"
// },
// "daily_limit": 300000000,
// "exclusion_filters": [
// {
// "name": "payment",
// "filter": {
// "sample_rate": 1,
// "query": "*"
// },
// "is_enabled": false
// },
// {
// "name": "payment",
// "filter": {
// "sample_rate": 1,
// "query": "*"
// },
// "is_enabled": true
// }
// ],
// "is_rate_limited": false,
// "num_retention_days": 15
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
name := jResp.StringOf('name');
Query := jResp.StringOf('filter.query');
daily_limit := jResp.IntOf('daily_limit');
is_rate_limited := jResp.BoolOf('is_rate_limited');
num_retention_days := jResp.IntOf('num_retention_days');
i := 0;
count_i := jResp.SizeOfArray('exclusion_filters');
while i < count_i do
begin
jResp.I := i;
name := jResp.StringOf('exclusion_filters[i].name');
Sample_rate := jResp.IntOf('exclusion_filters[i].filter.sample_rate');
filterQuery := jResp.StringOf('exclusion_filters[i].filter.query');
is_enabled := jResp.BoolOf('exclusion_filters[i].is_enabled');
i := i + 1;
end;
Curl Command
curl -X POST
-H "Content-Type: application/json"
-H "Accept: application/json"
-d '{
"name": "main",
"filter": {
"query": "source:python"
},
"daily_limit": 300000000,
"exclusion_filters": [
{
"name": "payment",
"filter": {
"sample_rate": 1,
"query": "*"
},
"is_enabled": false
},
{
"name": "payment",
"filter": {
"sample_rate": 1,
"query": "*"
},
"is_enabled": true
}
],
"is_rate_limited": false,
"num_retention_days": 15
}'
https://api.app.ddog-gov.com/api/v1/logs/config/indexes
Postman Collection Item JSON
{
"name": "Create an index",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Accept",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"main\",\n \"filter\": {\n \"query\": \"source:python\"\n },\n \"daily_limit\": 300000000,\n \"exclusion_filters\": [\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": false\n },\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": true\n }\n ],\n \"is_rate_limited\": false,\n \"num_retention_days\": 15\n}",
"options": {
"raw": {
"headerFamily": "json",
"language": "json"
}
}
},
"url": {
"raw": "{{baseUrl}}/api/v1/logs/config/indexes",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"logs",
"config",
"indexes"
]
},
"description": "Creates a new index. Returns the Index object passed in the request body when the request is successful."
},
"response": [
{
"name": "OK",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"main\",\n \"filter\": {\n \"query\": \"source:python\"\n },\n \"daily_limit\": 300000000,\n \"exclusion_filters\": [\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": false\n },\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": true\n }\n ],\n \"is_rate_limited\": false,\n \"num_retention_days\": 15\n}",
"options": {
"raw": {
"headerFamily": "json",
"language": "json"
}
}
},
"url": {
"raw": "{{baseUrl}}/api/v1/logs/config/indexes",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"logs",
"config",
"indexes"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"name\": \"main\",\n \"filter\": {\n \"query\": \"source:python\"\n },\n \"daily_limit\": 300000000,\n \"exclusion_filters\": [\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": false\n },\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": true\n }\n ],\n \"is_rate_limited\": false,\n \"num_retention_days\": 15\n}"
},
{
"name": "Invalid Parameter Error",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"main\",\n \"filter\": {\n \"query\": \"source:python\"\n },\n \"daily_limit\": 300000000,\n \"exclusion_filters\": [\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": false\n },\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": true\n }\n ],\n \"is_rate_limited\": false,\n \"num_retention_days\": 15\n}",
"options": {
"raw": {
"headerFamily": "json",
"language": "json"
}
}
},
"url": {
"raw": "{{baseUrl}}/api/v1/logs/config/indexes",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"logs",
"config",
"indexes"
]
}
},
"status": "Bad Request",
"code": 400,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "null"
},
{
"name": "Forbidden",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"main\",\n \"filter\": {\n \"query\": \"source:python\"\n },\n \"daily_limit\": 300000000,\n \"exclusion_filters\": [\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": false\n },\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": true\n }\n ],\n \"is_rate_limited\": false,\n \"num_retention_days\": 15\n}",
"options": {
"raw": {
"headerFamily": "json",
"language": "json"
}
}
},
"url": {
"raw": "{{baseUrl}}/api/v1/logs/config/indexes",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"logs",
"config",
"indexes"
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"Bad Request\",\n \"Bad Request\"\n ]\n}"
},
{
"name": "Too many requests",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"main\",\n \"filter\": {\n \"query\": \"source:python\"\n },\n \"daily_limit\": 300000000,\n \"exclusion_filters\": [\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": false\n },\n {\n \"name\": \"payment\",\n \"filter\": {\n \"sample_rate\": 1,\n \"query\": \"*\"\n },\n \"is_enabled\": true\n }\n ],\n \"is_rate_limited\": false,\n \"num_retention_days\": 15\n}",
"options": {
"raw": {
"headerFamily": "json",
"language": "json"
}
}
},
"url": {
"raw": "{{baseUrl}}/api/v1/logs/config/indexes",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v1",
"logs",
"config",
"indexes"
]
}
},
"status": "Too Many Requests",
"code": 429,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"Bad Request\",\n \"Bad Request\"\n ]\n}"
}
]
}