/**
* Copyright (C) 2009-2015 Dell, Inc.
* See annotations for authorship information
*
* ====================================================================
* 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.dasein.cloud.compute;
import java.io.Serializable;
import java.util.*;
public class ScalingGroup implements Serializable {
private static final long serialVersionUID = -5317003700769693511L;
private int defaultCooldown;
private long creationTimestamp;
private String description;
private int maxServers;
private int minServers;
private String name;
private String[] providerDataCenterIds;
private String providerLaunchConfigurationId;
private String providerOwnerId;
private String providerRegionId;
private String providerScalingGroupId;
private String[] providerServerIds;
private int targetCapacity;
private String id;
private String[] enabledMetrics;
private int healthCheckGracePeriod;
private String healthCheckType;
private String[] providerLoadBalancerNames;
private String status;
private Collection<String[]> suspendedProcesses;
private String[] terminationPolicies;
private AutoScalingTag[] tags;
// comma separated list
private String[] providerSubnetIds;
public ScalingGroup() { }
public String getId() {
return id;
}
public void setId( String id ) {
this.id = id;
}
public String[] getEnabledMetrics() {
return enabledMetrics;
}
public void setEnabledMetrics( String[] metrics ) {
this.enabledMetrics = metrics;
}
public int getHealthCheckGracePeriod() {
return healthCheckGracePeriod;
}
public void setHealthCheckGracePeriod( int healthCheckGracePeriod ) {
this.healthCheckGracePeriod = healthCheckGracePeriod;
}
public String getHealthCheckType() {
return healthCheckType;
}
public void setHealthCheckType( String healthCheckType ) {
this.healthCheckType = healthCheckType;
}
public String[] getProviderLoadBalancerNames() {
return providerLoadBalancerNames;
}
public void setProviderLoadBalancerNames( String[] providerLoadBalancerNames ) {
this.providerLoadBalancerNames = providerLoadBalancerNames;
}
public String getStatus() {
return status;
}
public void setStatus( String status ) {
this.status = status;
}
public Collection<String[]> getSuspendedProcesses() {
return suspendedProcesses;
}
public void setSuspendedProcesses( Collection<String[]> suspendedProcesses ) {
this.suspendedProcesses = suspendedProcesses;
}
public String[] getTerminationPolicies() {
return terminationPolicies;
}
public void setTerminationPolicies( String[] terminationPolicies ) {
this.terminationPolicies = terminationPolicies;
}
public int getDefaultCooldown() {
return defaultCooldown;
}
public void setDefaultCooldown( int cooldown ) {
this.defaultCooldown = cooldown;
}
public String getDescription() {
return description;
}
public void setDescription( String description ) {
this.description = description;
}
public int getMaxServers() {
return maxServers;
}
public void setMaxServers( int maxServers ) {
this.maxServers = maxServers;
}
public int getMinServers() {
return minServers;
}
public void setMinServers( int minServers ) {
this.minServers = minServers;
}
public String getName() {
return name;
}
public void setName( String name ) {
this.name = name;
}
public String[] getProviderDataCenterIds() {
return providerDataCenterIds;
}
public void setProviderDataCenterIds( String[] providerDataCenterIds ) {
this.providerDataCenterIds = providerDataCenterIds;
}
public String getProviderLaunchConfigurationId() {
return providerLaunchConfigurationId;
}
public void setProviderLaunchConfigurationId( String providerLaunchConfigurationId ) {
this.providerLaunchConfigurationId = providerLaunchConfigurationId;
}
public String getProviderOwnerId() {
return providerOwnerId;
}
public void setProviderOwnerId( String providerOwnerId ) {
this.providerOwnerId = providerOwnerId;
}
public String getProviderRegionId() {
return providerRegionId;
}
public void setProviderRegionId( String providerRegionId ) {
this.providerRegionId = providerRegionId;
}
public String getProviderScalingGroupId() {
return providerScalingGroupId;
}
public void setProviderScalingGroupId( String providerScalingGroupId ) {
this.providerScalingGroupId = providerScalingGroupId;
}
public void setProviderServerIds( String[] providerServerIds ) {
this.providerServerIds = providerServerIds;
}
public String[] getProviderServerIds() {
return providerServerIds;
}
public void setCreationTimestamp( long creationTimestamp ) {
this.creationTimestamp = creationTimestamp;
}
public long getCreationTimestamp() {
return creationTimestamp;
}
public void setTargetCapacity( int targetCapacity ) {
this.targetCapacity = targetCapacity;
}
public int getTargetCapacity() {
return targetCapacity;
}
public AutoScalingTag[] getTags() {
return tags;
}
public Map<String, String> getTagsAsMap() {
Map<String, String> tagsAsMap = new HashMap<String, String>();
if( tags != null ) {
for( AutoScalingTag tag : tags ) {
tagsAsMap.put(tag.getKey(), tag.getValue());
}
}
return tagsAsMap;
}
public void setTags( AutoScalingTag[] tags ) {
this.tags = tags;
}
@Deprecated
public String getSubnetIds() {
if( this.providerSubnetIds == null || this.providerSubnetIds.length == 0 ) {
return new String();
}
StringBuilder sb = new StringBuilder();
for( String sn : this.providerSubnetIds ) {
sb.append(sn).append(",");
}
return sb.deleteCharAt(sb.length() - 1).toString();
}
@Deprecated
public void setSubnetIds( String subnetIds ) {
this.providerSubnetIds = ( subnetIds == null ) ? new String[0] : subnetIds.split("\\s*,\\s*");
}
public String[] getProviderSubnetIds() {
return ( this.providerSubnetIds == null ) ? new String[0] : this.providerSubnetIds;
}
public void setProviderSubnetIds( String[] providerSubnetIds ) {
this.providerSubnetIds = providerSubnetIds;
}
}