All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xerox.amazonws.ec2.AutoScalingGroup Maven / Gradle / Ivy

//
// typica - A client library for Amazon Web Services
// Copyright (C) 2007,2008 Xerox Corporation
// 
// 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 com.xerox.amazonws.ec2;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

/**
 * This is a container class for a auto scaling group
 */
public class AutoScalingGroup {
	private String groupName;
	private String launchConfigurationName;
	private int minSize;
	private int maxSize;
	private int desiredCapacity;
	private int cooldown;
	private List availabilityZones;
	private List instances = new ArrayList();
	private Calendar createdTime;

	public AutoScalingGroup(String groupName, String launchConfigurationName,
						int minSize, int maxSize, int desiredCapacity,
						int cooldown, List availabilityZones,
						Calendar createdTime) {
		this.groupName = groupName;
		this.launchConfigurationName = launchConfigurationName;
		this.minSize = minSize;
		this.maxSize = maxSize;
		this.desiredCapacity = desiredCapacity;
		this.cooldown = cooldown;
		this.availabilityZones = availabilityZones;
		this.createdTime = createdTime;
	}

	public String getGroupName() {
		return groupName;
	}

	public String getLaunchConfigurationName() {
		return launchConfigurationName;
	}

	public int getMinSize() {
		return minSize;
	}

	public int getMaxSize() {
		return maxSize;
	}

	public int getDesiredCapacity() {
		return desiredCapacity;
	}

	public int getCooldown() {
		return cooldown;
	}

	public List getAvailabilityZones() {
		return availabilityZones;
	}

	public List getInstances() {
		return instances;
	}

	public Calendar getCreatedTime() {
		return createdTime;
	}

	public void addInstance(String instanceId, String lifecycleState) {
		instances.add(new Instance(instanceId, lifecycleState));
	}

	public String toString() {
		return "AutoScalingGroup[groupName=" + groupName +
			", launchConfigurationName=" + launchConfigurationName +
			", minSize=" + minSize + ", maxSize=" + maxSize +
			", desiredCapacity=" + desiredCapacity +
			", cooldown=" + cooldown +
			", zones=" + availabilityZones.get(0) +
			", instances=" + instances +
			"]";
	}

	/**
	 * Encapsulates information about an EC2 instance within a
	 * {@link AutoScalingGroup}.
	 */
	public class Instance {
		private String instanceId;
		private String lifecycleState;

		public Instance(String instanceId, String lifecycleState) {
			this.instanceId = instanceId;
			this.lifecycleState = lifecycleState;
		}

		public String getInstanceId() {
			return instanceId;
		}

		public String getLifecycleState() {
			return lifecycleState;
		}

		public String toString() {
			return "[instance=" + this.instanceId +
					", lifecycleState=" + this.lifecycleState + "]";
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy