diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/BaseExternalOrderValidationDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/BaseExternalOrderValidationDTO.java new file mode 100644 index 000000000..97152c5f0 --- /dev/null +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/BaseExternalOrderValidationDTO.java @@ -0,0 +1,64 @@ +package com.cloudesire.platform.apiclient.dto.model.dto; + +abstract class BaseExternalOrderValidationDTO implements DTO +{ + private Integer productId; + + private String productIdentifier; + + private Integer productVersionId; + + private String productVersionIdentifier; + + private String language; + + public Integer getProductId() + { + return productId; + } + + public void setProductId( Integer productId ) + { + this.productId = productId; + } + + public String getProductIdentifier() + { + return productIdentifier; + } + + public void setProductIdentifier( String productIdentifier ) + { + this.productIdentifier = productIdentifier; + } + + public Integer getProductVersionId() + { + return productVersionId; + } + + public void setProductVersionId( Integer productVersionId ) + { + this.productVersionId = productVersionId; + } + + public String getProductVersionIdentifier() + { + return productVersionIdentifier; + } + + public void setProductVersionIdentifier( String productVersionIdentifier ) + { + this.productVersionIdentifier = productVersionIdentifier; + } + + public String getLanguage() + { + return language; + } + + public void setLanguage( String language ) + { + this.language = language; + } +} diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ConfigurationParameterDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ConfigurationParameterDTO.java index c38936c8d..8611cb26f 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ConfigurationParameterDTO.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ConfigurationParameterDTO.java @@ -4,6 +4,7 @@ import com.liberologico.cloudesire.common.validators.RegExp; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import org.hibernate.validator.constraints.URL; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Pattern; @@ -33,6 +34,10 @@ public class ConfigurationParameterDTO extends NamedEntityDTO @ApiModelProperty( "Possible labeled values for the parameter" ) private Map acceptedValues; + @ApiModelProperty( "External endpoint to obtain possible values for the parameter" ) + @URL + private String externalValuesUrl; + @ApiModelProperty( "Short description to help user compiling the correct value" ) private String hint; @@ -57,7 +62,7 @@ public ConfigurationParameterDTO( String name, Map acceptedValue this.acceptedValues = acceptedValues; } - private ConfigurationParameterDTO( String name, String description ) + public ConfigurationParameterDTO( String name, String description ) { super( name ); this.description = description; @@ -111,6 +116,17 @@ public ConfigurationParameterDTO setAcceptedValues( Map accepted return this; } + public String getExternalValuesUrl() + { + return externalValuesUrl; + } + + public ConfigurationParameterDTO setExternalValuesUrl( String externalValuesUrl ) + { + this.externalValuesUrl = externalValuesUrl; + return this; + } + public String getHint() { return hint; diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ConfigurationParameterValueDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ConfigurationParameterValueDTO.java new file mode 100644 index 000000000..36ca020ab --- /dev/null +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ConfigurationParameterValueDTO.java @@ -0,0 +1,55 @@ +package com.cloudesire.platform.apiclient.dto.model.dto; + +import java.util.Objects; + +public class ConfigurationParameterValueDTO implements DTO +{ + private String value; + + private String description; + + public ConfigurationParameterValueDTO( String value, String description ) + { + this.value = value; + this.description = description; + } + + public ConfigurationParameterValueDTO() + { + } + + public String getValue() + { + return value; + } + + public void setValue( String value ) + { + this.value = value; + } + + public String getDescription() + { + return description; + } + + public void setDescription( String description ) + { + this.description = description; + } + + @Override + public boolean equals( Object o ) + { + if ( this == o ) return true; + if ( o == null || getClass() != o.getClass() ) return false; + ConfigurationParameterValueDTO that = (ConfigurationParameterValueDTO) o; + return Objects.equals( value, that.value ) && Objects.equals( description, that.description ); + } + + @Override + public int hashCode() + { + return Objects.hash( value, description ); + } +} diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ExternalConfigurationParameterValuesRequestDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ExternalConfigurationParameterValuesRequestDTO.java new file mode 100644 index 000000000..d607df71e --- /dev/null +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ExternalConfigurationParameterValuesRequestDTO.java @@ -0,0 +1,16 @@ +package com.cloudesire.platform.apiclient.dto.model.dto; + +public class ExternalConfigurationParameterValuesRequestDTO extends BaseExternalOrderValidationDTO +{ + private String configurationParameter; + + public String getConfigurationParameter() + { + return configurationParameter; + } + + public void setConfigurationParameter( String configurationParameter ) + { + this.configurationParameter = configurationParameter; + } +} diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ExternalOrderValidationDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ExternalOrderValidationDTO.java index 01aca672a..fef49e52a 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ExternalOrderValidationDTO.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/ExternalOrderValidationDTO.java @@ -4,16 +4,8 @@ import java.util.Map; -public class ExternalOrderValidationDTO implements DTO +public class ExternalOrderValidationDTO extends BaseExternalOrderValidationDTO { - private Integer productId; - - private String productIdentifier; - - private Integer productVersionId; - - private String productVersionIdentifier; - private Map billingItems; private Map configurationParameters; @@ -24,48 +16,6 @@ public class ExternalOrderValidationDTO implements DTO private OrderType orderType; - private String language; - - public Integer getProductId() - { - return productId; - } - - public void setProductId( Integer productId ) - { - this.productId = productId; - } - - public String getProductIdentifier() - { - return productIdentifier; - } - - public void setProductIdentifier( String productIdentifier ) - { - this.productIdentifier = productIdentifier; - } - - public Integer getProductVersionId() - { - return productVersionId; - } - - public void setProductVersionId( Integer productVersionId ) - { - this.productVersionId = productVersionId; - } - - public String getProductVersionIdentifier() - { - return productVersionIdentifier; - } - - public void setProductVersionIdentifier( String productVersionIdentifier ) - { - this.productVersionIdentifier = productVersionIdentifier; - } - public Map getBillingItems() { return billingItems; @@ -115,14 +65,4 @@ public void setOrderType( OrderType orderType ) { this.orderType = orderType; } - - public String getLanguage() - { - return language; - } - - public void setLanguage( String language ) - { - this.language = language; - } } diff --git a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/ConfigurationParameterApi.java b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/ConfigurationParameterApi.java index 1d15f65ff..12125c60c 100644 --- a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/ConfigurationParameterApi.java +++ b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/ConfigurationParameterApi.java @@ -1,12 +1,20 @@ package com.cloudesire.platform.apiclient.api; import com.cloudesire.platform.apiclient.dto.model.dto.ConfigurationParameterDTO; +import com.cloudesire.platform.apiclient.dto.model.dto.ConfigurationParameterValueDTO; import retrofit2.Call; import retrofit2.http.GET; +import retrofit2.http.POST; import retrofit2.http.Path; +import retrofit2.http.Query; + +import java.util.List; public interface ConfigurationParameterApi { @GET( "configurationParameter/{id}" ) Call get( @Path( "id" ) int id ); + + @POST( "configurationParameter/{id}/values" ) + Call> getValues( @Path( "id" ) int id, @Query( "productVersionId" ) int productVersionId ); }