@leaflow/sdk 0.69.0 → 0.70.0

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.
@@ -511,6 +511,12 @@ export interface components {
511
511
  token: string;
512
512
  };
513
513
  ProjectResource: {
514
+ /**
515
+ * Format: date-time
516
+ * @description A read-only management lock. Running resources and billing remain unchanged. Only an operator can release it.
517
+ */
518
+ locked_at: string | null;
519
+ lock_reason: string;
514
520
  ban_reason: string;
515
521
  /** Format: date-time */
516
522
  created_at: string;
@@ -1,6 +1,18 @@
1
1
  export type { paths, components, operations, webhooks } from "./schema.js";
2
2
  export { client } from "./client.js";
3
3
  import type { operations } from "./schema.js";
4
+ /** The success response body of `GET /account/v1/commitments`. */
5
+ export type ListCommitmentsResult = operations["ListCommitments"]["responses"][200]["content"]["application/json"];
6
+ /** The query parameters of `GET /account/v1/commitments`. */
7
+ export type ListCommitmentsQuery = operations["ListCommitments"]["parameters"]["query"];
8
+ /** The success response body of `GET /api/v1/projects/{projectId}/closure-preview`. */
9
+ export type GetProjectClosurePreviewResult = operations["get-project-closure-preview"]["responses"][200]["content"]["application/json"];
10
+ /** The query parameters of `GET /api/v1/projects/{projectId}/closure-preview`. */
11
+ export type GetProjectClosurePreviewQuery = operations["get-project-closure-preview"]["parameters"]["query"];
12
+ /** The success response body of `GET /account/v1/projects/{projectId}/closure-preview`. */
13
+ export type GetAccountProjectClosurePreviewResult = operations["get-account-project-closure-preview"]["responses"][200]["content"]["application/json"];
14
+ /** The query parameters of `GET /account/v1/projects/{projectId}/closure-preview`. */
15
+ export type GetAccountProjectClosurePreviewQuery = operations["get-account-project-closure-preview"]["parameters"]["query"];
4
16
  /** The success response body of `GET /catalog/v1/products`. */
5
17
  export type ListCatalogProductsResult = operations["list-catalog-products"]["responses"][200]["content"]["application/json"];
6
18
  /** The success response body of `GET /catalog/v1/products/{productId}/plans`. */
@@ -3,6 +3,63 @@
3
3
  * Do not make direct changes to the file.
4
4
  */
5
5
  export interface paths {
6
+ "/account/v1/commitments": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /** List account commercial commitments */
14
+ get: operations["ListCommitments"];
15
+ put?: never;
16
+ post?: never;
17
+ delete?: never;
18
+ options?: never;
19
+ head?: never;
20
+ patch?: never;
21
+ trace?: never;
22
+ };
23
+ "/api/v1/projects/{projectId}/closure-preview": {
24
+ parameters: {
25
+ query?: never;
26
+ header?: never;
27
+ path?: never;
28
+ cookie?: never;
29
+ };
30
+ /**
31
+ * Preview project closure
32
+ * @description Lists outstanding orders, subscriptions, metering and unfinished operations. Reports the next action and timing for each item. This read never performs cleanup or creates a closure request. Historical invoices and account-level purchases are retained. Billing approval alone does not prove that technical resources are absent.
33
+ */
34
+ get: operations["get-project-closure-preview"];
35
+ put?: never;
36
+ post?: never;
37
+ delete?: never;
38
+ options?: never;
39
+ head?: never;
40
+ patch?: never;
41
+ trace?: never;
42
+ };
43
+ "/account/v1/projects/{projectId}/closure-preview": {
44
+ parameters: {
45
+ query?: never;
46
+ header?: never;
47
+ path?: never;
48
+ cookie?: never;
49
+ };
50
+ /**
51
+ * Preview project closure
52
+ * @description Lists outstanding orders, subscriptions, metering and unfinished operations. Reports the next action and timing for each item. This read never performs cleanup or creates a closure request. Historical invoices and account-level purchases are retained. Billing approval alone does not prove that technical resources are absent.
53
+ */
54
+ get: operations["get-account-project-closure-preview"];
55
+ put?: never;
56
+ post?: never;
57
+ delete?: never;
58
+ options?: never;
59
+ head?: never;
60
+ patch?: never;
61
+ trace?: never;
62
+ };
6
63
  "/catalog/v1/products": {
7
64
  parameters: {
8
65
  query?: never;
@@ -1305,6 +1362,133 @@ export interface paths {
1305
1362
  export type webhooks = Record<string, never>;
1306
1363
  export interface components {
1307
1364
  schemas: {
1365
+ CommitmentPeriod: {
1366
+ /** Format: uuid */
1367
+ id: string;
1368
+ sequence: number;
1369
+ /** Format: date-time */
1370
+ period_start: string;
1371
+ /** Format: date-time */
1372
+ period_end: string;
1373
+ /** Format: date-time */
1374
+ due_at: string;
1375
+ amount: string;
1376
+ /** Format: uuid */
1377
+ invoice_item_id?: string;
1378
+ /** Format: date-time */
1379
+ finalized_at?: string;
1380
+ eligible_amount?: string;
1381
+ amount_due?: string;
1382
+ /** Format: date-time */
1383
+ waived_at?: string;
1384
+ waiver_reason?: string;
1385
+ };
1386
+ /** @description Account-owned commercial obligation. Project removal does not waive payment. Minimum-spend activation requires a defined, reproducible eligibility policy; drafts do not authorize collection. */
1387
+ Commitment: {
1388
+ /** Format: uuid */
1389
+ id: string;
1390
+ billing_account_id: number;
1391
+ currency: string;
1392
+ /** @enum {string} */
1393
+ type: "fixed_amount" | "minimum_spend";
1394
+ /** @enum {string} */
1395
+ status: "draft" | "active" | "completed" | "terminated";
1396
+ description: string;
1397
+ terms_reference: string;
1398
+ /** Format: date-time */
1399
+ effective_from: string;
1400
+ /** Format: date-time */
1401
+ effective_to: string;
1402
+ /** @enum {string} */
1403
+ release_policy: "retain_until_term" | "release_with_obligation";
1404
+ /** Format: uuid */
1405
+ contract_id?: string;
1406
+ /** Format: uuid */
1407
+ origin_order_item_id?: string;
1408
+ /** Format: uuid */
1409
+ origin_project_id?: string;
1410
+ /** Format: date-time */
1411
+ accepted_at?: string;
1412
+ accepted_by?: string;
1413
+ eligibility_policy_version?: string;
1414
+ /** Format: date-time */
1415
+ terminated_at?: string;
1416
+ termination_reason?: string;
1417
+ periods: components["schemas"]["CommitmentPeriod"][];
1418
+ };
1419
+ CommitmentList: {
1420
+ items: components["schemas"]["Commitment"][];
1421
+ /** Format: int64 */
1422
+ total_count: number;
1423
+ };
1424
+ /**
1425
+ * @description Whether a fulfilled purchase may end immediately or only after its paid term. Does not grant a refund. When absent, the terms are not configured and termination requires review.
1426
+ * @enum {string}
1427
+ */
1428
+ TerminationPolicy: "immediate" | "period_end";
1429
+ /**
1430
+ * @description none preserves paid amounts when fulfilled service ends. standard applies the documented refund window and change proration rules. Releasing unpaid holds or returning funds for failed fulfillment is separate.
1431
+ * @enum {string}
1432
+ */
1433
+ RefundPolicy: "none" | "standard";
1434
+ /** @description A cancellation request for the original purchase. scheduled_for is the intended time; effective_at is the confirmed end of service. The request alone does not stop metering or issue a refund. */
1435
+ SubscriptionCancellation: {
1436
+ /** Format: uuid */
1437
+ id: string;
1438
+ /** Format: uuid */
1439
+ subscription_item_id: string;
1440
+ /** @enum {string} */
1441
+ status: "requested" | "scheduled" | "releasing" | "failed" | "completed" | "canceled";
1442
+ /** @enum {string} */
1443
+ mode: "immediate" | "period_end";
1444
+ /** Format: date-time */
1445
+ requested_at: string;
1446
+ /** Format: date-time */
1447
+ scheduled_for?: string;
1448
+ /** Format: date-time */
1449
+ effective_at?: string;
1450
+ /** Format: date-time */
1451
+ completed_at?: string;
1452
+ /** Format: date-time */
1453
+ release_started_at?: string;
1454
+ /** Format: date-time */
1455
+ canceled_at?: string;
1456
+ forfeit_remaining_value: boolean;
1457
+ failure_code?: string;
1458
+ failure_reason?: string;
1459
+ };
1460
+ /** @description One outstanding Billing obligation. action_required identifies a supported next step, not authorization to destroy a resource. Items for the same resource must be considered together. */
1461
+ ProjectClosureItem: {
1462
+ /** @enum {string} */
1463
+ type: "order" | "subscription_item" | "active_resource" | "resource_operation" | "subscription_cancellation" | "usage_charge" | "commitment";
1464
+ /** Format: uuid */
1465
+ id: string;
1466
+ /** Format: uuid */
1467
+ product_id?: string;
1468
+ resource_id?: string;
1469
+ /** @enum {string} */
1470
+ disposition: "action_required" | "waiting" | "blocked";
1471
+ reason_code: string;
1472
+ actions: ("cancel_order" | "wait" | "release_resource" | "cancel_subscription" | "disable_auto_renew" | "settle_usage" | "configure_terms" | "resolve_failure")[];
1473
+ /** Format: date-time */
1474
+ earliest_termination_at?: string;
1475
+ /** @description Known refund amount as a decimal string. Absent means a separate quote is required, not zero. */
1476
+ refund_amount?: string;
1477
+ currency?: string;
1478
+ cancellation?: components["schemas"]["SubscriptionCancellation"];
1479
+ };
1480
+ /** @description Read-only, paginated assessment. Does not cancel orders, stop renewals, refund payments or release resources. Concurrent orders or callbacks may change the result; execution must close admission and recheck. */
1481
+ ProjectClosurePreview: {
1482
+ /** Format: uuid */
1483
+ project_id: string;
1484
+ /** Format: date-time */
1485
+ evaluated_at: string;
1486
+ /** @description True only when the full Billing result, across all pages, has no outstanding obligations. Technical services must independently confirm that all resources are gone. */
1487
+ can_close: boolean;
1488
+ items: components["schemas"]["ProjectClosureItem"][];
1489
+ /** Format: int64 */
1490
+ total_count: number;
1491
+ };
1308
1492
  Error: {
1309
1493
  code?: string;
1310
1494
  message: string;
@@ -1361,6 +1545,8 @@ export interface components {
1361
1545
  total_count?: number;
1362
1546
  };
1363
1547
  CatalogPrice: {
1548
+ termination_policy?: components["schemas"]["TerminationPolicy"];
1549
+ refund_policy?: components["schemas"]["RefundPolicy"];
1364
1550
  /** @description External lookup alias within the service. Existing references use the price ID. */
1365
1551
  lookup_key?: string;
1366
1552
  /** Format: uuid */
@@ -2953,6 +3139,83 @@ export interface components {
2953
3139
  }
2954
3140
  export type $defs = Record<string, never>;
2955
3141
  export interface operations {
3142
+ ListCommitments: {
3143
+ parameters: {
3144
+ query: {
3145
+ billing_account_id: number;
3146
+ page?: number;
3147
+ page_size?: number;
3148
+ };
3149
+ header?: never;
3150
+ path?: never;
3151
+ cookie?: never;
3152
+ };
3153
+ requestBody?: never;
3154
+ responses: {
3155
+ /** @description Commitments including original payment schedules. */
3156
+ 200: {
3157
+ headers: {
3158
+ [name: string]: unknown;
3159
+ };
3160
+ content: {
3161
+ "application/json": components["schemas"]["CommitmentList"];
3162
+ };
3163
+ };
3164
+ default: components["responses"]["Error"];
3165
+ };
3166
+ };
3167
+ "get-project-closure-preview": {
3168
+ parameters: {
3169
+ query?: {
3170
+ page?: number;
3171
+ page_size?: number;
3172
+ };
3173
+ header?: never;
3174
+ path: {
3175
+ projectId: string;
3176
+ };
3177
+ cookie?: never;
3178
+ };
3179
+ requestBody?: never;
3180
+ responses: {
3181
+ /** @description Closure assessment */
3182
+ 200: {
3183
+ headers: {
3184
+ [name: string]: unknown;
3185
+ };
3186
+ content: {
3187
+ "application/json": components["schemas"]["ProjectClosurePreview"];
3188
+ };
3189
+ };
3190
+ default: components["responses"]["Error"];
3191
+ };
3192
+ };
3193
+ "get-account-project-closure-preview": {
3194
+ parameters: {
3195
+ query?: {
3196
+ page?: number;
3197
+ page_size?: number;
3198
+ };
3199
+ header?: never;
3200
+ path: {
3201
+ projectId: string;
3202
+ };
3203
+ cookie?: never;
3204
+ };
3205
+ requestBody?: never;
3206
+ responses: {
3207
+ /** @description Closure assessment */
3208
+ 200: {
3209
+ headers: {
3210
+ [name: string]: unknown;
3211
+ };
3212
+ content: {
3213
+ "application/json": components["schemas"]["ProjectClosurePreview"];
3214
+ };
3215
+ };
3216
+ default: components["responses"]["Error"];
3217
+ };
3218
+ };
2956
3219
  "list-catalog-products": {
2957
3220
  parameters: {
2958
3221
  query?: {
@@ -435,6 +435,12 @@ export interface components {
435
435
  rules: components["schemas"]["RuleResource"][] | null;
436
436
  };
437
437
  ProjectResource: {
438
+ /**
439
+ * Format: date-time
440
+ * @description A read-only management lock. Running resources and billing remain unchanged. Only an operator can release it.
441
+ */
442
+ locked_at: string | null;
443
+ lock_reason: string;
438
444
  ban_reason: string;
439
445
  /** Format: date-time */
440
446
  created_at: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflow/sdk",
3
- "version": "0.69.0",
3
+ "version": "0.70.0",
4
4
  "description": "Leaflow 平台 API 的 TypeScript SDK",
5
5
  "license": "MIT",
6
6
  "repository": {