DescribeInstances delphiAx Example
var
rest: TChilkatRest;
success: Integer;
authAws: TChilkatAuthAws;
json: TChilkatJsonObject;
sbRequestBody: TChilkatStringBuilder;
sbResponseBody: TChilkatStringBuilder;
respStatusCode: Integer;
jResp: TChilkatJsonObject;
AgentVersion: WideString;
AmiId: WideString;
Architecture: WideString;
Arn: WideString;
AutoScalingType: WideString;
AvailabilityZone: WideString;
CreatedAt: WideString;
EbsOptimized: Integer;
Ec2InstanceId: WideString;
EcsClusterArn: WideString;
EcsContainerInstanceArn: WideString;
ElasticIp: WideString;
Hostname: WideString;
InfrastructureClass: WideString;
InstallUpdatesOnBoot: Integer;
InstanceId: WideString;
InstanceProfileArn: WideString;
InstanceType: WideString;
LastServiceErrorId: WideString;
Os: WideString;
Platform: WideString;
PrivateDns: WideString;
PrivateIp: WideString;
PublicDns: WideString;
PublicIp: WideString;
RegisteredBy: WideString;
ReportedAgentVersion: WideString;
Family: WideString;
Name: WideString;
Version: WideString;
RootDeviceType: WideString;
RootDeviceVolumeId: WideString;
SshHostDsaKeyFingerprint: WideString;
SshHostRsaKeyFingerprint: WideString;
SshKeyName: WideString;
StackId: WideString;
Status: WideString;
SubnetId: WideString;
Tenancy: WideString;
VirtualizationType: WideString;
j: Integer;
count_j: Integer;
DeviceName: WideString;
DeleteOnTermination: Integer;
Iops: Integer;
SnapshotId: WideString;
VolumeSize: Integer;
VolumeType: WideString;
NoDevice: WideString;
VirtualName: WideString;
strVal: WideString;
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 := 'opsworks';
// SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
rest.SetAuthAws(authAws.ControlInterface);
// URL: https://opsworks.us-west-2.amazonaws.com/
// Use the same region as specified above.
success := rest.Connect('opsworks.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;
// The following code creates the JSON request body.
// The JSON created by this code is shown below.
// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON
json := TChilkatJsonObject.Create(Self);
json.UpdateString('InstanceIds[0]','string');
json.UpdateString('LayerId','string');
json.UpdateString('StackId','string');
// The JSON request body created by the above code:
// {
// "InstanceIds": [
// "string"
// ],
// "LayerId": "string",
// "StackId": "string"
// }
rest.AddHeader('Content-Type','application/x-amz-json-1.1');
rest.AddHeader('X-Amz-Target','OpsWorks_20130218.DescribeInstances');
sbRequestBody := TChilkatStringBuilder.Create(Self);
json.EmitSb(sbRequestBody.ControlInterface);
sbResponseBody := TChilkatStringBuilder.Create(Self);
success := rest.FullRequestSb('POST','/',sbRequestBody.ControlInterface,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
i := 0;
count_i := jResp.SizeOfArray('Instances');
while i < count_i do
begin
jResp.I := i;
AgentVersion := jResp.StringOf('Instances[i].AgentVersion');
AmiId := jResp.StringOf('Instances[i].AmiId');
Architecture := jResp.StringOf('Instances[i].Architecture');
Arn := jResp.StringOf('Instances[i].Arn');
AutoScalingType := jResp.StringOf('Instances[i].AutoScalingType');
AvailabilityZone := jResp.StringOf('Instances[i].AvailabilityZone');
CreatedAt := jResp.StringOf('Instances[i].CreatedAt');
EbsOptimized := jResp.IntOf('Instances[i].EbsOptimized');
Ec2InstanceId := jResp.StringOf('Instances[i].Ec2InstanceId');
EcsClusterArn := jResp.StringOf('Instances[i].EcsClusterArn');
EcsContainerInstanceArn := jResp.StringOf('Instances[i].EcsContainerInstanceArn');
ElasticIp := jResp.StringOf('Instances[i].ElasticIp');
Hostname := jResp.StringOf('Instances[i].Hostname');
InfrastructureClass := jResp.StringOf('Instances[i].InfrastructureClass');
InstallUpdatesOnBoot := jResp.IntOf('Instances[i].InstallUpdatesOnBoot');
InstanceId := jResp.StringOf('Instances[i].InstanceId');
InstanceProfileArn := jResp.StringOf('Instances[i].InstanceProfileArn');
InstanceType := jResp.StringOf('Instances[i].InstanceType');
LastServiceErrorId := jResp.StringOf('Instances[i].LastServiceErrorId');
Os := jResp.StringOf('Instances[i].Os');
Platform := jResp.StringOf('Instances[i].Platform');
PrivateDns := jResp.StringOf('Instances[i].PrivateDns');
PrivateIp := jResp.StringOf('Instances[i].PrivateIp');
PublicDns := jResp.StringOf('Instances[i].PublicDns');
PublicIp := jResp.StringOf('Instances[i].PublicIp');
RegisteredBy := jResp.StringOf('Instances[i].RegisteredBy');
ReportedAgentVersion := jResp.StringOf('Instances[i].ReportedAgentVersion');
Family := jResp.StringOf('Instances[i].ReportedOs.Family');
Name := jResp.StringOf('Instances[i].ReportedOs.Name');
Version := jResp.StringOf('Instances[i].ReportedOs.Version');
RootDeviceType := jResp.StringOf('Instances[i].RootDeviceType');
RootDeviceVolumeId := jResp.StringOf('Instances[i].RootDeviceVolumeId');
SshHostDsaKeyFingerprint := jResp.StringOf('Instances[i].SshHostDsaKeyFingerprint');
SshHostRsaKeyFingerprint := jResp.StringOf('Instances[i].SshHostRsaKeyFingerprint');
SshKeyName := jResp.StringOf('Instances[i].SshKeyName');
StackId := jResp.StringOf('Instances[i].StackId');
Status := jResp.StringOf('Instances[i].Status');
SubnetId := jResp.StringOf('Instances[i].SubnetId');
Tenancy := jResp.StringOf('Instances[i].Tenancy');
VirtualizationType := jResp.StringOf('Instances[i].VirtualizationType');
j := 0;
count_j := jResp.SizeOfArray('Instances[i].BlockDeviceMappings');
while j < count_j do
begin
jResp.J := j;
DeviceName := jResp.StringOf('Instances[i].BlockDeviceMappings[j].DeviceName');
DeleteOnTermination := jResp.IntOf('Instances[i].BlockDeviceMappings[j].Ebs.DeleteOnTermination');
Iops := jResp.IntOf('Instances[i].BlockDeviceMappings[j].Ebs.Iops');
SnapshotId := jResp.StringOf('Instances[i].BlockDeviceMappings[j].Ebs.SnapshotId');
VolumeSize := jResp.IntOf('Instances[i].BlockDeviceMappings[j].Ebs.VolumeSize');
VolumeType := jResp.StringOf('Instances[i].BlockDeviceMappings[j].Ebs.VolumeType');
NoDevice := jResp.StringOf('Instances[i].BlockDeviceMappings[j].NoDevice');
VirtualName := jResp.StringOf('Instances[i].BlockDeviceMappings[j].VirtualName');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('Instances[i].LayerIds');
while j < count_j do
begin
jResp.J := j;
strVal := jResp.StringOf('Instances[i].LayerIds[j]');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('Instances[i].SecurityGroupIds');
while j < count_j do
begin
jResp.J := j;
strVal := jResp.StringOf('Instances[i].SecurityGroupIds[j]');
j := j + 1;
end;
i := i + 1;
end;
// A sample JSON response body parsed by the above code:
// {
// "Instances": [
// {
// "AgentVersion": "string",
// "AmiId": "string",
// "Architecture": "string",
// "Arn": "string",
// "AutoScalingType": "string",
// "AvailabilityZone": "string",
// "BlockDeviceMappings": [
// {
// "DeviceName": "string",
// "Ebs": {
// "DeleteOnTermination": boolean,
// "Iops": number,
// "SnapshotId": "string",
// "VolumeSize": number,
// "VolumeType": "string"
// },
// "NoDevice": "string",
// "VirtualName": "string"
// }
// ],
// "CreatedAt": "string",
// "EbsOptimized": boolean,
// "Ec2InstanceId": "string",
// "EcsClusterArn": "string",
// "EcsContainerInstanceArn": "string",
// "ElasticIp": "string",
// "Hostname": "string",
// "InfrastructureClass": "string",
// "InstallUpdatesOnBoot": boolean,
// "InstanceId": "string",
// "InstanceProfileArn": "string",
// "InstanceType": "string",
// "LastServiceErrorId": "string",
// "LayerIds": [
// "string"
// ],
// "Os": "string",
// "Platform": "string",
// "PrivateDns": "string",
// "PrivateIp": "string",
// "PublicDns": "string",
// "PublicIp": "string",
// "RegisteredBy": "string",
// "ReportedAgentVersion": "string",
// "ReportedOs": {
// "Family": "string",
// "Name": "string",
// "Version": "string"
// },
// "RootDeviceType": "string",
// "RootDeviceVolumeId": "string",
// "SecurityGroupIds": [
// "string"
// ],
// "SshHostDsaKeyFingerprint": "string",
// "SshHostRsaKeyFingerprint": "string",
// "SshKeyName": "string",
// "StackId": "string",
// "Status": "string",
// "SubnetId": "string",
// "Tenancy": "string",
// "VirtualizationType": "string"
// }
// ]
// }