
com.morpheusdata.model.Cloud Maven / Gradle / Ivy
package com.morpheusdata.model;
import java.util.Date;
import java.util.Map;
import java.util.UUID;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.morpheusdata.model.projection.CloudIdentityProjection;
import com.morpheusdata.model.serializers.ModelAsIdOnlySerializer;
/**
* Integrations or connections to public, private, hybrid clouds, or bare metal servers
*/
public class Cloud extends CloudIdentityProjection {
@JsonSerialize(using= ModelAsIdOnlySerializer.class)
protected Account account;
protected String description;
@JsonSerialize(using=ModelAsIdOnlySerializer.class)
protected Account owner;
protected String visibility = "private"; //['public', 'private']
protected String location;
protected String timezone;
@JsonSerialize(using=ModelAsIdOnlySerializer.class)
public CloudType cloudType;
protected Boolean hasNativeSecurityGroups;
protected Date dateCreated;
protected Date lastUpdated;
// public ComputeAclChain chain;
protected Boolean autoCapacity = false;
protected String serviceUrl;
protected String serviceUsername;
protected String servicePassword;
protected String servicePath;
protected String serviceToken;
protected String serviceVersion;
protected String autoCapacityType = "percent"; //percent, count
protected String autoCapacityConfig; //form json map of settings
protected String autoCapacityPrefix; //name
protected Integer autoCapacityThreshold;
@JsonSerialize(using= ModelAsIdOnlySerializer.class)
protected NetworkDomain networkDomain;
@JsonSerialize(using= ModelAsIdOnlySerializer.class)
protected NetworkProxy apiProxy;
@JsonSerialize(using= ModelAsIdOnlySerializer.class)
protected NetworkProxy provisioningProxy;
protected Boolean applianceUrlProxyBypass = true;
protected String authRealm;
protected Long autoCapacityMax; //max servers / ram in zone
protected Long scalePriority = 1L;
protected Boolean autoCapacityInProgress = false;
protected Boolean firewallEnabled = true;
protected Boolean enabled = true;
protected Status status = Status.ok;
protected String statusMessage;
protected Date statusDate;
protected String errorMessage;
protected String regionCode;
protected String agentMode = "cloudInit";
protected String datacenterId;
protected String userDataLinux;
protected String userDataWindows;
protected Double reservedMemory = 0d;
protected Double provisionPercent = 1.0d;
protected Double costAdjustment = 1.0d;
protected Boolean deleted = false;
protected String guidanceMode;
protected String costingMode;
protected String costStatus;
protected String costStatusMessage;
protected String inventoryLevel = "off";
protected Date lastSync;
protected Date nextRunDate;
protected Long lastSyncDuration;
//zone integration config
protected String containerMode = "docker";
protected String storageMode = "standard";
protected String securityMode = "off"; //host firewall.. off or internal
@JsonSerialize(using= ModelAsIdOnlySerializer.class)
protected NetworkSecurityServer securityServer; //integrated security service
protected String networkSecurityMode; // internal (to manage internal firewall for VMs) (ignored if securityServer is set - not used
@JsonSerialize(using=ModelAsIdOnlySerializer.class)
protected NetworkServer networkServer; //virtual or physical network provider
@JsonSerialize(using=ModelAsIdOnlySerializer.class)
protected CloudType type;
protected String backupMode = "internal"; //if backups are off,run by morpheus or a provider
@JsonSerialize(using=ModelAsIdOnlySerializer.class)
public BackupProvider backupProvider; //integrated backup provider
//flags on if a cloud is ok to allow these types of provision - for ex, kvm needs a kvm host, kube mode need a master and 1 or more workers
protected Boolean kvmEnabled = false;
protected Boolean dockerEnabled = false;
protected Boolean nativeEnabled = true;
protected Boolean autoRecoverPowerState = true;
protected String consoleKeymap;
//external mapping
protected String externalId;
protected String internalId;
protected String linkedAccountId;
protected String iacId; //id for infrastructure as code integrations;
protected String uuid = UUID.randomUUID().toString();
protected String noProxy;
//non-persisted properties for active credentials
protected Map accountCredentialData;
protected Boolean accountCredentialLoaded = false;
/**
* Morpheus Account
* @return Account the account for the Cloud
*/
public Account getAccount() {
return account;
}
/**
* A text description of this Cloud
* @return String the description
*/
public String getDescription() {
return description;
}
public Account getOwner() {
return owner;
}
public String getVisibility() {
return visibility;
}
public String getLocation() {
return location;
}
public String getTimezone() {
return timezone;
}
public CloudType getCloudType() {
return cloudType;
}
public Boolean getHasNativeSecurityGroups() {
return hasNativeSecurityGroups;
}
public Date getDateCreated() {
return dateCreated;
}
public Date getLastUpdated() {
return lastUpdated;
}
public Boolean getAutoCapacity() {
return autoCapacity;
}
public String getServiceUrl() {
return serviceUrl;
}
public String getServiceUsername() {
return serviceUsername;
}
public String getServicePassword() {
return servicePassword;
}
public String getServicePath() {
return servicePath;
}
public String getServiceToken() {
return serviceToken;
}
public String getServiceVersion() {
return serviceVersion;
}
public String getAutoCapacityType() {
return autoCapacityType;
}
public String getAutoCapacityConfig() {
return autoCapacityConfig;
}
public String getAutoCapacityPrefix() {
return autoCapacityPrefix;
}
public Integer getAutoCapacityThreshold() {
return autoCapacityThreshold;
}
public NetworkDomain getNetworkDomain() {
return networkDomain;
}
public NetworkProxy getApiProxy() {
return apiProxy;
}
public NetworkProxy getProvisioningProxy() {
return provisioningProxy;
}
public Boolean getApplianceUrlProxyBypass() {
return applianceUrlProxyBypass;
}
public String getAuthRealm() {
return authRealm;
}
public Long getAutoCapacityMax() {
return autoCapacityMax;
}
public Long getScalePriority() {
return scalePriority;
}
public Boolean getAutoCapacityInProgress() {
return autoCapacityInProgress;
}
public Boolean getFirewallEnabled() {
return firewallEnabled;
}
public Boolean getEnabled() {
return enabled;
}
public com.morpheusdata.model.Cloud.Status getStatus() {
return status;
}
public String getStatusMessage() {
return statusMessage;
}
public Date getStatusDate() {
return statusDate;
}
public String getErrorMessage() {
return errorMessage;
}
public String getRegionCode() {
return regionCode;
}
public String getAgentMode() {
return agentMode;
}
public String getDatacenterId() {
return datacenterId;
}
public String getUserDataLinux() {
return userDataLinux;
}
public String getUserDataWindows() {
return userDataWindows;
}
public Double getReservedMemory() {
return reservedMemory;
}
public Double getProvisionPercent() {
return provisionPercent;
}
public Double getCostAdjustment() {
return costAdjustment;
}
public Boolean getDeleted() {
return deleted;
}
public String getGuidanceMode() {
return guidanceMode;
}
public String getCostingMode() {
return costingMode;
}
public String getCostStatus() {
return costStatus;
}
public String getCostStatusMessage() {
return costStatusMessage;
}
public String getInventoryLevel() {
return inventoryLevel;
}
public Date getLastSync() {
return lastSync;
}
public Date getNextRunDate() {
return nextRunDate;
}
public Long getLastSyncDuration() {
return lastSyncDuration;
}
public String getContainerMode() {
return containerMode;
}
public String getStorageMode() {
return storageMode;
}
public String getSecurityMode() {
return securityMode;
}
public NetworkSecurityServer getSecurityServer() {
return securityServer;
}
public String getNetworkSecurityMode() {
return networkSecurityMode;
}
public String getBackupMode() {
return backupMode;
}
public BackupProvider getBackupProvider() { return backupProvider; }
public Boolean getKvmEnabled() {
return kvmEnabled;
}
public Boolean getDockerEnabled() {
return dockerEnabled;
}
public Boolean getNativeEnabled() {
return nativeEnabled;
}
public Boolean getAutoRecoverPowerState() {
return autoRecoverPowerState;
}
public String getConsoleKeymap() {
return consoleKeymap;
}
public String getExternalId() {
return externalId;
}
public String getInternalId() {
return internalId;
}
public String getIacId() {
return iacId;
}
public String getUuid() {
return uuid;
}
public String getNoProxy() {
return noProxy;
}
/**
* Indicates if the AccountCredential associated with this Cloud has been loaded.
* This is a non-persisted property and used by Cloud consumers to indicate if the
* AccountCredential needs to be loaded via a context
* @return Boolean
*/
public Boolean getAccountCredentialLoaded() {
return accountCredentialLoaded;
}
public void setAccountCredentialLoaded(Boolean accountCredentialLoaded) {
this.accountCredentialLoaded = accountCredentialLoaded;
}
/**
* The AccountCredential.data associates with this Cloud.
* This is a non-persisted property and not set when obtain from Morpheus.
* Typically this is set by Providers via calls to MorpheusCloudService.loadCredentials or
* MorpheusAccountCredentialService.loadCredentialConfig. After obtaining the value, one call
* setAccountCredentialLoaded(true) to indicate that any credential information has been loaded
* @return Map of the credential data
*/
public Map getAccountCredentialData() {
return accountCredentialData;
}
public void setAccountCredentialData(Map accountCredentialData) {
this.accountCredentialData = accountCredentialData;
}
public NetworkServer getNetworkServer() {
return networkServer;
}
public void setNetworkServer(NetworkServer networkServer) {
this.networkServer = networkServer;
}
public String getLinkedAccountId() {
return linkedAccountId;
}
public void setLinkedAccountId(String linkedAccountId) {
this.linkedAccountId = linkedAccountId;
}
public enum Status {
ok,
syncing,
initializing,
warning,
error,
offline
}
public void setAccount(Account account) {
this.account = account;
markDirty("account", account);
}
public void setDescription(String description) {
this.description = description;
markDirty("description", description);
}
public void setOwner(Account owner) {
this.owner = owner;
markDirty("owner", owner);
}
public void setVisibility(String visibility) {
this.visibility = visibility;
markDirty("visibility", visibility);
}
public void setLocation(String location) {
this.location = location;
markDirty("location", location);
}
public void setTimezone(String timezone) {
this.timezone = timezone;
markDirty("timezone", timezone);
}
public void setCloudType(CloudType cloudType) {
this.cloudType = cloudType;
markDirty("cloudType", cloudType, this.cloudType);
}
public void setHasNativeSecurityGroups(Boolean hasNativeSecurityGroups) {
this.hasNativeSecurityGroups = hasNativeSecurityGroups;
markDirty("hasNativeSecurityGroups", hasNativeSecurityGroups);
}
public void setDateCreated(Date dateCreated) {
this.dateCreated = dateCreated;
markDirty("dateCreated", dateCreated);
}
public void setLastUpdated(Date lastUpdated) {
this.lastUpdated = lastUpdated;
markDirty("lastUpdated", lastUpdated);
}
public void setAutoCapacity(Boolean autoCapacity) {
this.autoCapacity = autoCapacity;
markDirty("autoCapacity", autoCapacity);
}
public void setServiceUrl(String serviceUrl) {
this.serviceUrl = serviceUrl;
markDirty("serviceUrl", serviceUrl);
}
public void setServiceUsername(String serviceUsername) {
this.serviceUsername = serviceUsername;
markDirty("serviceUsername", serviceUsername);
}
public void setServicePassword(String servicePassword) {
this.servicePassword = servicePassword;
markDirty("servicePassword", servicePassword);
}
public void setServicePath(String servicePath) {
this.servicePath = servicePath;
markDirty("servicePath", servicePath);
}
public void setServiceToken(String serviceToken) {
this.serviceToken = serviceToken;
markDirty("serviceToken", serviceToken);
}
public void setServiceVersion(String serviceVersion) {
this.serviceVersion = serviceVersion;
markDirty("serviceVersion", serviceVersion);
}
public void setAutoCapacityType(String autoCapacityType) {
this.autoCapacityType = autoCapacityType;
markDirty("autoCapacityType", autoCapacityType);
}
public void setAutoCapacityConfig(String autoCapacityConfig) {
this.autoCapacityConfig = autoCapacityConfig;
markDirty("autoCapacityConfig", autoCapacityConfig);
}
public void setAutoCapacityPrefix(String autoCapacityPrefix) {
this.autoCapacityPrefix = autoCapacityPrefix;
markDirty("autoCapacityPrefix", autoCapacityPrefix);
}
public void setAutoCapacityThreshold(Integer autoCapacityThreshold) {
this.autoCapacityThreshold = autoCapacityThreshold;
markDirty("autoCapacityThreshold", autoCapacityThreshold);
}
public void setNetworkDomain(NetworkDomain networkDomain) {
this.networkDomain = networkDomain;
markDirty("networkDomain", networkDomain);
}
public void setApiProxy(NetworkProxy apiProxy) {
this.apiProxy = apiProxy;
markDirty("apiProxy", apiProxy);
}
public void setProvisioningProxy(NetworkProxy provisioningProxy) {
this.provisioningProxy = provisioningProxy;
markDirty("provisioningProxy", provisioningProxy);
}
public void setApplianceUrlProxyBypass(Boolean applianceUrlProxyBypass) {
this.applianceUrlProxyBypass = applianceUrlProxyBypass;
markDirty("applianceUrlProxyBypass", applianceUrlProxyBypass);
}
public void setAuthRealm(String authRealm) {
this.authRealm = authRealm;
markDirty("authRealm", authRealm);
}
public void setAutoCapacityMax(Long autoCapacityMax) {
this.autoCapacityMax = autoCapacityMax;
markDirty("autoCapacityMax", autoCapacityMax);
}
public void setScalePriority(Long scalePriority) {
this.scalePriority = scalePriority;
markDirty("scalePriority", scalePriority);
}
public void setAutoCapacityInProgress(Boolean autoCapacityInProgress) {
this.autoCapacityInProgress = autoCapacityInProgress;
markDirty("autoCapacityInProgress", autoCapacityInProgress);
}
public void setFirewallEnabled(Boolean firewallEnabled) {
this.firewallEnabled = firewallEnabled;
markDirty("firewallEnabled", firewallEnabled);
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
markDirty("enabled", enabled);
}
public void setStatus(com.morpheusdata.model.Cloud.Status status) {
this.status = status;
markDirty("status", status);
}
public void setStatusMessage(String statusMessage) {
this.statusMessage = statusMessage;
markDirty("statusMessage", statusMessage);
}
public void setStatusDate(Date statusDate) {
this.statusDate = statusDate;
markDirty("statusDate", statusDate);
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
markDirty("errorMessage", errorMessage);
}
public void setRegionCode(String regionCode) {
this.regionCode = regionCode;
markDirty("regionCode", regionCode);
}
public void setAgentMode(String agentMode) {
this.agentMode = agentMode;
markDirty("agentMode", agentMode);
}
public void setDatacenterId(String datacenterId) {
this.datacenterId = datacenterId;
markDirty("datacenterId", datacenterId);
}
public void setUserDataLinux(String userDataLinux) {
this.userDataLinux = userDataLinux;
markDirty("userDataLinux", userDataLinux);
}
public void setUserDataWindows(String userDataWindows) {
this.userDataWindows = userDataWindows;
markDirty("userDataWindows", userDataWindows);
}
public void setReservedMemory(Double reservedMemory) {
this.reservedMemory = reservedMemory;
markDirty("reservedMemory", reservedMemory);
}
public void setProvisionPercent(Double provisionPercent) {
this.provisionPercent = provisionPercent;
markDirty("provisionPercent", provisionPercent);
}
public void setCostAdjustment(Double costAdjustment) {
this.costAdjustment = costAdjustment;
markDirty("costAdjustment", costAdjustment);
}
public void setDeleted(Boolean deleted) {
this.deleted = deleted;
markDirty("deleted", deleted);
}
public void setGuidanceMode(String guidanceMode) {
this.guidanceMode = guidanceMode;
markDirty("guidanceMode", guidanceMode);
}
public void setCostingMode(String costingMode) {
this.costingMode = costingMode;
markDirty("costingMode", costingMode);
}
public void setCostStatus(String costStatus) {
this.costStatus = costStatus;
markDirty("costStatus", costStatus);
}
public void setCostStatusMessage(String costStatusMessage) {
this.costStatusMessage = costStatusMessage;
markDirty("costStatusMessage", costStatusMessage);
}
public void setInventoryLevel(String inventoryLevel) {
this.inventoryLevel = inventoryLevel;
markDirty("inventoryLevel", inventoryLevel);
}
public void setLastSync(Date lastSync) {
this.lastSync = lastSync;
markDirty("lastSync", lastSync);
}
public void setNextRunDate(Date nextRunDate) {
this.nextRunDate = nextRunDate;
markDirty("nextRunDate", nextRunDate);
}
public void setLastSyncDuration(Long lastSyncDuration) {
this.lastSyncDuration = lastSyncDuration;
markDirty("lastSyncDuration", lastSyncDuration);
}
public void setContainerMode(String containerMode) {
this.containerMode = containerMode;
markDirty("containerMode", containerMode);
}
public void setStorageMode(String storageMode) {
this.storageMode = storageMode;
markDirty("storageMode", storageMode);
}
public void setSecurityMode(String securityMode) {
this.securityMode = securityMode;
markDirty("securityMode", securityMode);
}
public void setSecurityServer(NetworkSecurityServer securityServer) {
this.securityServer = securityServer;
markDirty("securityServer", securityServer);
}
public void setNetworkSecurityMode(String networkSecurityMode) {
this.networkSecurityMode = networkSecurityMode;
markDirty("networkSecurityMode", networkSecurityMode);
}
public void setBackupMode(String backupMode) {
this.backupMode = backupMode;
markDirty("backupMode", backupMode);
}
public void setBackupProvider(BackupProvider backupProvider) {
this.backupProvider = backupProvider;
markDirty("backupProvider", backupProvider);
}
public void setKvmEnabled(Boolean kvmEnabled) {
this.kvmEnabled = kvmEnabled;
markDirty("kvmEnabled", kvmEnabled);
}
public void setDockerEnabled(Boolean dockerEnabled) {
this.dockerEnabled = dockerEnabled;
markDirty("dockerEnabled", dockerEnabled);
}
public void setNativeEnabled(Boolean nativeEnabled) {
this.nativeEnabled = nativeEnabled;
markDirty("nativeEnabled", nativeEnabled);
}
public void setAutoRecoverPowerState(Boolean autoRecoverPowerState) {
this.autoRecoverPowerState = autoRecoverPowerState;
markDirty("autoRecoverPowerState", autoRecoverPowerState);
}
public void setConsoleKeymap(String consoleKeymap) {
this.consoleKeymap = consoleKeymap;
markDirty("consoleKeymap", consoleKeymap);
}
public void setExternalId(String externalId) {
this.externalId = externalId;
markDirty("externalId", externalId);
}
public void setInternalId(String internalId) {
this.internalId = internalId;
markDirty("internalId", internalId);
}
public void setIacId(String iacId) {
this.iacId = iacId;
markDirty("iacId", iacId);
}
public void setUuid(String uuid) {
this.uuid = uuid;
markDirty("uuid", uuid);
}
public void setNoProxy(String noProxy) {
this.noProxy = noProxy;
markDirty("noProxy", noProxy);
}
public CloudType getType() {
return type;
}
public void setType(CloudType type) {
this.type = type;
markDirty("type", type);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy