Chilkat Online Tools

DescribeDataset delphiAx Example

AWS IoT Analytics

var
rest: TChilkatRest;
success: Integer;
authAws: TChilkatAuthAws;
sbResponseBody: TChilkatStringBuilder;
respStatusCode: Integer;
jResp: TChilkatJsonObject;
actionName: WideString;
ExecutionRoleArn: WideString;
Image: WideString;
ComputeType: WideString;
VolumeSizeInGB: Integer;
SqlQuery: WideString;
j: Integer;
count_j: Integer;
DatasetName: WideString;
doubleValue: Integer;
name: WideString;
FileName: WideString;
stringValue: WideString;
OffsetSeconds: Integer;
TimeExpression: WideString;
InputName: WideString;
RoleArn: WideString;
Bucket: WideString;
DatabaseName: WideString;
TableName: WideString;
Key: WideString;
S3DestinationConfigurationRoleArn: WideString;
entryName: WideString;
TimeoutInMinutes: Integer;
ruleName: WideString;
datasetName: WideString;
Expression: WideString;
Arn: WideString;
CreationTime: Integer;
LastUpdateTime: Integer;
Name: WideString;
NumberOfDays: Integer;
Unlimited: Integer;
Status: WideString;
MaxVersions: Integer;
VersioningConfigurationUnlimited: Integer;
i: Integer;
count_i: Integer;

begin
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

rest := TChilkatRest.Create(Self);

authAws := TChilkatAuthAws.Create(Self);
authAws.AccessKey := 'AWS_ACCESS_KEY';
authAws.SecretKey := 'AWS_SECRET_KEY';

// Don't forget to change the region to your particular region. (Also make the same change in the call to Connect below.)
authAws.Region := 'us-west-2';
authAws.ServiceName := 'iotanalytics';
// SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
rest.SetAuthAws(authAws.ControlInterface);

// URL: https://iotanalytics.us-west-2.amazonaws.com/
// Use the same region as specified above.
success := rest.Connect('iotanalytics.us-west-2.amazonaws.com',443,1,1);
if (success <> 1) then
  begin
    Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(rest.ConnectFailReason));
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;

rest.AddHeader('Content-Type','application/x-amz-json-1.1');
rest.AddHeader('X-Amz-Target','DescribeDataset');

sbResponseBody := TChilkatStringBuilder.Create(Self);
success := rest.FullRequestNoBodySb('GET','/datasets/{datasetName}',sbResponseBody.ControlInterface);
if (success <> 1) then
  begin
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;
respStatusCode := rest.ResponseStatusCode;
Memo1.Lines.Add('response status code = ' + IntToStr(respStatusCode));
if (respStatusCode <> 200) then
  begin
    Memo1.Lines.Add('Response Header:');
    Memo1.Lines.Add(rest.ResponseHeader);
    Memo1.Lines.Add('Response Body:');
    Memo1.Lines.Add(sbResponseBody.GetAsString());
    Exit;
  end;

jResp := TChilkatJsonObject.Create(Self);
jResp.LoadSb(sbResponseBody.ControlInterface);

// The following code parses the JSON response.
// A sample JSON response is shown below the sample code.

// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON

Arn := jResp.StringOf('dataset.arn');
CreationTime := jResp.IntOf('dataset.creationTime');
LastUpdateTime := jResp.IntOf('dataset.lastUpdateTime');
Name := jResp.StringOf('dataset.name');
NumberOfDays := jResp.IntOf('dataset.retentionPeriod.numberOfDays');
Unlimited := jResp.IntOf('dataset.retentionPeriod.unlimited');
Status := jResp.StringOf('dataset.status');
MaxVersions := jResp.IntOf('dataset.versioningConfiguration.maxVersions');
VersioningConfigurationUnlimited := jResp.IntOf('dataset.versioningConfiguration.unlimited');
i := 0;
count_i := jResp.SizeOfArray('dataset.actions');
while i < count_i do
  begin
    jResp.I := i;
    actionName := jResp.StringOf('dataset.actions[i].actionName');
    ExecutionRoleArn := jResp.StringOf('dataset.actions[i].containerAction.executionRoleArn');
    Image := jResp.StringOf('dataset.actions[i].containerAction.image');
    ComputeType := jResp.StringOf('dataset.actions[i].containerAction.resourceConfiguration.computeType');
    VolumeSizeInGB := jResp.IntOf('dataset.actions[i].containerAction.resourceConfiguration.volumeSizeInGB');
    SqlQuery := jResp.StringOf('dataset.actions[i].queryAction.sqlQuery');
    j := 0;
    count_j := jResp.SizeOfArray('dataset.actions[i].containerAction.variables');
    while j < count_j do
      begin
        jResp.J := j;
        DatasetName := jResp.StringOf('dataset.actions[i].containerAction.variables[j].datasetContentVersionValue.datasetName');
        doubleValue := jResp.IntOf('dataset.actions[i].containerAction.variables[j].doubleValue');
        name := jResp.StringOf('dataset.actions[i].containerAction.variables[j].name');
        FileName := jResp.StringOf('dataset.actions[i].containerAction.variables[j].outputFileUriValue.fileName');
        stringValue := jResp.StringOf('dataset.actions[i].containerAction.variables[j].stringValue');
        j := j + 1;
      end;

    j := 0;
    count_j := jResp.SizeOfArray('dataset.actions[i].queryAction.filters');
    while j < count_j do
      begin
        jResp.J := j;
        OffsetSeconds := jResp.IntOf('dataset.actions[i].queryAction.filters[j].deltaTime.offsetSeconds');
        TimeExpression := jResp.StringOf('dataset.actions[i].queryAction.filters[j].deltaTime.timeExpression');
        j := j + 1;
      end;

    i := i + 1;
  end;

i := 0;
count_i := jResp.SizeOfArray('dataset.contentDeliveryRules');
while i < count_i do
  begin
    jResp.I := i;
    InputName := jResp.StringOf('dataset.contentDeliveryRules[i].destination.iotEventsDestinationConfiguration.inputName');
    RoleArn := jResp.StringOf('dataset.contentDeliveryRules[i].destination.iotEventsDestinationConfiguration.roleArn');
    Bucket := jResp.StringOf('dataset.contentDeliveryRules[i].destination.s3DestinationConfiguration.bucket');
    DatabaseName := jResp.StringOf('dataset.contentDeliveryRules[i].destination.s3DestinationConfiguration.glueConfiguration.databaseName');
    TableName := jResp.StringOf('dataset.contentDeliveryRules[i].destination.s3DestinationConfiguration.glueConfiguration.tableName');
    Key := jResp.StringOf('dataset.contentDeliveryRules[i].destination.s3DestinationConfiguration.key');
    S3DestinationConfigurationRoleArn := jResp.StringOf('dataset.contentDeliveryRules[i].destination.s3DestinationConfiguration.roleArn');
    entryName := jResp.StringOf('dataset.contentDeliveryRules[i].entryName');
    i := i + 1;
  end;

i := 0;
count_i := jResp.SizeOfArray('dataset.lateDataRules');
while i < count_i do
  begin
    jResp.I := i;
    TimeoutInMinutes := jResp.IntOf('dataset.lateDataRules[i].ruleConfiguration.deltaTimeSessionWindowConfiguration.timeoutInMinutes');
    ruleName := jResp.StringOf('dataset.lateDataRules[i].ruleName');
    i := i + 1;
  end;

i := 0;
count_i := jResp.SizeOfArray('dataset.triggers');
while i < count_i do
  begin
    jResp.I := i;
    datasetName := jResp.StringOf('dataset.triggers[i].dataset.name');
    Expression := jResp.StringOf('dataset.triggers[i].schedule.expression');
    i := i + 1;
  end;

// A sample JSON response body parsed by the above code:

// {
//   "dataset": {
//     "actions": [
//       {
//         "actionName": "string",
//         "containerAction": {
//           "executionRoleArn": "string",
//           "image": "string",
//           "resourceConfiguration": {
//             "computeType": "string",
//             "volumeSizeInGB": number
//           },
//           "variables": [
//             {
//               "datasetContentVersionValue": {
//                 "datasetName": "string"
//               },
//               "doubleValue": number,
//               "name": "string",
//               "outputFileUriValue": {
//                 "fileName": "string"
//               },
//               "stringValue": "string"
//             }
//           ]
//         },
//         "queryAction": {
//           "filters": [
//             {
//               "deltaTime": {
//                 "offsetSeconds": number,
//                 "timeExpression": "string"
//               }
//             }
//           ],
//           "sqlQuery": "string"
//         }
//       }
//     ],
//     "arn": "string",
//     "contentDeliveryRules": [
//       {
//         "destination": {
//           "iotEventsDestinationConfiguration": {
//             "inputName": "string",
//             "roleArn": "string"
//           },
//           "s3DestinationConfiguration": {
//             "bucket": "string",
//             "glueConfiguration": {
//               "databaseName": "string",
//               "tableName": "string"
//             },
//             "key": "string",
//             "roleArn": "string"
//           }
//         },
//         "entryName": "string"
//       }
//     ],
//     "creationTime": number,
//     "lastUpdateTime": number,
//     "lateDataRules": [
//       {
//         "ruleConfiguration": {
//           "deltaTimeSessionWindowConfiguration": {
//             "timeoutInMinutes": number
//           }
//         },
//         "ruleName": "string"
//       }
//     ],
//     "name": "string",
//     "retentionPeriod": {
//       "numberOfDays": number,
//       "unlimited": boolean
//     },
//     "status": "string",
//     "triggers": [
//       {
//         "dataset": {
//           "name": "string"
//         },
//         "schedule": {
//           "expression": "string"
//         }
//       }
//     ],
//     "versioningConfiguration": {
//       "maxVersions": number,
//       "unlimited": boolean
//     }
//   }
// }