blob: 4077101052ada961cb2ec6246405f6c3447c346f [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.checkNotNull;
import org.jclouds.ec2.options.internal.BaseEC2RequestOptions;
/**
* Contains options supported in the Form API for the CreateVpc operation. <h2>
* Usage</h2> The recommended way to instantiate a CreateImageOptions object is to statically import
* CreateVpcOptions.Builder.* and invoke a static creation method followed by an instance mutator
* (if needed):
* <p/>
* <code>
* import static org.jclouds.ec2.options.CreateVpcOptions.Builder.*
* <p/>
* EC2Api connection = // get connection
* Future<Set<ImageMetadata>> images = connection.getVpcApi().get().createVpc(withDescription("123125").noReboot());
* <code>
*
* @see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVpc.html"
* />
*/
public class CreateVpcOptions extends BaseEC2RequestOptions {
public static final CreateVpcOptions NONE = new CreateVpcOptions();
/**
* The instanceTenancy of the VPC that was provided during image creation.
* <p/>
*
* Default: default, Valid Values: default | dedicated | host
*/
public CreateVpcOptions withInstanceTenancy(String instanceTenancy) {
formParameters.put("InstanceTenancy", checkNotNull(instanceTenancy, "instanceTenancy"));
return this;
}
public String getInstanceTenancy() {
return getFirstFormOrNull("InstanceTenancy");
}
/**
* Checks whether you have the required permissions for the action, without actually making the request, and provides an error response.
*/
public CreateVpcOptions dryRun() {
formParameters.put("DryRun", "true");
return this;
}
public boolean isDryRun() {
return getFirstFormOrNull("DryRun") != null;
}
public static class Builder {
/**
* @see CreateVpcOptions#withInstanceTenancy(String )
*/
public static CreateVpcOptions withInstanceTenancy(String instanceTenancy) {
CreateVpcOptions options = new CreateVpcOptions();
return options.withInstanceTenancy(instanceTenancy);
}
/**
* @see CreateVpcOptions#dryRun()
*/
public static CreateVpcOptions dryRun() {
CreateVpcOptions options = new CreateVpcOptions();
return options.dryRun();
}
}
}