File size: 5,096 Bytes
1477a90 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | // Code generated by @openmeter/typespec-typescript. DO NOT EDIT.
import { type Client } from '../core.js'
import { unwrap, type RequestOptions } from '../lib/types.js'
import { paginatePages } from '../lib/paginate.js'
import {
createSubscription,
listSubscriptions,
getSubscription,
cancelSubscription,
unscheduleCancelation,
changeSubscription,
listSubscriptionAddons,
getSubscriptionAddon,
} from '../funcs/subscriptions.js'
import type {
CreateSubscriptionRequest,
CreateSubscriptionResponse,
ListSubscriptionsRequest,
ListSubscriptionsResponse,
GetSubscriptionRequest,
GetSubscriptionResponse,
CancelSubscriptionRequest,
CancelSubscriptionResponse,
UnscheduleCancelationRequest,
UnscheduleCancelationResponse,
ChangeSubscriptionRequest,
ChangeSubscriptionResponse,
ListSubscriptionAddonsRequest,
ListSubscriptionAddonsResponse,
GetSubscriptionAddonRequest,
GetSubscriptionAddonResponse,
} from '../models/operations/subscriptions.js'
import type { Subscription, SubscriptionAddon } from '../models/types.js'
export class Subscriptions {
constructor(private readonly _client: Client) {}
/**
* Create subscription
*
* POST /openmeter/subscriptions
*/
async create(
request: CreateSubscriptionRequest,
options?: RequestOptions,
): Promise<CreateSubscriptionResponse> {
return unwrap(await createSubscription(this._client, request, options))
}
/**
* List subscriptions
*
* GET /openmeter/subscriptions
*/
async list(
request?: ListSubscriptionsRequest,
options?: RequestOptions,
): Promise<ListSubscriptionsResponse> {
return unwrap(await listSubscriptions(this._client, request, options))
}
/**
* List subscriptions
*
* Iterates every item across all pages, fetching more as the returned iterable is consumed.
*
* GET /openmeter/subscriptions
*/
listAll(
request?: ListSubscriptionsRequest,
options?: RequestOptions,
): AsyncIterable<Subscription> {
return paginatePages(
(req, opts) => listSubscriptions(this._client, req, opts),
request ?? {},
options,
)
}
/**
* Get subscription
*
* GET /openmeter/subscriptions/{subscriptionId}
*/
async get(
request: GetSubscriptionRequest,
options?: RequestOptions,
): Promise<GetSubscriptionResponse> {
return unwrap(await getSubscription(this._client, request, options))
}
/**
* Cancel subscription
*
* Cancels the subscription. Will result in a scheduling conflict if there are
* other subscriptions scheduled to start after the cancelation time.
*
* POST /openmeter/subscriptions/{subscriptionId}/cancel
*/
async cancel(
request: CancelSubscriptionRequest,
options?: RequestOptions,
): Promise<CancelSubscriptionResponse> {
return unwrap(await cancelSubscription(this._client, request, options))
}
/**
* Unschedule subscription cancelation
*
* Unschedules the subscription cancelation.
*
* POST /openmeter/subscriptions/{subscriptionId}/unschedule-cancelation
*/
async unscheduleCancelation(
request: UnscheduleCancelationRequest,
options?: RequestOptions,
): Promise<UnscheduleCancelationResponse> {
return unwrap(await unscheduleCancelation(this._client, request, options))
}
/**
* Change subscription
*
* Closes a running subscription and starts a new one according to the
* specification. Can be used for upgrades, downgrades, and plan changes.
*
* POST /openmeter/subscriptions/{subscriptionId}/change
*/
async change(
request: ChangeSubscriptionRequest,
options?: RequestOptions,
): Promise<ChangeSubscriptionResponse> {
return unwrap(await changeSubscription(this._client, request, options))
}
/**
* List subscription addons
*
* List the add-ons of a subscription.
*
* GET /openmeter/subscriptions/{subscriptionId}/addons
*/
async listAddons(
request: ListSubscriptionAddonsRequest,
options?: RequestOptions,
): Promise<ListSubscriptionAddonsResponse> {
return unwrap(await listSubscriptionAddons(this._client, request, options))
}
/**
* List subscription addons
*
* List the add-ons of a subscription.
*
* Iterates every item across all pages, fetching more as the returned iterable is consumed.
*
* GET /openmeter/subscriptions/{subscriptionId}/addons
*/
listAddonsAll(
request: ListSubscriptionAddonsRequest,
options?: RequestOptions,
): AsyncIterable<SubscriptionAddon> {
return paginatePages(
(req, opts) => listSubscriptionAddons(this._client, req, opts),
request,
options,
)
}
/**
* Get add-on association for subscription
*
* Get an add-on association for a subscription.
*
* GET /openmeter/subscriptions/{subscriptionId}/addons/{subscriptionAddonId}
*/
async getAddon(
request: GetSubscriptionAddonRequest,
options?: RequestOptions,
): Promise<GetSubscriptionAddonResponse> {
return unwrap(await getSubscriptionAddon(this._client, request, options))
}
}
|