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

org.ligoj.app.plugin.prov.QuoteEditionVo Maven / Gradle / Ivy

The newest version!
/*
 * Licensed under MIT (https://github.com/ligoj/ligoj/blob/master/LICENSE)
 */
package org.ligoj.app.plugin.prov;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;

import org.ligoj.app.plugin.prov.model.ReservationMode;
import org.ligoj.bootstrap.core.DescribedBean;

import com.fasterxml.jackson.annotation.JsonIgnore;

import lombok.Getter;
import lombok.Setter;

/**
 * Quote definition for edition. Identifier parameter is not used.
 */
@Getter
@Setter
public class QuoteEditionVo extends DescribedBean {

	/**
	 * SID
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * Default location name when not defined at instance/storage level.
	 */
	@NotNull
	private String location;

	/**
	 * Optional usage name. May be null for a full usage.
	 */
	private String usage;

	/**
	 * Optional budget name. May be null for a budget without initial cost.
	 */
	private String budget;

	/**
	 * Optional optimizer name. May be null for a budget without initial cost.
	 */
	private String optimizer;

	/**
	 * Optional license model. null value corresponds to
	 * {@value org.ligoj.app.plugin.prov.model.ProvQuoteInstance#LICENSE_INCLUDED}.
	 */
	private String license;

	/**
	 * Rate applied to required RAM to find the suiting instance type. This rate is divided by 100, then
	 * multiplied to the required RAM of each memory before calling the lookup. Values lesser than 100
	 * allows the lookup to elect an instance having less RAM than the requested one. Value greater than
	 * 100 makes the lookup to request instance types providing more RAM than the requested one.
	 */
	@Min(1)
	@Max(200)
	@NotNull
	private Integer ramAdjustedRate = 100;

	/**
	 * Optional reservation mode. When null, is
	 * {@link org.ligoj.app.plugin.prov.model.ReservationMode#RESERVED}
	 */
	private ReservationMode reservationMode = ReservationMode.RESERVED;

	/**
	 * Optional physical processor. May be null.
	 */
	private String processor;

	/**
	 * Optional physical host requirement. May be null. When true, this instance type is
	 * physical, not virtual.
	 */
	private Boolean physical;

	/**
	 * When true, the cost is always refreshed, otherwise, only when at least one pricing dependency is
	 * updated.
	 */
	@JsonIgnore
	private boolean refresh;

	/**
	 * UI settings. Properties are:
	 * 
    *
  • Attached tags colors mapping as a JSON map. Key is the tag name. Value is the color code. Color name is not * accepted. Sample: #e4560f or rgb(255, 0, 0), hsl(0, 100%, 50%).
  • *
*/ private String uiSettings; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy