/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { subscriptionsCancel } from "../funcs/subscriptionsCancel.js"; import { subscriptionsGet } from "../funcs/subscriptionsGet.js"; import { subscriptionsPause } from "../funcs/subscriptionsPause.js"; import { subscriptionsResume } from "../funcs/subscriptionsResume.js"; import { subscriptionsSearchSubscriptions } from "../funcs/subscriptionsSearchSubscriptions.js"; import { subscriptionsUpdate } from "../funcs/subscriptionsUpdate.js"; import { subscriptionsUpgrade } from "../funcs/subscriptionsUpgrade.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import { unwrapAsync } from "../types/fp.js"; export class Subscriptions extends ClientSDK { /** * Retrieve a subscription * * @remarks * Retrieve subscription details by ID. View status, billing cycle, customer info, and payment history. */ async get( subscriptionId: string, options?: RequestOptions, ): Promise { return unwrapAsync(subscriptionsGet( this, subscriptionId, options, )); } /** * Cancel a subscription. * * @remarks * Cancel an active subscription immediately or schedule cancellation at period end. */ async cancel( id: string, cancelSubscriptionRequestEntity: components.CancelSubscriptionRequestEntity, options?: RequestOptions, ): Promise { return unwrapAsync(subscriptionsCancel( this, id, cancelSubscriptionRequestEntity, options, )); } /** * Update a subscription. * * @remarks * Modify subscription details like units, seats, or add-ons. Support proration and immediate billing options. */ async update( id: string, updateSubscriptionRequestEntity: components.UpdateSubscriptionRequestEntity, options?: RequestOptions, ): Promise { return unwrapAsync(subscriptionsUpdate( this, id, updateSubscriptionRequestEntity, options, )); } /** * Upgrade a subscription to a different product * * @remarks * Upgrade a subscription to a different product or plan. Handle proration and plan changes seamlessly. */ async upgrade( id: string, upgradeSubscriptionRequestEntity: components.UpgradeSubscriptionRequestEntity, options?: RequestOptions, ): Promise { return unwrapAsync(subscriptionsUpgrade( this, id, upgradeSubscriptionRequestEntity, options, )); } /** * Pause a subscription. * * @remarks * Temporarily pause a subscription. Stop billing while retaining the subscription for later resumption. */ async pause( id: string, options?: RequestOptions, ): Promise { return unwrapAsync(subscriptionsPause( this, id, options, )); } /** * Resume a subscription. * * @remarks * Resume a subscription. Subscription must be in paused or scheduled_cancel status. */ async resume( id: string, options?: RequestOptions, ): Promise { return unwrapAsync(subscriptionsResume( this, id, options, )); } /** * List all subscriptions * * @remarks * Search and retrieve a paginated list of subscriptions. View status, billing cycle, and customer info. */ async searchSubscriptions( pageNumber?: number | undefined, pageSize?: number | undefined, options?: RequestOptions, ): Promise { return unwrapAsync(subscriptionsSearchSubscriptions( this, pageNumber, pageSize, options, )); } }