
org.jclouds.aws.ec2.options.RunInstancesOptions Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jclouds-aws Show documentation
Show all versions of jclouds-aws Show documentation
jclouds Core components to access Amazon AWS
The newest version!
/**
*
* Copyright (C) 2010 Cloud Conscious, LLC.
*
* ====================================================================
* 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.jclouds.aws.ec2.options;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import org.jclouds.aws.ec2.domain.InstanceType;
import org.jclouds.aws.ec2.options.internal.BaseEC2RequestOptions;
import org.jclouds.encryption.internal.Base64;
/**
* Contains options supported in the Form API for the RunInstances operation.
* Usage
The recommended way to instantiate a RunInstancesOptions object is to statically
* import RunInstancesOptions.Builder.* and invoke a static creation method followed by an instance
* mutator (if needed):
*
*
* import static org.jclouds.aws.ec2.options.RunInstancesOptions.Builder.*
*
* EC2Client connection = // get connection
* Future instances = connection.runInstances(executableBy("123125").imageIds(1000, 1004));
*
*
* @author Adrian Cole
* @see
*/
public class RunInstancesOptions extends BaseEC2RequestOptions {
public static final RunInstancesOptions NONE = new RunInstancesOptions();
/**
* The name of the key pair.
*/
public RunInstancesOptions withKeyName(String keyName) {
formParameters.put("KeyName", checkNotNull(keyName, "keyName"));
return this;
}
String getKeyName() {
return getFirstFormOrNull("KeyName");
}
/**
* Attach multiple security groups
*/
public RunInstancesOptions withSecurityGroups(String... securityGroups) {
indexFormValuesWithPrefix("SecurityGroup", securityGroups);
return this;
}
/**
* Attach multiple security groups
*/
public RunInstancesOptions withSecurityGroups(Iterable securityGroups) {
indexFormValuesWithPrefix("SecurityGroup", securityGroups);
return this;
}
/**
* Attaches a single security group. Multiple calls to this method won't add more groups.
*
* @param securityGroup
* name of an existing security group
*/
public RunInstancesOptions withSecurityGroup(String securityGroup) {
return withSecurityGroups(securityGroup);
}
String getSecurityGroup() {
return getFirstFormOrNull("SecurityGroup.1");
}
/**
* Specifies the name of an existing placement group you want to launch the instance into (for
* cluster compute instances).
*
* @param placementGroup
* name of an existing placement group
*/
public RunInstancesOptions inPlacementGroup(String placementGroup) {
formParameters.put("Placement.GroupName", checkNotNull(placementGroup, "placementGroup"));
return this;
}
String getPlacementGroup() {
return getFirstFormOrNull("Placement.GroupName");
}
/**
* Specifies additional information to make available to the instance(s).
*/
public RunInstancesOptions withAdditionalInfo(String info) {
formParameters.put("AdditionalInfo", checkNotNull(info, "info"));
return this;
}
String getAdditionalInfo() {
return getFirstFormOrNull("AdditionalInfo");
}
/**
* Unencoded data
*/
public RunInstancesOptions withUserData(byte[] unencodedData) {
checkArgument(checkNotNull(unencodedData, "unencodedData").length <= 16 * 1024,
"userData cannot be larger than 16kb");
formParameters.put("UserData", Base64.encodeBytes(unencodedData));
return this;
}
String getUserData() {
return getFirstFormOrNull("UserData");
}
/**
* Specifies the instance type. default small;
*/
public RunInstancesOptions asType(String type) {
formParameters.put("InstanceType", checkNotNull(type, "type"));
return this;
}
String getType() {
return getFirstFormOrNull("InstanceType");
}
/**
* The ID of the kernel with which to launch the instance.
*/
public RunInstancesOptions withKernelId(String kernelId) {
formParameters.put("KernelId", checkNotNull(kernelId, "kernelId"));
return this;
}
String getKernelId() {
return getFirstFormOrNull("KernelId");
}
/**
* The ID of the RAM disk with which to launch the instance. Some kernels require additional
* drivers at l aunch. Check the kernel requirements for information on whether you need to
* specify a RAM disk. To find kernel requirements, go to th e Resource Center and search for the
* kernel ID.
*/
public RunInstancesOptions withRamdisk(String ramDiskId) {
formParameters.put("RamdiskId", checkNotNull(ramDiskId, "ramDiskId"));
return this;
}
String getRamdiskId() {
return getFirstFormOrNull("RamdiskId");
}
/**
* The virtual name.
*/
public RunInstancesOptions withVirtualName(String virtualName) {
formParameters.put("BlockDeviceMapping.VirtualName", checkNotNull(virtualName, "virtualName"));
return this;
}
String getVirtualName() {
return getFirstFormOrNull("BlockDeviceMapping.VirtualName");
}
/**
* The device name (e.g., /dev/sdh).
*/
public RunInstancesOptions withDeviceName(String deviceName) {
formParameters.put("BlockDeviceMapping.DeviceName", checkNotNull(deviceName, "deviceName"));
return this;
}
String getDeviceName() {
return getFirstFormOrNull("BlockDeviceMapping.DeviceName");
}
/**
* Enables monitoring for the instance.
*/
public RunInstancesOptions enableMonitoring() {
formParameters.put("Monitoring.Enabled", "true");
return this;
}
String getMonitoringEnabled() {
return getFirstFormOrNull("Monitoring.Enabled");
}
/**
* Specifies the subnet ID within which to launch the instance(s) for Amazon Virtual Private
* Cloud.
*/
public RunInstancesOptions withSubnetId(String subnetId) {
formParameters.put("SubnetId", checkNotNull(subnetId, "subnetId"));
return this;
}
String getSubnetId() {
return getFirstFormOrNull("SubnetId");
}
public static class Builder {
/**
* @see RunInstancesOptions#withKeyName(String)
*/
public static RunInstancesOptions withKeyName(String keyName) {
RunInstancesOptions options = new RunInstancesOptions();
return options.withKeyName(keyName);
}
/**
* @see RunInstancesOptions#withSecurityGroup(String)
*/
public static RunInstancesOptions withSecurityGroup(String securityGroup) {
RunInstancesOptions options = new RunInstancesOptions();
return options.withSecurityGroup(securityGroup);
}
/**
* @see RunInstancesOptions#inPlacementGroup(String)
*/
public static RunInstancesOptions inPlacementGroup(String placementGroup) {
RunInstancesOptions options = new RunInstancesOptions();
return options.inPlacementGroup(placementGroup);
}
/**
* @see RunInstancesOptions#withAdditionalInfo(String)
*/
public static RunInstancesOptions withAdditionalInfo(String additionalInfo) {
RunInstancesOptions options = new RunInstancesOptions();
return options.withAdditionalInfo(additionalInfo);
}
/**
* @see RunInstancesOptions#withUserData(byte [])
*/
public static RunInstancesOptions withUserData(byte[] unencodedData) {
RunInstancesOptions options = new RunInstancesOptions();
return options.withUserData(unencodedData);
}
/**
* @see RunInstancesOptions#asType(InstanceType)
*/
public static RunInstancesOptions asType(String instanceType) {
RunInstancesOptions options = new RunInstancesOptions();
return options.asType(instanceType);
}
/**
* @see RunInstancesOptions#withKernelId(String)
*/
public static RunInstancesOptions withKernelId(String kernelId) {
RunInstancesOptions options = new RunInstancesOptions();
return options.withKernelId(kernelId);
}
/**
* @see RunInstancesOptions#withDeviceName(String)
*/
public static RunInstancesOptions withDeviceName(String deviceName) {
RunInstancesOptions options = new RunInstancesOptions();
return options.withDeviceName(deviceName);
}
/**
* @see RunInstancesOptions#enableMonitoring()
*/
public static RunInstancesOptions enableMonitoring() {
RunInstancesOptions options = new RunInstancesOptions();
return options.enableMonitoring();
}
/**
* @see RunInstancesOptions#withSubnetId(String)
*/
public static RunInstancesOptions withSubnetId(String subnetId) {
RunInstancesOptions options = new RunInstancesOptions();
return options.withSubnetId(subnetId);
}
/**
* @see RunInstancesOptions#withRamdisk(String)
*/
public static RunInstancesOptions withRamdisk(String ramdiskId) {
RunInstancesOptions options = new RunInstancesOptions();
return options.withRamdisk(ramdiskId);
}
/**
* @see RunInstancesOptions#withVirtualName(String)
*/
public static RunInstancesOptions withVirtualName(String virtualName) {
RunInstancesOptions options = new RunInstancesOptions();
return options.withVirtualName(virtualName);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy