DescribeStacks Go Example
// 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("opsworks")
// SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
rest.SetAuthAws(authAws)
// 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,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.UpdateString("StackIds[0]","string")
// The JSON request body created by the above code:
// {
// "StackIds": [
// "string"
// ]
// }
rest.AddHeader("Content-Type","application/x-amz-json-1.1")
rest.AddHeader("X-Amz-Target","OpsWorks_20130218.DescribeStacks")
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
AgentVersion_DECLARATION
Arn_DECLARATION
v_String_DECLARATION
BerkshelfVersion_DECLARATION
var ManageBerkshelf int
Name_DECLARATION
Version_DECLARATION
CreatedAt_DECLARATION
Password_DECLARATION
Revision_DECLARATION
v_SshKey_DECLARATION
v_Type_DECLARATION
v_Url_DECLARATION
Username_DECLARATION
CustomJson_DECLARATION
DefaultAvailabilityZone_DECLARATION
DefaultInstanceProfileArn_DECLARATION
DefaultOs_DECLARATION
DefaultRootDeviceType_DECLARATION
DefaultSshKeyName_DECLARATION
DefaultSubnetId_DECLARATION
HostnameTheme_DECLARATION
Region_DECLARATION
ServiceRoleArn_DECLARATION
StackId_DECLARATION
var UseCustomCookbooks int
var UseOpsworksSecurityGroups int
VpcId_DECLARATION
i := 0
count_i := jResp.SizeOfArray("Stacks")
for i < count_i {
jResp.SetI(i)
AgentVersion = *jResp.StringOf("Stacks[i].AgentVersion")
Arn = *jResp.StringOf("Stacks[i].Arn")
v_String = *jResp.StringOf("Stacks[i].Attributes.string")
BerkshelfVersion = *jResp.StringOf("Stacks[i].ChefConfiguration.BerkshelfVersion")
ManageBerkshelf = jResp.IntOf("Stacks[i].ChefConfiguration.ManageBerkshelf")
Name = *jResp.StringOf("Stacks[i].ConfigurationManager.Name")
Version = *jResp.StringOf("Stacks[i].ConfigurationManager.Version")
CreatedAt = *jResp.StringOf("Stacks[i].CreatedAt")
Password = *jResp.StringOf("Stacks[i].CustomCookbooksSource.Password")
Revision = *jResp.StringOf("Stacks[i].CustomCookbooksSource.Revision")
v_SshKey = *jResp.StringOf("Stacks[i].CustomCookbooksSource.SshKey")
v_Type = *jResp.StringOf("Stacks[i].CustomCookbooksSource.Type")
v_Url = *jResp.StringOf("Stacks[i].CustomCookbooksSource.Url")
Username = *jResp.StringOf("Stacks[i].CustomCookbooksSource.Username")
CustomJson = *jResp.StringOf("Stacks[i].CustomJson")
DefaultAvailabilityZone = *jResp.StringOf("Stacks[i].DefaultAvailabilityZone")
DefaultInstanceProfileArn = *jResp.StringOf("Stacks[i].DefaultInstanceProfileArn")
DefaultOs = *jResp.StringOf("Stacks[i].DefaultOs")
DefaultRootDeviceType = *jResp.StringOf("Stacks[i].DefaultRootDeviceType")
DefaultSshKeyName = *jResp.StringOf("Stacks[i].DefaultSshKeyName")
DefaultSubnetId = *jResp.StringOf("Stacks[i].DefaultSubnetId")
HostnameTheme = *jResp.StringOf("Stacks[i].HostnameTheme")
Name = *jResp.StringOf("Stacks[i].Name")
Region = *jResp.StringOf("Stacks[i].Region")
ServiceRoleArn = *jResp.StringOf("Stacks[i].ServiceRoleArn")
StackId = *jResp.StringOf("Stacks[i].StackId")
UseCustomCookbooks = jResp.IntOf("Stacks[i].UseCustomCookbooks")
UseOpsworksSecurityGroups = jResp.IntOf("Stacks[i].UseOpsworksSecurityGroups")
VpcId = *jResp.StringOf("Stacks[i].VpcId")
i = i + 1
}
// A sample JSON response body parsed by the above code:
// {
// "Stacks": [
// {
// "AgentVersion": "string",
// "Arn": "string",
// "Attributes": {
// "string": "string"
// },
// "ChefConfiguration": {
// "BerkshelfVersion": "string",
// "ManageBerkshelf": boolean
// },
// "ConfigurationManager": {
// "Name": "string",
// "Version": "string"
// },
// "CreatedAt": "string",
// "CustomCookbooksSource": {
// "Password": "string",
// "Revision": "string",
// "SshKey": "string",
// "Type": "string",
// "Url": "string",
// "Username": "string"
// },
// "CustomJson": "string",
// "DefaultAvailabilityZone": "string",
// "DefaultInstanceProfileArn": "string",
// "DefaultOs": "string",
// "DefaultRootDeviceType": "string",
// "DefaultSshKeyName": "string",
// "DefaultSubnetId": "string",
// "HostnameTheme": "string",
// "Name": "string",
// "Region": "string",
// "ServiceRoleArn": "string",
// "StackId": "string",
// "UseCustomCookbooks": boolean,
// "UseOpsworksSecurityGroups": boolean,
// "VpcId": "string"
// }
// ]
// }
rest.DisposeRest()
authAws.DisposeAuthAws()
json.DisposeJsonObject()
sbRequestBody.DisposeStringBuilder()
sbResponseBody.DisposeStringBuilder()
jResp.DisposeJsonObject()