package core.aws.resource.vpc;
import core.aws.resource.Resource;
import core.aws.task.vpc.CreateSubnetTask;
import core.aws.task.vpc.DeleteSubnetTask;
import core.aws.task.vpc.DescribeSubnetTask;
import core.aws.util.Strings;
import core.aws.workflow.Tasks;
import java.util.ArrayList;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
/**
* @author neo
*/
public class Subnet extends Resource {
public final SortedSet<com.amazonaws.services.ec2.model.Subnet> remoteSubnets = new TreeSet<>((subnet1, subnet2) -> Strings.compare(subnet1.getAvailabilityZone(), subnet2.getAvailabilityZone()));
public final List<String> cidrs = new ArrayList<>();
public SubnetType type;
public VPC vpc;
public RouteTable routeTable;
public Subnet(String id) {
super(id);
}
public com.amazonaws.services.ec2.model.Subnet firstRemoteSubnet() {
return remoteSubnets.first();
}
@Override
protected void createTasks(Tasks tasks) {
tasks.add(new CreateSubnetTask(this));
}
@Override
protected void deleteTasks(Tasks tasks) {
tasks.add(new DeleteSubnetTask(this));
}
@Override
protected void describeTasks(Tasks tasks) {
tasks.add(new DescribeSubnetTask(this));
}
}