io.cloudslang.content.amazon.factory.Ec2QueryParamsMapBuilder Maven / Gradle / Ivy
/*
* (c) Copyright 2017 EntIT Software LLC, a Micro Focus company, L.P.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Apache License v2.0 which accompany this distribution.
*
* The Apache License is available at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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 io.cloudslang.content.amazon.factory;
import io.cloudslang.content.amazon.entities.inputs.InputsWrapper;
import io.cloudslang.content.amazon.factory.helpers.*;
import java.util.Map;
import static io.cloudslang.content.amazon.entities.constants.Constants.Ec2QueryApiActions.*;
import static io.cloudslang.content.amazon.entities.constants.Constants.ErrorMessages.UNSUPPORTED_QUERY_API;
/**
* Created by TusaM
* 11/7/2016.
*/
class Ec2QueryParamsMapBuilder {
private Ec2QueryParamsMapBuilder() {
// prevent instantiation
}
static Map getEc2QueryParamsMap(InputsWrapper wrapper) throws Exception {
switch (wrapper.getCommonInputs().getAction()) {
case ALLOCATE_ADDRESS:
return new ElasticIpUtils().getAllocateAddressQueryParamsMap(wrapper);
case ASSOCIATE_ADDRESS:
return new NetworkUtils().getAssociateAddressQueryParamsMap(wrapper);
case ATTACH_NETWORK_INTERFACE:
return new NetworkUtils().getAttachNetworkInterfaceQueryParamsMap(wrapper);
case ATTACH_VOLUME:
return new VolumeUtils().getAttachVolumeQueryParamsMap(wrapper);
case CREATE_IMAGE:
return new ImageUtils().getCreateImageQueryParamsMap(wrapper);
case CREATE_NETWORK_INTERFACE:
return new NetworkUtils().getCreateNetworkInterfaceQueryParamsMap(wrapper);
case CREATE_SNAPSHOT:
return new SnapshotUtils().getCreateSnapshotQueryParamsMap(wrapper);
case CREATE_SUBNET:
return new NetworkUtils().getCreateSubnetQueryParamsMap(wrapper);
case CREATE_TAGS:
return new TagUtils().getCreateTagsQueryParamsMap(wrapper);
case CREATE_VOLUME:
return new VolumeUtils().getCreateVolumeQueryParamsMap(wrapper);
case CREATE_VPC:
return new NetworkUtils().getCreateVpcQueryParamsMap(wrapper);
case DELETE_NETWORK_INTERFACE:
return new NetworkUtils().getDeleteNetworkInterfaceQueryParamsMap(wrapper);
case DELETE_SNAPSHOT:
return new SnapshotUtils().getDeleteSnapshotQueryParamsMap(wrapper);
case DELETE_SUBNET:
return new NetworkUtils().getDeleteSubnetQueryParamsMap(wrapper);
case DELETE_VOLUME:
return new VolumeUtils().getDeleteVolumeQueryParamsMap(wrapper);
case DELETE_VPC:
return new NetworkUtils().getDeleteVpcQueryParamsMap(wrapper);
case DESCRIBE_AVAILABILITY_ZONES:
return new RegionUtils().getDescribeAvailabilityZonesQueryParamsMap(wrapper);
case DESCRIBE_IMAGES:
return new ImageUtils().getDescribeImagesQueryParamsMap(wrapper);
case DESCRIBE_IMAGE_ATTRIBUTE:
return new ImageUtils().getDescribeImageAttributeQueryParamsMap(wrapper);
case DESCRIBE_INSTANCES:
return new InstanceUtils().getDescribeInstancesQueryParamsMap(wrapper);
case DESCRIBE_NETWORK_INTERFACES:
return new NetworkUtils().getDescribeNetworkInterfacesQueryParamsMap(wrapper);
case DESCRIBE_REGIONS:
return new RegionUtils().getDescribeRegionsQueryParamsMap(wrapper);
case DESCRIBE_TAGS:
return new TagUtils().getDescribeTagsQueryParamsMap(wrapper);
case DESCRIBE_VOLUMES:
return new VolumeUtils().getDescribeVolumesQueryParamsMap(wrapper);
case DEREGISTER_IMAGE:
return new ImageUtils().getDeregisterImageQueryParamsMap(wrapper);
case DETACH_NETWORK_INTERFACE:
return new NetworkUtils().getDetachNetworkInterfaceQueryParamsMap(wrapper);
case DETACH_VOLUME:
return new VolumeUtils().getDetachVolumeQueryParamsMap(wrapper);
case DISASSOCIATE_ADDRESS:
return new NetworkUtils().getDisassociateAddressQueryParamsMap(wrapper);
case MODIFY_IMAGE_ATTRIBUTE:
return new ImageUtils().getModifyImageAttributeQueryParamsMap(wrapper);
case MODIFY_INSTANCE_ATTRIBUTE:
return new InstanceUtils().getModifyInstanceAttributeQueryParamsMap(wrapper);
case REBOOT_INSTANCES:
return new InstanceUtils().getRebootInstancesQueryParamsMap(wrapper);
case RELEASE_ADDRESS:
return new ElasticIpUtils().getReleaseAddressQueryParamsMap(wrapper);
case RESET_IMAGE_ATTRIBUTE:
return new ImageUtils().getResetImageAttributeQueryParamsMap(wrapper);
case RUN_INSTANCES:
return new InstanceUtils().getRunInstancesQueryParamsMap(wrapper);
case START_INSTANCES:
return new InstanceUtils().getStartInstancesQueryParamsMap(wrapper);
case STOP_INSTANCES:
return new InstanceUtils().getStopInstancesQueryParamsMap(wrapper);
case TERMINATE_INSTANCES:
return new InstanceUtils().getTerminateInstancesQueryParamsMap(wrapper);
default:
throw new RuntimeException(UNSUPPORTED_QUERY_API);
}
}
}