
org.ligoj.app.plugin.prov.model.ProvQuoteInstance Maven / Gradle / Ivy
The newest version!
/*
* Licensed under MIT (https://github.com/ligoj/ligoj/blob/master/LICENSE)
*/
package org.ligoj.app.plugin.prov.model;
import java.util.List;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.UniqueConstraint;
import jakarta.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
/**
* A configured instance inside a quote. Name is unique inside a quote. The instance cost does not include the
* associated storages.
*/
@Getter
@Setter
@Entity
@Table(name = "LIGOJ_PROV_QUOTE_INSTANCE", uniqueConstraints = @UniqueConstraint(columnNames = { "name",
"configuration" }))
public class ProvQuoteInstance extends AbstractQuoteVmOs implements QuoteInstance {
/**
* SID
*/
private static final long serialVersionUID = 1L;
/**
* Optional software.
*/
private String software;
@JsonIgnore
@OneToMany(mappedBy = "quoteInstance", cascade = CascadeType.REMOVE)
private List storages;
/**
* Resolved price configuration.
*/
@NotNull
@ManyToOne
private ProvInstancePrice price;
/**
* The requested tenancy.
*/
private ProvTenancy tenancy = ProvTenancy.SHARED;
@Override
public ResourceType getResourceType() {
return ResourceType.INSTANCE;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy