/* * Copyright 2015 herd contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License 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 org.finra.herd.dao; import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2Client; import com.amazonaws.services.ec2.model.DescribeAvailabilityZonesRequest; import com.amazonaws.services.ec2.model.DescribeAvailabilityZonesResult; import com.amazonaws.services.ec2.model.DescribeInstanceAttributeRequest; import com.amazonaws.services.ec2.model.DescribeInstanceAttributeResult; import com.amazonaws.services.ec2.model.DescribeSpotPriceHistoryRequest; import com.amazonaws.services.ec2.model.DescribeSpotPriceHistoryResult; import com.amazonaws.services.ec2.model.DescribeSubnetsRequest; import com.amazonaws.services.ec2.model.DescribeSubnetsResult; import com.amazonaws.services.ec2.model.ModifyInstanceAttributeRequest; /** * AWS EC2 Operations Service. */ public interface Ec2Operations { /** * {@link AmazonEC2#describeInstanceAttribute(DescribeInstanceAttributeRequest)} * * @param ec2Client {@link AmazonEC2} to use. * @param describeInstanceAttributeRequest The request object. * @return {@link DescribeInstanceAttributeResult} */ public DescribeInstanceAttributeResult describeInstanceAttribute(AmazonEC2Client ec2Client, DescribeInstanceAttributeRequest describeInstanceAttributeRequest); /** * {@link AmazonEC2#modifyInstanceAttribute(ModifyInstanceAttributeRequest)} * * @param ec2Client {@link AmazonEC2} to use. * @param modifyInstanceAttributeRequest The request object. */ public void modifyInstanceAttribute(AmazonEC2Client ec2Client, ModifyInstanceAttributeRequest modifyInstanceAttributeRequest); /** * {@link AmazonEC2#describeSubnets()} * * @param ec2Client {@link AmazonEC2} to use. * @param describeSubnetsRequest The request object. * @return {@link DescribeSubnetsResult} */ public DescribeSubnetsResult describeSubnets(AmazonEC2Client ec2Client, DescribeSubnetsRequest describeSubnetsRequest); /** * {@link AmazonEC2#describeAvailabilityZones()} * * @param ec2Client {@link AmazonEC2} to use. * @param describeAvailabilityZonesRequest The request object. * @return {@link DescribeAvailabilityZonesResult} */ public DescribeAvailabilityZonesResult describeAvailabilityZones(AmazonEC2Client ec2Client, DescribeAvailabilityZonesRequest describeAvailabilityZonesRequest); /** * {@link AmazonEC2#describeSpotPriceHistory()} * * @param ec2Client {@link AmazonEC2} to use. * @param describeSpotPriceHistoryRequest The request object. * @return {@link DescribeSpotPriceHistoryResult} */ public DescribeSpotPriceHistoryResult describeSpotPriceHistory(AmazonEC2Client ec2Client, DescribeSpotPriceHistoryRequest describeSpotPriceHistoryRequest); }