diff --git a/libs/common/src/billing/models/request/organization-sm-subscription-update.request.ts b/libs/common/src/billing/models/request/organization-sm-subscription-update.request.ts new file mode 100644 index 0000000000..a69937d231 --- /dev/null +++ b/libs/common/src/billing/models/request/organization-sm-subscription-update.request.ts @@ -0,0 +1,40 @@ +export class OrganizationSmSubscriptionUpdateRequest { + /** + * The number of seats to add or remove from the subscription. + */ + seatAdjustment: number; + + /** + * The maximum number of seats that can be auto-scaled for the subscription. + */ + maxAutoscaleSeats?: number; + + /** + * The number of additional service accounts to add or remove from the subscription. + */ + serviceAccountAdjustment: number; + + /** + * The maximum number of additional service accounts that can be auto-scaled for the subscription. + */ + maxAutoscaleServiceAccounts?: number; + + /** + * Build a subscription update request for the Secrets Manager product type. + * @param seatAdjustment - The number of seats to add or remove from the subscription. + * @param serviceAccountAdjustment - The number of additional service accounts to add or remove from the subscription. + * @param maxAutoscaleSeats - The maximum number of seats that can be auto-scaled for the subscription. + * @param maxAutoscaleServiceAccounts - The maximum number of additional service accounts that can be auto-scaled for the subscription. + */ + constructor( + seatAdjustment: number, + serviceAccountAdjustment: number, + maxAutoscaleSeats?: number, + maxAutoscaleServiceAccounts?: number + ) { + this.seatAdjustment = seatAdjustment; + this.serviceAccountAdjustment = serviceAccountAdjustment; + this.maxAutoscaleSeats = maxAutoscaleSeats; + this.maxAutoscaleServiceAccounts = maxAutoscaleServiceAccounts; + } +}