{"version":3,"sources":["../src/cli/commands/gateway-budgets/update.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport {\n  type BudgetOnBreach,\n  GatewayBudgetsApiService,\n} from \"@/client-sdk/services/gateway-budgets/gateway-budgets-api.service\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { failSpinner } from \"../../utils/spinnerError\";\n\nexport interface UpdateGatewayBudgetOptions {\n  name?: string;\n  description?: string;\n  clearDescription?: boolean;\n  limit?: string;\n  onBreach?: \"block\" | \"warn\";\n  timezone?: string;\n  clearTimezone?: boolean;\n  format?: string;\n}\n\nexport const updateGatewayBudgetCommand = async (\n  id: string,\n  options: UpdateGatewayBudgetOptions,\n): Promise<void> => {\n  checkApiKey();\n\n  const onBreach: BudgetOnBreach | undefined = options.onBreach\n    ? (options.onBreach.toUpperCase() as BudgetOnBreach)\n    : undefined;\n\n  const noFieldsProvided =\n    options.name === undefined &&\n    options.description === undefined &&\n    !options.clearDescription &&\n    options.limit === undefined &&\n    onBreach === undefined &&\n    options.timezone === undefined &&\n    !options.clearTimezone;\n\n  if (noFieldsProvided) {\n    console.error(\n      chalk.red(\n        \"Error: nothing to update. Provide at least one of --name, --description, --clear-description, --limit, --on-breach, --timezone, --clear-timezone.\",\n      ),\n    );\n    process.exit(1);\n  }\n\n  const service = new GatewayBudgetsApiService();\n  const spinner = ora(`Updating budget \"${id}\"...`).start();\n\n  try {\n    const budget = await service.update(id, {\n      name: options.name,\n      description: options.clearDescription ? null : options.description,\n      limit_usd: options.limit,\n      on_breach: onBreach,\n      timezone: options.clearTimezone ? null : options.timezone,\n    });\n\n    spinner.succeed(`Updated budget \"${chalk.cyan(budget.name)}\"`);\n\n    if (options.format === \"json\") {\n      console.log(JSON.stringify(budget, null, 2));\n      return;\n    }\n\n    console.log();\n    console.log(`${chalk.bold(\"ID:\")}       ${budget.id}`);\n    console.log(`${chalk.bold(\"Scope:\")}    ${budget.scope_type.toLowerCase()}:${budget.scope_id}`);\n    console.log(`${chalk.bold(\"Window:\")}   ${budget.window.toLowerCase()}`);\n    console.log(`${chalk.bold(\"Limit:\")}    $${budget.limit_usd}`);\n    console.log(`${chalk.bold(\"Breach:\")}   ${budget.on_breach.toLowerCase()}`);\n    console.log(`${chalk.bold(\"Timezone:\")} ${budget.timezone ?? chalk.gray(\"—\")}`);\n    console.log();\n  } catch (error) {\n    failSpinner({ spinner, error, action: \"update gateway budget\" });\n    process.exit(1);\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAmBT,IAAM,6BAA6B,OACxC,IACA,YACkB;AAvBpB;AAwBE,cAAY;AAEZ,QAAM,WAAuC,QAAQ,WAChD,QAAQ,SAAS,YAAY,IAC9B;AAEJ,QAAM,mBACJ,QAAQ,SAAS,UACjB,QAAQ,gBAAgB,UACxB,CAAC,QAAQ,oBACT,QAAQ,UAAU,UAClB,aAAa,UACb,QAAQ,aAAa,UACrB,CAAC,QAAQ;AAEX,MAAI,kBAAkB;AACpB,YAAQ;AAAA,MACN,MAAM;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,UAAU,IAAI,yBAAyB;AAC7C,QAAM,UAAU,IAAI,oBAAoB,EAAE,MAAM,EAAE,MAAM;AAExD,MAAI;AACF,UAAM,SAAS,MAAM,QAAQ,OAAO,IAAI;AAAA,MACtC,MAAM,QAAQ;AAAA,MACd,aAAa,QAAQ,mBAAmB,OAAO,QAAQ;AAAA,MACvD,WAAW,QAAQ;AAAA,MACnB,WAAW;AAAA,MACX,UAAU,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,IACnD,CAAC;AAED,YAAQ,QAAQ,mBAAmB,MAAM,KAAK,OAAO,IAAI,CAAC,GAAG;AAE7D,QAAI,QAAQ,WAAW,QAAQ;AAC7B,cAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC3C;AAAA,IACF;AAEA,YAAQ,IAAI;AACZ,YAAQ,IAAI,GAAG,MAAM,KAAK,KAAK,CAAC,UAAU,OAAO,EAAE,EAAE;AACrD,YAAQ,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAC,OAAO,OAAO,WAAW,YAAY,CAAC,IAAI,OAAO,QAAQ,EAAE;AAC9F,YAAQ,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,MAAM,OAAO,OAAO,YAAY,CAAC,EAAE;AACvE,YAAQ,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAC,QAAQ,OAAO,SAAS,EAAE;AAC7D,YAAQ,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,MAAM,OAAO,UAAU,YAAY,CAAC,EAAE;AAC1E,YAAQ,IAAI,GAAG,MAAM,KAAK,WAAW,CAAC,KAAI,YAAO,aAAP,YAAmB,MAAM,KAAK,QAAG,CAAC,EAAE;AAC9E,YAAQ,IAAI;AAAA,EACd,SAAS,OAAO;AACd,gBAAY,EAAE,SAAS,OAAO,QAAQ,wBAAwB,CAAC;AAC/D,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}