| import "@typespec/openapi"; |
| import "../shared/index.tsp"; |
| import "../productcatalog/ratecard.tsp"; |
|
|
| using TypeSpec.OpenAPI; |
|
|
| namespace Subscriptions; |
|
|
| |
| |
| |
| @friendlyName("BillingSubscriptionStatus") |
| enum SubscriptionStatus { |
| Active: "active", |
| Inactive: "inactive", |
| Canceled: "canceled", |
| Scheduled: "scheduled", |
| } |
|
|
| |
| |
| |
| |
| |
| @friendlyName("BillingSubscriptionEditTimingEnum") |
| enum SubscriptionEditTimingEnum { |
| Immediate: "immediate", |
| NextBillingCycle: "next_billing_cycle", |
| } |
|
|
| |
| |
| |
| |
| |
| @oneOf |
| @friendlyName("BillingSubscriptionEditTiming") |
| @example(SubscriptionEditTimingEnum.Immediate) |
| union SubscriptionEditTiming { |
| Enum: SubscriptionEditTimingEnum, |
| Custom: Shared.DateTime, |
| } |
|
|
| |
| |
| |
| @friendlyName("BillingSubscriptionCreate") |
| model SubscriptionCreate { |
| ...Shared.CreateRequest<OmitProperties< |
| Subscription, |
| "customer_id" | "plan_id" | "billing_anchor" |
| >>; |
|
|
| |
| |
| |
| customer: { |
| |
| |
| |
| |
| |
| |
| @visibility(Lifecycle.Create) |
| @summary("Customer ID") |
| id?: Shared.ULID; |
|
|
| |
| |
| |
| |
| |
| |
| @visibility(Lifecycle.Create) |
| @summary("Customer Key") |
| key?: Shared.ExternalResourceKey; |
| }; |
|
|
| |
| |
| |
| plan: { |
| |
| |
| |
| |
| |
| |
| @visibility(Lifecycle.Create) |
| @summary("Plan ID") |
| id?: Shared.ULID; |
|
|
| |
| |
| |
| |
| |
| |
| |
| @visibility(Lifecycle.Create) |
| @summary("Plan Key") |
| key?: Shared.ResourceKey; |
|
|
| |
| |
| |
| |
| @visibility(Lifecycle.Create) |
| @summary("Plan Version") |
| version?: integer; |
| }; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| @visibility(Lifecycle.Create) |
| @summary("Billing anchor") |
| billing_anchor?: Shared.DateTime; |
| } |
|
|
| |
| |
| |
| @friendlyName("BillingSubscription") |
| model Subscription { |
| ...OmitProperties<Shared.Resource, "name" | "description">; |
|
|
| |
| |
| |
| @visibility(Lifecycle.Read) |
| @summary("Customer ID") |
| customer_id: Shared.ULID; |
|
|
| |
| |
| |
| @visibility(Lifecycle.Read) |
| @summary("Plan ID") |
| plan_id?: Shared.ULID; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| @visibility(Lifecycle.Read) |
| @summary("Billing anchor") |
| billing_anchor: Shared.DateTime; |
|
|
| |
| |
| |
| @visibility(Lifecycle.Read) |
| @summary("Status") |
| status: SubscriptionStatus; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| @visibility(Lifecycle.Create, Lifecycle.Read) |
| @summary("Settlement Mode") |
| settlement_mode?: ProductCatalog.SettlementMode; |
| } |
|
|