Chilkat Online Tools

ListCertificateAuthorities Go Example

AWS Private CA

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

    rest := chilkat.NewRest()
    var success bool

    authAws := chilkat.NewAuthAws()
    authAws.SetAccessKey("AWS_ACCESS_KEY")
    authAws.SetSecretKey("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.SetRegion("us-west-2")
    authAws.SetServiceName("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",443,true,true)
    if success != true {
        fmt.Println("ConnectFailReason: ", rest.ConnectFailReason())
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        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

    json := chilkat.NewJsonObject()
    json.UpdateInt("MaxResults",123)
    json.UpdateString("NextToken","string")
    json.UpdateString("ResourceOwner","string")

    // The JSON request body created by the above code:

    // {
    //   "MaxResults": number,
    //   "NextToken": "string",
    //   "ResourceOwner": "string"
    // }

    rest.AddHeader("Content-Type","application/x-amz-json-1.1")
    rest.AddHeader("X-Amz-Target","ACMPrivateCA.ListCertificateAuthorities")

    sbRequestBody := chilkat.NewStringBuilder()
    json.EmitSb(sbRequestBody)
    sbResponseBody := chilkat.NewStringBuilder()
    success = rest.FullRequestSb("POST","/",sbRequestBody,sbResponseBody)
    if success != true {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        json.DisposeJsonObject()
        sbRequestBody.DisposeStringBuilder()
        sbResponseBody.DisposeStringBuilder()
        return
    }

    respStatusCode := rest.ResponseStatusCode()
    fmt.Println("response status code = ", respStatusCode)
    if respStatusCode != 200 {
        fmt.Println("Response Header:")
        fmt.Println(rest.ResponseHeader())
        fmt.Println("Response Body:")
        fmt.Println(*sbResponseBody.GetAsString())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        json.DisposeJsonObject()
        sbRequestBody.DisposeStringBuilder()
        sbResponseBody.DisposeStringBuilder()
        return
    }

    jResp := chilkat.NewJsonObject()
    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

Arn_DECLARATION
    var CRLSign int
    var DataEncipherment int
    var DecipherOnly int
    var DigitalSignature int
    var EncipherOnly int
    var KeyAgreement int
    var KeyCertSign int
    var KeyEncipherment int
    var NonRepudiation int
KeyAlgorithm_DECLARATION
SigningAlgorithm_DECLARATION
CommonName_DECLARATION
Country_DECLARATION
DistinguishedNameQualifier_DECLARATION
GenerationQualifier_DECLARATION
GivenName_DECLARATION
Initials_DECLARATION
Locality_DECLARATION
Organization_DECLARATION
OrganizationalUnit_DECLARATION
Pseudonym_DECLARATION
SerialNumber_DECLARATION
State_DECLARATION
Surname_DECLARATION
Title_DECLARATION
    var CreatedAt int
FailureReason_DECLARATION
KeyStorageSecurityStandard_DECLARATION
    var LastStateChangeAt int
    var NotAfter int
    var NotBefore int
OwnerAccount_DECLARATION
    var RestorableUntil int
CustomCname_DECLARATION
    var Enabled int
    var ExpirationInDays int
S3BucketName_DECLARATION
S3ObjectAcl_DECLARATION
    var OcspConfigurationEnabled int
OcspCustomCname_DECLARATION
Serial_DECLARATION
Status_DECLARATION
v_Type_DECLARATION
    var j int
    var count_j int
DirectoryNameCommonName_DECLARATION
DirectoryNameCountry_DECLARATION
DirectoryNameDistinguishedNameQualifier_DECLARATION
DirectoryNameGenerationQualifier_DECLARATION
DirectoryNameGivenName_DECLARATION
DirectoryNameInitials_DECLARATION
DirectoryNameLocality_DECLARATION
DirectoryNameOrganization_DECLARATION
DirectoryNameOrganizationalUnit_DECLARATION
DirectoryNamePseudonym_DECLARATION
DirectoryNameSerialNumber_DECLARATION
DirectoryNameState_DECLARATION
DirectoryNameSurname_DECLARATION
DirectoryNameTitle_DECLARATION
DnsName_DECLARATION
NameAssigner_DECLARATION
PartyName_DECLARATION
IpAddress_DECLARATION
TypeId_DECLARATION
Value_DECLARATION
RegisteredId_DECLARATION
Rfc822Name_DECLARATION
UniformResourceIdentifier_DECLARATION
AccessMethodType_DECLARATION
CustomObjectIdentifier_DECLARATION

    NextToken := jResp.StringOf("NextToken")
    i := 0
    count_i := jResp.SizeOfArray("CertificateAuthorities")
    for i < count_i {
        jResp.SetI(i)
        Arn = *jResp.StringOf("CertificateAuthorities[i].Arn")
        CRLSign = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.CRLSign")
        DataEncipherment = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.DataEncipherment")
        DecipherOnly = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.DecipherOnly")
        DigitalSignature = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.DigitalSignature")
        EncipherOnly = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.EncipherOnly")
        KeyAgreement = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.KeyAgreement")
        KeyCertSign = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.KeyCertSign")
        KeyEncipherment = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.KeyEncipherment")
        NonRepudiation = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.NonRepudiation")
        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")
        FailureReason = *jResp.StringOf("CertificateAuthorities[i].FailureReason")
        KeyStorageSecurityStandard = *jResp.StringOf("CertificateAuthorities[i].KeyStorageSecurityStandard")
        LastStateChangeAt = jResp.IntOf("CertificateAuthorities[i].LastStateChangeAt")
        NotAfter = jResp.IntOf("CertificateAuthorities[i].NotAfter")
        NotBefore = jResp.IntOf("CertificateAuthorities[i].NotBefore")
        OwnerAccount = *jResp.StringOf("CertificateAuthorities[i].OwnerAccount")
        RestorableUntil = jResp.IntOf("CertificateAuthorities[i].RestorableUntil")
        CustomCname = *jResp.StringOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.CustomCname")
        Enabled = jResp.IntOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.Enabled")
        ExpirationInDays = jResp.IntOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.ExpirationInDays")
        S3BucketName = *jResp.StringOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.S3BucketName")
        S3ObjectAcl = *jResp.StringOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.S3ObjectAcl")
        OcspConfigurationEnabled = jResp.IntOf("CertificateAuthorities[i].RevocationConfiguration.OcspConfiguration.Enabled")
        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")
        for j < count_j {
            jResp.SetJ(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"
    // }

    rest.DisposeRest()
    authAws.DisposeAuthAws()
    json.DisposeJsonObject()
    sbRequestBody.DisposeStringBuilder()
    sbResponseBody.DisposeStringBuilder()
    jResp.DisposeJsonObject()