CreateCluster Ruby Example
require 'chilkat'
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
rest = Chilkat::CkRest.new()
authAws = Chilkat::CkAuthAws.new()
authAws.put_AccessKey("AWS_ACCESS_KEY")
authAws.put_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.put_Region("us-west-2")
authAws.put_ServiceName("eks")
# SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
rest.SetAuthAws(authAws)
# URL: https://eks.us-west-2.amazonaws.com/
# Use the same region as specified above.
success = rest.Connect("eks.us-west-2.amazonaws.com",443,true,true)
if (success != true)
print "ConnectFailReason: " + rest.get_ConnectFailReason().to_s() + "\n";
print rest.lastErrorText() + "\n";
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 = Chilkat::CkJsonObject.new()
json.UpdateString("clientRequestToken","string")
json.UpdateString("encryptionConfig[0].provider.keyArn","string")
json.UpdateString("encryptionConfig[0].resources[0]","string")
json.UpdateString("kubernetesNetworkConfig.ipFamily","string")
json.UpdateString("kubernetesNetworkConfig.serviceIpv4Cidr","string")
json.UpdateInt("logging.clusterLogging[0].enabled",123)
json.UpdateString("logging.clusterLogging[0].types[0]","string")
json.UpdateString("name","string")
json.UpdateInt("resourcesVpcConfig.endpointPrivateAccess",123)
json.UpdateInt("resourcesVpcConfig.endpointPublicAccess",123)
json.UpdateString("resourcesVpcConfig.publicAccessCidrs[0]","string")
json.UpdateString("resourcesVpcConfig.securityGroupIds[0]","string")
json.UpdateString("resourcesVpcConfig.subnetIds[0]","string")
json.UpdateString("roleArn","string")
json.UpdateString("tags.string","string")
json.UpdateString("version","string")
# The JSON request body created by the above code:
# {
# "clientRequestToken": "string",
# "encryptionConfig": [
# {
# "provider": {
# "keyArn": "string"
# },
# "resources": [
# "string"
# ]
# }
# ],
# "kubernetesNetworkConfig": {
# "ipFamily": "string",
# "serviceIpv4Cidr": "string"
# },
# "logging": {
# "clusterLogging": [
# {
# "enabled": boolean,
# "types": [
# "string"
# ]
# }
# ]
# },
# "name": "string",
# "resourcesVpcConfig": {
# "endpointPrivateAccess": boolean,
# "endpointPublicAccess": boolean,
# "publicAccessCidrs": [
# "string"
# ],
# "securityGroupIds": [
# "string"
# ],
# "subnetIds": [
# "string"
# ]
# },
# "roleArn": "string",
# "tags": {
# "string": "string"
# },
# "version": "string"
# }
rest.AddHeader("Content-Type","application/x-amz-json-1.1")
rest.AddHeader("X-Amz-Target","CreateCluster")
sbRequestBody = Chilkat::CkStringBuilder.new()
json.EmitSb(sbRequestBody)
sbResponseBody = Chilkat::CkStringBuilder.new()
success = rest.FullRequestSb("POST","/clusters",sbRequestBody,sbResponseBody)
if (success != true)
print rest.lastErrorText() + "\n";
exit
end
respStatusCode = rest.get_ResponseStatusCode()
print "response status code = " + respStatusCode.to_s() + "\n";
if (respStatusCode != 200)
print "Response Header:" + "\n";
print rest.responseHeader() + "\n";
print "Response Body:" + "\n";
print sbResponseBody.getAsString() + "\n";
exit
end
jResp = Chilkat::CkJsonObject.new()
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 = jResp.stringOf("cluster.arn")
Data = jResp.stringOf("cluster.certificateAuthority.data")
ClientRequestToken = jResp.stringOf("cluster.clientRequestToken")
ActivationCode = jResp.stringOf("cluster.connectorConfig.activationCode")
ActivationExpiry = jResp.IntOf("cluster.connectorConfig.activationExpiry")
ActivationId = jResp.stringOf("cluster.connectorConfig.activationId")
Provider = jResp.stringOf("cluster.connectorConfig.provider")
RoleArn = jResp.stringOf("cluster.connectorConfig.roleArn")
CreatedAt = jResp.IntOf("cluster.createdAt")
Endpoint = jResp.stringOf("cluster.endpoint")
Issuer = jResp.stringOf("cluster.identity.oidc.issuer")
IpFamily = jResp.stringOf("cluster.kubernetesNetworkConfig.ipFamily")
ServiceIpv4Cidr = jResp.stringOf("cluster.kubernetesNetworkConfig.serviceIpv4Cidr")
ServiceIpv6Cidr = jResp.stringOf("cluster.kubernetesNetworkConfig.serviceIpv6Cidr")
Name = jResp.stringOf("cluster.name")
PlatformVersion = jResp.stringOf("cluster.platformVersion")
ClusterSecurityGroupId = jResp.stringOf("cluster.resourcesVpcConfig.clusterSecurityGroupId")
EndpointPrivateAccess = jResp.IntOf("cluster.resourcesVpcConfig.endpointPrivateAccess")
EndpointPublicAccess = jResp.IntOf("cluster.resourcesVpcConfig.endpointPublicAccess")
VpcId = jResp.stringOf("cluster.resourcesVpcConfig.vpcId")
clusterRoleArn = jResp.stringOf("cluster.roleArn")
Status = jResp.stringOf("cluster.status")
v_String = jResp.stringOf("cluster.tags.string")
Version = jResp.stringOf("cluster.version")
i = 0
count_i = jResp.SizeOfArray("cluster.encryptionConfig")
while i < count_i
jResp.put_I(i)
KeyArn = jResp.stringOf("cluster.encryptionConfig[i].provider.keyArn")
j = 0
count_j = jResp.SizeOfArray("cluster.encryptionConfig[i].resources")
while j < count_j
jResp.put_J(j)
strVal = jResp.stringOf("cluster.encryptionConfig[i].resources[j]")
j = j + 1
end
i = i + 1
end
i = 0
count_i = jResp.SizeOfArray("cluster.logging.clusterLogging")
while i < count_i
jResp.put_I(i)
enabled = jResp.IntOf("cluster.logging.clusterLogging[i].enabled")
j = 0
count_j = jResp.SizeOfArray("cluster.logging.clusterLogging[i].types")
while j < count_j
jResp.put_J(j)
strVal = jResp.stringOf("cluster.logging.clusterLogging[i].types[j]")
j = j + 1
end
i = i + 1
end
i = 0
count_i = jResp.SizeOfArray("cluster.resourcesVpcConfig.publicAccessCidrs")
while i < count_i
jResp.put_I(i)
strVal = jResp.stringOf("cluster.resourcesVpcConfig.publicAccessCidrs[i]")
i = i + 1
end
i = 0
count_i = jResp.SizeOfArray("cluster.resourcesVpcConfig.securityGroupIds")
while i < count_i
jResp.put_I(i)
strVal = jResp.stringOf("cluster.resourcesVpcConfig.securityGroupIds[i]")
i = i + 1
end
i = 0
count_i = jResp.SizeOfArray("cluster.resourcesVpcConfig.subnetIds")
while i < count_i
jResp.put_I(i)
strVal = jResp.stringOf("cluster.resourcesVpcConfig.subnetIds[i]")
i = i + 1
end
# A sample JSON response body parsed by the above code:
# {
# "cluster": {
# "arn": "string",
# "certificateAuthority": {
# "data": "string"
# },
# "clientRequestToken": "string",
# "connectorConfig": {
# "activationCode": "string",
# "activationExpiry": number,
# "activationId": "string",
# "provider": "string",
# "roleArn": "string"
# },
# "createdAt": number,
# "encryptionConfig": [
# {
# "provider": {
# "keyArn": "string"
# },
# "resources": [
# "string"
# ]
# }
# ],
# "endpoint": "string",
# "identity": {
# "oidc": {
# "issuer": "string"
# }
# },
# "kubernetesNetworkConfig": {
# "ipFamily": "string",
# "serviceIpv4Cidr": "string",
# "serviceIpv6Cidr": "string"
# },
# "logging": {
# "clusterLogging": [
# {
# "enabled": boolean,
# "types": [
# "string"
# ]
# }
# ]
# },
# "name": "string",
# "platformVersion": "string",
# "resourcesVpcConfig": {
# "clusterSecurityGroupId": "string",
# "endpointPrivateAccess": boolean,
# "endpointPublicAccess": boolean,
# "publicAccessCidrs": [
# "string"
# ],
# "securityGroupIds": [
# "string"
# ],
# "subnetIds": [
# "string"
# ],
# "vpcId": "string"
# },
# "roleArn": "string",
# "status": "string",
# "tags": {
# "string": "string"
# },
# "version": "string"
# }
# }