@hyperscale0/cli 1.0.0-beta.27 → 1.0.0-beta.28
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/hyperscale.js +42 -42
- package/package.json +2 -2
package/hyperscale.js
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{spawn as rt}from"node:child_process";import{createHash as jt}from"node:crypto";import{createServer as Gt}from"node:http";import{createInterface as Nt}from"node:readline/promises";import{chmod as ve,mkdir as Ht,readdir as Ut,readFile as Y,rename as Dt,unlink as Bt,writeFile as zt}from"node:fs/promises";import{homedir as Kt}from"node:os";import{basename as Mt,dirname as ke,join as pe}from"node:path";var he={"x-generated":"Generated by the Hyperscale artifact pipeline; do not edit by hand",schemaVersion:1,commands:[{name:"account.balance.retrieve",operationId:"account_balance_retrieve",method:"GET",path:"/v1/accounts/{accountId}/balance",idempotency:"not_required",principal:"api_key",summary:"Retrieve an account balance"},{name:"account.close",operationId:"account_close",method:"POST",path:"/v1/accounts/{accountId}/close",idempotency:"required",principal:"api_key",summary:"Close an account"},{name:"account.create",operationId:"account_create",method:"POST",path:"/v1/accounts",idempotency:"required",principal:"api_key",summary:"Create an account"},{name:"account.freeze",operationId:"account_freeze",method:"POST",path:"/v1/accounts/{accountId}/freeze",idempotency:"required",principal:"api_key",summary:"Freeze an account"},{name:"account.list",operationId:"account_list",method:"GET",path:"/v1/accounts",idempotency:"not_required",principal:"api_key",summary:"List Accounts"},{name:"account.retrieve",operationId:"account_retrieve",method:"GET",path:"/v1/accounts/{accountId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Account"},{name:"account.statement.export",operationId:"account_statement_export",method:"GET",path:"/v1/accounts/{accountId}/statements/{period}/export",idempotency:"not_required",principal:"api_key",summary:"Export a monthly account statement"},{name:"account.statement.retrieve",operationId:"account_statement_retrieve",method:"GET",path:"/v1/accounts/{accountId}/statements/{period}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a monthly account statement"},{name:"account.unfreeze",operationId:"account_unfreeze",method:"POST",path:"/v1/accounts/{accountId}/unfreeze",idempotency:"required",principal:"api_key",summary:"Unfreeze an account"},{name:"activity.list",operationId:"activity_list",method:"GET",path:"/v1/activity",idempotency:"not_required",principal:"api_key",summary:"List tenant activity"},{name:"api_key.list",operationId:"api_key_list",method:"GET",path:"/v1/api-keys",idempotency:"not_required",principal:"user_session",summary:"List API keys"},{name:"api_key.live.create",operationId:"api_key_live_create",method:"POST",path:"/v1/live-api-keys",idempotency:"required",principal:"user_session",summary:"Create a live API key"},{name:"api_key.retrieve",operationId:"api_key_retrieve",method:"GET",path:"/v1/api-keys/{apiKeyId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve an API key"},{name:"api_key.revoke",operationId:"api_key_revoke",method:"POST",path:"/v1/api-keys/{apiKeyId}/revoke",idempotency:"required",principal:"user_session",summary:"Revoke a product API key"},{name:"api_key.sandbox.create",operationId:"api_key_sandbox_create",method:"POST",path:"/v1/sandbox-api-keys",idempotency:"required",principal:"user_session",summary:"Create a sandbox API key"},{name:"audit_event.list",operationId:"audit_event_list",method:"GET",path:"/v1/audit-events",idempotency:"not_required",principal:"api_key",summary:"List Audit events"},{name:"audit_event.retrieve",operationId:"audit_event_retrieve",method:"GET",path:"/v1/audit-events/{auditEventId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Audit event"},{name:"authorised_decision.approve",operationId:"authorised_decision_approve",method:"POST",path:"/v1/authorised-decisions/{authorisedDecisionId}/approve",idempotency:"required",principal:"api_key",summary:"Approve instrument"},{name:"authorised_decision.create",operationId:"authorised_decision_create",method:"POST",path:"/v1/authorised-decisions",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"authorised_decision.decline",operationId:"authorised_decision_decline",method:"POST",path:"/v1/authorised-decisions/{authorisedDecisionId}/decline",idempotency:"required",principal:"api_key",summary:"Decline instrument"},{name:"authorised_decision.list",operationId:"authorised_decision_list",method:"GET",path:"/v1/authorised-decisions",idempotency:"not_required",principal:"api_key",summary:"List authorised decisions"},{name:"authorised_decision.retrieve",operationId:"authorised_decision_retrieve",method:"GET",path:"/v1/authorised-decisions/{authorisedDecisionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an authorised decision"},{name:"authorised_decision.revoke",operationId:"authorised_decision_revoke",method:"POST",path:"/v1/authorised-decisions/{authorisedDecisionId}/revoke",idempotency:"required",principal:"api_key",summary:"Revoke instrument"},{name:"beneficiary.create",operationId:"beneficiary_create",method:"POST",path:"/v1/beneficiaries",idempotency:"required",principal:"api_key",summary:"Create a beneficiary"},{name:"beneficiary.disable",operationId:"beneficiary_disable",method:"POST",path:"/v1/beneficiaries/{beneficiaryId}/disable",idempotency:"required",principal:"user_session",summary:"Disable a beneficiary"},{name:"beneficiary.list",operationId:"beneficiary_list",method:"GET",path:"/v1/beneficiaries",idempotency:"not_required",principal:"api_key",summary:"List Beneficiaries"},{name:"beneficiary.retrieve",operationId:"beneficiary_retrieve",method:"GET",path:"/v1/beneficiaries/{beneficiaryId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Beneficiary"},{name:"beneficiary.verify",operationId:"beneficiary_verify",method:"POST",path:"/v1/beneficiary-verifications",idempotency:"required",principal:"api_key",summary:"Verify a beneficiary"},{name:"billing_adjustment.list",operationId:"billing_adjustment_list",method:"GET",path:"/v1/billing-adjustments",idempotency:"not_required",principal:"api_key",summary:"List Billing adjustments"},{name:"billing_adjustment.retrieve",operationId:"billing_adjustment_retrieve",method:"GET",path:"/v1/billing-adjustments/{billingAdjustmentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Billing adjustment"},{name:"billing_period.list",operationId:"billing_period_list",method:"GET",path:"/v1/billing-periods",idempotency:"not_required",principal:"api_key",summary:"List Billing periods"},{name:"billing_period.retrieve",operationId:"billing_period_retrieve",method:"GET",path:"/v1/billing-periods/{billingPeriodId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Billing period"},{name:"billing_subscription.list",operationId:"billing_subscription_list",method:"GET",path:"/v1/billing-subscriptions",idempotency:"not_required",principal:"api_key",summary:"List Billing subscriptions"},{name:"billing_subscription.retrieve",operationId:"billing_subscription_retrieve",method:"GET",path:"/v1/billing-subscriptions/{billingSubscriptionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Billing subscription"},{name:"card.activate",operationId:"card_activate",method:"POST",path:"/v1/cards/{cardId}/activate",idempotency:"required",principal:"api_key",summary:"Activate a card"},{name:"card.cancel",operationId:"card_cancel",method:"POST",path:"/v1/cards/{cardId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a card"},{name:"card.create",operationId:"card_create",method:"POST",path:"/v1/cards",idempotency:"required",principal:"api_key",summary:"Issue a card"},{name:"card.freeze",operationId:"card_freeze",method:"POST",path:"/v1/cards/{cardId}/freeze",idempotency:"required",principal:"api_key",summary:"Freeze a card"},{name:"card.list",operationId:"card_list",method:"GET",path:"/v1/cards",idempotency:"not_required",principal:"api_key",summary:"List cards"},{name:"card.retrieve",operationId:"card_retrieve",method:"GET",path:"/v1/cards/{cardId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a card"},{name:"card.unfreeze",operationId:"card_unfreeze",method:"POST",path:"/v1/cards/{cardId}/unfreeze",idempotency:"required",principal:"api_key",summary:"Unfreeze a card"},{name:"card.update",operationId:"card_update",method:"PATCH",path:"/v1/cards/{cardId}",idempotency:"required",principal:"api_key",summary:"Update a card"},{name:"card_authorization.approve",operationId:"card_authorization_approve",method:"POST",path:"/v1/card-authorizations/{cardAuthorizationId}/approve",idempotency:"required",principal:"api_key",summary:"Approve a card authorization"},{name:"card_authorization.capture",operationId:"card_authorization_capture",method:"POST",path:"/v1/card-authorizations/{cardAuthorizationId}/capture",idempotency:"required",principal:"api_key",summary:"Capture a card authorization"},{name:"card_authorization.create",operationId:"card_authorization_create",method:"POST",path:"/v1/card-authorizations",idempotency:"required",principal:"api_key",summary:"Request a card authorization"},{name:"card_authorization.decline",operationId:"card_authorization_decline",method:"POST",path:"/v1/card-authorizations/{cardAuthorizationId}/decline",idempotency:"required",principal:"api_key",summary:"Decline a card authorization"},{name:"card_authorization.list",operationId:"card_authorization_list",method:"GET",path:"/v1/card-authorizations",idempotency:"not_required",principal:"api_key",summary:"List card authorizations"},{name:"card_authorization.retrieve",operationId:"card_authorization_retrieve",method:"GET",path:"/v1/card-authorizations/{cardAuthorizationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a card authorization"},{name:"card_authorization.reverse",operationId:"card_authorization_reverse",method:"POST",path:"/v1/card-authorizations/{cardAuthorizationId}/reverse",idempotency:"required",principal:"api_key",summary:"Reverse a card authorization"},{name:"card_dispute.create",operationId:"card_dispute_create",method:"POST",path:"/v1/card-disputes",idempotency:"required",principal:"api_key",summary:"File a card dispute"},{name:"card_dispute.list",operationId:"card_dispute_list",method:"GET",path:"/v1/card-disputes",idempotency:"not_required",principal:"api_key",summary:"List card disputes"},{name:"card_dispute.retrieve",operationId:"card_dispute_retrieve",method:"GET",path:"/v1/card-disputes/{cardDisputeId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a card dispute"},{name:"card_dispute.review",operationId:"card_dispute_review",method:"POST",path:"/v1/card-disputes/{cardDisputeId}/review",idempotency:"required",principal:"api_key",summary:"Review a card dispute"},{name:"card_dispute.update",operationId:"card_dispute_update",method:"PATCH",path:"/v1/card-disputes/{cardDisputeId}",idempotency:"required",principal:"api_key",summary:"Update a card dispute"},{name:"card_dispute.win",operationId:"card_dispute_win",method:"POST",path:"/v1/card-disputes/{cardDisputeId}/win",idempotency:"required",principal:"api_key",summary:"Win a card dispute"},{name:"card_transaction.create",operationId:"card_transaction_create",method:"POST",path:"/v1/card-transactions",idempotency:"required",principal:"api_key",summary:"Record a card transaction"},{name:"card_transaction.list",operationId:"card_transaction_list",method:"GET",path:"/v1/card-transactions",idempotency:"not_required",principal:"api_key",summary:"List card transactions"},{name:"card_transaction.refund",operationId:"card_transaction_refund",method:"POST",path:"/v1/card-transactions/{cardTransactionId}/refund",idempotency:"required",principal:"api_key",summary:"Refund a card transaction"},{name:"card_transaction.retrieve",operationId:"card_transaction_retrieve",method:"GET",path:"/v1/card-transactions/{cardTransactionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a card transaction"},{name:"cardholder.activate",operationId:"cardholder_activate",method:"POST",path:"/v1/cardholders/{cardholderId}/activate",idempotency:"required",principal:"api_key",summary:"Activate a cardholder"},{name:"cardholder.close",operationId:"cardholder_close",method:"POST",path:"/v1/cardholders/{cardholderId}/close",idempotency:"required",principal:"api_key",summary:"Close a cardholder"},{name:"cardholder.create",operationId:"cardholder_create",method:"POST",path:"/v1/cardholders",idempotency:"required",principal:"api_key",summary:"Create a cardholder"},{name:"cardholder.list",operationId:"cardholder_list",method:"GET",path:"/v1/cardholders",idempotency:"not_required",principal:"api_key",summary:"List cardholders"},{name:"cardholder.resume",operationId:"cardholder_resume",method:"POST",path:"/v1/cardholders/{cardholderId}/resume",idempotency:"required",principal:"api_key",summary:"Resume a cardholder"},{name:"cardholder.retrieve",operationId:"cardholder_retrieve",method:"GET",path:"/v1/cardholders/{cardholderId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a cardholder"},{name:"cardholder.suspend",operationId:"cardholder_suspend",method:"POST",path:"/v1/cardholders/{cardholderId}/suspend",idempotency:"required",principal:"api_key",summary:"Suspend a cardholder"},{name:"cardholder.update",operationId:"cardholder_update",method:"PATCH",path:"/v1/cardholders/{cardholderId}",idempotency:"required",principal:"api_key",summary:"Update a cardholder"},{name:"catalog.author",operationId:"catalog_author",method:"POST",path:"/v1/catalog/author",idempotency:"required",principal:"user_session",summary:"Author a tenant catalog revision"},{name:"charge.list",operationId:"charge_list",method:"GET",path:"/v1/charges",idempotency:"not_required",principal:"api_key",summary:"List Charges"},{name:"charge.retrieve",operationId:"charge_retrieve",method:"GET",path:"/v1/charges/{chargeId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Charge"},{name:"circle_membership.create",operationId:"circle_membership_create",method:"POST",path:"/v1/circle-memberships",idempotency:"required",principal:"api_key",summary:"Join a savings circle"},{name:"circle_membership.list",operationId:"circle_membership_list",method:"GET",path:"/v1/circle-memberships",idempotency:"not_required",principal:"api_key",summary:"List circle memberships"},{name:"circle_membership.retrieve",operationId:"circle_membership_retrieve",method:"GET",path:"/v1/circle-memberships/{circleMembershipId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a circle membership"},{name:"claim.approve",operationId:"claim_approve",method:"POST",path:"/v1/claims/{claimId}/approve",idempotency:"required",principal:"api_key",summary:"Approve a claim"},{name:"claim.assess",operationId:"claim_assess",method:"POST",path:"/v1/claims/{claimId}/assess",idempotency:"required",principal:"api_key",summary:"Assess a claim"},{name:"claim.attest",operationId:"claim_attest",method:"POST",path:"/v1/claims/{claimId}/attest",idempotency:"required",principal:"api_key",summary:"Attest an out-of-band claim approval"},{name:"claim.create",operationId:"claim_create",method:"POST",path:"/v1/claims",idempotency:"required",principal:"api_key",summary:"File a claim"},{name:"claim.deny",operationId:"claim_deny",method:"POST",path:"/v1/claims/{claimId}/deny",idempotency:"required",principal:"api_key",summary:"Deny a claim"},{name:"claim.list",operationId:"claim_list",method:"GET",path:"/v1/claims",idempotency:"not_required",principal:"api_key",summary:"List claims"},{name:"claim.pay",operationId:"claim_pay",method:"POST",path:"/v1/claims/{claimId}/pay",idempotency:"required",principal:"api_key",summary:"Pay a claim"},{name:"claim.retrieve",operationId:"claim_retrieve",method:"GET",path:"/v1/claims/{claimId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a claim"},{name:"claim.reverse",operationId:"claim_reverse",method:"POST",path:"/v1/claims/{claimId}/reverse",idempotency:"required",principal:"api_key",summary:"Reverse claim approval"},{name:"claim.update",operationId:"claim_update",method:"PATCH",path:"/v1/claims/{claimId}",idempotency:"required",principal:"api_key",summary:"Update a claim"},{name:"collection.list",operationId:"collection_list",method:"GET",path:"/v1/collections",idempotency:"not_required",principal:"api_key",summary:"List Collections"},{name:"collection.pay_in.cancel",operationId:"collection_pay_in_cancel",method:"POST",path:"/v1/collections/{collectionId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a reserved collection pay-in"},{name:"collection.pay_in.capture",operationId:"collection_pay_in_capture",method:"POST",path:"/v1/collections/{collectionId}/capture",idempotency:"required",principal:"api_key",summary:"Capture a reserved collection pay-in"},{name:"collection.pay_in.reserve",operationId:"collection_pay_in_reserve",method:"POST",path:"/v1/collections/reserve",idempotency:"required",principal:"api_key",summary:"Reserve a collection pay-in"},{name:"collection.retrieve",operationId:"collection_retrieve",method:"GET",path:"/v1/collections/{collectionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Collection"},{name:"collections_case.agree_plan",operationId:"collections_case_agree_plan",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/agree-plan",idempotency:"required",principal:"api_key",summary:"Record an agreed settlement plan"},{name:"collections_case.assign",operationId:"collections_case_assign",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/assign",idempotency:"required",principal:"api_key",summary:"Assign a collections case to an agency"},{name:"collections_case.create",operationId:"collections_case_create",method:"POST",path:"/v1/collections-cases",idempotency:"required",principal:"api_key",summary:"Open a collections case"},{name:"collections_case.list",operationId:"collections_case_list",method:"GET",path:"/v1/collections-cases",idempotency:"not_required",principal:"api_key",summary:"List collections cases"},{name:"collections_case.recall",operationId:"collections_case_recall",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/recall",idempotency:"required",principal:"api_key",summary:"Recall a collections case"},{name:"collections_case.recover",operationId:"collections_case_recover",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/recover",idempotency:"required",principal:"api_key",summary:"Record a lump-sum recovery"},{name:"collections_case.retrieve",operationId:"collections_case_retrieve",method:"GET",path:"/v1/collections-cases/{collectionsCaseId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a collections case"},{name:"collections_case.return_uncollected",operationId:"collections_case_return_uncollected",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/return-uncollected",idempotency:"required",principal:"api_key",summary:"Record a case returned uncollected"},{name:"collections_case.update",operationId:"collections_case_update",method:"PATCH",path:"/v1/collections-cases/{collectionsCaseId}",idempotency:"required",principal:"api_key",summary:"Update a collections case"},{name:"composer.catalog",operationId:"composer_catalog",method:"GET",path:"/v1/composer/catalog",idempotency:"not_required",principal:"user_session",summary:"Retrieve the composer authoring vocabulary"},{name:"composer.check",operationId:"composer_check",method:"POST",path:"/v1/composer/check",idempotency:"not_required",principal:"user_session",summary:"Check an HSX program or compiled .udl document"},{name:"composer.plan",operationId:"composer_plan",method:"POST",path:"/v1/composer/plan",idempotency:"not_required",principal:"user_session",summary:"Plan an HSX program or compiled .udl document against a build"},{name:"consent.grant",operationId:"consent_grant",method:"POST",path:"/v1/consents",idempotency:"required",principal:"user_session",summary:"Grant scoped provider data consent"},{name:"consent.list",operationId:"consent_list",method:"GET",path:"/v1/consents",idempotency:"not_required",principal:"api_key",summary:"List Consents"},{name:"consent.retrieve",operationId:"consent_retrieve",method:"GET",path:"/v1/consents/{consentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Consent"},{name:"consent.revoke",operationId:"consent_revoke",method:"POST",path:"/v1/consents/{consentId}/revoke",idempotency:"required",principal:"api_key",summary:"Revoke provider data consent"},{name:"contact_attempt.create",operationId:"contact_attempt_create",method:"POST",path:"/v1/contact-attempts",idempotency:"required",principal:"api_key",summary:"Record a contact attempt"},{name:"contact_attempt.list",operationId:"contact_attempt_list",method:"GET",path:"/v1/contact-attempts",idempotency:"not_required",principal:"api_key",summary:"List contact attempts"},{name:"contact_attempt.retrieve",operationId:"contact_attempt_retrieve",method:"GET",path:"/v1/contact-attempts/{contactAttemptId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a contact attempt"},{name:"contact_attempt.void",operationId:"contact_attempt_void",method:"POST",path:"/v1/contact-attempts/{contactAttemptId}/void",idempotency:"required",principal:"api_key",summary:"Void a contact attempt"},{name:"credit_agreement.advance",operationId:"credit_agreement_advance",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/advance",idempotency:"required",principal:"api_key",summary:"Advance a credit agreement"},{name:"credit_agreement.create",operationId:"credit_agreement_create",method:"POST",path:"/v1/credit-agreements",idempotency:"required",principal:"api_key",summary:"Create a credit agreement"},{name:"credit_agreement.list",operationId:"credit_agreement_list",method:"GET",path:"/v1/credit-agreements",idempotency:"not_required",principal:"api_key",summary:"List credit agreements"},{name:"credit_agreement.refinance",operationId:"credit_agreement_refinance",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/refinance",idempotency:"required",principal:"api_key",summary:"Refinance a credit agreement"},{name:"credit_agreement.reschedule",operationId:"credit_agreement_reschedule",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/reschedule",idempotency:"required",principal:"api_key",summary:"Reschedule a credit agreement"},{name:"credit_agreement.retrieve",operationId:"credit_agreement_retrieve",method:"GET",path:"/v1/credit-agreements/{creditAgreementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a credit agreement"},{name:"credit_agreement.settle",operationId:"credit_agreement_settle",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/settle",idempotency:"required",principal:"api_key",summary:"Settle a credit agreement"},{name:"credit_agreement.update",operationId:"credit_agreement_update",method:"PATCH",path:"/v1/credit-agreements/{creditAgreementId}",idempotency:"required",principal:"api_key",summary:"Update a credit agreement"},{name:"credit_agreement.write_off",operationId:"credit_agreement_write_off",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/write-off",idempotency:"required",principal:"api_key",summary:"Write off a credit agreement"},{name:"credit_balance.list",operationId:"credit_balance_list",method:"GET",path:"/v1/credit-balances",idempotency:"not_required",principal:"api_key",summary:"List Credit balances"},{name:"credit_balance.retrieve",operationId:"credit_balance_retrieve",method:"GET",path:"/v1/credit-balances/{creditBalanceId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit balance"},{name:"credit_grant.list",operationId:"credit_grant_list",method:"GET",path:"/v1/credit-grants",idempotency:"not_required",principal:"api_key",summary:"List Credit grants"},{name:"credit_grant.retrieve",operationId:"credit_grant_retrieve",method:"GET",path:"/v1/credit-grants/{creditGrantId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit grant"},{name:"credit_ledger_entry.list",operationId:"credit_ledger_entry_list",method:"GET",path:"/v1/credit-ledger-entries",idempotency:"not_required",principal:"api_key",summary:"List Credit ledger"},{name:"credit_ledger_entry.retrieve",operationId:"credit_ledger_entry_retrieve",method:"GET",path:"/v1/credit-ledger-entries/{creditLedgerEntryId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit ledger entry"},{name:"credit_note.list",operationId:"credit_note_list",method:"GET",path:"/v1/credit-notes",idempotency:"not_required",principal:"api_key",summary:"List Credit notes"},{name:"credit_note.retrieve",operationId:"credit_note_retrieve",method:"GET",path:"/v1/credit-notes/{creditNoteId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit note"},{name:"credit_note_line.list",operationId:"credit_note_line_list",method:"GET",path:"/v1/credit-note-lines",idempotency:"not_required",principal:"api_key",summary:"List Credit note lines"},{name:"credit_note_line.retrieve",operationId:"credit_note_line_retrieve",method:"GET",path:"/v1/credit-note-lines/{creditNoteLineId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit note line"},{name:"customer.create",operationId:"customer_create",method:"POST",path:"/v1/customers",idempotency:"required",principal:"api_key",summary:"Create a customer"},{name:"customer.data.export",operationId:"customer_data_export",method:"GET",path:"/v1/customers/{customerId}/data-export",idempotency:"not_required",principal:"user_session",summary:"Export the customer's personal data"},{name:"customer.disable",operationId:"customer_disable",method:"POST",path:"/v1/customers/{customerId}/disable",idempotency:"required",principal:"user_session",summary:"Disable a customer"},{name:"customer.erase",operationId:"customer_erase",method:"POST",path:"/v1/customers/{customerId}/erase",idempotency:"required",principal:"user_session",summary:"Erase a customer (crypto-shred)"},{name:"customer.list",operationId:"customer_list",method:"GET",path:"/v1/customers",idempotency:"not_required",principal:"api_key",summary:"List Customers"},{name:"customer.login",operationId:"customer_login",method:"POST",path:"/v1/customer-identity/login",idempotency:"required",principal:"public",summary:"Log in an end customer to a product"},{name:"customer.logout",operationId:"customer_logout",method:"POST",path:"/v1/customer-identity/logout",idempotency:"required",principal:"customer_session",summary:"Log out the current end-customer session"},{name:"customer.reactivate",operationId:"customer_reactivate",method:"POST",path:"/v1/customers/{customerId}/reactivate",idempotency:"required",principal:"user_session",summary:"Reactivate a customer"},{name:"customer.retrieve",operationId:"customer_retrieve",method:"GET",path:"/v1/customers/{customerId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Customer"},{name:"customer.session.revoke",operationId:"customer_session_revoke",method:"POST",path:"/v1/customer-identity/sessions/{customerSessionId}/revoke",idempotency:"required",principal:"customer_session",summary:"Revoke one of the calling end customer's sessions"},{name:"customer.signup",operationId:"customer_signup",method:"POST",path:"/v1/customer-identity/signup",idempotency:"required",principal:"public",summary:"Sign up an end customer for a product"},{name:"customer.update",operationId:"customer_update",method:"PATCH",path:"/v1/customers/{customerId}",idempotency:"required",principal:"user_session",summary:"Update a customer"},{name:"customer_access.close",operationId:"customer_access_close",method:"POST",path:"/v1/customer-access/{customerAccessId}/close",idempotency:"required",principal:"api_key",summary:"Close customer access"},{name:"customer_access.create",operationId:"customer_access_create",method:"POST",path:"/v1/customer-access",idempotency:"required",principal:"user_session",summary:"Enroll a customer in a product"},{name:"customer_access.list",operationId:"customer_access_list",method:"GET",path:"/v1/customer-access",idempotency:"not_required",principal:"api_key",summary:"List Customer accesses"},{name:"customer_access.reactivate",operationId:"customer_access_reactivate",method:"POST",path:"/v1/customer-access/{customerAccessId}/reactivate",idempotency:"required",principal:"api_key",summary:"Reactivate customer access"},{name:"customer_access.retrieve",operationId:"customer_access_retrieve",method:"GET",path:"/v1/customer-access/{customerAccessId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Customer access"},{name:"customer_access.suspend",operationId:"customer_access_suspend",method:"POST",path:"/v1/customer-access/{customerAccessId}/suspend",idempotency:"required",principal:"api_key",summary:"Suspend customer access"},{name:"deposit.list",operationId:"deposit_list",method:"GET",path:"/v1/deposits",idempotency:"not_required",principal:"api_key",summary:"List Deposits"},{name:"deposit.retrieve",operationId:"deposit_retrieve",method:"GET",path:"/v1/deposits/{depositId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Deposit"},{name:"deposit_hold.cancel",operationId:"deposit_hold_cancel",method:"POST",path:"/v1/deposit-holds/{depositHoldId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a deposit hold"},{name:"deposit_hold.claim",operationId:"deposit_hold_claim",method:"POST",path:"/v1/deposit-holds/{depositHoldId}/claim",idempotency:"required",principal:"api_key",summary:"Claim a deposit hold"},{name:"deposit_hold.create",operationId:"deposit_hold_create",method:"POST",path:"/v1/deposit-holds",idempotency:"required",principal:"api_key",summary:"Create a deposit hold"},{name:"deposit_hold.fund",operationId:"deposit_hold_fund",method:"POST",path:"/v1/deposit-holds/{depositHoldId}/fund",idempotency:"required",principal:"api_key",summary:"Fund a deposit hold"},{name:"deposit_hold.list",operationId:"deposit_hold_list",method:"GET",path:"/v1/deposit-holds",idempotency:"not_required",principal:"api_key",summary:"List deposit holds"},{name:"deposit_hold.retrieve",operationId:"deposit_hold_retrieve",method:"GET",path:"/v1/deposit-holds/{depositHoldId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a deposit hold"},{name:"deposit_hold.return",operationId:"deposit_hold_return",method:"POST",path:"/v1/deposit-holds/{depositHoldId}/return",idempotency:"required",principal:"api_key",summary:"Return a deposit hold"},{name:"developer.log.list",operationId:"developer_log_list",method:"GET",path:"/v1/developer-logs",idempotency:"not_required",principal:"api_key",summary:"List developer logs"},{name:"developer.log.retrieve",operationId:"developer_log_retrieve",method:"GET",path:"/v1/developer-logs/{operationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a developer log"},{name:"entity.kyc.retrieve",operationId:"entity_kyc_retrieve",method:"GET",path:"/v1/entities/{entityId}/kyc",idempotency:"not_required",principal:"user_session",summary:"Retrieve an entity's KYC profile"},{name:"entity.kyc.submit",operationId:"entity_kyc_submit",method:"POST",path:"/v1/entities/{entityId}/kyc",idempotency:"required",principal:"user_session",summary:"Submit entity KYC profile fields"},{name:"entity.kyc.verification.start",operationId:"entity_kyc_verification_start",method:"POST",path:"/v1/entities/{entityId}/kyc/verify",idempotency:"required",principal:"user_session",summary:"Start entity KYC verification"},{name:"entity.update",operationId:"entity_update",method:"PATCH",path:"/v1/entities/{entityId}",idempotency:"required",principal:"user_session",summary:"Correct entity legal details"},{name:"escrow_order.cancel",operationId:"escrow_order_cancel",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel an escrow order"},{name:"escrow_order.collect_penalty",operationId:"escrow_order_collect_penalty",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/collect-penalty",idempotency:"required",principal:"api_key",summary:"Collect an escrow refund penalty"},{name:"escrow_order.create",operationId:"escrow_order_create",method:"POST",path:"/v1/escrow-orders",idempotency:"required",principal:"api_key",summary:"Create an escrow order"},{name:"escrow_order.dispute",operationId:"escrow_order_dispute",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/dispute",idempotency:"required",principal:"api_key",summary:"Dispute an escrow order"},{name:"escrow_order.fund",operationId:"escrow_order_fund",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/fund",idempotency:"required",principal:"api_key",summary:"Fund an escrow order"},{name:"escrow_order.list",operationId:"escrow_order_list",method:"GET",path:"/v1/escrow-orders",idempotency:"not_required",principal:"api_key",summary:"List escrow orders"},{name:"escrow_order.quote",operationId:"escrow_order_quote",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/quote",idempotency:"required",principal:"api_key",summary:"Quote an escrow refund"},{name:"escrow_order.refund",operationId:"escrow_order_refund",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/refund",idempotency:"required",principal:"api_key",summary:"Refund an escrow order"},{name:"escrow_order.release",operationId:"escrow_order_release",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/release",idempotency:"required",principal:"api_key",summary:"Release an escrow order"},{name:"escrow_order.resume",operationId:"escrow_order_resume",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/resume",idempotency:"required",principal:"api_key",summary:"Resume an escrow order"},{name:"escrow_order.retrieve",operationId:"escrow_order_retrieve",method:"GET",path:"/v1/escrow-orders/{escrowOrderId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an escrow order"},{name:"escrow_order.update",operationId:"escrow_order_update",method:"PATCH",path:"/v1/escrow-orders/{escrowOrderId}",idempotency:"required",principal:"api_key",summary:"Update an escrow order"},{name:"event.list",operationId:"event_list",method:"GET",path:"/v1/events",idempotency:"not_required",principal:"api_key",summary:"List events"},{name:"event.retrieve",operationId:"event_retrieve",method:"GET",path:"/v1/events/{eventId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an event"},{name:"expected_payment.cancel",operationId:"expected_payment_cancel",method:"POST",path:"/v1/expected-payments/{expectedPaymentId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel an expected payment"},{name:"expected_payment.create",operationId:"expected_payment_create",method:"POST",path:"/v1/expected-payments",idempotency:"required",principal:"api_key",summary:"Create an expected payment"},{name:"expected_payment.list",operationId:"expected_payment_list",method:"GET",path:"/v1/expected-payments",idempotency:"not_required",principal:"api_key",summary:"List Expected payments"},{name:"expected_payment.retrieve",operationId:"expected_payment_retrieve",method:"GET",path:"/v1/expected-payments/{expectedPaymentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Expected payment"},{name:"exposure_arrangement.approve",operationId:"exposure_arrangement_approve",method:"POST",path:"/v1/exposure-arrangements/{exposureArrangementId}/approve",idempotency:"required",principal:"api_key",summary:"Approve an exposure arrangement"},{name:"exposure_arrangement.close",operationId:"exposure_arrangement_close",method:"POST",path:"/v1/exposure-arrangements/{exposureArrangementId}/close",idempotency:"required",principal:"api_key",summary:"Close an exposure arrangement"},{name:"exposure_arrangement.create",operationId:"exposure_arrangement_create",method:"POST",path:"/v1/exposure-arrangements",idempotency:"required",principal:"api_key",summary:"Create an exposure arrangement"},{name:"exposure_arrangement.list",operationId:"exposure_arrangement_list",method:"GET",path:"/v1/exposure-arrangements",idempotency:"not_required",principal:"api_key",summary:"List exposure arrangements"},{name:"exposure_arrangement.reject",operationId:"exposure_arrangement_reject",method:"POST",path:"/v1/exposure-arrangements/{exposureArrangementId}/reject",idempotency:"required",principal:"api_key",summary:"Reject an exposure arrangement"},{name:"exposure_arrangement.retrieve",operationId:"exposure_arrangement_retrieve",method:"GET",path:"/v1/exposure-arrangements/{exposureArrangementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an exposure arrangement"},{name:"exposure_arrangement.update",operationId:"exposure_arrangement_update",method:"PATCH",path:"/v1/exposure-arrangements/{exposureArrangementId}",idempotency:"required",principal:"api_key",summary:"Update an exposure arrangement"},{name:"extension.list",operationId:"extension_list",method:"GET",path:"/v1/extensions",idempotency:"not_required",principal:"public",summary:"List catalog extensions"},{name:"external_confirmation.list",operationId:"external_confirmation_list",method:"GET",path:"/v1/external-confirmation",idempotency:"not_required",principal:"user_session",summary:"List External Confirmations"},{name:"external_confirmation.retrieve",operationId:"external_confirmation_retrieve",method:"GET",path:"/v1/external-confirmation/{externalConfirmationId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve an External Confirmation"},{name:"financial_address.create",operationId:"financial_address_create",method:"POST",path:"/v1/financial-addresses",idempotency:"required",principal:"api_key",summary:"Create a financial address"},{name:"financial_address.disable",operationId:"financial_address_disable",method:"POST",path:"/v1/financial-addresses/{financialAddressId}/disable",idempotency:"required",principal:"api_key",summary:"Disable a financial address"},{name:"financial_address.list",operationId:"financial_address_list",method:"GET",path:"/v1/financial-addresses",idempotency:"not_required",principal:"api_key",summary:"List Financial addresses"},{name:"financial_address.retrieve",operationId:"financial_address_retrieve",method:"GET",path:"/v1/financial-addresses/{financialAddressId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Financial address"},{name:"flight_booking.amend_collect",operationId:"flight_booking_amend_collect",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/amend-collect",idempotency:"required",principal:"api_key",summary:"Collect an amended fare increase"},{name:"flight_booking.amend_fee",operationId:"flight_booking_amend_fee",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/amend-fee",idempotency:"required",principal:"api_key",summary:"Collect a flight amendment fee"},{name:"flight_booking.amend_refund",operationId:"flight_booking_amend_refund",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/amend-refund",idempotency:"required",principal:"api_key",summary:"Refund an amended fare decrease"},{name:"flight_booking.cancel_confirm",operationId:"flight_booking_cancel_confirm",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/cancel-confirm",idempotency:"required",principal:"api_key",summary:"Confirm a flight booking cancellation"},{name:"flight_booking.cancel_quote",operationId:"flight_booking_cancel_quote",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/cancel-quote",idempotency:"required",principal:"api_key",summary:"Quote a flight booking cancellation"},{name:"flight_booking.collect_penalty",operationId:"flight_booking_collect_penalty",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/collect-penalty",idempotency:"required",principal:"api_key",summary:"Collect a flight cancellation penalty"},{name:"flight_booking.confirm",operationId:"flight_booking_confirm",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/confirm",idempotency:"required",principal:"api_key",summary:"Confirm a flight booking"},{name:"flight_booking.create",operationId:"flight_booking_create",method:"POST",path:"/v1/flight-bookings",idempotency:"required",principal:"api_key",summary:"Hold a flight booking"},{name:"flight_booking.list",operationId:"flight_booking_list",method:"GET",path:"/v1/flight-bookings",idempotency:"not_required",principal:"api_key",summary:"List flight bookings"},{name:"flight_booking.release",operationId:"flight_booking_release",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/release",idempotency:"required",principal:"api_key",summary:"Release a held flight booking"},{name:"flight_booking.retrieve",operationId:"flight_booking_retrieve",method:"GET",path:"/v1/flight-bookings/{flightBookingId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a flight booking"},{name:"flight_booking.update",operationId:"flight_booking_update",method:"PATCH",path:"/v1/flight-bookings/{flightBookingId}",idempotency:"required",principal:"api_key",summary:"Update a flight booking"},{name:"funded_settlement.accept",operationId:"funded_settlement_accept",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/accept",idempotency:"required",principal:"api_key",summary:"Accept instrument"},{name:"funded_settlement.cancel",operationId:"funded_settlement_cancel",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel instrument"},{name:"funded_settlement.close_refund",operationId:"funded_settlement_close_refund",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/close-refund",idempotency:"required",principal:"api_key",summary:"Close Refund instrument"},{name:"funded_settlement.close_release",operationId:"funded_settlement_close_release",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/close-release",idempotency:"required",principal:"api_key",summary:"Close Release instrument"},{name:"funded_settlement.create",operationId:"funded_settlement_create",method:"POST",path:"/v1/funded-settlements",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"funded_settlement.fund",operationId:"funded_settlement_fund",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/fund",idempotency:"required",principal:"api_key",summary:"Fund instrument"},{name:"funded_settlement.list",operationId:"funded_settlement_list",method:"GET",path:"/v1/funded-settlements",idempotency:"not_required",principal:"api_key",summary:"List funded settlements"},{name:"funded_settlement.prepare_refund",operationId:"funded_settlement_prepare_refund",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/prepare-refund",idempotency:"required",principal:"api_key",summary:"Prepare Refund instrument"},{name:"funded_settlement.prepare_release",operationId:"funded_settlement_prepare_release",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/prepare-release",idempotency:"required",principal:"api_key",summary:"Prepare Release instrument"},{name:"funded_settlement.record_funding_authority",operationId:"funded_settlement_record_funding_authority",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/record-funding-authority",idempotency:"required",principal:"api_key",summary:"Record Funding Authority instrument"},{name:"funded_settlement.refund",operationId:"funded_settlement_refund",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/refund",idempotency:"required",principal:"api_key",summary:"Refund instrument"},{name:"funded_settlement.release",operationId:"funded_settlement_release",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/release",idempotency:"required",principal:"api_key",summary:"Release instrument"},{name:"funded_settlement.retrieve",operationId:"funded_settlement_retrieve",method:"GET",path:"/v1/funded-settlements/{fundedSettlementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a funded settlement"},{name:"funding_commitment.create",operationId:"funding_commitment_create",method:"POST",path:"/v1/funding-commitments",idempotency:"required",principal:"api_key",summary:"Commit from the investor's original wallet"},{name:"funding_commitment.list",operationId:"funding_commitment_list",method:"GET",path:"/v1/funding-commitments",idempotency:"not_required",principal:"api_key",summary:"List funding commitments"},{name:"funding_commitment.retrieve",operationId:"funding_commitment_retrieve",method:"GET",path:"/v1/funding-commitments/{fundingCommitmentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a funding commitment"},{name:"funding_commitment.withdraw",operationId:"funding_commitment_withdraw",method:"POST",path:"/v1/funding-commitments/{fundingCommitmentId}/withdraw",idempotency:"required",principal:"api_key",summary:"Withdraw once before the round closes"},{name:"funding_round.close",operationId:"funding_round_close",method:"POST",path:"/v1/funding-rounds/{fundingRoundId}/close",idempotency:"required",principal:"api_key",summary:"Snapshot tickets and fund one obligation atomically"},{name:"funding_round.create",operationId:"funding_round_create",method:"POST",path:"/v1/funding-rounds",idempotency:"required",principal:"api_key",summary:"Open a round with immutable terms"},{name:"funding_round.list",operationId:"funding_round_list",method:"GET",path:"/v1/funding-rounds",idempotency:"not_required",principal:"api_key",summary:"List funding rounds"},{name:"funding_round.retrieve",operationId:"funding_round_retrieve",method:"GET",path:"/v1/funding-rounds/{fundingRoundId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a funding round"},{name:"held_settlement.abandon",operationId:"held_settlement_abandon",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/abandon",idempotency:"required",principal:"api_key",summary:"Abandon the hold before it is funded"},{name:"held_settlement.cancel",operationId:"held_settlement_cancel",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel the hold and return the held amount"},{name:"held_settlement.create",operationId:"held_settlement_create",method:"POST",path:"/v1/held-settlements",idempotency:"required",principal:"api_key",summary:"Open a held settlement"},{name:"held_settlement.dispute",operationId:"held_settlement_dispute",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/dispute",idempotency:"required",principal:"api_key",summary:"Dispute a held settlement settlement"},{name:"held_settlement.fund",operationId:"held_settlement_fund",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/fund",idempotency:"required",principal:"api_key",summary:"Fund the hold and collect the custody fee"},{name:"held_settlement.list",operationId:"held_settlement_list",method:"GET",path:"/v1/held-settlements",idempotency:"not_required",principal:"api_key",summary:"List held settlements"},{name:"held_settlement.release",operationId:"held_settlement_release",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/release",idempotency:"required",principal:"api_key",summary:"Release the hold to the payee early"},{name:"held_settlement.resume",operationId:"held_settlement_resume",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/resume",idempotency:"required",principal:"api_key",summary:"Resume a held settlement settlement"},{name:"held_settlement.retrieve",operationId:"held_settlement_retrieve",method:"GET",path:"/v1/held-settlements/{heldSettlementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a held settlement"},{name:"hotel_stay.amend_collect",operationId:"hotel_stay_amend_collect",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/amend-collect",idempotency:"required",principal:"api_key",summary:"Collect an amended rate increase"},{name:"hotel_stay.amend_fee",operationId:"hotel_stay_amend_fee",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/amend-fee",idempotency:"required",principal:"api_key",summary:"Collect a stay amendment fee"},{name:"hotel_stay.amend_refund",operationId:"hotel_stay_amend_refund",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/amend-refund",idempotency:"required",principal:"api_key",summary:"Refund an amended rate decrease"},{name:"hotel_stay.cancel_confirm",operationId:"hotel_stay_cancel_confirm",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/cancel-confirm",idempotency:"required",principal:"api_key",summary:"Confirm a hotel stay cancellation"},{name:"hotel_stay.cancel_quote",operationId:"hotel_stay_cancel_quote",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/cancel-quote",idempotency:"required",principal:"api_key",summary:"Quote a hotel stay cancellation"},{name:"hotel_stay.collect_penalty",operationId:"hotel_stay_collect_penalty",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/collect-penalty",idempotency:"required",principal:"api_key",summary:"Collect a hotel cancellation penalty"},{name:"hotel_stay.confirm",operationId:"hotel_stay_confirm",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/confirm",idempotency:"required",principal:"api_key",summary:"Confirm a hotel stay"},{name:"hotel_stay.create",operationId:"hotel_stay_create",method:"POST",path:"/v1/hotel-stays",idempotency:"required",principal:"api_key",summary:"Hold a hotel stay"},{name:"hotel_stay.list",operationId:"hotel_stay_list",method:"GET",path:"/v1/hotel-stays",idempotency:"not_required",principal:"api_key",summary:"List hotel stays"},{name:"hotel_stay.release",operationId:"hotel_stay_release",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/release",idempotency:"required",principal:"api_key",summary:"Release a held hotel stay"},{name:"hotel_stay.retrieve",operationId:"hotel_stay_retrieve",method:"GET",path:"/v1/hotel-stays/{hotelStayId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a hotel stay"},{name:"hotel_stay.update",operationId:"hotel_stay_update",method:"PATCH",path:"/v1/hotel-stays/{hotelStayId}",idempotency:"required",principal:"api_key",summary:"Update a hotel stay"},{name:"human_approval.approve",operationId:"human_approval_approve",method:"POST",path:"/v1/human-approval/requests/{approvalRequestId}/approve",idempotency:"required",principal:"user_session",summary:"Approve a human approval request"},{name:"human_approval.approver.list",operationId:"human_approval_approver_list",method:"GET",path:"/v1/human-approval/requests/{approvalRequestId}/approvers",idempotency:"not_required",principal:"api_key",summary:"List eligible approvers for a human approval request"},{name:"human_approval.cancel",operationId:"human_approval_cancel",method:"POST",path:"/v1/human-approval/requests/{approvalRequestId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a human approval request"},{name:"human_approval.expire",operationId:"human_approval_expire",method:"POST",path:"/v1/human-approval/expire",idempotency:"required",principal:"api_key",summary:"Expire overdue pending human approval requests"},{name:"human_approval.request.create",operationId:"human_approval_request_create",method:"POST",path:"/v1/human-approval/requests",idempotency:"required",principal:"api_key",summary:"Create a human approval request"},{name:"human_approval.request.list",operationId:"human_approval_request_list",method:"GET",path:"/v1/human-approval/requests",idempotency:"not_required",principal:"api_key",summary:"List human approval requests for the organization"},{name:"human_approval.request.retrieve",operationId:"human_approval_request_retrieve",method:"GET",path:"/v1/human-approval/requests/{approvalRequestId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a human approval request by ID"},{name:"human_approval.review.begin",operationId:"human_approval_review_begin",method:"POST",path:"/v1/human-approval/requests/{approvalRequestId}/review",idempotency:"required",principal:"user_session",summary:"Begin a browser human review ceremony"},{name:"installment.create",operationId:"installment_create",method:"POST",path:"/v1/installments",idempotency:"required",principal:"api_key",summary:"Schedule an installment"},{name:"installment.list",operationId:"installment_list",method:"GET",path:"/v1/installments",idempotency:"not_required",principal:"api_key",summary:"List installments"},{name:"installment.retrieve",operationId:"installment_retrieve",method:"GET",path:"/v1/installments/{installmentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an installment"},{name:"installment.update",operationId:"installment_update",method:"PATCH",path:"/v1/installments/{installmentId}",idempotency:"required",principal:"api_key",summary:"Update an installment"},{name:"installment.write_off",operationId:"installment_write_off",method:"POST",path:"/v1/installments/{installmentId}/write-off",idempotency:"required",principal:"api_key",summary:"Write off an installment"},{name:"internal_transfer.adjust",operationId:"internal_transfer_adjust",method:"POST",path:"/v1/internal-transfers/{originalTransferId}/adjust",idempotency:"required",principal:"api_key",summary:"Adjust a posted transfer"},{name:"internal_transfer.create",operationId:"internal_transfer_create",method:"POST",path:"/v1/internal-transfers",idempotency:"required",principal:"api_key",summary:"Create an internal transfer"},{name:"internal_transfer.list",operationId:"internal_transfer_list",method:"GET",path:"/v1/internal-transfers",idempotency:"not_required",principal:"api_key",summary:"List Internal Transfers"},{name:"internal_transfer.post",operationId:"internal_transfer_post",method:"POST",path:"/v1/internal-transfers/{transferId}/post",idempotency:"required",principal:"api_key",summary:"Post a reserved transfer"},{name:"internal_transfer.reserve",operationId:"internal_transfer_reserve",method:"POST",path:"/v1/internal-transfers/reserve",idempotency:"required",principal:"api_key",summary:"Reserve an internal transfer"},{name:"internal_transfer.retrieve",operationId:"internal_transfer_retrieve",method:"GET",path:"/v1/internal-transfers/{transferId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Internal Transfer"},{name:"internal_transfer.reverse",operationId:"internal_transfer_reverse",method:"POST",path:"/v1/internal-transfers/{originalTransferId}/reverse",idempotency:"required",principal:"api_key",summary:"Reverse a posted transfer in full"},{name:"internal_transfer.void",operationId:"internal_transfer_void",method:"POST",path:"/v1/internal-transfers/{transferId}/void",idempotency:"required",principal:"api_key",summary:"Void a reserved transfer"},{name:"invoice.list",operationId:"invoice_list",method:"GET",path:"/v1/invoices",idempotency:"not_required",principal:"api_key",summary:"List Invoices"},{name:"invoice.preview",operationId:"invoice_preview",method:"GET",path:"/v1/invoices/preview",idempotency:"not_required",principal:"user_session",summary:"Preview an invoice"},{name:"invoice.retrieve",operationId:"invoice_retrieve",method:"GET",path:"/v1/invoices/{invoiceId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Invoice"},{name:"invoice_line.list",operationId:"invoice_line_list",method:"GET",path:"/v1/invoice-lines",idempotency:"not_required",principal:"api_key",summary:"List Invoice lines"},{name:"invoice_line.retrieve",operationId:"invoice_line_retrieve",method:"GET",path:"/v1/invoice-lines/{invoiceLineId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Invoice line"},{name:"kyc.requirements.retrieve",operationId:"kyc_requirements_retrieve",method:"GET",path:"/v1/kyc/requirements",idempotency:"not_required",principal:"public",summary:"Retrieve KYC tier requirements"},{name:"lender_distribution.create",operationId:"lender_distribution_create",method:"POST",path:"/v1/lender-distributions",idempotency:"required",principal:"api_key",summary:"Claim a lender's share of an agreement's repayments"},{name:"lender_distribution.list",operationId:"lender_distribution_list",method:"GET",path:"/v1/lender-distributions",idempotency:"not_required",principal:"api_key",summary:"List lender distributions"},{name:"lender_distribution.retrieve",operationId:"lender_distribution_retrieve",method:"GET",path:"/v1/lender-distributions/{lenderDistributionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a lender distribution"},{name:"listing.create",operationId:"listing_create",method:"POST",path:"/v1/listings",idempotency:"required",principal:"api_key",summary:"Draft a listing"},{name:"listing.list",operationId:"listing_list",method:"GET",path:"/v1/listings",idempotency:"not_required",principal:"api_key",summary:"List listings"},{name:"listing.publish",operationId:"listing_publish",method:"POST",path:"/v1/listings/{listingId}/publish",idempotency:"required",principal:"api_key",summary:"Publish a listing"},{name:"listing.reopen",operationId:"listing_reopen",method:"POST",path:"/v1/listings/{listingId}/reopen",idempotency:"required",principal:"api_key",summary:"Reopen a listing"},{name:"listing.reserve",operationId:"listing_reserve",method:"POST",path:"/v1/listings/{listingId}/reserve",idempotency:"required",principal:"api_key",summary:"Reserve a listing"},{name:"listing.retrieve",operationId:"listing_retrieve",method:"GET",path:"/v1/listings/{listingId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a listing"},{name:"listing.sell",operationId:"listing_sell",method:"POST",path:"/v1/listings/{listingId}/sell",idempotency:"required",principal:"api_key",summary:"Sell a listing"},{name:"listing.update",operationId:"listing_update",method:"PATCH",path:"/v1/listings/{listingId}",idempotency:"required",principal:"api_key",summary:"Update a listing"},{name:"listing.withdraw",operationId:"listing_withdraw",method:"POST",path:"/v1/listings/{listingId}/withdraw",idempotency:"required",principal:"api_key",summary:"Withdraw a listing"},{name:"meter_period_snapshot.list",operationId:"meter_period_snapshot_list",method:"GET",path:"/v1/meter-period-snapshots",idempotency:"not_required",principal:"api_key",summary:"List Meter period snapshots"},{name:"meter_period_snapshot.retrieve",operationId:"meter_period_snapshot_retrieve",method:"GET",path:"/v1/meter-period-snapshots/{meterPeriodSnapshotId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Meter period snapshot"},{name:"motor_policy.bind",operationId:"motor_policy_bind",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/bind",idempotency:"required",principal:"api_key",summary:"Bind a motor policy"},{name:"motor_policy.cancel",operationId:"motor_policy_cancel",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a quoted motor policy"},{name:"motor_policy.create",operationId:"motor_policy_create",method:"POST",path:"/v1/motor-policies",idempotency:"required",principal:"api_key",summary:"Quote a motor policy"},{name:"motor_policy.deny_claim",operationId:"motor_policy_deny_claim",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/deny-claim",idempotency:"required",principal:"api_key",summary:"Deny a motor claim"},{name:"motor_policy.list",operationId:"motor_policy_list",method:"GET",path:"/v1/motor-policies",idempotency:"not_required",principal:"api_key",summary:"List motor policies"},{name:"motor_policy.open_claim",operationId:"motor_policy_open_claim",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/open-claim",idempotency:"required",principal:"api_key",summary:"Open a motor claim"},{name:"motor_policy.retrieve",operationId:"motor_policy_retrieve",method:"GET",path:"/v1/motor-policies/{motorPolicyId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a motor policy"},{name:"motor_policy.settle_claim",operationId:"motor_policy_settle_claim",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/settle-claim",idempotency:"required",principal:"api_key",summary:"Settle a motor claim"},{name:"motor_policy.update",operationId:"motor_policy_update",method:"PATCH",path:"/v1/motor-policies/{motorPolicyId}",idempotency:"required",principal:"api_key",summary:"Update a motor policy"},{name:"operation.list",operationId:"operation_list",method:"GET",path:"/v1/operations",idempotency:"not_required",principal:"api_key",summary:"List Operations"},{name:"operation.retrieve",operationId:"operation_retrieve",method:"GET",path:"/v1/operations/{operationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Operation"},{name:"order.cancel",operationId:"order_cancel",method:"POST",path:"/v1/orders/{orderId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel an order"},{name:"order.confirm",operationId:"order_confirm",method:"POST",path:"/v1/orders/{orderId}/confirm",idempotency:"required",principal:"api_key",summary:"Confirm an order"},{name:"order.create",operationId:"order_create",method:"POST",path:"/v1/orders",idempotency:"required",principal:"api_key",summary:"Create an order"},{name:"order.fulfill",operationId:"order_fulfill",method:"POST",path:"/v1/orders/{orderId}/fulfill",idempotency:"required",principal:"api_key",summary:"Fulfill an order"},{name:"order.list",operationId:"order_list",method:"GET",path:"/v1/orders",idempotency:"not_required",principal:"api_key",summary:"List orders"},{name:"order.retrieve",operationId:"order_retrieve",method:"GET",path:"/v1/orders/{orderId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an order"},{name:"order.update",operationId:"order_update",method:"PATCH",path:"/v1/orders/{orderId}",idempotency:"required",principal:"api_key",summary:"Update an order"},{name:"payout.create",operationId:"payout_create",method:"POST",path:"/v1/payouts",idempotency:"required",principal:"api_key",summary:"Create a payout"},{name:"payout.list",operationId:"payout_list",method:"GET",path:"/v1/payouts",idempotency:"not_required",principal:"api_key",summary:"List Payouts"},{name:"payout.retrieve",operationId:"payout_retrieve",method:"GET",path:"/v1/payouts/{payoutId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Payout"},{name:"payout_run.cancel",operationId:"payout_run_cancel",method:"POST",path:"/v1/payout-runs/{payoutRunId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a payout run"},{name:"payout_run.create",operationId:"payout_run_create",method:"POST",path:"/v1/payout-runs",idempotency:"required",principal:"api_key",summary:"Schedule a payout run"},{name:"payout_run.list",operationId:"payout_run_list",method:"GET",path:"/v1/payout-runs",idempotency:"not_required",principal:"api_key",summary:"List payout runs"},{name:"payout_run.retrieve",operationId:"payout_run_retrieve",method:"GET",path:"/v1/payout-runs/{payoutRunId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a payout run"},{name:"payout_run.update",operationId:"payout_run_update",method:"PATCH",path:"/v1/payout-runs/{payoutRunId}",idempotency:"required",principal:"api_key",summary:"Update a payout run"},{name:"payout_run.withhold",operationId:"payout_run_withhold",method:"POST",path:"/v1/payout-runs/{payoutRunId}/withhold",idempotency:"required",principal:"api_key",summary:"Withhold from a payout run"},{name:"personal_access_token.create",operationId:"personal_access_token_create",method:"POST",path:"/v1/personal-access-tokens",idempotency:"required",principal:"user_session",summary:"Create a personal access token"},{name:"personal_access_token.current",operationId:"personal_access_token_current",method:"GET",path:"/v1/personal-access-tokens/current",idempotency:"not_required",principal:"user_session",summary:"Describe the personal access token making this request"},{name:"personal_access_token.list",operationId:"personal_access_token_list",method:"GET",path:"/v1/personal-access-tokens",idempotency:"not_required",principal:"user_session",summary:"List personal access tokens for the caller's Company"},{name:"personal_access_token.login_grant.create",operationId:"personal_access_token_login_grant_create",method:"POST",path:"/v1/personal-access-token-login-grants",idempotency:"required",principal:"user_session",summary:"Create a CLI login grant"},{name:"personal_access_token.login_grant.exchange",operationId:"personal_access_token_login_grant_exchange",method:"POST",path:"/v1/personal-access-token-login-grants/exchange",idempotency:"required",principal:"public",summary:"Exchange a CLI login grant"},{name:"personal_access_token.revoke",operationId:"personal_access_token_revoke",method:"POST",path:"/v1/personal-access-tokens/{personalAccessTokenId}/revoke",idempotency:"required",principal:"user_session",summary:"Revoke a personal access token"},{name:"policy.bind",operationId:"policy_bind",method:"POST",path:"/v1/policies/{policyId}/bind",idempotency:"required",principal:"api_key",summary:"Bind a policy"},{name:"policy.cancel",operationId:"policy_cancel",method:"POST",path:"/v1/policies/{policyId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a policy"},{name:"policy.confirm_refund",operationId:"policy_confirm_refund",method:"POST",path:"/v1/policies/{policyId}/confirm-refund",idempotency:"required",principal:"api_key",summary:"Confirm active policy refund"},{name:"policy.create",operationId:"policy_create",method:"POST",path:"/v1/policies",idempotency:"required",principal:"api_key",summary:"Quote a policy"},{name:"policy.endorse",operationId:"policy_endorse",method:"POST",path:"/v1/policies/{policyId}/endorse",idempotency:"required",principal:"api_key",summary:"Endorse a policy"},{name:"policy.list",operationId:"policy_list",method:"GET",path:"/v1/policies",idempotency:"not_required",principal:"api_key",summary:"List policies"},{name:"policy.preview",operationId:"policy_preview",method:"POST",path:"/v1/policies/{policyId}/preview",idempotency:"required",principal:"api_key",summary:"Preview policy cancellation"},{name:"policy.quote_refund",operationId:"policy_quote_refund",method:"POST",path:"/v1/policies/{policyId}/quote-refund",idempotency:"required",principal:"api_key",summary:"Quote active policy refund"},{name:"policy.retrieve",operationId:"policy_retrieve",method:"GET",path:"/v1/policies/{policyId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a policy"},{name:"policy.update",operationId:"policy_update",method:"PATCH",path:"/v1/policies/{policyId}",idempotency:"required",principal:"api_key",summary:"Update a policy"},{name:"policy.withdraw",operationId:"policy_withdraw",method:"POST",path:"/v1/policies/{policyId}/withdraw",idempotency:"required",principal:"api_key",summary:"Withdraw a policy quote"},{name:"premium_claim.approve",operationId:"premium_claim_approve",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/approve",idempotency:"required",principal:"api_key",summary:"Approve instrument"},{name:"premium_claim.assess",operationId:"premium_claim_assess",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/assess",idempotency:"required",principal:"api_key",summary:"Assess instrument"},{name:"premium_claim.attest",operationId:"premium_claim_attest",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/attest",idempotency:"required",principal:"api_key",summary:"Attest instrument"},{name:"premium_claim.create",operationId:"premium_claim_create",method:"POST",path:"/v1/premium-claims",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"premium_claim.deny",operationId:"premium_claim_deny",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/deny",idempotency:"required",principal:"api_key",summary:"Deny instrument"},{name:"premium_claim.list",operationId:"premium_claim_list",method:"GET",path:"/v1/premium-claims",idempotency:"not_required",principal:"api_key",summary:"List premium claims"},{name:"premium_claim.pay",operationId:"premium_claim_pay",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/pay",idempotency:"required",principal:"api_key",summary:"Pay instrument"},{name:"premium_claim.record_authority",operationId:"premium_claim_record_authority",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/record-authority",idempotency:"required",principal:"api_key",summary:"Record Authority instrument"},{name:"premium_claim.retrieve",operationId:"premium_claim_retrieve",method:"GET",path:"/v1/premium-claims/{premiumClaimId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a premium claim"},{name:"premium_claim.reverse",operationId:"premium_claim_reverse",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/reverse",idempotency:"required",principal:"api_key",summary:"Reverse instrument"},{name:"premium_cover.attest",operationId:"premium_cover_attest",method:"POST",path:"/v1/premium-covers/{premiumCoverId}/attest",idempotency:"required",principal:"api_key",summary:"Attest instrument"},{name:"premium_cover.bind",operationId:"premium_cover_bind",method:"POST",path:"/v1/premium-covers/{premiumCoverId}/bind",idempotency:"required",principal:"api_key",summary:"Bind instrument"},{name:"premium_cover.cancel",operationId:"premium_cover_cancel",method:"POST",path:"/v1/premium-covers/{premiumCoverId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel instrument"},{name:"premium_cover.create",operationId:"premium_cover_create",method:"POST",path:"/v1/premium-covers",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"premium_cover.lapse",operationId:"premium_cover_lapse",method:"POST",path:"/v1/premium-covers/{premiumCoverId}/lapse",idempotency:"required",principal:"api_key",summary:"Lapse instrument"},{name:"premium_cover.list",operationId:"premium_cover_list",method:"GET",path:"/v1/premium-covers",idempotency:"not_required",principal:"api_key",summary:"List premium covers"},{name:"premium_cover.retrieve",operationId:"premium_cover_retrieve",method:"GET",path:"/v1/premium-covers/{premiumCoverId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a premium cover"},{name:"premium_slice.collect",operationId:"premium_slice_collect",method:"POST",path:"/v1/premium-slices/{premiumSliceId}/collect",idempotency:"required",principal:"api_key",summary:"Collect instrument"},{name:"premium_slice.create",operationId:"premium_slice_create",method:"POST",path:"/v1/premium-slices",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"premium_slice.list",operationId:"premium_slice_list",method:"GET",path:"/v1/premium-slices",idempotency:"not_required",principal:"api_key",summary:"List premium slices"},{name:"premium_slice.refund",operationId:"premium_slice_refund",method:"POST",path:"/v1/premium-slices/{premiumSliceId}/refund",idempotency:"required",principal:"api_key",summary:"Refund instrument"},{name:"premium_slice.retrieve",operationId:"premium_slice_retrieve",method:"GET",path:"/v1/premium-slices/{premiumSliceId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a premium slice"},{name:"priced_borrower_limit.approve",operationId:"priced_borrower_limit_approve",method:"POST",path:"/v1/priced-borrower-limits/{pricedBorrowerLimitId}/approve",idempotency:"required",principal:"api_key",summary:"Approve the limit"},{name:"priced_borrower_limit.close",operationId:"priced_borrower_limit_close",method:"POST",path:"/v1/priced-borrower-limits/{pricedBorrowerLimitId}/close",idempotency:"required",principal:"api_key",summary:"Close the limit without moving money"},{name:"priced_borrower_limit.create",operationId:"priced_borrower_limit_create",method:"POST",path:"/v1/priced-borrower-limits",idempotency:"required",principal:"api_key",summary:"Propose a bound limit"},{name:"priced_borrower_limit.list",operationId:"priced_borrower_limit_list",method:"GET",path:"/v1/priced-borrower-limits",idempotency:"not_required",principal:"api_key",summary:"List priced borrower limits"},{name:"priced_borrower_limit.retrieve",operationId:"priced_borrower_limit_retrieve",method:"GET",path:"/v1/priced-borrower-limits/{pricedBorrowerLimitId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced borrower limit"},{name:"priced_borrower_limit.update",operationId:"priced_borrower_limit_update",method:"PATCH",path:"/v1/priced-borrower-limits/{pricedBorrowerLimitId}",idempotency:"required",principal:"api_key",summary:"Update a priced borrower limit"},{name:"priced_collections_case.assign",operationId:"priced_collections_case_assign",method:"POST",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}/assign",idempotency:"required",principal:"api_key",summary:"Ask the licensed agency to accept this referral"},{name:"priced_collections_case.create",operationId:"priced_collections_case_create",method:"POST",path:"/v1/priced-collections-cases",idempotency:"required",principal:"api_key",summary:"Refer an overdue slice without creating another debt"},{name:"priced_collections_case.list",operationId:"priced_collections_case_list",method:"GET",path:"/v1/priced-collections-cases",idempotency:"not_required",principal:"api_key",summary:"List priced collections cases"},{name:"priced_collections_case.recall",operationId:"priced_collections_case_recall",method:"POST",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}/recall",idempotency:"required",principal:"api_key",summary:"Recall the referral without moving money"},{name:"priced_collections_case.recover",operationId:"priced_collections_case_recover",method:"POST",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}/recover",idempotency:"required",principal:"api_key",summary:"Recover instrument"},{name:"priced_collections_case.retrieve",operationId:"priced_collections_case_retrieve",method:"GET",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced collections case"},{name:"priced_collections_case.return_uncollected",operationId:"priced_collections_case_return_uncollected",method:"POST",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}/return-uncollected",idempotency:"required",principal:"api_key",summary:"Record an unsuccessful referral without forgiving the debt"},{name:"priced_contact_attempt.create",operationId:"priced_contact_attempt_create",method:"POST",path:"/v1/priced-contact-attempts",idempotency:"required",principal:"api_key",summary:"Bind contact evidence to the assigned case and its exact debt"},{name:"priced_contact_attempt.list",operationId:"priced_contact_attempt_list",method:"GET",path:"/v1/priced-contact-attempts",idempotency:"not_required",principal:"api_key",summary:"List priced contact attempts"},{name:"priced_contact_attempt.retrieve",operationId:"priced_contact_attempt_retrieve",method:"GET",path:"/v1/priced-contact-attempts/{pricedContactAttemptId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced contact attempt"},{name:"priced_contact_attempt.void",operationId:"priced_contact_attempt_void",method:"POST",path:"/v1/priced-contact-attempts/{pricedContactAttemptId}/void",idempotency:"required",principal:"api_key",summary:"Void mistaken contact evidence without deleting it"},{name:"priced_installment.complete",operationId:"priced_installment_complete",method:"POST",path:"/v1/priced-installments/{pricedInstallmentId}/complete",idempotency:"required",principal:"api_key",summary:"Close the slice only after its principal and profit have paid exactly"},{name:"priced_installment.create",operationId:"priced_installment_create",method:"POST",path:"/v1/priced-installments",idempotency:"required",principal:"api_key",summary:"Schedule a slice before disbursement freezes the schedule"},{name:"priced_installment.list",operationId:"priced_installment_list",method:"GET",path:"/v1/priced-installments",idempotency:"not_required",principal:"api_key",summary:"List priced installments"},{name:"priced_installment.retrieve",operationId:"priced_installment_retrieve",method:"GET",path:"/v1/priced-installments/{pricedInstallmentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced installment"},{name:"priced_installment_payment.create",operationId:"priced_installment_payment_create",method:"POST",path:"/v1/priced-installment-payments",idempotency:"required",principal:"api_key",summary:"Bind a payment to one live slice and its obligation"},{name:"priced_installment_payment.list",operationId:"priced_installment_payment_list",method:"GET",path:"/v1/priced-installment-payments",idempotency:"not_required",principal:"api_key",summary:"List priced installment payments"},{name:"priced_installment_payment.repay",operationId:"priced_installment_payment_repay",method:"POST",path:"/v1/priced-installment-payments/{pricedInstallmentPaymentId}/repay",idempotency:"required",principal:"api_key",summary:"Allocate the identified payment to outstanding debt in the authored order"},{name:"priced_installment_payment.retrieve",operationId:"priced_installment_payment_retrieve",method:"GET",path:"/v1/priced-installment-payments/{pricedInstallmentPaymentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced installment payment"},{name:"priced_obligation.complete",operationId:"priced_obligation_complete",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/complete",idempotency:"required",principal:"api_key",summary:"Close only after all dated slices have paid exactly"},{name:"priced_obligation.create",operationId:"priced_obligation_create",method:"POST",path:"/v1/priced-obligations",idempotency:"required",principal:"api_key",summary:"Bind the signed terms and approved limits"},{name:"priced_obligation.disburse",operationId:"priced_obligation_disburse",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/disburse",idempotency:"required",principal:"api_key",summary:"Disburse the exact principal once after all slices exist"},{name:"priced_obligation.list",operationId:"priced_obligation_list",method:"GET",path:"/v1/priced-obligations",idempotency:"not_required",principal:"api_key",summary:"List priced obligations"},{name:"priced_obligation.payoff",operationId:"priced_obligation_payoff",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/payoff",idempotency:"required",principal:"api_key",summary:"Payoff instrument"},{name:"priced_obligation.record_authority",operationId:"priced_obligation_record_authority",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/record-authority",idempotency:"required",principal:"api_key",summary:"Record Authority instrument"},{name:"priced_obligation.record_write_off_authority",operationId:"priced_obligation_record_write_off_authority",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/record-write-off-authority",idempotency:"required",principal:"api_key",summary:"Record Write Off Authority instrument"},{name:"priced_obligation.retrieve",operationId:"priced_obligation_retrieve",method:"GET",path:"/v1/priced-obligations/{pricedObligationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced obligation"},{name:"priced_obligation.write_off",operationId:"priced_obligation_write_off",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/write-off",idempotency:"required",principal:"api_key",summary:"Stop future collections without moving or refunding cash"},{name:"priced_portfolio_limit.approve",operationId:"priced_portfolio_limit_approve",method:"POST",path:"/v1/priced-portfolio-limits/{pricedPortfolioLimitId}/approve",idempotency:"required",principal:"api_key",summary:"Approve the limit"},{name:"priced_portfolio_limit.close",operationId:"priced_portfolio_limit_close",method:"POST",path:"/v1/priced-portfolio-limits/{pricedPortfolioLimitId}/close",idempotency:"required",principal:"api_key",summary:"Close the limit without moving money"},{name:"priced_portfolio_limit.create",operationId:"priced_portfolio_limit_create",method:"POST",path:"/v1/priced-portfolio-limits",idempotency:"required",principal:"api_key",summary:"Propose a bound limit"},{name:"priced_portfolio_limit.list",operationId:"priced_portfolio_limit_list",method:"GET",path:"/v1/priced-portfolio-limits",idempotency:"not_required",principal:"api_key",summary:"List priced portfolio limits"},{name:"priced_portfolio_limit.retrieve",operationId:"priced_portfolio_limit_retrieve",method:"GET",path:"/v1/priced-portfolio-limits/{pricedPortfolioLimitId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced portfolio limit"},{name:"product.activation.retrieve",operationId:"product_activation_retrieve",method:"GET",path:"/v1/products/{productId}/activation",idempotency:"not_required",principal:"api_key",summary:"Retrieve product activation readiness and cost"},{name:"product.balance_sheet.retrieve",operationId:"product_balance_sheet_retrieve",method:"GET",path:"/v1/products/{productId}/balance-sheet",idempotency:"not_required",principal:"api_key",summary:"Retrieve the product balance sheet"},{name:"product.build.kit.download",operationId:"product_build_kit_download",method:"POST",path:"/v1/products/{productId}/build/kit/downloads",idempotency:"required",principal:"user_session",summary:"Prepare a Hyperscale Kit download"},{name:"product.build.kit.retrieve",operationId:"product_build_kit_retrieve",method:"GET",path:"/v1/products/{productId}/build/kit",idempotency:"not_required",principal:"user_session",summary:"Retrieve the Hyperscale Kit manifest for a product build"},{name:"product.build.retrieve",operationId:"product_build_retrieve",method:"GET",path:"/v1/products/{productId}/build",idempotency:"not_required",principal:"user_session",summary:"Retrieve product setup details"},{name:"product.capability.retire",operationId:"product_capability_retire",method:"POST",path:"/v1/product-capabilities/{productCapabilityId}/retire",idempotency:"required",principal:"user_session",summary:"Retire a product capability"},{name:"product.capability.unretire",operationId:"product_capability_unretire",method:"POST",path:"/v1/product-capabilities/{productCapabilityId}/unretire",idempotency:"required",principal:"user_session",summary:"Unretire a product capability"},{name:"product.close",operationId:"product_close",method:"POST",path:"/v1/products/{productId}/close",idempotency:"required",principal:"user_session",summary:"Close a product"},{name:"product.desk.execute",operationId:"product_desk_execute",method:"POST",path:"/v1/products/{productId}/desk/execute",idempotency:"required",principal:"user_session",summary:"Execute an internal transfer or reservation from the product desk"},{name:"product.dials.configure",operationId:"product_dials_configure",method:"POST",path:"/v1/products/{productId}/dials",idempotency:"required",principal:"api_key",summary:"Configure a product dial"},{name:"product.dials.retrieve",operationId:"product_dials_retrieve",method:"GET",path:"/v1/products/{productId}/dials",idempotency:"not_required",principal:"api_key",summary:"Retrieve configured product dials"},{name:"product.disable",operationId:"product_disable",method:"POST",path:"/v1/products/{productId}/disable",idempotency:"required",principal:"user_session",summary:"Disable a product"},{name:"product.earn.rate.list",operationId:"product_earn_rate_list",method:"GET",path:"/v1/products/{productId}/earn-rates",idempotency:"not_required",principal:"api_key",summary:"List product earn rates"},{name:"product.earn.rate.set",operationId:"product_earn_rate_set",method:"POST",path:"/v1/products/{productId}/earn-rates",idempotency:"required",principal:"api_key",summary:"Configure a product earn rate"},{name:"product.earnings.settle",operationId:"product_earnings_settle",method:"POST",path:"/v1/products/{productId}/earnings/settlements",idempotency:"required",principal:"api_key",summary:"Settle product earnings"},{name:"product.guidance.retrieve",operationId:"product_guidance_retrieve",method:"GET",path:"/v1/products/{productId}/guidance",idempotency:"not_required",principal:"api_key",summary:"Retrieve deterministic product guidance"},{name:"product.instruments.compose",operationId:"product_instruments_compose",method:"POST",path:"/v1/products/instruments-compose",idempotency:"required",principal:"user_session",summary:"Create a Product from HSX source or business instruments"},{name:"product.list",operationId:"product_list",method:"GET",path:"/v1/products",idempotency:"not_required",principal:"api_key",summary:"List your Products"},{name:"product.margin.retrieve",operationId:"product_margin_retrieve",method:"GET",path:"/v1/products/{productId}/margin",idempotency:"not_required",principal:"api_key",summary:"Retrieve the product margin view"},{name:"product.operation_set.retrieve",operationId:"product_operation_set_retrieve",method:"GET",path:"/v1/products/{productId}/operation-set",idempotency:"not_required",principal:"api_key",summary:"Retrieve a product's frozen operation set"},{name:"product.primitives.create",operationId:"product_primitives_create",method:"POST",path:"/v1/products/primitives-create",idempotency:"required",principal:"user_session",summary:"Create a Product from horizontal primitives"},{name:"product.reactivate",operationId:"product_reactivate",method:"POST",path:"/v1/products/{productId}/reactivate",idempotency:"required",principal:"user_session",summary:"Reactivate a product"},{name:"product.recompose",operationId:"product_recompose",method:"POST",path:"/v1/products/recompose",idempotency:"required",principal:"user_session",summary:"Recompose a Product around a new instrument set"},{name:"product.retrieve",operationId:"product_retrieve",method:"GET",path:"/v1/products/{productId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Product"},{name:"product.treasury.provision",operationId:"product_treasury_provision",method:"POST",path:"/v1/products/{productId}/treasury/provision",idempotency:"required",principal:"api_key",summary:"Provision product treasury accounts"},{name:"product.treasury.retrieve",operationId:"product_treasury_retrieve",method:"GET",path:"/v1/products/{productId}/treasury",idempotency:"not_required",principal:"api_key",summary:"Retrieve product treasury balances"},{name:"product.update",operationId:"product_update",method:"PATCH",path:"/v1/products/{productId}",idempotency:"required",principal:"api_key",summary:"Rename a product"},{name:"product_capability.list",operationId:"product_capability_list",method:"GET",path:"/v1/product-capabilities",idempotency:"not_required",principal:"user_session",summary:"List Product capabilities"},{name:"product_capability.retrieve",operationId:"product_capability_retrieve",method:"GET",path:"/v1/product-capabilities/{productCapabilityId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Product capability"},{name:"receipt.list",operationId:"receipt_list",method:"GET",path:"/v1/receipts",idempotency:"not_required",principal:"api_key",summary:"List Receipts"},{name:"receipt.retrieve",operationId:"receipt_retrieve",method:"GET",path:"/v1/receipts/{receiptId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Receipt"},{name:"reporting_artifact.list",operationId:"reporting_artifact_list",method:"GET",path:"/v1/reporting-artifacts",idempotency:"not_required",principal:"user_session",summary:"List Reporting artifacts"},{name:"reporting_artifact.retrieve",operationId:"reporting_artifact_retrieve",method:"GET",path:"/v1/reporting-artifacts/{reportingArtifactId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Reporting artifact"},{name:"sale_settlement.abandon",operationId:"sale_settlement_abandon",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/abandon",idempotency:"required",principal:"api_key",summary:"Abandon an unfunded sale settlement"},{name:"sale_settlement.cancel",operationId:"sale_settlement_cancel",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a sale settlement"},{name:"sale_settlement.collect_service_fee",operationId:"sale_settlement_collect_service_fee",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/collect-service-fee",idempotency:"required",principal:"api_key",summary:"Collect the sale settlement service fee"},{name:"sale_settlement.confirm_handover",operationId:"sale_settlement_confirm_handover",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/confirm-handover",idempotency:"required",principal:"api_key",summary:"Confirm handover of a sale settlement"},{name:"sale_settlement.create",operationId:"sale_settlement_create",method:"POST",path:"/v1/sale-settlements",idempotency:"required",principal:"api_key",summary:"Create a sale settlement"},{name:"sale_settlement.fund_piece",operationId:"sale_settlement_fund_piece",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/fund-piece",idempotency:"required",principal:"api_key",summary:"Fund a piece of a sale settlement"},{name:"sale_settlement.list",operationId:"sale_settlement_list",method:"GET",path:"/v1/sale-settlements",idempotency:"not_required",principal:"api_key",summary:"List sale settlements"},{name:"sale_settlement.refund_piece",operationId:"sale_settlement_refund_piece",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/refund-piece",idempotency:"required",principal:"api_key",summary:"Refund a piece of a sale settlement"},{name:"sale_settlement.release_piece",operationId:"sale_settlement_release_piece",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/release-piece",idempotency:"required",principal:"api_key",summary:"Release a piece of a sale settlement"},{name:"sale_settlement.retrieve",operationId:"sale_settlement_retrieve",method:"GET",path:"/v1/sale-settlements/{saleSettlementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a sale settlement"},{name:"sale_settlement.unfund_piece",operationId:"sale_settlement_unfund_piece",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/unfund-piece",idempotency:"required",principal:"api_key",summary:"Unfund a piece of a sale settlement"},{name:"sandbox.account.fund",operationId:"sandbox_account_fund",method:"POST",path:"/v1/sandbox/account-funding",idempotency:"required",principal:"api_key",summary:"Fund a sandbox account"},{name:"sandbox.beneficiary.accept",operationId:"sandbox_beneficiary_accept",method:"POST",path:"/v1/sandbox/beneficiaries/{beneficiaryId}/accept",idempotency:"required",principal:"api_key",summary:"Accept and activate a sandbox beneficiary at the sponsor bank"},{name:"sandbox.clock.advance",operationId:"sandbox_clock_advance",method:"POST",path:"/v1/sandbox/clock/advance",idempotency:"required",principal:"api_key",summary:"Advance the sandbox Product clock"},{name:"sandbox.customer.onboard",operationId:"sandbox_customer_onboard",method:"POST",path:"/v1/sandbox/customer-onboarding",idempotency:"required",principal:"api_key",summary:"Create a sandbox customer with cleared KYC"},{name:"sandbox.customer_access.activate",operationId:"sandbox_customer_access_activate",method:"POST",path:"/v1/sandbox/customer-access/{customerAccessId}/activate",idempotency:"required",principal:"api_key",summary:"Activate sandbox customer access"},{name:"sandbox.platform.fire",operationId:"sandbox_platform_fire",method:"POST",path:"/v1/sandbox/platform/fire",idempotency:"required",principal:"api_key",summary:"Run a Product platform action in sandbox"},{name:"sandbox_bank_credit.request",operationId:"sandbox_bank_credit_request",method:"POST",path:"/v1/sandbox-bank-credits",idempotency:"required",principal:"api_key",summary:"Queue a sandbox bank credit"},{name:"savings_circle.close",operationId:"savings_circle_close",method:"POST",path:"/v1/savings-circles/{savingsCircleId}/close",idempotency:"required",principal:"api_key",summary:"Close a completed circle"},{name:"savings_circle.create",operationId:"savings_circle_create",method:"POST",path:"/v1/savings-circles",idempotency:"required",principal:"api_key",summary:"Form a savings circle"},{name:"savings_circle.disband",operationId:"savings_circle_disband",method:"POST",path:"/v1/savings-circles/{savingsCircleId}/disband",idempotency:"required",principal:"api_key",summary:"Disband a forming circle"},{name:"savings_circle.list",operationId:"savings_circle_list",method:"GET",path:"/v1/savings-circles",idempotency:"not_required",principal:"api_key",summary:"List savings circles"},{name:"savings_circle.retrieve",operationId:"savings_circle_retrieve",method:"GET",path:"/v1/savings-circles/{savingsCircleId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a savings circle"},{name:"share_allocation.cancel",operationId:"share_allocation_cancel",method:"POST",path:"/v1/share-allocations/{shareAllocationId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a share allocation"},{name:"share_allocation.create",operationId:"share_allocation_create",method:"POST",path:"/v1/share-allocations",idempotency:"required",principal:"api_key",summary:"Subscribe to shares"},{name:"share_allocation.list",operationId:"share_allocation_list",method:"GET",path:"/v1/share-allocations",idempotency:"not_required",principal:"api_key",summary:"List share allocations"},{name:"share_allocation.retrieve",operationId:"share_allocation_retrieve",method:"GET",path:"/v1/share-allocations/{shareAllocationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a share allocation"},{name:"share_allocation.settle",operationId:"share_allocation_settle",method:"POST",path:"/v1/share-allocations/{shareAllocationId}/settle",idempotency:"required",principal:"api_key",summary:"Settle a share allocation"},{name:"share_offering.close",operationId:"share_offering_close",method:"POST",path:"/v1/share-offerings/{shareOfferingId}/close",idempotency:"required",principal:"api_key",summary:"Close a share offering"},{name:"share_offering.create",operationId:"share_offering_create",method:"POST",path:"/v1/share-offerings",idempotency:"required",principal:"api_key",summary:"Draft a share offering"},{name:"share_offering.list",operationId:"share_offering_list",method:"GET",path:"/v1/share-offerings",idempotency:"not_required",principal:"api_key",summary:"List share offerings"},{name:"share_offering.publish",operationId:"share_offering_publish",method:"POST",path:"/v1/share-offerings/{shareOfferingId}/publish",idempotency:"required",principal:"api_key",summary:"Publish a share offering"},{name:"share_offering.retrieve",operationId:"share_offering_retrieve",method:"GET",path:"/v1/share-offerings/{shareOfferingId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a share offering"},{name:"subject.create",operationId:"subject_create",method:"POST",path:"/v1/subjects",idempotency:"required",principal:"api_key",summary:"Create a subject"},{name:"subject.list",operationId:"subject_list",method:"GET",path:"/v1/subjects",idempotency:"not_required",principal:"api_key",summary:"List Subjects"},{name:"subject.retrieve",operationId:"subject_retrieve",method:"GET",path:"/v1/subjects/{subjectId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Subject"},{name:"subject_kind.create",operationId:"subject_kind_create",method:"POST",path:"/v1/subject-kinds",idempotency:"required",principal:"user_session",summary:"Register a subject kind"},{name:"subject_kind.list",operationId:"subject_kind_list",method:"GET",path:"/v1/subject-kinds",idempotency:"not_required",principal:"api_key",summary:"List registered subject kinds"},{name:"support.booking.cancel",operationId:"support_booking_cancel",method:"POST",path:"/v1/support/bookings/{bookingId}/cancel",idempotency:"required",principal:"user_session",summary:"Cancel a support booking"},{name:"support.booking.request",operationId:"support_booking_request",method:"POST",path:"/v1/support/bookings",idempotency:"required",principal:"user_session",summary:"Book a video-call session with support"},{name:"support.ticket.close",operationId:"support_ticket_close",method:"POST",path:"/v1/support/tickets/{ticketId}/close",idempotency:"required",principal:"user_session",summary:"Close a support ticket"},{name:"support.ticket.message.post",operationId:"support_ticket_message_post",method:"POST",path:"/v1/support/tickets/{ticketId}/messages",idempotency:"required",principal:"user_session",summary:"Reply on a support ticket"},{name:"support.ticket.open",operationId:"support_ticket_open",method:"POST",path:"/v1/support/tickets",idempotency:"required",principal:"user_session",summary:"Open a support ticket"},{name:"support_booking.list",operationId:"support_booking_list",method:"GET",path:"/v1/support-bookings",idempotency:"not_required",principal:"user_session",summary:"List Support bookings"},{name:"support_booking.retrieve",operationId:"support_booking_retrieve",method:"GET",path:"/v1/support-bookings/{supportBookingId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Support booking"},{name:"support_plan_selection.list",operationId:"support_plan_selection_list",method:"GET",path:"/v1/support-plan-selections",idempotency:"not_required",principal:"user_session",summary:"List Support plans"},{name:"support_plan_selection.retrieve",operationId:"support_plan_selection_retrieve",method:"GET",path:"/v1/support-plan-selections/{supportPlanSelectionId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Support plan"},{name:"support_ticket.list",operationId:"support_ticket_list",method:"GET",path:"/v1/support-tickets",idempotency:"not_required",principal:"user_session",summary:"List Support tickets"},{name:"support_ticket.retrieve",operationId:"support_ticket_retrieve",method:"GET",path:"/v1/support-tickets/{supportTicketId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Support ticket"},{name:"support_ticket_message.list",operationId:"support_ticket_message_list",method:"GET",path:"/v1/support-ticket-messages",idempotency:"not_required",principal:"user_session",summary:"List Support messages"},{name:"support_ticket_message.retrieve",operationId:"support_ticket_message_retrieve",method:"GET",path:"/v1/support-ticket-messages/{supportTicketMessageId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Support message"},{name:"system.health",operationId:"system_health",method:"GET",path:"/v1/health",idempotency:"not_required",principal:"public",summary:"Check API health"},{name:"team.member.invite",operationId:"team_member_invite",method:"POST",path:"/v1/team/members/invite",idempotency:"required",principal:"user_session",summary:"Invite an email address to the caller's team"},{name:"team.member.invite.revoke",operationId:"team_member_invite_revoke",method:"POST",path:"/v1/team/members/invitations/{invitationId}/revoke",idempotency:"required",principal:"user_session",summary:"Revoke a pending team invitation"},{name:"team.member.list",operationId:"team_member_list",method:"GET",path:"/v1/team/members",idempotency:"not_required",principal:"user_session",summary:"List the caller's team members and pending invitations"},{name:"team.member.mfa.reset",operationId:"team_member_mfa_reset",method:"POST",path:"/v1/team/members/{userId}/mfa/reset",idempotency:"required",principal:"user_session",summary:"Reset another team member's lost MFA factor"},{name:"team.member.remove",operationId:"team_member_remove",method:"POST",path:"/v1/team/members/{userId}/remove",idempotency:"required",principal:"user_session",summary:"Remove a member from the caller's team"},{name:"team.member.role.update",operationId:"team_member_role_update",method:"POST",path:"/v1/team/members/{userId}/role",idempotency:"required",principal:"user_session",summary:"Change a team member's role"},{name:"team.role.create",operationId:"team_role_create",method:"POST",path:"/v1/team/roles",idempotency:"required",principal:"user_session",summary:"Create a custom team role"},{name:"team.role.delete",operationId:"team_role_delete",method:"POST",path:"/v1/team/roles/{roleId}/delete",idempotency:"required",principal:"user_session",summary:"Delete an unused custom role"},{name:"team.role.list",operationId:"team_role_list",method:"GET",path:"/v1/team/roles",idempotency:"not_required",principal:"user_session",summary:"List the caller's custom team roles"},{name:"team.role.update",operationId:"team_role_update",method:"POST",path:"/v1/team/roles/{roleId}",idempotency:"required",principal:"user_session",summary:"Rename a custom role or change its permissions"},{name:"tenant.activation_requirements.retrieve",operationId:"tenant_activation_requirements_retrieve",method:"GET",path:"/v1/tenants/{tenantId}/activation-requirements",idempotency:"not_required",principal:"user_session",summary:"Retrieve organization activation requirements"},{name:"tenant.bank_connection.configure",operationId:"tenant_bank_connection_configure",method:"POST",path:"/v1/tenants/{tenantId}/bank-connection",idempotency:"required",principal:"user_session",summary:"Configure the organization's bank connection"},{name:"tenant.bank_connection.test",operationId:"tenant_bank_connection_test",method:"POST",path:"/v1/tenants/{tenantId}/bank-connection/tests",idempotency:"required",principal:"user_session",summary:"Test the organization's bank connection"},{name:"tenant.bank_onboarding.submit",operationId:"tenant_bank_onboarding_submit",method:"POST",path:"/v1/tenants/{tenantId}/bank-onboarding-submissions",idempotency:"required",principal:"user_session",summary:"Submit verified organization details for bank onboarding"},{name:"tenant.list",operationId:"tenant_list",method:"GET",path:"/v1/tenants",idempotency:"not_required",principal:"user_session",summary:"List Companies"},{name:"tenant.retrieve",operationId:"tenant_retrieve",method:"GET",path:"/v1/tenants/{tenantId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Company"},{name:"tenant.safeguarding.retrieve",operationId:"tenant_safeguarding_retrieve",method:"GET",path:"/v1/treasury/safeguarding",idempotency:"not_required",principal:"user_session",summary:"Retrieve safeguarding standing per master"},{name:"tenant.security.configure",operationId:"tenant_security_configure",method:"POST",path:"/v1/tenant/security",idempotency:"required",principal:"user_session",summary:"Configure the organization security policy"},{name:"tenant.settlement_iban.set",operationId:"tenant_settlement_iban_set",method:"POST",path:"/v1/treasury/settlement-iban",idempotency:"required",principal:"user_session",summary:"Set the organization settlement IBAN"},{name:"tenant.treasury.retrieve",operationId:"tenant_treasury_retrieve",method:"GET",path:"/v1/treasury",idempotency:"not_required",principal:"user_session",summary:"Retrieve the organization treasury"},{name:"tenant.treasury.statements.retrieve",operationId:"tenant_treasury_statements_retrieve",method:"GET",path:"/v1/treasury/statements",idempotency:"not_required",principal:"user_session",summary:"Retrieve the organization treasury statement window"},{name:"tenant.update",operationId:"tenant_update",method:"PATCH",path:"/v1/tenants/{tenantId}",idempotency:"required",principal:"user_session",summary:"Rename the organization"},{name:"tenant_bank_connection.list",operationId:"tenant_bank_connection_list",method:"GET",path:"/v1/tenant-bank-connections",idempotency:"not_required",principal:"user_session",summary:"List Bank connections"},{name:"tenant_bank_connection.retrieve",operationId:"tenant_bank_connection_retrieve",method:"GET",path:"/v1/tenant-bank-connections/{tenantBankConnectionId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Bank connection"},{name:"trade_settlement.abandon",operationId:"trade_settlement_abandon",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/abandon",idempotency:"required",principal:"api_key",summary:"Abandon the trade before its atomic funding batch"},{name:"trade_settlement.cancel",operationId:"trade_settlement_cancel",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel and refund both funded trade sides atomically"},{name:"trade_settlement.create",operationId:"trade_settlement_create",method:"POST",path:"/v1/trade-settlements",idempotency:"required",principal:"api_key",summary:"Create a two-party trade settlement"},{name:"trade_settlement.dispute",operationId:"trade_settlement_dispute",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/dispute",idempotency:"required",principal:"api_key",summary:"Claw back the whole released trade before maturity"},{name:"trade_settlement.fund",operationId:"trade_settlement_fund",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/fund",idempotency:"required",principal:"api_key",summary:"Fund both trade sides and collect both custody fees atomically"},{name:"trade_settlement.list",operationId:"trade_settlement_list",method:"GET",path:"/v1/trade-settlements",idempotency:"not_required",principal:"api_key",summary:"List trade settlements"},{name:"trade_settlement.release",operationId:"trade_settlement_release",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/release",idempotency:"required",principal:"api_key",summary:"Reserve both trade payouts for the clawback window"},{name:"trade_settlement.retrieve",operationId:"trade_settlement_retrieve",method:"GET",path:"/v1/trade-settlements/{tradeSettlementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a trade settlement"},{name:"transfer_return.create",operationId:"transfer_return_create",method:"POST",path:"/v1/transfer-returns",idempotency:"required",principal:"api_key",summary:"Initiate a transfer return"},{name:"travel_package.cancel",operationId:"travel_package_cancel",method:"POST",path:"/v1/travel-packages/{travelPackageId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a booked travel package"},{name:"travel_package.complete",operationId:"travel_package_complete",method:"POST",path:"/v1/travel-packages/{travelPackageId}/complete",idempotency:"required",principal:"api_key",summary:"Complete a delivered travel package"},{name:"travel_package.confirm",operationId:"travel_package_confirm",method:"POST",path:"/v1/travel-packages/{travelPackageId}/confirm",idempotency:"required",principal:"api_key",summary:"Confirm a travel package"},{name:"travel_package.create",operationId:"travel_package_create",method:"POST",path:"/v1/travel-packages",idempotency:"required",principal:"api_key",summary:"Draft a travel package"},{name:"travel_package.list",operationId:"travel_package_list",method:"GET",path:"/v1/travel-packages",idempotency:"not_required",principal:"api_key",summary:"List travel packages"},{name:"travel_package.retrieve",operationId:"travel_package_retrieve",method:"GET",path:"/v1/travel-packages/{travelPackageId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a travel package"},{name:"trust_evidence.attach",operationId:"trust_evidence_attach",method:"POST",path:"/v1/trust-reviews/{trustReviewId}/evidence",idempotency:"required",principal:"user_session",summary:"Attach trust evidence"},{name:"trust_evidence.list",operationId:"trust_evidence_list",method:"GET",path:"/v1/trust-review-evidence",idempotency:"not_required",principal:"api_key",summary:"List Trust Review evidence"},{name:"trust_evidence.retrieve",operationId:"trust_evidence_retrieve",method:"GET",path:"/v1/trust-review-evidence/{trustEvidenceId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve Trust Review evidence"},{name:"trust_requirement.list",operationId:"trust_requirement_list",method:"GET",path:"/v1/trust-requirements",idempotency:"not_required",principal:"api_key",summary:"List Trust Review requirements"},{name:"trust_requirement.respond",operationId:"trust_requirement_respond",method:"POST",path:"/v1/trust-requirements/{trustRequirementId}/respond",idempotency:"required",principal:"api_key",summary:"Respond to a trust requirement"},{name:"trust_requirement.retrieve",operationId:"trust_requirement_retrieve",method:"GET",path:"/v1/trust-requirements/{trustRequirementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Trust Review requirement"},{name:"trust_review.create",operationId:"trust_review_create",method:"POST",path:"/v1/trust-reviews",idempotency:"required",principal:"user_session",summary:"Create a trust review"},{name:"trust_review.list",operationId:"trust_review_list",method:"GET",path:"/v1/trust-reviews",idempotency:"not_required",principal:"api_key",summary:"List Trust reviews"},{name:"trust_review.retrieve",operationId:"trust_review_retrieve",method:"GET",path:"/v1/trust-reviews/{trustReviewId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Trust review"},{name:"trust_review.submit",operationId:"trust_review_submit",method:"POST",path:"/v1/trust-reviews/{trustReviewId}/submit",idempotency:"required",principal:"user_session",summary:"Submit a trust review"},{name:"usage_record.list",operationId:"usage_record_list",method:"GET",path:"/v1/usage-records",idempotency:"not_required",principal:"api_key",summary:"List Usage records"},{name:"usage_record.retrieve",operationId:"usage_record_retrieve",method:"GET",path:"/v1/usage-records/{usageRecordId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Usage record"},{name:"user.email.verification.confirm",operationId:"user_email_verification_confirm",method:"POST",path:"/v1/identity/email-verification/confirm",idempotency:"required",principal:"public",summary:"Confirm a Hyperscale email address from its verification link"},{name:"user.email.verification.request",operationId:"user_email_verification_request",method:"POST",path:"/v1/identity/email-verification/request",idempotency:"required",principal:"user_session",summary:"Mail a fresh email verification link to the current user"},{name:"user.login",operationId:"user_login",method:"POST",path:"/v1/identity/login",idempotency:"required",principal:"public",summary:"Log in a Hyperscale user"},{name:"user.login.mfa.verify",operationId:"user_login_mfa_verify",method:"POST",path:"/v1/identity/login/mfa/verify",idempotency:"required",principal:"public",summary:"Complete a Hyperscale MFA login challenge"},{name:"user.logout",operationId:"user_logout",method:"POST",path:"/v1/identity/logout",idempotency:"required",principal:"user_session",summary:"Log out the current Hyperscale user session"},{name:"user.mfa.recovery_codes.list",operationId:"user_mfa_recovery_codes_list",method:"GET",path:"/v1/identity/mfa/recovery-codes",idempotency:"not_required",principal:"user_session",summary:"Count your remaining MFA recovery codes"},{name:"user.mfa.recovery_codes.regenerate",operationId:"user_mfa_recovery_codes_regenerate",method:"POST",path:"/v1/identity/mfa/recovery-codes/regenerate",idempotency:"required",principal:"user_session",summary:"Replace your MFA recovery codes"},{name:"user.mfa.totp.disable",operationId:"user_mfa_totp_disable",method:"POST",path:"/v1/identity/mfa/totp/disable",idempotency:"required",principal:"user_session",summary:"Disable the current Hyperscale user's active TOTP factor"},{name:"user.mfa.totp.enrollment.begin",operationId:"user_mfa_totp_enrollment_begin",method:"POST",path:"/v1/identity/mfa/totp/enrollment/begin",idempotency:"required",principal:"user_session",summary:"Begin TOTP enrollment for the current Hyperscale user"},{name:"user.mfa.totp.enrollment.confirm",operationId:"user_mfa_totp_enrollment_confirm",method:"POST",path:"/v1/identity/mfa/totp/enrollment/confirm",idempotency:"required",principal:"user_session",summary:"Confirm TOTP enrollment with a first valid code"},{name:"user.password.reset.confirm",operationId:"user_password_reset_confirm",method:"POST",path:"/v1/identity/password-reset/confirm",idempotency:"required",principal:"public",summary:"Confirm a Hyperscale password reset"},{name:"user.password.reset.request",operationId:"user_password_reset_request",method:"POST",path:"/v1/identity/password-reset/request",idempotency:"required",principal:"public",summary:"Request a Hyperscale password reset email"},{name:"user.session.handoff.create",operationId:"user_session_handoff_create",method:"POST",path:"/v1/identity/sessions/handoff",idempotency:"required",principal:"user_session",summary:"Create a session handoff code for host transition"},{name:"user.session.handoff.exchange",operationId:"user_session_handoff_exchange",method:"POST",path:"/v1/identity/sessions/handoff/exchange",idempotency:"required",principal:"public",summary:"Exchange a session handoff code for a new session on target host"},{name:"user.session.list",operationId:"user_session_list",method:"GET",path:"/v1/identity/sessions",idempotency:"not_required",principal:"user_session",summary:"List active Hyperscale user sessions"},{name:"user.session.revoke",operationId:"user_session_revoke",method:"POST",path:"/v1/identity/sessions/{sessionId}/revoke",idempotency:"required",principal:"user_session",summary:"Revoke a Hyperscale user session by id"},{name:"user.signup",operationId:"user_signup",method:"POST",path:"/v1/identity/signup",idempotency:"required",principal:"public",summary:"Sign up a Hyperscale user and create their team"},{name:"vehicle_escrow.collect_penalty",operationId:"vehicle_escrow_collect_penalty",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/collect-penalty",idempotency:"required",principal:"api_key",summary:"Collect a vehicle cancellation penalty"},{name:"vehicle_escrow.confirm_cancel",operationId:"vehicle_escrow_confirm_cancel",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/confirm-cancel",idempotency:"required",principal:"api_key",summary:"Confirm a vehicle escrow cancellation"},{name:"vehicle_escrow.create",operationId:"vehicle_escrow_create",method:"POST",path:"/v1/vehicle-escrows",idempotency:"required",principal:"api_key",summary:"Create a vehicle escrow"},{name:"vehicle_escrow.fund",operationId:"vehicle_escrow_fund",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/fund",idempotency:"required",principal:"api_key",summary:"Fund a vehicle escrow"},{name:"vehicle_escrow.list",operationId:"vehicle_escrow_list",method:"GET",path:"/v1/vehicle-escrows",idempotency:"not_required",principal:"api_key",summary:"List vehicle escrows"},{name:"vehicle_escrow.quote_cancel",operationId:"vehicle_escrow_quote_cancel",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/quote-cancel",idempotency:"required",principal:"api_key",summary:"Quote a vehicle escrow cancellation"},{name:"vehicle_escrow.release",operationId:"vehicle_escrow_release",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/release",idempotency:"required",principal:"api_key",summary:"Release a vehicle escrow"},{name:"vehicle_escrow.retrieve",operationId:"vehicle_escrow_retrieve",method:"GET",path:"/v1/vehicle-escrows/{vehicleEscrowId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a vehicle escrow"},{name:"vehicle_escrow.update",operationId:"vehicle_escrow_update",method:"PATCH",path:"/v1/vehicle-escrows/{vehicleEscrowId}",idempotency:"required",principal:"api_key",summary:"Update a vehicle escrow"},{name:"vehicle_listing.complete",operationId:"vehicle_listing_complete",method:"POST",path:"/v1/vehicle-listings/{vehicleListingId}/complete",idempotency:"required",principal:"api_key",summary:"Complete a vehicle listing sale"},{name:"vehicle_listing.create",operationId:"vehicle_listing_create",method:"POST",path:"/v1/vehicle-listings",idempotency:"required",principal:"api_key",summary:"Create a vehicle listing"},{name:"vehicle_listing.delist",operationId:"vehicle_listing_delist",method:"POST",path:"/v1/vehicle-listings/{vehicleListingId}/delist",idempotency:"required",principal:"api_key",summary:"Delist a vehicle listing"},{name:"vehicle_listing.list",operationId:"vehicle_listing_list",method:"GET",path:"/v1/vehicle-listings",idempotency:"not_required",principal:"api_key",summary:"List vehicle listings"},{name:"vehicle_listing.reserve",operationId:"vehicle_listing_reserve",method:"POST",path:"/v1/vehicle-listings/{vehicleListingId}/reserve",idempotency:"required",principal:"api_key",summary:"Reserve a vehicle listing"},{name:"vehicle_listing.retrieve",operationId:"vehicle_listing_retrieve",method:"GET",path:"/v1/vehicle-listings/{vehicleListingId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a vehicle listing"},{name:"vehicle_listing.unreserve",operationId:"vehicle_listing_unreserve",method:"POST",path:"/v1/vehicle-listings/{vehicleListingId}/unreserve",idempotency:"required",principal:"api_key",summary:"Return a reserved vehicle listing to the market"},{name:"vehicle_listing.update",operationId:"vehicle_listing_update",method:"PATCH",path:"/v1/vehicle-listings/{vehicleListingId}",idempotency:"required",principal:"api_key",summary:"Update a vehicle listing"},{name:"wallet.activate",operationId:"wallet_activate",method:"POST",path:"/v1/wallets/{walletId}/activate",idempotency:"required",principal:"api_key",summary:"Activate a wallet"},{name:"wallet.close",operationId:"wallet_close",method:"POST",path:"/v1/wallets/{walletId}/close",idempotency:"required",principal:"api_key",summary:"Close a wallet"},{name:"wallet.create",operationId:"wallet_create",method:"POST",path:"/v1/wallets",idempotency:"required",principal:"api_key",summary:"Create a wallet"},{name:"wallet.freeze",operationId:"wallet_freeze",method:"POST",path:"/v1/wallets/{walletId}/freeze",idempotency:"required",principal:"api_key",summary:"Freeze a wallet"},{name:"wallet.list",operationId:"wallet_list",method:"GET",path:"/v1/wallets",idempotency:"not_required",principal:"api_key",summary:"List wallets"},{name:"wallet.retrieve",operationId:"wallet_retrieve",method:"GET",path:"/v1/wallets/{walletId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a wallet"},{name:"wallet.topup",operationId:"wallet_topup",method:"POST",path:"/v1/wallets/{walletId}/topup",idempotency:"required",principal:"api_key",summary:"Top up a wallet"},{name:"wallet.unfreeze",operationId:"wallet_unfreeze",method:"POST",path:"/v1/wallets/{walletId}/unfreeze",idempotency:"required",principal:"api_key",summary:"Unfreeze a wallet"},{name:"wallet.update",operationId:"wallet_update",method:"PATCH",path:"/v1/wallets/{walletId}",idempotency:"required",principal:"api_key",summary:"Update a wallet"},{name:"wallet.withdraw",operationId:"wallet_withdraw",method:"POST",path:"/v1/wallets/{walletId}/withdraw",idempotency:"required",principal:"api_key",summary:"Withdraw from a wallet"},{name:"wallet_spend.create",operationId:"wallet_spend_create",method:"POST",path:"/v1/wallet-spends",idempotency:"required",principal:"api_key",summary:"Create a wallet spend"},{name:"wallet_spend.list",operationId:"wallet_spend_list",method:"GET",path:"/v1/wallet-spends",idempotency:"not_required",principal:"api_key",summary:"List wallet spends"},{name:"wallet_spend.post",operationId:"wallet_spend_post",method:"POST",path:"/v1/wallet-spends/{walletSpendId}/post",idempotency:"required",principal:"api_key",summary:"Post a wallet spend"},{name:"wallet_spend.refund",operationId:"wallet_spend_refund",method:"POST",path:"/v1/wallet-spends/{walletSpendId}/refund",idempotency:"required",principal:"api_key",summary:"Refund a wallet spend"},{name:"wallet_spend.retrieve",operationId:"wallet_spend_retrieve",method:"GET",path:"/v1/wallet-spends/{walletSpendId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a wallet spend"},{name:"webhook.delivery.list",operationId:"webhook_delivery_list",method:"GET",path:"/v1/webhook-endpoints/{webhookEndpointId}/deliveries",idempotency:"not_required",principal:"api_key",summary:"List webhook deliveries"},{name:"webhook.delivery.resend",operationId:"webhook_delivery_resend",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/deliveries/{webhookDeliveryId}/resend",idempotency:"required",principal:"api_key",summary:"Resend a webhook delivery"},{name:"webhook.endpoint.create",operationId:"webhook_endpoint_create",method:"POST",path:"/v1/webhook-endpoints",idempotency:"required",principal:"api_key",summary:"Create a webhook endpoint"},{name:"webhook.endpoint.delete",operationId:"webhook_endpoint_delete",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/delete",idempotency:"required",principal:"api_key",summary:"Delete a webhook endpoint"},{name:"webhook.endpoint.disable",operationId:"webhook_endpoint_disable",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/disable",idempotency:"required",principal:"api_key",summary:"Disable a webhook endpoint"},{name:"webhook.endpoint.enable",operationId:"webhook_endpoint_enable",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/enable",idempotency:"required",principal:"api_key",summary:"Enable a webhook endpoint"},{name:"webhook.endpoint.list",operationId:"webhook_endpoint_list",method:"GET",path:"/v1/webhook-endpoints",idempotency:"not_required",principal:"api_key",summary:"List webhook endpoints"},{name:"webhook.endpoint.recover",operationId:"webhook_endpoint_recover",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/recover",idempotency:"required",principal:"api_key",summary:"Recover webhook deliveries"},{name:"webhook.endpoint.retrieve",operationId:"webhook_endpoint_retrieve",method:"GET",path:"/v1/webhook-endpoints/{webhookEndpointId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a webhook endpoint"},{name:"webhook.endpoint.secret.rotate",operationId:"webhook_endpoint_secret_rotate",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/secret/rotate",idempotency:"required",principal:"api_key",summary:"Rotate a webhook endpoint signing secret"},{name:"webhook.endpoint.update",operationId:"webhook_endpoint_update",method:"PATCH",path:"/v1/webhook-endpoints/{webhookEndpointId}",idempotency:"required",principal:"api_key",summary:"Update a webhook endpoint"}]};var S={wordmark:"HYPERSCALE",columns:80,accent:{truecolour:[45,75,242],ansi16:34},strong:1,dim:2,reset:0,foregroundReset:39,weightReset:22,rule:"-",policy:{requireTTY:!0,honourNoColor:!0,json:"plain",nonTTY:"plain"}};var j="\x1B",ze="\x07",$t=new RegExp(`[${j}](?:\\[[0-?]*[ -/]*[@-~]|\\][^${ze}${j}]*(?:${ze}|${j}\\\\)|[PX^_][^${j}]*${j}\\\\|.)|[^\\P{Cc}\\t\\n\\r]`,"gu");function Ke(e){return String(e??"").replace($t,"")}function w(e,t,r){let i=!!e?.isTTY&&t?.NO_COLOR===void 0&&!r?.json,n=(p,d)=>y=>{let u=Ke(y);return i?`${p}${u}${d}`:u},a=p=>`${j}[${p}m`,o=t&&"COLORTERM"in t?t.COLORTERM:void 0,s=o==="truecolor"||o==="24bit"?`38;2;${S.accent.truecolour.join(";")}`:S.accent.ansi16,c=n(a(S.dim),a(S.weightReset));return{accent:n(a(s),a(S.foregroundReset)),strong:n(a(S.strong),a(S.weightReset)),dim:c,rule:p=>{let d=Number.isFinite(p)?Math.min(S.columns,Math.max(0,Math.floor(p))):S.columns;return c(S.rule.repeat(d))},text:Ke}}var b={wordmark:"HYPERSCALE",tagline:"For the company you have in mind.",viewBox:"0 0 32 32",strokeWidth:.32,paths:["M16 3.5L28.5 9.75V22.25L16 28.5L3.5 22.25V9.75Z","M3.5 9.75L16 16L28.5 9.75","M16 16V28.5","M16 5L24 9V17L16 21L8 17V9Z","M8 9L16 13L24 9","M16 13V21","M16 7L20 9V13L16 15L12 13V9Z","M12 9L16 11L20 9","M16 11V15"],wordmarkWeight:200,wordmarkTracking:"0.055em",strokeOffsetPx:1,wordmarkGapRatio:.25,construction:{slope:"1/2",halfWidths:[12.5,8,4],centres:[[16,16],[16,13],[16,11]],visibleVertexConnections:0,projection:"Three solid isometric cubes, each drawn as its silhouette and front edges, nesting toward the top corner. The outer cube is centred on the master; the middle and inner cubes sit higher so each rests inside the one before. No connecting edges."},sizeRule:{minimumPx:24,cubeCount:3,detailReduction:!1,description:"Keep all three cubes at every size of 24px or above."}};var mi=[b.paths[0],b.paths[1],b.paths[2],b.paths[3],b.paths[4],b.paths[5],b.paths[6],b.paths[7],b.paths[8]],li=b.strokeOffsetPx+b.strokeWidth;var _e=b.wordmark,ui=`${_e}\u2122`;var Me=b.tagline;function Je(e){return[e.strong(_e),"",Me,"",e.accent("Run hyperscale auth login to sign in.")].join(`
|
|
3
|
-
`)}function
|
|
2
|
+
import{spawn as it}from"node:child_process";import{createHash as Gt}from"node:crypto";import{createServer as Nt}from"node:http";import{createInterface as Ht}from"node:readline/promises";import{chmod as ve,mkdir as Ut,readdir as Dt,readFile as F,rename as Bt,unlink as zt,writeFile as Kt}from"node:fs/promises";import{homedir as Yt}from"node:os";import{basename as Mt,dirname as ke,join as pe}from"node:path";var he={"x-generated":"Generated by the Hyperscale artifact pipeline; do not edit by hand",schemaVersion:1,commands:[{name:"account.balance.retrieve",operationId:"account_balance_retrieve",method:"GET",path:"/v1/accounts/{accountId}/balance",idempotency:"not_required",principal:"api_key",summary:"Retrieve an account balance"},{name:"account.close",operationId:"account_close",method:"POST",path:"/v1/accounts/{accountId}/close",idempotency:"required",principal:"api_key",summary:"Close an account"},{name:"account.create",operationId:"account_create",method:"POST",path:"/v1/accounts",idempotency:"required",principal:"api_key",summary:"Create an account"},{name:"account.freeze",operationId:"account_freeze",method:"POST",path:"/v1/accounts/{accountId}/freeze",idempotency:"required",principal:"api_key",summary:"Freeze an account"},{name:"account.list",operationId:"account_list",method:"GET",path:"/v1/accounts",idempotency:"not_required",principal:"api_key",summary:"List Accounts"},{name:"account.retrieve",operationId:"account_retrieve",method:"GET",path:"/v1/accounts/{accountId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Account"},{name:"account.statement.export",operationId:"account_statement_export",method:"GET",path:"/v1/accounts/{accountId}/statements/{period}/export",idempotency:"not_required",principal:"api_key",summary:"Export a monthly account statement"},{name:"account.statement.retrieve",operationId:"account_statement_retrieve",method:"GET",path:"/v1/accounts/{accountId}/statements/{period}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a monthly account statement"},{name:"account.unfreeze",operationId:"account_unfreeze",method:"POST",path:"/v1/accounts/{accountId}/unfreeze",idempotency:"required",principal:"api_key",summary:"Unfreeze an account"},{name:"activity.list",operationId:"activity_list",method:"GET",path:"/v1/activity",idempotency:"not_required",principal:"api_key",summary:"List tenant activity"},{name:"api_key.list",operationId:"api_key_list",method:"GET",path:"/v1/api-keys",idempotency:"not_required",principal:"user_session",summary:"List API keys"},{name:"api_key.live.create",operationId:"api_key_live_create",method:"POST",path:"/v1/live-api-keys",idempotency:"required",principal:"user_session",summary:"Create a live API key"},{name:"api_key.retrieve",operationId:"api_key_retrieve",method:"GET",path:"/v1/api-keys/{apiKeyId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve an API key"},{name:"api_key.revoke",operationId:"api_key_revoke",method:"POST",path:"/v1/api-keys/{apiKeyId}/revoke",idempotency:"required",principal:"user_session",summary:"Revoke a product API key"},{name:"api_key.sandbox.create",operationId:"api_key_sandbox_create",method:"POST",path:"/v1/sandbox-api-keys",idempotency:"required",principal:"user_session",summary:"Create a sandbox API key"},{name:"audit_event.list",operationId:"audit_event_list",method:"GET",path:"/v1/audit-events",idempotency:"not_required",principal:"api_key",summary:"List Audit events"},{name:"audit_event.retrieve",operationId:"audit_event_retrieve",method:"GET",path:"/v1/audit-events/{auditEventId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Audit event"},{name:"authorised_decision.approve",operationId:"authorised_decision_approve",method:"POST",path:"/v1/authorised-decisions/{authorisedDecisionId}/approve",idempotency:"required",principal:"api_key",summary:"Approve instrument"},{name:"authorised_decision.create",operationId:"authorised_decision_create",method:"POST",path:"/v1/authorised-decisions",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"authorised_decision.decline",operationId:"authorised_decision_decline",method:"POST",path:"/v1/authorised-decisions/{authorisedDecisionId}/decline",idempotency:"required",principal:"api_key",summary:"Decline instrument"},{name:"authorised_decision.list",operationId:"authorised_decision_list",method:"GET",path:"/v1/authorised-decisions",idempotency:"not_required",principal:"api_key",summary:"List authorised decisions"},{name:"authorised_decision.retrieve",operationId:"authorised_decision_retrieve",method:"GET",path:"/v1/authorised-decisions/{authorisedDecisionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an authorised decision"},{name:"authorised_decision.revoke",operationId:"authorised_decision_revoke",method:"POST",path:"/v1/authorised-decisions/{authorisedDecisionId}/revoke",idempotency:"required",principal:"api_key",summary:"Revoke instrument"},{name:"beneficiary.create",operationId:"beneficiary_create",method:"POST",path:"/v1/beneficiaries",idempotency:"required",principal:"api_key",summary:"Create a beneficiary"},{name:"beneficiary.disable",operationId:"beneficiary_disable",method:"POST",path:"/v1/beneficiaries/{beneficiaryId}/disable",idempotency:"required",principal:"user_session",summary:"Disable a beneficiary"},{name:"beneficiary.list",operationId:"beneficiary_list",method:"GET",path:"/v1/beneficiaries",idempotency:"not_required",principal:"api_key",summary:"List Beneficiaries"},{name:"beneficiary.retrieve",operationId:"beneficiary_retrieve",method:"GET",path:"/v1/beneficiaries/{beneficiaryId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Beneficiary"},{name:"beneficiary.verify",operationId:"beneficiary_verify",method:"POST",path:"/v1/beneficiary-verifications",idempotency:"required",principal:"api_key",summary:"Verify a beneficiary"},{name:"billing_adjustment.list",operationId:"billing_adjustment_list",method:"GET",path:"/v1/billing-adjustments",idempotency:"not_required",principal:"api_key",summary:"List Billing adjustments"},{name:"billing_adjustment.retrieve",operationId:"billing_adjustment_retrieve",method:"GET",path:"/v1/billing-adjustments/{billingAdjustmentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Billing adjustment"},{name:"billing_period.list",operationId:"billing_period_list",method:"GET",path:"/v1/billing-periods",idempotency:"not_required",principal:"api_key",summary:"List Billing periods"},{name:"billing_period.retrieve",operationId:"billing_period_retrieve",method:"GET",path:"/v1/billing-periods/{billingPeriodId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Billing period"},{name:"billing_subscription.list",operationId:"billing_subscription_list",method:"GET",path:"/v1/billing-subscriptions",idempotency:"not_required",principal:"api_key",summary:"List Billing subscriptions"},{name:"billing_subscription.retrieve",operationId:"billing_subscription_retrieve",method:"GET",path:"/v1/billing-subscriptions/{billingSubscriptionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Billing subscription"},{name:"card.activate",operationId:"card_activate",method:"POST",path:"/v1/cards/{cardId}/activate",idempotency:"required",principal:"api_key",summary:"Activate a card"},{name:"card.cancel",operationId:"card_cancel",method:"POST",path:"/v1/cards/{cardId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a card"},{name:"card.create",operationId:"card_create",method:"POST",path:"/v1/cards",idempotency:"required",principal:"api_key",summary:"Issue a card"},{name:"card.freeze",operationId:"card_freeze",method:"POST",path:"/v1/cards/{cardId}/freeze",idempotency:"required",principal:"api_key",summary:"Freeze a card"},{name:"card.list",operationId:"card_list",method:"GET",path:"/v1/cards",idempotency:"not_required",principal:"api_key",summary:"List cards"},{name:"card.retrieve",operationId:"card_retrieve",method:"GET",path:"/v1/cards/{cardId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a card"},{name:"card.unfreeze",operationId:"card_unfreeze",method:"POST",path:"/v1/cards/{cardId}/unfreeze",idempotency:"required",principal:"api_key",summary:"Unfreeze a card"},{name:"card.update",operationId:"card_update",method:"PATCH",path:"/v1/cards/{cardId}",idempotency:"required",principal:"api_key",summary:"Update a card"},{name:"card_authorization.approve",operationId:"card_authorization_approve",method:"POST",path:"/v1/card-authorizations/{cardAuthorizationId}/approve",idempotency:"required",principal:"api_key",summary:"Approve a card authorization"},{name:"card_authorization.capture",operationId:"card_authorization_capture",method:"POST",path:"/v1/card-authorizations/{cardAuthorizationId}/capture",idempotency:"required",principal:"api_key",summary:"Capture a card authorization"},{name:"card_authorization.create",operationId:"card_authorization_create",method:"POST",path:"/v1/card-authorizations",idempotency:"required",principal:"api_key",summary:"Request a card authorization"},{name:"card_authorization.decline",operationId:"card_authorization_decline",method:"POST",path:"/v1/card-authorizations/{cardAuthorizationId}/decline",idempotency:"required",principal:"api_key",summary:"Decline a card authorization"},{name:"card_authorization.list",operationId:"card_authorization_list",method:"GET",path:"/v1/card-authorizations",idempotency:"not_required",principal:"api_key",summary:"List card authorizations"},{name:"card_authorization.retrieve",operationId:"card_authorization_retrieve",method:"GET",path:"/v1/card-authorizations/{cardAuthorizationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a card authorization"},{name:"card_authorization.reverse",operationId:"card_authorization_reverse",method:"POST",path:"/v1/card-authorizations/{cardAuthorizationId}/reverse",idempotency:"required",principal:"api_key",summary:"Reverse a card authorization"},{name:"card_dispute.create",operationId:"card_dispute_create",method:"POST",path:"/v1/card-disputes",idempotency:"required",principal:"api_key",summary:"File a card dispute"},{name:"card_dispute.list",operationId:"card_dispute_list",method:"GET",path:"/v1/card-disputes",idempotency:"not_required",principal:"api_key",summary:"List card disputes"},{name:"card_dispute.retrieve",operationId:"card_dispute_retrieve",method:"GET",path:"/v1/card-disputes/{cardDisputeId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a card dispute"},{name:"card_dispute.review",operationId:"card_dispute_review",method:"POST",path:"/v1/card-disputes/{cardDisputeId}/review",idempotency:"required",principal:"api_key",summary:"Review a card dispute"},{name:"card_dispute.update",operationId:"card_dispute_update",method:"PATCH",path:"/v1/card-disputes/{cardDisputeId}",idempotency:"required",principal:"api_key",summary:"Update a card dispute"},{name:"card_dispute.win",operationId:"card_dispute_win",method:"POST",path:"/v1/card-disputes/{cardDisputeId}/win",idempotency:"required",principal:"api_key",summary:"Win a card dispute"},{name:"card_transaction.create",operationId:"card_transaction_create",method:"POST",path:"/v1/card-transactions",idempotency:"required",principal:"api_key",summary:"Record a card transaction"},{name:"card_transaction.list",operationId:"card_transaction_list",method:"GET",path:"/v1/card-transactions",idempotency:"not_required",principal:"api_key",summary:"List card transactions"},{name:"card_transaction.refund",operationId:"card_transaction_refund",method:"POST",path:"/v1/card-transactions/{cardTransactionId}/refund",idempotency:"required",principal:"api_key",summary:"Refund a card transaction"},{name:"card_transaction.retrieve",operationId:"card_transaction_retrieve",method:"GET",path:"/v1/card-transactions/{cardTransactionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a card transaction"},{name:"cardholder.activate",operationId:"cardholder_activate",method:"POST",path:"/v1/cardholders/{cardholderId}/activate",idempotency:"required",principal:"api_key",summary:"Activate a cardholder"},{name:"cardholder.close",operationId:"cardholder_close",method:"POST",path:"/v1/cardholders/{cardholderId}/close",idempotency:"required",principal:"api_key",summary:"Close a cardholder"},{name:"cardholder.create",operationId:"cardholder_create",method:"POST",path:"/v1/cardholders",idempotency:"required",principal:"api_key",summary:"Create a cardholder"},{name:"cardholder.list",operationId:"cardholder_list",method:"GET",path:"/v1/cardholders",idempotency:"not_required",principal:"api_key",summary:"List cardholders"},{name:"cardholder.resume",operationId:"cardholder_resume",method:"POST",path:"/v1/cardholders/{cardholderId}/resume",idempotency:"required",principal:"api_key",summary:"Resume a cardholder"},{name:"cardholder.retrieve",operationId:"cardholder_retrieve",method:"GET",path:"/v1/cardholders/{cardholderId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a cardholder"},{name:"cardholder.suspend",operationId:"cardholder_suspend",method:"POST",path:"/v1/cardholders/{cardholderId}/suspend",idempotency:"required",principal:"api_key",summary:"Suspend a cardholder"},{name:"cardholder.update",operationId:"cardholder_update",method:"PATCH",path:"/v1/cardholders/{cardholderId}",idempotency:"required",principal:"api_key",summary:"Update a cardholder"},{name:"catalog.author",operationId:"catalog_author",method:"POST",path:"/v1/catalog/author",idempotency:"required",principal:"user_session",summary:"Author a tenant catalog revision"},{name:"charge.list",operationId:"charge_list",method:"GET",path:"/v1/charges",idempotency:"not_required",principal:"api_key",summary:"List Charges"},{name:"charge.retrieve",operationId:"charge_retrieve",method:"GET",path:"/v1/charges/{chargeId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Charge"},{name:"circle_membership.create",operationId:"circle_membership_create",method:"POST",path:"/v1/circle-memberships",idempotency:"required",principal:"api_key",summary:"Join a savings circle"},{name:"circle_membership.list",operationId:"circle_membership_list",method:"GET",path:"/v1/circle-memberships",idempotency:"not_required",principal:"api_key",summary:"List circle memberships"},{name:"circle_membership.retrieve",operationId:"circle_membership_retrieve",method:"GET",path:"/v1/circle-memberships/{circleMembershipId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a circle membership"},{name:"claim.approve",operationId:"claim_approve",method:"POST",path:"/v1/claims/{claimId}/approve",idempotency:"required",principal:"api_key",summary:"Approve a claim"},{name:"claim.assess",operationId:"claim_assess",method:"POST",path:"/v1/claims/{claimId}/assess",idempotency:"required",principal:"api_key",summary:"Assess a claim"},{name:"claim.attest",operationId:"claim_attest",method:"POST",path:"/v1/claims/{claimId}/attest",idempotency:"required",principal:"api_key",summary:"Attest an out-of-band claim approval"},{name:"claim.create",operationId:"claim_create",method:"POST",path:"/v1/claims",idempotency:"required",principal:"api_key",summary:"File a claim"},{name:"claim.deny",operationId:"claim_deny",method:"POST",path:"/v1/claims/{claimId}/deny",idempotency:"required",principal:"api_key",summary:"Deny a claim"},{name:"claim.list",operationId:"claim_list",method:"GET",path:"/v1/claims",idempotency:"not_required",principal:"api_key",summary:"List claims"},{name:"claim.pay",operationId:"claim_pay",method:"POST",path:"/v1/claims/{claimId}/pay",idempotency:"required",principal:"api_key",summary:"Pay a claim"},{name:"claim.retrieve",operationId:"claim_retrieve",method:"GET",path:"/v1/claims/{claimId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a claim"},{name:"claim.reverse",operationId:"claim_reverse",method:"POST",path:"/v1/claims/{claimId}/reverse",idempotency:"required",principal:"api_key",summary:"Reverse claim approval"},{name:"claim.update",operationId:"claim_update",method:"PATCH",path:"/v1/claims/{claimId}",idempotency:"required",principal:"api_key",summary:"Update a claim"},{name:"collection.list",operationId:"collection_list",method:"GET",path:"/v1/collections",idempotency:"not_required",principal:"api_key",summary:"List Collections"},{name:"collection.pay_in.cancel",operationId:"collection_pay_in_cancel",method:"POST",path:"/v1/collections/{collectionId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a reserved collection pay-in"},{name:"collection.pay_in.capture",operationId:"collection_pay_in_capture",method:"POST",path:"/v1/collections/{collectionId}/capture",idempotency:"required",principal:"api_key",summary:"Capture a reserved collection pay-in"},{name:"collection.pay_in.reserve",operationId:"collection_pay_in_reserve",method:"POST",path:"/v1/collections/reserve",idempotency:"required",principal:"api_key",summary:"Reserve a collection pay-in"},{name:"collection.retrieve",operationId:"collection_retrieve",method:"GET",path:"/v1/collections/{collectionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Collection"},{name:"collections_case.agree_plan",operationId:"collections_case_agree_plan",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/agree-plan",idempotency:"required",principal:"api_key",summary:"Record an agreed settlement plan"},{name:"collections_case.assign",operationId:"collections_case_assign",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/assign",idempotency:"required",principal:"api_key",summary:"Assign a collections case to an agency"},{name:"collections_case.create",operationId:"collections_case_create",method:"POST",path:"/v1/collections-cases",idempotency:"required",principal:"api_key",summary:"Open a collections case"},{name:"collections_case.list",operationId:"collections_case_list",method:"GET",path:"/v1/collections-cases",idempotency:"not_required",principal:"api_key",summary:"List collections cases"},{name:"collections_case.recall",operationId:"collections_case_recall",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/recall",idempotency:"required",principal:"api_key",summary:"Recall a collections case"},{name:"collections_case.recover",operationId:"collections_case_recover",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/recover",idempotency:"required",principal:"api_key",summary:"Record a lump-sum recovery"},{name:"collections_case.retrieve",operationId:"collections_case_retrieve",method:"GET",path:"/v1/collections-cases/{collectionsCaseId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a collections case"},{name:"collections_case.return_uncollected",operationId:"collections_case_return_uncollected",method:"POST",path:"/v1/collections-cases/{collectionsCaseId}/return-uncollected",idempotency:"required",principal:"api_key",summary:"Record a case returned uncollected"},{name:"collections_case.update",operationId:"collections_case_update",method:"PATCH",path:"/v1/collections-cases/{collectionsCaseId}",idempotency:"required",principal:"api_key",summary:"Update a collections case"},{name:"composer.catalog",operationId:"composer_catalog",method:"GET",path:"/v1/composer/catalog",idempotency:"not_required",principal:"user_session",summary:"Retrieve the composer authoring vocabulary"},{name:"composer.check",operationId:"composer_check",method:"POST",path:"/v1/composer/check",idempotency:"not_required",principal:"user_session",summary:"Check an HSX program or compiled .udl document"},{name:"composer.plan",operationId:"composer_plan",method:"POST",path:"/v1/composer/plan",idempotency:"not_required",principal:"user_session",summary:"Plan an HSX program or compiled .udl document against a build"},{name:"consent.grant",operationId:"consent_grant",method:"POST",path:"/v1/consents",idempotency:"required",principal:"user_session",summary:"Grant scoped provider data consent"},{name:"consent.list",operationId:"consent_list",method:"GET",path:"/v1/consents",idempotency:"not_required",principal:"api_key",summary:"List Consents"},{name:"consent.retrieve",operationId:"consent_retrieve",method:"GET",path:"/v1/consents/{consentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Consent"},{name:"consent.revoke",operationId:"consent_revoke",method:"POST",path:"/v1/consents/{consentId}/revoke",idempotency:"required",principal:"api_key",summary:"Revoke provider data consent"},{name:"contact_attempt.create",operationId:"contact_attempt_create",method:"POST",path:"/v1/contact-attempts",idempotency:"required",principal:"api_key",summary:"Record a contact attempt"},{name:"contact_attempt.list",operationId:"contact_attempt_list",method:"GET",path:"/v1/contact-attempts",idempotency:"not_required",principal:"api_key",summary:"List contact attempts"},{name:"contact_attempt.retrieve",operationId:"contact_attempt_retrieve",method:"GET",path:"/v1/contact-attempts/{contactAttemptId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a contact attempt"},{name:"contact_attempt.void",operationId:"contact_attempt_void",method:"POST",path:"/v1/contact-attempts/{contactAttemptId}/void",idempotency:"required",principal:"api_key",summary:"Void a contact attempt"},{name:"credit_agreement.advance",operationId:"credit_agreement_advance",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/advance",idempotency:"required",principal:"api_key",summary:"Advance a credit agreement"},{name:"credit_agreement.create",operationId:"credit_agreement_create",method:"POST",path:"/v1/credit-agreements",idempotency:"required",principal:"api_key",summary:"Create a credit agreement"},{name:"credit_agreement.list",operationId:"credit_agreement_list",method:"GET",path:"/v1/credit-agreements",idempotency:"not_required",principal:"api_key",summary:"List credit agreements"},{name:"credit_agreement.refinance",operationId:"credit_agreement_refinance",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/refinance",idempotency:"required",principal:"api_key",summary:"Refinance a credit agreement"},{name:"credit_agreement.reschedule",operationId:"credit_agreement_reschedule",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/reschedule",idempotency:"required",principal:"api_key",summary:"Reschedule a credit agreement"},{name:"credit_agreement.retrieve",operationId:"credit_agreement_retrieve",method:"GET",path:"/v1/credit-agreements/{creditAgreementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a credit agreement"},{name:"credit_agreement.settle",operationId:"credit_agreement_settle",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/settle",idempotency:"required",principal:"api_key",summary:"Settle a credit agreement"},{name:"credit_agreement.update",operationId:"credit_agreement_update",method:"PATCH",path:"/v1/credit-agreements/{creditAgreementId}",idempotency:"required",principal:"api_key",summary:"Update a credit agreement"},{name:"credit_agreement.write_off",operationId:"credit_agreement_write_off",method:"POST",path:"/v1/credit-agreements/{creditAgreementId}/write-off",idempotency:"required",principal:"api_key",summary:"Write off a credit agreement"},{name:"credit_balance.list",operationId:"credit_balance_list",method:"GET",path:"/v1/credit-balances",idempotency:"not_required",principal:"api_key",summary:"List Credit balances"},{name:"credit_balance.retrieve",operationId:"credit_balance_retrieve",method:"GET",path:"/v1/credit-balances/{creditBalanceId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit balance"},{name:"credit_grant.list",operationId:"credit_grant_list",method:"GET",path:"/v1/credit-grants",idempotency:"not_required",principal:"api_key",summary:"List Credit grants"},{name:"credit_grant.retrieve",operationId:"credit_grant_retrieve",method:"GET",path:"/v1/credit-grants/{creditGrantId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit grant"},{name:"credit_ledger_entry.list",operationId:"credit_ledger_entry_list",method:"GET",path:"/v1/credit-ledger-entries",idempotency:"not_required",principal:"api_key",summary:"List Credit ledger"},{name:"credit_ledger_entry.retrieve",operationId:"credit_ledger_entry_retrieve",method:"GET",path:"/v1/credit-ledger-entries/{creditLedgerEntryId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit ledger entry"},{name:"credit_note.list",operationId:"credit_note_list",method:"GET",path:"/v1/credit-notes",idempotency:"not_required",principal:"api_key",summary:"List Credit notes"},{name:"credit_note.retrieve",operationId:"credit_note_retrieve",method:"GET",path:"/v1/credit-notes/{creditNoteId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit note"},{name:"credit_note_line.list",operationId:"credit_note_line_list",method:"GET",path:"/v1/credit-note-lines",idempotency:"not_required",principal:"api_key",summary:"List Credit note lines"},{name:"credit_note_line.retrieve",operationId:"credit_note_line_retrieve",method:"GET",path:"/v1/credit-note-lines/{creditNoteLineId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Credit note line"},{name:"customer.create",operationId:"customer_create",method:"POST",path:"/v1/customers",idempotency:"required",principal:"api_key",summary:"Create a customer"},{name:"customer.data.export",operationId:"customer_data_export",method:"GET",path:"/v1/customers/{customerId}/data-export",idempotency:"not_required",principal:"user_session",summary:"Export the customer's personal data"},{name:"customer.disable",operationId:"customer_disable",method:"POST",path:"/v1/customers/{customerId}/disable",idempotency:"required",principal:"user_session",summary:"Disable a customer"},{name:"customer.erase",operationId:"customer_erase",method:"POST",path:"/v1/customers/{customerId}/erase",idempotency:"required",principal:"user_session",summary:"Erase a customer (crypto-shred)"},{name:"customer.list",operationId:"customer_list",method:"GET",path:"/v1/customers",idempotency:"not_required",principal:"api_key",summary:"List Customers"},{name:"customer.login",operationId:"customer_login",method:"POST",path:"/v1/customer-identity/login",idempotency:"required",principal:"public",summary:"Log in an end customer to a product"},{name:"customer.logout",operationId:"customer_logout",method:"POST",path:"/v1/customer-identity/logout",idempotency:"required",principal:"customer_session",summary:"Log out the current end-customer session"},{name:"customer.reactivate",operationId:"customer_reactivate",method:"POST",path:"/v1/customers/{customerId}/reactivate",idempotency:"required",principal:"user_session",summary:"Reactivate a customer"},{name:"customer.retrieve",operationId:"customer_retrieve",method:"GET",path:"/v1/customers/{customerId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Customer"},{name:"customer.session.revoke",operationId:"customer_session_revoke",method:"POST",path:"/v1/customer-identity/sessions/{customerSessionId}/revoke",idempotency:"required",principal:"customer_session",summary:"Revoke one of the calling end customer's sessions"},{name:"customer.signup",operationId:"customer_signup",method:"POST",path:"/v1/customer-identity/signup",idempotency:"required",principal:"public",summary:"Sign up an end customer for a product"},{name:"customer.update",operationId:"customer_update",method:"PATCH",path:"/v1/customers/{customerId}",idempotency:"required",principal:"user_session",summary:"Update a customer"},{name:"customer_access.close",operationId:"customer_access_close",method:"POST",path:"/v1/customer-access/{customerAccessId}/close",idempotency:"required",principal:"api_key",summary:"Close customer access"},{name:"customer_access.create",operationId:"customer_access_create",method:"POST",path:"/v1/customer-access",idempotency:"required",principal:"user_session",summary:"Enroll a customer in a product"},{name:"customer_access.list",operationId:"customer_access_list",method:"GET",path:"/v1/customer-access",idempotency:"not_required",principal:"api_key",summary:"List Customer accesses"},{name:"customer_access.reactivate",operationId:"customer_access_reactivate",method:"POST",path:"/v1/customer-access/{customerAccessId}/reactivate",idempotency:"required",principal:"api_key",summary:"Reactivate customer access"},{name:"customer_access.retrieve",operationId:"customer_access_retrieve",method:"GET",path:"/v1/customer-access/{customerAccessId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Customer access"},{name:"customer_access.suspend",operationId:"customer_access_suspend",method:"POST",path:"/v1/customer-access/{customerAccessId}/suspend",idempotency:"required",principal:"api_key",summary:"Suspend customer access"},{name:"deposit.list",operationId:"deposit_list",method:"GET",path:"/v1/deposits",idempotency:"not_required",principal:"api_key",summary:"List Deposits"},{name:"deposit.retrieve",operationId:"deposit_retrieve",method:"GET",path:"/v1/deposits/{depositId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Deposit"},{name:"deposit_hold.cancel",operationId:"deposit_hold_cancel",method:"POST",path:"/v1/deposit-holds/{depositHoldId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a deposit hold"},{name:"deposit_hold.claim",operationId:"deposit_hold_claim",method:"POST",path:"/v1/deposit-holds/{depositHoldId}/claim",idempotency:"required",principal:"api_key",summary:"Claim a deposit hold"},{name:"deposit_hold.create",operationId:"deposit_hold_create",method:"POST",path:"/v1/deposit-holds",idempotency:"required",principal:"api_key",summary:"Create a deposit hold"},{name:"deposit_hold.fund",operationId:"deposit_hold_fund",method:"POST",path:"/v1/deposit-holds/{depositHoldId}/fund",idempotency:"required",principal:"api_key",summary:"Fund a deposit hold"},{name:"deposit_hold.list",operationId:"deposit_hold_list",method:"GET",path:"/v1/deposit-holds",idempotency:"not_required",principal:"api_key",summary:"List deposit holds"},{name:"deposit_hold.retrieve",operationId:"deposit_hold_retrieve",method:"GET",path:"/v1/deposit-holds/{depositHoldId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a deposit hold"},{name:"deposit_hold.return",operationId:"deposit_hold_return",method:"POST",path:"/v1/deposit-holds/{depositHoldId}/return",idempotency:"required",principal:"api_key",summary:"Return a deposit hold"},{name:"developer.log.list",operationId:"developer_log_list",method:"GET",path:"/v1/developer-logs",idempotency:"not_required",principal:"api_key",summary:"List developer logs"},{name:"developer.log.retrieve",operationId:"developer_log_retrieve",method:"GET",path:"/v1/developer-logs/{operationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a developer log"},{name:"entity.kyc.retrieve",operationId:"entity_kyc_retrieve",method:"GET",path:"/v1/entities/{entityId}/kyc",idempotency:"not_required",principal:"user_session",summary:"Retrieve an entity's KYC profile"},{name:"entity.kyc.submit",operationId:"entity_kyc_submit",method:"POST",path:"/v1/entities/{entityId}/kyc",idempotency:"required",principal:"user_session",summary:"Submit entity KYC profile fields"},{name:"entity.kyc.verification.start",operationId:"entity_kyc_verification_start",method:"POST",path:"/v1/entities/{entityId}/kyc/verify",idempotency:"required",principal:"user_session",summary:"Start entity KYC verification"},{name:"entity.update",operationId:"entity_update",method:"PATCH",path:"/v1/entities/{entityId}",idempotency:"required",principal:"user_session",summary:"Correct entity legal details"},{name:"escrow_order.cancel",operationId:"escrow_order_cancel",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel an escrow order"},{name:"escrow_order.collect_penalty",operationId:"escrow_order_collect_penalty",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/collect-penalty",idempotency:"required",principal:"api_key",summary:"Collect an escrow refund penalty"},{name:"escrow_order.create",operationId:"escrow_order_create",method:"POST",path:"/v1/escrow-orders",idempotency:"required",principal:"api_key",summary:"Create an escrow order"},{name:"escrow_order.dispute",operationId:"escrow_order_dispute",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/dispute",idempotency:"required",principal:"api_key",summary:"Dispute an escrow order"},{name:"escrow_order.fund",operationId:"escrow_order_fund",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/fund",idempotency:"required",principal:"api_key",summary:"Fund an escrow order"},{name:"escrow_order.list",operationId:"escrow_order_list",method:"GET",path:"/v1/escrow-orders",idempotency:"not_required",principal:"api_key",summary:"List escrow orders"},{name:"escrow_order.quote",operationId:"escrow_order_quote",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/quote",idempotency:"required",principal:"api_key",summary:"Quote an escrow refund"},{name:"escrow_order.refund",operationId:"escrow_order_refund",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/refund",idempotency:"required",principal:"api_key",summary:"Refund an escrow order"},{name:"escrow_order.release",operationId:"escrow_order_release",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/release",idempotency:"required",principal:"api_key",summary:"Release an escrow order"},{name:"escrow_order.resume",operationId:"escrow_order_resume",method:"POST",path:"/v1/escrow-orders/{escrowOrderId}/resume",idempotency:"required",principal:"api_key",summary:"Resume an escrow order"},{name:"escrow_order.retrieve",operationId:"escrow_order_retrieve",method:"GET",path:"/v1/escrow-orders/{escrowOrderId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an escrow order"},{name:"escrow_order.update",operationId:"escrow_order_update",method:"PATCH",path:"/v1/escrow-orders/{escrowOrderId}",idempotency:"required",principal:"api_key",summary:"Update an escrow order"},{name:"event.list",operationId:"event_list",method:"GET",path:"/v1/events",idempotency:"not_required",principal:"api_key",summary:"List events"},{name:"event.retrieve",operationId:"event_retrieve",method:"GET",path:"/v1/events/{eventId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an event"},{name:"expected_payment.cancel",operationId:"expected_payment_cancel",method:"POST",path:"/v1/expected-payments/{expectedPaymentId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel an expected payment"},{name:"expected_payment.create",operationId:"expected_payment_create",method:"POST",path:"/v1/expected-payments",idempotency:"required",principal:"api_key",summary:"Create an expected payment"},{name:"expected_payment.list",operationId:"expected_payment_list",method:"GET",path:"/v1/expected-payments",idempotency:"not_required",principal:"api_key",summary:"List Expected payments"},{name:"expected_payment.retrieve",operationId:"expected_payment_retrieve",method:"GET",path:"/v1/expected-payments/{expectedPaymentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Expected payment"},{name:"exposure_arrangement.approve",operationId:"exposure_arrangement_approve",method:"POST",path:"/v1/exposure-arrangements/{exposureArrangementId}/approve",idempotency:"required",principal:"api_key",summary:"Approve an exposure arrangement"},{name:"exposure_arrangement.close",operationId:"exposure_arrangement_close",method:"POST",path:"/v1/exposure-arrangements/{exposureArrangementId}/close",idempotency:"required",principal:"api_key",summary:"Close an exposure arrangement"},{name:"exposure_arrangement.create",operationId:"exposure_arrangement_create",method:"POST",path:"/v1/exposure-arrangements",idempotency:"required",principal:"api_key",summary:"Create an exposure arrangement"},{name:"exposure_arrangement.list",operationId:"exposure_arrangement_list",method:"GET",path:"/v1/exposure-arrangements",idempotency:"not_required",principal:"api_key",summary:"List exposure arrangements"},{name:"exposure_arrangement.reject",operationId:"exposure_arrangement_reject",method:"POST",path:"/v1/exposure-arrangements/{exposureArrangementId}/reject",idempotency:"required",principal:"api_key",summary:"Reject an exposure arrangement"},{name:"exposure_arrangement.retrieve",operationId:"exposure_arrangement_retrieve",method:"GET",path:"/v1/exposure-arrangements/{exposureArrangementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an exposure arrangement"},{name:"exposure_arrangement.update",operationId:"exposure_arrangement_update",method:"PATCH",path:"/v1/exposure-arrangements/{exposureArrangementId}",idempotency:"required",principal:"api_key",summary:"Update an exposure arrangement"},{name:"extension.list",operationId:"extension_list",method:"GET",path:"/v1/extensions",idempotency:"not_required",principal:"public",summary:"List catalog extensions"},{name:"external_confirmation.list",operationId:"external_confirmation_list",method:"GET",path:"/v1/external-confirmation",idempotency:"not_required",principal:"user_session",summary:"List External Confirmations"},{name:"external_confirmation.retrieve",operationId:"external_confirmation_retrieve",method:"GET",path:"/v1/external-confirmation/{externalConfirmationId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve an External Confirmation"},{name:"financial_address.create",operationId:"financial_address_create",method:"POST",path:"/v1/financial-addresses",idempotency:"required",principal:"api_key",summary:"Create a financial address"},{name:"financial_address.disable",operationId:"financial_address_disable",method:"POST",path:"/v1/financial-addresses/{financialAddressId}/disable",idempotency:"required",principal:"api_key",summary:"Disable a financial address"},{name:"financial_address.list",operationId:"financial_address_list",method:"GET",path:"/v1/financial-addresses",idempotency:"not_required",principal:"api_key",summary:"List Financial addresses"},{name:"financial_address.retrieve",operationId:"financial_address_retrieve",method:"GET",path:"/v1/financial-addresses/{financialAddressId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Financial address"},{name:"flight_booking.amend_collect",operationId:"flight_booking_amend_collect",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/amend-collect",idempotency:"required",principal:"api_key",summary:"Collect an amended fare increase"},{name:"flight_booking.amend_fee",operationId:"flight_booking_amend_fee",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/amend-fee",idempotency:"required",principal:"api_key",summary:"Collect a flight amendment fee"},{name:"flight_booking.amend_refund",operationId:"flight_booking_amend_refund",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/amend-refund",idempotency:"required",principal:"api_key",summary:"Refund an amended fare decrease"},{name:"flight_booking.cancel_confirm",operationId:"flight_booking_cancel_confirm",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/cancel-confirm",idempotency:"required",principal:"api_key",summary:"Confirm a flight booking cancellation"},{name:"flight_booking.cancel_quote",operationId:"flight_booking_cancel_quote",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/cancel-quote",idempotency:"required",principal:"api_key",summary:"Quote a flight booking cancellation"},{name:"flight_booking.collect_penalty",operationId:"flight_booking_collect_penalty",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/collect-penalty",idempotency:"required",principal:"api_key",summary:"Collect a flight cancellation penalty"},{name:"flight_booking.confirm",operationId:"flight_booking_confirm",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/confirm",idempotency:"required",principal:"api_key",summary:"Confirm a flight booking"},{name:"flight_booking.create",operationId:"flight_booking_create",method:"POST",path:"/v1/flight-bookings",idempotency:"required",principal:"api_key",summary:"Hold a flight booking"},{name:"flight_booking.list",operationId:"flight_booking_list",method:"GET",path:"/v1/flight-bookings",idempotency:"not_required",principal:"api_key",summary:"List flight bookings"},{name:"flight_booking.release",operationId:"flight_booking_release",method:"POST",path:"/v1/flight-bookings/{flightBookingId}/release",idempotency:"required",principal:"api_key",summary:"Release a held flight booking"},{name:"flight_booking.retrieve",operationId:"flight_booking_retrieve",method:"GET",path:"/v1/flight-bookings/{flightBookingId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a flight booking"},{name:"flight_booking.update",operationId:"flight_booking_update",method:"PATCH",path:"/v1/flight-bookings/{flightBookingId}",idempotency:"required",principal:"api_key",summary:"Update a flight booking"},{name:"funded_settlement.accept",operationId:"funded_settlement_accept",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/accept",idempotency:"required",principal:"api_key",summary:"Accept instrument"},{name:"funded_settlement.cancel",operationId:"funded_settlement_cancel",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel instrument"},{name:"funded_settlement.close_refund",operationId:"funded_settlement_close_refund",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/close-refund",idempotency:"required",principal:"api_key",summary:"Close Refund instrument"},{name:"funded_settlement.close_release",operationId:"funded_settlement_close_release",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/close-release",idempotency:"required",principal:"api_key",summary:"Close Release instrument"},{name:"funded_settlement.create",operationId:"funded_settlement_create",method:"POST",path:"/v1/funded-settlements",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"funded_settlement.fund",operationId:"funded_settlement_fund",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/fund",idempotency:"required",principal:"api_key",summary:"Fund instrument"},{name:"funded_settlement.list",operationId:"funded_settlement_list",method:"GET",path:"/v1/funded-settlements",idempotency:"not_required",principal:"api_key",summary:"List funded settlements"},{name:"funded_settlement.prepare_refund",operationId:"funded_settlement_prepare_refund",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/prepare-refund",idempotency:"required",principal:"api_key",summary:"Prepare Refund instrument"},{name:"funded_settlement.prepare_release",operationId:"funded_settlement_prepare_release",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/prepare-release",idempotency:"required",principal:"api_key",summary:"Prepare Release instrument"},{name:"funded_settlement.record_funding_authority",operationId:"funded_settlement_record_funding_authority",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/record-funding-authority",idempotency:"required",principal:"api_key",summary:"Record Funding Authority instrument"},{name:"funded_settlement.refund",operationId:"funded_settlement_refund",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/refund",idempotency:"required",principal:"api_key",summary:"Refund instrument"},{name:"funded_settlement.release",operationId:"funded_settlement_release",method:"POST",path:"/v1/funded-settlements/{fundedSettlementId}/release",idempotency:"required",principal:"api_key",summary:"Release instrument"},{name:"funded_settlement.retrieve",operationId:"funded_settlement_retrieve",method:"GET",path:"/v1/funded-settlements/{fundedSettlementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a funded settlement"},{name:"funding_commitment.create",operationId:"funding_commitment_create",method:"POST",path:"/v1/funding-commitments",idempotency:"required",principal:"api_key",summary:"Commit from the investor's original wallet"},{name:"funding_commitment.list",operationId:"funding_commitment_list",method:"GET",path:"/v1/funding-commitments",idempotency:"not_required",principal:"api_key",summary:"List funding commitments"},{name:"funding_commitment.retrieve",operationId:"funding_commitment_retrieve",method:"GET",path:"/v1/funding-commitments/{fundingCommitmentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a funding commitment"},{name:"funding_commitment.withdraw",operationId:"funding_commitment_withdraw",method:"POST",path:"/v1/funding-commitments/{fundingCommitmentId}/withdraw",idempotency:"required",principal:"api_key",summary:"Withdraw once before the round closes"},{name:"funding_round.close",operationId:"funding_round_close",method:"POST",path:"/v1/funding-rounds/{fundingRoundId}/close",idempotency:"required",principal:"api_key",summary:"Snapshot tickets and fund one obligation atomically"},{name:"funding_round.create",operationId:"funding_round_create",method:"POST",path:"/v1/funding-rounds",idempotency:"required",principal:"api_key",summary:"Open a round with immutable terms"},{name:"funding_round.list",operationId:"funding_round_list",method:"GET",path:"/v1/funding-rounds",idempotency:"not_required",principal:"api_key",summary:"List funding rounds"},{name:"funding_round.retrieve",operationId:"funding_round_retrieve",method:"GET",path:"/v1/funding-rounds/{fundingRoundId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a funding round"},{name:"held_settlement.abandon",operationId:"held_settlement_abandon",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/abandon",idempotency:"required",principal:"api_key",summary:"Abandon the hold before it is funded"},{name:"held_settlement.cancel",operationId:"held_settlement_cancel",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel the hold and return the held amount"},{name:"held_settlement.create",operationId:"held_settlement_create",method:"POST",path:"/v1/held-settlements",idempotency:"required",principal:"api_key",summary:"Open a held settlement"},{name:"held_settlement.dispute",operationId:"held_settlement_dispute",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/dispute",idempotency:"required",principal:"api_key",summary:"Dispute a held settlement settlement"},{name:"held_settlement.fund",operationId:"held_settlement_fund",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/fund",idempotency:"required",principal:"api_key",summary:"Fund the hold and collect the custody fee"},{name:"held_settlement.list",operationId:"held_settlement_list",method:"GET",path:"/v1/held-settlements",idempotency:"not_required",principal:"api_key",summary:"List held settlements"},{name:"held_settlement.release",operationId:"held_settlement_release",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/release",idempotency:"required",principal:"api_key",summary:"Release the hold to the payee early"},{name:"held_settlement.resume",operationId:"held_settlement_resume",method:"POST",path:"/v1/held-settlements/{heldSettlementId}/resume",idempotency:"required",principal:"api_key",summary:"Resume a held settlement settlement"},{name:"held_settlement.retrieve",operationId:"held_settlement_retrieve",method:"GET",path:"/v1/held-settlements/{heldSettlementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a held settlement"},{name:"hotel_stay.amend_collect",operationId:"hotel_stay_amend_collect",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/amend-collect",idempotency:"required",principal:"api_key",summary:"Collect an amended rate increase"},{name:"hotel_stay.amend_fee",operationId:"hotel_stay_amend_fee",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/amend-fee",idempotency:"required",principal:"api_key",summary:"Collect a stay amendment fee"},{name:"hotel_stay.amend_refund",operationId:"hotel_stay_amend_refund",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/amend-refund",idempotency:"required",principal:"api_key",summary:"Refund an amended rate decrease"},{name:"hotel_stay.cancel_confirm",operationId:"hotel_stay_cancel_confirm",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/cancel-confirm",idempotency:"required",principal:"api_key",summary:"Confirm a hotel stay cancellation"},{name:"hotel_stay.cancel_quote",operationId:"hotel_stay_cancel_quote",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/cancel-quote",idempotency:"required",principal:"api_key",summary:"Quote a hotel stay cancellation"},{name:"hotel_stay.collect_penalty",operationId:"hotel_stay_collect_penalty",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/collect-penalty",idempotency:"required",principal:"api_key",summary:"Collect a hotel cancellation penalty"},{name:"hotel_stay.confirm",operationId:"hotel_stay_confirm",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/confirm",idempotency:"required",principal:"api_key",summary:"Confirm a hotel stay"},{name:"hotel_stay.create",operationId:"hotel_stay_create",method:"POST",path:"/v1/hotel-stays",idempotency:"required",principal:"api_key",summary:"Hold a hotel stay"},{name:"hotel_stay.list",operationId:"hotel_stay_list",method:"GET",path:"/v1/hotel-stays",idempotency:"not_required",principal:"api_key",summary:"List hotel stays"},{name:"hotel_stay.release",operationId:"hotel_stay_release",method:"POST",path:"/v1/hotel-stays/{hotelStayId}/release",idempotency:"required",principal:"api_key",summary:"Release a held hotel stay"},{name:"hotel_stay.retrieve",operationId:"hotel_stay_retrieve",method:"GET",path:"/v1/hotel-stays/{hotelStayId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a hotel stay"},{name:"hotel_stay.update",operationId:"hotel_stay_update",method:"PATCH",path:"/v1/hotel-stays/{hotelStayId}",idempotency:"required",principal:"api_key",summary:"Update a hotel stay"},{name:"human_approval.approve",operationId:"human_approval_approve",method:"POST",path:"/v1/human-approval/requests/{approvalRequestId}/approve",idempotency:"required",principal:"user_session",summary:"Approve a human approval request"},{name:"human_approval.approver.list",operationId:"human_approval_approver_list",method:"GET",path:"/v1/human-approval/requests/{approvalRequestId}/approvers",idempotency:"not_required",principal:"api_key",summary:"List eligible approvers for a human approval request"},{name:"human_approval.cancel",operationId:"human_approval_cancel",method:"POST",path:"/v1/human-approval/requests/{approvalRequestId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a human approval request"},{name:"human_approval.expire",operationId:"human_approval_expire",method:"POST",path:"/v1/human-approval/expire",idempotency:"required",principal:"api_key",summary:"Expire overdue pending human approval requests"},{name:"human_approval.request.create",operationId:"human_approval_request_create",method:"POST",path:"/v1/human-approval/requests",idempotency:"required",principal:"api_key",summary:"Create a human approval request"},{name:"human_approval.request.list",operationId:"human_approval_request_list",method:"GET",path:"/v1/human-approval/requests",idempotency:"not_required",principal:"api_key",summary:"List human approval requests for the organization"},{name:"human_approval.request.retrieve",operationId:"human_approval_request_retrieve",method:"GET",path:"/v1/human-approval/requests/{approvalRequestId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a human approval request by ID"},{name:"human_approval.review.begin",operationId:"human_approval_review_begin",method:"POST",path:"/v1/human-approval/requests/{approvalRequestId}/review",idempotency:"required",principal:"user_session",summary:"Begin a browser human review ceremony"},{name:"installment.create",operationId:"installment_create",method:"POST",path:"/v1/installments",idempotency:"required",principal:"api_key",summary:"Schedule an installment"},{name:"installment.list",operationId:"installment_list",method:"GET",path:"/v1/installments",idempotency:"not_required",principal:"api_key",summary:"List installments"},{name:"installment.retrieve",operationId:"installment_retrieve",method:"GET",path:"/v1/installments/{installmentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an installment"},{name:"installment.update",operationId:"installment_update",method:"PATCH",path:"/v1/installments/{installmentId}",idempotency:"required",principal:"api_key",summary:"Update an installment"},{name:"installment.write_off",operationId:"installment_write_off",method:"POST",path:"/v1/installments/{installmentId}/write-off",idempotency:"required",principal:"api_key",summary:"Write off an installment"},{name:"internal_transfer.adjust",operationId:"internal_transfer_adjust",method:"POST",path:"/v1/internal-transfers/{originalTransferId}/adjust",idempotency:"required",principal:"api_key",summary:"Adjust a posted transfer"},{name:"internal_transfer.create",operationId:"internal_transfer_create",method:"POST",path:"/v1/internal-transfers",idempotency:"required",principal:"api_key",summary:"Create an internal transfer"},{name:"internal_transfer.list",operationId:"internal_transfer_list",method:"GET",path:"/v1/internal-transfers",idempotency:"not_required",principal:"api_key",summary:"List Internal Transfers"},{name:"internal_transfer.post",operationId:"internal_transfer_post",method:"POST",path:"/v1/internal-transfers/{transferId}/post",idempotency:"required",principal:"api_key",summary:"Post a reserved transfer"},{name:"internal_transfer.reserve",operationId:"internal_transfer_reserve",method:"POST",path:"/v1/internal-transfers/reserve",idempotency:"required",principal:"api_key",summary:"Reserve an internal transfer"},{name:"internal_transfer.retrieve",operationId:"internal_transfer_retrieve",method:"GET",path:"/v1/internal-transfers/{transferId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Internal Transfer"},{name:"internal_transfer.reverse",operationId:"internal_transfer_reverse",method:"POST",path:"/v1/internal-transfers/{originalTransferId}/reverse",idempotency:"required",principal:"api_key",summary:"Reverse a posted transfer in full"},{name:"internal_transfer.void",operationId:"internal_transfer_void",method:"POST",path:"/v1/internal-transfers/{transferId}/void",idempotency:"required",principal:"api_key",summary:"Void a reserved transfer"},{name:"invoice.list",operationId:"invoice_list",method:"GET",path:"/v1/invoices",idempotency:"not_required",principal:"api_key",summary:"List Invoices"},{name:"invoice.preview",operationId:"invoice_preview",method:"GET",path:"/v1/invoices/preview",idempotency:"not_required",principal:"user_session",summary:"Preview an invoice"},{name:"invoice.retrieve",operationId:"invoice_retrieve",method:"GET",path:"/v1/invoices/{invoiceId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Invoice"},{name:"invoice_line.list",operationId:"invoice_line_list",method:"GET",path:"/v1/invoice-lines",idempotency:"not_required",principal:"api_key",summary:"List Invoice lines"},{name:"invoice_line.retrieve",operationId:"invoice_line_retrieve",method:"GET",path:"/v1/invoice-lines/{invoiceLineId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Invoice line"},{name:"kyc.requirements.retrieve",operationId:"kyc_requirements_retrieve",method:"GET",path:"/v1/kyc/requirements",idempotency:"not_required",principal:"public",summary:"Retrieve KYC tier requirements"},{name:"lender_distribution.create",operationId:"lender_distribution_create",method:"POST",path:"/v1/lender-distributions",idempotency:"required",principal:"api_key",summary:"Claim a lender's share of an agreement's repayments"},{name:"lender_distribution.list",operationId:"lender_distribution_list",method:"GET",path:"/v1/lender-distributions",idempotency:"not_required",principal:"api_key",summary:"List lender distributions"},{name:"lender_distribution.retrieve",operationId:"lender_distribution_retrieve",method:"GET",path:"/v1/lender-distributions/{lenderDistributionId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a lender distribution"},{name:"listing.create",operationId:"listing_create",method:"POST",path:"/v1/listings",idempotency:"required",principal:"api_key",summary:"Draft a listing"},{name:"listing.list",operationId:"listing_list",method:"GET",path:"/v1/listings",idempotency:"not_required",principal:"api_key",summary:"List listings"},{name:"listing.publish",operationId:"listing_publish",method:"POST",path:"/v1/listings/{listingId}/publish",idempotency:"required",principal:"api_key",summary:"Publish a listing"},{name:"listing.reopen",operationId:"listing_reopen",method:"POST",path:"/v1/listings/{listingId}/reopen",idempotency:"required",principal:"api_key",summary:"Reopen a listing"},{name:"listing.reserve",operationId:"listing_reserve",method:"POST",path:"/v1/listings/{listingId}/reserve",idempotency:"required",principal:"api_key",summary:"Reserve a listing"},{name:"listing.retrieve",operationId:"listing_retrieve",method:"GET",path:"/v1/listings/{listingId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a listing"},{name:"listing.sell",operationId:"listing_sell",method:"POST",path:"/v1/listings/{listingId}/sell",idempotency:"required",principal:"api_key",summary:"Sell a listing"},{name:"listing.update",operationId:"listing_update",method:"PATCH",path:"/v1/listings/{listingId}",idempotency:"required",principal:"api_key",summary:"Update a listing"},{name:"listing.withdraw",operationId:"listing_withdraw",method:"POST",path:"/v1/listings/{listingId}/withdraw",idempotency:"required",principal:"api_key",summary:"Withdraw a listing"},{name:"meter_period_snapshot.list",operationId:"meter_period_snapshot_list",method:"GET",path:"/v1/meter-period-snapshots",idempotency:"not_required",principal:"api_key",summary:"List Meter period snapshots"},{name:"meter_period_snapshot.retrieve",operationId:"meter_period_snapshot_retrieve",method:"GET",path:"/v1/meter-period-snapshots/{meterPeriodSnapshotId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Meter period snapshot"},{name:"motor_policy.bind",operationId:"motor_policy_bind",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/bind",idempotency:"required",principal:"api_key",summary:"Bind a motor policy"},{name:"motor_policy.cancel",operationId:"motor_policy_cancel",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a quoted motor policy"},{name:"motor_policy.create",operationId:"motor_policy_create",method:"POST",path:"/v1/motor-policies",idempotency:"required",principal:"api_key",summary:"Quote a motor policy"},{name:"motor_policy.deny_claim",operationId:"motor_policy_deny_claim",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/deny-claim",idempotency:"required",principal:"api_key",summary:"Deny a motor claim"},{name:"motor_policy.list",operationId:"motor_policy_list",method:"GET",path:"/v1/motor-policies",idempotency:"not_required",principal:"api_key",summary:"List motor policies"},{name:"motor_policy.open_claim",operationId:"motor_policy_open_claim",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/open-claim",idempotency:"required",principal:"api_key",summary:"Open a motor claim"},{name:"motor_policy.retrieve",operationId:"motor_policy_retrieve",method:"GET",path:"/v1/motor-policies/{motorPolicyId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a motor policy"},{name:"motor_policy.settle_claim",operationId:"motor_policy_settle_claim",method:"POST",path:"/v1/motor-policies/{motorPolicyId}/settle-claim",idempotency:"required",principal:"api_key",summary:"Settle a motor claim"},{name:"motor_policy.update",operationId:"motor_policy_update",method:"PATCH",path:"/v1/motor-policies/{motorPolicyId}",idempotency:"required",principal:"api_key",summary:"Update a motor policy"},{name:"operation.list",operationId:"operation_list",method:"GET",path:"/v1/operations",idempotency:"not_required",principal:"api_key",summary:"List Operations"},{name:"operation.retrieve",operationId:"operation_retrieve",method:"GET",path:"/v1/operations/{operationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an Operation"},{name:"order.cancel",operationId:"order_cancel",method:"POST",path:"/v1/orders/{orderId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel an order"},{name:"order.confirm",operationId:"order_confirm",method:"POST",path:"/v1/orders/{orderId}/confirm",idempotency:"required",principal:"api_key",summary:"Confirm an order"},{name:"order.create",operationId:"order_create",method:"POST",path:"/v1/orders",idempotency:"required",principal:"api_key",summary:"Create an order"},{name:"order.fulfill",operationId:"order_fulfill",method:"POST",path:"/v1/orders/{orderId}/fulfill",idempotency:"required",principal:"api_key",summary:"Fulfill an order"},{name:"order.list",operationId:"order_list",method:"GET",path:"/v1/orders",idempotency:"not_required",principal:"api_key",summary:"List orders"},{name:"order.retrieve",operationId:"order_retrieve",method:"GET",path:"/v1/orders/{orderId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve an order"},{name:"order.update",operationId:"order_update",method:"PATCH",path:"/v1/orders/{orderId}",idempotency:"required",principal:"api_key",summary:"Update an order"},{name:"payout.create",operationId:"payout_create",method:"POST",path:"/v1/payouts",idempotency:"required",principal:"api_key",summary:"Create a payout"},{name:"payout.list",operationId:"payout_list",method:"GET",path:"/v1/payouts",idempotency:"not_required",principal:"api_key",summary:"List Payouts"},{name:"payout.retrieve",operationId:"payout_retrieve",method:"GET",path:"/v1/payouts/{payoutId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Payout"},{name:"payout_run.cancel",operationId:"payout_run_cancel",method:"POST",path:"/v1/payout-runs/{payoutRunId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a payout run"},{name:"payout_run.create",operationId:"payout_run_create",method:"POST",path:"/v1/payout-runs",idempotency:"required",principal:"api_key",summary:"Schedule a payout run"},{name:"payout_run.list",operationId:"payout_run_list",method:"GET",path:"/v1/payout-runs",idempotency:"not_required",principal:"api_key",summary:"List payout runs"},{name:"payout_run.retrieve",operationId:"payout_run_retrieve",method:"GET",path:"/v1/payout-runs/{payoutRunId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a payout run"},{name:"payout_run.update",operationId:"payout_run_update",method:"PATCH",path:"/v1/payout-runs/{payoutRunId}",idempotency:"required",principal:"api_key",summary:"Update a payout run"},{name:"payout_run.withhold",operationId:"payout_run_withhold",method:"POST",path:"/v1/payout-runs/{payoutRunId}/withhold",idempotency:"required",principal:"api_key",summary:"Withhold from a payout run"},{name:"personal_access_token.create",operationId:"personal_access_token_create",method:"POST",path:"/v1/personal-access-tokens",idempotency:"required",principal:"user_session",summary:"Create a personal access token"},{name:"personal_access_token.current",operationId:"personal_access_token_current",method:"GET",path:"/v1/personal-access-tokens/current",idempotency:"not_required",principal:"user_session",summary:"Describe the personal access token making this request"},{name:"personal_access_token.list",operationId:"personal_access_token_list",method:"GET",path:"/v1/personal-access-tokens",idempotency:"not_required",principal:"user_session",summary:"List personal access tokens for the caller's Company"},{name:"personal_access_token.login_grant.create",operationId:"personal_access_token_login_grant_create",method:"POST",path:"/v1/personal-access-token-login-grants",idempotency:"required",principal:"user_session",summary:"Create a CLI login grant"},{name:"personal_access_token.login_grant.exchange",operationId:"personal_access_token_login_grant_exchange",method:"POST",path:"/v1/personal-access-token-login-grants/exchange",idempotency:"required",principal:"public",summary:"Exchange a CLI login grant"},{name:"personal_access_token.revoke",operationId:"personal_access_token_revoke",method:"POST",path:"/v1/personal-access-tokens/{personalAccessTokenId}/revoke",idempotency:"required",principal:"user_session",summary:"Revoke a personal access token"},{name:"policy.bind",operationId:"policy_bind",method:"POST",path:"/v1/policies/{policyId}/bind",idempotency:"required",principal:"api_key",summary:"Bind a policy"},{name:"policy.cancel",operationId:"policy_cancel",method:"POST",path:"/v1/policies/{policyId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a policy"},{name:"policy.confirm_refund",operationId:"policy_confirm_refund",method:"POST",path:"/v1/policies/{policyId}/confirm-refund",idempotency:"required",principal:"api_key",summary:"Confirm active policy refund"},{name:"policy.create",operationId:"policy_create",method:"POST",path:"/v1/policies",idempotency:"required",principal:"api_key",summary:"Quote a policy"},{name:"policy.endorse",operationId:"policy_endorse",method:"POST",path:"/v1/policies/{policyId}/endorse",idempotency:"required",principal:"api_key",summary:"Endorse a policy"},{name:"policy.list",operationId:"policy_list",method:"GET",path:"/v1/policies",idempotency:"not_required",principal:"api_key",summary:"List policies"},{name:"policy.preview",operationId:"policy_preview",method:"POST",path:"/v1/policies/{policyId}/preview",idempotency:"required",principal:"api_key",summary:"Preview policy cancellation"},{name:"policy.quote_refund",operationId:"policy_quote_refund",method:"POST",path:"/v1/policies/{policyId}/quote-refund",idempotency:"required",principal:"api_key",summary:"Quote active policy refund"},{name:"policy.retrieve",operationId:"policy_retrieve",method:"GET",path:"/v1/policies/{policyId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a policy"},{name:"policy.update",operationId:"policy_update",method:"PATCH",path:"/v1/policies/{policyId}",idempotency:"required",principal:"api_key",summary:"Update a policy"},{name:"policy.withdraw",operationId:"policy_withdraw",method:"POST",path:"/v1/policies/{policyId}/withdraw",idempotency:"required",principal:"api_key",summary:"Withdraw a policy quote"},{name:"premium_claim.approve",operationId:"premium_claim_approve",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/approve",idempotency:"required",principal:"api_key",summary:"Approve instrument"},{name:"premium_claim.assess",operationId:"premium_claim_assess",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/assess",idempotency:"required",principal:"api_key",summary:"Assess instrument"},{name:"premium_claim.attest",operationId:"premium_claim_attest",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/attest",idempotency:"required",principal:"api_key",summary:"Attest instrument"},{name:"premium_claim.create",operationId:"premium_claim_create",method:"POST",path:"/v1/premium-claims",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"premium_claim.deny",operationId:"premium_claim_deny",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/deny",idempotency:"required",principal:"api_key",summary:"Deny instrument"},{name:"premium_claim.list",operationId:"premium_claim_list",method:"GET",path:"/v1/premium-claims",idempotency:"not_required",principal:"api_key",summary:"List premium claims"},{name:"premium_claim.pay",operationId:"premium_claim_pay",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/pay",idempotency:"required",principal:"api_key",summary:"Pay instrument"},{name:"premium_claim.record_authority",operationId:"premium_claim_record_authority",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/record-authority",idempotency:"required",principal:"api_key",summary:"Record Authority instrument"},{name:"premium_claim.retrieve",operationId:"premium_claim_retrieve",method:"GET",path:"/v1/premium-claims/{premiumClaimId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a premium claim"},{name:"premium_claim.reverse",operationId:"premium_claim_reverse",method:"POST",path:"/v1/premium-claims/{premiumClaimId}/reverse",idempotency:"required",principal:"api_key",summary:"Reverse instrument"},{name:"premium_cover.attest",operationId:"premium_cover_attest",method:"POST",path:"/v1/premium-covers/{premiumCoverId}/attest",idempotency:"required",principal:"api_key",summary:"Attest instrument"},{name:"premium_cover.bind",operationId:"premium_cover_bind",method:"POST",path:"/v1/premium-covers/{premiumCoverId}/bind",idempotency:"required",principal:"api_key",summary:"Bind instrument"},{name:"premium_cover.cancel",operationId:"premium_cover_cancel",method:"POST",path:"/v1/premium-covers/{premiumCoverId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel instrument"},{name:"premium_cover.create",operationId:"premium_cover_create",method:"POST",path:"/v1/premium-covers",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"premium_cover.lapse",operationId:"premium_cover_lapse",method:"POST",path:"/v1/premium-covers/{premiumCoverId}/lapse",idempotency:"required",principal:"api_key",summary:"Lapse instrument"},{name:"premium_cover.list",operationId:"premium_cover_list",method:"GET",path:"/v1/premium-covers",idempotency:"not_required",principal:"api_key",summary:"List premium covers"},{name:"premium_cover.retrieve",operationId:"premium_cover_retrieve",method:"GET",path:"/v1/premium-covers/{premiumCoverId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a premium cover"},{name:"premium_slice.collect",operationId:"premium_slice_collect",method:"POST",path:"/v1/premium-slices/{premiumSliceId}/collect",idempotency:"required",principal:"api_key",summary:"Collect instrument"},{name:"premium_slice.create",operationId:"premium_slice_create",method:"POST",path:"/v1/premium-slices",idempotency:"required",principal:"api_key",summary:"Create instrument"},{name:"premium_slice.list",operationId:"premium_slice_list",method:"GET",path:"/v1/premium-slices",idempotency:"not_required",principal:"api_key",summary:"List premium slices"},{name:"premium_slice.refund",operationId:"premium_slice_refund",method:"POST",path:"/v1/premium-slices/{premiumSliceId}/refund",idempotency:"required",principal:"api_key",summary:"Refund instrument"},{name:"premium_slice.retrieve",operationId:"premium_slice_retrieve",method:"GET",path:"/v1/premium-slices/{premiumSliceId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a premium slice"},{name:"priced_borrower_limit.approve",operationId:"priced_borrower_limit_approve",method:"POST",path:"/v1/priced-borrower-limits/{pricedBorrowerLimitId}/approve",idempotency:"required",principal:"api_key",summary:"Approve the limit"},{name:"priced_borrower_limit.close",operationId:"priced_borrower_limit_close",method:"POST",path:"/v1/priced-borrower-limits/{pricedBorrowerLimitId}/close",idempotency:"required",principal:"api_key",summary:"Close the limit without moving money"},{name:"priced_borrower_limit.create",operationId:"priced_borrower_limit_create",method:"POST",path:"/v1/priced-borrower-limits",idempotency:"required",principal:"api_key",summary:"Propose a bound limit"},{name:"priced_borrower_limit.list",operationId:"priced_borrower_limit_list",method:"GET",path:"/v1/priced-borrower-limits",idempotency:"not_required",principal:"api_key",summary:"List priced borrower limits"},{name:"priced_borrower_limit.retrieve",operationId:"priced_borrower_limit_retrieve",method:"GET",path:"/v1/priced-borrower-limits/{pricedBorrowerLimitId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced borrower limit"},{name:"priced_borrower_limit.update",operationId:"priced_borrower_limit_update",method:"PATCH",path:"/v1/priced-borrower-limits/{pricedBorrowerLimitId}",idempotency:"required",principal:"api_key",summary:"Update a priced borrower limit"},{name:"priced_collections_case.assign",operationId:"priced_collections_case_assign",method:"POST",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}/assign",idempotency:"required",principal:"api_key",summary:"Ask the licensed agency to accept this referral"},{name:"priced_collections_case.create",operationId:"priced_collections_case_create",method:"POST",path:"/v1/priced-collections-cases",idempotency:"required",principal:"api_key",summary:"Refer an overdue slice without creating another debt"},{name:"priced_collections_case.list",operationId:"priced_collections_case_list",method:"GET",path:"/v1/priced-collections-cases",idempotency:"not_required",principal:"api_key",summary:"List priced collections cases"},{name:"priced_collections_case.recall",operationId:"priced_collections_case_recall",method:"POST",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}/recall",idempotency:"required",principal:"api_key",summary:"Recall the referral without moving money"},{name:"priced_collections_case.recover",operationId:"priced_collections_case_recover",method:"POST",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}/recover",idempotency:"required",principal:"api_key",summary:"Recover instrument"},{name:"priced_collections_case.retrieve",operationId:"priced_collections_case_retrieve",method:"GET",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced collections case"},{name:"priced_collections_case.return_uncollected",operationId:"priced_collections_case_return_uncollected",method:"POST",path:"/v1/priced-collections-cases/{pricedCollectionsCaseId}/return-uncollected",idempotency:"required",principal:"api_key",summary:"Record an unsuccessful referral without forgiving the debt"},{name:"priced_contact_attempt.create",operationId:"priced_contact_attempt_create",method:"POST",path:"/v1/priced-contact-attempts",idempotency:"required",principal:"api_key",summary:"Bind contact evidence to the assigned case and its exact debt"},{name:"priced_contact_attempt.list",operationId:"priced_contact_attempt_list",method:"GET",path:"/v1/priced-contact-attempts",idempotency:"not_required",principal:"api_key",summary:"List priced contact attempts"},{name:"priced_contact_attempt.retrieve",operationId:"priced_contact_attempt_retrieve",method:"GET",path:"/v1/priced-contact-attempts/{pricedContactAttemptId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced contact attempt"},{name:"priced_contact_attempt.void",operationId:"priced_contact_attempt_void",method:"POST",path:"/v1/priced-contact-attempts/{pricedContactAttemptId}/void",idempotency:"required",principal:"api_key",summary:"Void mistaken contact evidence without deleting it"},{name:"priced_installment.complete",operationId:"priced_installment_complete",method:"POST",path:"/v1/priced-installments/{pricedInstallmentId}/complete",idempotency:"required",principal:"api_key",summary:"Close the slice only after its principal and profit have paid exactly"},{name:"priced_installment.create",operationId:"priced_installment_create",method:"POST",path:"/v1/priced-installments",idempotency:"required",principal:"api_key",summary:"Schedule a slice before disbursement freezes the schedule"},{name:"priced_installment.list",operationId:"priced_installment_list",method:"GET",path:"/v1/priced-installments",idempotency:"not_required",principal:"api_key",summary:"List priced installments"},{name:"priced_installment.retrieve",operationId:"priced_installment_retrieve",method:"GET",path:"/v1/priced-installments/{pricedInstallmentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced installment"},{name:"priced_installment_payment.create",operationId:"priced_installment_payment_create",method:"POST",path:"/v1/priced-installment-payments",idempotency:"required",principal:"api_key",summary:"Bind a payment to one live slice and its obligation"},{name:"priced_installment_payment.list",operationId:"priced_installment_payment_list",method:"GET",path:"/v1/priced-installment-payments",idempotency:"not_required",principal:"api_key",summary:"List priced installment payments"},{name:"priced_installment_payment.repay",operationId:"priced_installment_payment_repay",method:"POST",path:"/v1/priced-installment-payments/{pricedInstallmentPaymentId}/repay",idempotency:"required",principal:"api_key",summary:"Allocate the identified payment to outstanding debt in the authored order"},{name:"priced_installment_payment.retrieve",operationId:"priced_installment_payment_retrieve",method:"GET",path:"/v1/priced-installment-payments/{pricedInstallmentPaymentId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced installment payment"},{name:"priced_obligation.complete",operationId:"priced_obligation_complete",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/complete",idempotency:"required",principal:"api_key",summary:"Close only after all dated slices have paid exactly"},{name:"priced_obligation.create",operationId:"priced_obligation_create",method:"POST",path:"/v1/priced-obligations",idempotency:"required",principal:"api_key",summary:"Bind the signed terms and approved limits"},{name:"priced_obligation.disburse",operationId:"priced_obligation_disburse",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/disburse",idempotency:"required",principal:"api_key",summary:"Disburse the exact principal once after all slices exist"},{name:"priced_obligation.list",operationId:"priced_obligation_list",method:"GET",path:"/v1/priced-obligations",idempotency:"not_required",principal:"api_key",summary:"List priced obligations"},{name:"priced_obligation.payoff",operationId:"priced_obligation_payoff",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/payoff",idempotency:"required",principal:"api_key",summary:"Payoff instrument"},{name:"priced_obligation.record_authority",operationId:"priced_obligation_record_authority",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/record-authority",idempotency:"required",principal:"api_key",summary:"Record Authority instrument"},{name:"priced_obligation.record_write_off_authority",operationId:"priced_obligation_record_write_off_authority",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/record-write-off-authority",idempotency:"required",principal:"api_key",summary:"Record Write Off Authority instrument"},{name:"priced_obligation.retrieve",operationId:"priced_obligation_retrieve",method:"GET",path:"/v1/priced-obligations/{pricedObligationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced obligation"},{name:"priced_obligation.write_off",operationId:"priced_obligation_write_off",method:"POST",path:"/v1/priced-obligations/{pricedObligationId}/write-off",idempotency:"required",principal:"api_key",summary:"Stop future collections without moving or refunding cash"},{name:"priced_portfolio_limit.approve",operationId:"priced_portfolio_limit_approve",method:"POST",path:"/v1/priced-portfolio-limits/{pricedPortfolioLimitId}/approve",idempotency:"required",principal:"api_key",summary:"Approve the limit"},{name:"priced_portfolio_limit.close",operationId:"priced_portfolio_limit_close",method:"POST",path:"/v1/priced-portfolio-limits/{pricedPortfolioLimitId}/close",idempotency:"required",principal:"api_key",summary:"Close the limit without moving money"},{name:"priced_portfolio_limit.create",operationId:"priced_portfolio_limit_create",method:"POST",path:"/v1/priced-portfolio-limits",idempotency:"required",principal:"api_key",summary:"Propose a bound limit"},{name:"priced_portfolio_limit.list",operationId:"priced_portfolio_limit_list",method:"GET",path:"/v1/priced-portfolio-limits",idempotency:"not_required",principal:"api_key",summary:"List priced portfolio limits"},{name:"priced_portfolio_limit.retrieve",operationId:"priced_portfolio_limit_retrieve",method:"GET",path:"/v1/priced-portfolio-limits/{pricedPortfolioLimitId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a priced portfolio limit"},{name:"product.activation.retrieve",operationId:"product_activation_retrieve",method:"GET",path:"/v1/products/{productId}/activation",idempotency:"not_required",principal:"api_key",summary:"Retrieve product activation readiness and cost"},{name:"product.balance_sheet.retrieve",operationId:"product_balance_sheet_retrieve",method:"GET",path:"/v1/products/{productId}/balance-sheet",idempotency:"not_required",principal:"api_key",summary:"Retrieve the product balance sheet"},{name:"product.build.kit.download",operationId:"product_build_kit_download",method:"POST",path:"/v1/products/{productId}/build/kit/downloads",idempotency:"required",principal:"user_session",summary:"Prepare a Hyperscale Kit download"},{name:"product.build.kit.retrieve",operationId:"product_build_kit_retrieve",method:"GET",path:"/v1/products/{productId}/build/kit",idempotency:"not_required",principal:"user_session",summary:"Retrieve the Hyperscale Kit manifest for a product build"},{name:"product.build.retrieve",operationId:"product_build_retrieve",method:"GET",path:"/v1/products/{productId}/build",idempotency:"not_required",principal:"user_session",summary:"Retrieve product setup details"},{name:"product.capability.retire",operationId:"product_capability_retire",method:"POST",path:"/v1/product-capabilities/{productCapabilityId}/retire",idempotency:"required",principal:"user_session",summary:"Retire a product capability"},{name:"product.capability.unretire",operationId:"product_capability_unretire",method:"POST",path:"/v1/product-capabilities/{productCapabilityId}/unretire",idempotency:"required",principal:"user_session",summary:"Unretire a product capability"},{name:"product.close",operationId:"product_close",method:"POST",path:"/v1/products/{productId}/close",idempotency:"required",principal:"user_session",summary:"Close a product"},{name:"product.desk.execute",operationId:"product_desk_execute",method:"POST",path:"/v1/products/{productId}/desk/execute",idempotency:"required",principal:"user_session",summary:"Execute an internal transfer or reservation from the product desk"},{name:"product.dials.configure",operationId:"product_dials_configure",method:"POST",path:"/v1/products/{productId}/dials",idempotency:"required",principal:"api_key",summary:"Configure a product dial"},{name:"product.dials.retrieve",operationId:"product_dials_retrieve",method:"GET",path:"/v1/products/{productId}/dials",idempotency:"not_required",principal:"api_key",summary:"Retrieve configured product dials"},{name:"product.disable",operationId:"product_disable",method:"POST",path:"/v1/products/{productId}/disable",idempotency:"required",principal:"user_session",summary:"Disable a product"},{name:"product.earn.rate.list",operationId:"product_earn_rate_list",method:"GET",path:"/v1/products/{productId}/earn-rates",idempotency:"not_required",principal:"api_key",summary:"List product earn rates"},{name:"product.earn.rate.set",operationId:"product_earn_rate_set",method:"POST",path:"/v1/products/{productId}/earn-rates",idempotency:"required",principal:"api_key",summary:"Configure a product earn rate"},{name:"product.earnings.settle",operationId:"product_earnings_settle",method:"POST",path:"/v1/products/{productId}/earnings/settlements",idempotency:"required",principal:"api_key",summary:"Settle product earnings"},{name:"product.guidance.retrieve",operationId:"product_guidance_retrieve",method:"GET",path:"/v1/products/{productId}/guidance",idempotency:"not_required",principal:"api_key",summary:"Retrieve deterministic product guidance"},{name:"product.instruments.compose",operationId:"product_instruments_compose",method:"POST",path:"/v1/products/instruments-compose",idempotency:"required",principal:"user_session",summary:"Create a Product from HSX source or business instruments"},{name:"product.list",operationId:"product_list",method:"GET",path:"/v1/products",idempotency:"not_required",principal:"api_key",summary:"List your Products"},{name:"product.margin.retrieve",operationId:"product_margin_retrieve",method:"GET",path:"/v1/products/{productId}/margin",idempotency:"not_required",principal:"api_key",summary:"Retrieve the product margin view"},{name:"product.operation_set.retrieve",operationId:"product_operation_set_retrieve",method:"GET",path:"/v1/products/{productId}/operation-set",idempotency:"not_required",principal:"api_key",summary:"Retrieve a product's frozen operation set"},{name:"product.primitives.create",operationId:"product_primitives_create",method:"POST",path:"/v1/products/primitives-create",idempotency:"required",principal:"user_session",summary:"Create a Product from horizontal primitives"},{name:"product.reactivate",operationId:"product_reactivate",method:"POST",path:"/v1/products/{productId}/reactivate",idempotency:"required",principal:"user_session",summary:"Reactivate a product"},{name:"product.recompose",operationId:"product_recompose",method:"POST",path:"/v1/products/recompose",idempotency:"required",principal:"user_session",summary:"Recompose a Product around a new instrument set"},{name:"product.retrieve",operationId:"product_retrieve",method:"GET",path:"/v1/products/{productId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Product"},{name:"product.treasury.provision",operationId:"product_treasury_provision",method:"POST",path:"/v1/products/{productId}/treasury/provision",idempotency:"required",principal:"api_key",summary:"Provision product treasury accounts"},{name:"product.treasury.retrieve",operationId:"product_treasury_retrieve",method:"GET",path:"/v1/products/{productId}/treasury",idempotency:"not_required",principal:"api_key",summary:"Retrieve product treasury balances"},{name:"product.update",operationId:"product_update",method:"PATCH",path:"/v1/products/{productId}",idempotency:"required",principal:"api_key",summary:"Rename a product"},{name:"product_capability.list",operationId:"product_capability_list",method:"GET",path:"/v1/product-capabilities",idempotency:"not_required",principal:"user_session",summary:"List Product capabilities"},{name:"product_capability.retrieve",operationId:"product_capability_retrieve",method:"GET",path:"/v1/product-capabilities/{productCapabilityId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Product capability"},{name:"receipt.list",operationId:"receipt_list",method:"GET",path:"/v1/receipts",idempotency:"not_required",principal:"api_key",summary:"List Receipts"},{name:"receipt.retrieve",operationId:"receipt_retrieve",method:"GET",path:"/v1/receipts/{receiptId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Receipt"},{name:"reporting_artifact.list",operationId:"reporting_artifact_list",method:"GET",path:"/v1/reporting-artifacts",idempotency:"not_required",principal:"user_session",summary:"List Reporting artifacts"},{name:"reporting_artifact.retrieve",operationId:"reporting_artifact_retrieve",method:"GET",path:"/v1/reporting-artifacts/{reportingArtifactId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Reporting artifact"},{name:"sale_settlement.abandon",operationId:"sale_settlement_abandon",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/abandon",idempotency:"required",principal:"api_key",summary:"Abandon an unfunded sale settlement"},{name:"sale_settlement.cancel",operationId:"sale_settlement_cancel",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a sale settlement"},{name:"sale_settlement.collect_service_fee",operationId:"sale_settlement_collect_service_fee",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/collect-service-fee",idempotency:"required",principal:"api_key",summary:"Collect the sale settlement service fee"},{name:"sale_settlement.confirm_handover",operationId:"sale_settlement_confirm_handover",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/confirm-handover",idempotency:"required",principal:"api_key",summary:"Confirm handover of a sale settlement"},{name:"sale_settlement.create",operationId:"sale_settlement_create",method:"POST",path:"/v1/sale-settlements",idempotency:"required",principal:"api_key",summary:"Create a sale settlement"},{name:"sale_settlement.fund_piece",operationId:"sale_settlement_fund_piece",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/fund-piece",idempotency:"required",principal:"api_key",summary:"Fund a piece of a sale settlement"},{name:"sale_settlement.list",operationId:"sale_settlement_list",method:"GET",path:"/v1/sale-settlements",idempotency:"not_required",principal:"api_key",summary:"List sale settlements"},{name:"sale_settlement.refund_piece",operationId:"sale_settlement_refund_piece",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/refund-piece",idempotency:"required",principal:"api_key",summary:"Refund a piece of a sale settlement"},{name:"sale_settlement.release_piece",operationId:"sale_settlement_release_piece",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/release-piece",idempotency:"required",principal:"api_key",summary:"Release a piece of a sale settlement"},{name:"sale_settlement.retrieve",operationId:"sale_settlement_retrieve",method:"GET",path:"/v1/sale-settlements/{saleSettlementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a sale settlement"},{name:"sale_settlement.unfund_piece",operationId:"sale_settlement_unfund_piece",method:"POST",path:"/v1/sale-settlements/{saleSettlementId}/unfund-piece",idempotency:"required",principal:"api_key",summary:"Unfund a piece of a sale settlement"},{name:"sandbox.account.fund",operationId:"sandbox_account_fund",method:"POST",path:"/v1/sandbox/account-funding",idempotency:"required",principal:"api_key",summary:"Fund a sandbox account"},{name:"sandbox.beneficiary.accept",operationId:"sandbox_beneficiary_accept",method:"POST",path:"/v1/sandbox/beneficiaries/{beneficiaryId}/accept",idempotency:"required",principal:"api_key",summary:"Accept and activate a sandbox beneficiary at the sponsor bank"},{name:"sandbox.clock.advance",operationId:"sandbox_clock_advance",method:"POST",path:"/v1/sandbox/clock/advance",idempotency:"required",principal:"api_key",summary:"Advance the sandbox Product clock"},{name:"sandbox.customer.onboard",operationId:"sandbox_customer_onboard",method:"POST",path:"/v1/sandbox/customer-onboarding",idempotency:"required",principal:"api_key",summary:"Create a sandbox customer with cleared KYC"},{name:"sandbox.customer_access.activate",operationId:"sandbox_customer_access_activate",method:"POST",path:"/v1/sandbox/customer-access/{customerAccessId}/activate",idempotency:"required",principal:"api_key",summary:"Activate sandbox customer access"},{name:"sandbox.platform.fire",operationId:"sandbox_platform_fire",method:"POST",path:"/v1/sandbox/platform/fire",idempotency:"required",principal:"api_key",summary:"Run a Product platform action in sandbox"},{name:"sandbox_bank_credit.request",operationId:"sandbox_bank_credit_request",method:"POST",path:"/v1/sandbox-bank-credits",idempotency:"required",principal:"api_key",summary:"Queue a sandbox bank credit"},{name:"savings_circle.close",operationId:"savings_circle_close",method:"POST",path:"/v1/savings-circles/{savingsCircleId}/close",idempotency:"required",principal:"api_key",summary:"Close a completed circle"},{name:"savings_circle.create",operationId:"savings_circle_create",method:"POST",path:"/v1/savings-circles",idempotency:"required",principal:"api_key",summary:"Form a savings circle"},{name:"savings_circle.disband",operationId:"savings_circle_disband",method:"POST",path:"/v1/savings-circles/{savingsCircleId}/disband",idempotency:"required",principal:"api_key",summary:"Disband a forming circle"},{name:"savings_circle.list",operationId:"savings_circle_list",method:"GET",path:"/v1/savings-circles",idempotency:"not_required",principal:"api_key",summary:"List savings circles"},{name:"savings_circle.retrieve",operationId:"savings_circle_retrieve",method:"GET",path:"/v1/savings-circles/{savingsCircleId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a savings circle"},{name:"share_allocation.cancel",operationId:"share_allocation_cancel",method:"POST",path:"/v1/share-allocations/{shareAllocationId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a share allocation"},{name:"share_allocation.create",operationId:"share_allocation_create",method:"POST",path:"/v1/share-allocations",idempotency:"required",principal:"api_key",summary:"Subscribe to shares"},{name:"share_allocation.list",operationId:"share_allocation_list",method:"GET",path:"/v1/share-allocations",idempotency:"not_required",principal:"api_key",summary:"List share allocations"},{name:"share_allocation.retrieve",operationId:"share_allocation_retrieve",method:"GET",path:"/v1/share-allocations/{shareAllocationId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a share allocation"},{name:"share_allocation.settle",operationId:"share_allocation_settle",method:"POST",path:"/v1/share-allocations/{shareAllocationId}/settle",idempotency:"required",principal:"api_key",summary:"Settle a share allocation"},{name:"share_offering.close",operationId:"share_offering_close",method:"POST",path:"/v1/share-offerings/{shareOfferingId}/close",idempotency:"required",principal:"api_key",summary:"Close a share offering"},{name:"share_offering.create",operationId:"share_offering_create",method:"POST",path:"/v1/share-offerings",idempotency:"required",principal:"api_key",summary:"Draft a share offering"},{name:"share_offering.list",operationId:"share_offering_list",method:"GET",path:"/v1/share-offerings",idempotency:"not_required",principal:"api_key",summary:"List share offerings"},{name:"share_offering.publish",operationId:"share_offering_publish",method:"POST",path:"/v1/share-offerings/{shareOfferingId}/publish",idempotency:"required",principal:"api_key",summary:"Publish a share offering"},{name:"share_offering.retrieve",operationId:"share_offering_retrieve",method:"GET",path:"/v1/share-offerings/{shareOfferingId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a share offering"},{name:"subject.create",operationId:"subject_create",method:"POST",path:"/v1/subjects",idempotency:"required",principal:"api_key",summary:"Create a subject"},{name:"subject.list",operationId:"subject_list",method:"GET",path:"/v1/subjects",idempotency:"not_required",principal:"api_key",summary:"List Subjects"},{name:"subject.retrieve",operationId:"subject_retrieve",method:"GET",path:"/v1/subjects/{subjectId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Subject"},{name:"subject_kind.create",operationId:"subject_kind_create",method:"POST",path:"/v1/subject-kinds",idempotency:"required",principal:"user_session",summary:"Register a subject kind"},{name:"subject_kind.list",operationId:"subject_kind_list",method:"GET",path:"/v1/subject-kinds",idempotency:"not_required",principal:"api_key",summary:"List registered subject kinds"},{name:"support.booking.cancel",operationId:"support_booking_cancel",method:"POST",path:"/v1/support/bookings/{bookingId}/cancel",idempotency:"required",principal:"user_session",summary:"Cancel a support booking"},{name:"support.booking.request",operationId:"support_booking_request",method:"POST",path:"/v1/support/bookings",idempotency:"required",principal:"user_session",summary:"Book a video-call session with support"},{name:"support.ticket.close",operationId:"support_ticket_close",method:"POST",path:"/v1/support/tickets/{ticketId}/close",idempotency:"required",principal:"user_session",summary:"Close a support ticket"},{name:"support.ticket.message.post",operationId:"support_ticket_message_post",method:"POST",path:"/v1/support/tickets/{ticketId}/messages",idempotency:"required",principal:"user_session",summary:"Reply on a support ticket"},{name:"support.ticket.open",operationId:"support_ticket_open",method:"POST",path:"/v1/support/tickets",idempotency:"required",principal:"user_session",summary:"Open a support ticket"},{name:"support_booking.list",operationId:"support_booking_list",method:"GET",path:"/v1/support-bookings",idempotency:"not_required",principal:"user_session",summary:"List Support bookings"},{name:"support_booking.retrieve",operationId:"support_booking_retrieve",method:"GET",path:"/v1/support-bookings/{supportBookingId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Support booking"},{name:"support_plan_selection.list",operationId:"support_plan_selection_list",method:"GET",path:"/v1/support-plan-selections",idempotency:"not_required",principal:"user_session",summary:"List Support plans"},{name:"support_plan_selection.retrieve",operationId:"support_plan_selection_retrieve",method:"GET",path:"/v1/support-plan-selections/{supportPlanSelectionId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Support plan"},{name:"support_ticket.list",operationId:"support_ticket_list",method:"GET",path:"/v1/support-tickets",idempotency:"not_required",principal:"user_session",summary:"List Support tickets"},{name:"support_ticket.retrieve",operationId:"support_ticket_retrieve",method:"GET",path:"/v1/support-tickets/{supportTicketId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Support ticket"},{name:"support_ticket_message.list",operationId:"support_ticket_message_list",method:"GET",path:"/v1/support-ticket-messages",idempotency:"not_required",principal:"user_session",summary:"List Support messages"},{name:"support_ticket_message.retrieve",operationId:"support_ticket_message_retrieve",method:"GET",path:"/v1/support-ticket-messages/{supportTicketMessageId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Support message"},{name:"system.health",operationId:"system_health",method:"GET",path:"/v1/health",idempotency:"not_required",principal:"public",summary:"Check API health"},{name:"team.member.invite",operationId:"team_member_invite",method:"POST",path:"/v1/team/members/invite",idempotency:"required",principal:"user_session",summary:"Invite an email address to the caller's team"},{name:"team.member.invite.revoke",operationId:"team_member_invite_revoke",method:"POST",path:"/v1/team/members/invitations/{invitationId}/revoke",idempotency:"required",principal:"user_session",summary:"Revoke a pending team invitation"},{name:"team.member.list",operationId:"team_member_list",method:"GET",path:"/v1/team/members",idempotency:"not_required",principal:"user_session",summary:"List the caller's team members and pending invitations"},{name:"team.member.mfa.reset",operationId:"team_member_mfa_reset",method:"POST",path:"/v1/team/members/{userId}/mfa/reset",idempotency:"required",principal:"user_session",summary:"Reset another team member's lost MFA factor"},{name:"team.member.remove",operationId:"team_member_remove",method:"POST",path:"/v1/team/members/{userId}/remove",idempotency:"required",principal:"user_session",summary:"Remove a member from the caller's team"},{name:"team.member.role.update",operationId:"team_member_role_update",method:"POST",path:"/v1/team/members/{userId}/role",idempotency:"required",principal:"user_session",summary:"Change a team member's role"},{name:"team.role.create",operationId:"team_role_create",method:"POST",path:"/v1/team/roles",idempotency:"required",principal:"user_session",summary:"Create a custom team role"},{name:"team.role.delete",operationId:"team_role_delete",method:"POST",path:"/v1/team/roles/{roleId}/delete",idempotency:"required",principal:"user_session",summary:"Delete an unused custom role"},{name:"team.role.list",operationId:"team_role_list",method:"GET",path:"/v1/team/roles",idempotency:"not_required",principal:"user_session",summary:"List the caller's custom team roles"},{name:"team.role.update",operationId:"team_role_update",method:"POST",path:"/v1/team/roles/{roleId}",idempotency:"required",principal:"user_session",summary:"Rename a custom role or change its permissions"},{name:"tenant.activation_requirements.retrieve",operationId:"tenant_activation_requirements_retrieve",method:"GET",path:"/v1/tenants/{tenantId}/activation-requirements",idempotency:"not_required",principal:"user_session",summary:"Retrieve organization activation requirements"},{name:"tenant.bank_connection.configure",operationId:"tenant_bank_connection_configure",method:"POST",path:"/v1/tenants/{tenantId}/bank-connection",idempotency:"required",principal:"user_session",summary:"Configure the organization's bank connection"},{name:"tenant.bank_connection.test",operationId:"tenant_bank_connection_test",method:"POST",path:"/v1/tenants/{tenantId}/bank-connection/tests",idempotency:"required",principal:"user_session",summary:"Test the organization's bank connection"},{name:"tenant.bank_onboarding.submit",operationId:"tenant_bank_onboarding_submit",method:"POST",path:"/v1/tenants/{tenantId}/bank-onboarding-submissions",idempotency:"required",principal:"user_session",summary:"Submit verified organization details for bank onboarding"},{name:"tenant.list",operationId:"tenant_list",method:"GET",path:"/v1/tenants",idempotency:"not_required",principal:"user_session",summary:"List Companies"},{name:"tenant.retrieve",operationId:"tenant_retrieve",method:"GET",path:"/v1/tenants/{tenantId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Company"},{name:"tenant.safeguarding.retrieve",operationId:"tenant_safeguarding_retrieve",method:"GET",path:"/v1/treasury/safeguarding",idempotency:"not_required",principal:"user_session",summary:"Retrieve safeguarding standing per master"},{name:"tenant.security.configure",operationId:"tenant_security_configure",method:"POST",path:"/v1/tenant/security",idempotency:"required",principal:"user_session",summary:"Configure the organization security policy"},{name:"tenant.settlement_iban.set",operationId:"tenant_settlement_iban_set",method:"POST",path:"/v1/treasury/settlement-iban",idempotency:"required",principal:"user_session",summary:"Set the organization settlement IBAN"},{name:"tenant.treasury.retrieve",operationId:"tenant_treasury_retrieve",method:"GET",path:"/v1/treasury",idempotency:"not_required",principal:"user_session",summary:"Retrieve the organization treasury"},{name:"tenant.treasury.statements.retrieve",operationId:"tenant_treasury_statements_retrieve",method:"GET",path:"/v1/treasury/statements",idempotency:"not_required",principal:"user_session",summary:"Retrieve the organization treasury statement window"},{name:"tenant.update",operationId:"tenant_update",method:"PATCH",path:"/v1/tenants/{tenantId}",idempotency:"required",principal:"user_session",summary:"Rename the organization"},{name:"tenant_bank_connection.list",operationId:"tenant_bank_connection_list",method:"GET",path:"/v1/tenant-bank-connections",idempotency:"not_required",principal:"user_session",summary:"List Bank connections"},{name:"tenant_bank_connection.retrieve",operationId:"tenant_bank_connection_retrieve",method:"GET",path:"/v1/tenant-bank-connections/{tenantBankConnectionId}",idempotency:"not_required",principal:"user_session",summary:"Retrieve a Bank connection"},{name:"trade_settlement.abandon",operationId:"trade_settlement_abandon",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/abandon",idempotency:"required",principal:"api_key",summary:"Abandon the trade before its atomic funding batch"},{name:"trade_settlement.cancel",operationId:"trade_settlement_cancel",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel and refund both funded trade sides atomically"},{name:"trade_settlement.create",operationId:"trade_settlement_create",method:"POST",path:"/v1/trade-settlements",idempotency:"required",principal:"api_key",summary:"Create a two-party trade settlement"},{name:"trade_settlement.dispute",operationId:"trade_settlement_dispute",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/dispute",idempotency:"required",principal:"api_key",summary:"Claw back the whole released trade before maturity"},{name:"trade_settlement.fund",operationId:"trade_settlement_fund",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/fund",idempotency:"required",principal:"api_key",summary:"Fund both trade sides and collect both custody fees atomically"},{name:"trade_settlement.list",operationId:"trade_settlement_list",method:"GET",path:"/v1/trade-settlements",idempotency:"not_required",principal:"api_key",summary:"List trade settlements"},{name:"trade_settlement.release",operationId:"trade_settlement_release",method:"POST",path:"/v1/trade-settlements/{tradeSettlementId}/release",idempotency:"required",principal:"api_key",summary:"Reserve both trade payouts for the clawback window"},{name:"trade_settlement.retrieve",operationId:"trade_settlement_retrieve",method:"GET",path:"/v1/trade-settlements/{tradeSettlementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a trade settlement"},{name:"transfer_return.create",operationId:"transfer_return_create",method:"POST",path:"/v1/transfer-returns",idempotency:"required",principal:"api_key",summary:"Initiate a transfer return"},{name:"travel_package.cancel",operationId:"travel_package_cancel",method:"POST",path:"/v1/travel-packages/{travelPackageId}/cancel",idempotency:"required",principal:"api_key",summary:"Cancel a booked travel package"},{name:"travel_package.complete",operationId:"travel_package_complete",method:"POST",path:"/v1/travel-packages/{travelPackageId}/complete",idempotency:"required",principal:"api_key",summary:"Complete a delivered travel package"},{name:"travel_package.confirm",operationId:"travel_package_confirm",method:"POST",path:"/v1/travel-packages/{travelPackageId}/confirm",idempotency:"required",principal:"api_key",summary:"Confirm a travel package"},{name:"travel_package.create",operationId:"travel_package_create",method:"POST",path:"/v1/travel-packages",idempotency:"required",principal:"api_key",summary:"Draft a travel package"},{name:"travel_package.list",operationId:"travel_package_list",method:"GET",path:"/v1/travel-packages",idempotency:"not_required",principal:"api_key",summary:"List travel packages"},{name:"travel_package.retrieve",operationId:"travel_package_retrieve",method:"GET",path:"/v1/travel-packages/{travelPackageId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a travel package"},{name:"trust_evidence.attach",operationId:"trust_evidence_attach",method:"POST",path:"/v1/trust-reviews/{trustReviewId}/evidence",idempotency:"required",principal:"user_session",summary:"Attach trust evidence"},{name:"trust_evidence.list",operationId:"trust_evidence_list",method:"GET",path:"/v1/trust-review-evidence",idempotency:"not_required",principal:"api_key",summary:"List Trust Review evidence"},{name:"trust_evidence.retrieve",operationId:"trust_evidence_retrieve",method:"GET",path:"/v1/trust-review-evidence/{trustEvidenceId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve Trust Review evidence"},{name:"trust_requirement.list",operationId:"trust_requirement_list",method:"GET",path:"/v1/trust-requirements",idempotency:"not_required",principal:"api_key",summary:"List Trust Review requirements"},{name:"trust_requirement.respond",operationId:"trust_requirement_respond",method:"POST",path:"/v1/trust-requirements/{trustRequirementId}/respond",idempotency:"required",principal:"api_key",summary:"Respond to a trust requirement"},{name:"trust_requirement.retrieve",operationId:"trust_requirement_retrieve",method:"GET",path:"/v1/trust-requirements/{trustRequirementId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Trust Review requirement"},{name:"trust_review.create",operationId:"trust_review_create",method:"POST",path:"/v1/trust-reviews",idempotency:"required",principal:"user_session",summary:"Create a trust review"},{name:"trust_review.list",operationId:"trust_review_list",method:"GET",path:"/v1/trust-reviews",idempotency:"not_required",principal:"api_key",summary:"List Trust reviews"},{name:"trust_review.retrieve",operationId:"trust_review_retrieve",method:"GET",path:"/v1/trust-reviews/{trustReviewId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Trust review"},{name:"trust_review.submit",operationId:"trust_review_submit",method:"POST",path:"/v1/trust-reviews/{trustReviewId}/submit",idempotency:"required",principal:"user_session",summary:"Submit a trust review"},{name:"usage_record.list",operationId:"usage_record_list",method:"GET",path:"/v1/usage-records",idempotency:"not_required",principal:"api_key",summary:"List Usage records"},{name:"usage_record.retrieve",operationId:"usage_record_retrieve",method:"GET",path:"/v1/usage-records/{usageRecordId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a Usage record"},{name:"user.email.verification.confirm",operationId:"user_email_verification_confirm",method:"POST",path:"/v1/identity/email-verification/confirm",idempotency:"required",principal:"public",summary:"Confirm a Hyperscale email address from its verification link"},{name:"user.email.verification.request",operationId:"user_email_verification_request",method:"POST",path:"/v1/identity/email-verification/request",idempotency:"required",principal:"user_session",summary:"Mail a fresh email verification link to the current user"},{name:"user.login",operationId:"user_login",method:"POST",path:"/v1/identity/login",idempotency:"required",principal:"public",summary:"Log in a Hyperscale user"},{name:"user.login.mfa.verify",operationId:"user_login_mfa_verify",method:"POST",path:"/v1/identity/login/mfa/verify",idempotency:"required",principal:"public",summary:"Complete a Hyperscale MFA login challenge"},{name:"user.logout",operationId:"user_logout",method:"POST",path:"/v1/identity/logout",idempotency:"required",principal:"user_session",summary:"Log out the current Hyperscale user session"},{name:"user.mfa.recovery_codes.list",operationId:"user_mfa_recovery_codes_list",method:"GET",path:"/v1/identity/mfa/recovery-codes",idempotency:"not_required",principal:"user_session",summary:"Count your remaining MFA recovery codes"},{name:"user.mfa.recovery_codes.regenerate",operationId:"user_mfa_recovery_codes_regenerate",method:"POST",path:"/v1/identity/mfa/recovery-codes/regenerate",idempotency:"required",principal:"user_session",summary:"Replace your MFA recovery codes"},{name:"user.mfa.totp.disable",operationId:"user_mfa_totp_disable",method:"POST",path:"/v1/identity/mfa/totp/disable",idempotency:"required",principal:"user_session",summary:"Disable the current Hyperscale user's active TOTP factor"},{name:"user.mfa.totp.enrollment.begin",operationId:"user_mfa_totp_enrollment_begin",method:"POST",path:"/v1/identity/mfa/totp/enrollment/begin",idempotency:"required",principal:"user_session",summary:"Begin TOTP enrollment for the current Hyperscale user"},{name:"user.mfa.totp.enrollment.confirm",operationId:"user_mfa_totp_enrollment_confirm",method:"POST",path:"/v1/identity/mfa/totp/enrollment/confirm",idempotency:"required",principal:"user_session",summary:"Confirm TOTP enrollment with a first valid code"},{name:"user.password.reset.confirm",operationId:"user_password_reset_confirm",method:"POST",path:"/v1/identity/password-reset/confirm",idempotency:"required",principal:"public",summary:"Confirm a Hyperscale password reset"},{name:"user.password.reset.request",operationId:"user_password_reset_request",method:"POST",path:"/v1/identity/password-reset/request",idempotency:"required",principal:"public",summary:"Request a Hyperscale password reset email"},{name:"user.session.handoff.create",operationId:"user_session_handoff_create",method:"POST",path:"/v1/identity/sessions/handoff",idempotency:"required",principal:"user_session",summary:"Create a session handoff code for host transition"},{name:"user.session.handoff.exchange",operationId:"user_session_handoff_exchange",method:"POST",path:"/v1/identity/sessions/handoff/exchange",idempotency:"required",principal:"public",summary:"Exchange a session handoff code for a new session on target host"},{name:"user.session.list",operationId:"user_session_list",method:"GET",path:"/v1/identity/sessions",idempotency:"not_required",principal:"user_session",summary:"List active Hyperscale user sessions"},{name:"user.session.revoke",operationId:"user_session_revoke",method:"POST",path:"/v1/identity/sessions/{sessionId}/revoke",idempotency:"required",principal:"user_session",summary:"Revoke a Hyperscale user session by id"},{name:"user.signup",operationId:"user_signup",method:"POST",path:"/v1/identity/signup",idempotency:"required",principal:"public",summary:"Sign up a Hyperscale user and create their team"},{name:"vehicle_escrow.collect_penalty",operationId:"vehicle_escrow_collect_penalty",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/collect-penalty",idempotency:"required",principal:"api_key",summary:"Collect a vehicle cancellation penalty"},{name:"vehicle_escrow.confirm_cancel",operationId:"vehicle_escrow_confirm_cancel",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/confirm-cancel",idempotency:"required",principal:"api_key",summary:"Confirm a vehicle escrow cancellation"},{name:"vehicle_escrow.create",operationId:"vehicle_escrow_create",method:"POST",path:"/v1/vehicle-escrows",idempotency:"required",principal:"api_key",summary:"Create a vehicle escrow"},{name:"vehicle_escrow.fund",operationId:"vehicle_escrow_fund",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/fund",idempotency:"required",principal:"api_key",summary:"Fund a vehicle escrow"},{name:"vehicle_escrow.list",operationId:"vehicle_escrow_list",method:"GET",path:"/v1/vehicle-escrows",idempotency:"not_required",principal:"api_key",summary:"List vehicle escrows"},{name:"vehicle_escrow.quote_cancel",operationId:"vehicle_escrow_quote_cancel",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/quote-cancel",idempotency:"required",principal:"api_key",summary:"Quote a vehicle escrow cancellation"},{name:"vehicle_escrow.release",operationId:"vehicle_escrow_release",method:"POST",path:"/v1/vehicle-escrows/{vehicleEscrowId}/release",idempotency:"required",principal:"api_key",summary:"Release a vehicle escrow"},{name:"vehicle_escrow.retrieve",operationId:"vehicle_escrow_retrieve",method:"GET",path:"/v1/vehicle-escrows/{vehicleEscrowId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a vehicle escrow"},{name:"vehicle_escrow.update",operationId:"vehicle_escrow_update",method:"PATCH",path:"/v1/vehicle-escrows/{vehicleEscrowId}",idempotency:"required",principal:"api_key",summary:"Update a vehicle escrow"},{name:"vehicle_listing.complete",operationId:"vehicle_listing_complete",method:"POST",path:"/v1/vehicle-listings/{vehicleListingId}/complete",idempotency:"required",principal:"api_key",summary:"Complete a vehicle listing sale"},{name:"vehicle_listing.create",operationId:"vehicle_listing_create",method:"POST",path:"/v1/vehicle-listings",idempotency:"required",principal:"api_key",summary:"Create a vehicle listing"},{name:"vehicle_listing.delist",operationId:"vehicle_listing_delist",method:"POST",path:"/v1/vehicle-listings/{vehicleListingId}/delist",idempotency:"required",principal:"api_key",summary:"Delist a vehicle listing"},{name:"vehicle_listing.list",operationId:"vehicle_listing_list",method:"GET",path:"/v1/vehicle-listings",idempotency:"not_required",principal:"api_key",summary:"List vehicle listings"},{name:"vehicle_listing.reserve",operationId:"vehicle_listing_reserve",method:"POST",path:"/v1/vehicle-listings/{vehicleListingId}/reserve",idempotency:"required",principal:"api_key",summary:"Reserve a vehicle listing"},{name:"vehicle_listing.retrieve",operationId:"vehicle_listing_retrieve",method:"GET",path:"/v1/vehicle-listings/{vehicleListingId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a vehicle listing"},{name:"vehicle_listing.unreserve",operationId:"vehicle_listing_unreserve",method:"POST",path:"/v1/vehicle-listings/{vehicleListingId}/unreserve",idempotency:"required",principal:"api_key",summary:"Return a reserved vehicle listing to the market"},{name:"vehicle_listing.update",operationId:"vehicle_listing_update",method:"PATCH",path:"/v1/vehicle-listings/{vehicleListingId}",idempotency:"required",principal:"api_key",summary:"Update a vehicle listing"},{name:"wallet.activate",operationId:"wallet_activate",method:"POST",path:"/v1/wallets/{walletId}/activate",idempotency:"required",principal:"api_key",summary:"Activate a wallet"},{name:"wallet.close",operationId:"wallet_close",method:"POST",path:"/v1/wallets/{walletId}/close",idempotency:"required",principal:"api_key",summary:"Close a wallet"},{name:"wallet.create",operationId:"wallet_create",method:"POST",path:"/v1/wallets",idempotency:"required",principal:"api_key",summary:"Create a wallet"},{name:"wallet.freeze",operationId:"wallet_freeze",method:"POST",path:"/v1/wallets/{walletId}/freeze",idempotency:"required",principal:"api_key",summary:"Freeze a wallet"},{name:"wallet.list",operationId:"wallet_list",method:"GET",path:"/v1/wallets",idempotency:"not_required",principal:"api_key",summary:"List wallets"},{name:"wallet.retrieve",operationId:"wallet_retrieve",method:"GET",path:"/v1/wallets/{walletId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a wallet"},{name:"wallet.topup",operationId:"wallet_topup",method:"POST",path:"/v1/wallets/{walletId}/topup",idempotency:"required",principal:"api_key",summary:"Top up a wallet"},{name:"wallet.unfreeze",operationId:"wallet_unfreeze",method:"POST",path:"/v1/wallets/{walletId}/unfreeze",idempotency:"required",principal:"api_key",summary:"Unfreeze a wallet"},{name:"wallet.update",operationId:"wallet_update",method:"PATCH",path:"/v1/wallets/{walletId}",idempotency:"required",principal:"api_key",summary:"Update a wallet"},{name:"wallet.withdraw",operationId:"wallet_withdraw",method:"POST",path:"/v1/wallets/{walletId}/withdraw",idempotency:"required",principal:"api_key",summary:"Withdraw from a wallet"},{name:"wallet_spend.create",operationId:"wallet_spend_create",method:"POST",path:"/v1/wallet-spends",idempotency:"required",principal:"api_key",summary:"Create a wallet spend"},{name:"wallet_spend.list",operationId:"wallet_spend_list",method:"GET",path:"/v1/wallet-spends",idempotency:"not_required",principal:"api_key",summary:"List wallet spends"},{name:"wallet_spend.post",operationId:"wallet_spend_post",method:"POST",path:"/v1/wallet-spends/{walletSpendId}/post",idempotency:"required",principal:"api_key",summary:"Post a wallet spend"},{name:"wallet_spend.refund",operationId:"wallet_spend_refund",method:"POST",path:"/v1/wallet-spends/{walletSpendId}/refund",idempotency:"required",principal:"api_key",summary:"Refund a wallet spend"},{name:"wallet_spend.retrieve",operationId:"wallet_spend_retrieve",method:"GET",path:"/v1/wallet-spends/{walletSpendId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a wallet spend"},{name:"webhook.delivery.list",operationId:"webhook_delivery_list",method:"GET",path:"/v1/webhook-endpoints/{webhookEndpointId}/deliveries",idempotency:"not_required",principal:"api_key",summary:"List webhook deliveries"},{name:"webhook.delivery.resend",operationId:"webhook_delivery_resend",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/deliveries/{webhookDeliveryId}/resend",idempotency:"required",principal:"api_key",summary:"Resend a webhook delivery"},{name:"webhook.endpoint.create",operationId:"webhook_endpoint_create",method:"POST",path:"/v1/webhook-endpoints",idempotency:"required",principal:"api_key",summary:"Create a webhook endpoint"},{name:"webhook.endpoint.delete",operationId:"webhook_endpoint_delete",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/delete",idempotency:"required",principal:"api_key",summary:"Delete a webhook endpoint"},{name:"webhook.endpoint.disable",operationId:"webhook_endpoint_disable",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/disable",idempotency:"required",principal:"api_key",summary:"Disable a webhook endpoint"},{name:"webhook.endpoint.enable",operationId:"webhook_endpoint_enable",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/enable",idempotency:"required",principal:"api_key",summary:"Enable a webhook endpoint"},{name:"webhook.endpoint.list",operationId:"webhook_endpoint_list",method:"GET",path:"/v1/webhook-endpoints",idempotency:"not_required",principal:"api_key",summary:"List webhook endpoints"},{name:"webhook.endpoint.recover",operationId:"webhook_endpoint_recover",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/recover",idempotency:"required",principal:"api_key",summary:"Recover webhook deliveries"},{name:"webhook.endpoint.retrieve",operationId:"webhook_endpoint_retrieve",method:"GET",path:"/v1/webhook-endpoints/{webhookEndpointId}",idempotency:"not_required",principal:"api_key",summary:"Retrieve a webhook endpoint"},{name:"webhook.endpoint.secret.rotate",operationId:"webhook_endpoint_secret_rotate",method:"POST",path:"/v1/webhook-endpoints/{webhookEndpointId}/secret/rotate",idempotency:"required",principal:"api_key",summary:"Rotate a webhook endpoint signing secret"},{name:"webhook.endpoint.update",operationId:"webhook_endpoint_update",method:"PATCH",path:"/v1/webhook-endpoints/{webhookEndpointId}",idempotency:"required",principal:"api_key",summary:"Update a webhook endpoint"}]};var S={wordmark:"HYPERSCALE",columns:80,accent:{truecolour:[45,75,242],ansi16:34},strong:1,dim:2,reset:0,foregroundReset:39,weightReset:22,rule:"-",policy:{requireTTY:!0,honourNoColor:!0,json:"plain",nonTTY:"plain"}};var G="\x1B",Ke="\x07",Lt=new RegExp(`[${G}](?:\\[[0-?]*[ -/]*[@-~]|\\][^${Ke}${G}]*(?:${Ke}|${G}\\\\)|[PX^_][^${G}]*${G}\\\\|.)|[^\\P{Cc}\\t\\n\\r]`,"gu");function Ye(e){return String(e??"").replace(Lt,"")}function w(e,t,r){let i=!!e?.isTTY&&t?.NO_COLOR===void 0&&!r?.json,n=(p,m)=>u=>{let y=Ye(u);return i?`${p}${y}${m}`:y},a=p=>`${G}[${p}m`,o=t&&"COLORTERM"in t?t.COLORTERM:void 0,s=o==="truecolor"||o==="24bit"?`38;2;${S.accent.truecolour.join(";")}`:S.accent.ansi16,c=n(a(S.dim),a(S.weightReset));return{accent:n(a(s),a(S.foregroundReset)),strong:n(a(S.strong),a(S.weightReset)),dim:c,rule:p=>{let m=Number.isFinite(p)?Math.min(S.columns,Math.max(0,Math.floor(p))):S.columns;return c(S.rule.repeat(m))},text:Ye}}var T={wordmark:"HYPERSCALE",tagline:"For the company you have in mind.",viewBox:"0 0 32 32",strokeWidth:.32,paths:["M16 3.5L28.5 9.75V22.25L16 28.5L3.5 22.25V9.75Z","M3.5 9.75L16 16L28.5 9.75","M16 16V28.5","M16 5L24 9V17L16 21L8 17V9Z","M8 9L16 13L24 9","M16 13V21","M16 7L20 9V13L16 15L12 13V9Z","M12 9L16 11L20 9","M16 11V15"],wordmarkWeight:200,wordmarkTracking:"0.055em",strokeOffsetPx:1,wordmarkGapRatio:.25,construction:{slope:"1/2",halfWidths:[12.5,8,4],centres:[[16,16],[16,13],[16,11]],visibleVertexConnections:0,projection:"Three solid isometric cubes, each drawn as its silhouette and front edges, nesting toward the top corner. The outer cube is centred on the master; the middle and inner cubes sit higher so each rests inside the one before. No connecting edges."},sizeRule:{minimumPx:24,cubeCount:3,detailReduction:!1,description:"Keep all three cubes at every size of 24px or above."}};var li=[T.paths[0],T.paths[1],T.paths[2],T.paths[3],T.paths[4],T.paths[5],T.paths[6],T.paths[7],T.paths[8]],ui=T.strokeOffsetPx+T.strokeWidth;var _e=T.wordmark,yi=`${_e}\u2122`;var Me=T.tagline;function Je(e){return[e.strong(_e),"",Me,"",e.accent("Run hyperscale auth login to sign in.")].join(`
|
|
3
|
+
`)}function Fe(e,t){let r=e.text(t.identity),i=[e.strong("Logged in"),"",` Identity: ${r}`];if(t.team){let n=e.text(t.team);i.push(` Team: ${n}`)}return i.join(`
|
|
4
4
|
`)}function fe(e,t){if(!t)return[`${e.strong("Usage:")} hyperscale auth login [--no-browser] [--token <pat>]`,"","Sign in through the portal callback or save a founder PAT.","",e.strong("Options:")," --no-browser Skip browser login. Saves the PAT or fails without one."," --token <pat> Founder PAT. Defaults to HYPERSCALE_TOKEN."," --json Print the saved session summary as one JSON document.","",e.strong("Notes:")," Without a PAT, the CLI opens portal sign-in and accepts one callback."," With --no-browser and no token, the command fails with a login error."," Pass HYPERSCALE_TOKEN or --token to save a PAT.","",e.strong("Example:")," hyperscale auth login --no-browser"].join(`
|
|
5
5
|
`);if("subcommands"in t)return[`${e.strong("Usage:")} hyperscale ${t.prefix} <subcommand> [options]`,"",`Available ${t.prefix} subcommands:`,...t.subcommands.map(([i,n])=>` ${i.padEnd(20)} ${n}`),"",`Run "hyperscale help ${t.prefix} <subcommand>" for detailed options and examples.`].join(`
|
|
6
6
|
`);let r=[`${e.strong("Usage:")} hyperscale ${t.usage}`,"",t.summary,"",e.strong("Options:"),...(t.options??[]).map(i=>` ${i}`)];return t.notes&&t.notes.length>0&&r.push("",e.strong("Notes:"),...t.notes.map(i=>` ${i}`)),t.example&&r.push("",e.strong("Example:"),` ${t.example}`),r.join(`
|
|
7
|
-
`)}function
|
|
8
|
-
`);let i=t.columns.map(s=>e.text(s)),n=t.rows.map(s=>s.map(c=>e.text(c))),a=i.map((s,c)=>Math.max(s.length,...n.map(p=>(p[c]??"").length)));if(a.reduce((s,c)=>s+c,0)+2*(i.length-1)<=80){let s=i.map((c,p)=>p===i.length-1?c:c.padEnd(a[p])).join(" ");r.push(e.strong(s));for(let c of n){let p=i.map((
|
|
9
|
-
`)}function
|
|
7
|
+
`)}function We(e,t){let r=[];if(t.title&&r.push(e.strong(e.text(t.title)),""),t.columns.length===0)return r.join(`
|
|
8
|
+
`);let i=t.columns.map(s=>e.text(s)),n=t.rows.map(s=>s.map(c=>e.text(c))),a=i.map((s,c)=>Math.max(s.length,...n.map(p=>(p[c]??"").length)));if(a.reduce((s,c)=>s+c,0)+2*(i.length-1)<=80){let s=i.map((c,p)=>p===i.length-1?c:c.padEnd(a[p])).join(" ");r.push(e.strong(s));for(let c of n){let p=i.map((m,u)=>{let y=c[u]??"";return u===i.length-1?y:y.padEnd(a[u])}).join(" ");r.push(p)}}else{let s=Math.max(...i.map(c=>c.length));for(let c=0;c<n.length;c++){let p=n[c];c>0&&r.push("");for(let m=0;m<i.length;m++){let u=i[m],y=p[m]??"";r.push(` ${u.padEnd(s)}: ${y}`)}}}return r.join(`
|
|
9
|
+
`)}function N(e,t){let r=[];if(t.title&&r.push(e.strong(e.text(t.title)),""),t.fields.length===0)return r.join(`
|
|
10
10
|
`);let i=t.fields.map(([a,o])=>[e.text(a),e.text(o)]),n=Math.max(...i.map(([a])=>a.length));for(let[a,o]of i){let s=` ${(a+":").padEnd(n+3)}`;if(o.includes(`
|
|
11
11
|
`)){let c=o.split(`
|
|
12
|
-
`);r.push(`${s}${c[0]}`);let p=" ".repeat(s.length);for(let
|
|
13
|
-
`)}function
|
|
14
|
-
`)}function
|
|
15
|
-
`)}var it="https://hyperscale0.ai",nt="sandbox",Oe="hyperscale-cli-session",Jt="/v1/personal-access-tokens/current",we=process.platform==="darwin"?"/usr/bin/security":null,Yt="config.json",Ee="https://hyperscale0.ai/desk/security/tokens",at="https://hyperscale0.ai/request-access",Xe=`Mint a founder PAT in Hyperscale Portal at ${Ee}. Open Security, then Personal access tokens.`,Ft=`Not logged in. Run "hyperscale auth login" to open Hyperscale Portal sign-in. In a headless environment, mint a founder PAT in Hyperscale Portal at ${Ee}. Open Security, then Personal access tokens. Then set HYPERSCALE_TOKEN or pass --token. Unapproved founders can request access at ${at}.`,Wt=`Run "hyperscale auth login". For headless use, mint a founder PAT in Hyperscale Portal at ${Ee}. Open Security, then Personal access tokens. Unapproved founders can request access at ${at}.`,ot=3e4,Vt=2e3,Xt=120*1e3,K={resume:{usage:"resume <reference> [--json]",summary:"Replay a saved request after browser review or a lost response.",notes:["Uses the saved credential, body and idempotency key. No overrides.","Review does not mean execution succeeded. --yes cannot approve money."],example:"hyperscale resume <reference> --json"},"auth login":{usage:"auth login [--scopes <list>] [--no-browser] [--token <pat>]",summary:"Sign in through the portal callback or save a founder PAT.",options:["--scopes <list> Comma-separated scopes. Default: read-only consent.","--product <id> Select the Product route for member PAT calls.","--no-browser Skip browser login. Saves the PAT or fails without one.","--token <pat> Founder PAT. Defaults to HYPERSCALE_TOKEN.","--json Print the saved session summary as one JSON document."],notes:["Without a PAT, the CLI opens portal sign-in and accepts one","localhost callback.","With --no-browser and no token, the command fails with a login","error and fix text. Pass HYPERSCALE_TOKEN or --token to save a PAT.","Set HYPERSCALE_CREDENTIAL_STORE=file to use the 0600 profile file","instead of macOS Keychain."],example:"hyperscale auth login --no-browser"},"auth status":{usage:"auth status [--json]",summary:"Verify and show the active founder PAT and selected Product.",options:["--json Print machine-readable JSON."],example:"hyperscale auth status --json"},"auth logout":{usage:"auth logout [--revoke] [--json]",summary:"Forget the local founder PAT. Optionally revoke it first.",options:["--revoke Revoke the PAT before deleting local state.","--json Print machine-readable JSON."],example:"hyperscale auth logout --revoke"},"product create":{usage:"product create --source <file> --name <name> [--catalog-revision <id>] [--json]",summary:"Create and select a Product. The command refuses a duplicate name.",options:["--source <file> HSX source file for initial Product creation.","--name <name> Required Product name.","--catalog-revision <id> Tenant catalog revision for HSX composition.","--json Print the creation summary as JSON."],example:'hyperscale product create --source product.hsx --name "Custom Product"'},"product list":{usage:"product list [--json]",summary:"List Products in the signed-in company.",options:["--json Print the complete collection as JSON."],example:"hyperscale product list"},"product show":{usage:"product show [id] [--json]",summary:"Show a Product summary, or the complete Product document as JSON.",options:["--json Print the complete Product document."],example:"hyperscale product show prd_sandbox_..."},"product select":{usage:"product select <id> [--json]",summary:"Verify a Product and save it as the default for later commands.",options:["--token <pat> Founder PAT. Defaults to HYPERSCALE_TOKEN or the stored login.","--base-url <url> API origin. Defaults to the active founder profile.","--environment <name> sandbox or live. Defaults to the active founder profile.","--json Print the selected Product id as JSON."],notes:["The CLI stores the selection in the active founder profile.","When --product is absent, commands use the saved selection.","This includes product show, compose plan/apply, and key commands.","Product create selects the Product it creates."],example:"hyperscale product select prd_sandbox_..."},"product actions":{usage:"product actions [operation-id] [--product <id>] [--json]",summary:"List frozen public actions or show one action's full schemas.",options:["--product <id> Product to inspect. Defaults to the selected Product.","--api-key <key> Product API key. Defaults to HYPERSCALE_API_KEY.","--json Print machine-readable JSON."],notes:["Setup operation details include the public input schema used by hyperscale call.","When that schema has no required fields, omit --input or pass {}."],example:"hyperscale product actions escrow_order.placeBuyerHold --json"},"product run":{usage:"product run <operation-id> [--input <json> | --input-file <path>] [--idempotency-key <key>] [--json]",summary:"Run one frozen public action with a Product API key.",options:["--input <json> JSON input object. Stdin is used when piped.","--input-file <path> Read the JSON input object from a file.","--product <id> Product to call. Defaults to the selected Product.","--api-key <key> Product API key. Defaults to HYPERSCALE_API_KEY.","--idempotency-key <key> Send this exact Idempotency-Key header. The default is a generated UUID.","--json Print the key, receipt ids, and output as JSON."],notes:["Reuse an Idempotency-Key only with the same operation and input.",'If a bounded validation value appears as "[Truncated]", run "hyperscale product actions <operation-id>" for the full input schema.'],example:`hyperscale product run escrow_order.placeBuyerHold --input '{"escrowOrderId":"eord_sandbox_..."}' --idempotency-key hold-001`},"compose check":{usage:"compose check <file.hsx> [--catalog-revision <id>] [--json]",summary:"Ask the server to compile and check an HSX program.",options:["--catalog-revision <id> Compile against this immutable tenant catalog revision.","--json Print diagnostics and the verdict as JSON."],example:"hyperscale compose check product.hsx"},"compose plan":{usage:"compose plan <file.hsx> [--product <id>] [--catalog-revision <id>] [--json]",summary:"Diff an HSX program against a Product.",options:["--product <id> Product to compare. Defaults to the selected Product.","--catalog-revision <id> Compile against this immutable tenant catalog revision.","--json Print the plan as JSON."],example:"hyperscale compose plan product.hsx --json"},"compose apply":{usage:"compose apply <file.hsx> (--confirm [--pricing-identity <id> | --plan-file <path>] | --yes) [--product <id>] [--catalog-revision <id>] [--json]",summary:"Recompose the selected Product from checked HSX.",options:["--confirm Confirm the mutation for a person.","--yes Confirm the mutation without a prompt for an agent; accepts the candidate price current at apply time.","--pricing-identity <id> Candidate pricing identity from compose plan. Required with --confirm only when scheduled pricing exists.","--plan-file <path> Saved JSON plan file from compose plan --json. Used with --confirm to extract pricing identity when scheduled pricing exists.","--product <id> Product to recompose. Defaults to the selected Product.","--catalog-revision <id> Compile and persist against this immutable tenant catalog revision.","--json Print the result as JSON."],notes:["Apply --confirm requires a reviewed pricing identity or saved plan only when plan.pricing.scheduled exists; --yes selects the current candidate."],example:"hyperscale compose apply product.hsx --yes --pricing-identity <id>"},"key create":{usage:"key create [--name <name>] [--product <id>] [--json]",summary:"Create a sandbox Product API key.",options:["--name <name> Key name. Defaults to Founder CLI.","--product <id> Product for the key. Defaults to the selected Product.","--json Print the one-time secret and key metadata as JSON."],example:'hyperscale key create --name "Founder laptop"'},"key list":{usage:"key list [--product <id>] [--json]",summary:"List keys for one Product.",options:["--product <id> Product to inspect. Defaults to the selected Product.","--json Print the collection as JSON."],example:"hyperscale key list --json"},"key revoke":{usage:"key revoke <id> [--product <id>] [--json]",summary:"Revoke one Product API key.",options:["--product <id> Product that owns the key. Defaults to the selected Product.","--json Print the result as JSON."],example:"hyperscale key revoke key_sandbox_..."},"activity list":{usage:"activity list [--json]",summary:"List company activity with timestamps and resource targets.",options:["--json Print the complete collection as JSON."],example:"hyperscale activity list"},whoami:{usage:"whoami [--json]",summary:"Show the user and company the founder PAT resolves to.",options:["--json Print machine-readable JSON."],example:"hyperscale whoami --json"},"ops list":{usage:"ops list [filter] [--catalog] [--product <id>] [--json]",summary:"List Product operations. Use --catalog for the bundled catalog.",options:["filter Optional case-insensitive substring filter matching operation names and paths.","--catalog Browse bundled contract commands without a credential.","--product <id> Product to inspect. PATs use its Product route.","--api-key <key> Product API key. Defaults to HYPERSCALE_API_KEY.","--json Print matching operations as JSON."],notes:["The optional filter argument matches operation names and paths by case-insensitive substring."],example:"hyperscale ops list account"},call:{usage:"call <operation> [--input <json> | --input-file <path>] [--idempotency-key <key>] [--product <id>]",summary:"Call a catalog operation or a selected Product operation.",options:["--input <json> JSON input object. Stdin is used when piped.","--input-file <path> Read the JSON input object from a file.","--product <id> Product to call. PATs use its Product route.","--api-key <key> Product API key. Defaults to HYPERSCALE_API_KEY.","--idempotency-key <key> Send this exact Idempotency-Key header for a mutation. The default is a generated UUID."],notes:["Reuse an Idempotency-Key only with the same operation and input."],example:`hyperscale call account.create --input '{"currency":"SAR"}'`},help:{usage:"help [command]",summary:"Print help for hyperscale or a specific command.",options:[],notes:['Pass a command name to read its usage, options, and examples (e.g. "hyperscale help product create").'],example:"hyperscale help product create"}};function U(e,t){let r=Math.min(80,process.stdout.columns||80),i=t.columns.map((n,a)=>Math.max(n.length,...t.rows.map(o=>String(o[a]??"").length)));return i.reduce((n,a)=>n+a,0)+2*(i.length-1)<=r?Fe(e,t):[t.title?e.strong(t.title):null,...t.rows.map(n=>t.columns.map((a,o)=>`${e.strong(a)}: ${e.text(String(n[o]??""))}`).join(`
|
|
12
|
+
`);r.push(`${s}${c[0]}`);let p=" ".repeat(s.length);for(let m=1;m<c.length;m++)r.push(`${p}${c[m]}`)}else r.push(`${s}${o}`)}return r.join(`
|
|
13
|
+
`)}function Ve(e,t){let r=e.text(t.action),i=e.text(t.subject),n=typeof t.confirmation=="string"&&t.confirmation.trim()?e.text(t.confirmation):"Continue?";return[e.strong("Confirm mutation"),"",` Action: ${r}`,` Subject: ${i}`,"",` ${n} [y/N]`].join(`
|
|
14
|
+
`)}function Xe(e,t){let r=e.text(String(t.code)),i=e.text(t.message),n=e.accent(t.nextStep);return[e.strong(`Error [${r}]`),i,"",`Next step: ${n}`].join(`
|
|
15
|
+
`)}var Oe="https://hyperscale0.ai",nt="sandbox",Ee="hyperscale-cli-session",Jt="/v1/personal-access-tokens/current",we=process.platform==="darwin"?"/usr/bin/security":null,Ft="config.json",Re=`${Oe}/account`,at="https://hyperscale0.ai/request-access",Qe=`Mint a founder PAT on the Dev portal Account page at ${Re}.`,Wt=`Not logged in. Run "hyperscale auth login" to open Hyperscale Portal sign-in. In a headless environment, mint a founder PAT on the Dev portal Account page at ${Re}. Then set HYPERSCALE_TOKEN or pass --token. Unapproved founders can request access at ${at}.`,Vt=`Run "hyperscale auth login". For headless use, mint a founder PAT on the Dev portal Account page at ${Re}. Unapproved founders can request access at ${at}.`,ot=3e4,Xt=2e3,Qt=120*1e3,Y={resume:{usage:"resume <reference> [--json]",summary:"Replay a saved request after browser review or a lost response.",notes:["Uses the saved credential, body and idempotency key. No overrides.","Review does not mean execution succeeded. --yes cannot approve money."],example:"hyperscale resume <reference> --json"},"auth login":{usage:"auth login [--scopes <list>] [--no-browser] [--token <pat>]",summary:"Sign in through the portal callback or save a founder PAT.",options:["--scopes <list> Comma-separated scopes. Default: read-only consent.","--product <id> Select the Product route for member PAT calls.","--no-browser Skip browser login. Saves the PAT or fails without one.","--token <pat> Founder PAT. Defaults to HYPERSCALE_TOKEN.","--json Print the saved session summary as one JSON document."],notes:["Without a PAT, the CLI opens portal sign-in and accepts one","localhost callback.","With --no-browser and no token, the command fails with a login","error and fix text. Pass HYPERSCALE_TOKEN or --token to save a PAT.","Set HYPERSCALE_CREDENTIAL_STORE=file to use the 0600 profile file","instead of macOS Keychain."],example:"hyperscale auth login --no-browser"},"auth status":{usage:"auth status [--json]",summary:"Verify and show the active founder PAT and selected Product.",options:["--json Print machine-readable JSON."],example:"hyperscale auth status --json"},"auth logout":{usage:"auth logout [--revoke] [--json]",summary:"Forget the local founder PAT. Optionally revoke it first.",options:["--revoke Revoke the PAT before deleting local state.","--json Print machine-readable JSON."],example:"hyperscale auth logout --revoke"},"product create":{usage:"product create --source <file> --name <name> [--catalog-revision <id>] [--json]",summary:"Create and select a Product. The command refuses a duplicate name.",options:["--source <file> HSX source file for initial Product creation.","--name <name> Required Product name.","--catalog-revision <id> Tenant catalog revision for HSX composition.","--json Print the creation summary as JSON."],example:'hyperscale product create --source product.hsx --name "Custom Product"'},"product list":{usage:"product list [--json]",summary:"List Products in the signed-in company.",options:["--json Print the complete collection as JSON."],example:"hyperscale product list"},"product show":{usage:"product show [id] [--json]",summary:"Show a Product summary, or the complete Product document as JSON.",options:["--json Print the complete Product document."],example:"hyperscale product show prd_sandbox_..."},"product select":{usage:"product select <id> [--json]",summary:"Verify a Product and save it as the default for later commands.",options:["--token <pat> Founder PAT. Defaults to HYPERSCALE_TOKEN or the stored login.","--base-url <url> API origin. Defaults to the active founder profile.","--environment <name> sandbox or live. Defaults to the active founder profile.","--json Print the selected Product id as JSON."],notes:["The CLI stores the selection in the active founder profile.","When --product is absent, commands use the saved selection.","This includes product show, compose plan/apply, and key commands.","Product create selects the Product it creates."],example:"hyperscale product select prd_sandbox_..."},"product actions":{usage:"product actions [operation-id] [--product <id>] [--json]",summary:"List frozen public actions or show one action's full schemas.",options:["--product <id> Product to inspect. Defaults to the selected Product.","--api-key <key> Product API key. Defaults to HYPERSCALE_API_KEY.","--json Print machine-readable JSON."],notes:["Setup operation details include the public input schema used by hyperscale call.","When that schema has no required fields, omit --input or pass {}."],example:"hyperscale product actions escrow_order.placeBuyerHold --json"},"product run":{usage:"product run <operation-id> [--input <json> | --input-file <path>] [--idempotency-key <key>] [--json]",summary:"Run one frozen public action with a Product API key.",options:["--input <json> JSON input object. Stdin is used when piped.","--input-file <path> Read the JSON input object from a file.","--product <id> Product to call. Defaults to the selected Product.","--api-key <key> Product API key. Defaults to HYPERSCALE_API_KEY.","--idempotency-key <key> Send this exact Idempotency-Key header. The default is a generated UUID.","--json Print the key, receipt ids, and output as JSON."],notes:["Reuse an Idempotency-Key only with the same operation and input.",'If a bounded validation value appears as "[Truncated]", run "hyperscale product actions <operation-id>" for the full input schema.'],example:`hyperscale product run escrow_order.placeBuyerHold --input '{"escrowOrderId":"eord_sandbox_..."}' --idempotency-key hold-001`},"compose check":{usage:"compose check <file.hsx> [--catalog-revision <id>] [--json]",summary:"Ask the server to compile and check an HSX program.",options:["--catalog-revision <id> Compile against this immutable tenant catalog revision.","--json Print diagnostics and the verdict as JSON."],example:"hyperscale compose check product.hsx"},"compose plan":{usage:"compose plan <file.hsx> [--product <id>] [--catalog-revision <id>] [--json]",summary:"Diff an HSX program against a Product.",options:["--product <id> Product to compare. Defaults to the selected Product.","--catalog-revision <id> Compile against this immutable tenant catalog revision.","--json Print the plan as JSON."],example:"hyperscale compose plan product.hsx --json"},"compose apply":{usage:"compose apply <file.hsx> (--confirm [--pricing-identity <id> | --plan-file <path>] | --yes) [--product <id>] [--catalog-revision <id>] [--json]",summary:"Recompose the selected Product from checked HSX.",options:["--confirm Confirm the mutation for a person.","--yes Confirm the mutation without a prompt for an agent; accepts the candidate price current at apply time.","--pricing-identity <id> Candidate pricing identity from compose plan. Required with --confirm only when scheduled pricing exists.","--plan-file <path> Saved JSON plan file from compose plan --json. Used with --confirm to extract pricing identity when scheduled pricing exists.","--product <id> Product to recompose. Defaults to the selected Product.","--catalog-revision <id> Compile and persist against this immutable tenant catalog revision.","--json Print the result as JSON."],notes:["Apply --confirm requires a reviewed pricing identity or saved plan only when plan.pricing.scheduled exists; --yes selects the current candidate."],example:"hyperscale compose apply product.hsx --yes --pricing-identity <id>"},"key create":{usage:"key create [--name <name>] [--product <id>] [--json]",summary:"Create a sandbox Product API key.",options:["--name <name> Key name. Defaults to Founder CLI.","--product <id> Product for the key. Defaults to the selected Product.","--json Print the one-time secret and key metadata as JSON."],example:'hyperscale key create --name "Founder laptop"'},"key list":{usage:"key list [--product <id>] [--json]",summary:"List keys for one Product.",options:["--product <id> Product to inspect. Defaults to the selected Product.","--json Print the collection as JSON."],example:"hyperscale key list --json"},"key revoke":{usage:"key revoke <id> [--product <id>] [--json]",summary:"Revoke one Product API key.",options:["--product <id> Product that owns the key. Defaults to the selected Product.","--json Print the result as JSON."],example:"hyperscale key revoke key_sandbox_..."},"activity list":{usage:"activity list [--json]",summary:"List company activity with timestamps and resource targets.",options:["--json Print the complete collection as JSON."],example:"hyperscale activity list"},whoami:{usage:"whoami [--json]",summary:"Show the user and company the founder PAT resolves to.",options:["--json Print machine-readable JSON."],example:"hyperscale whoami --json"},"ops list":{usage:"ops list [filter] [--catalog] [--product <id>] [--json]",summary:"List Product operations. Use --catalog for the bundled catalog.",options:["filter Optional case-insensitive substring filter matching operation names and paths.","--catalog Browse bundled contract commands without a credential.","--product <id> Product to inspect. PATs use its Product route.","--api-key <key> Product API key. Defaults to HYPERSCALE_API_KEY.","--json Print matching operations as JSON."],notes:["The optional filter argument matches operation names and paths by case-insensitive substring."],example:"hyperscale ops list account"},call:{usage:"call <operation> [--input <json> | --input-file <path>] [--idempotency-key <key>] [--product <id>]",summary:"Call a catalog operation or a selected Product operation.",options:["--input <json> JSON input object. Stdin is used when piped.","--input-file <path> Read the JSON input object from a file.","--product <id> Product to call. PATs use its Product route.","--api-key <key> Product API key. Defaults to HYPERSCALE_API_KEY.","--idempotency-key <key> Send this exact Idempotency-Key header for a mutation. The default is a generated UUID."],notes:["Reuse an Idempotency-Key only with the same operation and input."],example:`hyperscale call account.create --input '{"currency":"SAR"}'`},help:{usage:"help [command]",summary:"Print help for hyperscale or a specific command.",options:[],notes:['Pass a command name to read its usage, options, and examples (e.g. "hyperscale help product create").'],example:"hyperscale help product create"}};function D(e,t){let r=Math.min(80,process.stdout.columns||80),i=t.columns.map((n,a)=>Math.max(n.length,...t.rows.map(o=>String(o[a]??"").length)));return i.reduce((n,a)=>n+a,0)+2*(i.length-1)<=r?We(e,t):[t.title?e.strong(t.title):null,...t.rows.map(n=>t.columns.map((a,o)=>`${e.strong(a)}: ${e.text(String(n[o]??""))}`).join(`
|
|
16
16
|
`))].filter(Boolean).join(`
|
|
17
17
|
|
|
18
|
-
`)}function
|
|
18
|
+
`)}function Zt(e){return e.split(`
|
|
19
19
|
`).flatMap(t=>{if(g(t).length<=80)return[t];let r=t.match(/^\s*/)[0],i=[],n=r;for(let a of t.trimStart().match(/\S+\s*/g)??[])g(n+a.trimEnd()).length>80&&n.trim()&&(i.push(n.trimEnd()),n=r),n+=a;return n.trim()&&i.push(n.trimEnd()),i}).join(`
|
|
20
|
-
`)}function
|
|
21
|
-
`)}function
|
|
22
|
-
`)}function
|
|
23
|
-
`)})}async function
|
|
24
|
-
`),"file"}async function
|
|
25
|
-
`),{keychainDeleted:!0};if(we===null)return await
|
|
26
|
-
`),{keychainDeleted:!1};let i=await me(["delete-generic-password","-a",r,"-s",
|
|
27
|
-
`),{keychainDeleted:!1}):(await
|
|
28
|
-
\r`.includes(t)?t:"")}function mt(e){try{return new URL(e).origin}catch{return null}}function
|
|
20
|
+
`)}function er(e,t,r){if(e["--json"]){let n=Object.entries(Y).filter(([a])=>!t.length||a===t.join(" ")||a.startsWith(`${t.join(" ")} `));if(!n.length)throw new d(`No help for ${t.join(" ")}.`,{fix:'Run "hyperscale --help" to list commands.'});k({usage:"hyperscale <command> [options]",commands:Object.fromEntries(n)});return}let i=w(process.stdout,r,{json:!1});l(Zt(t.length?rr(t,i):tr(i)))}function tr(e){return[e.strong("Usage: hyperscale <command> [options]"),"","The developer command line.","",D(e,{title:"Commands:",columns:["Command","Purpose"],rows:Object.entries(Y).map(([t,r])=>[t,r.summary])}),"","Start:"," hyperscale auth login --base-url https://dev.hyperscale0.ai"," hyperscale whoami --json","","HSX source:"," product create --source <file> Create and select a new Product"," compose apply <file.hsx> Recompose the selected Product from checked HSX","","Options:"," --base-url <origin> API origin, or HYPERSCALE_BASE_URL"," --environment <name> sandbox or live, or HYPERSCALE_ENVIRONMENT"," --token <pat> Member PAT, or HYPERSCALE_TOKEN"," --api-key <key> Product key, or HYPERSCALE_API_KEY"," --product <id> Selected Product for this command"," --json Success on stdout, failure on stderr"," --help, -h Command help"," --version, -v Package version","","An API origin behind Cloudflare Access also needs HYPERSCALE_CF_ACCESS_CLIENT_ID","and HYPERSCALE_CF_ACCESS_CLIENT_SECRET; the CLI sends both as service token headers.","","Browser login requests read-only scopes. The server decides authority.","Product actions come from the selected Build. Use their exact names.","Approval waits for browser review. Resume replays the saved request.","--yes confirms compose only. It cannot approve money.","Exit codes: 0 success, 1 failure or waiting, 2 composer refusal.",'Run "hyperscale help <command>" for options and examples.',"Hyperscale is a trademark of Hyperscale LLC."].join(`
|
|
21
|
+
`)}function rr(e,t){let r=t??w(process.stdout,process.env,{json:!1}),i=Object.keys(Y).sort((s,c)=>c.split(" ").length-s.split(" ").length),n=i.find(s=>s.split(" ").every((p,m)=>e[m]===p));if(n){let s=Y[n];return fe(r,{usage:s.usage,summary:s.summary,options:s.options,notes:s.notes,example:s.example})}let a=e.join(" "),o=i.filter(s=>s.startsWith(`${a} `));if(o.length>0)return fe(r,{prefix:a,subcommands:o.map(s=>[s.slice(a.length+1),Y[s].summary])});throw new d(`No help for ${e.join(" ")}. Run "hyperscale --help" to list commands.`,{fix:'Run "hyperscale --help" to list commands.'})}var d=class extends Error{constructor(t,r={}){super(t),typeof r.code=="string"&&(this.code=r.code),r.details!==void 0&&(this.details=r.details),Number.isInteger(r.exitCode)&&(this.exitCode=r.exitCode),typeof r.fix=="string"&&(this.fix=r.fix)}},$=class extends d{constructor(t,{requestId:r,status:i,code:n,details:a,operationId:o,receiptId:s,traceId:c,structuredError:p,fix:m}={}){super(t,{code:n,details:a,fix:m}),this.requestId=r,this.status=i,this.operationId=o??null,this.receiptId=s??null,this.traceId=c??null,this.structuredError=p}};function M(){return new d(Wt,{fix:Vt})}function ir(e){let t=e??"<id>";return new d(`This command needs a Product API key. Create one with "hyperscale key create --name 'Founder CLI' --product ${t}", then set HYPERSCALE_API_KEY or pass --api-key.`,{fix:`Run "hyperscale key create --name 'Founder CLI' --product ${t}", then set HYPERSCALE_API_KEY or pass --api-key.`})}var ae=class extends d{constructor(t,r){super(t),this.code="check_failed",this.details=r,this.exitCode=2}},nr=new Set(["--api-key","--base-url","--catalog-revision","--environment","--idempotency-key","--input","--input-file","--name","--plan-file","--pricing-identity","--product","--source","--scopes","--token"]);function ar(e){let t=[],r={};for(let i=0;i<e.length;i+=1){let n=e[i];if(n==="-h")n="--help";else if(n==="-v")n="--version";else if(n.startsWith("-")&&!n.startsWith("--"))throw new d(`Unknown option: ${n}`);if(!n.startsWith("--")){t.push(n);continue}if(nr.has(n)){let a=e[i+1];if(a===void 0)throw new d(`${n} needs a value`);r[n]=a,i+=1;continue}if(n==="--help"||n==="--version"||n==="--json"||n==="--confirm"||n==="--yes"||n==="--no-browser"||n==="--catalog"||n==="--revoke"){r[n]=!0;continue}throw new d(`Unknown option: ${n}`)}return{flags:r,positional:t}}function or(e,t){let r=e["--api-key"]??t.HYPERSCALE_API_KEY;if(!r)throw ir();let i=e["--environment"]??t.HYPERSCALE_ENVIRONMENT??nt;if(i!=="sandbox"&&i!=="live")throw new d(`Unknown environment: ${i}. Use sandbox or live.`);let n=(e["--base-url"]??t.HYPERSCALE_BASE_URL??Oe).replace(/\/+$/,"");return{apiKey:r,baseUrl:n,environment:i,env:t}}function oe(e,t,r={}){let i=e["--environment"]??t.HYPERSCALE_ENVIRONMENT??r.environment??nt;if(i!=="sandbox"&&i!=="live")throw new d(`Unknown environment: ${i}. Use sandbox or live.`);let n=(e["--base-url"]??t.HYPERSCALE_BASE_URL??r.baseUrl??Oe).replace(/\/+$/,"");return je(n),{baseUrl:n,environment:i,env:t}}function st(e){return e.HYPERSCALE_CONFIG_DIR??pe(Yt(),".config","hyperscale")}function ct(e){return pe(st(e),Ft)}function q(e,t){return pe(st(t),`session-${V(e)}.json`)}function W(e){let t=e.HYPERSCALE_CREDENTIAL_STORE??"auto";if(t==="auto"||t==="file")return t;throw new d(`Unknown HYPERSCALE_CREDENTIAL_STORE value: ${t}. Use auto or file.`)}async function Ce(e,t){let r=q(e,t),i=`${Mt(r)}.`,n;try{n=await Dt(ke(r),{withFileTypes:!0})}catch(a){if(a&&a.code==="ENOENT")return;throw a}for(let a of n){if(!a.isFile()||!a.name.startsWith(i))continue;let o=a.name.slice(i.length);/^\d+\.[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\.tmp$/.test(o)&&await H(pe(ke(r),a.name))}}async function sr(e){try{return JSON.parse(await F(e,"utf8"))}catch(t){if(t&&t.code==="ENOENT")return null;throw t instanceof SyntaxError?new d(`The CLI profile at ${e} is corrupt: not valid JSON.`,{code:"corrupt_profile",fix:`Back up or remove ${e} before logging in again with "hyperscale auth login" (or "hyperscale auth login --no-browser").`}):t}}async function J(e,t){let r=cr(e);await Ut(r,{mode:448,recursive:!0}),await ve(r,448);let i=`${e}.${process.pid}.${globalThis.crypto.randomUUID()}.tmp`;await Kt(i,t,{flag:"wx",mode:384}),await ve(i,384);try{await Bt(i,e),await ve(e,384)}catch(n){throw await H(i),n}}function cr(e){return ke(e)}async function H(e){try{await zt(e)}catch(t){if(!t||t.code!=="ENOENT")throw t}}function pr(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new d(`The CLI profile at ${t} is corrupt: not a profile object.`,{code:"corrupt_profile",fix:`Back up or remove ${t} before logging in again with "hyperscale auth login" (or "hyperscale auth login --no-browser").`});let{baseUrl:r,email:i,environment:n,selectedProduct:a}=e;if(typeof r!="string"||typeof i!="string"||n!=="sandbox"&&n!=="live"||!(a===null||typeof a=="string"))throw new d(`The CLI profile at ${t} is corrupt: invalid profile fields.`,{code:"corrupt_profile",fix:`Back up or remove ${t} before logging in again with "hyperscale auth login" (or "hyperscale auth login --no-browser").`});return{baseUrl:r,email:i,environment:n,selectedProduct:a}}async function de(e){let t=ct(e),r=await sr(t);return r===null?null:pr(r,t)}async function xe(e,t){let r={email:t.email,baseUrl:t.baseUrl,environment:t.environment,selectedProduct:t.selectedProduct??null};await J(ct(e),`${JSON.stringify(r,null,2)}
|
|
22
|
+
`)}function V(e){return Gt("sha256").update(`${e.baseUrl}\0${e.environment}\0${e.email}`).digest("hex")}async function me(e,t){return we===null?{error:null,status:null,stdout:"",unavailable:!0}:await new Promise(r=>{let i={...process.env};delete i.HYPERSCALE_API_KEY,delete i.HYPERSCALE_TOKEN;let n=it(we,e,{env:i,stdio:["pipe","pipe","pipe"]}),a=[],o=!1,s=p=>{o||(o=!0,clearTimeout(c),r(p))},c=setTimeout(()=>{n.kill("SIGKILL"),s({error:null,status:null,stdout:"",unavailable:!0})},Xt);n.stdout.on("data",p=>a.push(p)),n.stderr.on("data",()=>{}),n.stdin.on("error",()=>{}),n.once("error",p=>s({error:p,status:null,stdout:"",unavailable:!0})),n.once("close",p=>s({error:null,status:p,stdout:Buffer.concat(a).toString("utf8"),unavailable:!1})),t===void 0?n.stdin.end():n.stdin.end(`${t}
|
|
23
|
+
`)})}async function Ae(){return(await me(["show-keychain-info"])).status===0}function pt(e){try{let t=typeof e=="string"?JSON.parse(e):e;if(t&&typeof t=="object"&&!Array.isArray(t)&&typeof t.token=="string"&&typeof t.tenantId=="string"&&(t.personalAccessTokenId===void 0||typeof t.personalAccessTokenId=="string")&&(t.tokenName===void 0||typeof t.tokenName=="string"))return{...C(t.savedRequest)?{savedRequest:t.savedRequest}:{},token:t.token,tenantId:t.tenantId,...t.personalAccessTokenId?{personalAccessTokenId:t.personalAccessTokenId}:{},...t.tokenName?{tokenName:t.tokenName}:{}}}catch{}return null}async function be(e,t,r){await Ce(e,r);let i=V(e);if(W(r)==="auto"&&await Ae()){let n=JSON.stringify(t),a=["add-generic-password","-a",i,"-s",Ee,"-U","-X",Buffer.from(n,"utf8").toString("hex")].join(" ");if((await me(["-i"],a)).status===0)return await H(q(e,r)),"keychain"}return await J(q(e,r),`${JSON.stringify({account:i,activeStore:"file",credential:t})}
|
|
24
|
+
`),"file"}async function dr(e,t){let r=V(e);try{let i=JSON.parse(await F(q(e,t),"utf8"));if(!i||typeof i!="object"||Array.isArray(i)||i.account!==r)return{state:"invalid"};if(i.revoked===!0)return{state:"revoked"};let n=pt(i.credential);return n?{activeStore:i.activeStore==="file"?"file":null,credential:n,state:"valid"}:{state:"invalid"}}catch(i){return i&&i.code==="ENOENT"?{state:"missing"}:{state:"invalid"}}}async function $e(e,t){await Ce(e,t);let r=W(t),i=await dr(e,t);if(i.state==="revoked")return null;if(i.state==="valid"&&(i.activeStore==="file"||r==="file"))return i.credential;if(r==="file")return null;let n=null;if(await Ae()){let a=await me(["find-generic-password","-a",V(e),"-s",Ee,"-w"]);a.status===0&&(n=pt(a.stdout.trim()))}return n||(i.state==="valid"?i.credential:null)}async function Le(e,t){await Ce(e,t);let r=V(e);if(W(t)==="file")return await J(q(e,t),`${JSON.stringify({account:r,revoked:!0})}
|
|
25
|
+
`),{keychainDeleted:!0};if(we===null)return await H(q(e,t)),{keychainDeleted:!0};if(!await Ae())return await J(q(e,t),`${JSON.stringify({account:r,revoked:!0})}
|
|
26
|
+
`),{keychainDeleted:!1};let i=await me(["delete-generic-password","-a",r,"-s",Ee]);return i.status!==0&&i.status!==44?(await J(q(e,t),`${JSON.stringify({account:r,revoked:!0})}
|
|
27
|
+
`),{keychainDeleted:!1}):(await H(q(e,t)),{keychainDeleted:!0})}function dt(e,t){return e["--token"]!==void 0?e["--token"]:t.HYPERSCALE_TOKEN||void 0}async function P(e,t,r=!1){let i=await de(t),n=dt(e,t);if(n!==void 0){if(!n)throw M();let s=oe(e,t,i??{}),c=await U(s,n),p=i?.baseUrl===s.baseUrl&&i.environment===s.environment&&i.email===c.email;return{...s,email:c.email,identity:c,personalAccessTokenId:c.personalAccessTokenId,selectedProduct:p?i.selectedProduct:null,tenantId:c.tenantId,token:n,tokenName:c.name}}if(!i){if(r)return null;throw M()}let a=oe(e,t,i);if(a.baseUrl!==i.baseUrl||a.environment!==i.environment)throw new d(`The active founder login belongs to ${i.baseUrl} (${i.environment}). Log in again to change it.`);let o=await $e(i,t);if(!o){if(r)return null;throw M()}return{...i,...o,env:t}}function g(e){return e.replace(new RegExp("\\p{Cc}","gu"),t=>`
|
|
28
|
+
\r`.includes(t)?t:"")}function mt(e){try{return new URL(e).origin}catch{return null}}function je(e){let t;try{t=new URL(e)}catch{t=null}if(!t||t.origin!==e)throw new d(`Invalid API origin: ${e}. Use a scheme, host, and optional port with nothing after them, such as https://hyperscale0.ai.`);let r=["localhost","127.0.0.1","[::1]","::1"].includes(t.hostname);if(t.protocol!=="https:"&&!(t.protocol==="http:"&&r))throw new d(`Refusing cleartext API origin ${e}: no credential was sent. Use https://${t.host} instead, or keep http:// only for a loopback API such as http://127.0.0.1:8787.`);return t.origin}var mr=/(?<![A-Za-z0-9_-])(?:hyperscale|arc)_[A-Za-z0-9_-]{32,}(?![A-Za-z0-9_-])/g,lr=/(?<![A-Za-z0-9_-])whsec_[A-Za-z0-9+/=]{32,}(?![A-Za-z0-9+/=])/g;function I(e,t=[]){let r=e;for(let i of t)typeof i=="string"&&i.length>0&&(r=r.replaceAll(i,"[redacted]"));return r.replaceAll(mr,"[redacted]").replaceAll(lr,"[redacted]")}function lt(e,t=[]){if(!e?.ok||!e?.headers)return;let r=e.headers.get("x-request-id"),i=e.headers.get("hyperscale-operation-id"),n=e.headers.get("hyperscale-receipt-id"),a=r?I(r,t):null,o=i?I(i,t):null,s=n?I(n,t):null;a&&process.stderr.write(`Request id: ${a}
|
|
29
29
|
`),o&&process.stderr.write(`Operation: ${o}
|
|
30
30
|
`),s&&process.stderr.write(`Receipt: ${s}
|
|
31
|
-
`)}function ut(e){if(!/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i.test(e??""))throw new
|
|
32
|
-
Outcome unknown. Operation: ${
|
|
33
|
-
Approval request: ${
|
|
34
|
-
Review: ${
|
|
35
|
-
Request id: ${
|
|
36
|
-
Request id: ${n.requestId}`:""}`,{code:i.code,details:i.details,fix:i.fix,operationId:n.operationId,receiptId:n.receiptId,requestId:n.requestId,status:e.status,structuredError:i.structuredError,traceId:n.traceId})}function
|
|
37
|
-
`);return}if(n){
|
|
38
|
-
`);return}if(
|
|
39
|
-
`);return}if(
|
|
40
|
-
`),a.reject(new
|
|
41
|
-
`);return}n=!0,
|
|
42
|
-
`),a.resolve({grant:R,tenantId:A})});await new Promise((
|
|
43
|
-
`);let
|
|
44
|
-
`)}let c=
|
|
45
|
-
`)}function
|
|
46
|
-
`),{file:r,issues:
|
|
47
|
-
`),{actions:a,file:t,...n,...e.productId?{productId:e.productId}:{}});return{...i,...n}}async function
|
|
48
|
-
`);let p=Nt({input:process.stdin,output:process.stderr,terminal:!0});try{let d=await p.question("");if(d.trim().toLowerCase()!=="y"&&d.trim().toLowerCase()!=="yes")throw new m("Mutation cancelled.",{code:"cancelled"})}finally{p.close()}}else throw new m("compose apply changes the selected Product. Pass --confirm, or --yes for an agent.");let i=e["--pricing-identity"];if(!i&&e["--plan-file"]){let c=e["--plan-file"];try{let p=await Y(c,"utf8"),d=JSON.parse(p);i=d.plan?.pricing?.scheduled?.pricingIdentity??d.pricing?.scheduled?.pricingIdentity??d.pricingIdentity}catch(p){throw new m(`Failed to read saved plan file ${c}: ${p.message}`)}}let n=await He(e,t,r,"required","compose apply"),a=await bt(n,r);if(a.pricing?.scheduled&&!i){if(!e["--yes"])throw new m(`compose apply --confirm requires --pricing-identity (or --plan-file). Run "hyperscale compose plan ${r}" to review candidate pricing and copy the pricing identity, or pass --yes to accept the current candidate.`);i=a.pricing.scheduled.pricingIdentity}let o=e["--idempotency-key"]??globalThis.crypto.randomUUID(),s;try{s=await E(n.context,"/v1/products/recompose",C({program:{source:n.program.source},...n.catalogRevisionId?{catalogRevisionId:n.catalogRevisionId}:{},...i?{pricingIdentity:i}:{},tenantId:n.context.tenantId,productId:n.productId},o),n.context.token,[n.context.token])}catch(c){throw c instanceof $&&c.code==="product_instrument_not_drained"&&(c.fix=`Drain live instrument instances, or create a new Product directly from source: hyperscale product create --source ${r} --name <name>`),c}if(!s||typeof s.productBuildId!="string")throw new m("product.recompose returned no new build identity");if(e["--json"]){k({command:"product.recompose",file:r,output:s});return}if(l(`Product: ${s.productId??n.productId}`),l(`Build: ${s.productBuildId}`),s.buildDigest&&l(`Digest: ${s.buildDigest}`),s.pricing?.scheduled){let c=s.pricing.currency??"SAR",p=s.pricing.current?.monthly,d=s.pricing.scheduled?.monthly;l(`Current billing price: ${c} ${p}/mo`),l(`Accepted price from ${s.pricing.scheduled.effectiveAt}: ${c} ${d}/mo`)}}function Tt(e,t){let r=t["--product"]??e.selectedProduct;return typeof r=="string"&&r.length>0?r:void 0}function Q(e,t){let r=Tt(e,t);if(!r)throw new m("No Product selected. Pass --product <id> or create a Product first.",{fix:'Run "hyperscale product list" to see existing Products, or "hyperscale product create" to create one.'});return r}async function et(e,t){if(e["--product"])return ce(e,t);if(e["--api-key"]??t.HYPERSCALE_API_KEY)return ar(e,t);let r=await T(e,t);return r.selectedProduct?ce(e,t):{...r,apiKey:r.token,member:!0}}async function ce(e,t){let r=await de(t),i=Q(r??{},e),n=oe(e,t,r??{});if(r&&(n.baseUrl!==r.baseUrl||n.environment!==r.environment))throw new m(`The selected Product belongs to ${r.baseUrl} (${r.environment}). Select a Product at the configured API origin first.`);let a=e["--api-key"]??t.HYPERSCALE_API_KEY;if(a)return{...n,apiKey:a,productId:i};let o=await T(e,t);return{...n,apiKey:o.token,productId:i,member:!0}}async function ye(e){let t=`/v1/products/${encodeURIComponent(e.productId)}/operation-set`,{response:r,text:i}=await le(e,t);if(!r.ok)throw St(r,i,[e.apiKey],{productId:e.productId});return Nr(i,r.status)}async function jr(e,t,r){let i=await ce(e,t),n=await ye(i);if(r){Gr(n,r,e);return}if(e["--json"]){k(n);return}if(n.publicActions.length===0)l("No public actions");else{let a=w(process.stdout,t,{json:!1});l(U(a,{columns:["Operation ID","Input","Kind"],rows:n.publicActions.map(o=>{let s=o.idempotencyPolicy?.mode==="not_required"?"read-only":"mutation";return[`${o.instrument}.${o.name}`,Dr(o.inputSchema),s]})}))}if(n.setupOperations.length>0){l("Setup operations (run with hyperscale call)");for(let a of n.setupOperations)l(a.operationName)}if(n.readOperationIds.length>0){l("Reads (run with hyperscale call)");for(let a of n.readOperationIds)l(Ur(a))}l(`Digest: ${n.tenantOperationSetDigest}`),l(`Setup digest: ${n.tenantSetupOperationSetDigest}`),l(`Read digest: ${n.tenantReadOperationSetDigest}`),l(`Build: ${n.productBuildId}`),l(`Surface version: ${n.tenantSurfaceVersion}`)}function Gr(e,t,r){let i=e.publicActions.find(c=>c&&`${c.instrument}.${c.name}`===t),n=Hr(t),a=e.setupOperations.find(c=>c&&(c.operationId===t||c.operationId===n||c.operationName===t));if(a){let{inputSchema:c,operationId:p,operationName:d}=a,y={status:e.status,productBuildId:e.productBuildId,tenantSurfaceVersion:e.tenantSurfaceVersion,tenantSetupOperationSetDigest:e.tenantSetupOperationSetDigest,setupOperationId:p,operationName:d,command:`hyperscale call ${d}`,inputSchema:c};if(r["--json"]){k(y);return}let u=w(process.stdout,r?process.env:{},{json:!1}),h=[["Operation ID",p],["Operation name",d],["Run",`hyperscale call ${d}`],["Input schema",JSON.stringify(c,null,2)]];(!Array.isArray(c.required)||c.required.length===0)&&h.push(["Input","omit --input or pass {}."]),h.push(["Setup digest",e.tenantSetupOperationSetDigest],["Build",e.productBuildId],["Surface version",e.tenantSurfaceVersion]),l(G(u,{fields:h}));return}if(!i)throw new m(`Unknown frozen public action: ${t}. Run "hyperscale product actions" to list exact names.`);let o={status:e.status,productBuildId:e.productBuildId,tenantSurfaceVersion:e.tenantSurfaceVersion,tenantOperationSetDigest:e.tenantOperationSetDigest,qualifiedName:`${i.instrument}.${i.name}`,publicAction:i};if(r["--json"]){k(o);return}let s=w(process.stdout,r?process.env:{},{json:!1});l(G(s,{fields:[["Operation ID",`${i.instrument}.${i.name}`],["Instrument",i.instrument],["Input schema",JSON.stringify(i.inputSchema,null,2)],["Output schema",JSON.stringify(i.outputSchema,null,2)],["Actor policy",JSON.stringify(i.actorPolicy,null,2)],["Port policy",JSON.stringify(i.portPolicy,null,2)],["Idempotency policy",JSON.stringify(i.idempotencyPolicy,null,2)],["Receipt policy",JSON.stringify(i.receiptPolicy,null,2)],["Receipt evidence",JSON.stringify(i.receiptEvidence,null,2)],["Digest",e.tenantOperationSetDigest],["Build",e.productBuildId],["Surface version",e.tenantSurfaceVersion]]}))}function Nr(e,t){let r;try{r=JSON.parse(e)}catch{throw new m(`HTTP ${t} returned invalid JSON`)}if(!r||typeof r!="object"||r.status!=="frozen"||typeof r.productBuildId!="string"||typeof r.tenantSurfaceVersion!="number"||typeof r.tenantOperationSetDigest!="string"||typeof r.tenantReadOperationSetDigest!="string"||typeof r.tenantSetupOperationSetDigest!="string"||!Array.isArray(r.publicActions)||!Array.isArray(r.readOperationIds)||!Array.isArray(r.setupOperationIds)||!Array.isArray(r.setupOperations))throw new m("The Product operation set is not in the expected format.",{fix:'Run the latest unpinned CLI (e.g. "bunx @hyperscale0/cli@latest <command>"), or report the issue without including credentials.'});return r.publicActions=r.publicActions.map(i=>{if(!i||typeof i!="object"||typeof i.instrument!="string"||i.instrument.length===0||typeof i.name!="string"||i.name.length===0)throw new m("The server's public action names no instrument or action name. The platform predates Product identity in public actions: redeploy it.");return{...i,qualifiedName:`${i.instrument}.${i.name}`}}),r}function Hr(e){return e.replaceAll(".","_")}function Ur(e){for(let t of["create","list","retrieve"]){let r=`_${t}`;if(e.endsWith(r))return`${e.slice(0,-r.length)}.${t}`}return e}function Dr(e){if(!e||typeof e!="object")return"input schema unavailable";let t=e.properties&&typeof e.properties=="object"&&!Array.isArray(e.properties)?e.properties:{},r=new Set(Array.isArray(e.required)?e.required.filter(n=>typeof n=="string"):[]),i=Object.entries(t).map(([n,a])=>`${n}${r.has(n)?"":"?"}: ${Pt(a)}`);return i.length===0?"no input":i.join(", ")}function Pt(e){return!e||typeof e!="object"?"value":Array.isArray(e.enum)&&e.enum.length>0?e.enum.map(t=>String(t)).join(" | "):e.type==="array"?`${Pt(e.items)}[]`:typeof e.type=="string"?typeof e.format=="string"?`${e.type} (${e.format})`:e.type:"value"}async function Br(e,t,r){if(!r)throw new m("product run needs a public action");let i=await ce(e,t),n=await ye(i);zr(n,r);let a=await qt(e),o=e["--idempotency-key"]??globalThis.crypto.randomUUID(),{response:s,text:c}=await le(i,i.member?`/v1/products/${encodeURIComponent(i.productId)}/operations/${encodeURIComponent(r)}`:`/v1/operations/${encodeURIComponent(r)}`,{body:JSON.stringify(a),headers:{"content-type":"application/json","idempotency-key":o},method:"POST"});if(!s.ok)throw St(s,c,[i.apiKey],{action:r,productId:i.productId});let p=s.headers.get("hyperscale-operation-id"),d=s.headers.get("hyperscale-receipt-id"),y=s.headers.get("x-request-id"),u=p?_(p,[i.apiKey]):null,h=d?_(d,[i.apiKey]):null,I=y?_(y,[i.apiKey]):null;if(e["--json"]){k({idempotencyKey:o,...I?{requestId:I}:{},operationId:u,receiptId:h,output:Kr(c)});return}u&&l(`Operation: ${u}`),h&&l(`Receipt: ${h}`),l(`Idempotency key: ${o}`);let f=Ue(c);f&&l(f)}function zr(e,t){let r=e.publicActions.find(n=>n&&`${n.instrument}.${n.name}`===t);if(r)return r;let i=e.publicActions.map(n=>`${n.instrument}.${n.name}`).map(n=>({candidate:n,distance:qe(t,n)})).sort((n,a)=>n.distance-a.distance||n.candidate.localeCompare(a.candidate)).slice(0,3).map(({candidate:n})=>n);throw new m(`Unknown frozen public action: ${t}. Closest valid names: ${i.join(", ")}. Run "hyperscale product actions" to list exact names.`)}function Kr(e){if(e.trim()==="")return null;try{return JSON.parse(e)}catch{return e}}function St(e,t,r=[],i={}){let n=ft(t,r,e.status),a=V(e.headers,n.requestId,r),o=n.code??"user_error",s=n.redactedMessage;if(typeof s=="string"&&s.includes("does not match API key Product")){let u=i.productId??s.match(/^Selected Product (\S+) does not match/)?.[1];u&&(s=`${s} Or set HYPERSCALE_API_KEY to a key for ${u}, or pass that key with --api-key.`)}let c=o==="user_error"?"":`${o}: `,p=`HTTP ${e.status} \xB7 ${c}${s}`,d=Mr(n.details,r),y=n.fix;return o==="idempotency_conflict"?y="Reuse the same key only with the same operation and input. Use a new unique key for a different request.":e.status===409&&typeof s=="string"&&s.includes("capability-derived")?y='This Product has no frozen public actions. List its operations with "hyperscale ops list" and run them with "hyperscale call".':[s,...d].some(u=>typeof u=="string"&&u.includes("[Truncated]"))&&i.action&&(y=`Run "hyperscale product actions ${i.action}" to read the full input schema and allowed values.`),new $([p,...d].join(`
|
|
49
|
-
`),{code:o,details:n.details,fix:
|
|
50
|
-
`)}function k(e){l(JSON.stringify(e,null,2))}function
|
|
51
|
-
Shown once Product API key: ${
|
|
52
|
-
`);return}let
|
|
53
|
-
`)}async function
|
|
31
|
+
`)}function ut(e){if(!/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i.test(e??""))throw new d("Use the local reference printed with the waiting request.");return{baseUrl:"local-resume",environment:"sandbox",email:e.toLowerCase()}}async function Ze(e,t){let r={...e.config,apiKey:t};return e.transport==="control"?yr(r,e.path,e.init,t):_r(r,e.path,e.init)}async function Ge(e,t,r,i,n,a,o){let s=new Headers(r.headers);if(!n||!s.get("idempotency-key"))return Ze({config:e,path:t,init:r,transport:i},n);r={...r,headers:Object.fromEntries(s)};let c=(o??globalThis.crypto.randomUUID()).toLowerCase(),p=ut(c),m={config:{baseUrl:e.baseUrl,environment:e.environment,productId:e.productId,operationId:e.operationId},path:t,init:r,transport:i};await be(p,{token:n,tenantId:"",savedRequest:m},a);let u;try{u=await Ze(m,n)}catch(h){if(h instanceof d){let f=h.details?.operationId??e.operationId;f&&(m.config.operationId=f,await be(p,{token:n,tenantId:"",savedRequest:m},a),h.operationId=f,h.message+=`
|
|
32
|
+
Outcome unknown. Operation: ${f}`),h.details={...h.details,...f?{operationId:f}:{},resumeReference:c},h.fix=`${h.fix??"Read back the operation before retrying."} Saved request: hyperscale resume ${c}`}throw h}let y=u.response.ok?null:B(u.response,u.text,[n]);if(y?.status===409&&y.code==="approval_required"){let h=C(y.details)?y.details:{},f=typeof h.state=="string"?h.state:"unknown",v=typeof h.approvalRequestId=="string"?h.approvalRequestId:null,_=typeof h.reviewUrl=="string"?h.reviewUrl:null;throw y.details={...h,state:f,approvalRequestId:v,reviewUrl:_,resumeReference:c},y.message=`Waiting for review. State: ${f}
|
|
33
|
+
Approval request: ${v??"not returned"}
|
|
34
|
+
Review: ${_??"not returned; ask the requester to open the approval desk"}${y.requestId?`
|
|
35
|
+
Request id: ${y.requestId}`:""}`,y.fix=`Review in your browser, then run "hyperscale resume ${c}". --yes cannot approve money.`,y.structuredError={code:y.code,message:y.message,details:y.details,fix:y.fix},y}return W(a)==="file"?await H(q(p,a)):await Le(p,a),u}async function le(e,t,r={}){return Ge(e,t,r,"product",e.apiKey,e.env)}async function Ne(e,t,r={},i){return Ge(e,t,r,"control",i,e.env)}async function ur(e,t,r){for(let p of Object.keys(e))if(p!=="--json"&&p!=="--yes")throw new d(`Resume cannot change ${p}. It replays the saved credential, body and idempotency key.`,{code:"resume_binding_mismatch"});let i=ut(r),n=await $e(i,t),a=n?.savedRequest;if(!a||!C(a.config)||typeof a.path!="string"||!C(a.init)||!new Headers(a.init.headers).get("idempotency-key")||!["control","product"].includes(a.transport))throw new d("No saved request for that reference on this machine.");let{response:o,text:s}=await Ge(a.config,a.path,a.init,a.transport,n.token,t,r);if(!o.ok)throw B(o,s,[n.token]);let c=X(o.headers,void 0,[n.token]);e["--json"]?k({status:o.status,data:ft(s),...c}):(c.operationId&&l(`Operation: ${c.operationId}`),c.receiptId&&l(`Receipt: ${c.receiptId}`),l(De(s)))}function yt(e=process.env){let t=e.HYPERSCALE_CF_ACCESS_CLIENT_ID,r=e.HYPERSCALE_CF_ACCESS_CLIENT_SECRET;return!t||!r?{}:{"cf-access-client-id":t,"cf-access-client-secret":r}}async function yr(e,t,r={},i){let n=`${e.baseUrl}${t}`,a=je(e.baseUrl);if(mt(n)!==a)throw new d(`The requested path ${t} leaves the ${a} origin; refusing the request.`);let o=[i].filter(Boolean),s={};try{let c=await fetch(n,{...r,headers:{accept:"application/json",...yt(e.env),...i?{authorization:`Bearer ${i}`}:{},"x-hyperscale-environment":e.environment,...r.headers},signal:AbortSignal.timeout(ot),redirect:"manual"});if(c.status>=300&&c.status<400){let p=g(I(n,o));throw new d(`${p} redirected, so no credential was sent on. Point --base-url at the origin the API answers on.`,{code:"unexpected_redirect",fix:"Point --base-url at the origin the API answers on."})}return s=X(c.headers,void 0,o),lt(c,o),{response:c,text:g(await c.text())}}catch(c){if(c instanceof d)throw c;let p=g(I(n,o)),m=new Headers(r.headers).get("idempotency-key"),u=m?g(I(m,o)):void 0,y=g(I(c?.message??"network failure",o)),h=u?`Retry the request with the same idempotency key: ${u}.`:`Check that --base-url names the Hyperscale API origin and connectivity to ${p}.`;throw new d(`Could not reach ${p}: ${y}`,{code:"transport_error",details:{...u?{idempotencyKey:u}:{},...s,path:t,url:p},fix:`${s.operationId?`Outcome unknown. Operation: ${s.operationId}. Read its status before retrying. `:""}${h}`})}}async function E(e,t,r={},i,n=[]){let{response:a,text:o}=await Ne(e,t,r,i);if(!a.ok)throw B(a,o,n);try{return JSON.parse(o)}catch{throw new d(`HTTP ${a.status} returned invalid JSON`)}}function x(e,t=globalThis.crypto.randomUUID()){return{body:JSON.stringify(e),headers:{"content-type":"application/json","idempotency-key":t},method:"POST"}}async function hr(){let e=[];for await(let t of process.stdin)e.push(Buffer.from(t));return Buffer.concat(e).toString("utf8")}async function _r(e,t,r={}){let i=`${e.baseUrl}${t}`,n=je(e.baseUrl);if(mt(i)!==n)throw new d(`The product document puts ${t} on another origin than the ${n} you configured; refusing to send the key there.`);let a=[e.apiKey].filter(Boolean),o={};try{let s=await fetch(i,{...r,headers:{accept:"application/json",...yt(e.env),authorization:`Bearer ${e.apiKey}`,"x-hyperscale-environment":e.environment,...r.headers},signal:AbortSignal.timeout(ot),redirect:"manual"});if(s.status>=300&&s.status<400){let c=g(I(i,a));throw new d(`${c} redirected, so the key was not sent on. Point --base-url at the origin the API answers on; the usual cause is http:// where it serves https://.`,{code:"unexpected_redirect",fix:"Point --base-url at the origin the API answers on; the usual cause is http:// where it serves https://."})}return o=X(s.headers,void 0,a),lt(s,a),{response:s,text:g(await s.text())}}catch(s){if(s instanceof d)throw s;let c=g(I(i,a)),p=new Headers(r.headers).get("idempotency-key"),m=p?g(I(p,a)):void 0,u=g(I(s?.message??"network failure",a)),y=m?`Retry the request with the same idempotency key: ${m}.`:`Check that --base-url names the Hyperscale API origin and connectivity to ${c}.`;throw new d(`Could not reach ${c}: ${u}`,{code:"transport_error",details:{...m?{idempotencyKey:m}:{},...o,path:t,url:c},fix:`${o.operationId?`Outcome unknown. Operation: ${o.operationId}. Read its status before retrying. `:""}${y}`})}}async function ht(e){let{response:t,text:r}=await le(e,"/v1/product.json");if(!t.ok)throw B(t,r,[e.apiKey]);let i=fr(r);if(!i)throw new d("The product document is not in the expected format.",{fix:'Run the latest unpinned CLI (e.g. "bunx @hyperscale0/cli@latest <command>"), or report the issue without including credentials.'});if(e.productId&&i.productId===void 0)throw new d(`The server's product document names no Product, so "--product ${e.productId}" cannot be checked against the API key. The platform predates Product identity in the descriptor: redeploy it, or drop --product.`);if(e.productId&&i.productId&&e.productId!==i.productId)throw new d(`Selected Product ${e.productId} does not match API key Product ${i.productId}. Run "hyperscale product select ${i.productId}" or pass "--product ${i.productId}". Or set HYPERSCALE_API_KEY to a key for ${e.productId}, or pass that key with --api-key.`);let n=i.operations.map(a=>{if(typeof a.summary!="string"||typeof a.description!="string")throw new d(`The product document carries no prose for ${a.operationId}. The server descriptor predates operation prose. Redeploy the platform, then recompose the Product.`);return{description:a.description,idempotency:a.idempotency,method:a.method,name:a.name,operationId:a.operationId,path:a.path,summary:a.summary}});return{compositionId:i.composition.id,operations:n,packageName:i.sdk?i.sdk.packageName.trim():null,title:i.title.trim()}}function fr(e){let t;try{t=JSON.parse(e)}catch{return null}let r=Te(t),i=n=>typeof n=="string";if(!C(r)||r.schemaVersion!==1||!(r.productId===void 0||i(r.productId))||!i(r.title)||!C(r.composition)||!i(r.composition.id)||!Array.isArray(r.operations))return null;for(let n of r.operations)if(!C(n)||!i(n.method)||!i(n.path)||!i(n.name)||!i(n.operationId)||!i(n.idempotency))return null;return r.sdk!==void 0&&(!C(r.sdk)||!i(r.sdk.packageName))?null:r}function C(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Te(e){return typeof e=="string"?g(e):Array.isArray(e)?e.map(Te):C(e)?Object.fromEntries(Object.entries(e).map(([t,r])=>[g(t),Te(r)])):e}function _t(e){let t=e.get("x-trace-id");if(t&&t.trim()!=="")return t.trim();let r=e.get("traceparent");if(r){let i=/^00-([0-9a-fA-F]{32})-[0-9a-fA-F]{16}-[0-9a-fA-F]{2}$/.exec(r.trim());if(i)return i[1]}return null}function ft(e){if(!e||e.trim()==="")return null;try{return JSON.parse(e)}catch{return e}}function X(e,t,r=[]){let i=e?.get?.("x-request-id")??t??null,n=e?.get?.("hyperscale-operation-id")??null,a=e?.get?.("hyperscale-receipt-id")??null,o=e?_t(e):null;return{requestId:i?g(I(i,r)):null,operationId:n?g(I(n,r)):null,receiptId:a?g(I(a,r)):null,traceId:o?g(I(o,r)):null}}function se(e,t=[]){if(typeof e=="string")return g(I(e,t));if(Array.isArray(e))return e.map(r=>se(r,t));if(e&&typeof e=="object"){let r=[];for(let[i,n]of Object.entries(e)){let a=g(I(i,t));r.push([a,se(n,t)])}return Object.fromEntries(r)}return e}function vt(e,t=[],r){let i;try{i=JSON.parse(e)}catch{i=null}let n=i&&typeof i=="object"&&i.error&&typeof i.error=="object"?i.error:null;if(n){let s=typeof n.code=="string"?n.code:void 0,c=typeof n.fix=="string"?n.fix:void 0,p=c?g(I(c,t)):void 0,m=typeof n.message=="string"?n.message:r?`HTTP ${r}`:"HTTP error",u=g(I(m,t)),y=u.length>1024?u.slice(0,1024):u,h=s&&typeof n.message=="string"?`${s}: ${y}`:y,f=n.details!==void 0?se(n.details,t):void 0,v=i&&typeof i=="object"&&typeof i.requestId=="string"?g(I(i.requestId,t)):void 0;return{code:s,details:f,fix:p,humanMessage:h,redactedMessage:y,requestId:v,structuredError:{code:s??"http_error",message:y,...f!==void 0?{details:f}:{},...p!==void 0?{fix:p}:{}}}}let a=r?`HTTP ${r}`:"HTTP error",o="Check that --base-url names the Hyperscale API origin, or report the issue without including credentials.";return{code:"http_error",details:void 0,fix:o,humanMessage:a,redactedMessage:a,requestId:void 0,structuredError:{code:"http_error",message:a,fix:o}}}function B(e,t,r=[]){let i=vt(t,r,e.status),n=X(e.headers,i.requestId,r),a=i.humanMessage;return new $(`HTTP ${e.status}${a?` \xB7 ${a}`:""}${n.requestId?`
|
|
36
|
+
Request id: ${n.requestId}`:""}`,{code:i.code,details:i.details,fix:i.fix,operationId:n.operationId,receiptId:n.receiptId,requestId:n.requestId,status:e.status,structuredError:i.structuredError,traceId:n.traceId})}function He(e,t){return{authenticated:!0,baseUrl:e.baseUrl,email:t.email,environment:e.environment,expiresAt:t.expiresAt,personalAccessTokenId:t.personalAccessTokenId,role:t.role,scopes:t.scopes,selectedProduct:e.selectedProduct,teamId:t.teamId,tenantId:t.tenantId,tokenName:t.name,userId:t.userId}}function vr(e){if(!e||typeof e!="object"||typeof e.userId!="string"||typeof e.email!="string"||typeof e.tenantId!="string"||typeof e.teamId!="string"||typeof e.role!="string"||typeof e.personalAccessTokenId!="string"||typeof e.name!="string"||!Array.isArray(e.scopes)||e.scopes.some(t=>typeof t!="string")||typeof e.expiresAt!="string"||e.status!=="active")throw new d("personal_access_token.current returned invalid data");return e}async function U(e,t){try{return vr(await E(e,Jt,{},t,[t]))}catch(r){throw!(r instanceof $)||r.status!==401?r:new d(`That founder PAT was not accepted (HTTP 401). ${Qe}${r.requestId?` Request id: ${r.requestId}.`:""}`,{code:"founder_pat_rejected",fix:Qe})}}function Ir(e,t){return e.HYPERSCALE_CLI_BROWSER?{command:e.HYPERSCALE_CLI_BROWSER,args:[t]}:e.HYPERSCALE_NO_BROWSER==="1"||e.CI==="1"||e.CI==="true"||process.platform==="linux"&&!e.DISPLAY&&!e.WAYLAND_DISPLAY?null:process.platform==="darwin"?{command:"/usr/bin/open",args:[t]}:process.platform==="win32"?{command:"rundll32.exe",args:["url.dll,FileProtocolHandler",t]}:{command:"xdg-open",args:[t]}}async function gr(e,t){let r=Ir(e,t);return r?new Promise(i=>{let n=it(r.command,r.args,{detached:!0,stdio:"ignore"});n.once("error",()=>i(!1)),n.once("spawn",()=>{n.unref(),i(!0)})}):!1}function Ie(e){return new Promise(t=>{if(!e.listening){t();return}e.close(()=>t())})}async function kr(e,t,r){let i=globalThis.crypto.randomUUID(),n=!1,a,o=new Promise((v,_)=>{a={reject:_,resolve:v}}),s=Nt((v,_)=>{let b=new URL(v.url??"/","http://127.0.0.1");if(v.method!=="GET"||b.pathname!=="/callback"){_.writeHead(404,{"content-type":"text/plain; charset=utf-8"}),_.end(`Not found.
|
|
37
|
+
`);return}if(n){_.writeHead(409,{"content-type":"text/plain; charset=utf-8"}),_.end(`Login callback was already received.
|
|
38
|
+
`);return}if(b.searchParams.get("state")!==i){_.writeHead(400,{"content-type":"text/plain; charset=utf-8"}),_.end(`Login state did not match. Return to the terminal.
|
|
39
|
+
`);return}if(b.searchParams.get("error")!==null){n=!0,_.writeHead(200,{"content-type":"text/plain; charset=utf-8"}),_.end(`Login declined. Return to the terminal.
|
|
40
|
+
`),a.reject(new d("Portal login was declined. Run hyperscale auth login to start again.",{code:"auth_callback_denied"}));return}let R=b.searchParams.get("grant"),A=b.searchParams.get("tenantId");if(!R||!A){_.writeHead(400,{"content-type":"text/plain; charset=utf-8"}),_.end(`Login callback is missing its grant or tenant.
|
|
41
|
+
`);return}n=!0,_.writeHead(200,{"content-type":"text/plain; charset=utf-8"}),_.end(`Login received. Return to the terminal.
|
|
42
|
+
`),a.resolve({grant:R,tenantId:A})});await new Promise((v,_)=>{let b=R=>_(R);s.once("error",b),s.listen(0,"127.0.0.1",()=>{s.off("error",b),v()})}),s.once("error",v=>a.reject(v));let c=s.address();if(!c||typeof c=="string")throw await Ie(s),new d("Could not bind the localhost login callback");let p=`http://127.0.0.1:${c.port}/callback`,m=new URL("/auth/cli",e.baseUrl);m.searchParams.set("callback",p),m.searchParams.set("state",i),m.searchParams.set("scopes",r);let u=new URL("/signin",e.baseUrl);u.searchParams.set("returnTo",`${m.pathname}${m.search}`);let y=u.toString();if(!await gr(t,y))return await Ie(s),null;process.stderr.write(`Opening portal sign-in: ${y}
|
|
43
|
+
`);let f=setTimeout(()=>{a.reject(new d("Portal login timed out. Run hyperscale auth login to start a new callback.",{code:"auth_callback_timeout"}))},Qt);try{return await o}finally{clearTimeout(f),await Ie(s)}}async function et(e,t,r,i,n){let a=await de(n),o={email:t.email,...e,selectedProduct:a&&a.email===t.email&&a.baseUrl===e.baseUrl&&a.environment===e.environment?a.selectedProduct:null};i["--product"]&&(o.selectedProduct=i["--product"]);let s=await be(o,{personalAccessTokenId:t.personalAccessTokenId,token:r,tokenName:t.name,tenantId:t.tenantId},n);try{await xe(n,o)}catch(p){throw await Le(o,n),p}if(s==="file"){let p=W(n)==="file"?"Founder PAT file storage is active.":"macOS Keychain is unavailable.";process.stderr.write(`${p} The founder PAT is in ${q(o,n)} with mode 0600.
|
|
44
|
+
`)}let c=He(o,t);if(i["--json"])k(c);else{let p=w(process.stdout,n,{json:!1});l(Fe(p,{identity:t.email,team:t.teamId})),l(`Role: ${g(t.role)}`),l(`Tenant: ${g(t.tenantId)}`),l(`Scopes: ${t.scopes.map(g).join(", ")||"none"}`),l(`Product: ${o.selectedProduct??"not selected"}`)}}async function wr(e,t){let r=oe(e,t),i=dt(e,t);if(i){if(!i.startsWith("hyperscale_pat_"))throw new d("Founder PATs start with hyperscale_pat_. Product API keys belong in HYPERSCALE_API_KEY.");let c=await U(r,i);await et(r,c,i,e,t);return}if(e["--no-browser"])throw M();let n=await kr(r,t,e["--scopes"]??"activity:read,billing:read,catalog:read,products:read");if(!n)throw M();let a=await E(r,"/v1/personal-access-token-login-grants/exchange",x({tenantId:n.tenantId,grant:n.grant}),void 0,[n.grant]),o=a?.secret;if(typeof o!="string"||!o.startsWith("hyperscale_pat_")||a?.tenantId!==n.tenantId)throw new d("CLI login grant exchange returned an invalid PAT");let s=await U(r,o);await et(r,s,o,e,t)}async function br(e,t){let r=await P(e,t),i=r.identity??await U(r,r.token),n=He(r,i);if(e["--json"]){k(n);return}let a=w(process.stdout,t,{json:!1});l(N(a,{fields:[["User",i.email],["Tenant",i.tenantId],["Role",i.role],["Token",i.name],["Scopes",i.scopes.join(", ")],["Expires",i.expiresAt],["API",r.baseUrl],["Environment",r.environment],["Product",r.selectedProduct??"not selected"]]}))}async function Tr(e,t){let r=await de(t);if(!r){e["--json"]?k({status:"signed_out"}):l("Already logged out.");return}let i=await $e(r,t);if(e["--revoke"]&&!i)throw new d("The local founder PAT is missing, so the CLI cannot revoke it.");let n=i?.personalAccessTokenId,a=i?.tokenName;if(e["--revoke"]&&i){if(!n||!a){let c=await U(r,i.token);n=c.personalAccessTokenId,a=c.name}await E({...r,env:t},`/v1/personal-access-tokens/${encodeURIComponent(n)}/revoke`,x({tenantId:i.tenantId,personalAccessTokenId:n}),i.token,[i.token])}let o=await Le(r,t),s=e["--revoke"]===!0;Pr(e,{cleanup:o,personalAccessTokenId:n,revoked:s,status:"signed_out",tokenName:a})}function Pr(e,t){let r=t.cleanup.keychainDeleted?"complete":"tombstoned";if(e["--json"])k({credentialCleanup:r,...t.personalAccessTokenId?{personalAccessTokenId:t.personalAccessTokenId}:{},...t.revoked===void 0?{}:{revoked:t.revoked},status:t.status,...t.tokenName?{tokenName:t.tokenName}:{},...t.revoked===!1?{tokenStillValid:!0}:{}});else{let i=t.tokenName&&t.personalAccessTokenId?`${t.tokenName} (${t.personalAccessTokenId})`:"with unavailable local metadata";t.revoked?l(`Revoked founder PAT ${i} and forgot local state.`):(l(`Forgot local founder PAT ${i}.`),l("The PAT stays valid until expiry; revoke it on the Dev portal Account page at /account."))}t.cleanup.keychainDeleted||process.stderr.write(`Keychain cleanup failed. A 0600 profile tombstone blocks the stale founder PAT.
|
|
45
|
+
`)}function Q(e,t){if(!e||typeof e!="object"||!Array.isArray(e.items))throw new d(`${t} returned an invalid collection`);return e.items}async function ue(e,t,r,i,n,a=[]){let o=[],s=new Set,c,p;for(;;){let h=new URLSearchParams(r);c&&h.set("cursor",c);let f=h.size>0?`?${h}`:"",v=await E(e,`${t}${f}`,{},n,a);p===void 0&&(p=v),o.push(...Q(v,i));let _=v.nextCursor;if(typeof _!="string"||_.length===0)break;if(s.has(_))throw new d(`${i} repeated cursor ${_}`);s.add(_),c=_}let{items:m,nextCursor:u,...y}=p;return{...y,items:o}}function It(e,t=[]){let r=e.headers.get("hyperscale-operation-id"),i=e.headers.get("hyperscale-receipt-id"),n=r?I(r,t):void 0,a=i?I(i,t):void 0;return{...n?{operationId:n}:{},...a?{receiptId:a}:{}}}function gt(e,t,r=[]){if(!e.ok)throw B(e,t,r);try{return JSON.parse(t)}catch{throw new d(`HTTP ${e.status} returned invalid JSON`)}}async function Sr(e,t){let r=e["--source"],i=e["--name"];if(!r)throw new d("product create needs --source <file>",{fix:'Run "hyperscale product create --source <file.hsx> --name <name>".'});if(!i)throw new d("product create needs --name <name>");let n=await bt(r,"product create"),a=await P(e,t),o;try{o=await ue(a,"/v1/products",{tenantId:a.tenantId},"product.list",a.token,[a.token])}catch(v){if(!(v instanceof $)||v.status!==403)throw v}let s=i.trim().toLocaleLowerCase("en-US"),c=(o?Q(o,"product.list"):[]).find(v=>{let _=v?.displayName??v?.name;return typeof _=="string"&&_.trim().toLocaleLowerCase("en-US")===s});if(c){let v=c.productId??c.id??"<id>";throw new d(`A Product named ${JSON.stringify(i.trim())} already exists as ${v}.`,{code:"duplicate_product_name",fix:`Use "hyperscale product select ${v}" or choose another --name.`})}let p="/v1/products/instruments-compose",m={name:i,program:{source:n.source},tenantId:a.tenantId,...e["--catalog-revision"]?{catalogRevisionId:e["--catalog-revision"]}:{}},u=await E(a,p,x(m),a.token,[a.token]);if(typeof u?.productId!="string"||typeof u?.productBuildId!="string")throw new d("product.instruments.compose returned an invalid Product");await xe(t,{...a,selectedProduct:u.productId});let y=typeof u?.shown_once=="string"&&u.shown_once.length>0?u.shown_once:void 0,h=[`hyperscale product show ${u.productId}`,...y?[]:[`hyperscale key create --name "Founder CLI" --product ${u.productId}`]],f={nextCommands:h,nextSteps:h,productBuildId:u.productBuildId,productId:u.productId,selectedProduct:u.productId,...typeof u.startKeyId=="string"?{startKeyId:u.startKeyId}:{},...y?{shown_once:y}:{}};if(e["--json"]){k(f);return}l(`Product: ${f.productId}`),l(`Build: ${f.productBuildId}`),l(`Selected: ${f.selectedProduct}`),f.shown_once&&l(`Shown once Product API key: ${f.shown_once}`),l("Next:");for(let v of f.nextSteps)l(` ${v}`)}function kt(e){return new URLSearchParams({tenantId:e}).toString()}async function qr(e,t){let r=await P(e,t),i=await ue(r,"/v1/products",{tenantId:r.tenantId},"product.list",r.token,[r.token]),n=Q(i,"product.list");if(e["--json"]){k(i);return}if(n.length===0){l('No Products yet. Run "hyperscale product create --source <file.hsx> --name <name>".');return}let a=w(process.stdout,t,{json:!1});l(D(a,{columns:["ID","Name","Status"],rows:n.map(o=>[o.productId??o.id??"unknown",o.displayName??o.name??"unnamed",o.status??""])}))}async function Or(e,t,r){let i=await P(e,t),n=r??i.selectedProduct;if(!n)throw new d("product show needs an id because no Product is selected. Create a Product first.",{fix:'Run "hyperscale product list" to see existing Products, or "hyperscale product create" to create one.'});let a=await E(i,`/v1/products/${encodeURIComponent(n)}?${kt(i.tenantId)}`,{},i.token,[i.token]);if(e["--json"]){k({...a,nextCommands:[`hyperscale product actions --product ${n}`,`hyperscale key list --product ${n}`]});return}Er(a,n)}function Er(e,t){let r=e?.displayName??e?.name??"unnamed",i=e?.status??"unknown",n=e?.pricing?.currency??e?.cost?.currency??"SAR",a=e?.pricing?.current?.monthly??e?.cost?.platformMonthly,o=e?.pricing?.current?.setup??e?.cost?.platformSetup,s=[...Array.isArray(e?.readiness?.outstandingLiveRequirements)?e.readiness.outstandingLiveRequirements.map(m=>typeof m=="string"?m:m?.owner?`${m.key} (${m.owner})`:m?.key):[],...Array.isArray(e?.readiness?.liveUnavailableCapabilities)?e.readiness.liveUnavailableCapabilities.map(m=>`unavailable:${m}`):[],...Array.isArray(e?.cost?.blockers)?e.cost.blockers.map(m=>m?.code??"pricing"):[]],c=w(process.stdout,process.env,{json:!1}),p=[["Name",r],["Product",e?.productId??t],["Status",i]];if(e?.pricing?.scheduled){let m=e.pricing.current?.monthly,u=e.pricing.scheduled?.monthly;p.push(["Current billing price",`${n} ${m}/mo`],[`Accepted price from ${e.pricing.scheduled.effectiveAt}`,`${n} ${u}/mo`])}else p.push(["Monthly",a==null?"not returned":`${n} ${a}`]);p.push(["Setup",o==null?"not returned":`${n} ${o}`]),p.push(["Live",e?.readiness?.live===!0?"active":"not active"]),p.push(["Live blockers",s.length>0?s.join(", "):"none"]);for(let[m,u]of[["openapi","OpenAPI"],["mcp","MCP"],["sdk","SDK"],["graphql","GraphQL"]]){let y=e?.surfaces?.[m];y?.url&&p.push([u,y.url])}l(N(c,{fields:p})),l(""),l("Next:"),l(` hyperscale key create --name "Founder CLI" --product ${e?.productId??t}`)}async function Rr(e,t,r){if(!r)throw new d("product select needs a Product id",{fix:'Run "hyperscale product list" to list Products, then pass one ID.'});let i=await P(e,t),n=await E(i,`/v1/products/${encodeURIComponent(r)}?${kt(i.tenantId)}`,{},i.token,[i.token]);if(n?.productId!==r)throw new d("product.retrieve returned the wrong Product");await xe(t,{...i,selectedProduct:r});let o={nextCommands:[`hyperscale product show ${r}`,`hyperscale key list --product ${r}`],productId:r,selected:!0};e["--json"]?k(o):l(`Selected Product: ${n.displayName??r} (${r})`)}function Cr(e){return e.map(t=>`${t.path}: error [composer] ${t.code}: ${t.message}`)}function xr(e){return JSON.stringify(Pe(e))}function Pe(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(Pe);let t={};for(let r of Object.keys(e).sort())t[r]=Pe(e[r]);return t}function wt(e,t=""){if(e==null)return t;if(typeof e=="string")return e;if(typeof e=="object")try{return xr(e)}catch{return t}return String(e)}async function bt(e,t="compose"){if(!e)throw new d(`${t} needs a .hsx file`,{fix:`Run "hyperscale ${t} <file.hsx>" with an existing .hsx file.`});if(!e.endsWith(".hsx"))throw new d(`${t} reads a .hsx file, got ${e}`,{fix:`Point ${t} at a file ending in .hsx.`});let r;try{r=await F(e,"utf8")}catch(i){throw new d(`Could not read ${e}: ${i.message}`)}return{file:e,source:r}}function Ar(e){if(!e||typeof e!="object"||typeof e.ok!="boolean"||!Array.isArray(e.issues))throw new d("composer.check returned an invalid result",{fix:'Run the latest unpinned CLI (e.g. "bunx @hyperscale0/cli@latest <command>"), or report the issue without including credentials.'});return{issues:e.issues.map(r=>{if(!r||typeof r!="object"||typeof r.code!="string"||typeof r.message!="string"||typeof r.path!="string")throw new d("composer.check returned an invalid issue",{fix:'Run the latest unpinned CLI (e.g. "bunx @hyperscale0/cli@latest <command>"), or report the issue without including credentials.'});return{code:r.code,message:r.message,path:r.path}}),ok:e.ok}}async function Ue(e,t,r,i="none",n="compose"){let a=await bt(r,n),o=await P(e,t),s=i==="required"?Z(o,e):i==="optional"?Pt(o,e):void 0,c=await Ne(o,"/v1/composer/check",x({tenantId:o.tenantId,document:a.source,...e["--catalog-revision"]?{catalogRevisionId:e["--catalog-revision"]}:{}}),o.token),p=It(c.response,[o.token]),m=Ar(gt(c.response,c.text,[o.token]));if(!m.ok)throw new ae(["composer.check refused the program.",...Cr(m.issues)].join(`
|
|
46
|
+
`),{file:r,issues:m.issues,...p});return{check:m,receipt:p,context:o,productId:s,program:a,catalogRevisionId:e["--catalog-revision"]}}async function $r(e,t,r){let i=await Ue(e,t,r,"none","compose check");if(e["--json"]){k({command:"composer.check",file:r,issues:i.check.issues,ok:!0,...i.receipt});return}l(`Check passed: ${r}`)}async function Tt(e,t){let r=await Ne(e.context,"/v1/composer/plan",x({document:e.program.source,tenantId:e.context.tenantId,...e.productId?{productId:e.productId}:{},...e.catalogRevisionId?{catalogRevisionId:e.catalogRevisionId}:{}}),e.context.token),i=gt(r.response,r.text,[e.context.token]),n=It(r.response,[e.context.token]);if(!i||typeof i!="object"||typeof i.summary!="string"||!Array.isArray(i.actions)||!i.pricing||typeof i.pricing!="object")throw new d("composer.plan returned an invalid result");let a=i.actions.filter(o=>!o||typeof o!="object"||o.kind!=="configure_product");if(a.length>0)throw new ae([i.summary,...a.map(o=>o&&typeof o=="object"?`${o.kind??"unknown"} ${o.target??"unknown"} ${wt(o.detail,"Composer refused this action.")}`:"unknown unknown Composer returned an invalid refusal action.")].join(`
|
|
47
|
+
`),{actions:a,file:t,...n,...e.productId?{productId:e.productId}:{}});return{...i,...n}}async function Lr(e,t,r){let i=await Ue(e,t,r,"optional","compose plan"),n=await Tt(i,r);if(e["--json"]){k({command:"composer.plan",file:r,check:{...i.check,...i.receipt},plan:n,...i.productId?{productId:i.productId}:{}});return}l(n.summary);for(let o of n.actions)l(`${o.kind} ${o.target} ${wt(o.detail)}`);let a=n.pricing?.currency??"SAR";if(n.pricing?.scheduled){let o=n.pricing.current?.monthly,s=n.pricing.scheduled?.monthly;l(`Current billing price: ${a} ${o}/mo`),l(`Candidate price from ${n.pricing.scheduled.effectiveAt}: ${a} ${s}/mo`),l(`Pricing identity: ${n.pricing.scheduled.pricingIdentity}`)}else if(n.pricing){let o=n.pricing.monthly,s=n.pricing.activation;o!==void 0&&l(`Monthly: ${a} ${o}`),s!==void 0&&l(`Activation: ${a} ${s}`)}}async function jr(e,t,r){if(!e["--confirm"]&&!e["--yes"])if(process.stdin.isTTY&&process.stderr.isTTY){let c=w(process.stderr,process.env,{json:!1});process.stderr.write(`${Ve(c,{action:"recompose",subject:r,confirmation:"Recompose selected Product?"})}
|
|
48
|
+
`);let p=Ht({input:process.stdin,output:process.stderr,terminal:!0});try{let m=await p.question("");if(m.trim().toLowerCase()!=="y"&&m.trim().toLowerCase()!=="yes")throw new d("Mutation cancelled.",{code:"cancelled"})}finally{p.close()}}else throw new d("compose apply changes the selected Product. Pass --confirm, or --yes for an agent.");let i=e["--pricing-identity"];if(!i&&e["--plan-file"]){let c=e["--plan-file"];try{let p=await F(c,"utf8"),m=JSON.parse(p);i=m.plan?.pricing?.scheduled?.pricingIdentity??m.pricing?.scheduled?.pricingIdentity??m.pricingIdentity}catch(p){throw new d(`Failed to read saved plan file ${c}: ${p.message}`)}}let n=await Ue(e,t,r,"required","compose apply"),a=await Tt(n,r);if(a.pricing?.scheduled&&!i){if(!e["--yes"])throw new d(`compose apply --confirm requires --pricing-identity (or --plan-file). Run "hyperscale compose plan ${r}" to review candidate pricing and copy the pricing identity, or pass --yes to accept the current candidate.`);i=a.pricing.scheduled.pricingIdentity}let o=e["--idempotency-key"]??globalThis.crypto.randomUUID(),s;try{s=await E(n.context,"/v1/products/recompose",x({program:{source:n.program.source},...n.catalogRevisionId?{catalogRevisionId:n.catalogRevisionId}:{},...i?{pricingIdentity:i}:{},tenantId:n.context.tenantId,productId:n.productId},o),n.context.token,[n.context.token])}catch(c){throw c instanceof $&&c.code==="product_instrument_not_drained"&&(c.fix=`Drain live instrument instances, or create a new Product directly from source: hyperscale product create --source ${r} --name <name>`),c}if(!s||typeof s.productBuildId!="string")throw new d("product.recompose returned no new build identity");if(e["--json"]){k({command:"product.recompose",file:r,output:s});return}if(l(`Product: ${s.productId??n.productId}`),l(`Build: ${s.productBuildId}`),s.buildDigest&&l(`Digest: ${s.buildDigest}`),s.pricing?.scheduled){let c=s.pricing.currency??"SAR",p=s.pricing.current?.monthly,m=s.pricing.scheduled?.monthly;l(`Current billing price: ${c} ${p}/mo`),l(`Accepted price from ${s.pricing.scheduled.effectiveAt}: ${c} ${m}/mo`)}}function Pt(e,t){let r=t["--product"]??e.selectedProduct;return typeof r=="string"&&r.length>0?r:void 0}function Z(e,t){let r=Pt(e,t);if(!r)throw new d("No Product selected. Pass --product <id> or create a Product first.",{fix:'Run "hyperscale product list" to see existing Products, or "hyperscale product create" to create one.'});return r}async function tt(e,t){if(e["--product"])return ce(e,t);if(e["--api-key"]??t.HYPERSCALE_API_KEY)return or(e,t);let r=await P(e,t);return r.selectedProduct?ce(e,t):{...r,apiKey:r.token,member:!0}}async function ce(e,t){let r=await de(t),i=Z(r??{},e),n=oe(e,t,r??{});if(r&&(n.baseUrl!==r.baseUrl||n.environment!==r.environment))throw new d(`The selected Product belongs to ${r.baseUrl} (${r.environment}). Select a Product at the configured API origin first.`);let a=e["--api-key"]??t.HYPERSCALE_API_KEY;if(a)return{...n,apiKey:a,productId:i};let o=await P(e,t);return{...n,apiKey:o.token,productId:i,tenantId:o.tenantId,member:!0}}async function ye(e){let t=`/v1/products/${encodeURIComponent(e.productId)}/operation-set`,{response:r,text:i}=await le(e,t);if(!r.ok)throw qt(r,i,[e.apiKey],{productId:e.productId});return Hr(i,r.status)}async function Gr(e,t,r){let i=await ce(e,t),n=await ye(i);if(r){Nr(n,r,e);return}if(e["--json"]){k(n);return}if(n.publicActions.length===0)l("No public actions");else{let a=w(process.stdout,t,{json:!1});l(D(a,{columns:["Operation ID","Input","Kind"],rows:n.publicActions.map(o=>{let s=o.idempotencyPolicy?.mode==="not_required"?"read-only":"mutation";return[`${o.instrument}.${o.name}`,Br(o.inputSchema),s]})}))}if(n.setupOperations.length>0){l("Setup operations (run with hyperscale call)");for(let a of n.setupOperations)l(a.operationName)}if(n.readOperationIds.length>0){l("Reads (run with hyperscale call)");for(let a of n.readOperationIds)l(Dr(a))}l(`Digest: ${n.tenantOperationSetDigest}`),l(`Setup digest: ${n.tenantSetupOperationSetDigest}`),l(`Read digest: ${n.tenantReadOperationSetDigest}`),l(`Build: ${n.productBuildId}`),l(`Surface version: ${n.tenantSurfaceVersion}`)}function Nr(e,t,r){let i=e.publicActions.find(c=>c&&`${c.instrument}.${c.name}`===t),n=Ur(t),a=e.setupOperations.find(c=>c&&(c.operationId===t||c.operationId===n||c.operationName===t));if(a){let{inputSchema:c,operationId:p,operationName:m}=a,u={status:e.status,productBuildId:e.productBuildId,tenantSurfaceVersion:e.tenantSurfaceVersion,tenantSetupOperationSetDigest:e.tenantSetupOperationSetDigest,setupOperationId:p,operationName:m,command:`hyperscale call ${m}`,inputSchema:c};if(r["--json"]){k(u);return}let y=w(process.stdout,r?process.env:{},{json:!1}),h=[["Operation ID",p],["Operation name",m],["Run",`hyperscale call ${m}`],["Input schema",JSON.stringify(c,null,2)]];(!Array.isArray(c.required)||c.required.length===0)&&h.push(["Input","omit --input or pass {}."]),h.push(["Setup digest",e.tenantSetupOperationSetDigest],["Build",e.productBuildId],["Surface version",e.tenantSurfaceVersion]),l(N(y,{fields:h}));return}if(!i)throw new d(`Unknown frozen public action: ${t}. Run "hyperscale product actions" to list exact names.`);let o={status:e.status,productBuildId:e.productBuildId,tenantSurfaceVersion:e.tenantSurfaceVersion,tenantOperationSetDigest:e.tenantOperationSetDigest,qualifiedName:`${i.instrument}.${i.name}`,publicAction:i};if(r["--json"]){k(o);return}let s=w(process.stdout,r?process.env:{},{json:!1});l(N(s,{fields:[["Operation ID",`${i.instrument}.${i.name}`],["Instrument",i.instrument],["Input schema",JSON.stringify(i.inputSchema,null,2)],["Output schema",JSON.stringify(i.outputSchema,null,2)],["Actor policy",JSON.stringify(i.actorPolicy,null,2)],["Port policy",JSON.stringify(i.portPolicy,null,2)],["Idempotency policy",JSON.stringify(i.idempotencyPolicy,null,2)],["Receipt policy",JSON.stringify(i.receiptPolicy,null,2)],["Receipt evidence",JSON.stringify(i.receiptEvidence,null,2)],["Digest",e.tenantOperationSetDigest],["Build",e.productBuildId],["Surface version",e.tenantSurfaceVersion]]}))}function Hr(e,t){let r;try{r=JSON.parse(e)}catch{throw new d(`HTTP ${t} returned invalid JSON`)}if(!r||typeof r!="object"||r.status!=="frozen"||typeof r.productBuildId!="string"||typeof r.tenantSurfaceVersion!="number"||typeof r.tenantOperationSetDigest!="string"||typeof r.tenantReadOperationSetDigest!="string"||typeof r.tenantSetupOperationSetDigest!="string"||!Array.isArray(r.publicActions)||!Array.isArray(r.readOperationIds)||!Array.isArray(r.setupOperationIds)||!Array.isArray(r.setupOperations))throw new d("The Product operation set is not in the expected format.",{fix:'Run the latest unpinned CLI (e.g. "bunx @hyperscale0/cli@latest <command>"), or report the issue without including credentials.'});return r.publicActions=r.publicActions.map(i=>{if(!i||typeof i!="object"||typeof i.instrument!="string"||i.instrument.length===0||typeof i.name!="string"||i.name.length===0)throw new d("The server's public action names no instrument or action name. The platform predates Product identity in public actions: redeploy it.");return{...i,qualifiedName:`${i.instrument}.${i.name}`}}),r}function Ur(e){return e.replaceAll(".","_")}function Dr(e){for(let t of["create","list","retrieve"]){let r=`_${t}`;if(e.endsWith(r))return`${e.slice(0,-r.length)}.${t}`}return e}function Br(e){if(!e||typeof e!="object")return"input schema unavailable";let t=e.properties&&typeof e.properties=="object"&&!Array.isArray(e.properties)?e.properties:{},r=new Set(Array.isArray(e.required)?e.required.filter(n=>typeof n=="string"):[]),i=Object.entries(t).map(([n,a])=>`${n}${r.has(n)?"":"?"}: ${St(a)}`);return i.length===0?"no input":i.join(", ")}function St(e){return!e||typeof e!="object"?"value":Array.isArray(e.enum)&&e.enum.length>0?e.enum.map(t=>String(t)).join(" | "):e.type==="array"?`${St(e.items)}[]`:typeof e.type=="string"?typeof e.format=="string"?`${e.type} (${e.format})`:e.type:"value"}async function zr(e,t,r){if(!r)throw new d("product run needs a public action");let i=await ce(e,t),n=await ye(i);Kr(n,r);let a=await Ot(e),o=e["--idempotency-key"]??globalThis.crypto.randomUUID(),{response:s,text:c}=await le(i,i.member?`/v1/products/${encodeURIComponent(i.productId)}/operations/${encodeURIComponent(r)}`:`/v1/operations/${encodeURIComponent(r)}`,{body:JSON.stringify(a),headers:{"content-type":"application/json","idempotency-key":o},method:"POST"});if(!s.ok)throw qt(s,c,[i.apiKey],{action:r,productId:i.productId});let p=s.headers.get("hyperscale-operation-id"),m=s.headers.get("hyperscale-receipt-id"),u=s.headers.get("x-request-id"),y=p?I(p,[i.apiKey]):null,h=m?I(m,[i.apiKey]):null,f=u?I(u,[i.apiKey]):null;if(e["--json"]){k({idempotencyKey:o,...f?{requestId:f}:{},operationId:y,receiptId:h,output:Yr(c)});return}y&&l(`Operation: ${y}`),h&&l(`Receipt: ${h}`),l(`Idempotency key: ${o}`);let v=De(c);v&&l(v)}function Kr(e,t){let r=e.publicActions.find(n=>n&&`${n.instrument}.${n.name}`===t);if(r)return r;let i=e.publicActions.map(n=>`${n.instrument}.${n.name}`).map(n=>({candidate:n,distance:qe(t,n)})).sort((n,a)=>n.distance-a.distance||n.candidate.localeCompare(a.candidate)).slice(0,3).map(({candidate:n})=>n);throw new d(`Unknown frozen public action: ${t}. Closest valid names: ${i.join(", ")}. Run "hyperscale product actions" to list exact names.`)}function Yr(e){if(e.trim()==="")return null;try{return JSON.parse(e)}catch{return e}}function qt(e,t,r=[],i={}){let n=vt(t,r,e.status),a=X(e.headers,n.requestId,r),o=n.code??"user_error",s=n.redactedMessage;if(typeof s=="string"&&s.includes("does not match API key Product")){let y=i.productId??s.match(/^Selected Product (\S+) does not match/)?.[1];y&&(s=`${s} Or set HYPERSCALE_API_KEY to a key for ${y}, or pass that key with --api-key.`)}let c=o==="user_error"?"":`${o}: `,p=`HTTP ${e.status} \xB7 ${c}${s}`,m=Mr(n.details,r),u=n.fix;return o==="idempotency_conflict"?u="Reuse the same key only with the same operation and input. Use a new unique key for a different request.":e.status===409&&typeof s=="string"&&s.includes("capability-derived")?u='This Product has no frozen public actions. List its operations with "hyperscale ops list" and run them with "hyperscale call".':[s,...m].some(y=>typeof y=="string"&&y.includes("[Truncated]"))&&i.action&&(u=`Run "hyperscale product actions ${i.action}" to read the full input schema and allowed values.`),new $([p,...m].join(`
|
|
49
|
+
`),{code:o,details:n.details,fix:u,operationId:a.operationId,receiptId:a.receiptId,requestId:a.requestId,status:e.status,traceId:a.traceId})}function Mr(e,t){if(!e||typeof e!="object")return[];if(Array.isArray(e.issues))return e.issues.flatMap(i=>{if(!i||typeof i!="object")return[];let a=(Array.isArray(i.path)?i.path.join("."):"input")||"input";return typeof i.message=="string"?[`${a}: ${I(i.message,t)}`]:[]});let r=[];return Se(e,"",r,t),r}function Se(e,t,r,i){if(Array.isArray(e)){if(e.every(n=>n===null||typeof n!="object")){r.push(`${rt(t)}: ${I(e.join(", "),i)}`);return}e.forEach((n,a)=>Se(n,`${t}[${a}]`,r,i));return}if(e&&typeof e=="object"){for(let[n,a]of Object.entries(e))Se(a,t?`${t}.${n}`:n,r,i);return}t&&r.push(`${rt(t)}: ${I(String(e),i)}`)}function rt(e){let t=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replaceAll("."," ");return t.charAt(0).toUpperCase()+t.slice(1)}async function Jr(e,t){let r=await P(e,t),i=Z(r,e),n=await E(r,"/v1/sandbox-api-keys",x({name:e["--name"]??"Founder CLI",tenantId:r.tenantId,productId:i}),r.token,[r.token]),a=["export HYPERSCALE_API_KEY=<paste the shown_once value>",`hyperscale product actions --product ${i}`];if(e["--json"]){let{secret:o,...s}=n;k({...s,...typeof o=="string"?{shown_once:o}:{},nextCommands:a});return}l(`Key: ${n.apiKeyId??"unknown"}`),l(`Product: ${n.productId??i}`),l(`Status: ${n.status??"unknown"}`),n.secret?(l(`Secret: ${n.secret}`),l("Store it now. Hyperscale will not return it again."),l("Next:"),l(" export HYPERSCALE_API_KEY=<paste the secret above>"),l(` hyperscale product actions --product ${i}`)):l("The key already existed, so the one-time secret is unavailable.")}async function Fr(e,t){let r=await P(e,t),i=Z(r,e),n=await ue(r,"/v1/api-keys",{productId:i,tenantId:r.tenantId},"api_key.list",r.token,[r.token]),a=Q(n,"api_key.list");if(e["--json"]){k(n);return}let o=w(process.stdout,t,{json:!1});l(D(o,{columns:["ID","Name","Status"],rows:a.map(s=>[s.apiKeyId,s.name??"unnamed",s.status??"unknown"])}))}async function Wr(e,t,r){if(!r)throw new d("key revoke needs an API key id",{fix:'Run "hyperscale key list" to list keys, then pass one ID.'});let i=await P(e,t),n=Z(i,e),a=await E(i,`/v1/api-keys/${encodeURIComponent(r)}/revoke`,x({tenantId:i.tenantId,productId:n}),i.token,[i.token]);e["--json"]?k(a):l(`Key ${a.apiKeyId??r}: ${a.status??"revoked"}`)}async function Vr(e,t){let r=await P(e,t),i=r.identity??await U(r,r.token),n=He(r,i);if(e["--json"]){k(n);return}let a=w(process.stdout,t,{json:!1});l(N(a,{fields:[["User",i.email],["Tenant",i.tenantId],["Role",i.role],["Token",i.name],["Expires",i.expiresAt]]}))}async function Xr(e,t,r){let i;if(e.catalog||e.member&&!e.productId)i={operations:he.commands.filter(s=>e.catalog||s.principal==="user_session")};else if(e.member){let s=await ye(e);i={operations:[...s.setupOperations,...s.readOperations??[]].map(c=>({...c,name:c.operationName,method:"POST",path:`/v1/products/${encodeURIComponent(e.productId)}/operations/${encodeURIComponent(c.operationName)}`}))}}else i=await ht(e);let n=r?r.toLowerCase():null,a=n?i.operations.filter(s=>s.name.toLowerCase().includes(n)||s.path.toLowerCase().includes(n)):i.operations;if(t["--json"]){l(JSON.stringify(a,null,2));return}if(a.length===0){l(r?`No operation matches ${r}`:"No operations");return}let o=w(process.stdout,process.env,{json:!1});l(D(o,{columns:["Operation","Method","Path"],rows:a.map(s=>[s.name,s.method,s.path])}))}async function Qr(e,t){let r=await P(e,t),i=await ue(r,"/v1/activity",{tenantId:r.tenantId},"activity.list",r.token,[r.token]),n=Q(i,"activity.list");if(e["--json"]){k(i);return}let a=w(process.stdout,t,{json:!1});l(D(a,{columns:["Time","Activity","Target","Status"],rows:n.map(o=>{let s=o.operation??o.auditEvent??"activity",c=o.resourceKind&&o.resourceId?`${o.resourceKind}:${o.resourceId}`:o.resourceKind??o.resourceId??"-";return[o.occurredAt??"unknown",s,c,o.status??"recorded"]})}))}function Zr(e,t){let r={...t},i=[],n=e.path.replace(/\{([^}]+)\}/g,(a,o)=>{let s=r[o];return s==null?(i.push(o),""):(delete r[o],encodeURIComponent(String(s)))});if(i.length>0)throw new d(`${e.name} needs ${i.join(", ")} in --input`);return{path:n,remaining:r}}function ei(e){let t=new URLSearchParams;for(let[i,n]of Object.entries(e))n!=null&&t.set(i,typeof n=="string"?n:JSON.stringify(n));let r=t.toString();return r?`?${r}`:""}function qe(e,t){let r=Array.from({length:t.length+1},(i,n)=>n);for(let i=1;i<=e.length;i+=1){let n=[i];for(let a=1;a<=t.length;a+=1)n[a]=Math.min(n[a-1]+1,r[a]+1,r[a-1]+(e[i-1]===t[a-1]?0:1));r.splice(0,r.length,...n)}return r[t.length]}function ti(e,t,r){let i=e.find(o=>o.name===t);if(i)return i;let n=e.filter(o=>o.operationId===t);if(n.length===1)return n[0];if(n.length>1)throw new d(`${t} matches more than one operation. Use one of: ${n.map(o=>o.name).join(", ")}.`);let a=e.map(o=>({candidate:o,distance:Math.min(qe(t,o.name),qe(t,o.operationId))})).sort((o,s)=>o.distance-s.distance||o.candidate.name.localeCompare(s.candidate.name)).slice(0,3).flatMap(({candidate:o})=>[o.name,o.operationId]);throw new d(`${t} is not an operation in ${r}. Closest valid names: ${a.join(", ")}.`)}async function ri(e,t,r){if(!r)throw new d("call needs an operation name",{fix:'Run "hyperscale ops list" to list operations.'});let i,n="the selected Product's machine document";if(e.member){let h=he.commands.filter(f=>f.principal==="user_session");if(e.productId){let f=await ye(e),v=[...f.setupOperations,...f.readOperations??[]].map(_=>({..._,name:_.operationName,method:"POST",path:`/v1/products/${encodeURIComponent(e.productId)}/operations/${encodeURIComponent(_.operationName)}`,idempotency:f.readOperationIds.includes(_.operationId)?"not_required":"required",founder:!1}));n="the selected Product's machine document or the founder command table",i=[...v,...h.filter(_=>!v.some(b=>b.name===_.name)).map(_=>({..._,founder:!0}))]}else n="the founder command table",i=h.map(f=>({...f,founder:!0}))}else i=(await ht(e)).operations;let a=ti(i,r,n),o=await Ot(t);a.founder&&o.tenantId===void 0&&(o.tenantId=e.tenantId);let{path:s,remaining:c}=Zr(a,o),p={method:a.method},m=s;a.method==="GET"?m+=ei(c):(p.body=JSON.stringify(c),p.headers={"content-type":"application/json",...a.idempotency==="not_required"?{}:{"idempotency-key":t["--idempotency-key"]??globalThis.crypto.randomUUID()}});let{response:u,text:y}=await le(e,m,p);if(u.ok){if(t["--json"]){let h=ft(y),f=u.headers.get("x-request-id")??(h&&typeof h=="object"&&typeof h.requestId=="string"?h.requestId:null),v=u.headers.get("hyperscale-operation-id")??null,_=u.headers.get("hyperscale-receipt-id")??null,b=_t(u.headers),R=f?I(f,[e.apiKey]):null,A=v?I(v,[e.apiKey]):null,L=_?I(_,[e.apiKey]):null,j=b?I(b,[e.apiKey]):null;k({status:u.status,data:h,requestId:R,operationId:A,receiptId:L,traceId:j});return}l(De(y));return}throw B(u,y,[e.apiKey])}async function Ot(e){if(e["--input"]!==void 0&&e["--input-file"]!==void 0)throw new d("Use only one of --input and --input-file");if(e["--input"]!==void 0)return ge(e["--input"],"--input");if(e["--input-file"]!==void 0){let t;try{t=await F(e["--input-file"],"utf8")}catch(r){throw new d(`Could not read ${e["--input-file"]}: ${r.message}`)}return ge(t,"--input-file")}if(!process.stdin.isTTY){let t=await hr();if(t.trim()!=="")return ge(t,"stdin")}return{}}function ge(e,t="--input"){if(e===void 0)return{};let r;try{r=JSON.parse(e)}catch(i){throw new d(`${t} is not valid JSON: ${i.message}`)}if(r===null||typeof r!="object"||Array.isArray(r))throw new d(`${t} must be a JSON object`);return r}function De(e){if(e.trim()==="")return"";try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function l(e){process.stdout.write(`${e}
|
|
50
|
+
`)}function k(e){l(JSON.stringify(e,null,2))}function ii(e,t){let r=t.includes("--json"),i=[process.env.HYPERSCALE_API_KEY,process.env.HYPERSCALE_TOKEN,process.env.HYPERSCALE_CF_ACCESS_CLIENT_SECRET].filter(Boolean),n=e instanceof d,a=n?e.message:"The command failed unexpectedly.",o=g(I(String(a),i)),s=o.length>1024?o.slice(0,1024):o,c=n?e.fix??'Follow the message, or run "hyperscale --help" for command usage.':"Report the failure without including credentials.",p=g(I(String(c),i)),m=n&&typeof e.shownOnce=="string"?g(I(e.shownOnce,i)):void 0;if(!r){let O=w(process.stderr,process.env,{json:!1}),Et=(typeof e?.structuredError?.code=="string"?e.structuredError.code:void 0)??(n&&typeof e.code=="string"?e.code:n?"user_error":"internal_error"),Rt=n?s:o,Ct=m?`
|
|
51
|
+
Shown once Product API key: ${m}`:"",xt=Xe(O,{code:Et,message:Rt,nextStep:p});process.stderr.write(`${xt}${Ct}
|
|
52
|
+
`);return}let u=(typeof e?.structuredError?.code=="string"?e.structuredError.code:void 0)??(n&&typeof e.code=="string"?e.code:n?"user_error":"internal_error"),y=(typeof e?.structuredError?.message=="string"?e.structuredError.message:void 0)??(n?e.message:"The command failed unexpectedly."),h=g(I(String(y),i)),f=h.length>1024?h.slice(0,1024):h,v=(typeof e?.structuredError?.fix=="string"?e.structuredError.fix:void 0)??(n?e.fix??'Follow the message, or run "hyperscale --help" for command usage.':"Report the failure without including credentials."),_=g(I(String(v),i)),b=_.length>1024?_.slice(0,1024):_,R=e?.structuredError?.details!==void 0?e.structuredError.details:n&&e.details!==void 0?e.details:void 0,A=R!==void 0?se(R,i):void 0,L=n&&typeof e.status=="number"?e.status:void 0,j=O=>typeof O!="string"||O.trim().length===0?null:g(I(O.trim(),i)),ee=n&&(e.requestId!==void 0||e.operationId!==void 0||e.receiptId!==void 0||e.traceId!==void 0),te=ee?j(e.requestId):void 0,re=ee?j(e.operationId):void 0,ie=ee?j(e.receiptId):void 0,ne=ee?j(e.traceId):void 0,Be=O=>({...L!==void 0?{status:L}:{},error:{code:u,message:f,...O!==void 0?{details:O}:{},fix:b},...te!==void 0?{requestId:te}:{},...re!==void 0?{operationId:re}:{},...ie!==void 0?{receiptId:ie}:{},...ne!==void 0?{traceId:ne}:{},...m?{shown_once:m}:{}}),ze=O=>Buffer.byteLength(O,"utf8")>8192,z=Be(A),K=JSON.stringify(z);ze(K)&&A!==void 0&&(z=Be("[Truncated]"),K=JSON.stringify(z)),ze(K)&&(z={...L!==void 0?{status:L}:{},error:{code:u,message:f,fix:"[Truncated]"},...te!==void 0?{requestId:te}:{},...re!==void 0?{operationId:re}:{},...ie!==void 0?{receiptId:ie}:{},...ne!==void 0?{traceId:ne}:{}},K=JSON.stringify(z)),process.stderr.write(`${K}
|
|
53
|
+
`)}async function ni(){let{readFileSync:e}=await import("node:fs");return JSON.parse(e(new URL("./package.json",import.meta.url),"utf8")).version}async function ai(e,t){let{flags:r,positional:i}=ar(e);if(r["--version"])return l(await ni()),0;if(r["--help"]||i[0]==="help")return er(r,i[0]==="help"?i.slice(1):i,t),0;if(i.length===0&&!r["--help"]){if(r["--json"])throw new d('No command. Run "hyperscale --help" to list commands.');if(!await P(r,t,!0)){let s=w(process.stdout,t,{json:!1});return l(Je(s)),0}return l('Build your first Product with "hyperscale product create --source <file.hsx> --name <name>".'),l('Run "hyperscale --help" for every command.'),0}let[n,...a]=i;if(n==="resume")return await ur(r,t,a[0]),0;if(n==="auth"){if(a[0]==="login")await wr(r,t);else if(a[0]==="status")await br(r,t);else if(a[0]==="logout")await Tr(r,t);else throw new d('Auth subcommands are "login", "status", and "logout"',{fix:'Run "hyperscale help auth" to see valid subcommands.'});return 0}if(n==="product"){if(a[0]==="create")await Sr(r,t);else if(a[0]==="list")await qr(r,t);else if(a[0]==="show")await Or(r,t,a[1]);else if(a[0]==="select")await Rr(r,t,a[1]);else if(a[0]==="actions")await Gr(r,t,a[1]);else if(a[0]==="run")await zr(r,t,a[1]);else throw new d('Product subcommands are "create", "list", "show", "select", "actions", and "run"',{fix:'Run "hyperscale help product" to see valid subcommands.'});return 0}if(n==="compose"){if(a[0]==="check")await $r(r,t,a[1]);else if(a[0]==="plan")await Lr(r,t,a[1]);else if(a[0]==="apply")await jr(r,t,a[1]);else throw new d('Compose subcommands are "check", "plan", and "apply"',{fix:'Run "hyperscale help compose" to see valid subcommands.'});return 0}if(n==="key"){if(a[0]==="create")await Jr(r,t);else if(a[0]==="list")await Fr(r,t);else if(a[0]==="revoke")await Wr(r,t,a[1]);else throw new d('Key subcommands are "create", "list", and "revoke"',{fix:'Run "hyperscale help key" to see valid subcommands.'});return 0}if(n==="whoami")return await Vr(r,t),0;if(n==="activity"){if(a[0]!=="list")throw new d('The only activity subcommand is "list"',{fix:'Run "hyperscale help activity" to see usage.'});return await Qr(r,t),0}if(n==="ops"){if(a[0]!=="list")throw new d('The only ops subcommand is "list"',{fix:'Run "hyperscale help ops" to see usage.'});let o=r["--catalog"]?{catalog:!0}:await tt(r,t);return await Xr(o,r,a[1]),0}if(n==="call"){let o=await tt(r,t);return await ri(o,r,a[0]),0}throw new d(`Unknown command: ${n}`,{fix:'Run "hyperscale --help" to list commands.'})}ai(process.argv.slice(2),process.env).then(e=>{process.exitCode=e},e=>{ii(e,process.argv.slice(2)),process.exitCode=e instanceof d&&Number.isInteger(e.exitCode)?e.exitCode:1});
|