From 22c5f3815a603d1ee6268333f2010a12a53ac9c2 Mon Sep 17 00:00:00 2001 From: Matteo Giordano Date: Mon, 4 Oct 2021 13:29:27 +0200 Subject: [PATCH 1/3] Recommend billing item presence --- .../platform/apiclient/dto/ApiVersion.java | 1 + .../dto/model/dto/BillingItemDTO.java | 35 ++++++++++++++++--- .../dto/model/enums/BillingItemPresence.java | 6 ++++ 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/BillingItemPresence.java diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/ApiVersion.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/ApiVersion.java index d73330cee..82cbe0573 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/ApiVersion.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/ApiVersion.java @@ -2,6 +2,7 @@ public final class ApiVersion { + public static final long V20211004 = 20211004; public static final long V20210406 = 20210406; public static final long V20210215 = 20210215; public static final long V20210125 = 20210125; diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/BillingItemDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/BillingItemDTO.java index 4273070ba..f0be69ed6 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/BillingItemDTO.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/BillingItemDTO.java @@ -1,6 +1,10 @@ package com.cloudesire.platform.apiclient.dto.model.dto; +import com.cloudesire.platform.apiclient.dto.ApiVersion; +import com.cloudesire.platform.apiclient.dto.annotations.FieldAPI; +import com.cloudesire.platform.apiclient.dto.annotations.UnsupportedAPI; import com.cloudesire.platform.apiclient.dto.model.constants.ErrorKeys; +import com.cloudesire.platform.apiclient.dto.model.enums.BillingItemPresence; import com.cloudesire.platform.apiclient.dto.model.enums.BillingItemType; import com.cloudesire.platform.apiclient.dto.model.enums.BillingItemValueType; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -48,8 +52,12 @@ public class BillingItemDTO extends NamedEntityDTO @ApiModelProperty( "Percentage of revenues for the platform owner" ) private BigDecimal cloudesireQuota; - @ApiModelProperty( "Whether the billing item will be included in every subscription" ) - private boolean required; + @FieldAPI( sinceVersion = ApiVersion.V20211004 ) + private BillingItemPresence presence = BillingItemPresence.OPTIONAL; + + @ApiModelProperty( value = "Whether the billing item will be included in every subscription", hidden = true ) + @UnsupportedAPI( sinceVersion = ApiVersion.V20211004 ) + private Boolean required; @ApiModelProperty( "Whether the billing item can be downgraded" ) private boolean downgradable = true; @@ -168,12 +176,31 @@ public BillingItemDTO setCloudesireQuota( BigDecimal cloudesireQuota ) return this; } - public boolean isRequired() + public BillingItemPresence getPresence() + { + return presence; + } + + public BillingItemDTO setPresence( BillingItemPresence presence ) + { + this.presence = presence; + return this; + } + + /** + * @deprecated by {@link #getPresence()} + */ + @Deprecated + public Boolean isRequired() { return required; } - public BillingItemDTO setRequired( boolean required ) + /** + * @deprecated by {@link #setPresence(BillingItemPresence)} + */ + @Deprecated + public BillingItemDTO setRequired( Boolean required ) { this.required = required; return this; diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/BillingItemPresence.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/BillingItemPresence.java new file mode 100644 index 000000000..64caf25b2 --- /dev/null +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/BillingItemPresence.java @@ -0,0 +1,6 @@ +package com.cloudesire.platform.apiclient.dto.model.enums; + +public enum BillingItemPresence +{ + OPTIONAL, REQUIRED, RECOMMENDED +} From e7c1deb9793dbe76b626d9e9049b8984903e7f19 Mon Sep 17 00:00:00 2001 From: Matteo Giordano Date: Tue, 5 Oct 2021 10:05:27 +0200 Subject: [PATCH 2/3] Bump API version --- .../java/com/cloudesire/platform/apiclient/dto/ApiVersion.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/ApiVersion.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/ApiVersion.java index 82cbe0573..da2ca5d4b 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/ApiVersion.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/ApiVersion.java @@ -34,7 +34,7 @@ public final class ApiVersion public static final long V20180101 = 20180101; public static final long NO_VERSION = 0; - public static final Long LATEST_API_VERSION = V20210406; + public static final Long LATEST_API_VERSION = V20211004; private ApiVersion() { From c4d581688a9b570ec3b1da7b03c9bed22664edbf Mon Sep 17 00:00:00 2001 From: Matteo Giordano Date: Tue, 5 Oct 2021 10:38:26 +0200 Subject: [PATCH 3/3] Document --- .../dto/model/enums/BillingItemPresence.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/BillingItemPresence.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/BillingItemPresence.java index 64caf25b2..b4efe8db8 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/BillingItemPresence.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/BillingItemPresence.java @@ -1,6 +1,17 @@ package com.cloudesire.platform.apiclient.dto.model.enums; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel( "Configuration for the presence of the Billing Item when buying a Subscription" ) public enum BillingItemPresence { - OPTIONAL, REQUIRED, RECOMMENDED + @ApiModelProperty( "The Billing Item is optional" ) + OPTIONAL, + + @ApiModelProperty( "The Billing Item will be included in every Subscription" ) + REQUIRED, + + @ApiModelProperty( "The Billing Item will be suggested for inclusion on purchase" ) + RECOMMENDED }