@flexprice/sdk 2.1.38 → 2.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/docs/sdk/models/invoice-billing-reason.md +2 -2
  2. package/docs/sdk/models/pause-subscription-request-request.md +19 -0
  3. package/docs/sdk/models/pause-subscription-request.md +19 -0
  4. package/docs/sdk/models/pause-subscription-response.md +127 -0
  5. package/docs/sdk/models/resume-subscription-request-request.md +19 -0
  6. package/docs/sdk/models/resume-subscription-request.md +18 -0
  7. package/docs/sdk/models/resume-subscription-response.md +127 -0
  8. package/docs/sdk/models/subscription-pause-response.md +35 -0
  9. package/docs/sdks/subscriptions/README.md +146 -0
  10. package/esm/funcs/subscriptions-pause-subscription.d.ts +17 -0
  11. package/esm/funcs/subscriptions-pause-subscription.d.ts.map +1 -0
  12. package/esm/funcs/subscriptions-pause-subscription.js +93 -0
  13. package/esm/funcs/subscriptions-pause-subscription.js.map +1 -0
  14. package/esm/funcs/subscriptions-resume-subscription.d.ts +17 -0
  15. package/esm/funcs/subscriptions-resume-subscription.d.ts.map +1 -0
  16. package/esm/funcs/subscriptions-resume-subscription.js +93 -0
  17. package/esm/funcs/subscriptions-resume-subscription.js.map +1 -0
  18. package/esm/lib/config.d.ts +2 -2
  19. package/esm/lib/config.js +2 -2
  20. package/esm/sdk/models/index.d.ts +7 -0
  21. package/esm/sdk/models/index.d.ts.map +1 -1
  22. package/esm/sdk/models/index.js +7 -0
  23. package/esm/sdk/models/index.js.map +1 -1
  24. package/esm/sdk/models/invoice-billing-reason.d.ts +2 -0
  25. package/esm/sdk/models/invoice-billing-reason.d.ts.map +1 -1
  26. package/esm/sdk/models/invoice-billing-reason.js +2 -0
  27. package/esm/sdk/models/invoice-billing-reason.js.map +1 -1
  28. package/esm/sdk/models/pause-subscription-op.d.ts +21 -0
  29. package/esm/sdk/models/pause-subscription-op.d.ts.map +1 -0
  30. package/esm/sdk/models/pause-subscription-op.js +14 -0
  31. package/esm/sdk/models/pause-subscription-op.js.map +1 -0
  32. package/esm/sdk/models/pause-subscription-request.d.ts +37 -0
  33. package/esm/sdk/models/pause-subscription-request.d.ts.map +1 -0
  34. package/esm/sdk/models/pause-subscription-request.js +20 -0
  35. package/esm/sdk/models/pause-subscription-request.js.map +1 -0
  36. package/esm/sdk/models/pause-subscription-response.d.ts +19 -0
  37. package/esm/sdk/models/pause-subscription-response.d.ts.map +1 -0
  38. package/esm/sdk/models/pause-subscription-response.js +17 -0
  39. package/esm/sdk/models/pause-subscription-response.js.map +1 -0
  40. package/esm/sdk/models/resume-subscription-op.d.ts +21 -0
  41. package/esm/sdk/models/resume-subscription-op.d.ts.map +1 -0
  42. package/esm/sdk/models/resume-subscription-op.js +14 -0
  43. package/esm/sdk/models/resume-subscription-op.js.map +1 -0
  44. package/esm/sdk/models/resume-subscription-request.d.ts +28 -0
  45. package/esm/sdk/models/resume-subscription-request.d.ts.map +1 -0
  46. package/esm/sdk/models/resume-subscription-request.js +19 -0
  47. package/esm/sdk/models/resume-subscription-request.js.map +1 -0
  48. package/esm/sdk/models/resume-subscription-response.d.ts +19 -0
  49. package/esm/sdk/models/resume-subscription-response.d.ts.map +1 -0
  50. package/esm/sdk/models/resume-subscription-response.js +17 -0
  51. package/esm/sdk/models/resume-subscription-response.js.map +1 -0
  52. package/esm/sdk/models/subscription-pause-response.d.ts +64 -0
  53. package/esm/sdk/models/subscription-pause-response.d.ts.map +1 -0
  54. package/esm/sdk/models/subscription-pause-response.js +55 -0
  55. package/esm/sdk/models/subscription-pause-response.js.map +1 -0
  56. package/esm/sdk/subscriptions.d.ts +14 -0
  57. package/esm/sdk/subscriptions.d.ts.map +1 -1
  58. package/esm/sdk/subscriptions.js +20 -0
  59. package/esm/sdk/subscriptions.js.map +1 -1
  60. package/jsr.json +1 -1
  61. package/package.json +1 -1
  62. package/src/funcs/subscriptions-pause-subscription.ts +187 -0
  63. package/src/funcs/subscriptions-resume-subscription.ts +187 -0
  64. package/src/lib/config.ts +2 -2
  65. package/src/sdk/models/index.ts +7 -0
  66. package/src/sdk/models/invoice-billing-reason.ts +2 -0
  67. package/src/sdk/models/pause-subscription-op.ts +46 -0
  68. package/src/sdk/models/pause-subscription-request.ts +64 -0
  69. package/src/sdk/models/pause-subscription-response.ts +47 -0
  70. package/src/sdk/models/resume-subscription-op.ts +46 -0
  71. package/src/sdk/models/resume-subscription-request.ts +54 -0
  72. package/src/sdk/models/resume-subscription-response.ts +47 -0
  73. package/src/sdk/models/subscription-pause-response.ts +123 -0
  74. package/src/sdk/subscriptions.ts +40 -0
@@ -0,0 +1,187 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { FlexpriceCore } from "../core.js";
7
+ import { encodeJSON, encodeSimple } from "../lib/encodings.js";
8
+ import { matchStatusCode } from "../lib/http.js";
9
+ import * as M from "../lib/matchers.js";
10
+ import { compactMap } from "../lib/primitives.js";
11
+ import { safeParse } from "../lib/schemas.js";
12
+ import { RequestOptions } from "../lib/sdks.js";
13
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
14
+ import { pathToFunc } from "../lib/url.js";
15
+ import { FlexPriceError } from "../sdk/models/flex-price-error.js";
16
+ import {
17
+ ConnectionError,
18
+ InvalidRequestError,
19
+ RequestAbortedError,
20
+ RequestTimeoutError,
21
+ UnexpectedClientError,
22
+ } from "../sdk/models/http-client-errors.js";
23
+ import * as models from "../sdk/models/index.js";
24
+ import { ResponseValidationError } from "../sdk/models/response-validation-error.js";
25
+ import { SDKValidationError } from "../sdk/models/sdk-validation-error.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Pause subscription
31
+ *
32
+ * @remarks
33
+ * Use when a customer stops temporarily. Pauses an active subscription now: usage and arrear fixed charges up to the pause are billed on a closing invoice, and every paused period after it gets a $0 skipped invoice.
34
+ */
35
+ export function subscriptionsPauseSubscription(
36
+ client: FlexpriceCore,
37
+ id: string,
38
+ body: models.PauseSubscriptionRequest,
39
+ options?: RequestOptions,
40
+ ): APIPromise<
41
+ Result<
42
+ models.PauseSubscriptionResponse,
43
+ | models.ErrorsErrorResponse
44
+ | FlexPriceError
45
+ | ResponseValidationError
46
+ | ConnectionError
47
+ | RequestAbortedError
48
+ | RequestTimeoutError
49
+ | InvalidRequestError
50
+ | UnexpectedClientError
51
+ | SDKValidationError
52
+ >
53
+ > {
54
+ return new APIPromise($do(
55
+ client,
56
+ id,
57
+ body,
58
+ options,
59
+ ));
60
+ }
61
+
62
+ async function $do(
63
+ client: FlexpriceCore,
64
+ id: string,
65
+ body: models.PauseSubscriptionRequest,
66
+ options?: RequestOptions,
67
+ ): Promise<
68
+ [
69
+ Result<
70
+ models.PauseSubscriptionResponse,
71
+ | models.ErrorsErrorResponse
72
+ | FlexPriceError
73
+ | ResponseValidationError
74
+ | ConnectionError
75
+ | RequestAbortedError
76
+ | RequestTimeoutError
77
+ | InvalidRequestError
78
+ | UnexpectedClientError
79
+ | SDKValidationError
80
+ >,
81
+ APICall,
82
+ ]
83
+ > {
84
+ const input: models.PauseSubscriptionRequestRequest = {
85
+ id: id,
86
+ body: body,
87
+ };
88
+
89
+ const parsed = safeParse(
90
+ input,
91
+ (value) =>
92
+ z.parse(models.PauseSubscriptionRequestRequest$outboundSchema, value),
93
+ "Input validation failed",
94
+ );
95
+ if (!parsed.ok) {
96
+ return [parsed, { status: "invalid" }];
97
+ }
98
+ const payload = parsed.value;
99
+ const body$ = encodeJSON("body", payload.body, { explode: true });
100
+
101
+ const pathParams = {
102
+ id: encodeSimple("id", payload.id, {
103
+ explode: false,
104
+ charEncoding: "percent",
105
+ }),
106
+ };
107
+ const path = pathToFunc("/subscriptions/{id}/pause")(pathParams);
108
+
109
+ const headers = new Headers(compactMap({
110
+ "Content-Type": "application/json",
111
+ Accept: "application/json",
112
+ }));
113
+
114
+ const secConfig = await extractSecurity(client._options.apiKeyAuth);
115
+ const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
116
+ const requestSecurity = resolveGlobalSecurity(securityInput);
117
+
118
+ const context = {
119
+ options: client._options,
120
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
121
+ operationID: "pauseSubscription",
122
+ oAuth2Scopes: null,
123
+
124
+ resolvedSecurity: requestSecurity,
125
+
126
+ securitySource: client._options.apiKeyAuth,
127
+ retryConfig: options?.retries
128
+ || client._options.retryConfig
129
+ || { strategy: "none" },
130
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
131
+ };
132
+
133
+ const requestRes = client._createRequest(context, {
134
+ security: requestSecurity,
135
+ method: "POST",
136
+ baseURL: options?.serverURL,
137
+ path: path,
138
+ headers: headers,
139
+ body: body$,
140
+ userAgent: client._options.userAgent,
141
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
142
+ }, options);
143
+ if (!requestRes.ok) {
144
+ return [requestRes, { status: "invalid" }];
145
+ }
146
+ const req = requestRes.value;
147
+
148
+ const doResult = await client._do(req, {
149
+ context,
150
+ isErrorStatusCode: (statusCode: number) =>
151
+ matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]),
152
+ retryConfig: context.retryConfig,
153
+ retryCodes: context.retryCodes,
154
+ });
155
+ if (!doResult.ok) {
156
+ return [doResult, { status: "request-error", request: req }];
157
+ }
158
+ const response = doResult.value;
159
+
160
+ const responseFields = {
161
+ HttpMeta: { Response: response, Request: req },
162
+ };
163
+
164
+ const [result] = await M.match<
165
+ models.PauseSubscriptionResponse,
166
+ | models.ErrorsErrorResponse
167
+ | FlexPriceError
168
+ | ResponseValidationError
169
+ | ConnectionError
170
+ | RequestAbortedError
171
+ | RequestTimeoutError
172
+ | InvalidRequestError
173
+ | UnexpectedClientError
174
+ | SDKValidationError
175
+ >(
176
+ M.json(200, models.PauseSubscriptionResponse$inboundSchema),
177
+ M.jsonErr([400, 404], models.ErrorsErrorResponse$inboundSchema),
178
+ M.jsonErr(500, models.ErrorsErrorResponse$inboundSchema),
179
+ M.fail("4XX"),
180
+ M.fail("5XX"),
181
+ )(response, req, { extraFields: responseFields });
182
+ if (!result.ok) {
183
+ return [result, { status: "complete", request: req, response }];
184
+ }
185
+
186
+ return [result, { status: "complete", request: req, response }];
187
+ }
@@ -0,0 +1,187 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { FlexpriceCore } from "../core.js";
7
+ import { encodeJSON, encodeSimple } from "../lib/encodings.js";
8
+ import { matchStatusCode } from "../lib/http.js";
9
+ import * as M from "../lib/matchers.js";
10
+ import { compactMap } from "../lib/primitives.js";
11
+ import { safeParse } from "../lib/schemas.js";
12
+ import { RequestOptions } from "../lib/sdks.js";
13
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
14
+ import { pathToFunc } from "../lib/url.js";
15
+ import { FlexPriceError } from "../sdk/models/flex-price-error.js";
16
+ import {
17
+ ConnectionError,
18
+ InvalidRequestError,
19
+ RequestAbortedError,
20
+ RequestTimeoutError,
21
+ UnexpectedClientError,
22
+ } from "../sdk/models/http-client-errors.js";
23
+ import * as models from "../sdk/models/index.js";
24
+ import { ResponseValidationError } from "../sdk/models/response-validation-error.js";
25
+ import { SDKValidationError } from "../sdk/models/sdk-validation-error.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Resume subscription
31
+ *
32
+ * @remarks
33
+ * Use when a paused customer comes back. Resumes a paused subscription now on its existing billing anchor: the first period runs from the resume to the next billing date and its advance charges are invoiced at once.
34
+ */
35
+ export function subscriptionsResumeSubscription(
36
+ client: FlexpriceCore,
37
+ id: string,
38
+ body: models.ResumeSubscriptionRequest,
39
+ options?: RequestOptions,
40
+ ): APIPromise<
41
+ Result<
42
+ models.ResumeSubscriptionResponse,
43
+ | models.ErrorsErrorResponse
44
+ | FlexPriceError
45
+ | ResponseValidationError
46
+ | ConnectionError
47
+ | RequestAbortedError
48
+ | RequestTimeoutError
49
+ | InvalidRequestError
50
+ | UnexpectedClientError
51
+ | SDKValidationError
52
+ >
53
+ > {
54
+ return new APIPromise($do(
55
+ client,
56
+ id,
57
+ body,
58
+ options,
59
+ ));
60
+ }
61
+
62
+ async function $do(
63
+ client: FlexpriceCore,
64
+ id: string,
65
+ body: models.ResumeSubscriptionRequest,
66
+ options?: RequestOptions,
67
+ ): Promise<
68
+ [
69
+ Result<
70
+ models.ResumeSubscriptionResponse,
71
+ | models.ErrorsErrorResponse
72
+ | FlexPriceError
73
+ | ResponseValidationError
74
+ | ConnectionError
75
+ | RequestAbortedError
76
+ | RequestTimeoutError
77
+ | InvalidRequestError
78
+ | UnexpectedClientError
79
+ | SDKValidationError
80
+ >,
81
+ APICall,
82
+ ]
83
+ > {
84
+ const input: models.ResumeSubscriptionRequestRequest = {
85
+ id: id,
86
+ body: body,
87
+ };
88
+
89
+ const parsed = safeParse(
90
+ input,
91
+ (value) =>
92
+ z.parse(models.ResumeSubscriptionRequestRequest$outboundSchema, value),
93
+ "Input validation failed",
94
+ );
95
+ if (!parsed.ok) {
96
+ return [parsed, { status: "invalid" }];
97
+ }
98
+ const payload = parsed.value;
99
+ const body$ = encodeJSON("body", payload.body, { explode: true });
100
+
101
+ const pathParams = {
102
+ id: encodeSimple("id", payload.id, {
103
+ explode: false,
104
+ charEncoding: "percent",
105
+ }),
106
+ };
107
+ const path = pathToFunc("/subscriptions/{id}/resume")(pathParams);
108
+
109
+ const headers = new Headers(compactMap({
110
+ "Content-Type": "application/json",
111
+ Accept: "application/json",
112
+ }));
113
+
114
+ const secConfig = await extractSecurity(client._options.apiKeyAuth);
115
+ const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
116
+ const requestSecurity = resolveGlobalSecurity(securityInput);
117
+
118
+ const context = {
119
+ options: client._options,
120
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
121
+ operationID: "resumeSubscription",
122
+ oAuth2Scopes: null,
123
+
124
+ resolvedSecurity: requestSecurity,
125
+
126
+ securitySource: client._options.apiKeyAuth,
127
+ retryConfig: options?.retries
128
+ || client._options.retryConfig
129
+ || { strategy: "none" },
130
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
131
+ };
132
+
133
+ const requestRes = client._createRequest(context, {
134
+ security: requestSecurity,
135
+ method: "POST",
136
+ baseURL: options?.serverURL,
137
+ path: path,
138
+ headers: headers,
139
+ body: body$,
140
+ userAgent: client._options.userAgent,
141
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
142
+ }, options);
143
+ if (!requestRes.ok) {
144
+ return [requestRes, { status: "invalid" }];
145
+ }
146
+ const req = requestRes.value;
147
+
148
+ const doResult = await client._do(req, {
149
+ context,
150
+ isErrorStatusCode: (statusCode: number) =>
151
+ matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]),
152
+ retryConfig: context.retryConfig,
153
+ retryCodes: context.retryCodes,
154
+ });
155
+ if (!doResult.ok) {
156
+ return [doResult, { status: "request-error", request: req }];
157
+ }
158
+ const response = doResult.value;
159
+
160
+ const responseFields = {
161
+ HttpMeta: { Response: response, Request: req },
162
+ };
163
+
164
+ const [result] = await M.match<
165
+ models.ResumeSubscriptionResponse,
166
+ | models.ErrorsErrorResponse
167
+ | FlexPriceError
168
+ | ResponseValidationError
169
+ | ConnectionError
170
+ | RequestAbortedError
171
+ | RequestTimeoutError
172
+ | InvalidRequestError
173
+ | UnexpectedClientError
174
+ | SDKValidationError
175
+ >(
176
+ M.json(200, models.ResumeSubscriptionResponse$inboundSchema),
177
+ M.jsonErr([400, 404], models.ErrorsErrorResponse$inboundSchema),
178
+ M.jsonErr(500, models.ErrorsErrorResponse$inboundSchema),
179
+ M.fail("4XX"),
180
+ M.fail("5XX"),
181
+ )(response, req, { extraFields: responseFields });
182
+ if (!result.ok) {
183
+ return [result, { status: "complete", request: req, response }];
184
+ }
185
+
186
+ return [result, { status: "complete", request: req, response }];
187
+ }
package/src/lib/config.ts CHANGED
@@ -69,7 +69,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
69
69
  export const SDK_METADATA = {
70
70
  language: "typescript",
71
71
  openapiDocVersion: "1.0",
72
- sdkVersion: "2.1.38",
72
+ sdkVersion: "2.1.39",
73
73
  genVersion: "2.948.4",
74
- userAgent: "speakeasy-sdk/typescript 2.1.38 2.948.4 1.0 @flexprice/sdk",
74
+ userAgent: "speakeasy-sdk/typescript 2.1.39 2.948.4 1.0 @flexprice/sdk",
75
75
  } as const;
@@ -459,6 +459,9 @@ export * from "./override-line-item-request.js";
459
459
  export * from "./pagination-response.js";
460
460
  export * from "./pause-mode.js";
461
461
  export * from "./pause-status.js";
462
+ export * from "./pause-subscription-op.js";
463
+ export * from "./pause-subscription-request.js";
464
+ export * from "./pause-subscription-response.js";
462
465
  export * from "./pay-invoice-params.js";
463
466
  export * from "./payment-action-type.js";
464
467
  export * from "./payment-action.js";
@@ -524,6 +527,9 @@ export * from "./reporting-unit.js";
524
527
  export * from "./reset-usage.js";
525
528
  export * from "./response-validation-error.js";
526
529
  export * from "./resume-mode.js";
530
+ export * from "./resume-subscription-op.js";
531
+ export * from "./resume-subscription-request.js";
532
+ export * from "./resume-subscription-response.js";
527
533
  export * from "./retry-refund-op.js";
528
534
  export * from "./revenue-allocation-policy.js";
529
535
  export * from "./revenue-analytics-request.js";
@@ -592,6 +598,7 @@ export * from "./subscription-line-item-response.js";
592
598
  export * from "./subscription-modification-action.js";
593
599
  export * from "./subscription-modify-response.js";
594
600
  export * from "./subscription-modify-type.js";
601
+ export * from "./subscription-pause-response.js";
595
602
  export * from "./subscription-phase-create-request.js";
596
603
  export * from "./subscription-phase-response.js";
597
604
  export * from "./subscription-price-create-request.js";
@@ -15,6 +15,8 @@ export const InvoiceBillingReason = {
15
15
  Manual: "MANUAL",
16
16
  AutoInvoiceThreshold: "AUTO_INVOICE_THRESHOLD",
17
17
  WalletAutoTopup: "WALLET_AUTO_TOPUP",
18
+ SubscriptionPaused: "SUBSCRIPTION_PAUSED",
19
+ SubscriptionResume: "SUBSCRIPTION_RESUME",
18
20
  } as const;
19
21
  export type InvoiceBillingReason = ClosedEnum<typeof InvoiceBillingReason>;
20
22
 
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import {
7
+ PauseSubscriptionRequest,
8
+ PauseSubscriptionRequest$Outbound,
9
+ PauseSubscriptionRequest$outboundSchema,
10
+ } from "./pause-subscription-request.js";
11
+
12
+ export type PauseSubscriptionRequestRequest = {
13
+ /**
14
+ * Subscription ID
15
+ */
16
+ id: string;
17
+ /**
18
+ * Pause subscription request
19
+ */
20
+ body: PauseSubscriptionRequest;
21
+ };
22
+
23
+ /** @internal */
24
+ export type PauseSubscriptionRequestRequest$Outbound = {
25
+ id: string;
26
+ body: PauseSubscriptionRequest$Outbound;
27
+ };
28
+
29
+ /** @internal */
30
+ export const PauseSubscriptionRequestRequest$outboundSchema: z.ZodMiniType<
31
+ PauseSubscriptionRequestRequest$Outbound,
32
+ PauseSubscriptionRequestRequest
33
+ > = z.object({
34
+ id: z.string(),
35
+ body: PauseSubscriptionRequest$outboundSchema,
36
+ });
37
+
38
+ export function pauseSubscriptionRequestRequestToJSON(
39
+ pauseSubscriptionRequestRequest: PauseSubscriptionRequestRequest,
40
+ ): string {
41
+ return JSON.stringify(
42
+ PauseSubscriptionRequestRequest$outboundSchema.parse(
43
+ pauseSubscriptionRequestRequest,
44
+ ),
45
+ );
46
+ }
@@ -0,0 +1,64 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import {
8
+ ProrationBehavior,
9
+ ProrationBehavior$outboundSchema,
10
+ } from "./proration-behavior.js";
11
+
12
+ /**
13
+ * Pauses an active subscription now. Usage and arrear fixed charges up to the pause are billed on a closing invoice.
14
+ */
15
+ export type PauseSubscriptionRequest = {
16
+ /**
17
+ * Metadata stored on the pause
18
+ *
19
+ * @remarks
20
+ * @Example {"requested_by": "customer", "channel": "support_ticket"}
21
+ */
22
+ metadata?: { [k: string]: string } | undefined;
23
+ prorationBehavior?: ProrationBehavior | undefined;
24
+ /**
25
+ * Reason for pausing the subscription
26
+ *
27
+ * @remarks
28
+ * @Description Optional reason for the pause. Maximum 255 characters
29
+ * @Example "Customer requested temporary suspension"
30
+ */
31
+ reason?: string | undefined;
32
+ };
33
+
34
+ /** @internal */
35
+ export type PauseSubscriptionRequest$Outbound = {
36
+ metadata?: { [k: string]: string } | undefined;
37
+ proration_behavior?: string | undefined;
38
+ reason?: string | undefined;
39
+ };
40
+
41
+ /** @internal */
42
+ export const PauseSubscriptionRequest$outboundSchema: z.ZodMiniType<
43
+ PauseSubscriptionRequest$Outbound,
44
+ PauseSubscriptionRequest
45
+ > = z.pipe(
46
+ z.object({
47
+ metadata: z.optional(z.record(z.string(), z.string())),
48
+ prorationBehavior: z.optional(ProrationBehavior$outboundSchema),
49
+ reason: z.optional(z.string()),
50
+ }),
51
+ z.transform((v) => {
52
+ return remap$(v, {
53
+ prorationBehavior: "proration_behavior",
54
+ });
55
+ }),
56
+ );
57
+
58
+ export function pauseSubscriptionRequestToJSON(
59
+ pauseSubscriptionRequest: PauseSubscriptionRequest,
60
+ ): string {
61
+ return JSON.stringify(
62
+ PauseSubscriptionRequest$outboundSchema.parse(pauseSubscriptionRequest),
63
+ );
64
+ }
@@ -0,0 +1,47 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { safeParse } from "../../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../../types/fp.js";
8
+ import * as types from "../../types/primitives.js";
9
+ import { SDKValidationError } from "./sdk-validation-error.js";
10
+ import {
11
+ SubscriptionPauseResponse,
12
+ SubscriptionPauseResponse$inboundSchema,
13
+ } from "./subscription-pause-response.js";
14
+ import {
15
+ SubscriptionResponse,
16
+ SubscriptionResponse$inboundSchema,
17
+ } from "./subscription-response.js";
18
+
19
+ /**
20
+ * The paused subscription and its pause
21
+ */
22
+ export type PauseSubscriptionResponse = {
23
+ /**
24
+ * Response object containing subscription pause information
25
+ */
26
+ pause?: SubscriptionPauseResponse | undefined;
27
+ subscription?: SubscriptionResponse | undefined;
28
+ };
29
+
30
+ /** @internal */
31
+ export const PauseSubscriptionResponse$inboundSchema: z.ZodMiniType<
32
+ PauseSubscriptionResponse,
33
+ unknown
34
+ > = z.object({
35
+ pause: types.optional(SubscriptionPauseResponse$inboundSchema),
36
+ subscription: types.optional(SubscriptionResponse$inboundSchema),
37
+ });
38
+
39
+ export function pauseSubscriptionResponseFromJSON(
40
+ jsonString: string,
41
+ ): SafeParseResult<PauseSubscriptionResponse, SDKValidationError> {
42
+ return safeParse(
43
+ jsonString,
44
+ (x) => PauseSubscriptionResponse$inboundSchema.parse(JSON.parse(x)),
45
+ `Failed to parse 'PauseSubscriptionResponse' from JSON`,
46
+ );
47
+ }
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import {
7
+ ResumeSubscriptionRequest,
8
+ ResumeSubscriptionRequest$Outbound,
9
+ ResumeSubscriptionRequest$outboundSchema,
10
+ } from "./resume-subscription-request.js";
11
+
12
+ export type ResumeSubscriptionRequestRequest = {
13
+ /**
14
+ * Subscription ID
15
+ */
16
+ id: string;
17
+ /**
18
+ * Resume subscription request
19
+ */
20
+ body: ResumeSubscriptionRequest;
21
+ };
22
+
23
+ /** @internal */
24
+ export type ResumeSubscriptionRequestRequest$Outbound = {
25
+ id: string;
26
+ body: ResumeSubscriptionRequest$Outbound;
27
+ };
28
+
29
+ /** @internal */
30
+ export const ResumeSubscriptionRequestRequest$outboundSchema: z.ZodMiniType<
31
+ ResumeSubscriptionRequestRequest$Outbound,
32
+ ResumeSubscriptionRequestRequest
33
+ > = z.object({
34
+ id: z.string(),
35
+ body: ResumeSubscriptionRequest$outboundSchema,
36
+ });
37
+
38
+ export function resumeSubscriptionRequestRequestToJSON(
39
+ resumeSubscriptionRequestRequest: ResumeSubscriptionRequestRequest,
40
+ ): string {
41
+ return JSON.stringify(
42
+ ResumeSubscriptionRequestRequest$outboundSchema.parse(
43
+ resumeSubscriptionRequestRequest,
44
+ ),
45
+ );
46
+ }
@@ -0,0 +1,54 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import {
8
+ ProrationBehavior,
9
+ ProrationBehavior$outboundSchema,
10
+ } from "./proration-behavior.js";
11
+
12
+ /**
13
+ * Resumes a paused subscription now. The billing anchor is kept, so the first period runs from the resume time to the next billing date.
14
+ */
15
+ export type ResumeSubscriptionRequest = {
16
+ /**
17
+ * Metadata merged into the pause
18
+ *
19
+ * @remarks
20
+ * @Example {"resumed_by": "admin"}
21
+ */
22
+ metadata?: { [k: string]: string } | undefined;
23
+ prorationBehavior?: ProrationBehavior | undefined;
24
+ };
25
+
26
+ /** @internal */
27
+ export type ResumeSubscriptionRequest$Outbound = {
28
+ metadata?: { [k: string]: string } | undefined;
29
+ proration_behavior?: string | undefined;
30
+ };
31
+
32
+ /** @internal */
33
+ export const ResumeSubscriptionRequest$outboundSchema: z.ZodMiniType<
34
+ ResumeSubscriptionRequest$Outbound,
35
+ ResumeSubscriptionRequest
36
+ > = z.pipe(
37
+ z.object({
38
+ metadata: z.optional(z.record(z.string(), z.string())),
39
+ prorationBehavior: z.optional(ProrationBehavior$outboundSchema),
40
+ }),
41
+ z.transform((v) => {
42
+ return remap$(v, {
43
+ prorationBehavior: "proration_behavior",
44
+ });
45
+ }),
46
+ );
47
+
48
+ export function resumeSubscriptionRequestToJSON(
49
+ resumeSubscriptionRequest: ResumeSubscriptionRequest,
50
+ ): string {
51
+ return JSON.stringify(
52
+ ResumeSubscriptionRequest$outboundSchema.parse(resumeSubscriptionRequest),
53
+ );
54
+ }