blob: acb7a9f1cf91a08aa54a264d2e3bcd1129c24905 [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 com.cloud.offering;
import java.util.Date;
import org.apache.cloudstack.acl.InfrastructureEntity;
import org.apache.cloudstack.api.Identity;
import org.apache.cloudstack.api.InternalIdentity;
/**
* offered.
*/
public interface ServiceOffering extends InfrastructureEntity, InternalIdentity, Identity {
static final String consoleProxyDefaultOffUniqueName = "Cloud.com-ConsoleProxy";
static final String ssvmDefaultOffUniqueName = "Cloud.com-SecondaryStorage";
static final String routerDefaultOffUniqueName = "Cloud.Com-SoftwareRouter";
static final String elbVmDefaultOffUniqueName = "Cloud.Com-ElasticLBVm";
static final String internalLbVmDefaultOffUniqueName = "Cloud.Com-InternalLBVm";
// leaving cloud.com references as these are identifyers and no real world addresses (check against DB)
static final String PURGE_DB_ENTITIES_KEY = "purge.db.entities";
enum State {
Inactive, Active,
}
enum StorageType {
local, shared
}
String getDisplayText();
Date getCreated();
/**
* @return user readable description
*/
String getName();
/**
* @return is this a system service offering
*/
boolean isSystemUse();
/**
* @return # of cpu.
*/
Integer getCpu();
/**
* @return speed in mhz
*/
Integer getSpeed();
/**
* @return ram size in megabytes
*/
Integer getRamSize();
/**
* @return Does this service plan offer HA?
*/
boolean isOfferHA();
/**
* @return Does this service plan offer VM to use CPU resources beyond the service offering limits?
*/
boolean getLimitCpuUse();
/**
* @return Does this service plan support Volatile VM that is, discard VM's root disk and create a new one on reboot?
*/
boolean isVolatileVm();
/**
* @return the rate in megabits per sec to which a VM's network interface is throttled to
*/
Integer getRateMbps();
/**
* @return the rate megabits per sec to which a VM's multicast&broadcast traffic is throttled to
*/
Integer getMulticastRateMbps();
/**
* @return tag that should be present on the host needed, optional parameter
*/
String getHostTag();
boolean getDefaultUse();
String getVmType();
String getDeploymentPlanner();
boolean isDynamic();
void setState(ServiceOffering.State state);
ServiceOffering.State getState();
void setName(String name);
String getUniqueName();
void setUniqueName(String uniqueName);
void setDisplayText(String displayText);
boolean isCustomized();
void setCustomized(boolean customized);
Date getRemoved();
void setRemoved(Date removed);
void setSortKey(int key);
int getSortKey();
Long getDiskOfferingId();
boolean isDynamicScalingEnabled();
Boolean getDiskOfferingStrictness();
void setDiskOfferingStrictness(boolean diskOfferingStrictness);
}