ListCertificateAuthorities Objective-C Example
#import <CkoRest.h>
#import <CkoAuthAws.h>
#import <CkoJsonObject.h>
#import <CkoStringBuilder.h>
#import <NSString.h>
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoRest *rest = [[CkoRest alloc] init];
BOOL success;
CkoAuthAws *authAws = [[CkoAuthAws alloc] init];
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 = @"acm-pca";
// SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
[rest SetAuthAws: authAws];
// URL: https://acm-pca.us-west-2.amazonaws.com/
// Use the same region as specified above.
success = [rest Connect: @"acm-pca.us-west-2.amazonaws.com" port: [NSNumber numberWithInt: 443] tls: YES autoReconnect: YES];
if (success != YES) {
NSLog(@"%@%d",@"ConnectFailReason: ",[rest.ConnectFailReason intValue]);
NSLog(@"%@",rest.LastErrorText);
return;
}
// 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
CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateInt: @"MaxResults" value: [NSNumber numberWithInt: 123]];
[json UpdateString: @"NextToken" value: @"string"];
[json UpdateString: @"ResourceOwner" value: @"string"];
// The JSON request body created by the above code:
// {
// "MaxResults": number,
// "NextToken": "string",
// "ResourceOwner": "string"
// }
[rest AddHeader: @"Content-Type" value: @"application/x-amz-json-1.1"];
[rest AddHeader: @"X-Amz-Target" value: @"ACMPrivateCA.ListCertificateAuthorities"];
CkoStringBuilder *sbRequestBody = [[CkoStringBuilder alloc] init];
[json EmitSb: sbRequestBody];
CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
success = [rest FullRequestSb: @"POST" uriPath: @"/" requestBody: sbRequestBody responseBody: sbResponseBody];
if (success != YES) {
NSLog(@"%@",rest.LastErrorText);
return;
}
int respStatusCode = [rest.ResponseStatusCode intValue];
NSLog(@"%@%d",@"response status code = ",respStatusCode);
if (respStatusCode != 200) {
NSLog(@"%@",@"Response Header:");
NSLog(@"%@",rest.ResponseHeader);
NSLog(@"%@",@"Response Body:");
NSLog(@"%@",[sbResponseBody GetAsString]);
return;
}
CkoJsonObject *jResp = [[CkoJsonObject alloc] init];
[jResp LoadSb: sbResponseBody];
// 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
NSString *Arn = 0;
int CRLSign;
int DataEncipherment;
int DecipherOnly;
int DigitalSignature;
int EncipherOnly;
int KeyAgreement;
int KeyCertSign;
int KeyEncipherment;
int NonRepudiation;
NSString *KeyAlgorithm = 0;
NSString *SigningAlgorithm = 0;
NSString *CommonName = 0;
NSString *Country = 0;
NSString *DistinguishedNameQualifier = 0;
NSString *GenerationQualifier = 0;
NSString *GivenName = 0;
NSString *Initials = 0;
NSString *Locality = 0;
NSString *Organization = 0;
NSString *OrganizationalUnit = 0;
NSString *Pseudonym = 0;
NSString *SerialNumber = 0;
NSString *State = 0;
NSString *Surname = 0;
NSString *Title = 0;
int CreatedAt;
NSString *FailureReason = 0;
NSString *KeyStorageSecurityStandard = 0;
int LastStateChangeAt;
int NotAfter;
int NotBefore;
NSString *OwnerAccount = 0;
int RestorableUntil;
NSString *CustomCname = 0;
int Enabled;
int ExpirationInDays;
NSString *S3BucketName = 0;
NSString *S3ObjectAcl = 0;
int OcspConfigurationEnabled;
NSString *OcspCustomCname = 0;
NSString *Serial = 0;
NSString *Status = 0;
NSString *v_Type = 0;
int j;
int count_j;
NSString *DirectoryNameCommonName = 0;
NSString *DirectoryNameCountry = 0;
NSString *DirectoryNameDistinguishedNameQualifier = 0;
NSString *DirectoryNameGenerationQualifier = 0;
NSString *DirectoryNameGivenName = 0;
NSString *DirectoryNameInitials = 0;
NSString *DirectoryNameLocality = 0;
NSString *DirectoryNameOrganization = 0;
NSString *DirectoryNameOrganizationalUnit = 0;
NSString *DirectoryNamePseudonym = 0;
NSString *DirectoryNameSerialNumber = 0;
NSString *DirectoryNameState = 0;
NSString *DirectoryNameSurname = 0;
NSString *DirectoryNameTitle = 0;
NSString *DnsName = 0;
NSString *NameAssigner = 0;
NSString *PartyName = 0;
NSString *IpAddress = 0;
NSString *TypeId = 0;
NSString *Value = 0;
NSString *RegisteredId = 0;
NSString *Rfc822Name = 0;
NSString *UniformResourceIdentifier = 0;
NSString *AccessMethodType = 0;
NSString *CustomObjectIdentifier = 0;
NSString *NextToken = [jResp StringOf: @"NextToken"];
int i = 0;
int count_i = [[jResp SizeOfArray: @"CertificateAuthorities"] intValue];
while (i < count_i) {
jResp.I = [NSNumber numberWithInt: i];
Arn = [jResp StringOf: @"CertificateAuthorities[i].Arn"];
CRLSign = [[jResp IntOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.CRLSign"] intValue];
DataEncipherment = [[jResp IntOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.DataEncipherment"] intValue];
DecipherOnly = [[jResp IntOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.DecipherOnly"] intValue];
DigitalSignature = [[jResp IntOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.DigitalSignature"] intValue];
EncipherOnly = [[jResp IntOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.EncipherOnly"] intValue];
KeyAgreement = [[jResp IntOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.KeyAgreement"] intValue];
KeyCertSign = [[jResp IntOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.KeyCertSign"] intValue];
KeyEncipherment = [[jResp IntOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.KeyEncipherment"] intValue];
NonRepudiation = [[jResp IntOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.NonRepudiation"] intValue];
KeyAlgorithm = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.KeyAlgorithm"];
SigningAlgorithm = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.SigningAlgorithm"];
CommonName = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.CommonName"];
Country = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Country"];
DistinguishedNameQualifier = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.DistinguishedNameQualifier"];
GenerationQualifier = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.GenerationQualifier"];
GivenName = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.GivenName"];
Initials = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Initials"];
Locality = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Locality"];
Organization = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Organization"];
OrganizationalUnit = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.OrganizationalUnit"];
Pseudonym = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Pseudonym"];
SerialNumber = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.SerialNumber"];
State = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.State"];
Surname = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Surname"];
Title = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Title"];
CreatedAt = [[jResp IntOf: @"CertificateAuthorities[i].CreatedAt"] intValue];
FailureReason = [jResp StringOf: @"CertificateAuthorities[i].FailureReason"];
KeyStorageSecurityStandard = [jResp StringOf: @"CertificateAuthorities[i].KeyStorageSecurityStandard"];
LastStateChangeAt = [[jResp IntOf: @"CertificateAuthorities[i].LastStateChangeAt"] intValue];
NotAfter = [[jResp IntOf: @"CertificateAuthorities[i].NotAfter"] intValue];
NotBefore = [[jResp IntOf: @"CertificateAuthorities[i].NotBefore"] intValue];
OwnerAccount = [jResp StringOf: @"CertificateAuthorities[i].OwnerAccount"];
RestorableUntil = [[jResp IntOf: @"CertificateAuthorities[i].RestorableUntil"] intValue];
CustomCname = [jResp StringOf: @"CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.CustomCname"];
Enabled = [[jResp IntOf: @"CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.Enabled"] intValue];
ExpirationInDays = [[jResp IntOf: @"CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.ExpirationInDays"] intValue];
S3BucketName = [jResp StringOf: @"CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.S3BucketName"];
S3ObjectAcl = [jResp StringOf: @"CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.S3ObjectAcl"];
OcspConfigurationEnabled = [[jResp IntOf: @"CertificateAuthorities[i].RevocationConfiguration.OcspConfiguration.Enabled"] intValue];
OcspCustomCname = [jResp StringOf: @"CertificateAuthorities[i].RevocationConfiguration.OcspConfiguration.OcspCustomCname"];
Serial = [jResp StringOf: @"CertificateAuthorities[i].Serial"];
Status = [jResp StringOf: @"CertificateAuthorities[i].Status"];
v_Type = [jResp StringOf: @"CertificateAuthorities[i].Type"];
j = 0;
count_j = [[jResp SizeOfArray: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess"] intValue];
while (j < count_j) {
jResp.J = [NSNumber numberWithInt: j];
DirectoryNameCommonName = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.CommonName"];
DirectoryNameCountry = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Country"];
DirectoryNameDistinguishedNameQualifier = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.DistinguishedNameQualifier"];
DirectoryNameGenerationQualifier = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.GenerationQualifier"];
DirectoryNameGivenName = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.GivenName"];
DirectoryNameInitials = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Initials"];
DirectoryNameLocality = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Locality"];
DirectoryNameOrganization = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Organization"];
DirectoryNameOrganizationalUnit = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.OrganizationalUnit"];
DirectoryNamePseudonym = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Pseudonym"];
DirectoryNameSerialNumber = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.SerialNumber"];
DirectoryNameState = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.State"];
DirectoryNameSurname = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Surname"];
DirectoryNameTitle = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Title"];
DnsName = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DnsName"];
NameAssigner = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.EdiPartyName.NameAssigner"];
PartyName = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.EdiPartyName.PartyName"];
IpAddress = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.IpAddress"];
TypeId = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.OtherName.TypeId"];
Value = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.OtherName.Value"];
RegisteredId = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.RegisteredId"];
Rfc822Name = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.Rfc822Name"];
UniformResourceIdentifier = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.UniformResourceIdentifier"];
AccessMethodType = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessMethod.AccessMethodType"];
CustomObjectIdentifier = [jResp StringOf: @"CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessMethod.CustomObjectIdentifier"];
j = j + 1;
}
i = i + 1;
}
// A sample JSON response body parsed by the above code:
// {
// "CertificateAuthorities": [
// {
// "Arn": "string",
// "CertificateAuthorityConfiguration": {
// "CsrExtensions": {
// "KeyUsage": {
// "CRLSign": boolean,
// "DataEncipherment": boolean,
// "DecipherOnly": boolean,
// "DigitalSignature": boolean,
// "EncipherOnly": boolean,
// "KeyAgreement": boolean,
// "KeyCertSign": boolean,
// "KeyEncipherment": boolean,
// "NonRepudiation": boolean
// },
// "SubjectInformationAccess": [
// {
// "AccessLocation": {
// "DirectoryName": {
// "CommonName": "string",
// "Country": "string",
// "DistinguishedNameQualifier": "string",
// "GenerationQualifier": "string",
// "GivenName": "string",
// "Initials": "string",
// "Locality": "string",
// "Organization": "string",
// "OrganizationalUnit": "string",
// "Pseudonym": "string",
// "SerialNumber": "string",
// "State": "string",
// "Surname": "string",
// "Title": "string"
// },
// "DnsName": "string",
// "EdiPartyName": {
// "NameAssigner": "string",
// "PartyName": "string"
// },
// "IpAddress": "string",
// "OtherName": {
// "TypeId": "string",
// "Value": "string"
// },
// "RegisteredId": "string",
// "Rfc822Name": "string",
// "UniformResourceIdentifier": "string"
// },
// "AccessMethod": {
// "AccessMethodType": "string",
// "CustomObjectIdentifier": "string"
// }
// }
// ]
// },
// "KeyAlgorithm": "string",
// "SigningAlgorithm": "string",
// "Subject": {
// "CommonName": "string",
// "Country": "string",
// "DistinguishedNameQualifier": "string",
// "GenerationQualifier": "string",
// "GivenName": "string",
// "Initials": "string",
// "Locality": "string",
// "Organization": "string",
// "OrganizationalUnit": "string",
// "Pseudonym": "string",
// "SerialNumber": "string",
// "State": "string",
// "Surname": "string",
// "Title": "string"
// }
// },
// "CreatedAt": number,
// "FailureReason": "string",
// "KeyStorageSecurityStandard": "string",
// "LastStateChangeAt": number,
// "NotAfter": number,
// "NotBefore": number,
// "OwnerAccount": "string",
// "RestorableUntil": number,
// "RevocationConfiguration": {
// "CrlConfiguration": {
// "CustomCname": "string",
// "Enabled": boolean,
// "ExpirationInDays": number,
// "S3BucketName": "string",
// "S3ObjectAcl": "string"
// },
// "OcspConfiguration": {
// "Enabled": boolean,
// "OcspCustomCname": "string"
// }
// },
// "Serial": "string",
// "Status": "string",
// "Type": "string"
// }
// ],
// "NextToken": "string"
// }