Chilkat Online Tools

CreateKey Go Example

AWS Key Management Service

    // 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("kms")
    // SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
    rest.SetAuthAws(authAws)

    // URL: https://kms.us-west-2.amazonaws.com/
    // Use the same region as specified above.
    success = rest.Connect("kms.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("BypassPolicyLockoutSafetyCheck",123)
    json.UpdateString("CustomerMasterKeySpec","string")
    json.UpdateString("CustomKeyStoreId","string")
    json.UpdateString("Description","string")
    json.UpdateString("KeySpec","string")
    json.UpdateString("KeyUsage","string")
    json.UpdateInt("MultiRegion",123)
    json.UpdateString("Origin","string")
    json.UpdateString("Policy","string")
    json.UpdateString("Tags[0].TagKey","string")
    json.UpdateString("Tags[0].TagValue","string")

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

    // {
    //   "BypassPolicyLockoutSafetyCheck": boolean,
    //   "CustomerMasterKeySpec": "string",
    //   "CustomKeyStoreId": "string",
    //   "Description": "string",
    //   "KeySpec": "string",
    //   "KeyUsage": "string",
    //   "MultiRegion": boolean,
    //   "Origin": "string",
    //   "Policy": "string",
    //   "Tags": [
    //     {
    //       "TagKey": "string",
    //       "TagValue": "string"
    //     }
    //   ]
    // }

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

    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

strVal_DECLARATION

    Arn := jResp.StringOf("KeyMetadata.Arn")
    AWSAccountId := jResp.StringOf("KeyMetadata.AWSAccountId")
    CloudHsmClusterId := jResp.StringOf("KeyMetadata.CloudHsmClusterId")
    CreationDate := jResp.IntOf("KeyMetadata.CreationDate")
    CustomerMasterKeySpec := jResp.StringOf("KeyMetadata.CustomerMasterKeySpec")
    CustomKeyStoreId := jResp.StringOf("KeyMetadata.CustomKeyStoreId")
    DeletionDate := jResp.IntOf("KeyMetadata.DeletionDate")
    Description := jResp.StringOf("KeyMetadata.Description")
    Enabled := jResp.IntOf("KeyMetadata.Enabled")
    ExpirationModel := jResp.StringOf("KeyMetadata.ExpirationModel")
    KeyId := jResp.StringOf("KeyMetadata.KeyId")
    KeyManager := jResp.StringOf("KeyMetadata.KeyManager")
    KeySpec := jResp.StringOf("KeyMetadata.KeySpec")
    KeyState := jResp.StringOf("KeyMetadata.KeyState")
    KeyUsage := jResp.StringOf("KeyMetadata.KeyUsage")
    MultiRegion := jResp.IntOf("KeyMetadata.MultiRegion")
    MultiRegionKeyType := jResp.StringOf("KeyMetadata.MultiRegionConfiguration.MultiRegionKeyType")
    PrimaryKeyArn := jResp.StringOf("KeyMetadata.MultiRegionConfiguration.PrimaryKey.Arn")
    Region := jResp.StringOf("KeyMetadata.MultiRegionConfiguration.PrimaryKey.Region")
    Origin := jResp.StringOf("KeyMetadata.Origin")
    PendingDeletionWindowInDays := jResp.IntOf("KeyMetadata.PendingDeletionWindowInDays")
    ValidTo := jResp.IntOf("KeyMetadata.ValidTo")
    i := 0
    count_i := jResp.SizeOfArray("KeyMetadata.EncryptionAlgorithms")
    for i < count_i {
        jResp.SetI(i)
        strVal = *jResp.StringOf("KeyMetadata.EncryptionAlgorithms[i]")
        i = i + 1
    }

    i = 0
    count_i = jResp.SizeOfArray("KeyMetadata.MacAlgorithms")
    for i < count_i {
        jResp.SetI(i)
        strVal = *jResp.StringOf("KeyMetadata.MacAlgorithms[i]")
        i = i + 1
    }

    i = 0
    count_i = jResp.SizeOfArray("KeyMetadata.MultiRegionConfiguration.ReplicaKeys")
    for i < count_i {
        jResp.SetI(i)
        Arn = *jResp.StringOf("KeyMetadata.MultiRegionConfiguration.ReplicaKeys[i].Arn")
        Region = *jResp.StringOf("KeyMetadata.MultiRegionConfiguration.ReplicaKeys[i].Region")
        i = i + 1
    }

    i = 0
    count_i = jResp.SizeOfArray("KeyMetadata.SigningAlgorithms")
    for i < count_i {
        jResp.SetI(i)
        strVal = *jResp.StringOf("KeyMetadata.SigningAlgorithms[i]")
        i = i + 1
    }

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

    // {
    //   "KeyMetadata": {
    //     "Arn": "string",
    //     "AWSAccountId": "string",
    //     "CloudHsmClusterId": "string",
    //     "CreationDate": number,
    //     "CustomerMasterKeySpec": "string",
    //     "CustomKeyStoreId": "string",
    //     "DeletionDate": number,
    //     "Description": "string",
    //     "Enabled": boolean,
    //     "EncryptionAlgorithms": [
    //       "string"
    //     ],
    //     "ExpirationModel": "string",
    //     "KeyId": "string",
    //     "KeyManager": "string",
    //     "KeySpec": "string",
    //     "KeyState": "string",
    //     "KeyUsage": "string",
    //     "MacAlgorithms": [
    //       "string"
    //     ],
    //     "MultiRegion": boolean,
    //     "MultiRegionConfiguration": {
    //       "MultiRegionKeyType": "string",
    //       "PrimaryKey": {
    //         "Arn": "string",
    //         "Region": "string"
    //       },
    //       "ReplicaKeys": [
    //         {
    //           "Arn": "string",
    //           "Region": "string"
    //         }
    //       ]
    //     },
    //     "Origin": "string",
    //     "PendingDeletionWindowInDays": number,
    //     "SigningAlgorithms": [
    //       "string"
    //     ],
    //     "ValidTo": number
    //   }
    // }

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