weft-sdk 0.25.0 → 0.32.5
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.
- checksums.yaml +4 -4
- data/docs/FetchApi.md +3 -3
- data/docs/FetchErrorResponse.md +1 -1
- data/docs/FetchRequest.md +6 -2
- data/docs/FetchResponse.md +5 -3
- data/docs/GetPurchaseIdParameter.md +48 -0
- data/docs/PaymentsApi.md +2 -0
- data/docs/Purchase.md +6 -0
- data/docs/PurchasesApi.md +2 -2
- data/docs/SearchApi.md +1 -1
- data/docs/SearchCompactAccess.md +23 -0
- data/docs/SearchCompactAccessPrice.md +23 -0
- data/docs/SearchCompactNextCall.md +23 -0
- data/docs/SearchCompactResult.md +47 -0
- data/docs/SearchCompactResultAttribution.md +21 -0
- data/docs/SearchCompactResultBlockedScopesInner.md +19 -0
- data/docs/SearchCompactResultOperation.md +21 -0
- data/docs/SearchCompactResultProvider.md +19 -0
- data/docs/SearchEndpointCall.md +1 -1
- data/docs/SearchEndpointCallInputSchema.md +14 -0
- data/docs/SearchEndpointHit.md +5 -1
- data/docs/SearchHelperDocs.md +23 -0
- data/docs/SearchRequest.md +3 -1
- data/docs/SearchResponse.md +9 -3
- data/docs/SearchWeftFetchCompatibility.md +3 -1
- data/docs/WebhooksApi.md +414 -0
- data/lib/weft/client.rb +271 -0
- data/lib/weft/error.rb +41 -0
- data/lib/weft/facilitator/client.rb +254 -42
- data/lib/weft/facilitator/echo.rb +99 -0
- data/lib/weft/facilitator/extensions.rb +183 -0
- data/lib/weft/facilitator/fee.rb +26 -11
- data/lib/weft/facilitator/handshake.rb +92 -0
- data/lib/weft/facilitator/json_wire.rb +74 -0
- data/lib/weft/facilitator/middleware.rb +563 -137
- data/lib/weft/facilitator/path_match.rb +179 -0
- data/lib/weft/facilitator/product.rb +380 -0
- data/lib/weft/facilitator/replay.rb +46 -0
- data/lib/weft/facilitator/settlement.rb +117 -0
- data/lib/weft/facilitator/x402.rb +355 -0
- data/lib/weft/generated/api/account_api.rb +2 -2
- data/lib/weft/generated/api/agent_bootstrap_api.rb +2 -2
- data/lib/weft/generated/api/api_keys_api.rb +2 -2
- data/lib/weft/generated/api/auth_api.rb +2 -2
- data/lib/weft/generated/api/balance_api.rb +2 -2
- data/lib/weft/generated/api/documentation_api.rb +2 -2
- data/lib/weft/generated/api/fetch_api.rb +6 -6
- data/lib/weft/generated/api/payments_api.rb +4 -2
- data/lib/weft/generated/api/purchases_api.rb +4 -4
- data/lib/weft/generated/api/resources_api.rb +2 -2
- data/lib/weft/generated/api/search_api.rb +4 -4
- data/lib/weft/generated/api/webhooks_api.rb +388 -0
- data/lib/weft/generated/api_client.rb +2 -2
- data/lib/weft/generated/api_error.rb +2 -2
- data/lib/weft/generated/api_model_base.rb +2 -2
- data/lib/weft/generated/configuration.rb +2 -2
- data/lib/weft/generated/models/account_bootstrap_approval.rb +2 -2
- data/lib/weft/generated/models/account_bootstrap_created.rb +2 -2
- data/lib/weft/generated/models/account_bootstrap_created_approval.rb +2 -2
- data/lib/weft/generated/models/account_bootstrap_created_response.rb +2 -2
- data/lib/weft/generated/models/account_bootstrap_request.rb +2 -2
- data/lib/weft/generated/models/account_bootstrap_status.rb +2 -2
- data/lib/weft/generated/models/account_bootstrap_status_response.rb +2 -2
- data/lib/weft/generated/models/account_details.rb +2 -2
- data/lib/weft/generated/models/api_key.rb +2 -2
- data/lib/weft/generated/models/api_key_created.rb +2 -2
- data/lib/weft/generated/models/api_key_created_response.rb +2 -2
- data/lib/weft/generated/models/api_key_list_response.rb +2 -2
- data/lib/weft/generated/models/auth_response.rb +2 -2
- data/lib/weft/generated/models/auth_response_data.rb +2 -2
- data/lib/weft/generated/models/balance_response.rb +2 -2
- data/lib/weft/generated/models/confirm_request.rb +2 -2
- data/lib/weft/generated/models/create_api_key_request.rb +2 -2
- data/lib/weft/generated/models/enrolled_resource.rb +2 -2
- data/lib/weft/generated/models/error.rb +2 -2
- data/lib/weft/generated/models/error_response.rb +2 -2
- data/lib/weft/generated/models/fetch403_response.rb +2 -2
- data/lib/weft/generated/models/fetch_balance_snapshot.rb +2 -2
- data/lib/weft/generated/models/fetch_error_response.rb +5 -5
- data/lib/weft/generated/models/fetch_request.rb +46 -5
- data/lib/weft/generated/models/fetch_request_body.rb +2 -2
- data/lib/weft/generated/models/fetch_response.rb +36 -64
- data/lib/weft/generated/models/get_purchase_id_parameter.rb +104 -0
- data/lib/weft/generated/models/insufficient_scope_response.rb +2 -2
- data/lib/weft/generated/models/me_api_key.rb +2 -2
- data/lib/weft/generated/models/me_api_key_creator.rb +2 -2
- data/lib/weft/generated/models/me_response.rb +2 -2
- data/lib/weft/generated/models/me_response_data.rb +2 -2
- data/lib/weft/generated/models/message_response.rb +2 -2
- data/lib/weft/generated/models/message_response_data.rb +2 -2
- data/lib/weft/generated/models/pagination.rb +2 -2
- data/lib/weft/generated/models/password_reset_request.rb +2 -2
- data/lib/weft/generated/models/password_update_request.rb +2 -2
- data/lib/weft/generated/models/payment.rb +2 -2
- data/lib/weft/generated/models/payment_list_response.rb +2 -2
- data/lib/weft/generated/models/payment_response.rb +2 -2
- data/lib/weft/generated/models/principal_wallet.rb +2 -2
- data/lib/weft/generated/models/promo_balance.rb +2 -2
- data/lib/weft/generated/models/purchase.rb +75 -3
- data/lib/weft/generated/models/purchase_artifact.rb +2 -2
- data/lib/weft/generated/models/purchase_list_response.rb +2 -2
- data/lib/weft/generated/models/purchase_response.rb +2 -2
- data/lib/weft/generated/models/rate_limit_response.rb +2 -2
- data/lib/weft/generated/models/resend_confirmation_request.rb +2 -2
- data/lib/weft/generated/models/resource_enrollment_request.rb +2 -2
- data/lib/weft/generated/models/resource_enrollment_response.rb +2 -2
- data/lib/weft/generated/models/resource_stats.rb +2 -2
- data/lib/weft/generated/models/search_access_method.rb +2 -2
- data/lib/weft/generated/models/search_capability_ref.rb +2 -2
- data/lib/weft/generated/models/search_compact_access.rb +179 -0
- data/lib/weft/generated/models/search_compact_access_price.rb +176 -0
- data/lib/weft/generated/models/search_compact_next_call.rb +275 -0
- data/lib/weft/generated/models/search_compact_result.rb +389 -0
- data/lib/weft/generated/models/search_compact_result_attribution.rb +166 -0
- data/lib/weft/generated/models/search_compact_result_blocked_scopes_inner.rb +156 -0
- data/lib/weft/generated/models/search_compact_result_operation.rb +183 -0
- data/lib/weft/generated/models/search_compact_result_provider.rb +156 -0
- data/lib/weft/generated/models/search_curated_callability.rb +2 -2
- data/lib/weft/generated/models/search_curated_execution.rb +2 -2
- data/lib/weft/generated/models/search_curated_operation.rb +2 -2
- data/lib/weft/generated/models/search_curated_service.rb +2 -2
- data/lib/weft/generated/models/search_curated_source.rb +2 -2
- data/lib/weft/generated/models/search_endpoint_call.rb +4 -4
- data/lib/weft/generated/models/search_endpoint_call_input_schema.rb +103 -0
- data/lib/weft/generated/models/search_endpoint_hit.rb +25 -6
- data/lib/weft/generated/models/search_endpoint_price.rb +2 -2
- data/lib/weft/generated/models/search_error_response.rb +4 -4
- data/lib/weft/generated/models/search_execution_mode_filter.rb +2 -2
- data/lib/weft/generated/models/search_filter_spec.rb +2 -2
- data/lib/weft/generated/models/search_helper_docs.rb +175 -0
- data/lib/weft/generated/models/search_method_filter.rb +2 -2
- data/lib/weft/generated/models/search_payment_offer.rb +2 -2
- data/lib/weft/generated/models/search_price_atomic_filter.rb +2 -2
- data/lib/weft/generated/models/search_price_usd_filter.rb +2 -2
- data/lib/weft/generated/models/search_protocol_filter.rb +2 -2
- data/lib/weft/generated/models/search_provider_ref.rb +2 -2
- data/lib/weft/generated/models/search_request.rb +50 -6
- data/lib/weft/generated/models/search_resource_type_filter.rb +2 -2
- data/lib/weft/generated/models/search_response.rb +71 -8
- data/lib/weft/generated/models/search_response_warnings_inner.rb +2 -2
- data/lib/weft/generated/models/search_result.rb +2 -2
- data/lib/weft/generated/models/search_string_set_filter.rb +2 -2
- data/lib/weft/generated/models/search_weft_fetch_compatibility.rb +28 -6
- data/lib/weft/generated/models/sign_in_request.rb +2 -2
- data/lib/weft/generated/models/sign_up_request.rb +2 -2
- data/lib/weft/generated/models/spending_policy.rb +2 -2
- data/lib/weft/generated/models/user.rb +2 -2
- data/lib/weft/generated/models/user_principal.rb +2 -2
- data/lib/weft/generated/models/wallet.rb +2 -2
- data/lib/weft/generated/version.rb +3 -3
- data/lib/weft/sdk.rb +3 -1
- metadata +39 -4
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Weft API
|
|
3
3
|
|
|
4
|
-
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents
|
|
4
|
+
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents` and `/api/v1/analytics` — are reachable with an `ax_live_*` key but are intentionally left undocumented: they are dashboard-facing and not part of the published client contract. `/api/v1/webhook_endpoints` stays routed and returns HTTP 410 with error code `gone` for index, show, create, update, and destroy. Nothing outside this document is a supported contract, and the response-validation gate in `config/environments/test.rb` enforces only what is declared here. Before claim, a `wbt_*` bearer is temporary and permits only search plus its own status/cancel operations for 30 minutes. Human approval binds it to the User and promotes the same secret to durable identity, search, balance, fetch, purchase-history, status, and revocation capabilities. It remains valid until revoked. Seller, organization, API-key administration, dashboard-session, transfer, withdrawal, and MCP surfaces always refuse it. Bootstrap lifecycle successes follow the API-standard `{ \"data\": ... }` envelope. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
|
|
5
5
|
|
|
6
|
-
The version of the OpenAPI document: 0.
|
|
6
|
+
The version of the OpenAPI document: 0.32.5
|
|
7
7
|
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.19.0
|
|
@@ -19,7 +19,7 @@ module Weft
|
|
|
19
19
|
# Stable error code.
|
|
20
20
|
attr_accessor :error
|
|
21
21
|
|
|
22
|
-
# Optional context. Shape varies by error code.
|
|
22
|
+
# Optional context. Shape varies by error code. `purchase_id` (opaque string) is present when the failure follows a payment row for this request — a new, resumed, or replayed payment. It is the id that `GET /api/v1/purchases/{id}` accepts: read that purchase to learn whether the charge settled, instead of assuming either outcome. It is absent when the request was refused before any payment row existed.
|
|
23
23
|
attr_accessor :details
|
|
24
24
|
|
|
25
25
|
attr_accessor :policy
|
|
@@ -171,7 +171,7 @@ module Weft
|
|
|
171
171
|
def valid?
|
|
172
172
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
173
173
|
return false if @error.nil?
|
|
174
|
-
error_validator = EnumAttributeValidator.new('String', ["INVALID_REQUEST", "UNKNOWN_PARAMETER", "INVALID_URL", "INVALID_MAX_COST_USD", "UNSUPPORTED_METHOD", "INVALID_BODY", "INVALID_HEADERS", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_CONFLICT", "ACCOUNT_CLOSING", "EXCEEDED_MAX_COST", "INSUFFICIENT_BALANCE", "PAYMENT_AUTHORIZATION_REQUIRED", "WALLET_SETUP_INCOMPLETE", "MERCHANT_RETURNED_NON_402", "MERCHANT_TIMEOUT", "PAID_DELIVERY_FAILED", "DELIVERY_REPLAY_UNAVAILABLE", "ARTIFACT_TOO_LARGE", "DENYLISTED_RECIPIENT", "WALLET_ENVIRONMENT_MISMATCH", "UNSUPPORTED_ASSET", "UNSUPPORTED_PAYMENT_METHOD", "SETTLEMENT_FAILED", "SETTLEMENT_PENDING", "POLICY_VIOLATION_MAX_TX", "POLICY_VIOLATION_DAILY", "POLICY_VIOLATION_WEEKLY"])
|
|
174
|
+
error_validator = EnumAttributeValidator.new('String', ["INVALID_REQUEST", "UNKNOWN_PARAMETER", "INVALID_URL", "INVALID_MAX_COST_USD", "INVALID_ALLOW_TEMPO_REFILL", "INVALID_MAX_TOTAL_COST_USD", "INCOMPATIBLE_FETCH_CONTROLS", "UNSUPPORTED_METHOD", "INVALID_BODY", "INVALID_HEADERS", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_CONFLICT", "ACCOUNT_CLOSING", "EXCEEDED_MAX_COST", "TOTAL_COST_UNVERIFIABLE", "FUNDING_PENDING", "INSUFFICIENT_BALANCE", "PAYMENT_AUTHORIZATION_REQUIRED", "WALLET_SETUP_INCOMPLETE", "MERCHANT_RETURNED_NON_402", "MERCHANT_TIMEOUT", "MERCHANT_CONNECTION_FAILED", "PAID_DELIVERY_FAILED", "DELIVERY_REPLAY_UNAVAILABLE", "ARTIFACT_TOO_LARGE", "DENYLISTED_RECIPIENT", "WALLET_ENVIRONMENT_MISMATCH", "UNSUPPORTED_ASSET", "UNSUPPORTED_PAYMENT_METHOD", "SETTLEMENT_FAILED", "SETTLEMENT_PENDING", "POLICY_VIOLATION_MAX_TX", "POLICY_VIOLATION_DAILY", "POLICY_VIOLATION_WEEKLY"])
|
|
175
175
|
return false unless error_validator.valid?(@error)
|
|
176
176
|
return false if @details.nil?
|
|
177
177
|
return false if @policy.nil?
|
|
@@ -183,7 +183,7 @@ module Weft
|
|
|
183
183
|
# Custom attribute writer method checking allowed values (enum).
|
|
184
184
|
# @param [Object] error Object to be assigned
|
|
185
185
|
def error=(error)
|
|
186
|
-
validator = EnumAttributeValidator.new('String', ["INVALID_REQUEST", "UNKNOWN_PARAMETER", "INVALID_URL", "INVALID_MAX_COST_USD", "UNSUPPORTED_METHOD", "INVALID_BODY", "INVALID_HEADERS", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_CONFLICT", "ACCOUNT_CLOSING", "EXCEEDED_MAX_COST", "INSUFFICIENT_BALANCE", "PAYMENT_AUTHORIZATION_REQUIRED", "WALLET_SETUP_INCOMPLETE", "MERCHANT_RETURNED_NON_402", "MERCHANT_TIMEOUT", "PAID_DELIVERY_FAILED", "DELIVERY_REPLAY_UNAVAILABLE", "ARTIFACT_TOO_LARGE", "DENYLISTED_RECIPIENT", "WALLET_ENVIRONMENT_MISMATCH", "UNSUPPORTED_ASSET", "UNSUPPORTED_PAYMENT_METHOD", "SETTLEMENT_FAILED", "SETTLEMENT_PENDING", "POLICY_VIOLATION_MAX_TX", "POLICY_VIOLATION_DAILY", "POLICY_VIOLATION_WEEKLY"])
|
|
186
|
+
validator = EnumAttributeValidator.new('String', ["INVALID_REQUEST", "UNKNOWN_PARAMETER", "INVALID_URL", "INVALID_MAX_COST_USD", "INVALID_ALLOW_TEMPO_REFILL", "INVALID_MAX_TOTAL_COST_USD", "INCOMPATIBLE_FETCH_CONTROLS", "UNSUPPORTED_METHOD", "INVALID_BODY", "INVALID_HEADERS", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_CONFLICT", "ACCOUNT_CLOSING", "EXCEEDED_MAX_COST", "TOTAL_COST_UNVERIFIABLE", "FUNDING_PENDING", "INSUFFICIENT_BALANCE", "PAYMENT_AUTHORIZATION_REQUIRED", "WALLET_SETUP_INCOMPLETE", "MERCHANT_RETURNED_NON_402", "MERCHANT_TIMEOUT", "MERCHANT_CONNECTION_FAILED", "PAID_DELIVERY_FAILED", "DELIVERY_REPLAY_UNAVAILABLE", "ARTIFACT_TOO_LARGE", "DENYLISTED_RECIPIENT", "WALLET_ENVIRONMENT_MISMATCH", "UNSUPPORTED_ASSET", "UNSUPPORTED_PAYMENT_METHOD", "SETTLEMENT_FAILED", "SETTLEMENT_PENDING", "POLICY_VIOLATION_MAX_TX", "POLICY_VIOLATION_DAILY", "POLICY_VIOLATION_WEEKLY"])
|
|
187
187
|
unless validator.valid?(error)
|
|
188
188
|
fail ArgumentError, "invalid value for \"error\", must be one of #{validator.allowable_values}."
|
|
189
189
|
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Weft API
|
|
3
3
|
|
|
4
|
-
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents
|
|
4
|
+
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents` and `/api/v1/analytics` — are reachable with an `ax_live_*` key but are intentionally left undocumented: they are dashboard-facing and not part of the published client contract. `/api/v1/webhook_endpoints` stays routed and returns HTTP 410 with error code `gone` for index, show, create, update, and destroy. Nothing outside this document is a supported contract, and the response-validation gate in `config/environments/test.rb` enforces only what is declared here. Before claim, a `wbt_*` bearer is temporary and permits only search plus its own status/cancel operations for 30 minutes. Human approval binds it to the User and promotes the same secret to durable identity, search, balance, fetch, purchase-history, status, and revocation capabilities. It remains valid until revoked. Seller, organization, API-key administration, dashboard-session, transfer, withdrawal, and MCP surfaces always refuse it. Bootstrap lifecycle successes follow the API-standard `{ \"data\": ... }` envelope. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
|
|
5
5
|
|
|
6
|
-
The version of the OpenAPI document: 0.
|
|
6
|
+
The version of the OpenAPI document: 0.32.5
|
|
7
7
|
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.19.0
|
|
@@ -18,9 +18,15 @@ module Weft
|
|
|
18
18
|
# Target URL. Must pass Weft's URL safety check (no SSRF / private IP ranges).
|
|
19
19
|
attr_accessor :url
|
|
20
20
|
|
|
21
|
-
#
|
|
21
|
+
# Merchant-principal ceiling, excluding gas, provider fees and prerequisites. Defaults to `0.10` USD; use `max_total_cost_usd` for an all-in bound.
|
|
22
22
|
attr_accessor :max_cost_usd
|
|
23
23
|
|
|
24
|
+
# Whether this request may create, adopt, or enqueue a Base-to-Tempo refill. Only JSON booleans are accepted. Omission allows legacy refill behavior unless `max_total_cost_usd` is supplied, in which case refill is disabled. False leaves unrelated bridges and jobs unchanged and reports an unfunded Tempo pocket as `INSUFFICIENT_BALANCE`. This does not select a rail or bound fees.
|
|
25
|
+
attr_accessor :allow_tempo_refill
|
|
26
|
+
|
|
27
|
+
# Optional all-in buyer-debit ceiling in USD, including principal, gas, provider fees and prerequisite operations. Requires a binding upstream upper bound before any payment effect. Current integrations have no such guarantee, so requests requiring wallet signing or payment fail closed with `TOTAL_COST_UNVERIFIABLE`, including recovery and replay of previous payments. No positive paid route is currently admitted in this mode. Estimates, expected sponsorship and receipts are not authority. Implies no refill; explicit `allow_tempo_refill: true` is invalid. Omission preserves legacy behavior.
|
|
28
|
+
attr_accessor :max_total_cost_usd
|
|
29
|
+
|
|
24
30
|
# HTTP method to use against the upstream.
|
|
25
31
|
attr_accessor :method
|
|
26
32
|
|
|
@@ -35,7 +41,7 @@ module Weft
|
|
|
35
41
|
# Advisory operation id returned by search.
|
|
36
42
|
attr_accessor :operation_id
|
|
37
43
|
|
|
38
|
-
# Advisory access-method id returned by search.
|
|
44
|
+
# Advisory access-method id returned by search; does not enforce a payment rail.
|
|
39
45
|
attr_accessor :access_method_id
|
|
40
46
|
|
|
41
47
|
class EnumAttributeValidator
|
|
@@ -65,6 +71,8 @@ module Weft
|
|
|
65
71
|
{
|
|
66
72
|
:'url' => :'url',
|
|
67
73
|
:'max_cost_usd' => :'max_cost_usd',
|
|
74
|
+
:'allow_tempo_refill' => :'allow_tempo_refill',
|
|
75
|
+
:'max_total_cost_usd' => :'max_total_cost_usd',
|
|
68
76
|
:'method' => :'method',
|
|
69
77
|
:'body' => :'body',
|
|
70
78
|
:'headers' => :'headers',
|
|
@@ -89,6 +97,8 @@ module Weft
|
|
|
89
97
|
{
|
|
90
98
|
:'url' => :'String',
|
|
91
99
|
:'max_cost_usd' => :'String',
|
|
100
|
+
:'allow_tempo_refill' => :'Boolean',
|
|
101
|
+
:'max_total_cost_usd' => :'String',
|
|
92
102
|
:'method' => :'String',
|
|
93
103
|
:'body' => :'FetchRequestBody',
|
|
94
104
|
:'headers' => :'Hash<String, String>',
|
|
@@ -133,6 +143,14 @@ module Weft
|
|
|
133
143
|
self.max_cost_usd = '0.10'
|
|
134
144
|
end
|
|
135
145
|
|
|
146
|
+
if attributes.key?(:'allow_tempo_refill')
|
|
147
|
+
self.allow_tempo_refill = attributes[:'allow_tempo_refill']
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
if attributes.key?(:'max_total_cost_usd')
|
|
151
|
+
self.max_total_cost_usd = attributes[:'max_total_cost_usd']
|
|
152
|
+
end
|
|
153
|
+
|
|
136
154
|
if attributes.key?(:'method')
|
|
137
155
|
self.method = attributes[:'method']
|
|
138
156
|
else
|
|
@@ -176,6 +194,11 @@ module Weft
|
|
|
176
194
|
invalid_properties.push("invalid value for \"max_cost_usd\", must conform to the pattern #{pattern}.")
|
|
177
195
|
end
|
|
178
196
|
|
|
197
|
+
pattern = Regexp.new(/^\d+(\.\d{1,6})?$/)
|
|
198
|
+
if !@max_total_cost_usd.nil? && @max_total_cost_usd !~ pattern
|
|
199
|
+
invalid_properties.push("invalid value for \"max_total_cost_usd\", must conform to the pattern #{pattern}.")
|
|
200
|
+
end
|
|
201
|
+
|
|
179
202
|
invalid_properties
|
|
180
203
|
end
|
|
181
204
|
|
|
@@ -185,6 +208,7 @@ module Weft
|
|
|
185
208
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
186
209
|
return false if @url.nil?
|
|
187
210
|
return false if !@max_cost_usd.nil? && @max_cost_usd !~ Regexp.new(/^\d+(\.\d{1,6})?$/)
|
|
211
|
+
return false if !@max_total_cost_usd.nil? && @max_total_cost_usd !~ Regexp.new(/^\d+(\.\d{1,6})?$/)
|
|
188
212
|
method_validator = EnumAttributeValidator.new('String', ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"])
|
|
189
213
|
return false unless method_validator.valid?(@method)
|
|
190
214
|
true
|
|
@@ -215,6 +239,21 @@ module Weft
|
|
|
215
239
|
@max_cost_usd = max_cost_usd
|
|
216
240
|
end
|
|
217
241
|
|
|
242
|
+
# Custom attribute writer method with validation
|
|
243
|
+
# @param [Object] max_total_cost_usd Value to be assigned
|
|
244
|
+
def max_total_cost_usd=(max_total_cost_usd)
|
|
245
|
+
if max_total_cost_usd.nil?
|
|
246
|
+
fail ArgumentError, 'max_total_cost_usd cannot be nil'
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
pattern = Regexp.new(/^\d+(\.\d{1,6})?$/)
|
|
250
|
+
if max_total_cost_usd !~ pattern
|
|
251
|
+
fail ArgumentError, "invalid value for \"max_total_cost_usd\", must conform to the pattern #{pattern}."
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
@max_total_cost_usd = max_total_cost_usd
|
|
255
|
+
end
|
|
256
|
+
|
|
218
257
|
# Custom attribute writer method checking allowed values (enum).
|
|
219
258
|
# @param [Object] method Object to be assigned
|
|
220
259
|
def method=(method)
|
|
@@ -232,6 +271,8 @@ module Weft
|
|
|
232
271
|
self.class == o.class &&
|
|
233
272
|
url == o.url &&
|
|
234
273
|
max_cost_usd == o.max_cost_usd &&
|
|
274
|
+
allow_tempo_refill == o.allow_tempo_refill &&
|
|
275
|
+
max_total_cost_usd == o.max_total_cost_usd &&
|
|
235
276
|
method == o.method &&
|
|
236
277
|
body == o.body &&
|
|
237
278
|
headers == o.headers &&
|
|
@@ -249,7 +290,7 @@ module Weft
|
|
|
249
290
|
# Calculates hash code according to all attributes.
|
|
250
291
|
# @return [Integer] Hash code
|
|
251
292
|
def hash
|
|
252
|
-
[url, max_cost_usd, method, body, headers, search_id, operation_id, access_method_id].hash
|
|
293
|
+
[url, max_cost_usd, allow_tempo_refill, max_total_cost_usd, method, body, headers, search_id, operation_id, access_method_id].hash
|
|
253
294
|
end
|
|
254
295
|
|
|
255
296
|
# Builds the object from hash
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Weft API
|
|
3
3
|
|
|
4
|
-
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents
|
|
4
|
+
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents` and `/api/v1/analytics` — are reachable with an `ax_live_*` key but are intentionally left undocumented: they are dashboard-facing and not part of the published client contract. `/api/v1/webhook_endpoints` stays routed and returns HTTP 410 with error code `gone` for index, show, create, update, and destroy. Nothing outside this document is a supported contract, and the response-validation gate in `config/environments/test.rb` enforces only what is declared here. Before claim, a `wbt_*` bearer is temporary and permits only search plus its own status/cancel operations for 30 minutes. Human approval binds it to the User and promotes the same secret to durable identity, search, balance, fetch, purchase-history, status, and revocation capabilities. It remains valid until revoked. Seller, organization, API-key administration, dashboard-session, transfer, withdrawal, and MCP surfaces always refuse it. Bootstrap lifecycle successes follow the API-standard `{ \"data\": ... }` envelope. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
|
|
5
5
|
|
|
6
|
-
The version of the OpenAPI document: 0.
|
|
6
|
+
The version of the OpenAPI document: 0.32.5
|
|
7
7
|
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.19.0
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Weft API
|
|
3
3
|
|
|
4
|
-
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents
|
|
4
|
+
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents` and `/api/v1/analytics` — are reachable with an `ax_live_*` key but are intentionally left undocumented: they are dashboard-facing and not part of the published client contract. `/api/v1/webhook_endpoints` stays routed and returns HTTP 410 with error code `gone` for index, show, create, update, and destroy. Nothing outside this document is a supported contract, and the response-validation gate in `config/environments/test.rb` enforces only what is declared here. Before claim, a `wbt_*` bearer is temporary and permits only search plus its own status/cancel operations for 30 minutes. Human approval binds it to the User and promotes the same secret to durable identity, search, balance, fetch, purchase-history, status, and revocation capabilities. It remains valid until revoked. Seller, organization, API-key administration, dashboard-session, transfer, withdrawal, and MCP surfaces always refuse it. Bootstrap lifecycle successes follow the API-standard `{ \"data\": ... }` envelope. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
|
|
5
5
|
|
|
6
|
-
The version of the OpenAPI document: 0.
|
|
6
|
+
The version of the OpenAPI document: 0.32.5
|
|
7
7
|
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.19.0
|
|
@@ -14,9 +14,9 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Weft
|
|
17
|
-
# Successful fetch envelope. `body_base64` is the upstream artifact bytes, base64-encoded. `paid_usd`, `held_usd`, `payment_status`, `tx_hash`, and `protocol` describe the payment and settlement state. `paid_usd` is \"0.00\" (never the nominal charge amount) until the charge is CONFIRMED settled on-chain — a signed-but-unsettled hold reports its amount in `held_usd` instead. This is a deliberate honesty fix: earlier versions of this endpoint returned the nominal amount in `paid_usd` unconditionally, even when the charge never settled. **Money string format.** Every USD amount on this surface is exact to the micro-dollar and never narrower than two decimals: a whole-cent amount renders \"0.50\", a sub-cent amount keeps its real precision (\"0.000892\"), and zero renders \"0.00\". Amounts are never rounded — an agent reconciling its own spend reads the truth, not a display value. Parse these as decimals; do NOT compare them as strings against a bare zero literal.
|
|
17
|
+
# Successful fetch envelope. `body_base64` is the upstream artifact bytes, base64-encoded. `paid_usd`, `held_usd`, `payment_status`, `tx_hash`, and `protocol` describe the payment and settlement state. `purchase_id` names the payment for a later status read. To retrieve a SIWX-protected result, use HTTPS GET with `max_cost_usd: \"0\"`. Weft signs a fresh, resource-bound challenge with the same buyer wallet. Retrieval never falls back to payment and returns `not_required`, zero paid amount, and null held amount and transaction hash. Polls are fresh, including with repeated idempotency keys. A rejected or unsafe challenge returns `SIWX_RETRIEVAL_FAILED`. Providers must support smart-wallet signatures. Auth-only challenges also use this path; positive-budget purchases retain payment behavior. `paid_usd` is \"0.00\" (never the nominal charge amount) until the charge is CONFIRMED settled on-chain — a signed-but-unsettled hold reports its amount in `held_usd` instead. This is a deliberate honesty fix: earlier versions of this endpoint returned the nominal amount in `paid_usd` unconditionally, even when the charge never settled. **Money string format.** Every USD amount on this surface is exact to the micro-dollar and never narrower than two decimals: a whole-cent amount renders \"0.50\", a sub-cent amount keeps its real precision (\"0.000892\"), and zero renders \"0.00\". Amounts are never rounded — an agent reconciling its own spend reads the truth, not a display value. Parse these as decimals; do NOT compare them as strings against a bare zero literal.
|
|
18
18
|
class FetchResponse < ApiModelBase
|
|
19
|
-
# HTTP status returned by the upstream after the
|
|
19
|
+
# HTTP status returned by the upstream after the payment or SIWX authentication retry.
|
|
20
20
|
attr_accessor :status
|
|
21
21
|
|
|
22
22
|
# Response headers from the upstream.
|
|
@@ -31,7 +31,7 @@ module Weft
|
|
|
31
31
|
# The nominal charge amount when `paid_usd` is \"0.00\" — a hold awaiting settlement, or a charge that failed/expired without ever settling. `null` once `paid_usd` reflects the real settlement. Same format as `paid_usd`: exact to the micro-dollar, minimum two decimals.
|
|
32
32
|
attr_accessor :held_usd
|
|
33
33
|
|
|
34
|
-
# Agent-facing settlement status. `pending` = signed, no refusal signal yet (settlement may still land, e.g. x402's async facilitator webhook). `declined-pending` = the merchant refused but the authorization isn't provably dead yet. `declined` / `expired` / `reverted` are terminal — the money never moved (or, for `reverted`, moved and then reversed on-chain) and never will for this charge.
|
|
34
|
+
# Agent-facing settlement status. `not_required` means SIWX wallet authentication returned the response without payment. `pending` = signed, no refusal signal yet (settlement may still land, e.g. x402's async facilitator webhook). `declined-pending` = the merchant refused but the authorization isn't provably dead yet. `declined` / `expired` / `reverted` are terminal — the money never moved (or, for `reverted`, moved and then reversed on-chain) and never will for this charge.
|
|
35
35
|
attr_accessor :payment_status
|
|
36
36
|
|
|
37
37
|
# Settlement transaction hash. Null until a settlement hash has been reported.
|
|
@@ -43,6 +43,9 @@ module Weft
|
|
|
43
43
|
# Internal artifact identifier if the response was persisted; `null` otherwise.
|
|
44
44
|
attr_accessor :artifact_id
|
|
45
45
|
|
|
46
|
+
# The buyer purchase that paid for this fetch: an opaque id that `GET /api/v1/purchases/{id}` accepts and that purchase rows carry as `purchase_id`. It is not the sequential `Purchase.id`; do not parse or order by it. That purchase reports its own `status`, not `payment_status`: `signed` while the payment is pending, then `settled` (charged its `amount_usd`, which can be less than `held_usd`) or `declined`, `locked`, `expired`, or `reverted` (not charged). A `settled` purchase with `failure_reason: merchant_delivery_failed` was charged, but no successful paid response was delivered. An idempotent replay returns the same id, so bill at most once for each id. `null` when no payment was made (`payment_status: not_required`). The lookup needs purchase-history access: a `wk_*` key, a claimed `wbt_*` bearer, or a REST OAuth token with the `balance` scope. An OAuth token issued for the MCP server cannot call this endpoint. Current servers always send this field. It is optional in this schema so that a client also accepts a response from an older server.
|
|
47
|
+
attr_accessor :purchase_id
|
|
48
|
+
|
|
46
49
|
class EnumAttributeValidator
|
|
47
50
|
attr_reader :datatype
|
|
48
51
|
attr_reader :allowable_values
|
|
@@ -76,7 +79,8 @@ module Weft
|
|
|
76
79
|
:'payment_status' => :'payment_status',
|
|
77
80
|
:'tx_hash' => :'tx_hash',
|
|
78
81
|
:'protocol' => :'protocol',
|
|
79
|
-
:'artifact_id' => :'artifact_id'
|
|
82
|
+
:'artifact_id' => :'artifact_id',
|
|
83
|
+
:'purchase_id' => :'purchase_id'
|
|
80
84
|
}
|
|
81
85
|
end
|
|
82
86
|
|
|
@@ -101,13 +105,19 @@ module Weft
|
|
|
101
105
|
:'payment_status' => :'String',
|
|
102
106
|
:'tx_hash' => :'String',
|
|
103
107
|
:'protocol' => :'String',
|
|
104
|
-
:'artifact_id' => :'Integer'
|
|
108
|
+
:'artifact_id' => :'Integer',
|
|
109
|
+
:'purchase_id' => :'String'
|
|
105
110
|
}
|
|
106
111
|
end
|
|
107
112
|
|
|
108
113
|
# List of attributes with nullable: true
|
|
109
114
|
def self.openapi_nullable
|
|
110
115
|
Set.new([
|
|
116
|
+
:'paid_usd',
|
|
117
|
+
:'held_usd',
|
|
118
|
+
:'tx_hash',
|
|
119
|
+
:'artifact_id',
|
|
120
|
+
:'purchase_id'
|
|
111
121
|
])
|
|
112
122
|
end
|
|
113
123
|
|
|
@@ -182,6 +192,10 @@ module Weft
|
|
|
182
192
|
else
|
|
183
193
|
self.artifact_id = nil
|
|
184
194
|
end
|
|
195
|
+
|
|
196
|
+
if attributes.key?(:'purchase_id')
|
|
197
|
+
self.purchase_id = attributes[:'purchase_id']
|
|
198
|
+
end
|
|
185
199
|
end
|
|
186
200
|
|
|
187
201
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -201,28 +215,17 @@ module Weft
|
|
|
201
215
|
invalid_properties.push('invalid value for "body_base64", body_base64 cannot be nil.')
|
|
202
216
|
end
|
|
203
217
|
|
|
204
|
-
if @paid_usd.nil?
|
|
205
|
-
invalid_properties.push('invalid value for "paid_usd", paid_usd cannot be nil.')
|
|
206
|
-
end
|
|
207
|
-
|
|
208
|
-
if @held_usd.nil?
|
|
209
|
-
invalid_properties.push('invalid value for "held_usd", held_usd cannot be nil.')
|
|
210
|
-
end
|
|
211
|
-
|
|
212
218
|
if @payment_status.nil?
|
|
213
219
|
invalid_properties.push('invalid value for "payment_status", payment_status cannot be nil.')
|
|
214
220
|
end
|
|
215
221
|
|
|
216
|
-
if @tx_hash.nil?
|
|
217
|
-
invalid_properties.push('invalid value for "tx_hash", tx_hash cannot be nil.')
|
|
218
|
-
end
|
|
219
|
-
|
|
220
222
|
if @protocol.nil?
|
|
221
223
|
invalid_properties.push('invalid value for "protocol", protocol cannot be nil.')
|
|
222
224
|
end
|
|
223
225
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
+
pattern = Regexp.new(/^pur_[A-Za-z0-9_-]{24}$/)
|
|
227
|
+
if !@purchase_id.nil? && @purchase_id !~ pattern
|
|
228
|
+
invalid_properties.push("invalid value for \"purchase_id\", must conform to the pattern #{pattern}.")
|
|
226
229
|
end
|
|
227
230
|
|
|
228
231
|
invalid_properties
|
|
@@ -235,16 +238,13 @@ module Weft
|
|
|
235
238
|
return false if @status.nil?
|
|
236
239
|
return false if @headers.nil?
|
|
237
240
|
return false if @body_base64.nil?
|
|
238
|
-
return false if @paid_usd.nil?
|
|
239
|
-
return false if @held_usd.nil?
|
|
240
241
|
return false if @payment_status.nil?
|
|
241
|
-
payment_status_validator = EnumAttributeValidator.new('String', ["settled", "pending", "declined-pending", "declined", "expired", "reverted"])
|
|
242
|
+
payment_status_validator = EnumAttributeValidator.new('String', ["settled", "pending", "declined-pending", "declined", "expired", "reverted", "not_required"])
|
|
242
243
|
return false unless payment_status_validator.valid?(@payment_status)
|
|
243
|
-
return false if @tx_hash.nil?
|
|
244
244
|
return false if @protocol.nil?
|
|
245
245
|
protocol_validator = EnumAttributeValidator.new('String', ["x402", "mpp"])
|
|
246
246
|
return false unless protocol_validator.valid?(@protocol)
|
|
247
|
-
return false if
|
|
247
|
+
return false if !@purchase_id.nil? && @purchase_id !~ Regexp.new(/^pur_[A-Za-z0-9_-]{24}$/)
|
|
248
248
|
true
|
|
249
249
|
end
|
|
250
250
|
|
|
@@ -278,46 +278,16 @@ module Weft
|
|
|
278
278
|
@body_base64 = body_base64
|
|
279
279
|
end
|
|
280
280
|
|
|
281
|
-
# Custom attribute writer method with validation
|
|
282
|
-
# @param [Object] paid_usd Value to be assigned
|
|
283
|
-
def paid_usd=(paid_usd)
|
|
284
|
-
if paid_usd.nil?
|
|
285
|
-
fail ArgumentError, 'paid_usd cannot be nil'
|
|
286
|
-
end
|
|
287
|
-
|
|
288
|
-
@paid_usd = paid_usd
|
|
289
|
-
end
|
|
290
|
-
|
|
291
|
-
# Custom attribute writer method with validation
|
|
292
|
-
# @param [Object] held_usd Value to be assigned
|
|
293
|
-
def held_usd=(held_usd)
|
|
294
|
-
if held_usd.nil?
|
|
295
|
-
fail ArgumentError, 'held_usd cannot be nil'
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
@held_usd = held_usd
|
|
299
|
-
end
|
|
300
|
-
|
|
301
281
|
# Custom attribute writer method checking allowed values (enum).
|
|
302
282
|
# @param [Object] payment_status Object to be assigned
|
|
303
283
|
def payment_status=(payment_status)
|
|
304
|
-
validator = EnumAttributeValidator.new('String', ["settled", "pending", "declined-pending", "declined", "expired", "reverted"])
|
|
284
|
+
validator = EnumAttributeValidator.new('String', ["settled", "pending", "declined-pending", "declined", "expired", "reverted", "not_required"])
|
|
305
285
|
unless validator.valid?(payment_status)
|
|
306
286
|
fail ArgumentError, "invalid value for \"payment_status\", must be one of #{validator.allowable_values}."
|
|
307
287
|
end
|
|
308
288
|
@payment_status = payment_status
|
|
309
289
|
end
|
|
310
290
|
|
|
311
|
-
# Custom attribute writer method with validation
|
|
312
|
-
# @param [Object] tx_hash Value to be assigned
|
|
313
|
-
def tx_hash=(tx_hash)
|
|
314
|
-
if tx_hash.nil?
|
|
315
|
-
fail ArgumentError, 'tx_hash cannot be nil'
|
|
316
|
-
end
|
|
317
|
-
|
|
318
|
-
@tx_hash = tx_hash
|
|
319
|
-
end
|
|
320
|
-
|
|
321
291
|
# Custom attribute writer method checking allowed values (enum).
|
|
322
292
|
# @param [Object] protocol Object to be assigned
|
|
323
293
|
def protocol=(protocol)
|
|
@@ -329,13 +299,14 @@ module Weft
|
|
|
329
299
|
end
|
|
330
300
|
|
|
331
301
|
# Custom attribute writer method with validation
|
|
332
|
-
# @param [Object]
|
|
333
|
-
def
|
|
334
|
-
|
|
335
|
-
|
|
302
|
+
# @param [Object] purchase_id Value to be assigned
|
|
303
|
+
def purchase_id=(purchase_id)
|
|
304
|
+
pattern = Regexp.new(/^pur_[A-Za-z0-9_-]{24}$/)
|
|
305
|
+
if !purchase_id.nil? && purchase_id !~ pattern
|
|
306
|
+
fail ArgumentError, "invalid value for \"purchase_id\", must conform to the pattern #{pattern}."
|
|
336
307
|
end
|
|
337
308
|
|
|
338
|
-
@
|
|
309
|
+
@purchase_id = purchase_id
|
|
339
310
|
end
|
|
340
311
|
|
|
341
312
|
# Checks equality by comparing each attribute.
|
|
@@ -351,7 +322,8 @@ module Weft
|
|
|
351
322
|
payment_status == o.payment_status &&
|
|
352
323
|
tx_hash == o.tx_hash &&
|
|
353
324
|
protocol == o.protocol &&
|
|
354
|
-
artifact_id == o.artifact_id
|
|
325
|
+
artifact_id == o.artifact_id &&
|
|
326
|
+
purchase_id == o.purchase_id
|
|
355
327
|
end
|
|
356
328
|
|
|
357
329
|
# @see the `==` method
|
|
@@ -363,7 +335,7 @@ module Weft
|
|
|
363
335
|
# Calculates hash code according to all attributes.
|
|
364
336
|
# @return [Integer] Hash code
|
|
365
337
|
def hash
|
|
366
|
-
[status, headers, body_base64, paid_usd, held_usd, payment_status, tx_hash, protocol, artifact_id].hash
|
|
338
|
+
[status, headers, body_base64, paid_usd, held_usd, payment_status, tx_hash, protocol, artifact_id, purchase_id].hash
|
|
367
339
|
end
|
|
368
340
|
|
|
369
341
|
# Builds the object from hash
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Weft API
|
|
3
|
+
|
|
4
|
+
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents` and `/api/v1/analytics` — are reachable with an `ax_live_*` key but are intentionally left undocumented: they are dashboard-facing and not part of the published client contract. `/api/v1/webhook_endpoints` stays routed and returns HTTP 410 with error code `gone` for index, show, create, update, and destroy. Nothing outside this document is a supported contract, and the response-validation gate in `config/environments/test.rb` enforces only what is declared here. Before claim, a `wbt_*` bearer is temporary and permits only search plus its own status/cancel operations for 30 minutes. Human approval binds it to the User and promotes the same secret to durable identity, search, balance, fetch, purchase-history, status, and revocation capabilities. It remains valid until revoked. Seller, organization, API-key administration, dashboard-session, transfer, withdrawal, and MCP surfaces always refuse it. Bootstrap lifecycle successes follow the API-standard `{ \"data\": ... }` envelope. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 0.32.5
|
|
7
|
+
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module Weft
|
|
17
|
+
module GetPurchaseIdParameter
|
|
18
|
+
class << self
|
|
19
|
+
# List of class defined in oneOf (OpenAPI v3)
|
|
20
|
+
def openapi_one_of
|
|
21
|
+
[
|
|
22
|
+
:'Integer',
|
|
23
|
+
:'String'
|
|
24
|
+
]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Builds the object
|
|
28
|
+
# @param [Mixed] Data to be matched against the list of oneOf items
|
|
29
|
+
# @return [Object] Returns the model or the data itself
|
|
30
|
+
def build(data)
|
|
31
|
+
# Go through the list of oneOf items and attempt to identify the appropriate one.
|
|
32
|
+
# Note:
|
|
33
|
+
# - We do not attempt to check whether exactly one item matches.
|
|
34
|
+
# - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
|
|
35
|
+
# due to the way the deserialization is made in the base_object template (it just casts without verifying).
|
|
36
|
+
# - TODO: scalar values are de facto behaving as if they were nullable.
|
|
37
|
+
# - TODO: logging when debugging is set.
|
|
38
|
+
openapi_one_of.each do |klass|
|
|
39
|
+
begin
|
|
40
|
+
next if klass == :AnyType # "nullable: true"
|
|
41
|
+
return find_and_cast_into_type(klass, data)
|
|
42
|
+
rescue # rescue all errors so we keep iterating even if the current item lookup raises
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
openapi_one_of.include?(:AnyType) ? data : nil
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
private
|
|
50
|
+
|
|
51
|
+
SchemaMismatchError = Class.new(StandardError)
|
|
52
|
+
|
|
53
|
+
# Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
|
|
54
|
+
def find_and_cast_into_type(klass, data)
|
|
55
|
+
return if data.nil?
|
|
56
|
+
|
|
57
|
+
case klass.to_s
|
|
58
|
+
when 'Boolean'
|
|
59
|
+
return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
|
|
60
|
+
when 'Float'
|
|
61
|
+
return data if data.instance_of?(Float)
|
|
62
|
+
when 'Integer'
|
|
63
|
+
return data if data.instance_of?(Integer)
|
|
64
|
+
when 'Time'
|
|
65
|
+
return Time.parse(data)
|
|
66
|
+
when 'Date'
|
|
67
|
+
return Date.iso8601(data)
|
|
68
|
+
when 'String'
|
|
69
|
+
return data if data.instance_of?(String)
|
|
70
|
+
when 'Object' # "type: object"
|
|
71
|
+
return data if data.instance_of?(Hash)
|
|
72
|
+
when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
|
|
73
|
+
if data.instance_of?(Array)
|
|
74
|
+
sub_type = Regexp.last_match[:sub_type]
|
|
75
|
+
return data.map { |item| find_and_cast_into_type(sub_type, item) }
|
|
76
|
+
end
|
|
77
|
+
when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
|
|
78
|
+
if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
|
|
79
|
+
sub_type = Regexp.last_match[:sub_type]
|
|
80
|
+
return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
|
|
81
|
+
end
|
|
82
|
+
else # model
|
|
83
|
+
const = Weft.const_get(klass)
|
|
84
|
+
if const
|
|
85
|
+
if const.respond_to?(:openapi_one_of) # nested oneOf model
|
|
86
|
+
model = const.build(data)
|
|
87
|
+
return model if model
|
|
88
|
+
else
|
|
89
|
+
# raise if data contains keys that are not known to the model
|
|
90
|
+
raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
|
|
91
|
+
model = const.build_from_hash(data)
|
|
92
|
+
return model if model
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
raise # if no match by now, raise
|
|
98
|
+
rescue
|
|
99
|
+
raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Weft API
|
|
3
3
|
|
|
4
|
-
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents
|
|
4
|
+
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents` and `/api/v1/analytics` — are reachable with an `ax_live_*` key but are intentionally left undocumented: they are dashboard-facing and not part of the published client contract. `/api/v1/webhook_endpoints` stays routed and returns HTTP 410 with error code `gone` for index, show, create, update, and destroy. Nothing outside this document is a supported contract, and the response-validation gate in `config/environments/test.rb` enforces only what is declared here. Before claim, a `wbt_*` bearer is temporary and permits only search plus its own status/cancel operations for 30 minutes. Human approval binds it to the User and promotes the same secret to durable identity, search, balance, fetch, purchase-history, status, and revocation capabilities. It remains valid until revoked. Seller, organization, API-key administration, dashboard-session, transfer, withdrawal, and MCP surfaces always refuse it. Bootstrap lifecycle successes follow the API-standard `{ \"data\": ... }` envelope. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
|
|
5
5
|
|
|
6
|
-
The version of the OpenAPI document: 0.
|
|
6
|
+
The version of the OpenAPI document: 0.32.5
|
|
7
7
|
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.19.0
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Weft API
|
|
3
3
|
|
|
4
|
-
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents
|
|
4
|
+
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents` and `/api/v1/analytics` — are reachable with an `ax_live_*` key but are intentionally left undocumented: they are dashboard-facing and not part of the published client contract. `/api/v1/webhook_endpoints` stays routed and returns HTTP 410 with error code `gone` for index, show, create, update, and destroy. Nothing outside this document is a supported contract, and the response-validation gate in `config/environments/test.rb` enforces only what is declared here. Before claim, a `wbt_*` bearer is temporary and permits only search plus its own status/cancel operations for 30 minutes. Human approval binds it to the User and promotes the same secret to durable identity, search, balance, fetch, purchase-history, status, and revocation capabilities. It remains valid until revoked. Seller, organization, API-key administration, dashboard-session, transfer, withdrawal, and MCP surfaces always refuse it. Bootstrap lifecycle successes follow the API-standard `{ \"data\": ... }` envelope. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
|
|
5
5
|
|
|
6
|
-
The version of the OpenAPI document: 0.
|
|
6
|
+
The version of the OpenAPI document: 0.32.5
|
|
7
7
|
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.19.0
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Weft API
|
|
3
3
|
|
|
4
|
-
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents
|
|
4
|
+
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents` and `/api/v1/analytics` — are reachable with an `ax_live_*` key but are intentionally left undocumented: they are dashboard-facing and not part of the published client contract. `/api/v1/webhook_endpoints` stays routed and returns HTTP 410 with error code `gone` for index, show, create, update, and destroy. Nothing outside this document is a supported contract, and the response-validation gate in `config/environments/test.rb` enforces only what is declared here. Before claim, a `wbt_*` bearer is temporary and permits only search plus its own status/cancel operations for 30 minutes. Human approval binds it to the User and promotes the same secret to durable identity, search, balance, fetch, purchase-history, status, and revocation capabilities. It remains valid until revoked. Seller, organization, API-key administration, dashboard-session, transfer, withdrawal, and MCP surfaces always refuse it. Bootstrap lifecycle successes follow the API-standard `{ \"data\": ... }` envelope. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
|
|
5
5
|
|
|
6
|
-
The version of the OpenAPI document: 0.
|
|
6
|
+
The version of the OpenAPI document: 0.32.5
|
|
7
7
|
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.19.0
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Weft API
|
|
3
3
|
|
|
4
|
-
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents
|
|
4
|
+
#The Weft API powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and third-party applications that discover and pay for resources on Weft. The buyer runtime covers six concerns: 1. Account creation and recovery (`/api/v1/auth/*`) 2. Credential identity (`/api/v1/me`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Buyer runtime calls require a dashboard-created `wk_*` account key, an OAuth access token with the relevant scope, or a claimed `wbt_*` bearer on its fixed allowlist. The organization-scoped API key and payment operations in this document are seller administration surfaces and require an `ax_live_*` resource key. These credential types are not interchangeable. This document is a deliberate subset of the `/api/v1` surface, not an inventory of it. The seller-side management endpoints — `/api/v1/agents` and `/api/v1/analytics` — are reachable with an `ax_live_*` key but are intentionally left undocumented: they are dashboard-facing and not part of the published client contract. `/api/v1/webhook_endpoints` stays routed and returns HTTP 410 with error code `gone` for index, show, create, update, and destroy. Nothing outside this document is a supported contract, and the response-validation gate in `config/environments/test.rb` enforces only what is declared here. Before claim, a `wbt_*` bearer is temporary and permits only search plus its own status/cancel operations for 30 minutes. Human approval binds it to the User and promotes the same secret to durable identity, search, balance, fetch, purchase-history, status, and revocation capabilities. It remains valid until revoked. Seller, organization, API-key administration, dashboard-session, transfer, withdrawal, and MCP surfaces always refuse it. Bootstrap lifecycle successes follow the API-standard `{ \"data\": ... }` envelope. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
|
|
5
5
|
|
|
6
|
-
The version of the OpenAPI document: 0.
|
|
6
|
+
The version of the OpenAPI document: 0.32.5
|
|
7
7
|
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.19.0
|