/*
* Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.autoscaling.model.transform;
import com.amazonaws.AmazonClientException;
import com.amazonaws.Request;
import com.amazonaws.DefaultRequest;
import com.amazonaws.services.autoscaling.model.*;
import com.amazonaws.transform.Marshaller;
import com.amazonaws.util.StringUtils;
/**
* StAX request marshaller for CreateLaunchConfigurationRequest
*/
public class CreateLaunchConfigurationRequestMarshaller implements
Marshaller<Request<CreateLaunchConfigurationRequest>, CreateLaunchConfigurationRequest> {
public Request<CreateLaunchConfigurationRequest> marshall(
CreateLaunchConfigurationRequest createLaunchConfigurationRequest) {
if (createLaunchConfigurationRequest == null) {
throw new AmazonClientException(
"Invalid argument passed to marshall(CreateLaunchConfigurationRequest)");
}
Request<CreateLaunchConfigurationRequest> request = new DefaultRequest<CreateLaunchConfigurationRequest>(
createLaunchConfigurationRequest, "AmazonAutoScaling");
request.addParameter("Action", "CreateLaunchConfiguration");
request.addParameter("Version", "2011-01-01");
String prefix;
if (createLaunchConfigurationRequest.getLaunchConfigurationName() != null) {
prefix = "LaunchConfigurationName";
String launchConfigurationName = createLaunchConfigurationRequest
.getLaunchConfigurationName();
request.addParameter(prefix, StringUtils.fromString(launchConfigurationName));
}
if (createLaunchConfigurationRequest.getImageId() != null) {
prefix = "ImageId";
String imageId = createLaunchConfigurationRequest.getImageId();
request.addParameter(prefix, StringUtils.fromString(imageId));
}
if (createLaunchConfigurationRequest.getKeyName() != null) {
prefix = "KeyName";
String keyName = createLaunchConfigurationRequest.getKeyName();
request.addParameter(prefix, StringUtils.fromString(keyName));
}
if (createLaunchConfigurationRequest.getSecurityGroups() != null) {
prefix = "SecurityGroups";
java.util.List<String> securityGroups = createLaunchConfigurationRequest
.getSecurityGroups();
int securityGroupsIndex = 1;
String securityGroupsPrefix = prefix;
for (String securityGroupsItem : securityGroups) {
prefix = securityGroupsPrefix + ".member." + securityGroupsIndex;
if (securityGroupsItem != null) {
request.addParameter(prefix, StringUtils.fromString(securityGroupsItem));
}
securityGroupsIndex++;
}
prefix = securityGroupsPrefix;
}
if (createLaunchConfigurationRequest.getClassicLinkVPCId() != null) {
prefix = "ClassicLinkVPCId";
String classicLinkVPCId = createLaunchConfigurationRequest.getClassicLinkVPCId();
request.addParameter(prefix, StringUtils.fromString(classicLinkVPCId));
}
if (createLaunchConfigurationRequest.getClassicLinkVPCSecurityGroups() != null) {
prefix = "ClassicLinkVPCSecurityGroups";
java.util.List<String> classicLinkVPCSecurityGroups = createLaunchConfigurationRequest
.getClassicLinkVPCSecurityGroups();
int classicLinkVPCSecurityGroupsIndex = 1;
String classicLinkVPCSecurityGroupsPrefix = prefix;
for (String classicLinkVPCSecurityGroupsItem : classicLinkVPCSecurityGroups) {
prefix = classicLinkVPCSecurityGroupsPrefix + ".member."
+ classicLinkVPCSecurityGroupsIndex;
if (classicLinkVPCSecurityGroupsItem != null) {
request.addParameter(prefix,
StringUtils.fromString(classicLinkVPCSecurityGroupsItem));
}
classicLinkVPCSecurityGroupsIndex++;
}
prefix = classicLinkVPCSecurityGroupsPrefix;
}
if (createLaunchConfigurationRequest.getUserData() != null) {
prefix = "UserData";
String userData = createLaunchConfigurationRequest.getUserData();
request.addParameter(prefix, StringUtils.fromString(userData));
}
if (createLaunchConfigurationRequest.getInstanceId() != null) {
prefix = "InstanceId";
String instanceId = createLaunchConfigurationRequest.getInstanceId();
request.addParameter(prefix, StringUtils.fromString(instanceId));
}
if (createLaunchConfigurationRequest.getInstanceType() != null) {
prefix = "InstanceType";
String instanceType = createLaunchConfigurationRequest.getInstanceType();
request.addParameter(prefix, StringUtils.fromString(instanceType));
}
if (createLaunchConfigurationRequest.getKernelId() != null) {
prefix = "KernelId";
String kernelId = createLaunchConfigurationRequest.getKernelId();
request.addParameter(prefix, StringUtils.fromString(kernelId));
}
if (createLaunchConfigurationRequest.getRamdiskId() != null) {
prefix = "RamdiskId";
String ramdiskId = createLaunchConfigurationRequest.getRamdiskId();
request.addParameter(prefix, StringUtils.fromString(ramdiskId));
}
if (createLaunchConfigurationRequest.getBlockDeviceMappings() != null) {
prefix = "BlockDeviceMappings";
java.util.List<BlockDeviceMapping> blockDeviceMappings = createLaunchConfigurationRequest
.getBlockDeviceMappings();
int blockDeviceMappingsIndex = 1;
String blockDeviceMappingsPrefix = prefix;
for (BlockDeviceMapping blockDeviceMappingsItem : blockDeviceMappings) {
prefix = blockDeviceMappingsPrefix + ".member." + blockDeviceMappingsIndex;
if (blockDeviceMappingsItem != null) {
BlockDeviceMappingStaxMarshaller.getInstance().marshall(
blockDeviceMappingsItem, request, prefix + ".");
}
blockDeviceMappingsIndex++;
}
prefix = blockDeviceMappingsPrefix;
}
if (createLaunchConfigurationRequest.getInstanceMonitoring() != null) {
prefix = "InstanceMonitoring";
InstanceMonitoring instanceMonitoring = createLaunchConfigurationRequest
.getInstanceMonitoring();
InstanceMonitoringStaxMarshaller.getInstance().marshall(instanceMonitoring, request,
prefix + ".");
}
if (createLaunchConfigurationRequest.getSpotPrice() != null) {
prefix = "SpotPrice";
String spotPrice = createLaunchConfigurationRequest.getSpotPrice();
request.addParameter(prefix, StringUtils.fromString(spotPrice));
}
if (createLaunchConfigurationRequest.getIamInstanceProfile() != null) {
prefix = "IamInstanceProfile";
String iamInstanceProfile = createLaunchConfigurationRequest.getIamInstanceProfile();
request.addParameter(prefix, StringUtils.fromString(iamInstanceProfile));
}
if (createLaunchConfigurationRequest.getEbsOptimized() != null) {
prefix = "EbsOptimized";
Boolean ebsOptimized = createLaunchConfigurationRequest.getEbsOptimized();
request.addParameter(prefix, StringUtils.fromBoolean(ebsOptimized));
}
if (createLaunchConfigurationRequest.getAssociatePublicIpAddress() != null) {
prefix = "AssociatePublicIpAddress";
Boolean associatePublicIpAddress = createLaunchConfigurationRequest
.getAssociatePublicIpAddress();
request.addParameter(prefix, StringUtils.fromBoolean(associatePublicIpAddress));
}
if (createLaunchConfigurationRequest.getPlacementTenancy() != null) {
prefix = "PlacementTenancy";
String placementTenancy = createLaunchConfigurationRequest.getPlacementTenancy();
request.addParameter(prefix, StringUtils.fromString(placementTenancy));
}
return request;
}
}