@flexprice/sdk 2.1.2 → 2.1.3

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 (144) hide show
  1. package/docs/sdk/models/changed-invoice-action.md +19 -0
  2. package/docs/sdk/models/changed-invoice-status.md +19 -0
  3. package/docs/sdk/models/changed-invoice.md +19 -6
  4. package/docs/sdk/models/changed-line-item-action.md +19 -0
  5. package/docs/sdk/models/changed-line-item.md +1 -1
  6. package/docs/sdk/models/changed-resources.md +16 -1
  7. package/docs/sdk/models/changed-subscription-action.md +19 -0
  8. package/docs/sdk/models/changed-subscription.md +5 -5
  9. package/docs/sdk/models/clone-environment-request-request.md +19 -0
  10. package/docs/sdk/models/clone-environment-request.md +17 -0
  11. package/docs/sdk/models/clone-feature-request-request.md +19 -0
  12. package/docs/sdk/models/clone-feature-request.md +18 -0
  13. package/docs/sdk/models/{post-plans-id-clone-request.md → clone-plan-request-request.md} +3 -3
  14. package/docs/sdk/models/create-subscription-request.md +38 -37
  15. package/docs/sdk/models/environment-type.md +15 -0
  16. package/docs/sdk/models/subscription-modify-response.md +16 -0
  17. package/docs/sdk/models/window-size.md +2 -2
  18. package/docs/sdks/environments/README.md +79 -0
  19. package/docs/sdks/features/README.md +73 -0
  20. package/docs/sdks/plans/README.md +7 -7
  21. package/esm/funcs/environments-clone-environment.d.ts +17 -0
  22. package/esm/funcs/environments-clone-environment.d.ts.map +1 -0
  23. package/esm/funcs/environments-clone-environment.js +92 -0
  24. package/esm/funcs/environments-clone-environment.js.map +1 -0
  25. package/esm/funcs/features-clone-feature.d.ts +17 -0
  26. package/esm/funcs/features-clone-feature.d.ts.map +1 -0
  27. package/esm/funcs/features-clone-feature.js +92 -0
  28. package/esm/funcs/features-clone-feature.js.map +1 -0
  29. package/esm/funcs/{plans-post-plans-id-clone.d.ts → plans-clone-plan.d.ts} +2 -2
  30. package/esm/funcs/plans-clone-plan.d.ts.map +1 -0
  31. package/esm/funcs/{plans-post-plans-id-clone.js → plans-clone-plan.js} +4 -4
  32. package/esm/funcs/plans-clone-plan.js.map +1 -0
  33. package/esm/lib/config.d.ts +3 -3
  34. package/esm/lib/config.js +3 -3
  35. package/esm/sdk/environments.d.ts +12 -0
  36. package/esm/sdk/environments.d.ts.map +1 -0
  37. package/esm/sdk/environments.js +18 -0
  38. package/esm/sdk/environments.js.map +1 -0
  39. package/esm/sdk/features.d.ts +7 -0
  40. package/esm/sdk/features.d.ts.map +1 -1
  41. package/esm/sdk/features.js +10 -0
  42. package/esm/sdk/features.js.map +1 -1
  43. package/esm/sdk/models/changed-invoice-action.d.ts +16 -0
  44. package/esm/sdk/models/changed-invoice-action.d.ts.map +1 -0
  45. package/esm/sdk/models/changed-invoice-action.js +14 -0
  46. package/esm/sdk/models/changed-invoice-action.js.map +1 -0
  47. package/esm/sdk/models/changed-invoice-status.d.ts +16 -0
  48. package/esm/sdk/models/changed-invoice-status.d.ts.map +1 -0
  49. package/esm/sdk/models/changed-invoice-status.js +14 -0
  50. package/esm/sdk/models/changed-invoice-status.js.map +1 -0
  51. package/esm/sdk/models/changed-invoice.d.ts +12 -3
  52. package/esm/sdk/models/changed-invoice.d.ts.map +1 -1
  53. package/esm/sdk/models/changed-invoice.js +15 -4
  54. package/esm/sdk/models/changed-invoice.js.map +1 -1
  55. package/esm/sdk/models/changed-line-item-action.d.ts +17 -0
  56. package/esm/sdk/models/changed-line-item-action.d.ts.map +1 -0
  57. package/esm/sdk/models/changed-line-item-action.js +15 -0
  58. package/esm/sdk/models/changed-line-item-action.js.map +1 -0
  59. package/esm/sdk/models/changed-line-item.d.ts +3 -2
  60. package/esm/sdk/models/changed-line-item.d.ts.map +1 -1
  61. package/esm/sdk/models/changed-line-item.js +2 -1
  62. package/esm/sdk/models/changed-line-item.js.map +1 -1
  63. package/esm/sdk/models/changed-subscription-action.d.ts +16 -0
  64. package/esm/sdk/models/changed-subscription-action.d.ts.map +1 -0
  65. package/esm/sdk/models/changed-subscription-action.js +14 -0
  66. package/esm/sdk/models/changed-subscription-action.js.map +1 -0
  67. package/esm/sdk/models/changed-subscription.d.ts +3 -2
  68. package/esm/sdk/models/changed-subscription.d.ts.map +1 -1
  69. package/esm/sdk/models/changed-subscription.js +2 -1
  70. package/esm/sdk/models/changed-subscription.js.map +1 -1
  71. package/esm/sdk/models/clone-environment-op.d.ts +21 -0
  72. package/esm/sdk/models/clone-environment-op.d.ts.map +1 -0
  73. package/esm/sdk/models/clone-environment-op.js +14 -0
  74. package/esm/sdk/models/clone-environment-op.js.map +1 -0
  75. package/esm/sdk/models/clone-environment-request.d.ts +26 -0
  76. package/esm/sdk/models/clone-environment-request.d.ts.map +1 -0
  77. package/esm/sdk/models/clone-environment-request.js +20 -0
  78. package/esm/sdk/models/clone-environment-request.js.map +1 -0
  79. package/esm/sdk/models/clone-feature-op.d.ts +21 -0
  80. package/esm/sdk/models/clone-feature-op.d.ts.map +1 -0
  81. package/esm/sdk/models/clone-feature-op.js +14 -0
  82. package/esm/sdk/models/clone-feature-op.js.map +1 -0
  83. package/esm/sdk/models/clone-feature-request.d.ts +31 -0
  84. package/esm/sdk/models/clone-feature-request.d.ts.map +1 -0
  85. package/esm/sdk/models/clone-feature-request.js +20 -0
  86. package/esm/sdk/models/clone-feature-request.js.map +1 -0
  87. package/esm/sdk/models/clone-plan-op.d.ts +21 -0
  88. package/esm/sdk/models/clone-plan-op.d.ts.map +1 -0
  89. package/esm/sdk/models/{post-plans-id-clone-op.js → clone-plan-op.js} +4 -4
  90. package/esm/sdk/models/clone-plan-op.js.map +1 -0
  91. package/esm/sdk/models/create-subscription-request.d.ts +10 -0
  92. package/esm/sdk/models/create-subscription-request.d.ts.map +1 -1
  93. package/esm/sdk/models/create-subscription-request.js +2 -0
  94. package/esm/sdk/models/create-subscription-request.js.map +1 -1
  95. package/esm/sdk/models/environment-type.d.ts +10 -0
  96. package/esm/sdk/models/environment-type.d.ts.map +1 -0
  97. package/esm/sdk/models/environment-type.js +11 -0
  98. package/esm/sdk/models/environment-type.js.map +1 -0
  99. package/esm/sdk/models/index.d.ts +10 -1
  100. package/esm/sdk/models/index.d.ts.map +1 -1
  101. package/esm/sdk/models/index.js +10 -1
  102. package/esm/sdk/models/index.js.map +1 -1
  103. package/esm/sdk/models/window-size.d.ts +1 -1
  104. package/esm/sdk/models/window-size.js +1 -1
  105. package/esm/sdk/models/window-size.js.map +1 -1
  106. package/esm/sdk/plans.d.ts +1 -1
  107. package/esm/sdk/plans.d.ts.map +1 -1
  108. package/esm/sdk/plans.js +3 -3
  109. package/esm/sdk/plans.js.map +1 -1
  110. package/esm/sdk/sdk.d.ts +3 -0
  111. package/esm/sdk/sdk.d.ts.map +1 -1
  112. package/esm/sdk/sdk.js +5 -0
  113. package/esm/sdk/sdk.js.map +1 -1
  114. package/jsr.json +1 -1
  115. package/package.json +3 -3
  116. package/src/funcs/environments-clone-environment.ts +185 -0
  117. package/src/funcs/features-clone-feature.ts +184 -0
  118. package/src/funcs/{plans-post-plans-id-clone.ts → plans-clone-plan.ts} +4 -4
  119. package/src/lib/config.ts +3 -3
  120. package/src/sdk/environments.ts +29 -0
  121. package/src/sdk/features.ts +20 -0
  122. package/src/sdk/models/changed-invoice-action.ts +25 -0
  123. package/src/sdk/models/changed-invoice-status.ts +25 -0
  124. package/src/sdk/models/changed-invoice.ts +39 -8
  125. package/src/sdk/models/changed-line-item-action.ts +26 -0
  126. package/src/sdk/models/changed-line-item.ts +7 -3
  127. package/src/sdk/models/changed-subscription-action.ts +27 -0
  128. package/src/sdk/models/changed-subscription.ts +7 -3
  129. package/src/sdk/models/clone-environment-op.ts +46 -0
  130. package/src/sdk/models/clone-environment-request.ts +57 -0
  131. package/src/sdk/models/clone-feature-op.ts +44 -0
  132. package/src/sdk/models/clone-feature-request.ts +56 -0
  133. package/src/sdk/models/{post-plans-id-clone-op.ts → clone-plan-op.ts} +8 -8
  134. package/src/sdk/models/create-subscription-request.ts +14 -0
  135. package/src/sdk/models/environment-type.ts +17 -0
  136. package/src/sdk/models/index.ts +10 -1
  137. package/src/sdk/models/window-size.ts +1 -1
  138. package/src/sdk/plans.ts +3 -3
  139. package/src/sdk/sdk.ts +6 -0
  140. package/esm/funcs/plans-post-plans-id-clone.d.ts.map +0 -1
  141. package/esm/funcs/plans-post-plans-id-clone.js.map +0 -1
  142. package/esm/sdk/models/post-plans-id-clone-op.d.ts +0 -21
  143. package/esm/sdk/models/post-plans-id-clone-op.d.ts.map +0 -1
  144. package/esm/sdk/models/post-plans-id-clone-op.js.map +0 -1
@@ -0,0 +1,185 @@
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 * as M from "../lib/matchers.js";
9
+ import { compactMap } from "../lib/primitives.js";
10
+ import { safeParse } from "../lib/schemas.js";
11
+ import { RequestOptions } from "../lib/sdks.js";
12
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
13
+ import { pathToFunc } from "../lib/url.js";
14
+ import { FlexPriceError } from "../sdk/models/flex-price-error.js";
15
+ import {
16
+ ConnectionError,
17
+ InvalidRequestError,
18
+ RequestAbortedError,
19
+ RequestTimeoutError,
20
+ UnexpectedClientError,
21
+ } from "../sdk/models/http-client-errors.js";
22
+ import * as models from "../sdk/models/index.js";
23
+ import { ResponseValidationError } from "../sdk/models/response-validation-error.js";
24
+ import { SDKValidationError } from "../sdk/models/sdk-validation-error.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Clone an environment
30
+ *
31
+ * @remarks
32
+ * Clone all published features and plans from the source environment into a target environment. If target_environment_id is provided, entities are cloned into that existing environment. Otherwise a new environment is created from name and type first.
33
+ */
34
+ export function environmentsCloneEnvironment(
35
+ client: FlexpriceCore,
36
+ id: string,
37
+ body: models.CloneEnvironmentRequest,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ models.ModelsTemporalWorkflowResult,
42
+ | models.ErrorsErrorResponse
43
+ | FlexPriceError
44
+ | ResponseValidationError
45
+ | ConnectionError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | InvalidRequestError
49
+ | UnexpectedClientError
50
+ | SDKValidationError
51
+ >
52
+ > {
53
+ return new APIPromise($do(
54
+ client,
55
+ id,
56
+ body,
57
+ options,
58
+ ));
59
+ }
60
+
61
+ async function $do(
62
+ client: FlexpriceCore,
63
+ id: string,
64
+ body: models.CloneEnvironmentRequest,
65
+ options?: RequestOptions,
66
+ ): Promise<
67
+ [
68
+ Result<
69
+ models.ModelsTemporalWorkflowResult,
70
+ | models.ErrorsErrorResponse
71
+ | FlexPriceError
72
+ | ResponseValidationError
73
+ | ConnectionError
74
+ | RequestAbortedError
75
+ | RequestTimeoutError
76
+ | InvalidRequestError
77
+ | UnexpectedClientError
78
+ | SDKValidationError
79
+ >,
80
+ APICall,
81
+ ]
82
+ > {
83
+ const input: models.CloneEnvironmentRequestRequest = {
84
+ id: id,
85
+ body: body,
86
+ };
87
+
88
+ const parsed = safeParse(
89
+ input,
90
+ (value) =>
91
+ z.parse(models.CloneEnvironmentRequestRequest$outboundSchema, value),
92
+ "Input validation failed",
93
+ );
94
+ if (!parsed.ok) {
95
+ return [parsed, { status: "invalid" }];
96
+ }
97
+ const payload = parsed.value;
98
+ const body$ = encodeJSON("body", payload.body, { explode: true });
99
+
100
+ const pathParams = {
101
+ id: encodeSimple("id", payload.id, {
102
+ explode: false,
103
+ charEncoding: "percent",
104
+ }),
105
+ };
106
+ const path = pathToFunc("/environments/{id}/clone")(pathParams);
107
+
108
+ const headers = new Headers(compactMap({
109
+ "Content-Type": "application/json",
110
+ Accept: "application/json",
111
+ }));
112
+
113
+ const secConfig = await extractSecurity(client._options.apiKeyAuth);
114
+ const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
115
+ const requestSecurity = resolveGlobalSecurity(securityInput);
116
+
117
+ const context = {
118
+ options: client._options,
119
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
120
+ operationID: "cloneEnvironment",
121
+ oAuth2Scopes: null,
122
+
123
+ resolvedSecurity: requestSecurity,
124
+
125
+ securitySource: client._options.apiKeyAuth,
126
+ retryConfig: options?.retries
127
+ || client._options.retryConfig
128
+ || { strategy: "none" },
129
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
130
+ };
131
+
132
+ const requestRes = client._createRequest(context, {
133
+ security: requestSecurity,
134
+ method: "POST",
135
+ baseURL: options?.serverURL,
136
+ path: path,
137
+ headers: headers,
138
+ body: body$,
139
+ userAgent: client._options.userAgent,
140
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
141
+ }, options);
142
+ if (!requestRes.ok) {
143
+ return [requestRes, { status: "invalid" }];
144
+ }
145
+ const req = requestRes.value;
146
+
147
+ const doResult = await client._do(req, {
148
+ context,
149
+ errorCodes: ["400", "404", "4XX", "500", "5XX"],
150
+ retryConfig: context.retryConfig,
151
+ retryCodes: context.retryCodes,
152
+ });
153
+ if (!doResult.ok) {
154
+ return [doResult, { status: "request-error", request: req }];
155
+ }
156
+ const response = doResult.value;
157
+
158
+ const responseFields = {
159
+ HttpMeta: { Response: response, Request: req },
160
+ };
161
+
162
+ const [result] = await M.match<
163
+ models.ModelsTemporalWorkflowResult,
164
+ | models.ErrorsErrorResponse
165
+ | FlexPriceError
166
+ | ResponseValidationError
167
+ | ConnectionError
168
+ | RequestAbortedError
169
+ | RequestTimeoutError
170
+ | InvalidRequestError
171
+ | UnexpectedClientError
172
+ | SDKValidationError
173
+ >(
174
+ M.json(202, models.ModelsTemporalWorkflowResult$inboundSchema),
175
+ M.jsonErr([400, 404], models.ErrorsErrorResponse$inboundSchema),
176
+ M.jsonErr(500, models.ErrorsErrorResponse$inboundSchema),
177
+ M.fail("4XX"),
178
+ M.fail("5XX"),
179
+ )(response, req, { extraFields: responseFields });
180
+ if (!result.ok) {
181
+ return [result, { status: "complete", request: req, response }];
182
+ }
183
+
184
+ return [result, { status: "complete", request: req, response }];
185
+ }
@@ -0,0 +1,184 @@
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 * as M from "../lib/matchers.js";
9
+ import { compactMap } from "../lib/primitives.js";
10
+ import { safeParse } from "../lib/schemas.js";
11
+ import { RequestOptions } from "../lib/sdks.js";
12
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
13
+ import { pathToFunc } from "../lib/url.js";
14
+ import { FlexPriceError } from "../sdk/models/flex-price-error.js";
15
+ import {
16
+ ConnectionError,
17
+ InvalidRequestError,
18
+ RequestAbortedError,
19
+ RequestTimeoutError,
20
+ UnexpectedClientError,
21
+ } from "../sdk/models/http-client-errors.js";
22
+ import * as models from "../sdk/models/index.js";
23
+ import { ResponseValidationError } from "../sdk/models/response-validation-error.js";
24
+ import { SDKValidationError } from "../sdk/models/sdk-validation-error.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Clone a feature
30
+ *
31
+ * @remarks
32
+ * Clone an existing feature
33
+ */
34
+ export function featuresCloneFeature(
35
+ client: FlexpriceCore,
36
+ id: string,
37
+ body: models.CloneFeatureRequest,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ models.FeatureResponse,
42
+ | models.ErrorsErrorResponse
43
+ | FlexPriceError
44
+ | ResponseValidationError
45
+ | ConnectionError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | InvalidRequestError
49
+ | UnexpectedClientError
50
+ | SDKValidationError
51
+ >
52
+ > {
53
+ return new APIPromise($do(
54
+ client,
55
+ id,
56
+ body,
57
+ options,
58
+ ));
59
+ }
60
+
61
+ async function $do(
62
+ client: FlexpriceCore,
63
+ id: string,
64
+ body: models.CloneFeatureRequest,
65
+ options?: RequestOptions,
66
+ ): Promise<
67
+ [
68
+ Result<
69
+ models.FeatureResponse,
70
+ | models.ErrorsErrorResponse
71
+ | FlexPriceError
72
+ | ResponseValidationError
73
+ | ConnectionError
74
+ | RequestAbortedError
75
+ | RequestTimeoutError
76
+ | InvalidRequestError
77
+ | UnexpectedClientError
78
+ | SDKValidationError
79
+ >,
80
+ APICall,
81
+ ]
82
+ > {
83
+ const input: models.CloneFeatureRequestRequest = {
84
+ id: id,
85
+ body: body,
86
+ };
87
+
88
+ const parsed = safeParse(
89
+ input,
90
+ (value) => z.parse(models.CloneFeatureRequestRequest$outboundSchema, value),
91
+ "Input validation failed",
92
+ );
93
+ if (!parsed.ok) {
94
+ return [parsed, { status: "invalid" }];
95
+ }
96
+ const payload = parsed.value;
97
+ const body$ = encodeJSON("body", payload.body, { explode: true });
98
+
99
+ const pathParams = {
100
+ id: encodeSimple("id", payload.id, {
101
+ explode: false,
102
+ charEncoding: "percent",
103
+ }),
104
+ };
105
+ const path = pathToFunc("/features/{id}/clone")(pathParams);
106
+
107
+ const headers = new Headers(compactMap({
108
+ "Content-Type": "application/json",
109
+ Accept: "application/json",
110
+ }));
111
+
112
+ const secConfig = await extractSecurity(client._options.apiKeyAuth);
113
+ const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
114
+ const requestSecurity = resolveGlobalSecurity(securityInput);
115
+
116
+ const context = {
117
+ options: client._options,
118
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
119
+ operationID: "cloneFeature",
120
+ oAuth2Scopes: null,
121
+
122
+ resolvedSecurity: requestSecurity,
123
+
124
+ securitySource: client._options.apiKeyAuth,
125
+ retryConfig: options?.retries
126
+ || client._options.retryConfig
127
+ || { strategy: "none" },
128
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
129
+ };
130
+
131
+ const requestRes = client._createRequest(context, {
132
+ security: requestSecurity,
133
+ method: "POST",
134
+ baseURL: options?.serverURL,
135
+ path: path,
136
+ headers: headers,
137
+ body: body$,
138
+ userAgent: client._options.userAgent,
139
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
140
+ }, options);
141
+ if (!requestRes.ok) {
142
+ return [requestRes, { status: "invalid" }];
143
+ }
144
+ const req = requestRes.value;
145
+
146
+ const doResult = await client._do(req, {
147
+ context,
148
+ errorCodes: ["400", "404", "409", "4XX", "500", "5XX"],
149
+ retryConfig: context.retryConfig,
150
+ retryCodes: context.retryCodes,
151
+ });
152
+ if (!doResult.ok) {
153
+ return [doResult, { status: "request-error", request: req }];
154
+ }
155
+ const response = doResult.value;
156
+
157
+ const responseFields = {
158
+ HttpMeta: { Response: response, Request: req },
159
+ };
160
+
161
+ const [result] = await M.match<
162
+ models.FeatureResponse,
163
+ | models.ErrorsErrorResponse
164
+ | FlexPriceError
165
+ | ResponseValidationError
166
+ | ConnectionError
167
+ | RequestAbortedError
168
+ | RequestTimeoutError
169
+ | InvalidRequestError
170
+ | UnexpectedClientError
171
+ | SDKValidationError
172
+ >(
173
+ M.json(201, models.FeatureResponse$inboundSchema),
174
+ M.jsonErr([400, 404, 409], models.ErrorsErrorResponse$inboundSchema),
175
+ M.jsonErr(500, models.ErrorsErrorResponse$inboundSchema),
176
+ M.fail("4XX"),
177
+ M.fail("5XX"),
178
+ )(response, req, { extraFields: responseFields });
179
+ if (!result.ok) {
180
+ return [result, { status: "complete", request: req, response }];
181
+ }
182
+
183
+ return [result, { status: "complete", request: req, response }];
184
+ }
@@ -31,7 +31,7 @@ import { Result } from "../types/fp.js";
31
31
  * @remarks
32
32
  * Clone an existing plan, copying its active prices, published entitlements, and published credit grants
33
33
  */
34
- export function plansPostPlansIdClone(
34
+ export function plansClonePlan(
35
35
  client: FlexpriceCore,
36
36
  id: string,
37
37
  body: models.ClonePlanRequest,
@@ -80,14 +80,14 @@ async function $do(
80
80
  APICall,
81
81
  ]
82
82
  > {
83
- const input: models.PostPlansIdCloneRequest = {
83
+ const input: models.ClonePlanRequestRequest = {
84
84
  id: id,
85
85
  body: body,
86
86
  };
87
87
 
88
88
  const parsed = safeParse(
89
89
  input,
90
- (value) => z.parse(models.PostPlansIdCloneRequest$outboundSchema, value),
90
+ (value) => z.parse(models.ClonePlanRequestRequest$outboundSchema, value),
91
91
  "Input validation failed",
92
92
  );
93
93
  if (!parsed.ok) {
@@ -116,7 +116,7 @@ async function $do(
116
116
  const context = {
117
117
  options: client._options,
118
118
  baseURL: options?.serverURL ?? client._baseURL ?? "",
119
- operationID: "post_/plans/{id}/clone",
119
+ operationID: "clonePlan",
120
120
  oAuth2Scopes: null,
121
121
 
122
122
  resolvedSecurity: requestSecurity,
package/src/lib/config.ts CHANGED
@@ -65,7 +65,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
65
65
  export const SDK_METADATA = {
66
66
  language: "typescript",
67
67
  openapiDocVersion: "1.0",
68
- sdkVersion: "2.1.2",
69
- genVersion: "2.879.11",
70
- userAgent: "speakeasy-sdk/typescript 2.1.2 2.879.11 1.0 @flexprice/sdk",
68
+ sdkVersion: "2.1.3",
69
+ genVersion: "2.879.13",
70
+ userAgent: "speakeasy-sdk/typescript 2.1.3 2.879.13 1.0 @flexprice/sdk",
71
71
  } as const;
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { environmentsCloneEnvironment } from "../funcs/environments-clone-environment.js";
6
+ import { ClientSDK, RequestOptions } from "../lib/sdks.js";
7
+ import { unwrapAsync } from "../types/fp.js";
8
+ import * as models from "./models/index.js";
9
+
10
+ export class Environments extends ClientSDK {
11
+ /**
12
+ * Clone an environment
13
+ *
14
+ * @remarks
15
+ * Clone all published features and plans from the source environment into a target environment. If target_environment_id is provided, entities are cloned into that existing environment. Otherwise a new environment is created from name and type first.
16
+ */
17
+ async cloneEnvironment(
18
+ id: string,
19
+ body: models.CloneEnvironmentRequest,
20
+ options?: RequestOptions,
21
+ ): Promise<models.ModelsTemporalWorkflowResult> {
22
+ return unwrapAsync(environmentsCloneEnvironment(
23
+ this,
24
+ id,
25
+ body,
26
+ options,
27
+ ));
28
+ }
29
+ }
@@ -2,6 +2,7 @@
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
3
  */
4
4
 
5
+ import { featuresCloneFeature } from "../funcs/features-clone-feature.js";
5
6
  import { featuresCreateFeature } from "../funcs/features-create-feature.js";
6
7
  import { featuresDeleteFeature } from "../funcs/features-delete-feature.js";
7
8
  import { featuresQueryFeature } from "../funcs/features-query-feature.js";
@@ -80,4 +81,23 @@ export class Features extends ClientSDK {
80
81
  options,
81
82
  ));
82
83
  }
84
+
85
+ /**
86
+ * Clone a feature
87
+ *
88
+ * @remarks
89
+ * Clone an existing feature
90
+ */
91
+ async cloneFeature(
92
+ id: string,
93
+ body: models.CloneFeatureRequest,
94
+ options?: RequestOptions,
95
+ ): Promise<models.FeatureResponse> {
96
+ return unwrapAsync(featuresCloneFeature(
97
+ this,
98
+ id,
99
+ body,
100
+ options,
101
+ ));
102
+ }
83
103
  }
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import * as openEnums from "../../types/enums.js";
7
+ import { OpenEnum } from "../../types/enums.js";
8
+
9
+ /**
10
+ * created (proration invoice) | wallet_credit (downgrade credit)
11
+ */
12
+ export const ChangedInvoiceAction = {
13
+ Created: "created",
14
+ WalletCredit: "wallet_credit",
15
+ } as const;
16
+ /**
17
+ * created (proration invoice) | wallet_credit (downgrade credit)
18
+ */
19
+ export type ChangedInvoiceAction = OpenEnum<typeof ChangedInvoiceAction>;
20
+
21
+ /** @internal */
22
+ export const ChangedInvoiceAction$inboundSchema: z.ZodMiniType<
23
+ ChangedInvoiceAction,
24
+ unknown
25
+ > = openEnums.inboundSchema(ChangedInvoiceAction);
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import * as openEnums from "../../types/enums.js";
7
+ import { OpenEnum } from "../../types/enums.js";
8
+
9
+ /**
10
+ * preview | issued | INITIATED | PENDING | PROCESSING | SUCCEEDED | OVERPAID | FAILED | REFUNDED | PARTIALLY_REFUNDED
11
+ */
12
+ export const ChangedInvoiceStatus = {
13
+ Preview: "preview",
14
+ Issued: "issued",
15
+ } as const;
16
+ /**
17
+ * preview | issued | INITIATED | PENDING | PROCESSING | SUCCEEDED | OVERPAID | FAILED | REFUNDED | PARTIALLY_REFUNDED
18
+ */
19
+ export type ChangedInvoiceStatus = OpenEnum<typeof ChangedInvoiceStatus>;
20
+
21
+ /** @internal */
22
+ export const ChangedInvoiceStatus$inboundSchema: z.ZodMiniType<
23
+ ChangedInvoiceStatus,
24
+ unknown
25
+ > = openEnums.inboundSchema(ChangedInvoiceStatus);
@@ -3,29 +3,60 @@
3
3
  */
4
4
 
5
5
  import * as z from "zod/v4-mini";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
6
7
  import { safeParse } from "../../lib/schemas.js";
7
8
  import { Result as SafeParseResult } from "../../types/fp.js";
8
9
  import * as types from "../../types/primitives.js";
10
+ import {
11
+ ChangedInvoiceAction,
12
+ ChangedInvoiceAction$inboundSchema,
13
+ } from "./changed-invoice-action.js";
14
+ import {
15
+ ChangedInvoiceStatus,
16
+ ChangedInvoiceStatus$inboundSchema,
17
+ } from "./changed-invoice-status.js";
18
+ import {
19
+ InvoiceResponse,
20
+ InvoiceResponse$inboundSchema,
21
+ } from "./invoice-response.js";
9
22
  import { SDKValidationError } from "./sdk-validation-error.js";
23
+ import {
24
+ WalletTransactionResponse,
25
+ WalletTransactionResponse$inboundSchema,
26
+ } from "./wallet-transaction-response.js";
10
27
 
11
28
  export type ChangedInvoice = {
12
29
  /**
13
- * "created" | "wallet_credit"
30
+ * created (proration invoice) | wallet_credit (downgrade credit)
14
31
  */
15
- action?: string | undefined;
32
+ action?: ChangedInvoiceAction | undefined;
16
33
  id?: string | undefined;
17
- status?: string | undefined;
34
+ invoice?: InvoiceResponse | undefined;
35
+ /**
36
+ * preview | issued | INITIATED | PENDING | PROCESSING | SUCCEEDED | OVERPAID | FAILED | REFUNDED | PARTIALLY_REFUNDED
37
+ */
38
+ status?: ChangedInvoiceStatus | undefined;
39
+ walletTransaction?: WalletTransactionResponse | undefined;
18
40
  };
19
41
 
20
42
  /** @internal */
21
43
  export const ChangedInvoice$inboundSchema: z.ZodMiniType<
22
44
  ChangedInvoice,
23
45
  unknown
24
- > = z.object({
25
- action: types.optional(types.string()),
26
- id: types.optional(types.string()),
27
- status: types.optional(types.string()),
28
- });
46
+ > = z.pipe(
47
+ z.object({
48
+ action: types.optional(ChangedInvoiceAction$inboundSchema),
49
+ id: types.optional(types.string()),
50
+ invoice: types.optional(InvoiceResponse$inboundSchema),
51
+ status: types.optional(ChangedInvoiceStatus$inboundSchema),
52
+ wallet_transaction: types.optional(WalletTransactionResponse$inboundSchema),
53
+ }),
54
+ z.transform((v) => {
55
+ return remap$(v, {
56
+ "wallet_transaction": "walletTransaction",
57
+ });
58
+ }),
59
+ );
29
60
 
30
61
  export function changedInvoiceFromJSON(
31
62
  jsonString: string,
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import * as openEnums from "../../types/enums.js";
7
+ import { OpenEnum } from "../../types/enums.js";
8
+
9
+ /**
10
+ * created | updated | ended
11
+ */
12
+ export const ChangedLineItemAction = {
13
+ Created: "created",
14
+ Updated: "updated",
15
+ Ended: "ended",
16
+ } as const;
17
+ /**
18
+ * created | updated | ended
19
+ */
20
+ export type ChangedLineItemAction = OpenEnum<typeof ChangedLineItemAction>;
21
+
22
+ /** @internal */
23
+ export const ChangedLineItemAction$inboundSchema: z.ZodMiniType<
24
+ ChangedLineItemAction,
25
+ unknown
26
+ > = openEnums.inboundSchema(ChangedLineItemAction);
@@ -7,13 +7,17 @@ import { remap as remap$ } from "../../lib/primitives.js";
7
7
  import { safeParse } from "../../lib/schemas.js";
8
8
  import { Result as SafeParseResult } from "../../types/fp.js";
9
9
  import * as types from "../../types/primitives.js";
10
+ import {
11
+ ChangedLineItemAction,
12
+ ChangedLineItemAction$inboundSchema,
13
+ } from "./changed-line-item-action.js";
10
14
  import { SDKValidationError } from "./sdk-validation-error.js";
11
15
 
12
16
  export type ChangedLineItem = {
13
17
  /**
14
- * "created" | "updated" | "ended"
18
+ * created | updated | ended
15
19
  */
16
- changeAction?: string | undefined;
20
+ changeAction?: ChangedLineItemAction | undefined;
17
21
  endDate?: Date | undefined;
18
22
  id?: string | undefined;
19
23
  priceId?: string | undefined;
@@ -27,7 +31,7 @@ export const ChangedLineItem$inboundSchema: z.ZodMiniType<
27
31
  unknown
28
32
  > = z.pipe(
29
33
  z.object({
30
- change_action: types.optional(types.string()),
34
+ change_action: types.optional(ChangedLineItemAction$inboundSchema),
31
35
  end_date: types.optional(types.date()),
32
36
  id: types.optional(types.string()),
33
37
  price_id: types.optional(types.string()),
@@ -0,0 +1,27 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import * as openEnums from "../../types/enums.js";
7
+ import { OpenEnum } from "../../types/enums.js";
8
+
9
+ /**
10
+ * created | updated
11
+ */
12
+ export const ChangedSubscriptionAction = {
13
+ Created: "created",
14
+ Updated: "updated",
15
+ } as const;
16
+ /**
17
+ * created | updated
18
+ */
19
+ export type ChangedSubscriptionAction = OpenEnum<
20
+ typeof ChangedSubscriptionAction
21
+ >;
22
+
23
+ /** @internal */
24
+ export const ChangedSubscriptionAction$inboundSchema: z.ZodMiniType<
25
+ ChangedSubscriptionAction,
26
+ unknown
27
+ > = openEnums.inboundSchema(ChangedSubscriptionAction);