@hyperline/cli 0.1.0-build.1.bf06c76 → 0.1.0-build.1.bf5f2bb
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.
- package/dist/bin/hyperline-main.js +947 -387
- package/package.json +1 -1
|
@@ -37739,10 +37739,9 @@ Examples:
|
|
|
37739
37739
|
baseUrlOverride: resolveIngestBaseUrl(ctx.baseUrl)
|
|
37740
37740
|
});
|
|
37741
37741
|
});
|
|
37742
|
-
resource.command("send").description(`Send a single billable event.`).requiredOption("--customer-id <value>", `Customer ID or external ID`).requiredOption("--event-type <value>", `Event type`).requiredOption("--timestamp <value>", `ISO8601 timestamp`).requiredOption("--record <value>", `Event record as JSON (must include "id" key)`).
|
|
37742
|
+
resource.command("send").description(`Send a single billable event.`).requiredOption("--customer-id <value>", `Customer ID or external ID`).requiredOption("--event-type <value>", `Event type`).requiredOption("--timestamp <value>", `ISO8601 timestamp`).requiredOption("--record <value>", `Event record as JSON (must include "id" key)`).addHelpText("after", `
|
|
37743
37743
|
Examples:
|
|
37744
|
-
hyperline events send --customer-id cus_xyz --event-type api_call --timestamp 2024-01-15T10:00:00Z --record '{"id":"evt_1","duration":32}'
|
|
37745
|
-
hyperline events send --customer-id cus_xyz --event-type api_call --timestamp 2024-01-15T10:00:00Z --record '{"id":"evt_1"}' --with-price-calculation`).action(async (opts) => {
|
|
37744
|
+
hyperline events send --customer-id cus_xyz --event-type api_call --timestamp 2024-01-15T10:00:00Z --record '{"id":"evt_1","duration":32}'`).action(async (opts) => {
|
|
37746
37745
|
const ctx = resource.parent?.opts()._ctx;
|
|
37747
37746
|
if (!ctx) {
|
|
37748
37747
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -37762,14 +37761,10 @@ Examples:
|
|
|
37762
37761
|
timestamp: opts.timestamp,
|
|
37763
37762
|
record: record2
|
|
37764
37763
|
};
|
|
37765
|
-
const args = {};
|
|
37766
|
-
if (opts.withPriceCalculation !== void 0)
|
|
37767
|
-
args.with_price_calculation = true;
|
|
37768
37764
|
await ctx.execute({
|
|
37769
37765
|
method: "POST",
|
|
37770
37766
|
path: "/v1/events",
|
|
37771
|
-
args,
|
|
37772
|
-
queryParamKeys: ["with_price_calculation"],
|
|
37767
|
+
args: {},
|
|
37773
37768
|
body,
|
|
37774
37769
|
baseUrlOverride: resolveIngestBaseUrl(ctx.baseUrl)
|
|
37775
37770
|
});
|
|
@@ -38285,7 +38280,7 @@ Examples:
|
|
|
38285
38280
|
queryParamKeys: []
|
|
38286
38281
|
});
|
|
38287
38282
|
});
|
|
38288
|
-
resource.command("preview-manual-journal-entry-recognition").description(`Preview revenue-recognition slices for a manual journal entry without writing data.`).requiredOption("--ledger-id <value>", `Ledger identifier.`).requiredOption("--amount <
|
|
38283
|
+
resource.command("preview-manual-journal-entry-recognition").description(`Preview revenue-recognition slices for a manual journal entry without writing data.`).requiredOption("--ledger-id <value>", `Ledger identifier.`).requiredOption("--amount <number>", `Deferred amount in minor ledger-currency units.`).requiredOption("--method <value>", `Recognition method to preview.`).option("--recognition-date <value>", `Recognition date for point-in-time recognition.`).option("--window <json>", `Service window for over-time recognition.`).option("--granularity <value>", `Slice granularity for over-time recognition.`).addHelpText("after", `
|
|
38289
38284
|
Examples:
|
|
38290
38285
|
hyperline accounting-journal-entries preview-manual-journal-entry-recognition --ledger-id <ledger_id> --amount <amount> --method <method>
|
|
38291
38286
|
hyperline accounting-journal-entries preview-manual-journal-entry-recognition --ledger-id <ledger_id> --amount <amount> --method <method> --recognition-date <recognition_date> --window <window>
|
|
@@ -38298,14 +38293,14 @@ Examples:
|
|
|
38298
38293
|
const args = {};
|
|
38299
38294
|
if (opts.ledgerId !== void 0)
|
|
38300
38295
|
args.ledger_id = opts.ledgerId;
|
|
38301
|
-
if (opts.amount !== void 0)
|
|
38302
|
-
args.amount = opts.amount;
|
|
38303
38296
|
if (opts.method !== void 0)
|
|
38304
38297
|
args.method = opts.method;
|
|
38305
38298
|
if (opts.recognitionDate !== void 0)
|
|
38306
38299
|
args.recognition_date = opts.recognitionDate;
|
|
38307
38300
|
if (opts.granularity !== void 0)
|
|
38308
38301
|
args.granularity = opts.granularity;
|
|
38302
|
+
if (opts.amount !== void 0)
|
|
38303
|
+
args.amount = Number(opts.amount);
|
|
38309
38304
|
if (opts.window !== void 0)
|
|
38310
38305
|
args.window = JSON.parse(opts.window);
|
|
38311
38306
|
await ctx.execute({
|
|
@@ -38483,7 +38478,7 @@ Examples:
|
|
|
38483
38478
|
queryParamKeys: []
|
|
38484
38479
|
});
|
|
38485
38480
|
});
|
|
38486
|
-
resource.command("delete-ledger").description(`
|
|
38481
|
+
resource.command("delete-ledger").description(`Permanently delete a ledger with its accounts, rules, journal entries and revenue recognition schedules, and unlink the suppliers, supplier contracts and accounting settings that reference it.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
38487
38482
|
Examples:
|
|
38488
38483
|
hyperline accounting-ledgers delete-ledger --id <id>
|
|
38489
38484
|
hyperline accounting-ledgers delete-ledger --id <id> --output json`).action(async (opts) => {
|
|
@@ -38583,7 +38578,7 @@ Examples:
|
|
|
38583
38578
|
// build/commands/generated/accounting-revenue-recognition.js
|
|
38584
38579
|
function registerAccounting_Revenue_RecognitionCommands(parent) {
|
|
38585
38580
|
const resource = parent.command("accounting-revenue-recognition").description("Manage accounting > revenue recognition");
|
|
38586
|
-
resource.command("get-rev-rec-waterfall").description(`Aggregate revenue-recognition schedules into a booked-by-recognition month matrix.`).option("--ledger-id <value>", `Ledger identifier.`).option("--year <number>", `Booked calendar year.`).option("--customer-id.in <value>", `Comma-separated customer identifiers.`).option("--product-id.in <value>", `Comma-separated product identifiers.`).option("--search <value>", `Search
|
|
38581
|
+
resource.command("get-rev-rec-waterfall").description(`Aggregate revenue-recognition schedules into a booked-by-recognition month matrix.`).option("--ledger-id <value>", `Ledger identifier.`).option("--year <number>", `Booked calendar year.`).option("--customer-id.in <value>", `Comma-separated customer identifiers.`).option("--product-id.in <value>", `Comma-separated product identifiers.`).option("--search <value>", `Search by invoice ID or number, customer name or ID, or subscription ID.`).addHelpText("after", `
|
|
38587
38582
|
Examples:
|
|
38588
38583
|
hyperline accounting-revenue-recognition get-rev-rec-waterfall
|
|
38589
38584
|
hyperline accounting-revenue-recognition get-rev-rec-waterfall --ledger-id <ledger_id> --year <year>`).action(async (opts) => {
|
|
@@ -38616,7 +38611,7 @@ Examples:
|
|
|
38616
38611
|
]
|
|
38617
38612
|
});
|
|
38618
38613
|
});
|
|
38619
|
-
resource.command("get-rev-rec-waterfall-cell").description(`List the schedules and slices contributing to a waterfall cell.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--ledger-id <value>", `Ledger identifier.`).option("--booked-month <value>", `Booked month formatted YYYY-MM; required if year is absent.`).option("--year <number>", `Booked year; required if booked_month is absent.`).option("--recognition-month <value>", `Recognition month formatted YYYY-MM.`).option("--cell-type <value>", `Waterfall cell category.`).option("--status <value>", `Recognition status filter.`).option("--customer-id.in <value>", `Comma-separated customer identifiers.`).option("--product-id.in <value>", `Comma-separated product identifiers.`).option("--search <value>", `Search
|
|
38614
|
+
resource.command("get-rev-rec-waterfall-cell").description(`List the schedules and slices contributing to a waterfall cell.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--ledger-id <value>", `Ledger identifier.`).option("--booked-month <value>", `Booked month formatted YYYY-MM; required if year is absent.`).option("--year <number>", `Booked year; required if booked_month is absent.`).option("--recognition-month <value>", `Recognition month formatted YYYY-MM.`).option("--cell-type <value>", `Waterfall cell category.`).option("--status <value>", `Recognition status filter.`).option("--customer-id.in <value>", `Comma-separated customer identifiers.`).option("--product-id.in <value>", `Comma-separated product identifiers.`).option("--search <value>", `Search by invoice ID or number, customer name or ID, or subscription ID.`).addHelpText("after", `
|
|
38620
38615
|
Examples:
|
|
38621
38616
|
hyperline accounting-revenue-recognition get-rev-rec-waterfall-cell
|
|
38622
38617
|
hyperline accounting-revenue-recognition get-rev-rec-waterfall-cell --take <take> --ledger-id <ledger_id>`).action(async (opts) => {
|
|
@@ -38794,7 +38789,7 @@ Examples:
|
|
|
38794
38789
|
queryParamKeys: []
|
|
38795
38790
|
});
|
|
38796
38791
|
});
|
|
38797
|
-
resource.command("reshape-rev-rec-schedule").description(`Recognize an amount now and optionally spread the remainder over a new window.`).requiredOption("--schedule-id <value>", `schedule_id parameter`).requiredOption("--recognize-now-amount <
|
|
38792
|
+
resource.command("reshape-rev-rec-schedule").description(`Recognize an amount now and optionally spread the remainder over a new window.`).requiredOption("--schedule-id <value>", `schedule_id parameter`).requiredOption("--recognize-now-amount <number>", `Amount to recognize immediately in ledger currency. Expressed in currency's smallest unit.`).option("--window <json>", `Window over which to spread the remaining amount.`).requiredOption("--reason-code <value>", `Stable reason code for the adjustment.`).option("--reason-detail <value>", `Required explanation when reason_code is \`other\`.`).addHelpText("after", `
|
|
38798
38793
|
Examples:
|
|
38799
38794
|
hyperline accounting-revenue-recognition reshape-rev-rec-schedule --schedule-id <schedule_id> --recognize-now-amount <recognize_now_amount> --reason-code <reason_code>
|
|
38800
38795
|
hyperline accounting-revenue-recognition reshape-rev-rec-schedule --schedule-id <schedule_id> --recognize-now-amount <recognize_now_amount> --reason-code <reason_code> --window <window> --reason-detail <reason_detail>
|
|
@@ -38807,12 +38802,12 @@ Examples:
|
|
|
38807
38802
|
const args = {};
|
|
38808
38803
|
if (opts.scheduleId !== void 0)
|
|
38809
38804
|
args.schedule_id = opts.scheduleId;
|
|
38810
|
-
if (opts.recognizeNowAmount !== void 0)
|
|
38811
|
-
args.recognize_now_amount = opts.recognizeNowAmount;
|
|
38812
38805
|
if (opts.reasonCode !== void 0)
|
|
38813
38806
|
args.reason_code = opts.reasonCode;
|
|
38814
38807
|
if (opts.reasonDetail !== void 0)
|
|
38815
38808
|
args.reason_detail = opts.reasonDetail;
|
|
38809
|
+
if (opts.recognizeNowAmount !== void 0)
|
|
38810
|
+
args.recognize_now_amount = Number(opts.recognizeNowAmount);
|
|
38816
38811
|
if (opts.window !== void 0)
|
|
38817
38812
|
args.window = JSON.parse(opts.window);
|
|
38818
38813
|
await ctx.execute({
|
|
@@ -38822,7 +38817,7 @@ Examples:
|
|
|
38822
38817
|
queryParamKeys: []
|
|
38823
38818
|
});
|
|
38824
38819
|
});
|
|
38825
|
-
resource.command("preview-reshape-rev-rec-schedule").description(`Preview the exact reshape plan without writing data.`).requiredOption("--schedule-id <value>", `schedule_id parameter`).requiredOption("--recognize-now-amount <
|
|
38820
|
+
resource.command("preview-reshape-rev-rec-schedule").description(`Preview the exact reshape plan without writing data.`).requiredOption("--schedule-id <value>", `schedule_id parameter`).requiredOption("--recognize-now-amount <number>", `Amount to recognize immediately in ledger currency. Expressed in currency's smallest unit.`).option("--window <json>", `Window over which to spread the remaining amount.`).addHelpText("after", `
|
|
38826
38821
|
Examples:
|
|
38827
38822
|
hyperline accounting-revenue-recognition preview-reshape-rev-rec-schedule --schedule-id <schedule_id> --recognize-now-amount <recognize_now_amount>
|
|
38828
38823
|
hyperline accounting-revenue-recognition preview-reshape-rev-rec-schedule --schedule-id <schedule_id> --recognize-now-amount <recognize_now_amount> --window <window>
|
|
@@ -38836,7 +38831,7 @@ Examples:
|
|
|
38836
38831
|
if (opts.scheduleId !== void 0)
|
|
38837
38832
|
args.schedule_id = opts.scheduleId;
|
|
38838
38833
|
if (opts.recognizeNowAmount !== void 0)
|
|
38839
|
-
args.recognize_now_amount = opts.recognizeNowAmount;
|
|
38834
|
+
args.recognize_now_amount = Number(opts.recognizeNowAmount);
|
|
38840
38835
|
if (opts.window !== void 0)
|
|
38841
38836
|
args.window = JSON.parse(opts.window);
|
|
38842
38837
|
await ctx.execute({
|
|
@@ -39524,7 +39519,7 @@ Examples:
|
|
|
39524
39519
|
|
|
39525
39520
|
// build/commands/generated/ai-billing.js
|
|
39526
39521
|
function registerAi_BillingCommands(parent) {
|
|
39527
|
-
const resource = parent.command("ai-billing").description("Manage ai billing");
|
|
39522
|
+
const resource = parent.command("ai-billing").description("Manage ai > billing");
|
|
39528
39523
|
resource.command("list-agent-plans").description(`List AI agent billing plans: workspace-level offers carrying a billing mode (wallet/credits/windows), rate card, allowance windows, markups and per-seat credit grants. Filter by mode; paginated with take/skip.`).option("--mode <value>", `Billing mode.
|
|
39529
39524
|
|
|
39530
39525
|
- wallet: Charges a monetary wallet.
|
|
@@ -39547,7 +39542,7 @@ Examples:
|
|
|
39547
39542
|
args.skip = Number(opts.skip);
|
|
39548
39543
|
await ctx.execute({
|
|
39549
39544
|
method: "GET",
|
|
39550
|
-
path: "/v1/ai
|
|
39545
|
+
path: "/v1/ai/billing/plans",
|
|
39551
39546
|
args,
|
|
39552
39547
|
queryParamKeys: ["mode", "take", "skip"]
|
|
39553
39548
|
});
|
|
@@ -39598,39 +39593,32 @@ Examples:
|
|
|
39598
39593
|
args.windows = JSON.parse(opts.windows);
|
|
39599
39594
|
await ctx.execute({
|
|
39600
39595
|
method: "POST",
|
|
39601
|
-
path: "/v1/ai
|
|
39596
|
+
path: "/v1/ai/billing/plans",
|
|
39602
39597
|
args,
|
|
39603
39598
|
queryParamKeys: []
|
|
39604
39599
|
});
|
|
39605
39600
|
});
|
|
39606
|
-
resource.command("get-agent-plan").description(`Get
|
|
39601
|
+
resource.command("get-agent-default-plan").description(`Get the workspace's default AI agent billing plan marker (plan id and auto_apply flag). 404 when none is set.`).addHelpText("after", `
|
|
39607
39602
|
Examples:
|
|
39608
|
-
hyperline ai-billing get-agent-plan
|
|
39603
|
+
hyperline ai-billing get-agent-default-plan`).action(async (_opts) => {
|
|
39609
39604
|
const ctx = resource.parent?.opts()._ctx;
|
|
39610
39605
|
if (!ctx) {
|
|
39611
39606
|
process.stderr.write("Error: Not authenticated\n");
|
|
39612
39607
|
process.exit(1);
|
|
39613
39608
|
}
|
|
39614
39609
|
const args = {};
|
|
39615
|
-
if (opts.planId !== void 0)
|
|
39616
|
-
args.plan_id = opts.planId;
|
|
39617
39610
|
await ctx.execute({
|
|
39618
39611
|
method: "GET",
|
|
39619
|
-
path: "/v1/ai
|
|
39612
|
+
path: "/v1/ai/billing/plans/default",
|
|
39620
39613
|
args,
|
|
39621
39614
|
queryParamKeys: []
|
|
39622
39615
|
});
|
|
39623
39616
|
});
|
|
39624
|
-
resource.command("
|
|
39625
|
-
|
|
39626
|
-
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39627
|
-
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--per-seat-credits <value>", `Credits granted per seat per billing period. Null grants no credits.`).option("--grant-rollover-enabled", `Whether granted credits survive renewal. Purchased credits always roll over.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
39628
|
-
|
|
39629
|
-
- calendar_month: Settles at the end of each UTC calendar month.`).addHelpText("after", `
|
|
39617
|
+
resource.command("set-agent-default-plan").description(`Mark one plan as the workspace's default AI agent billing plan (body: plan_id, optional auto_apply). Replaces the previous marker; 404 when the plan is not this workspace's.`).requiredOption("--plan-id <value>", `Billing plan reference. On policy writes, omission preserves the current plan and null detaches it.`).option("--auto-apply", `Whether eligible newly ingested customers receive the default plan automatically.`).addHelpText("after", `
|
|
39630
39618
|
Examples:
|
|
39631
|
-
hyperline ai-billing
|
|
39632
|
-
hyperline ai-billing
|
|
39633
|
-
hyperline ai-billing
|
|
39619
|
+
hyperline ai-billing set-agent-default-plan --plan-id <plan_id>
|
|
39620
|
+
hyperline ai-billing set-agent-default-plan --plan-id <plan_id> --auto-apply
|
|
39621
|
+
hyperline ai-billing set-agent-default-plan --plan-id <plan_id> --output json`).action(async (opts) => {
|
|
39634
39622
|
const ctx = resource.parent?.opts()._ctx;
|
|
39635
39623
|
if (!ctx) {
|
|
39636
39624
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39639,47 +39627,25 @@ Examples:
|
|
|
39639
39627
|
const args = {};
|
|
39640
39628
|
if (opts.planId !== void 0)
|
|
39641
39629
|
args.plan_id = opts.planId;
|
|
39642
|
-
if (opts.
|
|
39643
|
-
args.
|
|
39644
|
-
if (opts.rateCardId !== void 0)
|
|
39645
|
-
args.rate_card_id = opts.rateCardId;
|
|
39646
|
-
if (opts.overageMode !== void 0)
|
|
39647
|
-
args.overage_mode = opts.overageMode;
|
|
39648
|
-
if (opts.markupPercent !== void 0)
|
|
39649
|
-
args.markup_percent = opts.markupPercent;
|
|
39650
|
-
if (opts.overageMarkupPercent !== void 0)
|
|
39651
|
-
args.overage_markup_percent = opts.overageMarkupPercent;
|
|
39652
|
-
if (opts.overageRateCardId !== void 0)
|
|
39653
|
-
args.overage_rate_card_id = opts.overageRateCardId;
|
|
39654
|
-
if (opts.perSeatCredits !== void 0)
|
|
39655
|
-
args.per_seat_credits = opts.perSeatCredits;
|
|
39656
|
-
if (opts.settlementSchedule !== void 0)
|
|
39657
|
-
args.settlement_schedule = opts.settlementSchedule;
|
|
39658
|
-
if (opts.settlementIntervalMinutes !== void 0)
|
|
39659
|
-
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
39660
|
-
if (opts.grantRolloverEnabled !== void 0)
|
|
39661
|
-
args.grant_rollover_enabled = true;
|
|
39662
|
-
if (opts.windows !== void 0)
|
|
39663
|
-
args.windows = JSON.parse(opts.windows);
|
|
39630
|
+
if (opts.autoApply !== void 0)
|
|
39631
|
+
args.auto_apply = true;
|
|
39664
39632
|
await ctx.execute({
|
|
39665
39633
|
method: "PUT",
|
|
39666
|
-
path: "/v1/ai
|
|
39634
|
+
path: "/v1/ai/billing/plans/default",
|
|
39667
39635
|
args,
|
|
39668
39636
|
queryParamKeys: []
|
|
39669
39637
|
});
|
|
39670
39638
|
});
|
|
39671
|
-
resource.command("
|
|
39639
|
+
resource.command("clear-agent-default-plan").description(`Clear the workspace's default AI agent billing plan marker. The plan itself is untouched. 404 when none is set.`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39672
39640
|
Examples:
|
|
39673
|
-
hyperline ai-billing
|
|
39674
|
-
hyperline ai-billing
|
|
39641
|
+
hyperline ai-billing clear-agent-default-plan
|
|
39642
|
+
hyperline ai-billing clear-agent-default-plan --output json`).action(async (opts) => {
|
|
39675
39643
|
const ctx = resource.parent?.opts()._ctx;
|
|
39676
39644
|
if (!ctx) {
|
|
39677
39645
|
process.stderr.write("Error: Not authenticated\n");
|
|
39678
39646
|
process.exit(1);
|
|
39679
39647
|
}
|
|
39680
39648
|
const args = {};
|
|
39681
|
-
if (opts.planId !== void 0)
|
|
39682
|
-
args.plan_id = opts.planId;
|
|
39683
39649
|
if (!opts.yes) {
|
|
39684
39650
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39685
39651
|
if (!confirmed) {
|
|
@@ -39689,59 +39655,88 @@ Examples:
|
|
|
39689
39655
|
}
|
|
39690
39656
|
await ctx.execute({
|
|
39691
39657
|
method: "DELETE",
|
|
39692
|
-
path: "/v1/ai
|
|
39658
|
+
path: "/v1/ai/billing/plans/default",
|
|
39693
39659
|
args,
|
|
39694
39660
|
queryParamKeys: []
|
|
39695
39661
|
});
|
|
39696
39662
|
});
|
|
39697
|
-
resource.command("get-agent-
|
|
39663
|
+
resource.command("get-agent-plan").description(`Get one AI agent billing plan by id, with its embedded rate card, window definitions, markups, per-seat grants and minted catalog object ids.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39698
39664
|
Examples:
|
|
39699
|
-
hyperline ai-billing get-agent-
|
|
39665
|
+
hyperline ai-billing get-agent-plan --id <id>`).action(async (opts) => {
|
|
39700
39666
|
const ctx = resource.parent?.opts()._ctx;
|
|
39701
39667
|
if (!ctx) {
|
|
39702
39668
|
process.stderr.write("Error: Not authenticated\n");
|
|
39703
39669
|
process.exit(1);
|
|
39704
39670
|
}
|
|
39705
39671
|
const args = {};
|
|
39672
|
+
if (opts.id !== void 0)
|
|
39673
|
+
args.id = opts.id;
|
|
39706
39674
|
await ctx.execute({
|
|
39707
39675
|
method: "GET",
|
|
39708
|
-
path: "/v1/ai
|
|
39676
|
+
path: "/v1/ai/billing/plans/{id}",
|
|
39709
39677
|
args,
|
|
39710
39678
|
queryParamKeys: []
|
|
39711
39679
|
});
|
|
39712
39680
|
});
|
|
39713
|
-
resource.command("
|
|
39681
|
+
resource.command("replace-agent-plan").description(`Replace an AI agent billing plan (whole-row semantics). Changes take effect on the next call for every customer on the plan; mode is immutable. Overage is priced by overage_markup_percent or by overage_rate_card_id, never both.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Human-readable resource name.`).option("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).option("--overage-mode <value>", `Behavior when credits or an allowance are exhausted. Policy values may inherit the attached plan.
|
|
39682
|
+
|
|
39683
|
+
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39684
|
+
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--per-seat-credits <value>", `Credits granted per seat per billing period. Null grants no credits.`).option("--grant-rollover-enabled", `Whether granted credits survive renewal. Purchased credits always roll over.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
39685
|
+
|
|
39686
|
+
- calendar_month: Settles at the end of each UTC calendar month.`).addHelpText("after", `
|
|
39714
39687
|
Examples:
|
|
39715
|
-
hyperline ai-billing
|
|
39716
|
-
hyperline ai-billing
|
|
39717
|
-
hyperline ai-billing
|
|
39688
|
+
hyperline ai-billing replace-agent-plan --id <id> --name <name>
|
|
39689
|
+
hyperline ai-billing replace-agent-plan --id <id> --name <name> --rate-card-id <rate_card_id> --overage-mode <overage_mode>
|
|
39690
|
+
hyperline ai-billing replace-agent-plan --id <id> --name <name> --output json`).action(async (opts) => {
|
|
39718
39691
|
const ctx = resource.parent?.opts()._ctx;
|
|
39719
39692
|
if (!ctx) {
|
|
39720
39693
|
process.stderr.write("Error: Not authenticated\n");
|
|
39721
39694
|
process.exit(1);
|
|
39722
39695
|
}
|
|
39723
39696
|
const args = {};
|
|
39724
|
-
if (opts.
|
|
39725
|
-
args.
|
|
39726
|
-
if (opts.
|
|
39727
|
-
args.
|
|
39697
|
+
if (opts.id !== void 0)
|
|
39698
|
+
args.id = opts.id;
|
|
39699
|
+
if (opts.name !== void 0)
|
|
39700
|
+
args.name = opts.name;
|
|
39701
|
+
if (opts.rateCardId !== void 0)
|
|
39702
|
+
args.rate_card_id = opts.rateCardId;
|
|
39703
|
+
if (opts.overageMode !== void 0)
|
|
39704
|
+
args.overage_mode = opts.overageMode;
|
|
39705
|
+
if (opts.markupPercent !== void 0)
|
|
39706
|
+
args.markup_percent = opts.markupPercent;
|
|
39707
|
+
if (opts.overageMarkupPercent !== void 0)
|
|
39708
|
+
args.overage_markup_percent = opts.overageMarkupPercent;
|
|
39709
|
+
if (opts.overageRateCardId !== void 0)
|
|
39710
|
+
args.overage_rate_card_id = opts.overageRateCardId;
|
|
39711
|
+
if (opts.perSeatCredits !== void 0)
|
|
39712
|
+
args.per_seat_credits = opts.perSeatCredits;
|
|
39713
|
+
if (opts.settlementSchedule !== void 0)
|
|
39714
|
+
args.settlement_schedule = opts.settlementSchedule;
|
|
39715
|
+
if (opts.settlementIntervalMinutes !== void 0)
|
|
39716
|
+
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
39717
|
+
if (opts.grantRolloverEnabled !== void 0)
|
|
39718
|
+
args.grant_rollover_enabled = true;
|
|
39719
|
+
if (opts.windows !== void 0)
|
|
39720
|
+
args.windows = JSON.parse(opts.windows);
|
|
39728
39721
|
await ctx.execute({
|
|
39729
39722
|
method: "PUT",
|
|
39730
|
-
path: "/v1/ai
|
|
39723
|
+
path: "/v1/ai/billing/plans/{id}",
|
|
39731
39724
|
args,
|
|
39732
39725
|
queryParamKeys: []
|
|
39733
39726
|
});
|
|
39734
39727
|
});
|
|
39735
|
-
resource.command("
|
|
39728
|
+
resource.command("delete-agent-plan").description(`Delete an AI agent billing plan. Refused (409, plan_in_use) while any customer is still attached to it.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39736
39729
|
Examples:
|
|
39737
|
-
hyperline ai-billing
|
|
39738
|
-
hyperline ai-billing
|
|
39730
|
+
hyperline ai-billing delete-agent-plan --id <id>
|
|
39731
|
+
hyperline ai-billing delete-agent-plan --id <id> --output json`).action(async (opts) => {
|
|
39739
39732
|
const ctx = resource.parent?.opts()._ctx;
|
|
39740
39733
|
if (!ctx) {
|
|
39741
39734
|
process.stderr.write("Error: Not authenticated\n");
|
|
39742
39735
|
process.exit(1);
|
|
39743
39736
|
}
|
|
39744
39737
|
const args = {};
|
|
39738
|
+
if (opts.id !== void 0)
|
|
39739
|
+
args.id = opts.id;
|
|
39745
39740
|
if (!opts.yes) {
|
|
39746
39741
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39747
39742
|
if (!confirmed) {
|
|
@@ -39751,7 +39746,7 @@ Examples:
|
|
|
39751
39746
|
}
|
|
39752
39747
|
await ctx.execute({
|
|
39753
39748
|
method: "DELETE",
|
|
39754
|
-
path: "/v1/ai
|
|
39749
|
+
path: "/v1/ai/billing/plans/{id}",
|
|
39755
39750
|
args,
|
|
39756
39751
|
queryParamKeys: []
|
|
39757
39752
|
});
|
|
@@ -39782,7 +39777,7 @@ Examples:
|
|
|
39782
39777
|
args.skip = Number(opts.skip);
|
|
39783
39778
|
await ctx.execute({
|
|
39784
39779
|
method: "GET",
|
|
39785
|
-
path: "/v1/ai
|
|
39780
|
+
path: "/v1/ai/billing/rate-cards",
|
|
39786
39781
|
args,
|
|
39787
39782
|
queryParamKeys: ["denomination", "currency", "search", "take", "skip"]
|
|
39788
39783
|
});
|
|
@@ -39814,42 +39809,42 @@ Examples:
|
|
|
39814
39809
|
args.rows = JSON.parse(opts.rows);
|
|
39815
39810
|
await ctx.execute({
|
|
39816
39811
|
method: "POST",
|
|
39817
|
-
path: "/v1/ai
|
|
39812
|
+
path: "/v1/ai/billing/rate-cards",
|
|
39818
39813
|
args,
|
|
39819
39814
|
queryParamKeys: []
|
|
39820
39815
|
});
|
|
39821
39816
|
});
|
|
39822
|
-
resource.command("get-agent-rate-card").description(`Get one AI rate card by id with all its pricing rows and usage counts (plans, policies, credit product).`).requiredOption("--
|
|
39817
|
+
resource.command("get-agent-rate-card").description(`Get one AI rate card by id with all its pricing rows and usage counts (plans, policies, credit product).`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39823
39818
|
Examples:
|
|
39824
|
-
hyperline ai-billing get-agent-rate-card --
|
|
39819
|
+
hyperline ai-billing get-agent-rate-card --id <id>`).action(async (opts) => {
|
|
39825
39820
|
const ctx = resource.parent?.opts()._ctx;
|
|
39826
39821
|
if (!ctx) {
|
|
39827
39822
|
process.stderr.write("Error: Not authenticated\n");
|
|
39828
39823
|
process.exit(1);
|
|
39829
39824
|
}
|
|
39830
39825
|
const args = {};
|
|
39831
|
-
if (opts.
|
|
39832
|
-
args.
|
|
39826
|
+
if (opts.id !== void 0)
|
|
39827
|
+
args.id = opts.id;
|
|
39833
39828
|
await ctx.execute({
|
|
39834
39829
|
method: "GET",
|
|
39835
|
-
path: "/v1/ai
|
|
39830
|
+
path: "/v1/ai/billing/rate-cards/{id}",
|
|
39836
39831
|
args,
|
|
39837
39832
|
queryParamKeys: []
|
|
39838
39833
|
});
|
|
39839
39834
|
});
|
|
39840
|
-
resource.command("replace-agent-rate-card").description(`Replace an AI rate card's rows, name
|
|
39835
|
+
resource.command("replace-agent-rate-card").description(`Replace an AI rate card's rows, name and USD fallback (whole-card semantics). Denomination and currency are immutable.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Human-readable resource name.`).option("--fallback-per-usd <value>", `Credits, allowance units, or major currency units per USD of provider cost. Null leaves unmatched usage unpriced.`).requiredOption("--rows <json>", `All pricing rows on the card; replacement replaces the complete list.`).addHelpText("after", `
|
|
39841
39836
|
Examples:
|
|
39842
|
-
hyperline ai-billing replace-agent-rate-card --
|
|
39843
|
-
hyperline ai-billing replace-agent-rate-card --
|
|
39844
|
-
hyperline ai-billing replace-agent-rate-card --
|
|
39837
|
+
hyperline ai-billing replace-agent-rate-card --id <id> --name <name> --rows <rows>
|
|
39838
|
+
hyperline ai-billing replace-agent-rate-card --id <id> --name <name> --rows <rows> --fallback-per-usd <fallback_per_usd>
|
|
39839
|
+
hyperline ai-billing replace-agent-rate-card --id <id> --name <name> --rows <rows> --output json`).action(async (opts) => {
|
|
39845
39840
|
const ctx = resource.parent?.opts()._ctx;
|
|
39846
39841
|
if (!ctx) {
|
|
39847
39842
|
process.stderr.write("Error: Not authenticated\n");
|
|
39848
39843
|
process.exit(1);
|
|
39849
39844
|
}
|
|
39850
39845
|
const args = {};
|
|
39851
|
-
if (opts.
|
|
39852
|
-
args.
|
|
39846
|
+
if (opts.id !== void 0)
|
|
39847
|
+
args.id = opts.id;
|
|
39853
39848
|
if (opts.name !== void 0)
|
|
39854
39849
|
args.name = opts.name;
|
|
39855
39850
|
if (opts.fallbackPerUsd !== void 0)
|
|
@@ -39858,23 +39853,23 @@ Examples:
|
|
|
39858
39853
|
args.rows = JSON.parse(opts.rows);
|
|
39859
39854
|
await ctx.execute({
|
|
39860
39855
|
method: "PUT",
|
|
39861
|
-
path: "/v1/ai
|
|
39856
|
+
path: "/v1/ai/billing/rate-cards/{id}",
|
|
39862
39857
|
args,
|
|
39863
39858
|
queryParamKeys: []
|
|
39864
39859
|
});
|
|
39865
39860
|
});
|
|
39866
|
-
resource.command("delete-agent-rate-card").description(`Delete an AI rate card. Refused (409, rate_card_in_use) while any plan, credit product or customer policy still uses it.`).requiredOption("--
|
|
39861
|
+
resource.command("delete-agent-rate-card").description(`Delete an AI rate card. Refused (409, rate_card_in_use) while any plan, credit product or customer policy still uses it.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39867
39862
|
Examples:
|
|
39868
|
-
hyperline ai-billing delete-agent-rate-card --
|
|
39869
|
-
hyperline ai-billing delete-agent-rate-card --
|
|
39863
|
+
hyperline ai-billing delete-agent-rate-card --id <id>
|
|
39864
|
+
hyperline ai-billing delete-agent-rate-card --id <id> --output json`).action(async (opts) => {
|
|
39870
39865
|
const ctx = resource.parent?.opts()._ctx;
|
|
39871
39866
|
if (!ctx) {
|
|
39872
39867
|
process.stderr.write("Error: Not authenticated\n");
|
|
39873
39868
|
process.exit(1);
|
|
39874
39869
|
}
|
|
39875
39870
|
const args = {};
|
|
39876
|
-
if (opts.
|
|
39877
|
-
args.
|
|
39871
|
+
if (opts.id !== void 0)
|
|
39872
|
+
args.id = opts.id;
|
|
39878
39873
|
if (!opts.yes) {
|
|
39879
39874
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39880
39875
|
if (!confirmed) {
|
|
@@ -39884,81 +39879,123 @@ Examples:
|
|
|
39884
39879
|
}
|
|
39885
39880
|
await ctx.execute({
|
|
39886
39881
|
method: "DELETE",
|
|
39887
|
-
path: "/v1/ai
|
|
39882
|
+
path: "/v1/ai/billing/rate-cards/{id}",
|
|
39888
39883
|
args,
|
|
39889
39884
|
queryParamKeys: []
|
|
39890
39885
|
});
|
|
39891
39886
|
});
|
|
39892
|
-
resource.command("list-agent-
|
|
39887
|
+
resource.command("list-agent-customer-policies").description(`List all AI billing policies (scopes) for one customer: the default shared pool plus per-agent overrides. Accepts Hyperline or external customer ids.`).requiredOption("--id <value>", `id parameter`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39893
39888
|
Examples:
|
|
39894
|
-
hyperline ai-billing list-agent-
|
|
39889
|
+
hyperline ai-billing list-agent-customer-policies --id <id>
|
|
39890
|
+
hyperline ai-billing list-agent-customer-policies --id <id> --take <take>`).action(async (opts) => {
|
|
39895
39891
|
const ctx = resource.parent?.opts()._ctx;
|
|
39896
39892
|
if (!ctx) {
|
|
39897
39893
|
process.stderr.write("Error: Not authenticated\n");
|
|
39898
39894
|
process.exit(1);
|
|
39899
39895
|
}
|
|
39900
39896
|
const args = {};
|
|
39897
|
+
if (opts.id !== void 0)
|
|
39898
|
+
args.id = opts.id;
|
|
39899
|
+
if (opts.take !== void 0)
|
|
39900
|
+
args.take = Number(opts.take);
|
|
39901
|
+
if (opts.skip !== void 0)
|
|
39902
|
+
args.skip = Number(opts.skip);
|
|
39901
39903
|
await ctx.execute({
|
|
39902
39904
|
method: "GET",
|
|
39903
|
-
path: "/v1/ai
|
|
39905
|
+
path: "/v1/ai/billing/customers/{id}/policies",
|
|
39904
39906
|
args,
|
|
39905
|
-
queryParamKeys: []
|
|
39907
|
+
queryParamKeys: ["take", "skip"]
|
|
39906
39908
|
});
|
|
39907
39909
|
});
|
|
39908
|
-
resource.command("
|
|
39910
|
+
resource.command("get-default-customer-billing-policy").description(`Get the exact customer billing policy addressed by this resource; agent policies never fall back to the shared pool.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39909
39911
|
Examples:
|
|
39910
|
-
hyperline ai-billing
|
|
39911
|
-
hyperline ai-billing list-agent-cost-catalog --enabled-only <enabled_only>`).action(async (opts) => {
|
|
39912
|
+
hyperline ai-billing get-default-customer-billing-policy --id <id>`).action(async (opts) => {
|
|
39912
39913
|
const ctx = resource.parent?.opts()._ctx;
|
|
39913
39914
|
if (!ctx) {
|
|
39914
39915
|
process.stderr.write("Error: Not authenticated\n");
|
|
39915
39916
|
process.exit(1);
|
|
39916
39917
|
}
|
|
39917
39918
|
const args = {};
|
|
39918
|
-
if (opts.
|
|
39919
|
-
args.
|
|
39919
|
+
if (opts.id !== void 0)
|
|
39920
|
+
args.id = opts.id;
|
|
39920
39921
|
await ctx.execute({
|
|
39921
39922
|
method: "GET",
|
|
39922
|
-
path: "/v1/ai
|
|
39923
|
+
path: "/v1/ai/billing/customers/{id}/policies/default",
|
|
39923
39924
|
args,
|
|
39924
|
-
queryParamKeys: [
|
|
39925
|
+
queryParamKeys: []
|
|
39925
39926
|
});
|
|
39926
39927
|
});
|
|
39927
|
-
resource.command("
|
|
39928
|
+
resource.command("upsert-default-customer-billing-policy").description(`Replace customer billing settings while preserving omitted plan_id and rate_card_id references; null detaches them, and a shared policy enables automatic telemetry billing.`).requiredOption("--id <value>", `id parameter`).requiredOption("--mode <value>", `Billing mode.
|
|
39929
|
+
|
|
39930
|
+
- wallet: Charges a monetary wallet.
|
|
39931
|
+
- credits: Consumes a credit balance.
|
|
39932
|
+
- windows: Meters weighted units against rolling allowances.`).option("--wallet-id <value>", `Customer wallet identifier. Omit on wallet policy writes to provision or reuse the customer's wallet.`).option("--credit-product-id <value>", `Public credit product identifier whose balance this policy consumes.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-mode <value>", `Behavior when credits or an allowance are exhausted. Policy values may inherit the attached plan.
|
|
39933
|
+
|
|
39934
|
+
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39935
|
+
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--overage-wallet-id <value>", `Wallet charged for overage. Null bills overage in arrears.`).option("--floor <value>", `Minimum available balance a spend check requires, in the policy's denomination.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
39936
|
+
|
|
39937
|
+
- calendar_month: Settles at the end of each UTC calendar month.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).option("--plan-id <value>", `Billing plan reference. On policy writes, omission preserves the current plan and null detaches it.`).requiredOption("--blocked", `Whether spending is disabled for this billing scope.`).addHelpText("after", `
|
|
39928
39938
|
Examples:
|
|
39929
|
-
hyperline ai-billing
|
|
39930
|
-
hyperline ai-billing
|
|
39939
|
+
hyperline ai-billing upsert-default-customer-billing-policy --id <id> --mode <mode> --blocked
|
|
39940
|
+
hyperline ai-billing upsert-default-customer-billing-policy --id <id> --mode <mode> --blocked --wallet-id <wallet_id> --credit-product-id <credit_product_id>
|
|
39941
|
+
hyperline ai-billing upsert-default-customer-billing-policy --id <id> --mode <mode> --blocked --output json`).action(async (opts) => {
|
|
39931
39942
|
const ctx = resource.parent?.opts()._ctx;
|
|
39932
39943
|
if (!ctx) {
|
|
39933
39944
|
process.stderr.write("Error: Not authenticated\n");
|
|
39934
39945
|
process.exit(1);
|
|
39935
39946
|
}
|
|
39936
39947
|
const args = {};
|
|
39937
|
-
if (opts.
|
|
39938
|
-
args.
|
|
39939
|
-
if (opts.
|
|
39940
|
-
args.
|
|
39941
|
-
if (opts.
|
|
39942
|
-
args.
|
|
39948
|
+
if (opts.id !== void 0)
|
|
39949
|
+
args.id = opts.id;
|
|
39950
|
+
if (opts.mode !== void 0)
|
|
39951
|
+
args.mode = opts.mode;
|
|
39952
|
+
if (opts.walletId !== void 0)
|
|
39953
|
+
args.wallet_id = opts.walletId;
|
|
39954
|
+
if (opts.creditProductId !== void 0)
|
|
39955
|
+
args.credit_product_id = opts.creditProductId;
|
|
39956
|
+
if (opts.markupPercent !== void 0)
|
|
39957
|
+
args.markup_percent = opts.markupPercent;
|
|
39958
|
+
if (opts.overageMode !== void 0)
|
|
39959
|
+
args.overage_mode = opts.overageMode;
|
|
39960
|
+
if (opts.overageMarkupPercent !== void 0)
|
|
39961
|
+
args.overage_markup_percent = opts.overageMarkupPercent;
|
|
39962
|
+
if (opts.overageRateCardId !== void 0)
|
|
39963
|
+
args.overage_rate_card_id = opts.overageRateCardId;
|
|
39964
|
+
if (opts.overageWalletId !== void 0)
|
|
39965
|
+
args.overage_wallet_id = opts.overageWalletId;
|
|
39966
|
+
if (opts.floor !== void 0)
|
|
39967
|
+
args.floor = opts.floor;
|
|
39968
|
+
if (opts.settlementSchedule !== void 0)
|
|
39969
|
+
args.settlement_schedule = opts.settlementSchedule;
|
|
39970
|
+
if (opts.rateCardId !== void 0)
|
|
39971
|
+
args.rate_card_id = opts.rateCardId;
|
|
39972
|
+
if (opts.planId !== void 0)
|
|
39973
|
+
args.plan_id = opts.planId;
|
|
39974
|
+
if (opts.settlementIntervalMinutes !== void 0)
|
|
39975
|
+
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
39976
|
+
if (opts.blocked !== void 0)
|
|
39977
|
+
args.blocked = true;
|
|
39978
|
+
if (opts.windows !== void 0)
|
|
39979
|
+
args.windows = JSON.parse(opts.windows);
|
|
39943
39980
|
await ctx.execute({
|
|
39944
|
-
method: "
|
|
39945
|
-
path: "/v1/ai
|
|
39981
|
+
method: "PUT",
|
|
39982
|
+
path: "/v1/ai/billing/customers/{id}/policies/default",
|
|
39946
39983
|
args,
|
|
39947
39984
|
queryParamKeys: []
|
|
39948
39985
|
});
|
|
39949
39986
|
});
|
|
39950
|
-
resource.command("delete-
|
|
39987
|
+
resource.command("delete-default-customer-billing-policy").description(`Delete one customer's AI billing policy scope. Refused (409) while it owes unsettled consumption or while agent overrides still depend on it.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39951
39988
|
Examples:
|
|
39952
|
-
hyperline ai-billing delete-
|
|
39953
|
-
hyperline ai-billing delete-
|
|
39989
|
+
hyperline ai-billing delete-default-customer-billing-policy --id <id>
|
|
39990
|
+
hyperline ai-billing delete-default-customer-billing-policy --id <id> --output json`).action(async (opts) => {
|
|
39954
39991
|
const ctx = resource.parent?.opts()._ctx;
|
|
39955
39992
|
if (!ctx) {
|
|
39956
39993
|
process.stderr.write("Error: Not authenticated\n");
|
|
39957
39994
|
process.exit(1);
|
|
39958
39995
|
}
|
|
39959
39996
|
const args = {};
|
|
39960
|
-
if (opts.
|
|
39961
|
-
args.
|
|
39997
|
+
if (opts.id !== void 0)
|
|
39998
|
+
args.id = opts.id;
|
|
39962
39999
|
if (!opts.yes) {
|
|
39963
40000
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39964
40001
|
if (!confirmed) {
|
|
@@ -39968,55 +40005,106 @@ Examples:
|
|
|
39968
40005
|
}
|
|
39969
40006
|
await ctx.execute({
|
|
39970
40007
|
method: "DELETE",
|
|
39971
|
-
path: "/v1/ai
|
|
40008
|
+
path: "/v1/ai/billing/customers/{id}/policies/default",
|
|
39972
40009
|
args,
|
|
39973
40010
|
queryParamKeys: []
|
|
39974
40011
|
});
|
|
39975
40012
|
});
|
|
39976
|
-
resource.command("
|
|
40013
|
+
resource.command("get-agent-customer-billing-policy").description(`Get the exact customer billing policy addressed by this resource; agent policies never fall back to the shared pool.`).requiredOption("--id <value>", `id parameter`).requiredOption("--agent-slug <value>", `agent_slug parameter`).addHelpText("after", `
|
|
39977
40014
|
Examples:
|
|
39978
|
-
hyperline ai-billing
|
|
39979
|
-
hyperline ai-billing upsert-agent-cost-catalog-override --provider <provider> --model <model> --input-per-m-tokens <input_per_m_tokens> --output-per-m-tokens <output_per_m_tokens> --cached-input-per-m-tokens <cached_input_per_m_tokens> --cache-write-per-m-tokens <cache_write_per_m_tokens>
|
|
39980
|
-
hyperline ai-billing upsert-agent-cost-catalog-override --provider <provider> --model <model> --input-per-m-tokens <input_per_m_tokens> --output-per-m-tokens <output_per_m_tokens> --output json`).action(async (opts) => {
|
|
40015
|
+
hyperline ai-billing get-agent-customer-billing-policy --id <id> --agent-slug <agent_slug>`).action(async (opts) => {
|
|
39981
40016
|
const ctx = resource.parent?.opts()._ctx;
|
|
39982
40017
|
if (!ctx) {
|
|
39983
40018
|
process.stderr.write("Error: Not authenticated\n");
|
|
39984
40019
|
process.exit(1);
|
|
39985
40020
|
}
|
|
39986
40021
|
const args = {};
|
|
39987
|
-
if (opts.
|
|
39988
|
-
args.
|
|
39989
|
-
if (opts.
|
|
39990
|
-
args.
|
|
39991
|
-
|
|
39992
|
-
|
|
39993
|
-
|
|
39994
|
-
args
|
|
39995
|
-
|
|
39996
|
-
|
|
39997
|
-
|
|
39998
|
-
|
|
39999
|
-
|
|
40000
|
-
|
|
40022
|
+
if (opts.id !== void 0)
|
|
40023
|
+
args.id = opts.id;
|
|
40024
|
+
if (opts.agentSlug !== void 0)
|
|
40025
|
+
args.agent_slug = opts.agentSlug;
|
|
40026
|
+
await ctx.execute({
|
|
40027
|
+
method: "GET",
|
|
40028
|
+
path: "/v1/ai/billing/customers/{id}/policies/agents/{agent_slug}",
|
|
40029
|
+
args,
|
|
40030
|
+
queryParamKeys: []
|
|
40031
|
+
});
|
|
40032
|
+
});
|
|
40033
|
+
resource.command("upsert-agent-customer-billing-policy").description(`Replace customer billing settings while preserving omitted plan_id and rate_card_id references; null detaches them, and a shared policy enables automatic telemetry billing.`).requiredOption("--id <value>", `id parameter`).requiredOption("--agent-slug <value>", `agent_slug parameter`).requiredOption("--mode <value>", `Billing mode.
|
|
40034
|
+
|
|
40035
|
+
- wallet: Charges a monetary wallet.
|
|
40036
|
+
- credits: Consumes a credit balance.
|
|
40037
|
+
- windows: Meters weighted units against rolling allowances.`).option("--wallet-id <value>", `Customer wallet identifier. Omit on wallet policy writes to provision or reuse the customer's wallet.`).option("--credit-product-id <value>", `Public credit product identifier whose balance this policy consumes.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-mode <value>", `Behavior when credits or an allowance are exhausted. Policy values may inherit the attached plan.
|
|
40038
|
+
|
|
40039
|
+
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
40040
|
+
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--overage-wallet-id <value>", `Wallet charged for overage. Null bills overage in arrears.`).option("--floor <value>", `Minimum available balance a spend check requires, in the policy's denomination.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
40041
|
+
|
|
40042
|
+
- calendar_month: Settles at the end of each UTC calendar month.`).option("--windows <json>", `Rolling allowances. Required for windows plans; each window meters every call. A plan replacement replaces the entire array.`).option("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).option("--plan-id <value>", `Billing plan reference. On policy writes, omission preserves the current plan and null detaches it.`).requiredOption("--blocked", `Whether spending is disabled for this billing scope.`).addHelpText("after", `
|
|
40043
|
+
Examples:
|
|
40044
|
+
hyperline ai-billing upsert-agent-customer-billing-policy --id <id> --agent-slug <agent_slug> --mode <mode> --blocked
|
|
40045
|
+
hyperline ai-billing upsert-agent-customer-billing-policy --id <id> --agent-slug <agent_slug> --mode <mode> --blocked --wallet-id <wallet_id> --credit-product-id <credit_product_id>
|
|
40046
|
+
hyperline ai-billing upsert-agent-customer-billing-policy --id <id> --agent-slug <agent_slug> --mode <mode> --blocked --output json`).action(async (opts) => {
|
|
40047
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40048
|
+
if (!ctx) {
|
|
40049
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40050
|
+
process.exit(1);
|
|
40051
|
+
}
|
|
40052
|
+
const args = {};
|
|
40053
|
+
if (opts.id !== void 0)
|
|
40054
|
+
args.id = opts.id;
|
|
40055
|
+
if (opts.agentSlug !== void 0)
|
|
40056
|
+
args.agent_slug = opts.agentSlug;
|
|
40057
|
+
if (opts.mode !== void 0)
|
|
40058
|
+
args.mode = opts.mode;
|
|
40059
|
+
if (opts.walletId !== void 0)
|
|
40060
|
+
args.wallet_id = opts.walletId;
|
|
40061
|
+
if (opts.creditProductId !== void 0)
|
|
40062
|
+
args.credit_product_id = opts.creditProductId;
|
|
40063
|
+
if (opts.markupPercent !== void 0)
|
|
40064
|
+
args.markup_percent = opts.markupPercent;
|
|
40065
|
+
if (opts.overageMode !== void 0)
|
|
40066
|
+
args.overage_mode = opts.overageMode;
|
|
40067
|
+
if (opts.overageMarkupPercent !== void 0)
|
|
40068
|
+
args.overage_markup_percent = opts.overageMarkupPercent;
|
|
40069
|
+
if (opts.overageRateCardId !== void 0)
|
|
40070
|
+
args.overage_rate_card_id = opts.overageRateCardId;
|
|
40071
|
+
if (opts.overageWalletId !== void 0)
|
|
40072
|
+
args.overage_wallet_id = opts.overageWalletId;
|
|
40073
|
+
if (opts.floor !== void 0)
|
|
40074
|
+
args.floor = opts.floor;
|
|
40075
|
+
if (opts.settlementSchedule !== void 0)
|
|
40076
|
+
args.settlement_schedule = opts.settlementSchedule;
|
|
40077
|
+
if (opts.rateCardId !== void 0)
|
|
40078
|
+
args.rate_card_id = opts.rateCardId;
|
|
40079
|
+
if (opts.planId !== void 0)
|
|
40080
|
+
args.plan_id = opts.planId;
|
|
40081
|
+
if (opts.settlementIntervalMinutes !== void 0)
|
|
40082
|
+
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
40083
|
+
if (opts.blocked !== void 0)
|
|
40084
|
+
args.blocked = true;
|
|
40085
|
+
if (opts.windows !== void 0)
|
|
40086
|
+
args.windows = JSON.parse(opts.windows);
|
|
40001
40087
|
await ctx.execute({
|
|
40002
40088
|
method: "PUT",
|
|
40003
|
-
path: "/v1/ai
|
|
40089
|
+
path: "/v1/ai/billing/customers/{id}/policies/agents/{agent_slug}",
|
|
40004
40090
|
args,
|
|
40005
40091
|
queryParamKeys: []
|
|
40006
40092
|
});
|
|
40007
40093
|
});
|
|
40008
|
-
resource.command("delete-agent-
|
|
40094
|
+
resource.command("delete-agent-customer-billing-policy").description(`Delete one customer's AI billing policy scope. Refused (409) while it owes unsettled consumption or while agent overrides still depend on it.`).requiredOption("--id <value>", `id parameter`).requiredOption("--agent-slug <value>", `agent_slug parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
40009
40095
|
Examples:
|
|
40010
|
-
hyperline ai-billing delete-agent-
|
|
40011
|
-
hyperline ai-billing delete-agent-
|
|
40096
|
+
hyperline ai-billing delete-agent-customer-billing-policy --id <id> --agent-slug <agent_slug>
|
|
40097
|
+
hyperline ai-billing delete-agent-customer-billing-policy --id <id> --agent-slug <agent_slug> --output json`).action(async (opts) => {
|
|
40012
40098
|
const ctx = resource.parent?.opts()._ctx;
|
|
40013
40099
|
if (!ctx) {
|
|
40014
40100
|
process.stderr.write("Error: Not authenticated\n");
|
|
40015
40101
|
process.exit(1);
|
|
40016
40102
|
}
|
|
40017
40103
|
const args = {};
|
|
40018
|
-
if (opts.
|
|
40019
|
-
args.
|
|
40104
|
+
if (opts.id !== void 0)
|
|
40105
|
+
args.id = opts.id;
|
|
40106
|
+
if (opts.agentSlug !== void 0)
|
|
40107
|
+
args.agent_slug = opts.agentSlug;
|
|
40020
40108
|
if (!opts.yes) {
|
|
40021
40109
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
40022
40110
|
if (!confirmed) {
|
|
@@ -40025,129 +40113,156 @@ Examples:
|
|
|
40025
40113
|
}
|
|
40026
40114
|
}
|
|
40027
40115
|
await ctx.execute({
|
|
40028
|
-
method: "DELETE",
|
|
40029
|
-
path: "/v1/ai
|
|
40116
|
+
method: "DELETE",
|
|
40117
|
+
path: "/v1/ai/billing/customers/{id}/policies/agents/{agent_slug}",
|
|
40118
|
+
args,
|
|
40119
|
+
queryParamKeys: []
|
|
40120
|
+
});
|
|
40121
|
+
});
|
|
40122
|
+
resource.command("apply-agent-default-plan").description(`Apply the workspace's default AI agent billing plan to one customer (by id or external id). Idempotent; refuses (409) if the customer already has a different billing policy, 404 when no default plan is set.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
40123
|
+
Examples:
|
|
40124
|
+
hyperline ai-billing apply-agent-default-plan --id <id>
|
|
40125
|
+
hyperline ai-billing apply-agent-default-plan --id <id> --output json`).action(async (opts) => {
|
|
40126
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40127
|
+
if (!ctx) {
|
|
40128
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40129
|
+
process.exit(1);
|
|
40130
|
+
}
|
|
40131
|
+
const args = {};
|
|
40132
|
+
if (opts.id !== void 0)
|
|
40133
|
+
args.id = opts.id;
|
|
40134
|
+
await ctx.execute({
|
|
40135
|
+
method: "POST",
|
|
40136
|
+
path: "/v1/ai/billing/customers/{id}/apply-default-plan",
|
|
40137
|
+
args,
|
|
40138
|
+
queryParamKeys: []
|
|
40139
|
+
});
|
|
40140
|
+
});
|
|
40141
|
+
resource.command("get-agent-customer-balance").description(`Get one customer's live AI balance, shaped by their billing mode: wallet shadow balance, credit pot, or rolling window meters with reset times. Includes per-agent scopes and overage state.`).requiredOption("--id <value>", `id parameter`).option("--agent-slug <value>", `Agent scope identifier. Null is the customer's shared pool.`).addHelpText("after", `
|
|
40142
|
+
Examples:
|
|
40143
|
+
hyperline ai-billing get-agent-customer-balance --id <id>
|
|
40144
|
+
hyperline ai-billing get-agent-customer-balance --id <id> --agent-slug <agent_slug>`).action(async (opts) => {
|
|
40145
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40146
|
+
if (!ctx) {
|
|
40147
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40148
|
+
process.exit(1);
|
|
40149
|
+
}
|
|
40150
|
+
const args = {};
|
|
40151
|
+
if (opts.id !== void 0)
|
|
40152
|
+
args.id = opts.id;
|
|
40153
|
+
if (opts.agentSlug !== void 0)
|
|
40154
|
+
args.agent_slug = opts.agentSlug;
|
|
40155
|
+
await ctx.execute({
|
|
40156
|
+
method: "GET",
|
|
40157
|
+
path: "/v1/ai/billing/customers/{id}/balance",
|
|
40158
|
+
args,
|
|
40159
|
+
queryParamKeys: ["agent_slug"]
|
|
40160
|
+
});
|
|
40161
|
+
});
|
|
40162
|
+
resource.command("reset-agent-customer-windows").description(`Reset one customer's open AI allowance windows so their next call starts a fresh full allowance. Windows-mode scopes only.`).requiredOption("--id <value>", `id parameter`).option("--agent-slug <value>", `Agent scope identifier. Null is the customer's shared pool.`).addHelpText("after", `
|
|
40163
|
+
Examples:
|
|
40164
|
+
hyperline ai-billing reset-agent-customer-windows --id <id>
|
|
40165
|
+
hyperline ai-billing reset-agent-customer-windows --id <id> --agent-slug <agent_slug>
|
|
40166
|
+
hyperline ai-billing reset-agent-customer-windows --id <id> --output json`).action(async (opts) => {
|
|
40167
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40168
|
+
if (!ctx) {
|
|
40169
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40170
|
+
process.exit(1);
|
|
40171
|
+
}
|
|
40172
|
+
const args = {};
|
|
40173
|
+
if (opts.id !== void 0)
|
|
40174
|
+
args.id = opts.id;
|
|
40175
|
+
if (opts.agentSlug !== void 0)
|
|
40176
|
+
args.agent_slug = opts.agentSlug;
|
|
40177
|
+
await ctx.execute({
|
|
40178
|
+
method: "POST",
|
|
40179
|
+
path: "/v1/ai/billing/customers/{id}/windows/reset",
|
|
40030
40180
|
args,
|
|
40031
|
-
queryParamKeys: []
|
|
40181
|
+
queryParamKeys: ["agent_slug"]
|
|
40032
40182
|
});
|
|
40033
40183
|
});
|
|
40034
|
-
resource.command("list-agent-customer-
|
|
40184
|
+
resource.command("list-agent-customer-consumption").description(`List one customer's AI consumption ledger entries, newest first, with amounts, denominations and overage flags. Filter by agent scope, overage, and from/to time range; paginated with take/skip.`).requiredOption("--id <value>", `id parameter`).option("--agent-slug <value>", `Billing scope: an empty string selects the shared pool; omission includes all scopes.`).option("--overage <value>", `Filter by overage status; omission includes both ordinary and overage entries.`).option("--from <value>", `UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--to <value>", `UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
40035
40185
|
Examples:
|
|
40036
|
-
hyperline ai-billing list-agent-customer-
|
|
40186
|
+
hyperline ai-billing list-agent-customer-consumption --id <id>
|
|
40187
|
+
hyperline ai-billing list-agent-customer-consumption --id <id> --agent-slug <agent_slug> --overage <overage>`).action(async (opts) => {
|
|
40037
40188
|
const ctx = resource.parent?.opts()._ctx;
|
|
40038
40189
|
if (!ctx) {
|
|
40039
40190
|
process.stderr.write("Error: Not authenticated\n");
|
|
40040
40191
|
process.exit(1);
|
|
40041
40192
|
}
|
|
40042
40193
|
const args = {};
|
|
40043
|
-
if (opts.
|
|
40044
|
-
args.
|
|
40194
|
+
if (opts.id !== void 0)
|
|
40195
|
+
args.id = opts.id;
|
|
40196
|
+
if (opts.agentSlug !== void 0)
|
|
40197
|
+
args.agent_slug = opts.agentSlug;
|
|
40198
|
+
if (opts.overage !== void 0)
|
|
40199
|
+
args.overage = opts.overage;
|
|
40200
|
+
if (opts.from !== void 0)
|
|
40201
|
+
args.from = opts.from;
|
|
40202
|
+
if (opts.to !== void 0)
|
|
40203
|
+
args.to = opts.to;
|
|
40204
|
+
if (opts.take !== void 0)
|
|
40205
|
+
args.take = Number(opts.take);
|
|
40206
|
+
if (opts.skip !== void 0)
|
|
40207
|
+
args.skip = Number(opts.skip);
|
|
40045
40208
|
await ctx.execute({
|
|
40046
40209
|
method: "GET",
|
|
40047
|
-
path: "/v1/ai
|
|
40210
|
+
path: "/v1/ai/billing/customers/{id}/consumption",
|
|
40048
40211
|
args,
|
|
40049
|
-
queryParamKeys: []
|
|
40212
|
+
queryParamKeys: ["agent_slug", "overage", "from", "to", "take", "skip"]
|
|
40050
40213
|
});
|
|
40051
40214
|
});
|
|
40052
|
-
resource.command("get-
|
|
40215
|
+
resource.command("get-product-ai-rate-card").description(`Get the default AI rate-card reference for a credit product, or 404 when none is attached.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
40053
40216
|
Examples:
|
|
40054
|
-
hyperline ai-billing get-
|
|
40055
|
-
hyperline ai-billing get-agent-customer-policy --customer-id <customer_id> --agent <agent>`).action(async (opts) => {
|
|
40217
|
+
hyperline ai-billing get-product-ai-rate-card --id <id>`).action(async (opts) => {
|
|
40056
40218
|
const ctx = resource.parent?.opts()._ctx;
|
|
40057
40219
|
if (!ctx) {
|
|
40058
40220
|
process.stderr.write("Error: Not authenticated\n");
|
|
40059
40221
|
process.exit(1);
|
|
40060
40222
|
}
|
|
40061
40223
|
const args = {};
|
|
40062
|
-
if (opts.
|
|
40063
|
-
args.
|
|
40064
|
-
if (opts.agent !== void 0)
|
|
40065
|
-
args.agent = opts.agent;
|
|
40224
|
+
if (opts.id !== void 0)
|
|
40225
|
+
args.id = opts.id;
|
|
40066
40226
|
await ctx.execute({
|
|
40067
40227
|
method: "GET",
|
|
40068
|
-
path: "/v1/ai
|
|
40228
|
+
path: "/v1/ai/billing/products/{id}/rate-card",
|
|
40069
40229
|
args,
|
|
40070
|
-
queryParamKeys: [
|
|
40230
|
+
queryParamKeys: []
|
|
40071
40231
|
});
|
|
40072
40232
|
});
|
|
40073
|
-
resource.command("
|
|
40074
|
-
|
|
40075
|
-
- wallet: Charges a monetary wallet.
|
|
40076
|
-
- credits: Consumes a credit balance.
|
|
40077
|
-
- windows: Meters weighted units against rolling allowances.`).option("--wallet-id <value>", `Customer wallet identifier. Omit on wallet policy writes to provision or reuse the customer's wallet.`).option("--credit-product-id <value>", `Public credit product identifier whose balance this policy consumes.`).option("--markup-percent <value>", `Percentage added to resolved cost. Null on writes means no override; an attached plan may supply the value.`).option("--overage-mode <value>", `Behavior when credits or an allowance are exhausted. Policy values may inherit the attached plan.
|
|
40078
|
-
|
|
40079
|
-
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
40080
|
-
- metered: Prices the whole call as monetary overage, using the overage card or USD provider cost plus markup.`).option("--overage-markup-percent <value>", `Percentage added to provider cost for overage. Mutually exclusive with overage_rate_card_id.`).option("--overage-rate-card-id <value>", `Currency rate card used to price overage directly. Null means provider cost plus the resolved overage markup.`).option("--overage-wallet-id <value>", `Wallet charged for overage. Null bills overage in arrears.`).option("--floor <value>", `Minimum available balance a spend check requires, in the policy's denomination.`).option("--settlement-interval-minutes <number>", `Settlement interval in minutes. Null means no interval override. Mutually exclusive with settlement_schedule.`).option("--settlement-schedule <value>", `Calendar settlement schedule. Null clears the override; mutually exclusive with settlement_interval_minutes.
|
|
40081
|
-
|
|
40082
|
-
- calendar_month: Settles at the end of each UTC calendar month.`).option("--credit-rates <json>", `Inline credit pricing. Mutually exclusive with rate_card_id. Omitted rates may be supplied by a plan or product default.`).option("--window-rates <json>", `Window definitions and optional inline unit rates. An attached plan may supply omitted definitions; rate_card_id may supply unit rates.`).option("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).option("--plan-id <value>", `Billing plan reference. On policy writes, omission preserves the current plan and null detaches it.`).requiredOption("--blocked", `Whether spending is disabled for this billing scope.`).addHelpText("after", `
|
|
40233
|
+
resource.command("set-product-ai-rate-card").description(`Attach a credits-denominated AI rate card with complete fallback pricing as the credit product's default.`).requiredOption("--id <value>", `id parameter`).requiredOption("--rate-card-id <value>", `Rate card reference. On policy writes, omission preserves the current reference and null detaches it; on plan replacement omission clears it.`).addHelpText("after", `
|
|
40083
40234
|
Examples:
|
|
40084
|
-
hyperline ai-billing
|
|
40085
|
-
hyperline ai-billing
|
|
40086
|
-
hyperline ai-billing upsert-agent-customer-policy --customer-id <customer_id> --mode <mode> --blocked --output json`).action(async (opts) => {
|
|
40235
|
+
hyperline ai-billing set-product-ai-rate-card --id <id> --rate-card-id <rate_card_id>
|
|
40236
|
+
hyperline ai-billing set-product-ai-rate-card --id <id> --rate-card-id <rate_card_id> --output json`).action(async (opts) => {
|
|
40087
40237
|
const ctx = resource.parent?.opts()._ctx;
|
|
40088
40238
|
if (!ctx) {
|
|
40089
40239
|
process.stderr.write("Error: Not authenticated\n");
|
|
40090
40240
|
process.exit(1);
|
|
40091
40241
|
}
|
|
40092
40242
|
const args = {};
|
|
40093
|
-
if (opts.
|
|
40094
|
-
args.
|
|
40095
|
-
if (opts.agent !== void 0)
|
|
40096
|
-
args.agent = opts.agent;
|
|
40097
|
-
if (opts.mode !== void 0)
|
|
40098
|
-
args.mode = opts.mode;
|
|
40099
|
-
if (opts.walletId !== void 0)
|
|
40100
|
-
args.wallet_id = opts.walletId;
|
|
40101
|
-
if (opts.creditProductId !== void 0)
|
|
40102
|
-
args.credit_product_id = opts.creditProductId;
|
|
40103
|
-
if (opts.markupPercent !== void 0)
|
|
40104
|
-
args.markup_percent = opts.markupPercent;
|
|
40105
|
-
if (opts.overageMode !== void 0)
|
|
40106
|
-
args.overage_mode = opts.overageMode;
|
|
40107
|
-
if (opts.overageMarkupPercent !== void 0)
|
|
40108
|
-
args.overage_markup_percent = opts.overageMarkupPercent;
|
|
40109
|
-
if (opts.overageRateCardId !== void 0)
|
|
40110
|
-
args.overage_rate_card_id = opts.overageRateCardId;
|
|
40111
|
-
if (opts.overageWalletId !== void 0)
|
|
40112
|
-
args.overage_wallet_id = opts.overageWalletId;
|
|
40113
|
-
if (opts.floor !== void 0)
|
|
40114
|
-
args.floor = opts.floor;
|
|
40115
|
-
if (opts.settlementSchedule !== void 0)
|
|
40116
|
-
args.settlement_schedule = opts.settlementSchedule;
|
|
40243
|
+
if (opts.id !== void 0)
|
|
40244
|
+
args.id = opts.id;
|
|
40117
40245
|
if (opts.rateCardId !== void 0)
|
|
40118
40246
|
args.rate_card_id = opts.rateCardId;
|
|
40119
|
-
if (opts.planId !== void 0)
|
|
40120
|
-
args.plan_id = opts.planId;
|
|
40121
|
-
if (opts.settlementIntervalMinutes !== void 0)
|
|
40122
|
-
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
40123
|
-
if (opts.blocked !== void 0)
|
|
40124
|
-
args.blocked = true;
|
|
40125
|
-
if (opts.creditRates !== void 0)
|
|
40126
|
-
args.credit_rates = JSON.parse(opts.creditRates);
|
|
40127
|
-
if (opts.windowRates !== void 0)
|
|
40128
|
-
args.window_rates = JSON.parse(opts.windowRates);
|
|
40129
40247
|
await ctx.execute({
|
|
40130
40248
|
method: "PUT",
|
|
40131
|
-
path: "/v1/ai
|
|
40249
|
+
path: "/v1/ai/billing/products/{id}/rate-card",
|
|
40132
40250
|
args,
|
|
40133
|
-
queryParamKeys: [
|
|
40251
|
+
queryParamKeys: []
|
|
40134
40252
|
});
|
|
40135
40253
|
});
|
|
40136
|
-
resource.command("
|
|
40254
|
+
resource.command("clear-product-ai-rate-card").description(`Detach a credit product's default AI rate card without deleting the card, or return 404 when none is attached.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
40137
40255
|
Examples:
|
|
40138
|
-
hyperline ai-billing
|
|
40139
|
-
hyperline ai-billing
|
|
40140
|
-
hyperline ai-billing delete-agent-customer-policy --customer-id <customer_id> --output json`).action(async (opts) => {
|
|
40256
|
+
hyperline ai-billing clear-product-ai-rate-card --id <id>
|
|
40257
|
+
hyperline ai-billing clear-product-ai-rate-card --id <id> --output json`).action(async (opts) => {
|
|
40141
40258
|
const ctx = resource.parent?.opts()._ctx;
|
|
40142
40259
|
if (!ctx) {
|
|
40143
40260
|
process.stderr.write("Error: Not authenticated\n");
|
|
40144
40261
|
process.exit(1);
|
|
40145
40262
|
}
|
|
40146
40263
|
const args = {};
|
|
40147
|
-
if (opts.
|
|
40148
|
-
args.
|
|
40149
|
-
if (opts.agent !== void 0)
|
|
40150
|
-
args.agent = opts.agent;
|
|
40264
|
+
if (opts.id !== void 0)
|
|
40265
|
+
args.id = opts.id;
|
|
40151
40266
|
if (!opts.yes) {
|
|
40152
40267
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
40153
40268
|
if (!confirmed) {
|
|
@@ -40157,118 +40272,167 @@ Examples:
|
|
|
40157
40272
|
}
|
|
40158
40273
|
await ctx.execute({
|
|
40159
40274
|
method: "DELETE",
|
|
40160
|
-
path: "/v1/ai
|
|
40275
|
+
path: "/v1/ai/billing/products/{id}/rate-card",
|
|
40161
40276
|
args,
|
|
40162
|
-
queryParamKeys: [
|
|
40277
|
+
queryParamKeys: []
|
|
40163
40278
|
});
|
|
40164
40279
|
});
|
|
40165
|
-
|
|
40280
|
+
}
|
|
40281
|
+
|
|
40282
|
+
// build/commands/generated/ai-costs.js
|
|
40283
|
+
function registerAi_CostsCommands(parent) {
|
|
40284
|
+
const resource = parent.command("ai-costs").description("Manage ai > costs");
|
|
40285
|
+
resource.command("list-agent-cost-catalog").description(`List the AI cost catalog: registry model prices merged with this workspace's negotiated overrides, its own custom cost items (source custom), and the unpriced pairs its telemetry has carried (source unlisted). Rates are USD decimal strings. Pass enabled_only=true for just the enabled catalog.`).option("--take <number>", `Maximum catalog entries to return.`).option("--skip <number>", `skip`).option("--enabled-only <value>", `enabled_only`).addHelpText("after", `
|
|
40166
40286
|
Examples:
|
|
40167
|
-
hyperline ai-
|
|
40168
|
-
hyperline ai-
|
|
40287
|
+
hyperline ai-costs list-agent-cost-catalog
|
|
40288
|
+
hyperline ai-costs list-agent-cost-catalog --take <take> --enabled-only <enabled_only>`).action(async (opts) => {
|
|
40169
40289
|
const ctx = resource.parent?.opts()._ctx;
|
|
40170
40290
|
if (!ctx) {
|
|
40171
40291
|
process.stderr.write("Error: Not authenticated\n");
|
|
40172
40292
|
process.exit(1);
|
|
40173
40293
|
}
|
|
40174
40294
|
const args = {};
|
|
40175
|
-
if (opts.
|
|
40176
|
-
args.
|
|
40295
|
+
if (opts.enabledOnly !== void 0)
|
|
40296
|
+
args.enabled_only = opts.enabledOnly;
|
|
40297
|
+
if (opts.take !== void 0)
|
|
40298
|
+
args.take = Number(opts.take);
|
|
40299
|
+
if (opts.skip !== void 0)
|
|
40300
|
+
args.skip = Number(opts.skip);
|
|
40301
|
+
await ctx.execute({
|
|
40302
|
+
method: "GET",
|
|
40303
|
+
path: "/v1/ai/billing/costs",
|
|
40304
|
+
args,
|
|
40305
|
+
queryParamKeys: ["take", "skip", "enabled_only"]
|
|
40306
|
+
});
|
|
40307
|
+
});
|
|
40308
|
+
resource.command("create-agent-cost-catalog-item").description(`Create a custom provider/item cost; an existing pair returns 200 with its unchanged rates, so use PUT /v1/ai/billing/costs/items/:id to edit it.`).requiredOption("--provider <value>", `AI model provider, or the vendor of a custom cost item. This is not an integration connection.`).requiredOption("--item <value>", `Custom item name matching the usage payload.`).requiredOption("--dimensions <json>", `Additional billable dimensions; each key matches a usage_extra key and rates use the owning card's units or USD for cost-catalog dimensions.`).addHelpText("after", `
|
|
40309
|
+
Examples:
|
|
40310
|
+
hyperline ai-costs create-agent-cost-catalog-item --provider <provider> --item <item> --dimensions <dimensions>
|
|
40311
|
+
hyperline ai-costs create-agent-cost-catalog-item --provider <provider> --item <item> --dimensions <dimensions> --output json`).action(async (opts) => {
|
|
40312
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
40313
|
+
if (!ctx) {
|
|
40314
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
40315
|
+
process.exit(1);
|
|
40316
|
+
}
|
|
40317
|
+
const args = {};
|
|
40318
|
+
if (opts.provider !== void 0)
|
|
40319
|
+
args.provider = opts.provider;
|
|
40320
|
+
if (opts.item !== void 0)
|
|
40321
|
+
args.item = opts.item;
|
|
40322
|
+
if (opts.dimensions !== void 0)
|
|
40323
|
+
args.dimensions = JSON.parse(opts.dimensions);
|
|
40177
40324
|
await ctx.execute({
|
|
40178
40325
|
method: "POST",
|
|
40179
|
-
path: "/v1/ai
|
|
40326
|
+
path: "/v1/ai/billing/costs/items",
|
|
40180
40327
|
args,
|
|
40181
40328
|
queryParamKeys: []
|
|
40182
40329
|
});
|
|
40183
40330
|
});
|
|
40184
|
-
resource.command("
|
|
40331
|
+
resource.command("delete-agent-cost-catalog-item").description(`Close a custom AI cost item by its custom_item_id. History is kept; new calls on that pair go back to unpriced. An override id passed here is a 404.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
40185
40332
|
Examples:
|
|
40186
|
-
hyperline ai-
|
|
40187
|
-
hyperline ai-
|
|
40333
|
+
hyperline ai-costs delete-agent-cost-catalog-item --id <id>
|
|
40334
|
+
hyperline ai-costs delete-agent-cost-catalog-item --id <id> --output json`).action(async (opts) => {
|
|
40188
40335
|
const ctx = resource.parent?.opts()._ctx;
|
|
40189
40336
|
if (!ctx) {
|
|
40190
40337
|
process.stderr.write("Error: Not authenticated\n");
|
|
40191
40338
|
process.exit(1);
|
|
40192
40339
|
}
|
|
40193
40340
|
const args = {};
|
|
40194
|
-
if (opts.
|
|
40195
|
-
args.
|
|
40196
|
-
if (opts.
|
|
40197
|
-
|
|
40341
|
+
if (opts.id !== void 0)
|
|
40342
|
+
args.id = opts.id;
|
|
40343
|
+
if (!opts.yes) {
|
|
40344
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
40345
|
+
if (!confirmed) {
|
|
40346
|
+
process.stdout.write("Aborted.\n");
|
|
40347
|
+
return;
|
|
40348
|
+
}
|
|
40349
|
+
}
|
|
40198
40350
|
await ctx.execute({
|
|
40199
|
-
method: "
|
|
40200
|
-
path: "/v1/ai
|
|
40351
|
+
method: "DELETE",
|
|
40352
|
+
path: "/v1/ai/billing/costs/items/{id}",
|
|
40201
40353
|
args,
|
|
40202
|
-
queryParamKeys: [
|
|
40354
|
+
queryParamKeys: []
|
|
40203
40355
|
});
|
|
40204
40356
|
});
|
|
40205
|
-
resource.command("
|
|
40357
|
+
resource.command("upsert-agent-cost-catalog-override").description(`Set this workspace's negotiated price for a registry AI model (input/output/cached/cache-write USD per 1M tokens, plus optional dimensions). Replaces any open override immediately; historical calls keep their original rate. A pair the registry does not know is refused \u2014 create a custom cost item instead.`).requiredOption("--provider <value>", `AI model provider, or the vendor of a custom cost item. This is not an integration connection.`).requiredOption("--model <value>", `Model identifier, or custom item identifier. Null on wildcard pricing rows.`).requiredOption("--input-per-m-tokens <value>", `Provider cost in USD per million input tokens, as an exact decimal string.`).requiredOption("--output-per-m-tokens <value>", `Provider cost in USD per million output tokens, as an exact decimal string.`).option("--cached-input-per-m-tokens <value>", `Provider cost in USD per million cached input tokens, as an exact decimal string.`).option("--cache-write-per-m-tokens <value>", `Provider cost in USD per million cache write tokens, as an exact decimal string.`).option("--dimensions <json>", `Additional billable dimensions; each key matches a usage_extra key and rates use the owning card's units or USD for cost-catalog dimensions.`).addHelpText("after", `
|
|
40206
40358
|
Examples:
|
|
40207
|
-
hyperline ai-
|
|
40208
|
-
hyperline ai-
|
|
40209
|
-
hyperline ai-
|
|
40359
|
+
hyperline ai-costs upsert-agent-cost-catalog-override --provider <provider> --model <model> --input-per-m-tokens <input_per_m_tokens> --output-per-m-tokens <output_per_m_tokens>
|
|
40360
|
+
hyperline ai-costs upsert-agent-cost-catalog-override --provider <provider> --model <model> --input-per-m-tokens <input_per_m_tokens> --output-per-m-tokens <output_per_m_tokens> --cached-input-per-m-tokens <cached_input_per_m_tokens> --cache-write-per-m-tokens <cache_write_per_m_tokens>
|
|
40361
|
+
hyperline ai-costs upsert-agent-cost-catalog-override --provider <provider> --model <model> --input-per-m-tokens <input_per_m_tokens> --output-per-m-tokens <output_per_m_tokens> --output json`).action(async (opts) => {
|
|
40210
40362
|
const ctx = resource.parent?.opts()._ctx;
|
|
40211
40363
|
if (!ctx) {
|
|
40212
40364
|
process.stderr.write("Error: Not authenticated\n");
|
|
40213
40365
|
process.exit(1);
|
|
40214
40366
|
}
|
|
40215
40367
|
const args = {};
|
|
40216
|
-
if (opts.
|
|
40217
|
-
args.
|
|
40218
|
-
if (opts.
|
|
40219
|
-
args.
|
|
40368
|
+
if (opts.provider !== void 0)
|
|
40369
|
+
args.provider = opts.provider;
|
|
40370
|
+
if (opts.model !== void 0)
|
|
40371
|
+
args.model = opts.model;
|
|
40372
|
+
if (opts.inputPerMTokens !== void 0)
|
|
40373
|
+
args.input_per_m_tokens = opts.inputPerMTokens;
|
|
40374
|
+
if (opts.outputPerMTokens !== void 0)
|
|
40375
|
+
args.output_per_m_tokens = opts.outputPerMTokens;
|
|
40376
|
+
if (opts.cachedInputPerMTokens !== void 0)
|
|
40377
|
+
args.cached_input_per_m_tokens = opts.cachedInputPerMTokens;
|
|
40378
|
+
if (opts.cacheWritePerMTokens !== void 0)
|
|
40379
|
+
args.cache_write_per_m_tokens = opts.cacheWritePerMTokens;
|
|
40380
|
+
if (opts.dimensions !== void 0)
|
|
40381
|
+
args.dimensions = JSON.parse(opts.dimensions);
|
|
40220
40382
|
await ctx.execute({
|
|
40221
|
-
method: "
|
|
40222
|
-
path: "/v1/ai
|
|
40383
|
+
method: "PUT",
|
|
40384
|
+
path: "/v1/ai/billing/costs/overrides",
|
|
40223
40385
|
args,
|
|
40224
|
-
queryParamKeys: [
|
|
40386
|
+
queryParamKeys: []
|
|
40225
40387
|
});
|
|
40226
40388
|
});
|
|
40227
|
-
resource.command("
|
|
40389
|
+
resource.command("delete-agent-cost-catalog-override").description(`Close this workspace's negotiated price override by its override.id; pricing falls back to the global registry rate. A custom cost item id passed here is a 404.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
40228
40390
|
Examples:
|
|
40229
|
-
hyperline ai-
|
|
40230
|
-
hyperline ai-
|
|
40391
|
+
hyperline ai-costs delete-agent-cost-catalog-override --id <id>
|
|
40392
|
+
hyperline ai-costs delete-agent-cost-catalog-override --id <id> --output json`).action(async (opts) => {
|
|
40231
40393
|
const ctx = resource.parent?.opts()._ctx;
|
|
40232
40394
|
if (!ctx) {
|
|
40233
40395
|
process.stderr.write("Error: Not authenticated\n");
|
|
40234
40396
|
process.exit(1);
|
|
40235
40397
|
}
|
|
40236
40398
|
const args = {};
|
|
40237
|
-
if (opts.
|
|
40238
|
-
args.
|
|
40239
|
-
if (opts.
|
|
40240
|
-
|
|
40241
|
-
|
|
40242
|
-
|
|
40243
|
-
|
|
40244
|
-
|
|
40245
|
-
|
|
40246
|
-
args.to = opts.to;
|
|
40247
|
-
if (opts.take !== void 0)
|
|
40248
|
-
args.take = Number(opts.take);
|
|
40249
|
-
if (opts.skip !== void 0)
|
|
40250
|
-
args.skip = Number(opts.skip);
|
|
40399
|
+
if (opts.id !== void 0)
|
|
40400
|
+
args.id = opts.id;
|
|
40401
|
+
if (!opts.yes) {
|
|
40402
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
40403
|
+
if (!confirmed) {
|
|
40404
|
+
process.stdout.write("Aborted.\n");
|
|
40405
|
+
return;
|
|
40406
|
+
}
|
|
40407
|
+
}
|
|
40251
40408
|
await ctx.execute({
|
|
40252
|
-
method: "
|
|
40253
|
-
path: "/v1/ai
|
|
40409
|
+
method: "DELETE",
|
|
40410
|
+
path: "/v1/ai/billing/costs/overrides/{id}",
|
|
40254
40411
|
args,
|
|
40255
|
-
queryParamKeys: [
|
|
40412
|
+
queryParamKeys: []
|
|
40256
40413
|
});
|
|
40257
40414
|
});
|
|
40258
|
-
resource.command("
|
|
40415
|
+
resource.command("replace-agent-cost-catalog-item").description(`Replace a custom item's provider, item and dimensions, preserving historical prices and returning the new active custom_item_id.`).requiredOption("--id <value>", `id parameter`).requiredOption("--provider <value>", `AI model provider, or the vendor of a custom cost item. This is not an integration connection.`).requiredOption("--item <value>", `Custom item name matching the usage payload.`).requiredOption("--dimensions <json>", `Additional billable dimensions; each key matches a usage_extra key and rates use the owning card's units or USD for cost-catalog dimensions.`).addHelpText("after", `
|
|
40259
40416
|
Examples:
|
|
40260
|
-
hyperline ai-
|
|
40417
|
+
hyperline ai-costs replace-agent-cost-catalog-item --id <id> --provider <provider> --item <item> --dimensions <dimensions>
|
|
40418
|
+
hyperline ai-costs replace-agent-cost-catalog-item --id <id> --provider <provider> --item <item> --dimensions <dimensions> --output json`).action(async (opts) => {
|
|
40261
40419
|
const ctx = resource.parent?.opts()._ctx;
|
|
40262
40420
|
if (!ctx) {
|
|
40263
40421
|
process.stderr.write("Error: Not authenticated\n");
|
|
40264
40422
|
process.exit(1);
|
|
40265
40423
|
}
|
|
40266
40424
|
const args = {};
|
|
40267
|
-
if (opts.
|
|
40268
|
-
args.
|
|
40425
|
+
if (opts.id !== void 0)
|
|
40426
|
+
args.id = opts.id;
|
|
40427
|
+
if (opts.provider !== void 0)
|
|
40428
|
+
args.provider = opts.provider;
|
|
40429
|
+
if (opts.item !== void 0)
|
|
40430
|
+
args.item = opts.item;
|
|
40431
|
+
if (opts.dimensions !== void 0)
|
|
40432
|
+
args.dimensions = JSON.parse(opts.dimensions);
|
|
40269
40433
|
await ctx.execute({
|
|
40270
|
-
method: "
|
|
40271
|
-
path: "/v1/ai
|
|
40434
|
+
method: "PUT",
|
|
40435
|
+
path: "/v1/ai/billing/costs/items/{id}",
|
|
40272
40436
|
args,
|
|
40273
40437
|
queryParamKeys: []
|
|
40274
40438
|
});
|
|
@@ -41945,7 +42109,7 @@ Examples:
|
|
|
41945
42109
|
queryParamKeys: []
|
|
41946
42110
|
});
|
|
41947
42111
|
});
|
|
41948
|
-
resource.command("purchase-customer-credits").description(`Purchase credits for a customer. This generates an invoice and charges the customer. Returns the invoice ID and new balance.`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).requiredOption("--credit-count <number>", `Value indicating a number of credits to add. If \`price_id\` is defined, this value must correspond to a full credit pack for the price.`).option("--amount-excluding-tax <number>", `Custom amount for the added credits. Either \`amount_excluding_tax\` or \`price_id\` must be defined. Expressed in currency's smallest unit.`).option("--price-id <value>", `Price ID used to add credits. The price must be of type \`bundle\`. Either \`amount_excluding_tax\` or \`price_id\` must be defined.`).option("--expires-at <value>", `Expiration date for credits linked to this transaction. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
|
|
42112
|
+
resource.command("purchase-customer-credits").description(`Purchase credits for a customer. This generates an invoice and charges the customer's card immediately, granting the credits only once paid. Requires a card payment method (otherwise fails with reason \`payment_method_not_supported\`). Returns the invoice ID and new balance.`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).requiredOption("--credit-count <number>", `Value indicating a number of credits to add. If \`price_id\` is defined, this value must correspond to a full credit pack for the price.`).option("--amount-excluding-tax <number>", `Custom amount for the added credits. Either \`amount_excluding_tax\` or \`price_id\` must be defined. Expressed in currency's smallest unit.`).option("--price-id <value>", `Price ID used to add credits. The price must be of type \`bundle\`. Either \`amount_excluding_tax\` or \`price_id\` must be defined.`).option("--expires-at <value>", `Expiration date for credits linked to this transaction. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).addHelpText("after", `
|
|
41949
42113
|
Examples:
|
|
41950
42114
|
hyperline customers-credits purchase-customer-credits --id <id> --product-id <productId> --credit-count <credit_count>
|
|
41951
42115
|
hyperline customers-credits purchase-customer-credits --id <id> --product-id <productId> --credit-count <credit_count> --amount-excluding-tax <amount_excluding_tax> --price-id <price_id>
|
|
@@ -42027,6 +42191,54 @@ Examples:
|
|
|
42027
42191
|
queryParamKeys: []
|
|
42028
42192
|
});
|
|
42029
42193
|
});
|
|
42194
|
+
resource.command("get-customer-credit-portal-settings").description(`Get whether a customer can top up a credit product from the customer portal, at which price, and which prices can be selected.`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).addHelpText("after", `
|
|
42195
|
+
Examples:
|
|
42196
|
+
hyperline customers-credits get-customer-credit-portal-settings --id <id> --product-id <productId>`).action(async (opts) => {
|
|
42197
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42198
|
+
if (!ctx) {
|
|
42199
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42200
|
+
process.exit(1);
|
|
42201
|
+
}
|
|
42202
|
+
const args = {};
|
|
42203
|
+
if (opts.id !== void 0)
|
|
42204
|
+
args.id = opts.id;
|
|
42205
|
+
if (opts.productId !== void 0)
|
|
42206
|
+
args.productId = opts.productId;
|
|
42207
|
+
await ctx.execute({
|
|
42208
|
+
method: "GET",
|
|
42209
|
+
path: "/v1/customers/{id}/credits/{productId}/portal-settings",
|
|
42210
|
+
args,
|
|
42211
|
+
queryParamKeys: []
|
|
42212
|
+
});
|
|
42213
|
+
});
|
|
42214
|
+
resource.command("update-customer-credit-portal-settings").description(`Enable or disable customer portal credit top-ups for a customer and credit product, with the price configuration (or a custom price) the customer pays. Enabling requires the customer's credit balance for the product: create it first (createCustomerCredit, a 0 balance is fine).`).requiredOption("--id <value>", `id parameter`).requiredOption("--product-id <value>", `productId parameter`).requiredOption("--enabled", `Whether the customer can buy this credit product from the customer portal. Enabling requires a price: \`price_configuration_id\`, \`custom_price_configuration\`, or the price already set. Disabling clears the price and removes the customer's own price.`).option("--price-configuration-id <value>", `ID of one of the credit product's price configurations, in the customer's price book and currency, of type \`bundle\`, \`volume\` or \`bulk\`. Mutually exclusive with \`custom_price_configuration\`.`).option("--custom-price-configuration <json>", `A price of the customer's own, in the customer's currency, replacing any previous one. Same shape as a credit product price configuration. Mutually exclusive with \`price_configuration_id\`. It needs at least one price; \`unit_count\` is a whole number of at least 1; \`amount\` is never negative, a \`bundle\` pack is never free, and the price is not free altogether; volume tiers start at 0 and each starts where the previous one ends; bulk tiers are in increasing \`to\` order; only the last tier has \`to: null\`. Otherwise the request fails with reason \`invalid_custom_price\`.`).addHelpText("after", `
|
|
42215
|
+
Examples:
|
|
42216
|
+
hyperline customers-credits update-customer-credit-portal-settings --id <id> --product-id <productId> --enabled
|
|
42217
|
+
hyperline customers-credits update-customer-credit-portal-settings --id <id> --product-id <productId> --enabled --price-configuration-id <price_configuration_id> --custom-price-configuration <custom_price_configuration>
|
|
42218
|
+
hyperline customers-credits update-customer-credit-portal-settings --id <id> --product-id <productId> --enabled --output json`).action(async (opts) => {
|
|
42219
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42220
|
+
if (!ctx) {
|
|
42221
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42222
|
+
process.exit(1);
|
|
42223
|
+
}
|
|
42224
|
+
const args = {};
|
|
42225
|
+
if (opts.id !== void 0)
|
|
42226
|
+
args.id = opts.id;
|
|
42227
|
+
if (opts.productId !== void 0)
|
|
42228
|
+
args.productId = opts.productId;
|
|
42229
|
+
if (opts.priceConfigurationId !== void 0)
|
|
42230
|
+
args.price_configuration_id = opts.priceConfigurationId;
|
|
42231
|
+
if (opts.enabled !== void 0)
|
|
42232
|
+
args.enabled = true;
|
|
42233
|
+
if (opts.customPriceConfiguration !== void 0)
|
|
42234
|
+
args.custom_price_configuration = JSON.parse(opts.customPriceConfiguration);
|
|
42235
|
+
await ctx.execute({
|
|
42236
|
+
method: "PUT",
|
|
42237
|
+
path: "/v1/customers/{id}/credits/{productId}/portal-settings",
|
|
42238
|
+
args,
|
|
42239
|
+
queryParamKeys: []
|
|
42240
|
+
});
|
|
42241
|
+
});
|
|
42030
42242
|
}
|
|
42031
42243
|
|
|
42032
42244
|
// build/commands/generated/customers-payment-methods.js
|
|
@@ -43156,7 +43368,7 @@ Examples:
|
|
|
43156
43368
|
queryParamKeys: []
|
|
43157
43369
|
});
|
|
43158
43370
|
});
|
|
43159
|
-
resource.command("void").description(`Void an invoice in to_pay status. Automatically generates a corresponding credit note. Optionally send an email notification.`).requiredOption("--id <value>", `id parameter`).option("--send-email", `Indicates if an email for the generated credit note should be sent to the customer.`).addHelpText("after", `
|
|
43371
|
+
resource.command("void").description(`Void an invoice in to_pay status. Automatically generates a corresponding credit note. A zero-priced paid invoice can also be voided, without a credit note. Optionally send an email notification.`).requiredOption("--id <value>", `id parameter`).option("--send-email", `Indicates if an email for the generated credit note should be sent to the customer.`).addHelpText("after", `
|
|
43160
43372
|
Examples:
|
|
43161
43373
|
hyperline invoices void --id <id>
|
|
43162
43374
|
hyperline invoices void --id <id> --send-email
|
|
@@ -43465,7 +43677,7 @@ Examples:
|
|
|
43465
43677
|
queryParamKeys: []
|
|
43466
43678
|
});
|
|
43467
43679
|
});
|
|
43468
|
-
resource.command("create-invoicing-entity").description(`Create a new invoicing entity with company details, address, and tax configuration. Used as the sender on invoices.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).requiredOption("--name <value>", `The name of the invoicing entity.`).option("--trade-name <value>", `The trade name of the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).requiredOption("--country <value>", `The country in which the invoicing entity is registered. It cannot be changed after creation.`).requiredOption("--currency <value>", `The currency code that the invoicing entity operates in.`).requiredOption("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--next-invoice-number <number>", `The next invoice number to be used.`).option("--next-credit-note-number <number>", `The next credit note number to be used.`).option("--next-document-number <number>", `The next document number to be used.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--quote-footer <value>", `The footer text to be used in quotes.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled and no \`refund_method\` is specified, credit note refunds default to the customer's wallet, including credit notes generated by subscription updates, cancellations, and transitions. An explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).option("--standalone-credit-note-creation-enabled", `Whether credit notes without an original invoice can be created under this invoicing entity
|
|
43680
|
+
resource.command("create-invoicing-entity").description(`Create a new invoicing entity with company details, address, and tax configuration. Used as the sender on invoices.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).requiredOption("--name <value>", `The name of the invoicing entity.`).option("--trade-name <value>", `The trade name of the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).requiredOption("--country <value>", `The country in which the invoicing entity is registered. It cannot be changed after creation.`).requiredOption("--currency <value>", `The currency code that the invoicing entity operates in.`).requiredOption("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--next-invoice-number <number>", `The next invoice number to be used.`).option("--next-credit-note-number <number>", `The next credit note number to be used.`).option("--next-document-number <number>", `The next document number to be used.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--quote-footer <value>", `The footer text to be used in quotes.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled and no \`refund_method\` is specified, credit note refunds default to the customer's wallet, including credit notes generated by subscription updates, cancellations, and transitions. An explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).option("--standalone-credit-note-creation-enabled", `Whether credit notes without an original invoice can be created under this invoicing entity. Defaults to \`true\`.`).option("--fx-conversion-display-enabled", `Whether the exchange rate and converted amount in the accounting currency are displayed on the invoice PDF when the invoice currency differs from the accounting currency. The conversion data is still stored and returned by the API when disabled. Defaults to \`true\`.`).addHelpText("after", `
|
|
43469
43681
|
Examples:
|
|
43470
43682
|
hyperline invoicing-entities create-invoicing-entity --name <name> --country <country> --currency <currency> --accounting-currency <accounting_currency>
|
|
43471
43683
|
hyperline invoicing-entities create-invoicing-entity --name <name> --country <country> --currency <currency> --accounting-currency <accounting_currency> --is-default --trade-name <trade_name>
|
|
@@ -43548,6 +43760,8 @@ Examples:
|
|
|
43548
43760
|
args.credit_note_wallet_refund_enabled = true;
|
|
43549
43761
|
if (opts.standaloneCreditNoteCreationEnabled !== void 0)
|
|
43550
43762
|
args.standalone_credit_note_creation_enabled = true;
|
|
43763
|
+
if (opts.fxConversionDisplayEnabled !== void 0)
|
|
43764
|
+
args.fx_conversion_display_enabled = true;
|
|
43551
43765
|
await ctx.execute({
|
|
43552
43766
|
method: "POST",
|
|
43553
43767
|
path: "/v1/invoicing-entities",
|
|
@@ -43555,7 +43769,7 @@ Examples:
|
|
|
43555
43769
|
queryParamKeys: []
|
|
43556
43770
|
});
|
|
43557
43771
|
});
|
|
43558
|
-
resource.command("update-invoicing-entity").description(`Update an existing invoicing entity's details (address, tax ID, branding, etc.).`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `The name of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).option("--country <value>", `The country in which the invoicing entity is registered. It cannot be changed after creation.`).option("--currency <value>", `The currency code that the invoicing entity operates in.`).option("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled and no \`refund_method\` is specified, credit note refunds default to the customer's wallet, including credit notes generated by subscription updates, cancellations, and transitions. An explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).option("--standalone-credit-note-creation-enabled", `Whether credit notes without an original invoice can be created under this invoicing entity
|
|
43772
|
+
resource.command("update-invoicing-entity").description(`Update an existing invoicing entity's details (address, tax ID, branding, etc.).`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `The name of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).option("--country <value>", `The country in which the invoicing entity is registered. It cannot be changed after creation.`).option("--currency <value>", `The currency code that the invoicing entity operates in.`).option("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled and no \`refund_method\` is specified, credit note refunds default to the customer's wallet, including credit notes generated by subscription updates, cancellations, and transitions. An explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).option("--standalone-credit-note-creation-enabled", `Whether credit notes without an original invoice can be created under this invoicing entity. Defaults to \`true\`.`).option("--fx-conversion-display-enabled", `Whether the exchange rate and converted amount in the accounting currency are displayed on the invoice PDF when the invoice currency differs from the accounting currency. The conversion data is still stored and returned by the API when disabled. Defaults to \`true\`.`).addHelpText("after", `
|
|
43559
43773
|
Examples:
|
|
43560
43774
|
hyperline invoicing-entities update-invoicing-entity --id <id>
|
|
43561
43775
|
hyperline invoicing-entities update-invoicing-entity --id <id> --name <name> --registration-number <registration_number>
|
|
@@ -43630,6 +43844,8 @@ Examples:
|
|
|
43630
43844
|
args.credit_note_wallet_refund_enabled = true;
|
|
43631
43845
|
if (opts.standaloneCreditNoteCreationEnabled !== void 0)
|
|
43632
43846
|
args.standalone_credit_note_creation_enabled = true;
|
|
43847
|
+
if (opts.fxConversionDisplayEnabled !== void 0)
|
|
43848
|
+
args.fx_conversion_display_enabled = true;
|
|
43633
43849
|
await ctx.execute({
|
|
43634
43850
|
method: "PUT",
|
|
43635
43851
|
path: "/v1/invoicing-entities/{id}",
|
|
@@ -43665,6 +43881,68 @@ Examples:
|
|
|
43665
43881
|
});
|
|
43666
43882
|
}
|
|
43667
43883
|
|
|
43884
|
+
// build/commands/generated/monitoring.js
|
|
43885
|
+
function registerMonitoringCommands(parent) {
|
|
43886
|
+
const resource = parent.command("monitoring").description("Manage monitoring");
|
|
43887
|
+
resource.command("list-monitoring-analyses").description(`List customer health analyses from the monitoring agent, newest first: health score (0-100), tier, summary, per-dimension scores, risk factors and positive signals. Filter by customer (Hyperline or external ID) with limit=1 to get a customer's current health score. Only completed analyses unless status is set.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--customer-id <value>", `Return only analyses of this customer. Accepts the Hyperline ID or your own external ID.`).option("--status <value>", `Return only analyses with this status. Defaults to \`completed\`, the analyses that carry a score.`).option("--created-at.gte <value>", `Return only analyses created at or after this date.`).option("--created-at.lte <value>", `Return only analyses created at or before this date.`).addHelpText("after", `
|
|
43888
|
+
Examples:
|
|
43889
|
+
hyperline monitoring list-monitoring-analyses
|
|
43890
|
+
hyperline monitoring list-monitoring-analyses --limit <limit> --cursor <cursor>`).action(async (opts) => {
|
|
43891
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
43892
|
+
if (!ctx) {
|
|
43893
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
43894
|
+
process.exit(1);
|
|
43895
|
+
}
|
|
43896
|
+
const args = {};
|
|
43897
|
+
if (opts.cursor !== void 0)
|
|
43898
|
+
args.cursor = opts.cursor;
|
|
43899
|
+
if (opts.includeTotal !== void 0)
|
|
43900
|
+
args.include_total = opts.includeTotal;
|
|
43901
|
+
if (opts.customerId !== void 0)
|
|
43902
|
+
args.customer_id = opts.customerId;
|
|
43903
|
+
if (opts.status !== void 0)
|
|
43904
|
+
args.status = opts.status;
|
|
43905
|
+
if (opts["createdAt.gte"] !== void 0)
|
|
43906
|
+
args.created_at__gte = opts["createdAt.gte"];
|
|
43907
|
+
if (opts["createdAt.lte"] !== void 0)
|
|
43908
|
+
args.created_at__lte = opts["createdAt.lte"];
|
|
43909
|
+
if (opts.limit !== void 0)
|
|
43910
|
+
args.limit = Number(opts.limit);
|
|
43911
|
+
await ctx.execute({
|
|
43912
|
+
method: "GET",
|
|
43913
|
+
path: "/v1/agents/monitoring/analyses",
|
|
43914
|
+
args,
|
|
43915
|
+
queryParamKeys: [
|
|
43916
|
+
"limit",
|
|
43917
|
+
"cursor",
|
|
43918
|
+
"include_total",
|
|
43919
|
+
"customer_id",
|
|
43920
|
+
"status",
|
|
43921
|
+
"created_at__gte",
|
|
43922
|
+
"created_at__lte"
|
|
43923
|
+
]
|
|
43924
|
+
});
|
|
43925
|
+
});
|
|
43926
|
+
resource.command("get-monitoring-analysis").description(`Get one customer health analysis by ID: health score (0-100), tier, summary, per-dimension scores, risk factors and positive signals.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
43927
|
+
Examples:
|
|
43928
|
+
hyperline monitoring get-monitoring-analysis --id <id>`).action(async (opts) => {
|
|
43929
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
43930
|
+
if (!ctx) {
|
|
43931
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
43932
|
+
process.exit(1);
|
|
43933
|
+
}
|
|
43934
|
+
const args = {};
|
|
43935
|
+
if (opts.id !== void 0)
|
|
43936
|
+
args.id = opts.id;
|
|
43937
|
+
await ctx.execute({
|
|
43938
|
+
method: "GET",
|
|
43939
|
+
path: "/v1/agents/monitoring/analyses/{id}",
|
|
43940
|
+
args,
|
|
43941
|
+
queryParamKeys: []
|
|
43942
|
+
});
|
|
43943
|
+
});
|
|
43944
|
+
}
|
|
43945
|
+
|
|
43668
43946
|
// build/commands/generated/organisations.js
|
|
43669
43947
|
function registerOrganisationsCommands(parent) {
|
|
43670
43948
|
const resource = parent.command("organisations").description("Manage organisations");
|
|
@@ -43950,6 +44228,44 @@ Examples:
|
|
|
43950
44228
|
queryParamKeys: []
|
|
43951
44229
|
});
|
|
43952
44230
|
});
|
|
44231
|
+
resource.command("create").description(`Create a new price configuration on an existing product. Specify the product_id, pricing type (fee, volume, bulk, packaged, bps, bundle), currency, billing interval, and price tiers. Supports metering_filter for dynamic products.`).requiredOption("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--countries <json>", `Countries this price configuration is eligible in. Omit or send \`null\` to make it eligible in every country. An empty array restricts it to customers that have no country set.`).option("--price-book-id <value>", `ID of the price book to which this price configuration belongs to. If null, the price configuration belongs to the default price book.`).requiredOption("--billing-interval <json>", `Billing interval on which the price configuration is eligible.`).option("--commitment-interval <json>", `Commitment interval on which the price configuration is eligible.`).requiredOption("--type <value>", `type`).requiredOption("--prices <json>", `Price tiers of the price configuration. If fixed amount, only one price is available.`).requiredOption("--product-id <value>", `ID of the product to add the price configuration to.`).option("--metering-filter <json>", `Filter to scope which billable events are eligible for this price configuration.`).option("--allow-on-portal", `allow_on_portal`).addHelpText("after", `
|
|
44232
|
+
Examples:
|
|
44233
|
+
hyperline price-configurations create --currency <currency> --billing-interval <billing_interval> --type <type> --prices <prices> --product-id <product_id>
|
|
44234
|
+
hyperline price-configurations create --currency <currency> --billing-interval <billing_interval> --type <type> --prices <prices> --product-id <product_id> --countries <countries> --price-book-id <price_book_id>
|
|
44235
|
+
hyperline price-configurations create --currency <currency> --billing-interval <billing_interval> --type <type> --prices <prices> --product-id <product_id> --output json`).action(async (opts) => {
|
|
44236
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
44237
|
+
if (!ctx) {
|
|
44238
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
44239
|
+
process.exit(1);
|
|
44240
|
+
}
|
|
44241
|
+
const args = {};
|
|
44242
|
+
if (opts.currency !== void 0)
|
|
44243
|
+
args.currency = opts.currency;
|
|
44244
|
+
if (opts.priceBookId !== void 0)
|
|
44245
|
+
args.price_book_id = opts.priceBookId;
|
|
44246
|
+
if (opts.type !== void 0)
|
|
44247
|
+
args.type = opts.type;
|
|
44248
|
+
if (opts.productId !== void 0)
|
|
44249
|
+
args.product_id = opts.productId;
|
|
44250
|
+
if (opts.allowOnPortal !== void 0)
|
|
44251
|
+
args.allow_on_portal = true;
|
|
44252
|
+
if (opts.countries !== void 0)
|
|
44253
|
+
args.countries = JSON.parse(opts.countries);
|
|
44254
|
+
if (opts.billingInterval !== void 0)
|
|
44255
|
+
args.billing_interval = JSON.parse(opts.billingInterval);
|
|
44256
|
+
if (opts.commitmentInterval !== void 0)
|
|
44257
|
+
args.commitment_interval = JSON.parse(opts.commitmentInterval);
|
|
44258
|
+
if (opts.prices !== void 0)
|
|
44259
|
+
args.prices = JSON.parse(opts.prices);
|
|
44260
|
+
if (opts.meteringFilter !== void 0)
|
|
44261
|
+
args.metering_filter = JSON.parse(opts.meteringFilter);
|
|
44262
|
+
await ctx.execute({
|
|
44263
|
+
method: "POST",
|
|
44264
|
+
path: "/v1/price-configurations",
|
|
44265
|
+
args,
|
|
44266
|
+
queryParamKeys: []
|
|
44267
|
+
});
|
|
44268
|
+
});
|
|
43953
44269
|
resource.command("update-prices").description(`Update the prices of an existing price configuration by ID. Allows changing tier thresholds, unit prices, and flat fees.`).requiredOption("--id <value>", `id parameter`).option("--stdin", `Read JSON array input from stdin`).addHelpText("after", `
|
|
43954
44270
|
Examples:
|
|
43955
44271
|
hyperline price-configurations update-prices --id <id>
|
|
@@ -44148,7 +44464,7 @@ How the periodic credit allowance is granted for partial billing periods.
|
|
|
44148
44464
|
|
|
44149
44465
|
- \`prorated\` (default): the granted credits are prorated to the elapsed period.
|
|
44150
44466
|
- \`full_allowance\`: the full allowance is always granted (the invoice remains prorated).
|
|
44151
|
-
`).option("--credits-balance-auto-creation-enabled <value>", `Default for the \`credits_balance_auto_creation_enabled\` setting of subscription products using this credit product: whether the customer credit balance is created as soon as the product is added to a subscription. \`true\` when unset. A subscription product can override it.`).option("--
|
|
44467
|
+
`).option("--credits-balance-auto-creation-enabled <value>", `Default for the \`credits_balance_auto_creation_enabled\` setting of subscription products using this credit product: whether the customer credit balance is created as soon as the product is added to a subscription. \`true\` when unset. A subscription product can override it.`).option("--display-mode <value>", `How bundle items are displayed on invoices.`).option("--exclusive-items-enabled", `When true, only one item in the bundle can be active at a time.`).option("--bundle-items <json>", `Products included in this bundle. Percentages must sum to 100.`).addHelpText("after", `
|
|
44152
44468
|
Examples:
|
|
44153
44469
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations>
|
|
44154
44470
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations> --description <description> --description-display-interval-dates
|
|
@@ -44175,8 +44491,6 @@ Examples:
|
|
|
44175
44491
|
args.credits_grant_mode = opts.creditsGrantMode;
|
|
44176
44492
|
if (opts.creditsBalanceAutoCreationEnabled !== void 0)
|
|
44177
44493
|
args.credits_balance_auto_creation_enabled = opts.creditsBalanceAutoCreationEnabled;
|
|
44178
|
-
if (opts.portalTopUpAutoActivationEnabled !== void 0)
|
|
44179
|
-
args.portal_top_up_auto_activation_enabled = opts.portalTopUpAutoActivationEnabled;
|
|
44180
44494
|
if (opts.displayMode !== void 0)
|
|
44181
44495
|
args.display_mode = opts.displayMode;
|
|
44182
44496
|
if (opts.lowCreditsThreshold !== void 0)
|
|
@@ -44346,7 +44660,7 @@ Quote status.
|
|
|
44346
44660
|
- \`draft\`: The quote is a draft.
|
|
44347
44661
|
- \`approved\`: The quote is approved and ready to be sent to the customer.
|
|
44348
44662
|
- \`pending_signature\`: The quote is awaiting the customer's signature.
|
|
44349
|
-
`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
|
|
44663
|
+
`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. The owner requests approval when the quote is finalized using an API key or finalized during creation. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
|
|
44350
44664
|
|
|
44351
44665
|
- \`all\`: Display all pricing tiers.
|
|
44352
44666
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
@@ -44638,7 +44952,7 @@ Examples:
|
|
|
44638
44952
|
queryParamKeys: []
|
|
44639
44953
|
});
|
|
44640
44954
|
});
|
|
44641
|
-
resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` inline \u2014 the full configuration, not a reference to an existing subscription \u2014 to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice. For quotes created from \`template_id\`, use this tool for subscription overrides such as dates, contract terms, products, phases, coupons, discounts, prices, seats, and subscription custom properties. Omit \`terms\`, \`comments\`, and \`contract_clause_ids\` unless deliberately overriding template content. Discover product and price configuration IDs with \`get_catalog_context\`.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner.`).option("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. Set to \`null\` to clear the manually set value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
|
|
44955
|
+
resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` inline \u2014 the full configuration, not a reference to an existing subscription \u2014 to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice. For quotes created from \`template_id\`, use this tool for subscription overrides such as dates, contract terms, products, phases, coupons, discounts, prices, seats, and subscription custom properties. Omit \`terms\`, \`comments\`, and \`contract_clause_ids\` unless deliberately overriding template content. Discover product and price configuration IDs with \`get_catalog_context\`.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. The owner requests approval when the quote is finalized using an API key or finalized during creation.`).option("--catalog-version-id <value>", `ID of a published catalog version to price every product of the quote from, instead of the live products catalog. A product's own \`catalog_version_id\` takes precedence, and explicit \`prices\` always win over both.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. Set to \`null\` to clear the manually set value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <json>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--contract-clause-ids <json>", `IDs of the contract clauses used in the quote terms.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
|
|
44642
44956
|
|
|
44643
44957
|
- \`all\`: Display all pricing tiers.
|
|
44644
44958
|
- \`matching\`: Only display the tiers used to compute the price based on quantity.
|
|
@@ -44747,10 +45061,11 @@ Examples:
|
|
|
44747
45061
|
queryParamKeys: ["locale"]
|
|
44748
45062
|
});
|
|
44749
45063
|
});
|
|
44750
|
-
resource.command("
|
|
45064
|
+
resource.command("finalize").description(`Finalize a draft quote. The quote is submitted for approval when approval is required, otherwise it becomes approved and ready to be sent for signature.`).requiredOption("--id <value>", `id parameter`).option("--requester-comment <value>", `Internal comment supplied by the requester for approvers; not displayed on the customer-facing quote.`).addHelpText("after", `
|
|
44751
45065
|
Examples:
|
|
44752
|
-
hyperline quotes
|
|
44753
|
-
hyperline quotes
|
|
45066
|
+
hyperline quotes finalize --id <id>
|
|
45067
|
+
hyperline quotes finalize --id <id> --requester-comment <requester_comment>
|
|
45068
|
+
hyperline quotes finalize --id <id> --output json`).action(async (opts) => {
|
|
44754
45069
|
const ctx = resource.parent?.opts()._ctx;
|
|
44755
45070
|
if (!ctx) {
|
|
44756
45071
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -44759,17 +45074,20 @@ Examples:
|
|
|
44759
45074
|
const args = {};
|
|
44760
45075
|
if (opts.id !== void 0)
|
|
44761
45076
|
args.id = opts.id;
|
|
45077
|
+
if (opts.requesterComment !== void 0)
|
|
45078
|
+
args.requester_comment = opts.requesterComment;
|
|
44762
45079
|
await ctx.execute({
|
|
44763
45080
|
method: "POST",
|
|
44764
|
-
path: "/v1/quotes/{id}/
|
|
45081
|
+
path: "/v1/quotes/{id}/finalize",
|
|
44765
45082
|
args,
|
|
44766
45083
|
queryParamKeys: []
|
|
44767
45084
|
});
|
|
44768
45085
|
});
|
|
44769
|
-
resource.command("
|
|
45086
|
+
resource.command("send").description(`Send a quote by email for customer signature. Requires the quote to be approved first.`).requiredOption("--id <value>", `id parameter`).option("--email <value>", `Email address to which the quote will be sent for signature. Required unless the quote has signers, in which case the email goes to the signers of the current step and this field is ignored.`).option("--message <value>", `Custom message used in the email content.`).addHelpText("after", `
|
|
44770
45087
|
Examples:
|
|
44771
|
-
hyperline quotes
|
|
44772
|
-
hyperline quotes
|
|
45088
|
+
hyperline quotes send --id <id>
|
|
45089
|
+
hyperline quotes send --id <id> --email <email> --message <message>
|
|
45090
|
+
hyperline quotes send --id <id> --output json`).action(async (opts) => {
|
|
44773
45091
|
const ctx = resource.parent?.opts()._ctx;
|
|
44774
45092
|
if (!ctx) {
|
|
44775
45093
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -44778,18 +45096,20 @@ Examples:
|
|
|
44778
45096
|
const args = {};
|
|
44779
45097
|
if (opts.id !== void 0)
|
|
44780
45098
|
args.id = opts.id;
|
|
45099
|
+
if (opts.email !== void 0)
|
|
45100
|
+
args.email = opts.email;
|
|
45101
|
+
if (opts.message !== void 0)
|
|
45102
|
+
args.message = opts.message;
|
|
44781
45103
|
await ctx.execute({
|
|
44782
45104
|
method: "POST",
|
|
44783
|
-
path: "/v1/quotes/{id}/
|
|
45105
|
+
path: "/v1/quotes/{id}/send",
|
|
44784
45106
|
args,
|
|
44785
45107
|
queryParamKeys: []
|
|
44786
45108
|
});
|
|
44787
45109
|
});
|
|
44788
|
-
resource.command("
|
|
45110
|
+
resource.command("list-quote-signers").description(`List the signers of a quote in signing order, with each signer's status (pending, notified, viewed, signed, declined). An empty list means the quote uses the single-signer flow of \`send_quote\`.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
44789
45111
|
Examples:
|
|
44790
|
-
hyperline quotes
|
|
44791
|
-
hyperline quotes send --id <id> --email <email> --message <message>
|
|
44792
|
-
hyperline quotes send --id <id> --email <email> --output json`).action(async (opts) => {
|
|
45112
|
+
hyperline quotes list-quote-signers --id <id>`).action(async (opts) => {
|
|
44793
45113
|
const ctx = resource.parent?.opts()._ctx;
|
|
44794
45114
|
if (!ctx) {
|
|
44795
45115
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -44798,13 +45118,36 @@ Examples:
|
|
|
44798
45118
|
const args = {};
|
|
44799
45119
|
if (opts.id !== void 0)
|
|
44800
45120
|
args.id = opts.id;
|
|
44801
|
-
if (opts.email !== void 0)
|
|
44802
|
-
args.email = opts.email;
|
|
44803
|
-
if (opts.message !== void 0)
|
|
44804
|
-
args.message = opts.message;
|
|
44805
45121
|
await ctx.execute({
|
|
44806
|
-
method: "
|
|
44807
|
-
path: "/v1/quotes/{id}/
|
|
45122
|
+
method: "GET",
|
|
45123
|
+
path: "/v1/quotes/{id}/signers",
|
|
45124
|
+
args,
|
|
45125
|
+
queryParamKeys: []
|
|
45126
|
+
});
|
|
45127
|
+
});
|
|
45128
|
+
resource.command("set-quote-signers").description(`Replace the full list of signers of a quote. Signers with the same \`step_order\` sign in parallel; steps sign in ascending order. Requires at least one \`external\` signer, and a \`countersigner\` must sign after an external step. Set signers before calling \`send_quote\`, which then emails the signers of the first step and no longer needs \`email\`. Pass an empty list to go back to the single-signer flow.`).requiredOption("--id <value>", `id parameter`).requiredOption("--signers <json>", `
|
|
45129
|
+
Signature workflow of the quote, replaced as a whole.
|
|
45130
|
+
|
|
45131
|
+
Signers sign step by step, in ascending \`step_order\`. Signers sharing a step sign in parallel, and the next step opens once all of them have signed. The workflow needs at least one \`external\` signer, and a \`countersigner\` must sign after the first external step.
|
|
45132
|
+
|
|
45133
|
+
Signers who already signed cannot be removed or moved. Once the quote is out for signature at an electronic signature provider, the workflow can no longer be changed.
|
|
45134
|
+
`).addHelpText("after", `
|
|
45135
|
+
Examples:
|
|
45136
|
+
hyperline quotes set-quote-signers --id <id> --signers <signers>
|
|
45137
|
+
hyperline quotes set-quote-signers --id <id> --signers <signers> --output json`).action(async (opts) => {
|
|
45138
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45139
|
+
if (!ctx) {
|
|
45140
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45141
|
+
process.exit(1);
|
|
45142
|
+
}
|
|
45143
|
+
const args = {};
|
|
45144
|
+
if (opts.id !== void 0)
|
|
45145
|
+
args.id = opts.id;
|
|
45146
|
+
if (opts.signers !== void 0)
|
|
45147
|
+
args.signers = JSON.parse(opts.signers);
|
|
45148
|
+
await ctx.execute({
|
|
45149
|
+
method: "PUT",
|
|
45150
|
+
path: "/v1/quotes/{id}/signers",
|
|
44808
45151
|
args,
|
|
44809
45152
|
queryParamKeys: []
|
|
44810
45153
|
});
|
|
@@ -44892,6 +45235,48 @@ Examples:
|
|
|
44892
45235
|
});
|
|
44893
45236
|
}
|
|
44894
45237
|
|
|
45238
|
+
// build/commands/generated/quotes-approvals.js
|
|
45239
|
+
function registerQuotes_ApprovalsCommands(parent) {
|
|
45240
|
+
const resource = parent.command("quotes-approvals").description("Manage quotes > approvals");
|
|
45241
|
+
resource.command("approve-quote").description(`Approve a quote as the account owner. This is a prerequisite before sending the quote for customer signature.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
45242
|
+
Examples:
|
|
45243
|
+
hyperline quotes-approvals approve-quote --id <id>
|
|
45244
|
+
hyperline quotes-approvals approve-quote --id <id> --output json`).action(async (opts) => {
|
|
45245
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45246
|
+
if (!ctx) {
|
|
45247
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45248
|
+
process.exit(1);
|
|
45249
|
+
}
|
|
45250
|
+
const args = {};
|
|
45251
|
+
if (opts.id !== void 0)
|
|
45252
|
+
args.id = opts.id;
|
|
45253
|
+
await ctx.execute({
|
|
45254
|
+
method: "POST",
|
|
45255
|
+
path: "/v1/quotes/{id}/approve",
|
|
45256
|
+
args,
|
|
45257
|
+
queryParamKeys: []
|
|
45258
|
+
});
|
|
45259
|
+
});
|
|
45260
|
+
resource.command("get-quote-approvals").description(`Read quote approvals without submitting the quote. Returns a newest-first array, currently containing one element. Draft and changes-requested quotes return current approval routing in preview mode; other statuses return the recorded request, ordered steps and decisions in execution mode. A null request means no workflow execution was recorded, including automatic and legacy approval.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
45261
|
+
Examples:
|
|
45262
|
+
hyperline quotes-approvals get-quote-approvals --id <id>`).action(async (opts) => {
|
|
45263
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
45264
|
+
if (!ctx) {
|
|
45265
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
45266
|
+
process.exit(1);
|
|
45267
|
+
}
|
|
45268
|
+
const args = {};
|
|
45269
|
+
if (opts.id !== void 0)
|
|
45270
|
+
args.id = opts.id;
|
|
45271
|
+
await ctx.execute({
|
|
45272
|
+
method: "GET",
|
|
45273
|
+
path: "/v1/quotes/{id}/approvals",
|
|
45274
|
+
args,
|
|
45275
|
+
queryParamKeys: []
|
|
45276
|
+
});
|
|
45277
|
+
});
|
|
45278
|
+
}
|
|
45279
|
+
|
|
44895
45280
|
// build/commands/generated/quotes-templates.js
|
|
44896
45281
|
function registerQuotes_TemplatesCommands(parent) {
|
|
44897
45282
|
const resource = parent.command("quotes-templates").description("Manage quotes > templates");
|
|
@@ -45091,7 +45476,7 @@ Examples:
|
|
|
45091
45476
|
queryParamKeys: []
|
|
45092
45477
|
});
|
|
45093
45478
|
});
|
|
45094
|
-
resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).option("--refund-method <value>", `Override the refund destination for the resulting credit note. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).addHelpText("after", `
|
|
45479
|
+
resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason. On a cancelled subscription with a scheduled reinstatement, call it with an empty body to remove that reinstatement; the subscription stays cancelled.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).option("--refund-method <value>", `Override the refund destination for the resulting credit note. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).addHelpText("after", `
|
|
45095
45480
|
Examples:
|
|
45096
45481
|
hyperline subscriptions cancel --id <id>
|
|
45097
45482
|
hyperline subscriptions cancel --id <id> --cancel-at <cancel_at> --reason <reason>
|
|
@@ -45119,9 +45504,10 @@ Examples:
|
|
|
45119
45504
|
queryParamKeys: []
|
|
45120
45505
|
});
|
|
45121
45506
|
});
|
|
45122
|
-
resource.command("reinstate").description(`Reinstate a subscription
|
|
45507
|
+
resource.command("reinstate").description(`Reinstate a subscription, reverting it to active status. Works for a subscription scheduled for cancellation and for a fully-cancelled one. For a fully-cancelled subscription, optionally pass reactivate_at (may be in the past, after the cancellation date; a future date schedules it) and invoicing_mode (or charge_line_items for a custom charge) to control how the cancelled gap is invoiced.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date a fully-cancelled subscription resumes from. May be in the past (after the cancellation date). Defaults to now. A future date schedules the reinstatement; calling again with another date reschedules it, and cancelling the subscription removes it. Ignored for scheduled-cancellation reinstatement.`).option("--invoicing-mode <value>", `How the paused/cancelled gap is invoiced when the subscription resumes. \`charge_full_period\`: bill the frozen periods as if never paused. \`prorate_remaining_period\`: skip the gap and bill the prorated remainder from the resume date. \`resume_at_next_cycle\` (default): skip the gap with no catch-up invoice.`).option("--charge-line-items <json>", `Custom charge: bill exactly these lines on an immediate resume instead of applying \`invoicing_mode\`. The lines cover the stopped period (pause or cancellation date to resume date). Requires the \`invoices_create\` permission. Fully-cancelled subscriptions only. Not allowed with a future \`reactivate_at\`.`).addHelpText("after", `
|
|
45123
45508
|
Examples:
|
|
45124
45509
|
hyperline subscriptions reinstate --id <id>
|
|
45510
|
+
hyperline subscriptions reinstate --id <id> --reactivate-at <reactivate_at> --invoicing-mode <invoicing_mode>
|
|
45125
45511
|
hyperline subscriptions reinstate --id <id> --output json`).action(async (opts) => {
|
|
45126
45512
|
const ctx = resource.parent?.opts()._ctx;
|
|
45127
45513
|
if (!ctx) {
|
|
@@ -45131,6 +45517,12 @@ Examples:
|
|
|
45131
45517
|
const args = {};
|
|
45132
45518
|
if (opts.id !== void 0)
|
|
45133
45519
|
args.id = opts.id;
|
|
45520
|
+
if (opts.reactivateAt !== void 0)
|
|
45521
|
+
args.reactivate_at = opts.reactivateAt;
|
|
45522
|
+
if (opts.invoicingMode !== void 0)
|
|
45523
|
+
args.invoicing_mode = opts.invoicingMode;
|
|
45524
|
+
if (opts.chargeLineItems !== void 0)
|
|
45525
|
+
args.charge_line_items = JSON.parse(opts.chargeLineItems);
|
|
45134
45526
|
await ctx.execute({
|
|
45135
45527
|
method: "POST",
|
|
45136
45528
|
path: "/v1/subscriptions/{id}/reinstate",
|
|
@@ -45179,7 +45571,7 @@ Examples:
|
|
|
45179
45571
|
queryParamKeys: []
|
|
45180
45572
|
});
|
|
45181
45573
|
});
|
|
45182
|
-
resource.command("reactivate").description(`Resume a paused subscription. Optionally pass reactivate_at (may be in the past, after the pause date; a future date schedules it) and invoicing_mode to control how the paused gap is invoiced.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date the subscription resumes from. May be in the past (after the pause date). Defaults to now. A future date schedules the reactivation.`).option("--invoicing-mode <value>", `How the paused/cancelled gap is invoiced when the subscription resumes. \`charge_full_period\`: bill the frozen periods as if never paused. \`prorate_remaining_period\`: skip the gap and bill the prorated remainder from the resume date. \`resume_at_next_cycle\` (default): skip the gap with no catch-up invoice.`).addHelpText("after", `
|
|
45574
|
+
resource.command("reactivate").description(`Resume a paused subscription. Optionally pass reactivate_at (may be in the past, after the pause date; a future date schedules it) and invoicing_mode (or charge_line_items for a custom charge) to control how the paused gap is invoiced.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date the subscription resumes from. May be in the past (after the pause date). Defaults to now. A future date schedules the reactivation.`).option("--invoicing-mode <value>", `How the paused/cancelled gap is invoiced when the subscription resumes. \`charge_full_period\`: bill the frozen periods as if never paused. \`prorate_remaining_period\`: skip the gap and bill the prorated remainder from the resume date. \`resume_at_next_cycle\` (default): skip the gap with no catch-up invoice.`).option("--charge-line-items <json>", `Custom charge: bill exactly these lines on an immediate resume instead of applying \`invoicing_mode\`. The lines cover the stopped period (pause or cancellation date to resume date). Requires the \`invoices_create\` permission. Not allowed with a future \`reactivate_at\`.`).addHelpText("after", `
|
|
45183
45575
|
Examples:
|
|
45184
45576
|
hyperline subscriptions reactivate --id <id>
|
|
45185
45577
|
hyperline subscriptions reactivate --id <id> --reactivate-at <reactivate_at> --invoicing-mode <invoicing_mode>
|
|
@@ -45196,6 +45588,8 @@ Examples:
|
|
|
45196
45588
|
args.reactivate_at = opts.reactivateAt;
|
|
45197
45589
|
if (opts.invoicingMode !== void 0)
|
|
45198
45590
|
args.invoicing_mode = opts.invoicingMode;
|
|
45591
|
+
if (opts.chargeLineItems !== void 0)
|
|
45592
|
+
args.charge_line_items = JSON.parse(opts.chargeLineItems);
|
|
45199
45593
|
await ctx.execute({
|
|
45200
45594
|
method: "POST",
|
|
45201
45595
|
path: "/v1/subscriptions/{id}/reactivate",
|
|
@@ -46783,6 +47177,7 @@ function registerAllCommands(program2) {
|
|
|
46783
47177
|
registerAggregatorsCommands(program2);
|
|
46784
47178
|
registerAggregators_UsageCommands(program2);
|
|
46785
47179
|
registerAi_BillingCommands(program2);
|
|
47180
|
+
registerAi_CostsCommands(program2);
|
|
46786
47181
|
registerAnalyticsCommands(program2);
|
|
46787
47182
|
registerBank_AccountsCommands(program2);
|
|
46788
47183
|
registerCompaniesCommands(program2);
|
|
@@ -46801,11 +47196,13 @@ function registerAllCommands(program2) {
|
|
|
46801
47196
|
registerInvoicesCommands(program2);
|
|
46802
47197
|
registerInvoices_TransactionsCommands(program2);
|
|
46803
47198
|
registerInvoicing_EntitiesCommands(program2);
|
|
47199
|
+
registerMonitoringCommands(program2);
|
|
46804
47200
|
registerPaymentsCommands(program2);
|
|
46805
47201
|
registerProductsCommands(program2);
|
|
46806
47202
|
registerPrice_ConfigurationsCommands(program2);
|
|
46807
47203
|
registerQuotesCommands(program2);
|
|
46808
47204
|
registerQuotes_TemplatesCommands(program2);
|
|
47205
|
+
registerQuotes_ApprovalsCommands(program2);
|
|
46809
47206
|
registerSubscriptions_TemplatesCommands(program2);
|
|
46810
47207
|
registerSubscriptionsCommands(program2);
|
|
46811
47208
|
registerSubscriptions_TransitionsCommands(program2);
|
|
@@ -62816,17 +63213,18 @@ var languages = [
|
|
|
62816
63213
|
|
|
62817
63214
|
// ../hyperline-i18n/build/locales/de.js
|
|
62818
63215
|
var de = {
|
|
62819
|
-
"accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
|
|
62820
|
-
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62821
|
-
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
62822
63216
|
"accounting.creditNotePosted.entryDescription": "Gutschrift {{creditNoteId}} f\xFCr Rechnung {{invoiceId}}",
|
|
62823
|
-
"accounting.
|
|
63217
|
+
"accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
|
|
63218
|
+
"accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
|
|
62824
63219
|
"accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62825
63220
|
"accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62826
63221
|
"accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62827
|
-
"accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
|
|
62828
63222
|
"accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62829
63223
|
"accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
|
|
63224
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Gutschrift {{creditNoteId}}",
|
|
63225
|
+
"accounting.transactionChargedBack.entryDescription": "R\xFCckbuchung f\xFCr Rechnung {{invoiceId}}",
|
|
63226
|
+
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
63227
|
+
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62830
63228
|
"creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
|
|
62831
63229
|
"credits.bundleOf": "{{productName}} - Paket mit {{creditCount}} Guthaben",
|
|
62832
63230
|
"credits.unitsOf": "{{productName}} - {{creditCount}} Guthaben",
|
|
@@ -62840,9 +63238,9 @@ var de = {
|
|
|
62840
63238
|
"invoices.prorata.paymentForItemFullPeriod": "Zahlung f\xFCr",
|
|
62841
63239
|
"invoices.prorata.refundForItem": "Anteilig erstatteter Betrag f\xFCr",
|
|
62842
63240
|
"invoices.prorata.refundForItemFullPeriod": "Erstattung f\xFCr",
|
|
62843
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben",
|
|
62844
63241
|
"subscriptions.closingChargeName": "Abschlussgeb\xFChr f\xFCr das Abonnement",
|
|
62845
63242
|
"subscriptions.correction": "Vorperiodische Anpassung",
|
|
63243
|
+
"subscriptions.reinstatementRechargeName": "Wiederherstellungsgeb\xFChr f\xFCr den stornierten Zeitraum",
|
|
62846
63244
|
"subscriptions.updates.addCoupon": "Gutschein hinzuf\xFCgen {{couponName}}",
|
|
62847
63245
|
"subscriptions.updates.addProduct": "{{productName}} hinzuf\xFCgen",
|
|
62848
63246
|
"subscriptions.updates.removeCoupon": "Gutschein entfernen {{couponName}}",
|
|
@@ -62857,7 +63255,8 @@ var de = {
|
|
|
62857
63255
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Betrag von {{amount}} (mit einer minimal zugesicherten Anzahl von {{committedCount}}) f\xFCr den anteiligen Zeitraum nicht in Rechnung gestellt",
|
|
62858
63256
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Diese Position wurde f\xFCr den anteiligen Zeitraum in Rechnung gestellt",
|
|
62859
63257
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Betrag von {{amount}} f\xFCr den anteiligen Zeitraum nicht in Rechnung gestellt",
|
|
62860
|
-
"subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren"
|
|
63258
|
+
"subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren",
|
|
63259
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben"
|
|
62861
63260
|
};
|
|
62862
63261
|
|
|
62863
63262
|
// ../hyperline-i18n/build/locales/en.js
|
|
@@ -62874,6 +63273,7 @@ var en = {
|
|
|
62874
63273
|
"invoices.prorata.refundForItemFullPeriod": "Refund for",
|
|
62875
63274
|
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 expired balance",
|
|
62876
63275
|
"subscriptions.closingChargeName": "Closing fee for subscription",
|
|
63276
|
+
"subscriptions.reinstatementRechargeName": "Reinstatement recharge of canceled period",
|
|
62877
63277
|
"subscriptions.correction": "Adjustment previous period",
|
|
62878
63278
|
"subscriptions.updates.addCoupon": "Add coupon {{couponName}}",
|
|
62879
63279
|
"subscriptions.updates.addProduct": "Add {{productName}}",
|
|
@@ -62893,6 +63293,7 @@ var en = {
|
|
|
62893
63293
|
"accounting.invoicePosted.entryDescription": "Posting entry for Invoice {{invoiceId}} issued",
|
|
62894
63294
|
"accounting.transactionSettled.entryDescription": "Payment settlement for Invoice {{invoiceId}}",
|
|
62895
63295
|
"accounting.transactionRefunded.entryDescription": "Refund for Invoice {{invoiceId}}",
|
|
63296
|
+
"accounting.transactionChargedBack.entryDescription": "Chargeback for Invoice {{invoiceId}}",
|
|
62896
63297
|
"accounting.creditNotePosted.entryDescription": "Credit note {{creditNoteId}} for Invoice {{invoiceId}}",
|
|
62897
63298
|
"accounting.standaloneCreditNotePosted.entryDescription": "Credit note {{creditNoteId}}",
|
|
62898
63299
|
"accounting.revrec.entryDescription": "Revenue recognition for schedule {{scheduleId}}, period {{periodStart}} - {{periodEnd}}",
|
|
@@ -62908,17 +63309,18 @@ var en = {
|
|
|
62908
63309
|
|
|
62909
63310
|
// ../hyperline-i18n/build/locales/es.js
|
|
62910
63311
|
var es = {
|
|
62911
|
-
"accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
|
|
62912
|
-
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62913
|
-
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
62914
63312
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para la factura {{invoiceId}}",
|
|
62915
|
-
"accounting.
|
|
63313
|
+
"accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
|
|
63314
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
|
|
62916
63315
|
"accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62917
63316
|
"accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62918
63317
|
"accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62919
|
-
"accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
|
|
62920
63318
|
"accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62921
63319
|
"accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63320
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63321
|
+
"accounting.transactionChargedBack.entryDescription": "Contracargo de la factura {{invoiceId}}",
|
|
63322
|
+
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
63323
|
+
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62922
63324
|
"creditNotes.refundChargeName": "Reembolso por factura",
|
|
62923
63325
|
"credits.bundleOf": "{{productName}} - Paquete de {{creditCount}} cr\xE9ditos",
|
|
62924
63326
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
|
|
@@ -62932,9 +63334,9 @@ var es = {
|
|
|
62932
63334
|
"invoices.prorata.paymentForItemFullPeriod": "Pago por",
|
|
62933
63335
|
"invoices.prorata.refundForItem": "Reembolso prorrateado por",
|
|
62934
63336
|
"invoices.prorata.refundForItemFullPeriod": "Reembolso por",
|
|
62935
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado",
|
|
62936
63337
|
"subscriptions.closingChargeName": "Cargo por cierre de suscripci\xF3n",
|
|
62937
63338
|
"subscriptions.correction": "Ajuste del periodo anterior",
|
|
63339
|
+
"subscriptions.reinstatementRechargeName": "Recarga de reinstalaci\xF3n del per\xEDodo cancelado",
|
|
62938
63340
|
"subscriptions.updates.addCoupon": "A\xF1adir cup\xF3n {{couponName}}",
|
|
62939
63341
|
"subscriptions.updates.addProduct": "A\xF1adir {{productName}}",
|
|
62940
63342
|
"subscriptions.updates.removeCoupon": "Eliminar cup\xF3n {{couponName}}",
|
|
@@ -62949,22 +63351,24 @@ var es = {
|
|
|
62949
63351
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Importe de {{amount}} (con un m\xEDnimo comprometido de {{committedCount}}) no facturado para el per\xEDodo prorrateado",
|
|
62950
63352
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta l\xEDnea ha sido facturada para el per\xEDodo prorrateado",
|
|
62951
63353
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importe de {{amount}} no facturado para el per\xEDodo prorrateado",
|
|
62952
|
-
"subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}"
|
|
63354
|
+
"subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}",
|
|
63355
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado"
|
|
62953
63356
|
};
|
|
62954
63357
|
|
|
62955
63358
|
// ../hyperline-i18n/build/locales/fr.js
|
|
62956
63359
|
var fr = {
|
|
63360
|
+
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
63361
|
+
"accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
|
|
63362
|
+
"accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
|
|
62957
63363
|
"accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62958
63364
|
"accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62959
63365
|
"accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62960
|
-
"accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
|
|
62961
63366
|
"accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62962
|
-
"accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
|
|
62963
|
-
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62964
|
-
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
62965
|
-
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
62966
|
-
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
62967
63367
|
"accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
|
|
63368
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
63369
|
+
"accounting.transactionChargedBack.entryDescription": "R\xE9trofacturation de la facture {{invoiceId}}",
|
|
63370
|
+
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
63371
|
+
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62968
63372
|
"creditNotes.refundChargeName": "Remboursement pour facture",
|
|
62969
63373
|
"credits.bundleOf": "{{productName}} - Pack de {{creditCount}} cr\xE9dits",
|
|
62970
63374
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9dits",
|
|
@@ -62978,9 +63382,9 @@ var fr = {
|
|
|
62978
63382
|
"invoices.prorata.paymentForItemFullPeriod": "Paiement pour",
|
|
62979
63383
|
"invoices.prorata.refundForItem": "Remboursement au prorata pour",
|
|
62980
63384
|
"invoices.prorata.refundForItemFullPeriod": "Remboursement pour",
|
|
62981
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9",
|
|
62982
63385
|
"subscriptions.closingChargeName": "Frais de cl\xF4ture pour abonnement",
|
|
62983
63386
|
"subscriptions.correction": "Ajustement p\xE9riode pr\xE9c\xE9dente",
|
|
63387
|
+
"subscriptions.reinstatementRechargeName": "Recharge de r\xE9tablissement de la p\xE9riode annul\xE9e",
|
|
62984
63388
|
"subscriptions.updates.addCoupon": "Ajout du coupon {{couponName}}",
|
|
62985
63389
|
"subscriptions.updates.addProduct": "Ajout {{productName}}",
|
|
62986
63390
|
"subscriptions.updates.removeCoupon": "Retrait du coupon {{couponName}}",
|
|
@@ -62995,22 +63399,24 @@ var fr = {
|
|
|
62995
63399
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Montant de {{amount}} (avec un minimum engag\xE9 de {{committedCount}}) non factur\xE9 pour la p\xE9riode proratis\xE9e",
|
|
62996
63400
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Cette ligne a \xE9t\xE9 factur\xE9e pour la p\xE9riode proratis\xE9e",
|
|
62997
63401
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Montant de {{amount}} non factur\xE9 pour la p\xE9riode proratis\xE9e",
|
|
62998
|
-
"subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}"
|
|
63402
|
+
"subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}",
|
|
63403
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9"
|
|
62999
63404
|
};
|
|
63000
63405
|
|
|
63001
63406
|
// ../hyperline-i18n/build/locales/it.js
|
|
63002
63407
|
var it = {
|
|
63003
|
-
"accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
|
|
63004
|
-
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
63005
|
-
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
63006
63408
|
"accounting.creditNotePosted.entryDescription": "Nota di credito {{creditNoteId}} per la fattura {{invoiceId}}",
|
|
63007
|
-
"accounting.
|
|
63409
|
+
"accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
|
|
63410
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
|
|
63008
63411
|
"accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
63009
63412
|
"accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
63010
63413
|
"accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
63011
|
-
"accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
|
|
63012
63414
|
"accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
63013
63415
|
"accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
|
|
63416
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota di credito {{creditNoteId}}",
|
|
63417
|
+
"accounting.transactionChargedBack.entryDescription": "Riaddebito per la fattura {{invoiceId}}",
|
|
63418
|
+
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
63419
|
+
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
63014
63420
|
"creditNotes.refundChargeName": "Rimborso per fattura",
|
|
63015
63421
|
"credits.bundleOf": "{{productName}} - Pacchetto di {{creditCount}} crediti",
|
|
63016
63422
|
"credits.unitsOf": "{{productName}} - {{creditCount}} crediti",
|
|
@@ -63024,9 +63430,9 @@ var it = {
|
|
|
63024
63430
|
"invoices.prorata.paymentForItemFullPeriod": "Pagamento per",
|
|
63025
63431
|
"invoices.prorata.refundForItem": "Rimborso proporzionale per",
|
|
63026
63432
|
"invoices.prorata.refundForItemFullPeriod": "Rimborso per",
|
|
63027
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto",
|
|
63028
63433
|
"subscriptions.closingChargeName": "Costo di chiusura per abbonamento",
|
|
63029
63434
|
"subscriptions.correction": "Correzione periodo precedente",
|
|
63435
|
+
"subscriptions.reinstatementRechargeName": "Ricarica di reintegrazione del periodo annullato",
|
|
63030
63436
|
"subscriptions.updates.addCoupon": "Aggiungi coupon {{couponName}}",
|
|
63031
63437
|
"subscriptions.updates.addProduct": "Aggiungi {{productName}}",
|
|
63032
63438
|
"subscriptions.updates.removeCoupon": "Rimuovi coupon {{couponName}}",
|
|
@@ -63041,14 +63447,30 @@ var it = {
|
|
|
63041
63447
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Importo di {{amount}} (con un minimo impegnato di {{committedCount}}) non fatturato per il periodo proporzionato",
|
|
63042
63448
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Questa voce \xE8 stata fatturata per il periodo proporzionato",
|
|
63043
63449
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importo di {{amount}} non fatturato per il periodo proporzionato",
|
|
63044
|
-
"subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}"
|
|
63450
|
+
"subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}",
|
|
63451
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto"
|
|
63045
63452
|
};
|
|
63046
63453
|
|
|
63047
63454
|
// ../hyperline-i18n/build/locales/lt.js
|
|
63048
63455
|
var lt = {
|
|
63456
|
+
"accounting.creditNotePosted.entryDescription": "Kreditin\u0117 s\u0105skaita {{creditNoteId}} s\u0105skaitai fakt\u016Brai {{invoiceId}}",
|
|
63457
|
+
"accounting.invoicePosted.entryDescription": "I\u0161ra\u0161ytos s\u0105skaitos fakt\u016Bros {{invoiceId}} registravimo \u012Fra\u0161as",
|
|
63458
|
+
"accounting.revrec.closedPeriodFallbackNote": " (u\u017Eregistruota kitame atvirame laikotarpyje, nes tikslinis apskaitos laikotarpis u\u017Edarytas; pradin\u0117 data {{originalDate}})",
|
|
63459
|
+
"accounting.revrec.creditLineDescription": "Pajam\u0173 pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63460
|
+
"accounting.revrec.debitLineDescription": "Atid\u0117t\u0173j\u0173 pajam\u0173 suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63461
|
+
"accounting.revrec.discountCreditLineDescription": "Pajamas ma\u017Einan\u010Dios sumos (nuolaidos) pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63462
|
+
"accounting.revrec.discountDebitLineDescription": "Atid\u0117tosios nuolaidos suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63463
|
+
"accounting.revrec.entryDescription": "Pajam\u0173 pripa\u017Einimas pagal grafik\u0105 {{scheduleId}}, laikotarpis {{periodStart}}\u2013{{periodEnd}}",
|
|
63464
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Kreditin\u0117 s\u0105skaita {{creditNoteId}}",
|
|
63465
|
+
"accounting.transactionChargedBack.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} u\u017Egin\u010Dyto mok\u0117jimo gr\u0105\u017Einimas",
|
|
63466
|
+
"accounting.transactionRefunded.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} gr\u0105\u017Einimas",
|
|
63467
|
+
"accounting.transactionSettled.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} mok\u0117jimo sudengimas",
|
|
63049
63468
|
"creditNotes.refundChargeName": "S\u0105skaitos fakt\u016Bros gr\u0105\u017Einimas",
|
|
63050
63469
|
"credits.bundleOf": "{{productName}} \u2013 {{creditCount}} kredit\u0173 paketas",
|
|
63051
63470
|
"credits.unitsOf": "{{productName}} \u2013 {{creditCount}} kredit\u0173",
|
|
63471
|
+
"einvoicing.paymentFromWallet": "Mok\u0117jimas i\u0161 pinigin\u0117s",
|
|
63472
|
+
"einvoicing.paymentProcessed": "Mok\u0117jimas apdorotas",
|
|
63473
|
+
"einvoicing.paymentReceived": "Mok\u0117jimas gautas",
|
|
63052
63474
|
"invoices.outstandingProduct.description": "Neapmok\u0117ta {{date}} i\u0161ra\u0161ytos s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma",
|
|
63053
63475
|
"invoices.outstandingProduct.descriptionPeriod": "Neapmok\u0117ta s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma u\u017E laikotarp\u012F nuo {{periodStart}} iki {{periodEnd}}",
|
|
63054
63476
|
"invoices.outstandingProduct.name": "Neapmok\u0117tas likutis",
|
|
@@ -63056,53 +63478,41 @@ var lt = {
|
|
|
63056
63478
|
"invoices.prorata.paymentForItemFullPeriod": "Mok\u0117jimas u\u017E",
|
|
63057
63479
|
"invoices.prorata.refundForItem": "Proporcingas gr\u0105\u017Einimas u\u017E",
|
|
63058
63480
|
"invoices.prorata.refundForItemFullPeriod": "Gr\u0105\u017Einimas u\u017E",
|
|
63059
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis",
|
|
63060
63481
|
"subscriptions.closingChargeName": "Prenumeratos u\u017Ebaigimo mokestis",
|
|
63061
63482
|
"subscriptions.correction": "Ankstesnio laikotarpio koregavimas",
|
|
63483
|
+
"subscriptions.reinstatementRechargeName": "Atnaujinimo \u012Fmokos u\u017E nutraukt\u0105 laikotarp\u012F",
|
|
63062
63484
|
"subscriptions.updates.addCoupon": "Prid\u0117ti kupon\u0105 {{couponName}}",
|
|
63063
63485
|
"subscriptions.updates.addProduct": "Prid\u0117ti {{productName}}",
|
|
63064
63486
|
"subscriptions.updates.removeCoupon": "Pa\u0161alinti kupon\u0105 {{couponName}}",
|
|
63065
63487
|
"subscriptions.updates.removeProduct": "Pa\u0161alinti {{productName}}",
|
|
63066
63488
|
"subscriptions.updates.unit": "vnt.",
|
|
63067
|
-
"subscriptions.updates.updatePrices": "Atnaujinti {{productName}} kainas",
|
|
63068
63489
|
"subscriptions.updates.updateCount": "Atnaujinti {{productName}} kiek\u012F ({{previousCount}} \u2192 {{newCount}} {{unit}})",
|
|
63069
|
-
"subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63070
|
-
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63071
|
-
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 proporcingam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63072
|
-
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63073
63490
|
"subscriptions.updates.updateCount.description.full.committed.invoiced": "Visam laikotarpiui pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63074
63491
|
"subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Visam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63075
63492
|
"subscriptions.updates.updateCount.description.full.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 visam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63076
63493
|
"subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Visam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63077
|
-
"
|
|
63078
|
-
"
|
|
63079
|
-
"
|
|
63080
|
-
"
|
|
63081
|
-
"
|
|
63082
|
-
"
|
|
63083
|
-
"accounting.revrec.debitLineDescription": "Atid\u0117t\u0173j\u0173 pajam\u0173 suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63084
|
-
"accounting.revrec.creditLineDescription": "Pajam\u0173 pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63085
|
-
"accounting.revrec.discountDebitLineDescription": "Atid\u0117tosios nuolaidos suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63086
|
-
"accounting.revrec.discountCreditLineDescription": "Pajamas ma\u017Einan\u010Dios sumos (nuolaidos) pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63087
|
-
"accounting.revrec.closedPeriodFallbackNote": " (u\u017Eregistruota kitame atvirame laikotarpyje, nes tikslinis apskaitos laikotarpis u\u017Edarytas; pradin\u0117 data {{originalDate}})",
|
|
63088
|
-
"einvoicing.paymentProcessed": "Mok\u0117jimas apdorotas",
|
|
63089
|
-
"einvoicing.paymentReceived": "Mok\u0117jimas gautas",
|
|
63090
|
-
"einvoicing.paymentFromWallet": "Mok\u0117jimas i\u0161 pinigin\u0117s"
|
|
63494
|
+
"subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63495
|
+
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63496
|
+
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 proporcingam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63497
|
+
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63498
|
+
"subscriptions.updates.updatePrices": "Atnaujinti {{productName}} kainas",
|
|
63499
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis"
|
|
63091
63500
|
};
|
|
63092
63501
|
|
|
63093
63502
|
// ../hyperline-i18n/build/locales/nl.js
|
|
63094
63503
|
var nl = {
|
|
63095
|
-
"accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
|
|
63096
|
-
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
63097
|
-
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
63098
63504
|
"accounting.creditNotePosted.entryDescription": "Creditnota {{creditNoteId}} voor factuur {{invoiceId}}",
|
|
63099
|
-
"accounting.
|
|
63505
|
+
"accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
|
|
63506
|
+
"accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
|
|
63100
63507
|
"accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63101
63508
|
"accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63102
63509
|
"accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63103
|
-
"accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
|
|
63104
63510
|
"accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63105
63511
|
"accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
|
|
63512
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Creditnota {{creditNoteId}}",
|
|
63513
|
+
"accounting.transactionChargedBack.entryDescription": "Terugboeking voor factuur {{invoiceId}}",
|
|
63514
|
+
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
63515
|
+
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
63106
63516
|
"creditNotes.refundChargeName": "Terugbetaling voor factuur",
|
|
63107
63517
|
"credits.bundleOf": "{{productName}} - Bundel van {{creditCount}} credits",
|
|
63108
63518
|
"credits.unitsOf": "{{productName}} - {{creditCount}} credits",
|
|
@@ -63116,9 +63526,9 @@ var nl = {
|
|
|
63116
63526
|
"invoices.prorata.paymentForItemFullPeriod": "Betaling voor",
|
|
63117
63527
|
"invoices.prorata.refundForItem": "Gedeeltelijke terugbetaling voor",
|
|
63118
63528
|
"invoices.prorata.refundForItemFullPeriod": "Terugbetaling voor",
|
|
63119
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo",
|
|
63120
63529
|
"subscriptions.closingChargeName": "Afsluitkosten voor abonnement",
|
|
63121
63530
|
"subscriptions.correction": "Aanpassing vorige periode",
|
|
63531
|
+
"subscriptions.reinstatementRechargeName": "Herstelkosten van geannuleerde periode",
|
|
63122
63532
|
"subscriptions.updates.addCoupon": "Coupon toevoegen {{couponName}}",
|
|
63123
63533
|
"subscriptions.updates.addProduct": "{{productName}} toevoegen",
|
|
63124
63534
|
"subscriptions.updates.removeCoupon": "Coupon verwijderen {{couponName}}",
|
|
@@ -63133,22 +63543,24 @@ var nl = {
|
|
|
63133
63543
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Bedrag van {{amount}} (met een minimaal toegezegd aantal van {{committedCount}}) niet gefactureerd voor de geproportioneerde periode",
|
|
63134
63544
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Deze regel is gefactureerd voor de geproportioneerde periode",
|
|
63135
63545
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Bedrag van {{amount}} niet gefactureerd voor de geproportioneerde periode",
|
|
63136
|
-
"subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}"
|
|
63546
|
+
"subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}",
|
|
63547
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo"
|
|
63137
63548
|
};
|
|
63138
63549
|
|
|
63139
63550
|
// ../hyperline-i18n/build/locales/pl.js
|
|
63140
63551
|
var pl = {
|
|
63141
|
-
"accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
|
|
63142
|
-
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
63143
|
-
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
63144
63552
|
"accounting.creditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}} dla faktury {{invoiceId}}",
|
|
63145
|
-
"accounting.
|
|
63553
|
+
"accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
|
|
63554
|
+
"accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
|
|
63146
63555
|
"accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63147
63556
|
"accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63148
63557
|
"accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63149
|
-
"accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
|
|
63150
63558
|
"accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63151
63559
|
"accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
|
|
63560
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}}",
|
|
63561
|
+
"accounting.transactionChargedBack.entryDescription": "Obci\u0105\u017Cenie zwrotne za faktur\u0119 {{invoiceId}}",
|
|
63562
|
+
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
63563
|
+
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
63152
63564
|
"creditNotes.refundChargeName": "Zwrot za faktur\u0119",
|
|
63153
63565
|
"credits.bundleOf": "{{productName}} - Pakiet {{creditCount}} kredyt\xF3w",
|
|
63154
63566
|
"credits.unitsOf": "{{productName}} - {{creditCount}} kredyt\xF3w",
|
|
@@ -63162,9 +63574,9 @@ var pl = {
|
|
|
63162
63574
|
"invoices.prorata.paymentForItemFullPeriod": "P\u0142atno\u015B\u0107 za",
|
|
63163
63575
|
"invoices.prorata.refundForItem": "Zwrot proporcjonalny za",
|
|
63164
63576
|
"invoices.prorata.refundForItemFullPeriod": "Zwrot za",
|
|
63165
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo",
|
|
63166
63577
|
"subscriptions.closingChargeName": "Op\u0142ata za zamkni\u0119cie subskrypcji",
|
|
63167
63578
|
"subscriptions.correction": "Korekta poprzedniego okresu",
|
|
63579
|
+
"subscriptions.reinstatementRechargeName": "Op\u0142ata za przywr\xF3cenie anulowanego okresu",
|
|
63168
63580
|
"subscriptions.updates.addCoupon": "Dodaj kupon {{couponName}}",
|
|
63169
63581
|
"subscriptions.updates.addProduct": "Dodaj {{productName}}",
|
|
63170
63582
|
"subscriptions.updates.removeCoupon": "Usu\u0144 kupon {{couponName}}",
|
|
@@ -63179,22 +63591,24 @@ var pl = {
|
|
|
63179
63591
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Kwota {{amount}} (z minimaln\u0105 zobowi\u0105zan\u0105 ilo\u015Bci\u0105 {{committedCount}}) niefakturowana za okres proporcjonalny",
|
|
63180
63592
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Ta pozycja zosta\u0142a zafakturowana za okres proporcjonalny",
|
|
63181
63593
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Kwota {{amount}} niefakturowana za okres proporcjonalny",
|
|
63182
|
-
"subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}"
|
|
63594
|
+
"subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}",
|
|
63595
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo"
|
|
63183
63596
|
};
|
|
63184
63597
|
|
|
63185
63598
|
// ../hyperline-i18n/build/locales/pt.js
|
|
63186
63599
|
var pt = {
|
|
63187
|
-
"accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
|
|
63188
|
-
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
63189
|
-
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
63190
63600
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para a fatura {{invoiceId}}",
|
|
63191
|
-
"accounting.
|
|
63601
|
+
"accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
|
|
63602
|
+
"accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
|
|
63192
63603
|
"accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63193
63604
|
"accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63194
63605
|
"accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63195
|
-
"accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
|
|
63196
63606
|
"accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63197
63607
|
"accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63608
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63609
|
+
"accounting.transactionChargedBack.entryDescription": "Estorno da fatura {{invoiceId}}",
|
|
63610
|
+
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
63611
|
+
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
63198
63612
|
"creditNotes.refundChargeName": "Reembolso pela fatura",
|
|
63199
63613
|
"credits.bundleOf": "{{productName}} - Pacote de {{creditCount}} cr\xE9ditos",
|
|
63200
63614
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
|
|
@@ -63208,9 +63622,9 @@ var pt = {
|
|
|
63208
63622
|
"invoices.prorata.paymentForItemFullPeriod": "Pagamento por",
|
|
63209
63623
|
"invoices.prorata.refundForItem": "Reembolso proporcional por",
|
|
63210
63624
|
"invoices.prorata.refundForItemFullPeriod": "Reembolso por",
|
|
63211
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado",
|
|
63212
63625
|
"subscriptions.closingChargeName": "Taxa de encerramento da assinatura",
|
|
63213
63626
|
"subscriptions.correction": "Ajuste do per\xEDodo anterior",
|
|
63627
|
+
"subscriptions.reinstatementRechargeName": "Recarga de reintegra\xE7\xE3o do per\xEDodo cancelado",
|
|
63214
63628
|
"subscriptions.updates.addCoupon": "Adicionar cupom {{couponName}}",
|
|
63215
63629
|
"subscriptions.updates.addProduct": "Adicionar {{productName}}",
|
|
63216
63630
|
"subscriptions.updates.removeCoupon": "Remover cupom {{couponName}}",
|
|
@@ -63225,7 +63639,8 @@ var pt = {
|
|
|
63225
63639
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Valor de {{amount}} (com um m\xEDnimo comprometido de {{committedCount}}) n\xE3o faturado para o per\xEDodo proporcional",
|
|
63226
63640
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta linha foi faturada para o per\xEDodo proporcional",
|
|
63227
63641
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Valor de {{amount}} n\xE3o faturado para o per\xEDodo proporcional",
|
|
63228
|
-
"subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}"
|
|
63642
|
+
"subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}",
|
|
63643
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado"
|
|
63229
63644
|
};
|
|
63230
63645
|
|
|
63231
63646
|
// ../hyperline-i18n/build/language.js
|
|
@@ -66004,6 +66419,150 @@ var isAxiosError = axios.isAxiosError;
|
|
|
66004
66419
|
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
66005
66420
|
import axios2 from "axios";
|
|
66006
66421
|
import axiosRetry, { isNetworkOrIdempotentRequestError, retryAfter } from "axios-retry";
|
|
66422
|
+
|
|
66423
|
+
// ../hyperline-lib/build/httpClient/logRedaction.js
|
|
66424
|
+
var REDACTED_KEY_NAMES = /* @__PURE__ */ new Set([
|
|
66425
|
+
"accesstoken",
|
|
66426
|
+
"apikey",
|
|
66427
|
+
"apitoken",
|
|
66428
|
+
"assertion",
|
|
66429
|
+
"authtoken",
|
|
66430
|
+
"clientassertion",
|
|
66431
|
+
"codeverifier",
|
|
66432
|
+
"credentials",
|
|
66433
|
+
"idtoken",
|
|
66434
|
+
"privatekey",
|
|
66435
|
+
"refreshtoken",
|
|
66436
|
+
"sessiontoken",
|
|
66437
|
+
"token"
|
|
66438
|
+
]);
|
|
66439
|
+
var REDACTED_KEY_SUFFIX_PATTERN = /(secret|password)$/;
|
|
66440
|
+
var REDACTED_KEY_CANDIDATE_PATTERN = /token|key|secret|password|assertion|verifier|credentials/i;
|
|
66441
|
+
var REDACTED_VALUE = "<redacted>";
|
|
66442
|
+
var MAX_REDACTION_DEPTH = 10;
|
|
66443
|
+
var MAX_PARSED_STRING_LENGTH = 16384;
|
|
66444
|
+
var MAX_VISITED_NODES = 1e3;
|
|
66445
|
+
var MAX_CONTAINER_ENTRIES = MAX_VISITED_NODES;
|
|
66446
|
+
function redactLogBody({ body }) {
|
|
66447
|
+
return redactValue({
|
|
66448
|
+
value: body,
|
|
66449
|
+
depth: MAX_REDACTION_DEPTH,
|
|
66450
|
+
budget: { remainingNodes: MAX_VISITED_NODES }
|
|
66451
|
+
});
|
|
66452
|
+
}
|
|
66453
|
+
function redactLogUrl({ url: url2 }) {
|
|
66454
|
+
const queryIndex = url2.indexOf("?");
|
|
66455
|
+
if (queryIndex === -1 || url2.length > MAX_PARSED_STRING_LENGTH) {
|
|
66456
|
+
return url2;
|
|
66457
|
+
}
|
|
66458
|
+
const redactedQuery = redactFormEncoded({ text: url2.slice(queryIndex + 1) });
|
|
66459
|
+
return redactedQuery === void 0 ? url2 : `${url2.slice(0, queryIndex)}?${redactedQuery}`;
|
|
66460
|
+
}
|
|
66461
|
+
function redactValue({ value, depth, budget }) {
|
|
66462
|
+
if (depth <= 0 || budget.remainingNodes <= 0) {
|
|
66463
|
+
return value;
|
|
66464
|
+
}
|
|
66465
|
+
budget.remainingNodes -= 1;
|
|
66466
|
+
if (typeof value === "string") {
|
|
66467
|
+
return redactString({ text: value, budget });
|
|
66468
|
+
}
|
|
66469
|
+
if (value instanceof URLSearchParams) {
|
|
66470
|
+
return redactFormEncoded({ text: value.toString() }) ?? value;
|
|
66471
|
+
}
|
|
66472
|
+
if (Array.isArray(value)) {
|
|
66473
|
+
return redactArray({ items: value, depth, budget });
|
|
66474
|
+
}
|
|
66475
|
+
if (isPlainObject2(value)) {
|
|
66476
|
+
return redactObject({ record: value, depth, budget });
|
|
66477
|
+
}
|
|
66478
|
+
return value;
|
|
66479
|
+
}
|
|
66480
|
+
function redactArray({ items, depth, budget }) {
|
|
66481
|
+
if (items.length > MAX_CONTAINER_ENTRIES) {
|
|
66482
|
+
return items;
|
|
66483
|
+
}
|
|
66484
|
+
let redactedItems;
|
|
66485
|
+
for (const [index, item] of items.entries()) {
|
|
66486
|
+
if (budget.remainingNodes <= 0) {
|
|
66487
|
+
break;
|
|
66488
|
+
}
|
|
66489
|
+
const redactedItem = redactValue({ value: item, depth: depth - 1, budget });
|
|
66490
|
+
if (redactedItem !== item) {
|
|
66491
|
+
redactedItems ??= [...items];
|
|
66492
|
+
redactedItems[index] = redactedItem;
|
|
66493
|
+
}
|
|
66494
|
+
}
|
|
66495
|
+
return redactedItems ?? items;
|
|
66496
|
+
}
|
|
66497
|
+
function redactObject({ record: record2, depth, budget }) {
|
|
66498
|
+
const redactedEntries = /* @__PURE__ */ new Map();
|
|
66499
|
+
let entryCount = 0;
|
|
66500
|
+
for (const key in record2) {
|
|
66501
|
+
if (!Object.hasOwn(record2, key)) {
|
|
66502
|
+
continue;
|
|
66503
|
+
}
|
|
66504
|
+
entryCount += 1;
|
|
66505
|
+
if (entryCount > MAX_CONTAINER_ENTRIES) {
|
|
66506
|
+
return record2;
|
|
66507
|
+
}
|
|
66508
|
+
if (budget.remainingNodes <= 0) {
|
|
66509
|
+
break;
|
|
66510
|
+
}
|
|
66511
|
+
const nestedValue = record2[key];
|
|
66512
|
+
const redactedNestedValue = isRedactedKey({ key }) && nestedValue != null ? REDACTED_VALUE : redactValue({ value: nestedValue, depth: depth - 1, budget });
|
|
66513
|
+
if (redactedNestedValue !== nestedValue) {
|
|
66514
|
+
redactedEntries.set(key, redactedNestedValue);
|
|
66515
|
+
}
|
|
66516
|
+
}
|
|
66517
|
+
return redactedEntries.size === 0 ? record2 : { ...record2, ...Object.fromEntries(redactedEntries) };
|
|
66518
|
+
}
|
|
66519
|
+
function redactString({ text, budget }) {
|
|
66520
|
+
if (text.length > MAX_PARSED_STRING_LENGTH) {
|
|
66521
|
+
return text;
|
|
66522
|
+
}
|
|
66523
|
+
const trimmedText = text.trim();
|
|
66524
|
+
if (trimmedText.startsWith("{") || trimmedText.startsWith("[")) {
|
|
66525
|
+
try {
|
|
66526
|
+
const parsedValue = JSON.parse(trimmedText);
|
|
66527
|
+
const redactedValue = redactValue({
|
|
66528
|
+
value: parsedValue,
|
|
66529
|
+
depth: MAX_REDACTION_DEPTH,
|
|
66530
|
+
budget
|
|
66531
|
+
});
|
|
66532
|
+
return redactedValue === parsedValue ? text : JSON.stringify(redactedValue);
|
|
66533
|
+
} catch {
|
|
66534
|
+
return text;
|
|
66535
|
+
}
|
|
66536
|
+
}
|
|
66537
|
+
return redactFormEncoded({ text }) ?? text;
|
|
66538
|
+
}
|
|
66539
|
+
function redactFormEncoded({ text }) {
|
|
66540
|
+
if (!text.includes("=") || !REDACTED_KEY_CANDIDATE_PATTERN.test(text)) {
|
|
66541
|
+
return void 0;
|
|
66542
|
+
}
|
|
66543
|
+
const params = new URLSearchParams(text);
|
|
66544
|
+
let hasRedactedParam = false;
|
|
66545
|
+
for (const key of new Set(params.keys())) {
|
|
66546
|
+
if (isRedactedKey({ key })) {
|
|
66547
|
+
params.set(key, REDACTED_VALUE);
|
|
66548
|
+
hasRedactedParam = true;
|
|
66549
|
+
}
|
|
66550
|
+
}
|
|
66551
|
+
return hasRedactedParam ? params.toString() : void 0;
|
|
66552
|
+
}
|
|
66553
|
+
function isRedactedKey({ key }) {
|
|
66554
|
+
const normalizedKey = key.toLowerCase().replace(/[_-]/g, "");
|
|
66555
|
+
return REDACTED_KEY_NAMES.has(normalizedKey) || REDACTED_KEY_SUFFIX_PATTERN.test(normalizedKey);
|
|
66556
|
+
}
|
|
66557
|
+
function isPlainObject2(value) {
|
|
66558
|
+
if (typeof value !== "object" || value === null) {
|
|
66559
|
+
return false;
|
|
66560
|
+
}
|
|
66561
|
+
const prototype = Object.getPrototypeOf(value);
|
|
66562
|
+
return prototype === Object.prototype || prototype === null;
|
|
66563
|
+
}
|
|
66564
|
+
|
|
66565
|
+
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
66007
66566
|
import { AxiosError } from "axios";
|
|
66008
66567
|
var recommendedRetryConfig = {
|
|
66009
66568
|
retries: 3,
|
|
@@ -66071,13 +66630,14 @@ function isTooManyRequestsError(error48) {
|
|
|
66071
66630
|
return error48.response?.status === 429;
|
|
66072
66631
|
}
|
|
66073
66632
|
var toLogRequest = (config4) => {
|
|
66633
|
+
const url2 = redactLogUrl({ url: config4.url ?? "" });
|
|
66074
66634
|
return {
|
|
66075
66635
|
method: config4.method ?? "",
|
|
66076
|
-
url:
|
|
66077
|
-
path:
|
|
66636
|
+
url: url2,
|
|
66637
|
+
path: url2,
|
|
66078
66638
|
hostname: config4.baseURL ?? "",
|
|
66079
|
-
originalUrl: `${config4.baseURL ?? ""}${
|
|
66080
|
-
body: config4.data,
|
|
66639
|
+
originalUrl: `${config4.baseURL ?? ""}${url2}`,
|
|
66640
|
+
body: redactLogBody({ body: config4.data }),
|
|
66081
66641
|
headers: {}
|
|
66082
66642
|
};
|
|
66083
66643
|
};
|