@hyperline/cli 0.1.0-build.1.d6bc3c8 → 0.1.0-build.1.d6f41d9
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 +841 -570
- package/package.json +1 -1
|
@@ -39229,164 +39229,158 @@ Examples:
|
|
|
39229
39229
|
});
|
|
39230
39230
|
}
|
|
39231
39231
|
|
|
39232
|
-
// build/commands/generated/
|
|
39233
|
-
function
|
|
39234
|
-
const resource = parent.command("
|
|
39235
|
-
resource.command("list
|
|
39236
|
-
|
|
39237
|
-
- wallet: Charges a monetary wallet.
|
|
39238
|
-
- credits: Consumes a credit balance.
|
|
39239
|
-
- windows: Meters weighted units against rolling allowances.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39232
|
+
// build/commands/generated/aggregators.js
|
|
39233
|
+
function registerAggregatorsCommands(parent) {
|
|
39234
|
+
const resource = parent.command("aggregators").description("Manage aggregators");
|
|
39235
|
+
resource.command("list").description(`List all aggregators with pagination. Aggregators define how billable events are counted or summed to compute usage.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39240
39236
|
Examples:
|
|
39241
|
-
hyperline
|
|
39242
|
-
hyperline
|
|
39237
|
+
hyperline aggregators list
|
|
39238
|
+
hyperline aggregators list --take <take>`).action(async (opts) => {
|
|
39243
39239
|
const ctx = resource.parent?.opts()._ctx;
|
|
39244
39240
|
if (!ctx) {
|
|
39245
39241
|
process.stderr.write("Error: Not authenticated\n");
|
|
39246
39242
|
process.exit(1);
|
|
39247
39243
|
}
|
|
39248
39244
|
const args = {};
|
|
39249
|
-
if (opts.mode !== void 0)
|
|
39250
|
-
args.mode = opts.mode;
|
|
39251
39245
|
if (opts.take !== void 0)
|
|
39252
39246
|
args.take = Number(opts.take);
|
|
39253
39247
|
if (opts.skip !== void 0)
|
|
39254
39248
|
args.skip = Number(opts.skip);
|
|
39255
39249
|
await ctx.execute({
|
|
39256
39250
|
method: "GET",
|
|
39257
|
-
path: "/v1/
|
|
39251
|
+
path: "/v1/aggregators",
|
|
39258
39252
|
args,
|
|
39259
|
-
queryParamKeys: ["
|
|
39253
|
+
queryParamKeys: ["take", "skip"]
|
|
39260
39254
|
});
|
|
39261
39255
|
});
|
|
39262
|
-
resource.command("create
|
|
39263
|
-
|
|
39264
|
-
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39265
|
-
- 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.
|
|
39266
|
-
|
|
39267
|
-
- calendar_month: Settles at the end of each UTC calendar month.`).requiredOption("--mode <value>", `Billing mode.
|
|
39268
|
-
|
|
39269
|
-
- wallet: Charges a monetary wallet.
|
|
39270
|
-
- credits: Consumes a credit balance.
|
|
39271
|
-
- windows: Meters weighted units against rolling allowances.`).addHelpText("after", `
|
|
39256
|
+
resource.command("create").description(`Create a new aggregator that counts or sums billable events. Aggregators can then be linked to products via aggregator_id.`).requiredOption("--entity <value>", `The billable event entity to aggregate.`).option("--type <value>", `The type of aggregator.`).option("--where <json>", `Filter conditions for the aggregation.`).option("--name <value>", `Name of the aggregator.`).option("--description <value>", `Description of the aggregator.`).option("--allow-negative-values", `Whether the aggregator can produce negative values.`).option("--aggregate-on-customers-enabled", `Whether the aggregator should aggregate on customers.`).option("--custom-event-name <value>", `Custom event name for the aggregator.`).option("--exposed-event-keys <json>", `Event keys exposed by the aggregator.`).option("--unit-name <value>", `Display name of the unit being measured (e.g. 'user', 'request'). Used as fallback for products attached to this aggregator.`).option("--default-interval-count <number>", `Default interval count for usage periods.`).option("--default-interval-period <value>", `Default interval period for usage periods.`).option("--thresholds <json>", `Thresholds for the aggregator.`).requiredOption("--operation <value>", `The aggregation operation to perform.`).option("--property <value>", `The property to sum.`).addHelpText("after", `
|
|
39272
39257
|
Examples:
|
|
39273
|
-
hyperline
|
|
39274
|
-
hyperline
|
|
39275
|
-
hyperline
|
|
39258
|
+
hyperline aggregators create --entity <entity> --operation <operation>
|
|
39259
|
+
hyperline aggregators create --entity <entity> --operation <operation> --type <type> --where <where>
|
|
39260
|
+
hyperline aggregators create --entity <entity> --operation <operation> --output json`).action(async (opts) => {
|
|
39276
39261
|
const ctx = resource.parent?.opts()._ctx;
|
|
39277
39262
|
if (!ctx) {
|
|
39278
39263
|
process.stderr.write("Error: Not authenticated\n");
|
|
39279
39264
|
process.exit(1);
|
|
39280
39265
|
}
|
|
39281
39266
|
const args = {};
|
|
39267
|
+
if (opts.entity !== void 0)
|
|
39268
|
+
args.entity = opts.entity;
|
|
39269
|
+
if (opts.type !== void 0)
|
|
39270
|
+
args.type = opts.type;
|
|
39282
39271
|
if (opts.name !== void 0)
|
|
39283
39272
|
args.name = opts.name;
|
|
39284
|
-
if (opts.
|
|
39285
|
-
args.
|
|
39286
|
-
if (opts.
|
|
39287
|
-
args.
|
|
39288
|
-
if (opts.
|
|
39289
|
-
args.
|
|
39290
|
-
if (opts.
|
|
39291
|
-
args.
|
|
39292
|
-
if (opts.
|
|
39293
|
-
args.
|
|
39294
|
-
if (opts.
|
|
39295
|
-
args.
|
|
39296
|
-
if (opts.
|
|
39297
|
-
args.
|
|
39298
|
-
if (opts.
|
|
39299
|
-
args.
|
|
39300
|
-
if (opts.
|
|
39301
|
-
args.
|
|
39302
|
-
if (opts.
|
|
39303
|
-
args.
|
|
39304
|
-
if (opts.
|
|
39305
|
-
args.
|
|
39273
|
+
if (opts.description !== void 0)
|
|
39274
|
+
args.description = opts.description;
|
|
39275
|
+
if (opts.customEventName !== void 0)
|
|
39276
|
+
args.custom_event_name = opts.customEventName;
|
|
39277
|
+
if (opts.unitName !== void 0)
|
|
39278
|
+
args.unit_name = opts.unitName;
|
|
39279
|
+
if (opts.defaultIntervalPeriod !== void 0)
|
|
39280
|
+
args.default_interval_period = opts.defaultIntervalPeriod;
|
|
39281
|
+
if (opts.operation !== void 0)
|
|
39282
|
+
args.operation = opts.operation;
|
|
39283
|
+
if (opts.property !== void 0)
|
|
39284
|
+
args.property = opts.property;
|
|
39285
|
+
if (opts.defaultIntervalCount !== void 0)
|
|
39286
|
+
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
39287
|
+
if (opts.allowNegativeValues !== void 0)
|
|
39288
|
+
args.allow_negative_values = true;
|
|
39289
|
+
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
39290
|
+
args.aggregate_on_customers_enabled = true;
|
|
39291
|
+
if (opts.where !== void 0)
|
|
39292
|
+
args.where = JSON.parse(opts.where);
|
|
39293
|
+
if (opts.exposedEventKeys !== void 0)
|
|
39294
|
+
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
39295
|
+
if (opts.thresholds !== void 0)
|
|
39296
|
+
args.thresholds = JSON.parse(opts.thresholds);
|
|
39306
39297
|
await ctx.execute({
|
|
39307
39298
|
method: "POST",
|
|
39308
|
-
path: "/v1/
|
|
39299
|
+
path: "/v1/aggregators",
|
|
39309
39300
|
args,
|
|
39310
39301
|
queryParamKeys: []
|
|
39311
39302
|
});
|
|
39312
39303
|
});
|
|
39313
|
-
resource.command("get
|
|
39304
|
+
resource.command("get").description(`Retrieve a specific aggregator by ID.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39314
39305
|
Examples:
|
|
39315
|
-
hyperline
|
|
39306
|
+
hyperline aggregators get --id <id>`).action(async (opts) => {
|
|
39316
39307
|
const ctx = resource.parent?.opts()._ctx;
|
|
39317
39308
|
if (!ctx) {
|
|
39318
39309
|
process.stderr.write("Error: Not authenticated\n");
|
|
39319
39310
|
process.exit(1);
|
|
39320
39311
|
}
|
|
39321
39312
|
const args = {};
|
|
39322
|
-
if (opts.
|
|
39323
|
-
args.
|
|
39313
|
+
if (opts.id !== void 0)
|
|
39314
|
+
args.id = opts.id;
|
|
39324
39315
|
await ctx.execute({
|
|
39325
39316
|
method: "GET",
|
|
39326
|
-
path: "/v1/
|
|
39317
|
+
path: "/v1/aggregators/{id}",
|
|
39327
39318
|
args,
|
|
39328
39319
|
queryParamKeys: []
|
|
39329
39320
|
});
|
|
39330
39321
|
});
|
|
39331
|
-
resource.command("
|
|
39332
|
-
|
|
39333
|
-
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39334
|
-
- 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.
|
|
39335
|
-
|
|
39336
|
-
- calendar_month: Settles at the end of each UTC calendar month.`).addHelpText("after", `
|
|
39322
|
+
resource.command("update").description(`Update an existing aggregator's configuration.`).requiredOption("--id <value>", `id parameter`).option("--entity <value>", `The billable event entity to aggregate.`).option("--type <value>", `The type of aggregator.`).option("--where <json>", `Filter conditions for the aggregation.`).option("--name <value>", `Name of the aggregator.`).option("--description <value>", `Description of the aggregator.`).option("--allow-negative-values", `Whether the aggregator can produce negative values.`).option("--aggregate-on-customers-enabled", `Whether the aggregator should aggregate on customers.`).option("--custom-event-name <value>", `Custom event name for the aggregator.`).option("--exposed-event-keys <json>", `Event keys exposed by the aggregator.`).option("--unit-name <value>", `Display name of the unit being measured (e.g. 'user', 'request'). Used as fallback for products attached to this aggregator.`).option("--default-interval-count <number>", `Default interval count for usage periods.`).option("--default-interval-period <value>", `Default interval period for usage periods.`).option("--thresholds <json>", `Thresholds for the aggregator. Replaces existing thresholds.`).option("--operation <value>", `The aggregation operation to perform.`).option("--property <value>", `The property to sum. Required when operation is 'sum'.`).addHelpText("after", `
|
|
39337
39323
|
Examples:
|
|
39338
|
-
hyperline
|
|
39339
|
-
hyperline
|
|
39340
|
-
hyperline
|
|
39324
|
+
hyperline aggregators update --id <id>
|
|
39325
|
+
hyperline aggregators update --id <id> --entity <entity> --type <type>
|
|
39326
|
+
hyperline aggregators update --id <id> --output json`).action(async (opts) => {
|
|
39341
39327
|
const ctx = resource.parent?.opts()._ctx;
|
|
39342
39328
|
if (!ctx) {
|
|
39343
39329
|
process.stderr.write("Error: Not authenticated\n");
|
|
39344
39330
|
process.exit(1);
|
|
39345
39331
|
}
|
|
39346
39332
|
const args = {};
|
|
39347
|
-
if (opts.
|
|
39348
|
-
args.
|
|
39333
|
+
if (opts.id !== void 0)
|
|
39334
|
+
args.id = opts.id;
|
|
39335
|
+
if (opts.entity !== void 0)
|
|
39336
|
+
args.entity = opts.entity;
|
|
39337
|
+
if (opts.type !== void 0)
|
|
39338
|
+
args.type = opts.type;
|
|
39349
39339
|
if (opts.name !== void 0)
|
|
39350
39340
|
args.name = opts.name;
|
|
39351
|
-
if (opts.
|
|
39352
|
-
args.
|
|
39353
|
-
if (opts.
|
|
39354
|
-
args.
|
|
39355
|
-
if (opts.
|
|
39356
|
-
args.
|
|
39357
|
-
if (opts.
|
|
39358
|
-
args.
|
|
39359
|
-
if (opts.
|
|
39360
|
-
args.
|
|
39361
|
-
if (opts.
|
|
39362
|
-
args.
|
|
39363
|
-
if (opts.
|
|
39364
|
-
args.
|
|
39365
|
-
if (opts.
|
|
39366
|
-
args.
|
|
39367
|
-
if (opts.
|
|
39368
|
-
args.
|
|
39369
|
-
if (opts.
|
|
39370
|
-
args.
|
|
39341
|
+
if (opts.description !== void 0)
|
|
39342
|
+
args.description = opts.description;
|
|
39343
|
+
if (opts.customEventName !== void 0)
|
|
39344
|
+
args.custom_event_name = opts.customEventName;
|
|
39345
|
+
if (opts.unitName !== void 0)
|
|
39346
|
+
args.unit_name = opts.unitName;
|
|
39347
|
+
if (opts.defaultIntervalPeriod !== void 0)
|
|
39348
|
+
args.default_interval_period = opts.defaultIntervalPeriod;
|
|
39349
|
+
if (opts.operation !== void 0)
|
|
39350
|
+
args.operation = opts.operation;
|
|
39351
|
+
if (opts.property !== void 0)
|
|
39352
|
+
args.property = opts.property;
|
|
39353
|
+
if (opts.defaultIntervalCount !== void 0)
|
|
39354
|
+
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
39355
|
+
if (opts.allowNegativeValues !== void 0)
|
|
39356
|
+
args.allow_negative_values = true;
|
|
39357
|
+
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
39358
|
+
args.aggregate_on_customers_enabled = true;
|
|
39359
|
+
if (opts.where !== void 0)
|
|
39360
|
+
args.where = JSON.parse(opts.where);
|
|
39361
|
+
if (opts.exposedEventKeys !== void 0)
|
|
39362
|
+
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
39363
|
+
if (opts.thresholds !== void 0)
|
|
39364
|
+
args.thresholds = JSON.parse(opts.thresholds);
|
|
39371
39365
|
await ctx.execute({
|
|
39372
39366
|
method: "PUT",
|
|
39373
|
-
path: "/v1/
|
|
39367
|
+
path: "/v1/aggregators/{id}",
|
|
39374
39368
|
args,
|
|
39375
39369
|
queryParamKeys: []
|
|
39376
39370
|
});
|
|
39377
39371
|
});
|
|
39378
|
-
resource.command("delete
|
|
39372
|
+
resource.command("delete").description(`Delete an aggregator by ID. Will fail if the aggregator is linked to a product.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39379
39373
|
Examples:
|
|
39380
|
-
hyperline
|
|
39381
|
-
hyperline
|
|
39374
|
+
hyperline aggregators delete --id <id>
|
|
39375
|
+
hyperline aggregators delete --id <id> --output json`).action(async (opts) => {
|
|
39382
39376
|
const ctx = resource.parent?.opts()._ctx;
|
|
39383
39377
|
if (!ctx) {
|
|
39384
39378
|
process.stderr.write("Error: Not authenticated\n");
|
|
39385
39379
|
process.exit(1);
|
|
39386
39380
|
}
|
|
39387
39381
|
const args = {};
|
|
39388
|
-
if (opts.
|
|
39389
|
-
args.
|
|
39382
|
+
if (opts.id !== void 0)
|
|
39383
|
+
args.id = opts.id;
|
|
39390
39384
|
if (!opts.yes) {
|
|
39391
39385
|
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39392
39386
|
if (!confirmed) {
|
|
@@ -39396,100 +39390,399 @@ Examples:
|
|
|
39396
39390
|
}
|
|
39397
39391
|
await ctx.execute({
|
|
39398
39392
|
method: "DELETE",
|
|
39399
|
-
path: "/v1/
|
|
39393
|
+
path: "/v1/aggregators/{id}",
|
|
39400
39394
|
args,
|
|
39401
39395
|
queryParamKeys: []
|
|
39402
39396
|
});
|
|
39403
39397
|
});
|
|
39404
|
-
|
|
39398
|
+
}
|
|
39399
|
+
|
|
39400
|
+
// build/commands/generated/aggregators-usage.js
|
|
39401
|
+
function registerAggregators_UsageCommands(parent) {
|
|
39402
|
+
const resource = parent.command("aggregators-usage").description("Manage aggregators > usage");
|
|
39403
|
+
resource.command("get-aggregator-usage").description(`Retrieve a usage row for an aggregator. Use the timeseries, group-by-customer or events endpoints to query metering data.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
39405
39404
|
Examples:
|
|
39406
|
-
hyperline
|
|
39405
|
+
hyperline aggregators-usage get-aggregator-usage --id <id>`).action(async (opts) => {
|
|
39407
39406
|
const ctx = resource.parent?.opts()._ctx;
|
|
39408
39407
|
if (!ctx) {
|
|
39409
39408
|
process.stderr.write("Error: Not authenticated\n");
|
|
39410
39409
|
process.exit(1);
|
|
39411
39410
|
}
|
|
39412
39411
|
const args = {};
|
|
39412
|
+
if (opts.id !== void 0)
|
|
39413
|
+
args.id = opts.id;
|
|
39413
39414
|
await ctx.execute({
|
|
39414
39415
|
method: "GET",
|
|
39415
|
-
path: "/v1/
|
|
39416
|
+
path: "/v1/aggregators/{id}/usage",
|
|
39416
39417
|
args,
|
|
39417
39418
|
queryParamKeys: []
|
|
39418
39419
|
});
|
|
39419
39420
|
});
|
|
39420
|
-
resource.command("
|
|
39421
|
+
resource.command("get-aggregator-usage-timeseries").description(`Get client-wide usage for an aggregator bucketed by month/day/hour over a period.`).requiredOption("--id <value>", `id parameter`).option("--start-date <value>", `ISO-8601 date string.`).option("--end-date <value>", `ISO-8601 date string.`).option("--aggregator-filter-id <value>", `Optional aggregator filter ID. When set, restricts the result to events matching that filter's config. Must belong to the aggregator in the path.`).option("--group-by <value>", `Bucket size for the timeseries.`).addHelpText("after", `
|
|
39421
39422
|
Examples:
|
|
39422
|
-
hyperline
|
|
39423
|
-
hyperline
|
|
39424
|
-
hyperline agents set-agent-default-plan --plan-id <plan_id> --output json`).action(async (opts) => {
|
|
39423
|
+
hyperline aggregators-usage get-aggregator-usage-timeseries --id <id>
|
|
39424
|
+
hyperline aggregators-usage get-aggregator-usage-timeseries --id <id> --start-date <start_date> --end-date <end_date>`).action(async (opts) => {
|
|
39425
39425
|
const ctx = resource.parent?.opts()._ctx;
|
|
39426
39426
|
if (!ctx) {
|
|
39427
39427
|
process.stderr.write("Error: Not authenticated\n");
|
|
39428
39428
|
process.exit(1);
|
|
39429
39429
|
}
|
|
39430
39430
|
const args = {};
|
|
39431
|
-
if (opts.
|
|
39432
|
-
args.
|
|
39433
|
-
if (opts.
|
|
39434
|
-
args.
|
|
39431
|
+
if (opts.id !== void 0)
|
|
39432
|
+
args.id = opts.id;
|
|
39433
|
+
if (opts.startDate !== void 0)
|
|
39434
|
+
args.start_date = opts.startDate;
|
|
39435
|
+
if (opts.endDate !== void 0)
|
|
39436
|
+
args.end_date = opts.endDate;
|
|
39437
|
+
if (opts.aggregatorFilterId !== void 0)
|
|
39438
|
+
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
39439
|
+
if (opts.groupBy !== void 0)
|
|
39440
|
+
args.group_by = opts.groupBy;
|
|
39435
39441
|
await ctx.execute({
|
|
39436
|
-
method: "
|
|
39437
|
-
path: "/v1/
|
|
39442
|
+
method: "GET",
|
|
39443
|
+
path: "/v1/aggregators/{id}/usage/timeseries",
|
|
39438
39444
|
args,
|
|
39439
|
-
queryParamKeys: [
|
|
39445
|
+
queryParamKeys: [
|
|
39446
|
+
"start_date",
|
|
39447
|
+
"end_date",
|
|
39448
|
+
"aggregator_filter_id",
|
|
39449
|
+
"group_by"
|
|
39450
|
+
]
|
|
39440
39451
|
});
|
|
39441
39452
|
});
|
|
39442
|
-
resource.command("
|
|
39453
|
+
resource.command("get-aggregator-usage-group-by-customer").description(`Per-customer total usage for an aggregator over a period, ranked by total. Paginated with take/skip.`).requiredOption("--id <value>", `id parameter`).option("--start-date <value>", `ISO-8601 date string.`).option("--end-date <value>", `ISO-8601 date string.`).option("--aggregator-filter-id <value>", `Optional aggregator filter ID. When set, restricts the result to events matching that filter's config. Must belong to the aggregator in the path.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39443
39454
|
Examples:
|
|
39444
|
-
hyperline
|
|
39445
|
-
hyperline
|
|
39455
|
+
hyperline aggregators-usage get-aggregator-usage-group-by-customer --id <id>
|
|
39456
|
+
hyperline aggregators-usage get-aggregator-usage-group-by-customer --id <id> --start-date <start_date> --end-date <end_date>`).action(async (opts) => {
|
|
39446
39457
|
const ctx = resource.parent?.opts()._ctx;
|
|
39447
39458
|
if (!ctx) {
|
|
39448
39459
|
process.stderr.write("Error: Not authenticated\n");
|
|
39449
39460
|
process.exit(1);
|
|
39450
39461
|
}
|
|
39451
39462
|
const args = {};
|
|
39452
|
-
if (
|
|
39453
|
-
|
|
39454
|
-
|
|
39455
|
-
|
|
39456
|
-
|
|
39457
|
-
|
|
39458
|
-
|
|
39463
|
+
if (opts.id !== void 0)
|
|
39464
|
+
args.id = opts.id;
|
|
39465
|
+
if (opts.startDate !== void 0)
|
|
39466
|
+
args.start_date = opts.startDate;
|
|
39467
|
+
if (opts.endDate !== void 0)
|
|
39468
|
+
args.end_date = opts.endDate;
|
|
39469
|
+
if (opts.aggregatorFilterId !== void 0)
|
|
39470
|
+
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
39471
|
+
if (opts.take !== void 0)
|
|
39472
|
+
args.take = Number(opts.take);
|
|
39473
|
+
if (opts.skip !== void 0)
|
|
39474
|
+
args.skip = Number(opts.skip);
|
|
39459
39475
|
await ctx.execute({
|
|
39460
|
-
method: "
|
|
39461
|
-
path: "/v1/
|
|
39476
|
+
method: "GET",
|
|
39477
|
+
path: "/v1/aggregators/{id}/usage/group-by-customer",
|
|
39462
39478
|
args,
|
|
39463
|
-
queryParamKeys: [
|
|
39479
|
+
queryParamKeys: [
|
|
39480
|
+
"start_date",
|
|
39481
|
+
"end_date",
|
|
39482
|
+
"aggregator_filter_id",
|
|
39483
|
+
"take",
|
|
39484
|
+
"skip"
|
|
39485
|
+
]
|
|
39464
39486
|
});
|
|
39465
39487
|
});
|
|
39466
|
-
resource.command("
|
|
39467
|
-
|
|
39468
|
-
- credits: Credit counts.
|
|
39469
|
-
- units: Weighted rolling-allowance units.
|
|
39470
|
-
- currency: Major units of the specified currency.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--search <value>", `search`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39488
|
+
resource.command("get-aggregator-usage-events").description(`List raw billable events for an aggregator across every customer of the client. Paginated with take/skip.`).requiredOption("--id <value>", `id parameter`).option("--start-date <value>", `ISO-8601 date string.`).option("--end-date <value>", `ISO-8601 date string.`).option("--aggregator-filter-id <value>", `Optional aggregator filter ID. When set, restricts the result to events matching that filter's config. Must belong to the aggregator in the path.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39471
39489
|
Examples:
|
|
39472
|
-
hyperline
|
|
39473
|
-
hyperline
|
|
39490
|
+
hyperline aggregators-usage get-aggregator-usage-events --id <id>
|
|
39491
|
+
hyperline aggregators-usage get-aggregator-usage-events --id <id> --start-date <start_date> --end-date <end_date>`).action(async (opts) => {
|
|
39474
39492
|
const ctx = resource.parent?.opts()._ctx;
|
|
39475
39493
|
if (!ctx) {
|
|
39476
39494
|
process.stderr.write("Error: Not authenticated\n");
|
|
39477
39495
|
process.exit(1);
|
|
39478
39496
|
}
|
|
39479
39497
|
const args = {};
|
|
39480
|
-
if (opts.
|
|
39481
|
-
args.
|
|
39482
|
-
if (opts.
|
|
39483
|
-
args.
|
|
39484
|
-
if (opts.
|
|
39485
|
-
args.
|
|
39498
|
+
if (opts.id !== void 0)
|
|
39499
|
+
args.id = opts.id;
|
|
39500
|
+
if (opts.startDate !== void 0)
|
|
39501
|
+
args.start_date = opts.startDate;
|
|
39502
|
+
if (opts.endDate !== void 0)
|
|
39503
|
+
args.end_date = opts.endDate;
|
|
39504
|
+
if (opts.aggregatorFilterId !== void 0)
|
|
39505
|
+
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
39486
39506
|
if (opts.take !== void 0)
|
|
39487
39507
|
args.take = Number(opts.take);
|
|
39488
39508
|
if (opts.skip !== void 0)
|
|
39489
39509
|
args.skip = Number(opts.skip);
|
|
39490
39510
|
await ctx.execute({
|
|
39491
39511
|
method: "GET",
|
|
39492
|
-
path: "/v1/
|
|
39512
|
+
path: "/v1/aggregators/{id}/usage/events",
|
|
39513
|
+
args,
|
|
39514
|
+
queryParamKeys: [
|
|
39515
|
+
"start_date",
|
|
39516
|
+
"end_date",
|
|
39517
|
+
"aggregator_filter_id",
|
|
39518
|
+
"take",
|
|
39519
|
+
"skip"
|
|
39520
|
+
]
|
|
39521
|
+
});
|
|
39522
|
+
});
|
|
39523
|
+
}
|
|
39524
|
+
|
|
39525
|
+
// build/commands/generated/ai-billing.js
|
|
39526
|
+
function registerAi_BillingCommands(parent) {
|
|
39527
|
+
const resource = parent.command("ai-billing").description("Manage ai billing");
|
|
39528
|
+
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
|
+
|
|
39530
|
+
- wallet: Charges a monetary wallet.
|
|
39531
|
+
- credits: Consumes a credit balance.
|
|
39532
|
+
- windows: Meters weighted units against rolling allowances.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39533
|
+
Examples:
|
|
39534
|
+
hyperline ai-billing list-agent-plans
|
|
39535
|
+
hyperline ai-billing list-agent-plans --mode <mode> --take <take>`).action(async (opts) => {
|
|
39536
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39537
|
+
if (!ctx) {
|
|
39538
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39539
|
+
process.exit(1);
|
|
39540
|
+
}
|
|
39541
|
+
const args = {};
|
|
39542
|
+
if (opts.mode !== void 0)
|
|
39543
|
+
args.mode = opts.mode;
|
|
39544
|
+
if (opts.take !== void 0)
|
|
39545
|
+
args.take = Number(opts.take);
|
|
39546
|
+
if (opts.skip !== void 0)
|
|
39547
|
+
args.skip = Number(opts.skip);
|
|
39548
|
+
await ctx.execute({
|
|
39549
|
+
method: "GET",
|
|
39550
|
+
path: "/v1/ai-billing/plans",
|
|
39551
|
+
args,
|
|
39552
|
+
queryParamKeys: ["mode", "take", "skip"]
|
|
39553
|
+
});
|
|
39554
|
+
});
|
|
39555
|
+
resource.command("create-agent-plan").description(`Create an AI agent billing plan: name, billing mode (wallet/credits/windows), rate card reference, allowance windows, markups, per-seat credit grants and overage stance. Past-limit usage is priced EITHER by overage_markup_percent over the base rates OR by overage_rate_card_id, a currency rate card whose own rates are the overage price \u2014 never both. Metered overage mints the plan's invoice container.`).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.
|
|
39556
|
+
|
|
39557
|
+
- refuse: Rejects the call that crosses the boundary without deducting usage.
|
|
39558
|
+
- 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.
|
|
39559
|
+
|
|
39560
|
+
- calendar_month: Settles at the end of each UTC calendar month.`).requiredOption("--mode <value>", `Billing mode.
|
|
39561
|
+
|
|
39562
|
+
- wallet: Charges a monetary wallet.
|
|
39563
|
+
- credits: Consumes a credit balance.
|
|
39564
|
+
- windows: Meters weighted units against rolling allowances.`).addHelpText("after", `
|
|
39565
|
+
Examples:
|
|
39566
|
+
hyperline ai-billing create-agent-plan --name <name> --mode <mode>
|
|
39567
|
+
hyperline ai-billing create-agent-plan --name <name> --mode <mode> --rate-card-id <rate_card_id> --overage-mode <overage_mode>
|
|
39568
|
+
hyperline ai-billing create-agent-plan --name <name> --mode <mode> --output json`).action(async (opts) => {
|
|
39569
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39570
|
+
if (!ctx) {
|
|
39571
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39572
|
+
process.exit(1);
|
|
39573
|
+
}
|
|
39574
|
+
const args = {};
|
|
39575
|
+
if (opts.name !== void 0)
|
|
39576
|
+
args.name = opts.name;
|
|
39577
|
+
if (opts.rateCardId !== void 0)
|
|
39578
|
+
args.rate_card_id = opts.rateCardId;
|
|
39579
|
+
if (opts.overageMode !== void 0)
|
|
39580
|
+
args.overage_mode = opts.overageMode;
|
|
39581
|
+
if (opts.markupPercent !== void 0)
|
|
39582
|
+
args.markup_percent = opts.markupPercent;
|
|
39583
|
+
if (opts.overageMarkupPercent !== void 0)
|
|
39584
|
+
args.overage_markup_percent = opts.overageMarkupPercent;
|
|
39585
|
+
if (opts.overageRateCardId !== void 0)
|
|
39586
|
+
args.overage_rate_card_id = opts.overageRateCardId;
|
|
39587
|
+
if (opts.perSeatCredits !== void 0)
|
|
39588
|
+
args.per_seat_credits = opts.perSeatCredits;
|
|
39589
|
+
if (opts.settlementSchedule !== void 0)
|
|
39590
|
+
args.settlement_schedule = opts.settlementSchedule;
|
|
39591
|
+
if (opts.mode !== void 0)
|
|
39592
|
+
args.mode = opts.mode;
|
|
39593
|
+
if (opts.settlementIntervalMinutes !== void 0)
|
|
39594
|
+
args.settlement_interval_minutes = Number(opts.settlementIntervalMinutes);
|
|
39595
|
+
if (opts.grantRolloverEnabled !== void 0)
|
|
39596
|
+
args.grant_rollover_enabled = true;
|
|
39597
|
+
if (opts.windows !== void 0)
|
|
39598
|
+
args.windows = JSON.parse(opts.windows);
|
|
39599
|
+
await ctx.execute({
|
|
39600
|
+
method: "POST",
|
|
39601
|
+
path: "/v1/ai-billing/plans",
|
|
39602
|
+
args,
|
|
39603
|
+
queryParamKeys: []
|
|
39604
|
+
});
|
|
39605
|
+
});
|
|
39606
|
+
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("--plan-id <value>", `plan_id parameter`).addHelpText("after", `
|
|
39607
|
+
Examples:
|
|
39608
|
+
hyperline ai-billing get-agent-plan --plan-id <plan_id>`).action(async (opts) => {
|
|
39609
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39610
|
+
if (!ctx) {
|
|
39611
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39612
|
+
process.exit(1);
|
|
39613
|
+
}
|
|
39614
|
+
const args = {};
|
|
39615
|
+
if (opts.planId !== void 0)
|
|
39616
|
+
args.plan_id = opts.planId;
|
|
39617
|
+
await ctx.execute({
|
|
39618
|
+
method: "GET",
|
|
39619
|
+
path: "/v1/ai-billing/plans/{plan_id}",
|
|
39620
|
+
args,
|
|
39621
|
+
queryParamKeys: []
|
|
39622
|
+
});
|
|
39623
|
+
});
|
|
39624
|
+
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("--plan-id <value>", `plan_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.
|
|
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", `
|
|
39630
|
+
Examples:
|
|
39631
|
+
hyperline ai-billing replace-agent-plan --plan-id <plan_id> --name <name>
|
|
39632
|
+
hyperline ai-billing replace-agent-plan --plan-id <plan_id> --name <name> --rate-card-id <rate_card_id> --overage-mode <overage_mode>
|
|
39633
|
+
hyperline ai-billing replace-agent-plan --plan-id <plan_id> --name <name> --output json`).action(async (opts) => {
|
|
39634
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39635
|
+
if (!ctx) {
|
|
39636
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39637
|
+
process.exit(1);
|
|
39638
|
+
}
|
|
39639
|
+
const args = {};
|
|
39640
|
+
if (opts.planId !== void 0)
|
|
39641
|
+
args.plan_id = opts.planId;
|
|
39642
|
+
if (opts.name !== void 0)
|
|
39643
|
+
args.name = opts.name;
|
|
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);
|
|
39664
|
+
await ctx.execute({
|
|
39665
|
+
method: "PUT",
|
|
39666
|
+
path: "/v1/ai-billing/plans/{plan_id}",
|
|
39667
|
+
args,
|
|
39668
|
+
queryParamKeys: []
|
|
39669
|
+
});
|
|
39670
|
+
});
|
|
39671
|
+
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("--plan-id <value>", `plan_id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39672
|
+
Examples:
|
|
39673
|
+
hyperline ai-billing delete-agent-plan --plan-id <plan_id>
|
|
39674
|
+
hyperline ai-billing delete-agent-plan --plan-id <plan_id> --output json`).action(async (opts) => {
|
|
39675
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39676
|
+
if (!ctx) {
|
|
39677
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39678
|
+
process.exit(1);
|
|
39679
|
+
}
|
|
39680
|
+
const args = {};
|
|
39681
|
+
if (opts.planId !== void 0)
|
|
39682
|
+
args.plan_id = opts.planId;
|
|
39683
|
+
if (!opts.yes) {
|
|
39684
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39685
|
+
if (!confirmed) {
|
|
39686
|
+
process.stdout.write("Aborted.\n");
|
|
39687
|
+
return;
|
|
39688
|
+
}
|
|
39689
|
+
}
|
|
39690
|
+
await ctx.execute({
|
|
39691
|
+
method: "DELETE",
|
|
39692
|
+
path: "/v1/ai-billing/plans/{plan_id}",
|
|
39693
|
+
args,
|
|
39694
|
+
queryParamKeys: []
|
|
39695
|
+
});
|
|
39696
|
+
});
|
|
39697
|
+
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", `
|
|
39698
|
+
Examples:
|
|
39699
|
+
hyperline ai-billing get-agent-default-plan`).action(async (_opts) => {
|
|
39700
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39701
|
+
if (!ctx) {
|
|
39702
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39703
|
+
process.exit(1);
|
|
39704
|
+
}
|
|
39705
|
+
const args = {};
|
|
39706
|
+
await ctx.execute({
|
|
39707
|
+
method: "GET",
|
|
39708
|
+
path: "/v1/ai-billing/default-plan",
|
|
39709
|
+
args,
|
|
39710
|
+
queryParamKeys: []
|
|
39711
|
+
});
|
|
39712
|
+
});
|
|
39713
|
+
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", `
|
|
39714
|
+
Examples:
|
|
39715
|
+
hyperline ai-billing set-agent-default-plan --plan-id <plan_id>
|
|
39716
|
+
hyperline ai-billing set-agent-default-plan --plan-id <plan_id> --auto-apply
|
|
39717
|
+
hyperline ai-billing set-agent-default-plan --plan-id <plan_id> --output json`).action(async (opts) => {
|
|
39718
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39719
|
+
if (!ctx) {
|
|
39720
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39721
|
+
process.exit(1);
|
|
39722
|
+
}
|
|
39723
|
+
const args = {};
|
|
39724
|
+
if (opts.planId !== void 0)
|
|
39725
|
+
args.plan_id = opts.planId;
|
|
39726
|
+
if (opts.autoApply !== void 0)
|
|
39727
|
+
args.auto_apply = true;
|
|
39728
|
+
await ctx.execute({
|
|
39729
|
+
method: "PUT",
|
|
39730
|
+
path: "/v1/ai-billing/default-plan",
|
|
39731
|
+
args,
|
|
39732
|
+
queryParamKeys: []
|
|
39733
|
+
});
|
|
39734
|
+
});
|
|
39735
|
+
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", `
|
|
39736
|
+
Examples:
|
|
39737
|
+
hyperline ai-billing clear-agent-default-plan
|
|
39738
|
+
hyperline ai-billing clear-agent-default-plan --output json`).action(async (opts) => {
|
|
39739
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39740
|
+
if (!ctx) {
|
|
39741
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39742
|
+
process.exit(1);
|
|
39743
|
+
}
|
|
39744
|
+
const args = {};
|
|
39745
|
+
if (!opts.yes) {
|
|
39746
|
+
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
39747
|
+
if (!confirmed) {
|
|
39748
|
+
process.stdout.write("Aborted.\n");
|
|
39749
|
+
return;
|
|
39750
|
+
}
|
|
39751
|
+
}
|
|
39752
|
+
await ctx.execute({
|
|
39753
|
+
method: "DELETE",
|
|
39754
|
+
path: "/v1/ai-billing/default-plan",
|
|
39755
|
+
args,
|
|
39756
|
+
queryParamKeys: []
|
|
39757
|
+
});
|
|
39758
|
+
});
|
|
39759
|
+
resource.command("list-agent-rate-cards").description(`List AI rate cards: named pricing row sets in credits, window units or currency. Shows what plans/policies/products depend on each. Filter by denomination, currency or name search; paginated with take/skip.`).option("--denomination <value>", `Unit in which rate-card prices are expressed.
|
|
39760
|
+
|
|
39761
|
+
- credits: Credit counts.
|
|
39762
|
+
- units: Weighted rolling-allowance units.
|
|
39763
|
+
- currency: Major units of the specified currency.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--search <value>", `search`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39764
|
+
Examples:
|
|
39765
|
+
hyperline ai-billing list-agent-rate-cards
|
|
39766
|
+
hyperline ai-billing list-agent-rate-cards --denomination <denomination> --currency <currency>`).action(async (opts) => {
|
|
39767
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
39768
|
+
if (!ctx) {
|
|
39769
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
39770
|
+
process.exit(1);
|
|
39771
|
+
}
|
|
39772
|
+
const args = {};
|
|
39773
|
+
if (opts.denomination !== void 0)
|
|
39774
|
+
args.denomination = opts.denomination;
|
|
39775
|
+
if (opts.currency !== void 0)
|
|
39776
|
+
args.currency = opts.currency;
|
|
39777
|
+
if (opts.search !== void 0)
|
|
39778
|
+
args.search = opts.search;
|
|
39779
|
+
if (opts.take !== void 0)
|
|
39780
|
+
args.take = Number(opts.take);
|
|
39781
|
+
if (opts.skip !== void 0)
|
|
39782
|
+
args.skip = Number(opts.skip);
|
|
39783
|
+
await ctx.execute({
|
|
39784
|
+
method: "GET",
|
|
39785
|
+
path: "/v1/ai-billing/rate-cards",
|
|
39493
39786
|
args,
|
|
39494
39787
|
queryParamKeys: ["denomination", "currency", "search", "take", "skip"]
|
|
39495
39788
|
});
|
|
@@ -39500,9 +39793,9 @@ Examples:
|
|
|
39500
39793
|
- units: Weighted rolling-allowance units.
|
|
39501
39794
|
- currency: Major units of the specified currency.`).option("--currency <value>", `ISO 4217 currency code for monetary values. Null for counts or historical amounts without recorded currency.`).addHelpText("after", `
|
|
39502
39795
|
Examples:
|
|
39503
|
-
hyperline
|
|
39504
|
-
hyperline
|
|
39505
|
-
hyperline
|
|
39796
|
+
hyperline ai-billing create-agent-rate-card --name <name> --rows <rows> --denomination <denomination>
|
|
39797
|
+
hyperline ai-billing create-agent-rate-card --name <name> --rows <rows> --denomination <denomination> --fallback-per-usd <fallback_per_usd> --currency <currency>
|
|
39798
|
+
hyperline ai-billing create-agent-rate-card --name <name> --rows <rows> --denomination <denomination> --output json`).action(async (opts) => {
|
|
39506
39799
|
const ctx = resource.parent?.opts()._ctx;
|
|
39507
39800
|
if (!ctx) {
|
|
39508
39801
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39521,14 +39814,14 @@ Examples:
|
|
|
39521
39814
|
args.rows = JSON.parse(opts.rows);
|
|
39522
39815
|
await ctx.execute({
|
|
39523
39816
|
method: "POST",
|
|
39524
|
-
path: "/v1/
|
|
39817
|
+
path: "/v1/ai-billing/rate-cards",
|
|
39525
39818
|
args,
|
|
39526
39819
|
queryParamKeys: []
|
|
39527
39820
|
});
|
|
39528
39821
|
});
|
|
39529
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("--rate-card-id <value>", `rate_card_id parameter`).addHelpText("after", `
|
|
39530
39823
|
Examples:
|
|
39531
|
-
hyperline
|
|
39824
|
+
hyperline ai-billing get-agent-rate-card --rate-card-id <rate_card_id>`).action(async (opts) => {
|
|
39532
39825
|
const ctx = resource.parent?.opts()._ctx;
|
|
39533
39826
|
if (!ctx) {
|
|
39534
39827
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39539,16 +39832,16 @@ Examples:
|
|
|
39539
39832
|
args.rate_card_id = opts.rateCardId;
|
|
39540
39833
|
await ctx.execute({
|
|
39541
39834
|
method: "GET",
|
|
39542
|
-
path: "/v1/
|
|
39835
|
+
path: "/v1/ai-billing/rate-cards/{rate_card_id}",
|
|
39543
39836
|
args,
|
|
39544
39837
|
queryParamKeys: []
|
|
39545
39838
|
});
|
|
39546
39839
|
});
|
|
39547
39840
|
resource.command("replace-agent-rate-card").description(`Replace an AI rate card's rows, name, description and USD fallback (whole-card semantics). Denomination and currency are immutable.`).requiredOption("--rate-card-id <value>", `rate_card_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", `
|
|
39548
39841
|
Examples:
|
|
39549
|
-
hyperline
|
|
39550
|
-
hyperline
|
|
39551
|
-
hyperline
|
|
39842
|
+
hyperline ai-billing replace-agent-rate-card --rate-card-id <rate_card_id> --name <name> --rows <rows>
|
|
39843
|
+
hyperline ai-billing replace-agent-rate-card --rate-card-id <rate_card_id> --name <name> --rows <rows> --fallback-per-usd <fallback_per_usd>
|
|
39844
|
+
hyperline ai-billing replace-agent-rate-card --rate-card-id <rate_card_id> --name <name> --rows <rows> --output json`).action(async (opts) => {
|
|
39552
39845
|
const ctx = resource.parent?.opts()._ctx;
|
|
39553
39846
|
if (!ctx) {
|
|
39554
39847
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39565,15 +39858,15 @@ Examples:
|
|
|
39565
39858
|
args.rows = JSON.parse(opts.rows);
|
|
39566
39859
|
await ctx.execute({
|
|
39567
39860
|
method: "PUT",
|
|
39568
|
-
path: "/v1/
|
|
39861
|
+
path: "/v1/ai-billing/rate-cards/{rate_card_id}",
|
|
39569
39862
|
args,
|
|
39570
39863
|
queryParamKeys: []
|
|
39571
39864
|
});
|
|
39572
39865
|
});
|
|
39573
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("--rate-card-id <value>", `rate_card_id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39574
39867
|
Examples:
|
|
39575
|
-
hyperline
|
|
39576
|
-
hyperline
|
|
39868
|
+
hyperline ai-billing delete-agent-rate-card --rate-card-id <rate_card_id>
|
|
39869
|
+
hyperline ai-billing delete-agent-rate-card --rate-card-id <rate_card_id> --output json`).action(async (opts) => {
|
|
39577
39870
|
const ctx = resource.parent?.opts()._ctx;
|
|
39578
39871
|
if (!ctx) {
|
|
39579
39872
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39591,14 +39884,14 @@ Examples:
|
|
|
39591
39884
|
}
|
|
39592
39885
|
await ctx.execute({
|
|
39593
39886
|
method: "DELETE",
|
|
39594
|
-
path: "/v1/
|
|
39887
|
+
path: "/v1/ai-billing/rate-cards/{rate_card_id}",
|
|
39595
39888
|
args,
|
|
39596
39889
|
queryParamKeys: []
|
|
39597
39890
|
});
|
|
39598
39891
|
});
|
|
39599
39892
|
resource.command("list-agent-credit-products").description(`List the credit products AI agent usage can draw down, with their purchasable packs and default rate cards. Customer pot balances live on the customer credits endpoints.`).addHelpText("after", `
|
|
39600
39893
|
Examples:
|
|
39601
|
-
hyperline
|
|
39894
|
+
hyperline ai-billing list-agent-credit-products`).action(async (_opts) => {
|
|
39602
39895
|
const ctx = resource.parent?.opts()._ctx;
|
|
39603
39896
|
if (!ctx) {
|
|
39604
39897
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39607,15 +39900,15 @@ Examples:
|
|
|
39607
39900
|
const args = {};
|
|
39608
39901
|
await ctx.execute({
|
|
39609
39902
|
method: "GET",
|
|
39610
|
-
path: "/v1/
|
|
39903
|
+
path: "/v1/ai-billing/credit-products",
|
|
39611
39904
|
args,
|
|
39612
39905
|
queryParamKeys: []
|
|
39613
39906
|
});
|
|
39614
39907
|
});
|
|
39615
39908
|
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("--enabled-only <value>", `enabled_only`).addHelpText("after", `
|
|
39616
39909
|
Examples:
|
|
39617
|
-
hyperline
|
|
39618
|
-
hyperline
|
|
39910
|
+
hyperline ai-billing list-agent-cost-catalog
|
|
39911
|
+
hyperline ai-billing list-agent-cost-catalog --enabled-only <enabled_only>`).action(async (opts) => {
|
|
39619
39912
|
const ctx = resource.parent?.opts()._ctx;
|
|
39620
39913
|
if (!ctx) {
|
|
39621
39914
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39626,15 +39919,15 @@ Examples:
|
|
|
39626
39919
|
args.enabled_only = opts.enabledOnly;
|
|
39627
39920
|
await ctx.execute({
|
|
39628
39921
|
method: "GET",
|
|
39629
|
-
path: "/v1/
|
|
39922
|
+
path: "/v1/ai-billing/cost-catalog",
|
|
39630
39923
|
args,
|
|
39631
39924
|
queryParamKeys: ["enabled_only"]
|
|
39632
39925
|
});
|
|
39633
39926
|
});
|
|
39634
39927
|
resource.command("create-agent-cost-catalog-item").description(`Create a custom AI cost item so a non-LLM vendor call is priced instead of landing unpriced at $0. provider/item must match hyperline.cost({ vendor, item }) verbatim and each dimensions[].key must match the unit the SDK sends. Re-creating an existing open item returns it unchanged (200); a pair the global registry already prices is refused \u2014 use the overrides endpoint for that.`).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", `
|
|
39635
39928
|
Examples:
|
|
39636
|
-
hyperline
|
|
39637
|
-
hyperline
|
|
39929
|
+
hyperline ai-billing create-agent-cost-catalog-item --provider <provider> --item <item> --dimensions <dimensions>
|
|
39930
|
+
hyperline ai-billing create-agent-cost-catalog-item --provider <provider> --item <item> --dimensions <dimensions> --output json`).action(async (opts) => {
|
|
39638
39931
|
const ctx = resource.parent?.opts()._ctx;
|
|
39639
39932
|
if (!ctx) {
|
|
39640
39933
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39649,15 +39942,15 @@ Examples:
|
|
|
39649
39942
|
args.dimensions = JSON.parse(opts.dimensions);
|
|
39650
39943
|
await ctx.execute({
|
|
39651
39944
|
method: "POST",
|
|
39652
|
-
path: "/v1/
|
|
39945
|
+
path: "/v1/ai-billing/cost-catalog/items",
|
|
39653
39946
|
args,
|
|
39654
39947
|
queryParamKeys: []
|
|
39655
39948
|
});
|
|
39656
39949
|
});
|
|
39657
39950
|
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("--item-id <value>", `item_id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39658
39951
|
Examples:
|
|
39659
|
-
hyperline
|
|
39660
|
-
hyperline
|
|
39952
|
+
hyperline ai-billing delete-agent-cost-catalog-item --item-id <item_id>
|
|
39953
|
+
hyperline ai-billing delete-agent-cost-catalog-item --item-id <item_id> --output json`).action(async (opts) => {
|
|
39661
39954
|
const ctx = resource.parent?.opts()._ctx;
|
|
39662
39955
|
if (!ctx) {
|
|
39663
39956
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39675,16 +39968,16 @@ Examples:
|
|
|
39675
39968
|
}
|
|
39676
39969
|
await ctx.execute({
|
|
39677
39970
|
method: "DELETE",
|
|
39678
|
-
path: "/v1/
|
|
39971
|
+
path: "/v1/ai-billing/cost-catalog/items/{item_id}",
|
|
39679
39972
|
args,
|
|
39680
39973
|
queryParamKeys: []
|
|
39681
39974
|
});
|
|
39682
39975
|
});
|
|
39683
39976
|
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", `
|
|
39684
39977
|
Examples:
|
|
39685
|
-
hyperline
|
|
39686
|
-
hyperline
|
|
39687
|
-
hyperline
|
|
39978
|
+
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>
|
|
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) => {
|
|
39688
39981
|
const ctx = resource.parent?.opts()._ctx;
|
|
39689
39982
|
if (!ctx) {
|
|
39690
39983
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39707,15 +40000,15 @@ Examples:
|
|
|
39707
40000
|
args.dimensions = JSON.parse(opts.dimensions);
|
|
39708
40001
|
await ctx.execute({
|
|
39709
40002
|
method: "PUT",
|
|
39710
|
-
path: "/v1/
|
|
40003
|
+
path: "/v1/ai-billing/cost-catalog/overrides",
|
|
39711
40004
|
args,
|
|
39712
40005
|
queryParamKeys: []
|
|
39713
40006
|
});
|
|
39714
40007
|
});
|
|
39715
40008
|
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("--override-id <value>", `override_id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39716
40009
|
Examples:
|
|
39717
|
-
hyperline
|
|
39718
|
-
hyperline
|
|
40010
|
+
hyperline ai-billing delete-agent-cost-catalog-override --override-id <override_id>
|
|
40011
|
+
hyperline ai-billing delete-agent-cost-catalog-override --override-id <override_id> --output json`).action(async (opts) => {
|
|
39719
40012
|
const ctx = resource.parent?.opts()._ctx;
|
|
39720
40013
|
if (!ctx) {
|
|
39721
40014
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39733,14 +40026,14 @@ Examples:
|
|
|
39733
40026
|
}
|
|
39734
40027
|
await ctx.execute({
|
|
39735
40028
|
method: "DELETE",
|
|
39736
|
-
path: "/v1/
|
|
40029
|
+
path: "/v1/ai-billing/cost-catalog/overrides/{override_id}",
|
|
39737
40030
|
args,
|
|
39738
40031
|
queryParamKeys: []
|
|
39739
40032
|
});
|
|
39740
40033
|
});
|
|
39741
40034
|
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("--customer-id <value>", `customer_id parameter`).addHelpText("after", `
|
|
39742
40035
|
Examples:
|
|
39743
|
-
hyperline
|
|
40036
|
+
hyperline ai-billing list-agent-customer-policies --customer-id <customer_id>`).action(async (opts) => {
|
|
39744
40037
|
const ctx = resource.parent?.opts()._ctx;
|
|
39745
40038
|
if (!ctx) {
|
|
39746
40039
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39751,15 +40044,15 @@ Examples:
|
|
|
39751
40044
|
args.customer_id = opts.customerId;
|
|
39752
40045
|
await ctx.execute({
|
|
39753
40046
|
method: "GET",
|
|
39754
|
-
path: "/v1/
|
|
40047
|
+
path: "/v1/ai-billing/customers/{customer_id}/policies",
|
|
39755
40048
|
args,
|
|
39756
40049
|
queryParamKeys: []
|
|
39757
40050
|
});
|
|
39758
40051
|
});
|
|
39759
40052
|
resource.command("get-agent-customer-policy").description(`Get one customer's AI billing policy \u2014 the default shared pool, or one agent's own scope via the agent query param.`).requiredOption("--customer-id <value>", `customer_id parameter`).option("--agent <value>", `Agent scope identifier. Null on scoped results denotes the customer's shared pool.`).addHelpText("after", `
|
|
39760
40053
|
Examples:
|
|
39761
|
-
hyperline
|
|
39762
|
-
hyperline
|
|
40054
|
+
hyperline ai-billing get-agent-customer-policy --customer-id <customer_id>
|
|
40055
|
+
hyperline ai-billing get-agent-customer-policy --customer-id <customer_id> --agent <agent>`).action(async (opts) => {
|
|
39763
40056
|
const ctx = resource.parent?.opts()._ctx;
|
|
39764
40057
|
if (!ctx) {
|
|
39765
40058
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39772,7 +40065,7 @@ Examples:
|
|
|
39772
40065
|
args.agent = opts.agent;
|
|
39773
40066
|
await ctx.execute({
|
|
39774
40067
|
method: "GET",
|
|
39775
|
-
path: "/v1/
|
|
40068
|
+
path: "/v1/ai-billing/customers/{customer_id}/policy",
|
|
39776
40069
|
args,
|
|
39777
40070
|
queryParamKeys: ["agent"]
|
|
39778
40071
|
});
|
|
@@ -39788,9 +40081,9 @@ Examples:
|
|
|
39788
40081
|
|
|
39789
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", `
|
|
39790
40083
|
Examples:
|
|
39791
|
-
hyperline
|
|
39792
|
-
hyperline
|
|
39793
|
-
hyperline
|
|
40084
|
+
hyperline ai-billing upsert-agent-customer-policy --customer-id <customer_id> --mode <mode> --blocked
|
|
40085
|
+
hyperline ai-billing upsert-agent-customer-policy --customer-id <customer_id> --mode <mode> --blocked --agent <agent> --wallet-id <wallet_id>
|
|
40086
|
+
hyperline ai-billing upsert-agent-customer-policy --customer-id <customer_id> --mode <mode> --blocked --output json`).action(async (opts) => {
|
|
39794
40087
|
const ctx = resource.parent?.opts()._ctx;
|
|
39795
40088
|
if (!ctx) {
|
|
39796
40089
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39835,16 +40128,16 @@ Examples:
|
|
|
39835
40128
|
args.window_rates = JSON.parse(opts.windowRates);
|
|
39836
40129
|
await ctx.execute({
|
|
39837
40130
|
method: "PUT",
|
|
39838
|
-
path: "/v1/
|
|
40131
|
+
path: "/v1/ai-billing/customers/{customer_id}/policy",
|
|
39839
40132
|
args,
|
|
39840
40133
|
queryParamKeys: ["agent"]
|
|
39841
40134
|
});
|
|
39842
40135
|
});
|
|
39843
40136
|
resource.command("delete-agent-customer-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("--customer-id <value>", `customer_id parameter`).option("--agent <value>", `Agent scope identifier. Null on scoped results denotes the customer's shared pool.`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
39844
40137
|
Examples:
|
|
39845
|
-
hyperline
|
|
39846
|
-
hyperline
|
|
39847
|
-
hyperline
|
|
40138
|
+
hyperline ai-billing delete-agent-customer-policy --customer-id <customer_id>
|
|
40139
|
+
hyperline ai-billing delete-agent-customer-policy --customer-id <customer_id> --agent <agent>
|
|
40140
|
+
hyperline ai-billing delete-agent-customer-policy --customer-id <customer_id> --output json`).action(async (opts) => {
|
|
39848
40141
|
const ctx = resource.parent?.opts()._ctx;
|
|
39849
40142
|
if (!ctx) {
|
|
39850
40143
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39864,15 +40157,15 @@ Examples:
|
|
|
39864
40157
|
}
|
|
39865
40158
|
await ctx.execute({
|
|
39866
40159
|
method: "DELETE",
|
|
39867
|
-
path: "/v1/
|
|
40160
|
+
path: "/v1/ai-billing/customers/{customer_id}/policy",
|
|
39868
40161
|
args,
|
|
39869
40162
|
queryParamKeys: ["agent"]
|
|
39870
40163
|
});
|
|
39871
40164
|
});
|
|
39872
40165
|
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("--customer-id <value>", `customer_id parameter`).addHelpText("after", `
|
|
39873
40166
|
Examples:
|
|
39874
|
-
hyperline
|
|
39875
|
-
hyperline
|
|
40167
|
+
hyperline ai-billing apply-agent-default-plan --customer-id <customer_id>
|
|
40168
|
+
hyperline ai-billing apply-agent-default-plan --customer-id <customer_id> --output json`).action(async (opts) => {
|
|
39876
40169
|
const ctx = resource.parent?.opts()._ctx;
|
|
39877
40170
|
if (!ctx) {
|
|
39878
40171
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39883,15 +40176,15 @@ Examples:
|
|
|
39883
40176
|
args.customer_id = opts.customerId;
|
|
39884
40177
|
await ctx.execute({
|
|
39885
40178
|
method: "POST",
|
|
39886
|
-
path: "/v1/
|
|
40179
|
+
path: "/v1/ai-billing/customers/{customer_id}/apply-default-plan",
|
|
39887
40180
|
args,
|
|
39888
40181
|
queryParamKeys: []
|
|
39889
40182
|
});
|
|
39890
40183
|
});
|
|
39891
40184
|
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("--customer-id <value>", `customer_id parameter`).option("--agent <value>", `Agent scope identifier. Null on scoped results denotes the customer's shared pool.`).addHelpText("after", `
|
|
39892
40185
|
Examples:
|
|
39893
|
-
hyperline
|
|
39894
|
-
hyperline
|
|
40186
|
+
hyperline ai-billing get-agent-customer-balance --customer-id <customer_id>
|
|
40187
|
+
hyperline ai-billing get-agent-customer-balance --customer-id <customer_id> --agent <agent>`).action(async (opts) => {
|
|
39895
40188
|
const ctx = resource.parent?.opts()._ctx;
|
|
39896
40189
|
if (!ctx) {
|
|
39897
40190
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39904,16 +40197,16 @@ Examples:
|
|
|
39904
40197
|
args.agent = opts.agent;
|
|
39905
40198
|
await ctx.execute({
|
|
39906
40199
|
method: "GET",
|
|
39907
|
-
path: "/v1/
|
|
40200
|
+
path: "/v1/ai-billing/customers/{customer_id}/balance",
|
|
39908
40201
|
args,
|
|
39909
40202
|
queryParamKeys: ["agent"]
|
|
39910
40203
|
});
|
|
39911
40204
|
});
|
|
39912
40205
|
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("--customer-id <value>", `customer_id parameter`).option("--agent <value>", `Agent scope identifier. Null on scoped results denotes the customer's shared pool.`).addHelpText("after", `
|
|
39913
40206
|
Examples:
|
|
39914
|
-
hyperline
|
|
39915
|
-
hyperline
|
|
39916
|
-
hyperline
|
|
40207
|
+
hyperline ai-billing reset-agent-customer-windows --customer-id <customer_id>
|
|
40208
|
+
hyperline ai-billing reset-agent-customer-windows --customer-id <customer_id> --agent <agent>
|
|
40209
|
+
hyperline ai-billing reset-agent-customer-windows --customer-id <customer_id> --output json`).action(async (opts) => {
|
|
39917
40210
|
const ctx = resource.parent?.opts()._ctx;
|
|
39918
40211
|
if (!ctx) {
|
|
39919
40212
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39926,15 +40219,15 @@ Examples:
|
|
|
39926
40219
|
args.agent = opts.agent;
|
|
39927
40220
|
await ctx.execute({
|
|
39928
40221
|
method: "POST",
|
|
39929
|
-
path: "/v1/
|
|
40222
|
+
path: "/v1/ai-billing/customers/{customer_id}/windows/reset",
|
|
39930
40223
|
args,
|
|
39931
40224
|
queryParamKeys: ["agent"]
|
|
39932
40225
|
});
|
|
39933
40226
|
});
|
|
39934
40227
|
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("--customer-id <value>", `customer_id parameter`).option("--agent <value>", `Agent slug. An empty string selects the shared pool; omission includes all scopes.`).option("--overage <value>", `Filter by overage status. Omit to include 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", `
|
|
39935
40228
|
Examples:
|
|
39936
|
-
hyperline
|
|
39937
|
-
hyperline
|
|
40229
|
+
hyperline ai-billing list-agent-customer-consumption --customer-id <customer_id>
|
|
40230
|
+
hyperline ai-billing list-agent-customer-consumption --customer-id <customer_id> --agent <agent> --overage <overage>`).action(async (opts) => {
|
|
39938
40231
|
const ctx = resource.parent?.opts()._ctx;
|
|
39939
40232
|
if (!ctx) {
|
|
39940
40233
|
process.stderr.write("Error: Not authenticated\n");
|
|
@@ -39957,320 +40250,27 @@ Examples:
|
|
|
39957
40250
|
args.skip = Number(opts.skip);
|
|
39958
40251
|
await ctx.execute({
|
|
39959
40252
|
method: "GET",
|
|
39960
|
-
path: "/v1/
|
|
40253
|
+
path: "/v1/ai-billing/customers/{customer_id}/consumption",
|
|
39961
40254
|
args,
|
|
39962
40255
|
queryParamKeys: ["agent", "overage", "from", "to", "take", "skip"]
|
|
39963
40256
|
});
|
|
39964
40257
|
});
|
|
39965
40258
|
resource.command("get-agent-customer-overview").description(`Get one customer's full AI billing overview: default policy, per-agent scopes, balances and billed consumption totals in one read.`).requiredOption("--customer-id <value>", `customer_id parameter`).addHelpText("after", `
|
|
39966
40259
|
Examples:
|
|
39967
|
-
hyperline
|
|
39968
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
39969
|
-
if (!ctx) {
|
|
39970
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
39971
|
-
process.exit(1);
|
|
39972
|
-
}
|
|
39973
|
-
const args = {};
|
|
39974
|
-
if (opts.customerId !== void 0)
|
|
39975
|
-
args.customer_id = opts.customerId;
|
|
39976
|
-
await ctx.execute({
|
|
39977
|
-
method: "GET",
|
|
39978
|
-
path: "/v1/agents/customers/{customer_id}/overview",
|
|
39979
|
-
args,
|
|
39980
|
-
queryParamKeys: []
|
|
39981
|
-
});
|
|
39982
|
-
});
|
|
39983
|
-
}
|
|
39984
|
-
|
|
39985
|
-
// build/commands/generated/aggregators.js
|
|
39986
|
-
function registerAggregatorsCommands(parent) {
|
|
39987
|
-
const resource = parent.command("aggregators").description("Manage aggregators");
|
|
39988
|
-
resource.command("list").description(`List all aggregators with pagination. Aggregators define how billable events are counted or summed to compute usage.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
39989
|
-
Examples:
|
|
39990
|
-
hyperline aggregators list
|
|
39991
|
-
hyperline aggregators list --take <take>`).action(async (opts) => {
|
|
39992
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
39993
|
-
if (!ctx) {
|
|
39994
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
39995
|
-
process.exit(1);
|
|
39996
|
-
}
|
|
39997
|
-
const args = {};
|
|
39998
|
-
if (opts.take !== void 0)
|
|
39999
|
-
args.take = Number(opts.take);
|
|
40000
|
-
if (opts.skip !== void 0)
|
|
40001
|
-
args.skip = Number(opts.skip);
|
|
40002
|
-
await ctx.execute({
|
|
40003
|
-
method: "GET",
|
|
40004
|
-
path: "/v1/aggregators",
|
|
40005
|
-
args,
|
|
40006
|
-
queryParamKeys: ["take", "skip"]
|
|
40007
|
-
});
|
|
40008
|
-
});
|
|
40009
|
-
resource.command("create").description(`Create a new aggregator that counts or sums billable events. Aggregators can then be linked to products via aggregator_id.`).requiredOption("--entity <value>", `The billable event entity to aggregate.`).option("--type <value>", `The type of aggregator.`).option("--where <json>", `Filter conditions for the aggregation.`).option("--name <value>", `Name of the aggregator.`).option("--description <value>", `Description of the aggregator.`).option("--allow-negative-values", `Whether the aggregator can produce negative values.`).option("--aggregate-on-customers-enabled", `Whether the aggregator should aggregate on customers.`).option("--custom-event-name <value>", `Custom event name for the aggregator.`).option("--exposed-event-keys <json>", `Event keys exposed by the aggregator.`).option("--unit-name <value>", `Display name of the unit being measured (e.g. 'user', 'request'). Used as fallback for products attached to this aggregator.`).option("--default-interval-count <number>", `Default interval count for usage periods.`).option("--default-interval-period <value>", `Default interval period for usage periods.`).option("--thresholds <json>", `Thresholds for the aggregator.`).requiredOption("--operation <value>", `The aggregation operation to perform.`).option("--property <value>", `The property to sum.`).addHelpText("after", `
|
|
40010
|
-
Examples:
|
|
40011
|
-
hyperline aggregators create --entity <entity> --operation <operation>
|
|
40012
|
-
hyperline aggregators create --entity <entity> --operation <operation> --type <type> --where <where>
|
|
40013
|
-
hyperline aggregators create --entity <entity> --operation <operation> --output json`).action(async (opts) => {
|
|
40014
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
40015
|
-
if (!ctx) {
|
|
40016
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
40017
|
-
process.exit(1);
|
|
40018
|
-
}
|
|
40019
|
-
const args = {};
|
|
40020
|
-
if (opts.entity !== void 0)
|
|
40021
|
-
args.entity = opts.entity;
|
|
40022
|
-
if (opts.type !== void 0)
|
|
40023
|
-
args.type = opts.type;
|
|
40024
|
-
if (opts.name !== void 0)
|
|
40025
|
-
args.name = opts.name;
|
|
40026
|
-
if (opts.description !== void 0)
|
|
40027
|
-
args.description = opts.description;
|
|
40028
|
-
if (opts.customEventName !== void 0)
|
|
40029
|
-
args.custom_event_name = opts.customEventName;
|
|
40030
|
-
if (opts.unitName !== void 0)
|
|
40031
|
-
args.unit_name = opts.unitName;
|
|
40032
|
-
if (opts.defaultIntervalPeriod !== void 0)
|
|
40033
|
-
args.default_interval_period = opts.defaultIntervalPeriod;
|
|
40034
|
-
if (opts.operation !== void 0)
|
|
40035
|
-
args.operation = opts.operation;
|
|
40036
|
-
if (opts.property !== void 0)
|
|
40037
|
-
args.property = opts.property;
|
|
40038
|
-
if (opts.defaultIntervalCount !== void 0)
|
|
40039
|
-
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
40040
|
-
if (opts.allowNegativeValues !== void 0)
|
|
40041
|
-
args.allow_negative_values = true;
|
|
40042
|
-
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
40043
|
-
args.aggregate_on_customers_enabled = true;
|
|
40044
|
-
if (opts.where !== void 0)
|
|
40045
|
-
args.where = JSON.parse(opts.where);
|
|
40046
|
-
if (opts.exposedEventKeys !== void 0)
|
|
40047
|
-
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
40048
|
-
if (opts.thresholds !== void 0)
|
|
40049
|
-
args.thresholds = JSON.parse(opts.thresholds);
|
|
40050
|
-
await ctx.execute({
|
|
40051
|
-
method: "POST",
|
|
40052
|
-
path: "/v1/aggregators",
|
|
40053
|
-
args,
|
|
40054
|
-
queryParamKeys: []
|
|
40055
|
-
});
|
|
40056
|
-
});
|
|
40057
|
-
resource.command("get").description(`Retrieve a specific aggregator by ID.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
40058
|
-
Examples:
|
|
40059
|
-
hyperline aggregators get --id <id>`).action(async (opts) => {
|
|
40060
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
40061
|
-
if (!ctx) {
|
|
40062
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
40063
|
-
process.exit(1);
|
|
40064
|
-
}
|
|
40065
|
-
const args = {};
|
|
40066
|
-
if (opts.id !== void 0)
|
|
40067
|
-
args.id = opts.id;
|
|
40068
|
-
await ctx.execute({
|
|
40069
|
-
method: "GET",
|
|
40070
|
-
path: "/v1/aggregators/{id}",
|
|
40071
|
-
args,
|
|
40072
|
-
queryParamKeys: []
|
|
40073
|
-
});
|
|
40074
|
-
});
|
|
40075
|
-
resource.command("update").description(`Update an existing aggregator's configuration.`).requiredOption("--id <value>", `id parameter`).option("--entity <value>", `The billable event entity to aggregate.`).option("--type <value>", `The type of aggregator.`).option("--where <json>", `Filter conditions for the aggregation.`).option("--name <value>", `Name of the aggregator.`).option("--description <value>", `Description of the aggregator.`).option("--allow-negative-values", `Whether the aggregator can produce negative values.`).option("--aggregate-on-customers-enabled", `Whether the aggregator should aggregate on customers.`).option("--custom-event-name <value>", `Custom event name for the aggregator.`).option("--exposed-event-keys <json>", `Event keys exposed by the aggregator.`).option("--unit-name <value>", `Display name of the unit being measured (e.g. 'user', 'request'). Used as fallback for products attached to this aggregator.`).option("--default-interval-count <number>", `Default interval count for usage periods.`).option("--default-interval-period <value>", `Default interval period for usage periods.`).option("--thresholds <json>", `Thresholds for the aggregator. Replaces existing thresholds.`).option("--operation <value>", `The aggregation operation to perform.`).option("--property <value>", `The property to sum. Required when operation is 'sum'.`).addHelpText("after", `
|
|
40076
|
-
Examples:
|
|
40077
|
-
hyperline aggregators update --id <id>
|
|
40078
|
-
hyperline aggregators update --id <id> --entity <entity> --type <type>
|
|
40079
|
-
hyperline aggregators update --id <id> --output json`).action(async (opts) => {
|
|
40080
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
40081
|
-
if (!ctx) {
|
|
40082
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
40083
|
-
process.exit(1);
|
|
40084
|
-
}
|
|
40085
|
-
const args = {};
|
|
40086
|
-
if (opts.id !== void 0)
|
|
40087
|
-
args.id = opts.id;
|
|
40088
|
-
if (opts.entity !== void 0)
|
|
40089
|
-
args.entity = opts.entity;
|
|
40090
|
-
if (opts.type !== void 0)
|
|
40091
|
-
args.type = opts.type;
|
|
40092
|
-
if (opts.name !== void 0)
|
|
40093
|
-
args.name = opts.name;
|
|
40094
|
-
if (opts.description !== void 0)
|
|
40095
|
-
args.description = opts.description;
|
|
40096
|
-
if (opts.customEventName !== void 0)
|
|
40097
|
-
args.custom_event_name = opts.customEventName;
|
|
40098
|
-
if (opts.unitName !== void 0)
|
|
40099
|
-
args.unit_name = opts.unitName;
|
|
40100
|
-
if (opts.defaultIntervalPeriod !== void 0)
|
|
40101
|
-
args.default_interval_period = opts.defaultIntervalPeriod;
|
|
40102
|
-
if (opts.operation !== void 0)
|
|
40103
|
-
args.operation = opts.operation;
|
|
40104
|
-
if (opts.property !== void 0)
|
|
40105
|
-
args.property = opts.property;
|
|
40106
|
-
if (opts.defaultIntervalCount !== void 0)
|
|
40107
|
-
args.default_interval_count = Number(opts.defaultIntervalCount);
|
|
40108
|
-
if (opts.allowNegativeValues !== void 0)
|
|
40109
|
-
args.allow_negative_values = true;
|
|
40110
|
-
if (opts.aggregateOnCustomersEnabled !== void 0)
|
|
40111
|
-
args.aggregate_on_customers_enabled = true;
|
|
40112
|
-
if (opts.where !== void 0)
|
|
40113
|
-
args.where = JSON.parse(opts.where);
|
|
40114
|
-
if (opts.exposedEventKeys !== void 0)
|
|
40115
|
-
args.exposed_event_keys = JSON.parse(opts.exposedEventKeys);
|
|
40116
|
-
if (opts.thresholds !== void 0)
|
|
40117
|
-
args.thresholds = JSON.parse(opts.thresholds);
|
|
40118
|
-
await ctx.execute({
|
|
40119
|
-
method: "PUT",
|
|
40120
|
-
path: "/v1/aggregators/{id}",
|
|
40121
|
-
args,
|
|
40122
|
-
queryParamKeys: []
|
|
40123
|
-
});
|
|
40124
|
-
});
|
|
40125
|
-
resource.command("delete").description(`Delete an aggregator by ID. Will fail if the aggregator is linked to a product.`).requiredOption("--id <value>", `id parameter`).option("--yes", "Skip confirmation").addHelpText("after", `
|
|
40126
|
-
Examples:
|
|
40127
|
-
hyperline aggregators delete --id <id>
|
|
40128
|
-
hyperline aggregators delete --id <id> --output json`).action(async (opts) => {
|
|
40129
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
40130
|
-
if (!ctx) {
|
|
40131
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
40132
|
-
process.exit(1);
|
|
40133
|
-
}
|
|
40134
|
-
const args = {};
|
|
40135
|
-
if (opts.id !== void 0)
|
|
40136
|
-
args.id = opts.id;
|
|
40137
|
-
if (!opts.yes) {
|
|
40138
|
-
const confirmed = await confirmPrompt("Are you sure? Pass --yes to skip. [y/N] ");
|
|
40139
|
-
if (!confirmed) {
|
|
40140
|
-
process.stdout.write("Aborted.\n");
|
|
40141
|
-
return;
|
|
40142
|
-
}
|
|
40143
|
-
}
|
|
40144
|
-
await ctx.execute({
|
|
40145
|
-
method: "DELETE",
|
|
40146
|
-
path: "/v1/aggregators/{id}",
|
|
40147
|
-
args,
|
|
40148
|
-
queryParamKeys: []
|
|
40149
|
-
});
|
|
40150
|
-
});
|
|
40151
|
-
}
|
|
40152
|
-
|
|
40153
|
-
// build/commands/generated/aggregators-usage.js
|
|
40154
|
-
function registerAggregators_UsageCommands(parent) {
|
|
40155
|
-
const resource = parent.command("aggregators-usage").description("Manage aggregators > usage");
|
|
40156
|
-
resource.command("get-aggregator-usage").description(`Retrieve a usage row for an aggregator. Use the timeseries, group-by-customer or events endpoints to query metering data.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
40157
|
-
Examples:
|
|
40158
|
-
hyperline aggregators-usage get-aggregator-usage --id <id>`).action(async (opts) => {
|
|
40159
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
40160
|
-
if (!ctx) {
|
|
40161
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
40162
|
-
process.exit(1);
|
|
40163
|
-
}
|
|
40164
|
-
const args = {};
|
|
40165
|
-
if (opts.id !== void 0)
|
|
40166
|
-
args.id = opts.id;
|
|
40167
|
-
await ctx.execute({
|
|
40168
|
-
method: "GET",
|
|
40169
|
-
path: "/v1/aggregators/{id}/usage",
|
|
40170
|
-
args,
|
|
40171
|
-
queryParamKeys: []
|
|
40172
|
-
});
|
|
40173
|
-
});
|
|
40174
|
-
resource.command("get-aggregator-usage-timeseries").description(`Get client-wide usage for an aggregator bucketed by month/day/hour over a period.`).requiredOption("--id <value>", `id parameter`).option("--start-date <value>", `ISO-8601 date string.`).option("--end-date <value>", `ISO-8601 date string.`).option("--aggregator-filter-id <value>", `Optional aggregator filter ID. When set, restricts the result to events matching that filter's config. Must belong to the aggregator in the path.`).option("--group-by <value>", `Bucket size for the timeseries.`).addHelpText("after", `
|
|
40175
|
-
Examples:
|
|
40176
|
-
hyperline aggregators-usage get-aggregator-usage-timeseries --id <id>
|
|
40177
|
-
hyperline aggregators-usage get-aggregator-usage-timeseries --id <id> --start-date <start_date> --end-date <end_date>`).action(async (opts) => {
|
|
40178
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
40179
|
-
if (!ctx) {
|
|
40180
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
40181
|
-
process.exit(1);
|
|
40182
|
-
}
|
|
40183
|
-
const args = {};
|
|
40184
|
-
if (opts.id !== void 0)
|
|
40185
|
-
args.id = opts.id;
|
|
40186
|
-
if (opts.startDate !== void 0)
|
|
40187
|
-
args.start_date = opts.startDate;
|
|
40188
|
-
if (opts.endDate !== void 0)
|
|
40189
|
-
args.end_date = opts.endDate;
|
|
40190
|
-
if (opts.aggregatorFilterId !== void 0)
|
|
40191
|
-
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
40192
|
-
if (opts.groupBy !== void 0)
|
|
40193
|
-
args.group_by = opts.groupBy;
|
|
40194
|
-
await ctx.execute({
|
|
40195
|
-
method: "GET",
|
|
40196
|
-
path: "/v1/aggregators/{id}/usage/timeseries",
|
|
40197
|
-
args,
|
|
40198
|
-
queryParamKeys: [
|
|
40199
|
-
"start_date",
|
|
40200
|
-
"end_date",
|
|
40201
|
-
"aggregator_filter_id",
|
|
40202
|
-
"group_by"
|
|
40203
|
-
]
|
|
40204
|
-
});
|
|
40205
|
-
});
|
|
40206
|
-
resource.command("get-aggregator-usage-group-by-customer").description(`Per-customer total usage for an aggregator over a period, ranked by total. Paginated with take/skip.`).requiredOption("--id <value>", `id parameter`).option("--start-date <value>", `ISO-8601 date string.`).option("--end-date <value>", `ISO-8601 date string.`).option("--aggregator-filter-id <value>", `Optional aggregator filter ID. When set, restricts the result to events matching that filter's config. Must belong to the aggregator in the path.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
40207
|
-
Examples:
|
|
40208
|
-
hyperline aggregators-usage get-aggregator-usage-group-by-customer --id <id>
|
|
40209
|
-
hyperline aggregators-usage get-aggregator-usage-group-by-customer --id <id> --start-date <start_date> --end-date <end_date>`).action(async (opts) => {
|
|
40210
|
-
const ctx = resource.parent?.opts()._ctx;
|
|
40211
|
-
if (!ctx) {
|
|
40212
|
-
process.stderr.write("Error: Not authenticated\n");
|
|
40213
|
-
process.exit(1);
|
|
40214
|
-
}
|
|
40215
|
-
const args = {};
|
|
40216
|
-
if (opts.id !== void 0)
|
|
40217
|
-
args.id = opts.id;
|
|
40218
|
-
if (opts.startDate !== void 0)
|
|
40219
|
-
args.start_date = opts.startDate;
|
|
40220
|
-
if (opts.endDate !== void 0)
|
|
40221
|
-
args.end_date = opts.endDate;
|
|
40222
|
-
if (opts.aggregatorFilterId !== void 0)
|
|
40223
|
-
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
40224
|
-
if (opts.take !== void 0)
|
|
40225
|
-
args.take = Number(opts.take);
|
|
40226
|
-
if (opts.skip !== void 0)
|
|
40227
|
-
args.skip = Number(opts.skip);
|
|
40228
|
-
await ctx.execute({
|
|
40229
|
-
method: "GET",
|
|
40230
|
-
path: "/v1/aggregators/{id}/usage/group-by-customer",
|
|
40231
|
-
args,
|
|
40232
|
-
queryParamKeys: [
|
|
40233
|
-
"start_date",
|
|
40234
|
-
"end_date",
|
|
40235
|
-
"aggregator_filter_id",
|
|
40236
|
-
"take",
|
|
40237
|
-
"skip"
|
|
40238
|
-
]
|
|
40239
|
-
});
|
|
40240
|
-
});
|
|
40241
|
-
resource.command("get-aggregator-usage-events").description(`List raw billable events for an aggregator across every customer of the client. Paginated with take/skip.`).requiredOption("--id <value>", `id parameter`).option("--start-date <value>", `ISO-8601 date string.`).option("--end-date <value>", `ISO-8601 date string.`).option("--aggregator-filter-id <value>", `Optional aggregator filter ID. When set, restricts the result to events matching that filter's config. Must belong to the aggregator in the path.`).option("--take <number>", `take`).option("--skip <number>", `skip`).addHelpText("after", `
|
|
40242
|
-
Examples:
|
|
40243
|
-
hyperline aggregators-usage get-aggregator-usage-events --id <id>
|
|
40244
|
-
hyperline aggregators-usage get-aggregator-usage-events --id <id> --start-date <start_date> --end-date <end_date>`).action(async (opts) => {
|
|
40260
|
+
hyperline ai-billing get-agent-customer-overview --customer-id <customer_id>`).action(async (opts) => {
|
|
40245
40261
|
const ctx = resource.parent?.opts()._ctx;
|
|
40246
40262
|
if (!ctx) {
|
|
40247
40263
|
process.stderr.write("Error: Not authenticated\n");
|
|
40248
40264
|
process.exit(1);
|
|
40249
40265
|
}
|
|
40250
40266
|
const args = {};
|
|
40251
|
-
if (opts.
|
|
40252
|
-
args.
|
|
40253
|
-
if (opts.startDate !== void 0)
|
|
40254
|
-
args.start_date = opts.startDate;
|
|
40255
|
-
if (opts.endDate !== void 0)
|
|
40256
|
-
args.end_date = opts.endDate;
|
|
40257
|
-
if (opts.aggregatorFilterId !== void 0)
|
|
40258
|
-
args.aggregator_filter_id = opts.aggregatorFilterId;
|
|
40259
|
-
if (opts.take !== void 0)
|
|
40260
|
-
args.take = Number(opts.take);
|
|
40261
|
-
if (opts.skip !== void 0)
|
|
40262
|
-
args.skip = Number(opts.skip);
|
|
40267
|
+
if (opts.customerId !== void 0)
|
|
40268
|
+
args.customer_id = opts.customerId;
|
|
40263
40269
|
await ctx.execute({
|
|
40264
40270
|
method: "GET",
|
|
40265
|
-
path: "/v1/
|
|
40271
|
+
path: "/v1/ai-billing/customers/{customer_id}/overview",
|
|
40266
40272
|
args,
|
|
40267
|
-
queryParamKeys: [
|
|
40268
|
-
"start_date",
|
|
40269
|
-
"end_date",
|
|
40270
|
-
"aggregator_filter_id",
|
|
40271
|
-
"take",
|
|
40272
|
-
"skip"
|
|
40273
|
-
]
|
|
40273
|
+
queryParamKeys: []
|
|
40274
40274
|
});
|
|
40275
40275
|
});
|
|
40276
40276
|
}
|
|
@@ -42027,6 +42027,54 @@ Examples:
|
|
|
42027
42027
|
queryParamKeys: []
|
|
42028
42028
|
});
|
|
42029
42029
|
});
|
|
42030
|
+
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", `
|
|
42031
|
+
Examples:
|
|
42032
|
+
hyperline customers-credits get-customer-credit-portal-settings --id <id> --product-id <productId>`).action(async (opts) => {
|
|
42033
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42034
|
+
if (!ctx) {
|
|
42035
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42036
|
+
process.exit(1);
|
|
42037
|
+
}
|
|
42038
|
+
const args = {};
|
|
42039
|
+
if (opts.id !== void 0)
|
|
42040
|
+
args.id = opts.id;
|
|
42041
|
+
if (opts.productId !== void 0)
|
|
42042
|
+
args.productId = opts.productId;
|
|
42043
|
+
await ctx.execute({
|
|
42044
|
+
method: "GET",
|
|
42045
|
+
path: "/v1/customers/{id}/credits/{productId}/portal-settings",
|
|
42046
|
+
args,
|
|
42047
|
+
queryParamKeys: []
|
|
42048
|
+
});
|
|
42049
|
+
});
|
|
42050
|
+
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.`).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\`.`).addHelpText("after", `
|
|
42051
|
+
Examples:
|
|
42052
|
+
hyperline customers-credits update-customer-credit-portal-settings --id <id> --product-id <productId> --enabled
|
|
42053
|
+
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>
|
|
42054
|
+
hyperline customers-credits update-customer-credit-portal-settings --id <id> --product-id <productId> --enabled --output json`).action(async (opts) => {
|
|
42055
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
42056
|
+
if (!ctx) {
|
|
42057
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
42058
|
+
process.exit(1);
|
|
42059
|
+
}
|
|
42060
|
+
const args = {};
|
|
42061
|
+
if (opts.id !== void 0)
|
|
42062
|
+
args.id = opts.id;
|
|
42063
|
+
if (opts.productId !== void 0)
|
|
42064
|
+
args.productId = opts.productId;
|
|
42065
|
+
if (opts.priceConfigurationId !== void 0)
|
|
42066
|
+
args.price_configuration_id = opts.priceConfigurationId;
|
|
42067
|
+
if (opts.enabled !== void 0)
|
|
42068
|
+
args.enabled = true;
|
|
42069
|
+
if (opts.customPriceConfiguration !== void 0)
|
|
42070
|
+
args.custom_price_configuration = JSON.parse(opts.customPriceConfiguration);
|
|
42071
|
+
await ctx.execute({
|
|
42072
|
+
method: "PUT",
|
|
42073
|
+
path: "/v1/customers/{id}/credits/{productId}/portal-settings",
|
|
42074
|
+
args,
|
|
42075
|
+
queryParamKeys: []
|
|
42076
|
+
});
|
|
42077
|
+
});
|
|
42030
42078
|
}
|
|
42031
42079
|
|
|
42032
42080
|
// build/commands/generated/customers-payment-methods.js
|
|
@@ -43950,6 +43998,44 @@ Examples:
|
|
|
43950
43998
|
queryParamKeys: []
|
|
43951
43999
|
});
|
|
43952
44000
|
});
|
|
44001
|
+
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", `
|
|
44002
|
+
Examples:
|
|
44003
|
+
hyperline price-configurations create --currency <currency> --billing-interval <billing_interval> --type <type> --prices <prices> --product-id <product_id>
|
|
44004
|
+
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>
|
|
44005
|
+
hyperline price-configurations create --currency <currency> --billing-interval <billing_interval> --type <type> --prices <prices> --product-id <product_id> --output json`).action(async (opts) => {
|
|
44006
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
44007
|
+
if (!ctx) {
|
|
44008
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
44009
|
+
process.exit(1);
|
|
44010
|
+
}
|
|
44011
|
+
const args = {};
|
|
44012
|
+
if (opts.currency !== void 0)
|
|
44013
|
+
args.currency = opts.currency;
|
|
44014
|
+
if (opts.priceBookId !== void 0)
|
|
44015
|
+
args.price_book_id = opts.priceBookId;
|
|
44016
|
+
if (opts.type !== void 0)
|
|
44017
|
+
args.type = opts.type;
|
|
44018
|
+
if (opts.productId !== void 0)
|
|
44019
|
+
args.product_id = opts.productId;
|
|
44020
|
+
if (opts.allowOnPortal !== void 0)
|
|
44021
|
+
args.allow_on_portal = true;
|
|
44022
|
+
if (opts.countries !== void 0)
|
|
44023
|
+
args.countries = JSON.parse(opts.countries);
|
|
44024
|
+
if (opts.billingInterval !== void 0)
|
|
44025
|
+
args.billing_interval = JSON.parse(opts.billingInterval);
|
|
44026
|
+
if (opts.commitmentInterval !== void 0)
|
|
44027
|
+
args.commitment_interval = JSON.parse(opts.commitmentInterval);
|
|
44028
|
+
if (opts.prices !== void 0)
|
|
44029
|
+
args.prices = JSON.parse(opts.prices);
|
|
44030
|
+
if (opts.meteringFilter !== void 0)
|
|
44031
|
+
args.metering_filter = JSON.parse(opts.meteringFilter);
|
|
44032
|
+
await ctx.execute({
|
|
44033
|
+
method: "POST",
|
|
44034
|
+
path: "/v1/price-configurations",
|
|
44035
|
+
args,
|
|
44036
|
+
queryParamKeys: []
|
|
44037
|
+
});
|
|
44038
|
+
});
|
|
43953
44039
|
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
44040
|
Examples:
|
|
43955
44041
|
hyperline price-configurations update-prices --id <id>
|
|
@@ -44148,7 +44234,7 @@ How the periodic credit allowance is granted for partial billing periods.
|
|
|
44148
44234
|
|
|
44149
44235
|
- \`prorated\` (default): the granted credits are prorated to the elapsed period.
|
|
44150
44236
|
- \`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("--
|
|
44237
|
+
`).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
44238
|
Examples:
|
|
44153
44239
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations>
|
|
44154
44240
|
hyperline products create --name <name> --type <type> --price-configurations <price_configurations> --description <description> --description-display-interval-dates
|
|
@@ -44175,8 +44261,6 @@ Examples:
|
|
|
44175
44261
|
args.credits_grant_mode = opts.creditsGrantMode;
|
|
44176
44262
|
if (opts.creditsBalanceAutoCreationEnabled !== void 0)
|
|
44177
44263
|
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
44264
|
if (opts.displayMode !== void 0)
|
|
44181
44265
|
args.display_mode = opts.displayMode;
|
|
44182
44266
|
if (opts.lowCreditsThreshold !== void 0)
|
|
@@ -44707,6 +44791,25 @@ Examples:
|
|
|
44707
44791
|
queryParamKeys: []
|
|
44708
44792
|
});
|
|
44709
44793
|
});
|
|
44794
|
+
resource.command("duplicate").description(`Create a draft duplicate of an existing quote, including its linked invoice or subscription configuration.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
|
|
44795
|
+
Examples:
|
|
44796
|
+
hyperline quotes duplicate --id <id>
|
|
44797
|
+
hyperline quotes duplicate --id <id> --output json`).action(async (opts) => {
|
|
44798
|
+
const ctx = resource.parent?.opts()._ctx;
|
|
44799
|
+
if (!ctx) {
|
|
44800
|
+
process.stderr.write("Error: Not authenticated\n");
|
|
44801
|
+
process.exit(1);
|
|
44802
|
+
}
|
|
44803
|
+
const args = {};
|
|
44804
|
+
if (opts.id !== void 0)
|
|
44805
|
+
args.id = opts.id;
|
|
44806
|
+
await ctx.execute({
|
|
44807
|
+
method: "POST",
|
|
44808
|
+
path: "/v1/quotes/{id}/duplicate",
|
|
44809
|
+
args,
|
|
44810
|
+
queryParamKeys: []
|
|
44811
|
+
});
|
|
44812
|
+
});
|
|
44710
44813
|
resource.command("download").description(`Download the PDF of a quote. Supports locale parameter for localization.`).requiredOption("--id <value>", `id parameter`).option("--locale <value>", `Locale as a supported language code and an uppercase ISO 3166-1 alpha-2 country code, separated by a hyphen.`).addHelpText("after", `
|
|
44711
44814
|
Examples:
|
|
44712
44815
|
hyperline quotes download --id <id>
|
|
@@ -45100,9 +45203,10 @@ Examples:
|
|
|
45100
45203
|
queryParamKeys: []
|
|
45101
45204
|
});
|
|
45102
45205
|
});
|
|
45103
|
-
resource.command("reinstate").description(`Reinstate a subscription
|
|
45206
|
+
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 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. Defaults to now. 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.`).addHelpText("after", `
|
|
45104
45207
|
Examples:
|
|
45105
45208
|
hyperline subscriptions reinstate --id <id>
|
|
45209
|
+
hyperline subscriptions reinstate --id <id> --reactivate-at <reactivate_at> --invoicing-mode <invoicing_mode>
|
|
45106
45210
|
hyperline subscriptions reinstate --id <id> --output json`).action(async (opts) => {
|
|
45107
45211
|
const ctx = resource.parent?.opts()._ctx;
|
|
45108
45212
|
if (!ctx) {
|
|
@@ -45112,6 +45216,12 @@ Examples:
|
|
|
45112
45216
|
const args = {};
|
|
45113
45217
|
if (opts.id !== void 0)
|
|
45114
45218
|
args.id = opts.id;
|
|
45219
|
+
if (opts.reactivateAt !== void 0)
|
|
45220
|
+
args.reactivate_at = opts.reactivateAt;
|
|
45221
|
+
if (opts.invoicingMode !== void 0)
|
|
45222
|
+
args.invoicing_mode = opts.invoicingMode;
|
|
45223
|
+
if (opts.chargeLineItems !== void 0)
|
|
45224
|
+
args.charge_line_items = JSON.parse(opts.chargeLineItems);
|
|
45115
45225
|
await ctx.execute({
|
|
45116
45226
|
method: "POST",
|
|
45117
45227
|
path: "/v1/subscriptions/{id}/reinstate",
|
|
@@ -45119,7 +45229,7 @@ Examples:
|
|
|
45119
45229
|
queryParamKeys: []
|
|
45120
45230
|
});
|
|
45121
45231
|
});
|
|
45122
|
-
resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption. If the subscription is already paused, updates (or clears) its reactivation date.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated.
|
|
45232
|
+
resource.command("pause").description(`Pause a subscription. Billing stops while paused. Optionally specify a reactivate_at date for automatic resumption. If the subscription is already paused, updates (or clears) its reactivation date.`).requiredOption("--id <value>", `id parameter`).option("--reactivate-at <value>", `Date when the subscription will be automatically reactivated. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. A date on or before the pause date resumes it at the next scheduled run.`).addHelpText("after", `
|
|
45123
45233
|
Examples:
|
|
45124
45234
|
hyperline subscriptions pause --id <id>
|
|
45125
45235
|
hyperline subscriptions pause --id <id> --reactivate-at <reactivate_at>
|
|
@@ -45160,9 +45270,10 @@ Examples:
|
|
|
45160
45270
|
queryParamKeys: []
|
|
45161
45271
|
});
|
|
45162
45272
|
});
|
|
45163
|
-
resource.command("reactivate").description(`Resume a paused subscription,
|
|
45273
|
+
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", `
|
|
45164
45274
|
Examples:
|
|
45165
45275
|
hyperline subscriptions reactivate --id <id>
|
|
45276
|
+
hyperline subscriptions reactivate --id <id> --reactivate-at <reactivate_at> --invoicing-mode <invoicing_mode>
|
|
45166
45277
|
hyperline subscriptions reactivate --id <id> --output json`).action(async (opts) => {
|
|
45167
45278
|
const ctx = resource.parent?.opts()._ctx;
|
|
45168
45279
|
if (!ctx) {
|
|
@@ -45172,6 +45283,12 @@ Examples:
|
|
|
45172
45283
|
const args = {};
|
|
45173
45284
|
if (opts.id !== void 0)
|
|
45174
45285
|
args.id = opts.id;
|
|
45286
|
+
if (opts.reactivateAt !== void 0)
|
|
45287
|
+
args.reactivate_at = opts.reactivateAt;
|
|
45288
|
+
if (opts.invoicingMode !== void 0)
|
|
45289
|
+
args.invoicing_mode = opts.invoicingMode;
|
|
45290
|
+
if (opts.chargeLineItems !== void 0)
|
|
45291
|
+
args.charge_line_items = JSON.parse(opts.chargeLineItems);
|
|
45175
45292
|
await ctx.execute({
|
|
45176
45293
|
method: "POST",
|
|
45177
45294
|
path: "/v1/subscriptions/{id}/reactivate",
|
|
@@ -46755,10 +46872,10 @@ function registerAllCommands(program2) {
|
|
|
46755
46872
|
registerAccounting_ReportsCommands(program2);
|
|
46756
46873
|
registerAccounting_Revenue_RecognitionCommands(program2);
|
|
46757
46874
|
registerAccounting_RulesCommands(program2);
|
|
46758
|
-
registerAgentsCommands(program2);
|
|
46759
46875
|
registerCustom_PropertiesCommands(program2);
|
|
46760
46876
|
registerAggregatorsCommands(program2);
|
|
46761
46877
|
registerAggregators_UsageCommands(program2);
|
|
46878
|
+
registerAi_BillingCommands(program2);
|
|
46762
46879
|
registerAnalyticsCommands(program2);
|
|
46763
46880
|
registerBank_AccountsCommands(program2);
|
|
46764
46881
|
registerCompaniesCommands(program2);
|
|
@@ -62792,17 +62909,17 @@ var languages = [
|
|
|
62792
62909
|
|
|
62793
62910
|
// ../hyperline-i18n/build/locales/de.js
|
|
62794
62911
|
var de = {
|
|
62795
|
-
"accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
|
|
62796
|
-
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62797
|
-
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
62798
62912
|
"accounting.creditNotePosted.entryDescription": "Gutschrift {{creditNoteId}} f\xFCr Rechnung {{invoiceId}}",
|
|
62799
|
-
"accounting.
|
|
62913
|
+
"accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
|
|
62914
|
+
"accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
|
|
62800
62915
|
"accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62801
62916
|
"accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62802
62917
|
"accounting.revrec.discountCreditLineDescription": "Erl\xF6sminderung (Rabatt) erfassen \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62803
|
-
"accounting.revrec.closedPeriodFallbackNote": " (in die n\xE4chste offene Periode gebucht \u2013 Zielperiode geschlossen; urspr\xFCngliches Datum {{originalDate}})",
|
|
62804
62918
|
"accounting.revrec.discountDebitLineDescription": "Abgegrenzten Rabatt reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
|
|
62805
62919
|
"accounting.revrec.entryDescription": "Umsatzrealisierung f\xFCr Zeitplan {{scheduleId}}, Zeitraum {{periodStart}} - {{periodEnd}}",
|
|
62920
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Gutschrift {{creditNoteId}}",
|
|
62921
|
+
"accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
|
|
62922
|
+
"accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
|
|
62806
62923
|
"creditNotes.refundChargeName": "R\xFCckerstattung f\xFCr die Rechnung",
|
|
62807
62924
|
"credits.bundleOf": "{{productName}} - Paket mit {{creditCount}} Guthaben",
|
|
62808
62925
|
"credits.unitsOf": "{{productName}} - {{creditCount}} Guthaben",
|
|
@@ -62816,9 +62933,9 @@ var de = {
|
|
|
62816
62933
|
"invoices.prorata.paymentForItemFullPeriod": "Zahlung f\xFCr",
|
|
62817
62934
|
"invoices.prorata.refundForItem": "Anteilig erstatteter Betrag f\xFCr",
|
|
62818
62935
|
"invoices.prorata.refundForItemFullPeriod": "Erstattung f\xFCr",
|
|
62819
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben",
|
|
62820
62936
|
"subscriptions.closingChargeName": "Abschlussgeb\xFChr f\xFCr das Abonnement",
|
|
62821
62937
|
"subscriptions.correction": "Vorperiodische Anpassung",
|
|
62938
|
+
"subscriptions.reinstatementRechargeName": "Wiederherstellungsgeb\xFChr f\xFCr den stornierten Zeitraum",
|
|
62822
62939
|
"subscriptions.updates.addCoupon": "Gutschein hinzuf\xFCgen {{couponName}}",
|
|
62823
62940
|
"subscriptions.updates.addProduct": "{{productName}} hinzuf\xFCgen",
|
|
62824
62941
|
"subscriptions.updates.removeCoupon": "Gutschein entfernen {{couponName}}",
|
|
@@ -62833,7 +62950,8 @@ var de = {
|
|
|
62833
62950
|
"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",
|
|
62834
62951
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Diese Position wurde f\xFCr den anteiligen Zeitraum in Rechnung gestellt",
|
|
62835
62952
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Betrag von {{amount}} f\xFCr den anteiligen Zeitraum nicht in Rechnung gestellt",
|
|
62836
|
-
"subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren"
|
|
62953
|
+
"subscriptions.updates.updatePrices": "Preise f\xFCr {{productName}} aktualisieren",
|
|
62954
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 abgelaufenes Guthaben"
|
|
62837
62955
|
};
|
|
62838
62956
|
|
|
62839
62957
|
// ../hyperline-i18n/build/locales/en.js
|
|
@@ -62850,6 +62968,7 @@ var en = {
|
|
|
62850
62968
|
"invoices.prorata.refundForItemFullPeriod": "Refund for",
|
|
62851
62969
|
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 expired balance",
|
|
62852
62970
|
"subscriptions.closingChargeName": "Closing fee for subscription",
|
|
62971
|
+
"subscriptions.reinstatementRechargeName": "Reinstatement recharge of canceled period",
|
|
62853
62972
|
"subscriptions.correction": "Adjustment previous period",
|
|
62854
62973
|
"subscriptions.updates.addCoupon": "Add coupon {{couponName}}",
|
|
62855
62974
|
"subscriptions.updates.addProduct": "Add {{productName}}",
|
|
@@ -62884,17 +63003,17 @@ var en = {
|
|
|
62884
63003
|
|
|
62885
63004
|
// ../hyperline-i18n/build/locales/es.js
|
|
62886
63005
|
var es = {
|
|
62887
|
-
"accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
|
|
62888
|
-
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62889
|
-
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
62890
63006
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para la factura {{invoiceId}}",
|
|
62891
|
-
"accounting.
|
|
63007
|
+
"accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
|
|
63008
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
|
|
62892
63009
|
"accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62893
63010
|
"accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62894
63011
|
"accounting.revrec.discountCreditLineDescription": "Reconocer contra-ingresos (descuento) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62895
|
-
"accounting.revrec.closedPeriodFallbackNote": " (registrado en el pr\xF3ximo per\xEDodo abierto \u2014 per\xEDodo contable de destino cerrado; fecha original {{originalDate}})",
|
|
62896
63012
|
"accounting.revrec.discountDebitLineDescription": "Disminuci\xF3n de descuento diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
62897
63013
|
"accounting.revrec.entryDescription": "Reconocimiento de ingresos para el cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63014
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63015
|
+
"accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
|
|
63016
|
+
"accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
|
|
62898
63017
|
"creditNotes.refundChargeName": "Reembolso por factura",
|
|
62899
63018
|
"credits.bundleOf": "{{productName}} - Paquete de {{creditCount}} cr\xE9ditos",
|
|
62900
63019
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
|
|
@@ -62908,9 +63027,9 @@ var es = {
|
|
|
62908
63027
|
"invoices.prorata.paymentForItemFullPeriod": "Pago por",
|
|
62909
63028
|
"invoices.prorata.refundForItem": "Reembolso prorrateado por",
|
|
62910
63029
|
"invoices.prorata.refundForItemFullPeriod": "Reembolso por",
|
|
62911
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado",
|
|
62912
63030
|
"subscriptions.closingChargeName": "Cargo por cierre de suscripci\xF3n",
|
|
62913
63031
|
"subscriptions.correction": "Ajuste del periodo anterior",
|
|
63032
|
+
"subscriptions.reinstatementRechargeName": "Recarga de reinstalaci\xF3n del per\xEDodo cancelado",
|
|
62914
63033
|
"subscriptions.updates.addCoupon": "A\xF1adir cup\xF3n {{couponName}}",
|
|
62915
63034
|
"subscriptions.updates.addProduct": "A\xF1adir {{productName}}",
|
|
62916
63035
|
"subscriptions.updates.removeCoupon": "Eliminar cup\xF3n {{couponName}}",
|
|
@@ -62925,22 +63044,23 @@ var es = {
|
|
|
62925
63044
|
"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",
|
|
62926
63045
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta l\xEDnea ha sido facturada para el per\xEDodo prorrateado",
|
|
62927
63046
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importe de {{amount}} no facturado para el per\xEDodo prorrateado",
|
|
62928
|
-
"subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}"
|
|
63047
|
+
"subscriptions.updates.updatePrices": "Actualizar precios para {{productName}}",
|
|
63048
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo caducado"
|
|
62929
63049
|
};
|
|
62930
63050
|
|
|
62931
63051
|
// ../hyperline-i18n/build/locales/fr.js
|
|
62932
63052
|
var fr = {
|
|
63053
|
+
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
63054
|
+
"accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
|
|
63055
|
+
"accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
|
|
62933
63056
|
"accounting.revrec.creditLineDescription": "Reconnaissance du chiffre d'affaires \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62934
63057
|
"accounting.revrec.debitLineDescription": "Diminution des produits constat\xE9s d'avance \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62935
63058
|
"accounting.revrec.discountCreditLineDescription": "Reconnaissance du contre-revenu (remise) \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62936
|
-
"accounting.revrec.closedPeriodFallbackNote": " (comptabilis\xE9 sur la prochaine p\xE9riode ouverte \u2014 p\xE9riode comptable cible cl\xF4tur\xE9e ; date d'origine {{originalDate}})",
|
|
62937
63059
|
"accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
|
|
62938
|
-
"accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
|
|
62939
|
-
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62940
|
-
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
62941
|
-
"accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
|
|
62942
|
-
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
62943
63060
|
"accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
|
|
63061
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Avoir {{creditNoteId}}",
|
|
63062
|
+
"accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
|
|
63063
|
+
"accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
|
|
62944
63064
|
"creditNotes.refundChargeName": "Remboursement pour facture",
|
|
62945
63065
|
"credits.bundleOf": "{{productName}} - Pack de {{creditCount}} cr\xE9dits",
|
|
62946
63066
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9dits",
|
|
@@ -62954,9 +63074,9 @@ var fr = {
|
|
|
62954
63074
|
"invoices.prorata.paymentForItemFullPeriod": "Paiement pour",
|
|
62955
63075
|
"invoices.prorata.refundForItem": "Remboursement au prorata pour",
|
|
62956
63076
|
"invoices.prorata.refundForItemFullPeriod": "Remboursement pour",
|
|
62957
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9",
|
|
62958
63077
|
"subscriptions.closingChargeName": "Frais de cl\xF4ture pour abonnement",
|
|
62959
63078
|
"subscriptions.correction": "Ajustement p\xE9riode pr\xE9c\xE9dente",
|
|
63079
|
+
"subscriptions.reinstatementRechargeName": "Recharge de r\xE9tablissement de la p\xE9riode annul\xE9e",
|
|
62960
63080
|
"subscriptions.updates.addCoupon": "Ajout du coupon {{couponName}}",
|
|
62961
63081
|
"subscriptions.updates.addProduct": "Ajout {{productName}}",
|
|
62962
63082
|
"subscriptions.updates.removeCoupon": "Retrait du coupon {{couponName}}",
|
|
@@ -62971,22 +63091,23 @@ var fr = {
|
|
|
62971
63091
|
"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",
|
|
62972
63092
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Cette ligne a \xE9t\xE9 factur\xE9e pour la p\xE9riode proratis\xE9e",
|
|
62973
63093
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Montant de {{amount}} non factur\xE9 pour la p\xE9riode proratis\xE9e",
|
|
62974
|
-
"subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}"
|
|
63094
|
+
"subscriptions.updates.updatePrices": "Mise \xE0 jour des prix pour {{productName}}",
|
|
63095
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 solde expir\xE9"
|
|
62975
63096
|
};
|
|
62976
63097
|
|
|
62977
63098
|
// ../hyperline-i18n/build/locales/it.js
|
|
62978
63099
|
var it = {
|
|
62979
|
-
"accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
|
|
62980
|
-
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
62981
|
-
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
62982
63100
|
"accounting.creditNotePosted.entryDescription": "Nota di credito {{creditNoteId}} per la fattura {{invoiceId}}",
|
|
62983
|
-
"accounting.
|
|
63101
|
+
"accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
|
|
63102
|
+
"accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
|
|
62984
63103
|
"accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62985
63104
|
"accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62986
63105
|
"accounting.revrec.discountCreditLineDescription": "Riconoscere il contra-ricavo (sconto) \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62987
|
-
"accounting.revrec.closedPeriodFallbackNote": " (registrato nel prossimo periodo aperto \u2014 periodo contabile di destinazione chiuso; data originale {{originalDate}})",
|
|
62988
63106
|
"accounting.revrec.discountDebitLineDescription": "Diminuzione dello sconto differito \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
|
|
62989
63107
|
"accounting.revrec.entryDescription": "Riconoscimento dei ricavi per il programma {{scheduleId}}, periodo {{periodStart}} - {{periodEnd}}",
|
|
63108
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota di credito {{creditNoteId}}",
|
|
63109
|
+
"accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
|
|
63110
|
+
"accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
|
|
62990
63111
|
"creditNotes.refundChargeName": "Rimborso per fattura",
|
|
62991
63112
|
"credits.bundleOf": "{{productName}} - Pacchetto di {{creditCount}} crediti",
|
|
62992
63113
|
"credits.unitsOf": "{{productName}} - {{creditCount}} crediti",
|
|
@@ -63000,9 +63121,9 @@ var it = {
|
|
|
63000
63121
|
"invoices.prorata.paymentForItemFullPeriod": "Pagamento per",
|
|
63001
63122
|
"invoices.prorata.refundForItem": "Rimborso proporzionale per",
|
|
63002
63123
|
"invoices.prorata.refundForItemFullPeriod": "Rimborso per",
|
|
63003
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto",
|
|
63004
63124
|
"subscriptions.closingChargeName": "Costo di chiusura per abbonamento",
|
|
63005
63125
|
"subscriptions.correction": "Correzione periodo precedente",
|
|
63126
|
+
"subscriptions.reinstatementRechargeName": "Ricarica di reintegrazione del periodo annullato",
|
|
63006
63127
|
"subscriptions.updates.addCoupon": "Aggiungi coupon {{couponName}}",
|
|
63007
63128
|
"subscriptions.updates.addProduct": "Aggiungi {{productName}}",
|
|
63008
63129
|
"subscriptions.updates.removeCoupon": "Rimuovi coupon {{couponName}}",
|
|
@@ -63017,14 +63138,29 @@ var it = {
|
|
|
63017
63138
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Importo di {{amount}} (con un minimo impegnato di {{committedCount}}) non fatturato per il periodo proporzionato",
|
|
63018
63139
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Questa voce \xE8 stata fatturata per il periodo proporzionato",
|
|
63019
63140
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Importo di {{amount}} non fatturato per il periodo proporzionato",
|
|
63020
|
-
"subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}"
|
|
63141
|
+
"subscriptions.updates.updatePrices": "Aggiorna prezzi per {{productName}}",
|
|
63142
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo scaduto"
|
|
63021
63143
|
};
|
|
63022
63144
|
|
|
63023
63145
|
// ../hyperline-i18n/build/locales/lt.js
|
|
63024
63146
|
var lt = {
|
|
63147
|
+
"accounting.creditNotePosted.entryDescription": "Kreditin\u0117 s\u0105skaita {{creditNoteId}} s\u0105skaitai fakt\u016Brai {{invoiceId}}",
|
|
63148
|
+
"accounting.invoicePosted.entryDescription": "I\u0161ra\u0161ytos s\u0105skaitos fakt\u016Bros {{invoiceId}} registravimo \u012Fra\u0161as",
|
|
63149
|
+
"accounting.revrec.closedPeriodFallbackNote": " (u\u017Eregistruota kitame atvirame laikotarpyje, nes tikslinis apskaitos laikotarpis u\u017Edarytas; pradin\u0117 data {{originalDate}})",
|
|
63150
|
+
"accounting.revrec.creditLineDescription": "Pajam\u0173 pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63151
|
+
"accounting.revrec.debitLineDescription": "Atid\u0117t\u0173j\u0173 pajam\u0173 suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63152
|
+
"accounting.revrec.discountCreditLineDescription": "Pajamas ma\u017Einan\u010Dios sumos (nuolaidos) pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63153
|
+
"accounting.revrec.discountDebitLineDescription": "Atid\u0117tosios nuolaidos suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63154
|
+
"accounting.revrec.entryDescription": "Pajam\u0173 pripa\u017Einimas pagal grafik\u0105 {{scheduleId}}, laikotarpis {{periodStart}}\u2013{{periodEnd}}",
|
|
63155
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Kreditin\u0117 s\u0105skaita {{creditNoteId}}",
|
|
63156
|
+
"accounting.transactionRefunded.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} gr\u0105\u017Einimas",
|
|
63157
|
+
"accounting.transactionSettled.entryDescription": "S\u0105skaitos fakt\u016Bros {{invoiceId}} mok\u0117jimo sudengimas",
|
|
63025
63158
|
"creditNotes.refundChargeName": "S\u0105skaitos fakt\u016Bros gr\u0105\u017Einimas",
|
|
63026
63159
|
"credits.bundleOf": "{{productName}} \u2013 {{creditCount}} kredit\u0173 paketas",
|
|
63027
63160
|
"credits.unitsOf": "{{productName}} \u2013 {{creditCount}} kredit\u0173",
|
|
63161
|
+
"einvoicing.paymentFromWallet": "Mok\u0117jimas i\u0161 pinigin\u0117s",
|
|
63162
|
+
"einvoicing.paymentProcessed": "Mok\u0117jimas apdorotas",
|
|
63163
|
+
"einvoicing.paymentReceived": "Mok\u0117jimas gautas",
|
|
63028
63164
|
"invoices.outstandingProduct.description": "Neapmok\u0117ta {{date}} i\u0161ra\u0161ytos s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma",
|
|
63029
63165
|
"invoices.outstandingProduct.descriptionPeriod": "Neapmok\u0117ta s\u0105skaitos fakt\u016Bros{{invoiceNumber}} suma u\u017E laikotarp\u012F nuo {{periodStart}} iki {{periodEnd}}",
|
|
63030
63166
|
"invoices.outstandingProduct.name": "Neapmok\u0117tas likutis",
|
|
@@ -63032,53 +63168,40 @@ var lt = {
|
|
|
63032
63168
|
"invoices.prorata.paymentForItemFullPeriod": "Mok\u0117jimas u\u017E",
|
|
63033
63169
|
"invoices.prorata.refundForItem": "Proporcingas gr\u0105\u017Einimas u\u017E",
|
|
63034
63170
|
"invoices.prorata.refundForItemFullPeriod": "Gr\u0105\u017Einimas u\u017E",
|
|
63035
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis",
|
|
63036
63171
|
"subscriptions.closingChargeName": "Prenumeratos u\u017Ebaigimo mokestis",
|
|
63037
63172
|
"subscriptions.correction": "Ankstesnio laikotarpio koregavimas",
|
|
63173
|
+
"subscriptions.reinstatementRechargeName": "Atnaujinimo \u012Fmokos u\u017E nutraukt\u0105 laikotarp\u012F",
|
|
63038
63174
|
"subscriptions.updates.addCoupon": "Prid\u0117ti kupon\u0105 {{couponName}}",
|
|
63039
63175
|
"subscriptions.updates.addProduct": "Prid\u0117ti {{productName}}",
|
|
63040
63176
|
"subscriptions.updates.removeCoupon": "Pa\u0161alinti kupon\u0105 {{couponName}}",
|
|
63041
63177
|
"subscriptions.updates.removeProduct": "Pa\u0161alinti {{productName}}",
|
|
63042
63178
|
"subscriptions.updates.unit": "vnt.",
|
|
63043
|
-
"subscriptions.updates.updatePrices": "Atnaujinti {{productName}} kainas",
|
|
63044
63179
|
"subscriptions.updates.updateCount": "Atnaujinti {{productName}} kiek\u012F ({{previousCount}} \u2192 {{newCount}} {{unit}})",
|
|
63045
|
-
"subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63046
|
-
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63047
|
-
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 proporcingam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63048
|
-
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63049
63180
|
"subscriptions.updates.updateCount.description.full.committed.invoiced": "Visam laikotarpiui pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63050
63181
|
"subscriptions.updates.updateCount.description.full.committed.not_invoiced": "Visam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63051
63182
|
"subscriptions.updates.updateCount.description.full.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 visam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63052
63183
|
"subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Visam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63053
|
-
"
|
|
63054
|
-
"
|
|
63055
|
-
"
|
|
63056
|
-
"
|
|
63057
|
-
"
|
|
63058
|
-
"
|
|
63059
|
-
"accounting.revrec.debitLineDescription": "Atid\u0117t\u0173j\u0173 pajam\u0173 suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63060
|
-
"accounting.revrec.creditLineDescription": "Pajam\u0173 pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63061
|
-
"accounting.revrec.discountDebitLineDescription": "Atid\u0117tosios nuolaidos suma\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63062
|
-
"accounting.revrec.discountCreditLineDescription": "Pajamas ma\u017Einan\u010Dios sumos (nuolaidos) pripa\u017Einimas \u2013 grafikas {{scheduleId}}, laikotarpis {{periodDate}}",
|
|
63063
|
-
"accounting.revrec.closedPeriodFallbackNote": " (u\u017Eregistruota kitame atvirame laikotarpyje, nes tikslinis apskaitos laikotarpis u\u017Edarytas; pradin\u0117 data {{originalDate}})",
|
|
63064
|
-
"einvoicing.paymentProcessed": "Mok\u0117jimas apdorotas",
|
|
63065
|
-
"einvoicing.paymentReceived": "Mok\u0117jimas gautas",
|
|
63066
|
-
"einvoicing.paymentFromWallet": "Mok\u0117jimas i\u0161 pinigin\u0117s"
|
|
63184
|
+
"subscriptions.updates.updateCount.description.prorata.committed.invoiced": "Pritaikytas minimalus \u012Fsipareigotas {{committedCount}} kiekis.",
|
|
63185
|
+
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma (minimalus \u012Fsipareigotas kiekis \u2013 {{committedCount}})",
|
|
63186
|
+
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "U\u017E \u0161i\u0105 eilut\u0119 proporcingam laikotarpiui s\u0105skaita fakt\u016Bra i\u0161ra\u0161yta",
|
|
63187
|
+
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Proporcingam laikotarpiui nei\u0161ra\u0161yta {{amount}} suma",
|
|
63188
|
+
"subscriptions.updates.updatePrices": "Atnaujinti {{productName}} kainas",
|
|
63189
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 nebegaliojantis likutis"
|
|
63067
63190
|
};
|
|
63068
63191
|
|
|
63069
63192
|
// ../hyperline-i18n/build/locales/nl.js
|
|
63070
63193
|
var nl = {
|
|
63071
|
-
"accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
|
|
63072
|
-
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
63073
|
-
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
63074
63194
|
"accounting.creditNotePosted.entryDescription": "Creditnota {{creditNoteId}} voor factuur {{invoiceId}}",
|
|
63075
|
-
"accounting.
|
|
63195
|
+
"accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
|
|
63196
|
+
"accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
|
|
63076
63197
|
"accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63077
63198
|
"accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63078
63199
|
"accounting.revrec.discountCreditLineDescription": "Omzetvermindering (korting) erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63079
|
-
"accounting.revrec.closedPeriodFallbackNote": " (geboekt in de volgende open periode \u2014 doelboekingsperiode gesloten; oorspronkelijke datum {{originalDate}})",
|
|
63080
63200
|
"accounting.revrec.discountDebitLineDescription": "Uitgestelde korting verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
|
|
63081
63201
|
"accounting.revrec.entryDescription": "Omzeterkenning voor schema {{scheduleId}}, periode {{periodStart}} - {{periodEnd}}",
|
|
63202
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Creditnota {{creditNoteId}}",
|
|
63203
|
+
"accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
|
|
63204
|
+
"accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
|
|
63082
63205
|
"creditNotes.refundChargeName": "Terugbetaling voor factuur",
|
|
63083
63206
|
"credits.bundleOf": "{{productName}} - Bundel van {{creditCount}} credits",
|
|
63084
63207
|
"credits.unitsOf": "{{productName}} - {{creditCount}} credits",
|
|
@@ -63092,9 +63215,9 @@ var nl = {
|
|
|
63092
63215
|
"invoices.prorata.paymentForItemFullPeriod": "Betaling voor",
|
|
63093
63216
|
"invoices.prorata.refundForItem": "Gedeeltelijke terugbetaling voor",
|
|
63094
63217
|
"invoices.prorata.refundForItemFullPeriod": "Terugbetaling voor",
|
|
63095
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo",
|
|
63096
63218
|
"subscriptions.closingChargeName": "Afsluitkosten voor abonnement",
|
|
63097
63219
|
"subscriptions.correction": "Aanpassing vorige periode",
|
|
63220
|
+
"subscriptions.reinstatementRechargeName": "Herstelkosten van geannuleerde periode",
|
|
63098
63221
|
"subscriptions.updates.addCoupon": "Coupon toevoegen {{couponName}}",
|
|
63099
63222
|
"subscriptions.updates.addProduct": "{{productName}} toevoegen",
|
|
63100
63223
|
"subscriptions.updates.removeCoupon": "Coupon verwijderen {{couponName}}",
|
|
@@ -63109,22 +63232,23 @@ var nl = {
|
|
|
63109
63232
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Bedrag van {{amount}} (met een minimaal toegezegd aantal van {{committedCount}}) niet gefactureerd voor de geproportioneerde periode",
|
|
63110
63233
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Deze regel is gefactureerd voor de geproportioneerde periode",
|
|
63111
63234
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Bedrag van {{amount}} niet gefactureerd voor de geproportioneerde periode",
|
|
63112
|
-
"subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}"
|
|
63235
|
+
"subscriptions.updates.updatePrices": "Prijzen bijwerken voor {{productName}}",
|
|
63236
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 verlopen saldo"
|
|
63113
63237
|
};
|
|
63114
63238
|
|
|
63115
63239
|
// ../hyperline-i18n/build/locales/pl.js
|
|
63116
63240
|
var pl = {
|
|
63117
|
-
"accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
|
|
63118
|
-
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
63119
|
-
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
63120
63241
|
"accounting.creditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}} dla faktury {{invoiceId}}",
|
|
63121
|
-
"accounting.
|
|
63242
|
+
"accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
|
|
63243
|
+
"accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
|
|
63122
63244
|
"accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63123
63245
|
"accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63124
63246
|
"accounting.revrec.discountCreditLineDescription": "Rozpoznanie kontra-przychodu (rabat) \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63125
|
-
"accounting.revrec.closedPeriodFallbackNote": " (zaksi\u0119gowano w nast\u0119pnym otwartym okresie \u2014 docelowy okres ksi\u0119gowy zamkni\u0119ty; pierwotna data {{originalDate}})",
|
|
63126
63247
|
"accounting.revrec.discountDebitLineDescription": "Zmniejszenie odroczonego rabatu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
|
|
63127
63248
|
"accounting.revrec.entryDescription": "Rozpoznanie przychodu dla harmonogramu {{scheduleId}}, okres {{periodStart}} - {{periodEnd}}",
|
|
63249
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}}",
|
|
63250
|
+
"accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
|
|
63251
|
+
"accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
|
|
63128
63252
|
"creditNotes.refundChargeName": "Zwrot za faktur\u0119",
|
|
63129
63253
|
"credits.bundleOf": "{{productName}} - Pakiet {{creditCount}} kredyt\xF3w",
|
|
63130
63254
|
"credits.unitsOf": "{{productName}} - {{creditCount}} kredyt\xF3w",
|
|
@@ -63138,9 +63262,9 @@ var pl = {
|
|
|
63138
63262
|
"invoices.prorata.paymentForItemFullPeriod": "P\u0142atno\u015B\u0107 za",
|
|
63139
63263
|
"invoices.prorata.refundForItem": "Zwrot proporcjonalny za",
|
|
63140
63264
|
"invoices.prorata.refundForItemFullPeriod": "Zwrot za",
|
|
63141
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo",
|
|
63142
63265
|
"subscriptions.closingChargeName": "Op\u0142ata za zamkni\u0119cie subskrypcji",
|
|
63143
63266
|
"subscriptions.correction": "Korekta poprzedniego okresu",
|
|
63267
|
+
"subscriptions.reinstatementRechargeName": "Op\u0142ata za przywr\xF3cenie anulowanego okresu",
|
|
63144
63268
|
"subscriptions.updates.addCoupon": "Dodaj kupon {{couponName}}",
|
|
63145
63269
|
"subscriptions.updates.addProduct": "Dodaj {{productName}}",
|
|
63146
63270
|
"subscriptions.updates.removeCoupon": "Usu\u0144 kupon {{couponName}}",
|
|
@@ -63155,22 +63279,23 @@ var pl = {
|
|
|
63155
63279
|
"subscriptions.updates.updateCount.description.prorata.committed.not_invoiced": "Kwota {{amount}} (z minimaln\u0105 zobowi\u0105zan\u0105 ilo\u015Bci\u0105 {{committedCount}}) niefakturowana za okres proporcjonalny",
|
|
63156
63280
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Ta pozycja zosta\u0142a zafakturowana za okres proporcjonalny",
|
|
63157
63281
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Kwota {{amount}} niefakturowana za okres proporcjonalny",
|
|
63158
|
-
"subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}"
|
|
63282
|
+
"subscriptions.updates.updatePrices": "Aktualizuj ceny dla {{productName}}",
|
|
63283
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 wygas\u0142e saldo"
|
|
63159
63284
|
};
|
|
63160
63285
|
|
|
63161
63286
|
// ../hyperline-i18n/build/locales/pt.js
|
|
63162
63287
|
var pt = {
|
|
63163
|
-
"accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
|
|
63164
|
-
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
63165
|
-
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
63166
63288
|
"accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para a fatura {{invoiceId}}",
|
|
63167
|
-
"accounting.
|
|
63289
|
+
"accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
|
|
63290
|
+
"accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
|
|
63168
63291
|
"accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63169
63292
|
"accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63170
63293
|
"accounting.revrec.discountCreditLineDescription": "Reconhecer contra-receita (desconto) \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63171
|
-
"accounting.revrec.closedPeriodFallbackNote": " (lan\xE7ado no pr\xF3ximo per\xEDodo aberto \u2014 per\xEDodo cont\xE1bil de destino fechado; data original {{originalDate}})",
|
|
63172
63294
|
"accounting.revrec.discountDebitLineDescription": "Diminui\xE7\xE3o do desconto diferido \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
|
|
63173
63295
|
"accounting.revrec.entryDescription": "Reconhecimento de receita para o cronograma {{scheduleId}}, per\xEDodo {{periodStart}} - {{periodEnd}}",
|
|
63296
|
+
"accounting.standaloneCreditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}}",
|
|
63297
|
+
"accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
|
|
63298
|
+
"accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
|
|
63174
63299
|
"creditNotes.refundChargeName": "Reembolso pela fatura",
|
|
63175
63300
|
"credits.bundleOf": "{{productName}} - Pacote de {{creditCount}} cr\xE9ditos",
|
|
63176
63301
|
"credits.unitsOf": "{{productName}} - {{creditCount}} cr\xE9ditos",
|
|
@@ -63184,9 +63309,9 @@ var pt = {
|
|
|
63184
63309
|
"invoices.prorata.paymentForItemFullPeriod": "Pagamento por",
|
|
63185
63310
|
"invoices.prorata.refundForItem": "Reembolso proporcional por",
|
|
63186
63311
|
"invoices.prorata.refundForItemFullPeriod": "Reembolso por",
|
|
63187
|
-
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado",
|
|
63188
63312
|
"subscriptions.closingChargeName": "Taxa de encerramento da assinatura",
|
|
63189
63313
|
"subscriptions.correction": "Ajuste do per\xEDodo anterior",
|
|
63314
|
+
"subscriptions.reinstatementRechargeName": "Recarga de reintegra\xE7\xE3o do per\xEDodo cancelado",
|
|
63190
63315
|
"subscriptions.updates.addCoupon": "Adicionar cupom {{couponName}}",
|
|
63191
63316
|
"subscriptions.updates.addProduct": "Adicionar {{productName}}",
|
|
63192
63317
|
"subscriptions.updates.removeCoupon": "Remover cupom {{couponName}}",
|
|
@@ -63201,7 +63326,8 @@ var pt = {
|
|
|
63201
63326
|
"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",
|
|
63202
63327
|
"subscriptions.updates.updateCount.description.prorata.not_committed.invoiced": "Esta linha foi faturada para o per\xEDodo proporcional",
|
|
63203
63328
|
"subscriptions.updates.updateCount.description.prorata.not_committed.not_invoiced": "Valor de {{amount}} n\xE3o faturado para o per\xEDodo proporcional",
|
|
63204
|
-
"subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}"
|
|
63329
|
+
"subscriptions.updates.updatePrices": "Atualizar pre\xE7os para {{productName}}",
|
|
63330
|
+
"wallets.expiredBalanceInvoiceLineName": "{{walletName}} \u2013 saldo expirado"
|
|
63205
63331
|
};
|
|
63206
63332
|
|
|
63207
63333
|
// ../hyperline-i18n/build/language.js
|
|
@@ -65980,6 +66106,150 @@ var isAxiosError = axios.isAxiosError;
|
|
|
65980
66106
|
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
65981
66107
|
import axios2 from "axios";
|
|
65982
66108
|
import axiosRetry, { isNetworkOrIdempotentRequestError, retryAfter } from "axios-retry";
|
|
66109
|
+
|
|
66110
|
+
// ../hyperline-lib/build/httpClient/logRedaction.js
|
|
66111
|
+
var REDACTED_KEY_NAMES = /* @__PURE__ */ new Set([
|
|
66112
|
+
"accesstoken",
|
|
66113
|
+
"apikey",
|
|
66114
|
+
"apitoken",
|
|
66115
|
+
"assertion",
|
|
66116
|
+
"authtoken",
|
|
66117
|
+
"clientassertion",
|
|
66118
|
+
"codeverifier",
|
|
66119
|
+
"credentials",
|
|
66120
|
+
"idtoken",
|
|
66121
|
+
"privatekey",
|
|
66122
|
+
"refreshtoken",
|
|
66123
|
+
"sessiontoken",
|
|
66124
|
+
"token"
|
|
66125
|
+
]);
|
|
66126
|
+
var REDACTED_KEY_SUFFIX_PATTERN = /(secret|password)$/;
|
|
66127
|
+
var REDACTED_KEY_CANDIDATE_PATTERN = /token|key|secret|password|assertion|verifier|credentials/i;
|
|
66128
|
+
var REDACTED_VALUE = "<redacted>";
|
|
66129
|
+
var MAX_REDACTION_DEPTH = 10;
|
|
66130
|
+
var MAX_PARSED_STRING_LENGTH = 16384;
|
|
66131
|
+
var MAX_VISITED_NODES = 1e3;
|
|
66132
|
+
var MAX_CONTAINER_ENTRIES = MAX_VISITED_NODES;
|
|
66133
|
+
function redactLogBody({ body }) {
|
|
66134
|
+
return redactValue({
|
|
66135
|
+
value: body,
|
|
66136
|
+
depth: MAX_REDACTION_DEPTH,
|
|
66137
|
+
budget: { remainingNodes: MAX_VISITED_NODES }
|
|
66138
|
+
});
|
|
66139
|
+
}
|
|
66140
|
+
function redactLogUrl({ url: url2 }) {
|
|
66141
|
+
const queryIndex = url2.indexOf("?");
|
|
66142
|
+
if (queryIndex === -1 || url2.length > MAX_PARSED_STRING_LENGTH) {
|
|
66143
|
+
return url2;
|
|
66144
|
+
}
|
|
66145
|
+
const redactedQuery = redactFormEncoded({ text: url2.slice(queryIndex + 1) });
|
|
66146
|
+
return redactedQuery === void 0 ? url2 : `${url2.slice(0, queryIndex)}?${redactedQuery}`;
|
|
66147
|
+
}
|
|
66148
|
+
function redactValue({ value, depth, budget }) {
|
|
66149
|
+
if (depth <= 0 || budget.remainingNodes <= 0) {
|
|
66150
|
+
return value;
|
|
66151
|
+
}
|
|
66152
|
+
budget.remainingNodes -= 1;
|
|
66153
|
+
if (typeof value === "string") {
|
|
66154
|
+
return redactString({ text: value, budget });
|
|
66155
|
+
}
|
|
66156
|
+
if (value instanceof URLSearchParams) {
|
|
66157
|
+
return redactFormEncoded({ text: value.toString() }) ?? value;
|
|
66158
|
+
}
|
|
66159
|
+
if (Array.isArray(value)) {
|
|
66160
|
+
return redactArray({ items: value, depth, budget });
|
|
66161
|
+
}
|
|
66162
|
+
if (isPlainObject2(value)) {
|
|
66163
|
+
return redactObject({ record: value, depth, budget });
|
|
66164
|
+
}
|
|
66165
|
+
return value;
|
|
66166
|
+
}
|
|
66167
|
+
function redactArray({ items, depth, budget }) {
|
|
66168
|
+
if (items.length > MAX_CONTAINER_ENTRIES) {
|
|
66169
|
+
return items;
|
|
66170
|
+
}
|
|
66171
|
+
let redactedItems;
|
|
66172
|
+
for (const [index, item] of items.entries()) {
|
|
66173
|
+
if (budget.remainingNodes <= 0) {
|
|
66174
|
+
break;
|
|
66175
|
+
}
|
|
66176
|
+
const redactedItem = redactValue({ value: item, depth: depth - 1, budget });
|
|
66177
|
+
if (redactedItem !== item) {
|
|
66178
|
+
redactedItems ??= [...items];
|
|
66179
|
+
redactedItems[index] = redactedItem;
|
|
66180
|
+
}
|
|
66181
|
+
}
|
|
66182
|
+
return redactedItems ?? items;
|
|
66183
|
+
}
|
|
66184
|
+
function redactObject({ record: record2, depth, budget }) {
|
|
66185
|
+
const redactedEntries = /* @__PURE__ */ new Map();
|
|
66186
|
+
let entryCount = 0;
|
|
66187
|
+
for (const key in record2) {
|
|
66188
|
+
if (!Object.hasOwn(record2, key)) {
|
|
66189
|
+
continue;
|
|
66190
|
+
}
|
|
66191
|
+
entryCount += 1;
|
|
66192
|
+
if (entryCount > MAX_CONTAINER_ENTRIES) {
|
|
66193
|
+
return record2;
|
|
66194
|
+
}
|
|
66195
|
+
if (budget.remainingNodes <= 0) {
|
|
66196
|
+
break;
|
|
66197
|
+
}
|
|
66198
|
+
const nestedValue = record2[key];
|
|
66199
|
+
const redactedNestedValue = isRedactedKey({ key }) && nestedValue != null ? REDACTED_VALUE : redactValue({ value: nestedValue, depth: depth - 1, budget });
|
|
66200
|
+
if (redactedNestedValue !== nestedValue) {
|
|
66201
|
+
redactedEntries.set(key, redactedNestedValue);
|
|
66202
|
+
}
|
|
66203
|
+
}
|
|
66204
|
+
return redactedEntries.size === 0 ? record2 : { ...record2, ...Object.fromEntries(redactedEntries) };
|
|
66205
|
+
}
|
|
66206
|
+
function redactString({ text, budget }) {
|
|
66207
|
+
if (text.length > MAX_PARSED_STRING_LENGTH) {
|
|
66208
|
+
return text;
|
|
66209
|
+
}
|
|
66210
|
+
const trimmedText = text.trim();
|
|
66211
|
+
if (trimmedText.startsWith("{") || trimmedText.startsWith("[")) {
|
|
66212
|
+
try {
|
|
66213
|
+
const parsedValue = JSON.parse(trimmedText);
|
|
66214
|
+
const redactedValue = redactValue({
|
|
66215
|
+
value: parsedValue,
|
|
66216
|
+
depth: MAX_REDACTION_DEPTH,
|
|
66217
|
+
budget
|
|
66218
|
+
});
|
|
66219
|
+
return redactedValue === parsedValue ? text : JSON.stringify(redactedValue);
|
|
66220
|
+
} catch {
|
|
66221
|
+
return text;
|
|
66222
|
+
}
|
|
66223
|
+
}
|
|
66224
|
+
return redactFormEncoded({ text }) ?? text;
|
|
66225
|
+
}
|
|
66226
|
+
function redactFormEncoded({ text }) {
|
|
66227
|
+
if (!text.includes("=") || !REDACTED_KEY_CANDIDATE_PATTERN.test(text)) {
|
|
66228
|
+
return void 0;
|
|
66229
|
+
}
|
|
66230
|
+
const params = new URLSearchParams(text);
|
|
66231
|
+
let hasRedactedParam = false;
|
|
66232
|
+
for (const key of new Set(params.keys())) {
|
|
66233
|
+
if (isRedactedKey({ key })) {
|
|
66234
|
+
params.set(key, REDACTED_VALUE);
|
|
66235
|
+
hasRedactedParam = true;
|
|
66236
|
+
}
|
|
66237
|
+
}
|
|
66238
|
+
return hasRedactedParam ? params.toString() : void 0;
|
|
66239
|
+
}
|
|
66240
|
+
function isRedactedKey({ key }) {
|
|
66241
|
+
const normalizedKey = key.toLowerCase().replace(/[_-]/g, "");
|
|
66242
|
+
return REDACTED_KEY_NAMES.has(normalizedKey) || REDACTED_KEY_SUFFIX_PATTERN.test(normalizedKey);
|
|
66243
|
+
}
|
|
66244
|
+
function isPlainObject2(value) {
|
|
66245
|
+
if (typeof value !== "object" || value === null) {
|
|
66246
|
+
return false;
|
|
66247
|
+
}
|
|
66248
|
+
const prototype = Object.getPrototypeOf(value);
|
|
66249
|
+
return prototype === Object.prototype || prototype === null;
|
|
66250
|
+
}
|
|
66251
|
+
|
|
66252
|
+
// ../hyperline-lib/build/httpClient/httpClient.js
|
|
65983
66253
|
import { AxiosError } from "axios";
|
|
65984
66254
|
var recommendedRetryConfig = {
|
|
65985
66255
|
retries: 3,
|
|
@@ -66047,13 +66317,14 @@ function isTooManyRequestsError(error48) {
|
|
|
66047
66317
|
return error48.response?.status === 429;
|
|
66048
66318
|
}
|
|
66049
66319
|
var toLogRequest = (config4) => {
|
|
66320
|
+
const url2 = redactLogUrl({ url: config4.url ?? "" });
|
|
66050
66321
|
return {
|
|
66051
66322
|
method: config4.method ?? "",
|
|
66052
|
-
url:
|
|
66053
|
-
path:
|
|
66323
|
+
url: url2,
|
|
66324
|
+
path: url2,
|
|
66054
66325
|
hostname: config4.baseURL ?? "",
|
|
66055
|
-
originalUrl: `${config4.baseURL ?? ""}${
|
|
66056
|
-
body: config4.data,
|
|
66326
|
+
originalUrl: `${config4.baseURL ?? ""}${url2}`,
|
|
66327
|
+
body: redactLogBody({ body: config4.data }),
|
|
66057
66328
|
headers: {}
|
|
66058
66329
|
};
|
|
66059
66330
|
};
|