@1claw/openapi-spec 0.59.0 → 0.59.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.
- package/README.md +11 -1
- package/openapi.json +1106 -12
- package/openapi.yaml +801 -77
- package/package.json +1 -1
package/openapi.yaml
CHANGED
|
@@ -4018,6 +4018,40 @@ paths:
|
|
|
4018
4018
|
"404":
|
|
4019
4019
|
description: Agent-keys vault not found
|
|
4020
4020
|
|
|
4021
|
+
/v1/org/onboarding/status:
|
|
4022
|
+
get:
|
|
4023
|
+
tags: [Organization]
|
|
4024
|
+
summary: Onboarding funnel status
|
|
4025
|
+
description: Returns welcome-bundle and MCP connection progress for the connect wizard.
|
|
4026
|
+
operationId: getOnboardingStatus
|
|
4027
|
+
responses:
|
|
4028
|
+
"200":
|
|
4029
|
+
description: Onboarding status
|
|
4030
|
+
content:
|
|
4031
|
+
application/json:
|
|
4032
|
+
schema:
|
|
4033
|
+
$ref: "#/components/schemas/OnboardingStatus"
|
|
4034
|
+
|
|
4035
|
+
/v1/onboarding/provision:
|
|
4036
|
+
post:
|
|
4037
|
+
tags: [Organization]
|
|
4038
|
+
summary: Provision MCP onboarding bundle
|
|
4039
|
+
description: Creates welcome vault + sample secret, MCP agent, and default ** policy. Returns one-time API key and stdio MCP config.
|
|
4040
|
+
operationId: provisionOnboarding
|
|
4041
|
+
requestBody:
|
|
4042
|
+
required: false
|
|
4043
|
+
content:
|
|
4044
|
+
application/json:
|
|
4045
|
+
schema:
|
|
4046
|
+
$ref: "#/components/schemas/OnboardingProvisionRequest"
|
|
4047
|
+
responses:
|
|
4048
|
+
"200":
|
|
4049
|
+
description: Provisioned resources
|
|
4050
|
+
content:
|
|
4051
|
+
application/json:
|
|
4052
|
+
schema:
|
|
4053
|
+
$ref: "#/components/schemas/OnboardingProvisionResponse"
|
|
4054
|
+
|
|
4021
4055
|
/v1/org/status:
|
|
4022
4056
|
get:
|
|
4023
4057
|
tags: [Organization]
|
|
@@ -6020,6 +6054,34 @@ paths:
|
|
|
6020
6054
|
schema:
|
|
6021
6055
|
$ref: "#/components/schemas/ShroudAttestationResponse"
|
|
6022
6056
|
|
|
6057
|
+
/v1/shroud/inspect-content:
|
|
6058
|
+
post:
|
|
6059
|
+
tags: [Shroud]
|
|
6060
|
+
summary: Inspect text for security threats
|
|
6061
|
+
description: |
|
|
6062
|
+
Standalone content inspection (MCP `inspect_content` parity). Scans for command
|
|
6063
|
+
injection, encoding tricks, social engineering, PII, and suspicious URLs.
|
|
6064
|
+
Fail-closed — returns `safe: false` when high/critical threats match.
|
|
6065
|
+
Accepts plt_ platform keys, agent JWTs, and user JWTs.
|
|
6066
|
+
operationId: inspectContent
|
|
6067
|
+
security:
|
|
6068
|
+
- BearerAuth: []
|
|
6069
|
+
requestBody:
|
|
6070
|
+
required: true
|
|
6071
|
+
content:
|
|
6072
|
+
application/json:
|
|
6073
|
+
schema:
|
|
6074
|
+
$ref: "#/components/schemas/InspectContentRequest"
|
|
6075
|
+
responses:
|
|
6076
|
+
"200":
|
|
6077
|
+
description: Inspection report
|
|
6078
|
+
content:
|
|
6079
|
+
application/json:
|
|
6080
|
+
schema:
|
|
6081
|
+
$ref: "#/components/schemas/InspectContentResponse"
|
|
6082
|
+
"400":
|
|
6083
|
+
$ref: "#/components/responses/BadRequest"
|
|
6084
|
+
|
|
6023
6085
|
/v1/shroud/activity:
|
|
6024
6086
|
get:
|
|
6025
6087
|
tags: [Shroud]
|
|
@@ -6341,6 +6403,34 @@ paths:
|
|
|
6341
6403
|
"404":
|
|
6342
6404
|
$ref: "#/components/responses/NotFound"
|
|
6343
6405
|
|
|
6406
|
+
/v1/platform/apps/{appId}/webhooks:
|
|
6407
|
+
get:
|
|
6408
|
+
tags: [Platform]
|
|
6409
|
+
summary: Platform webhook delivery catalog
|
|
6410
|
+
description: |
|
|
6411
|
+
Returns whether `webhook_url` is configured and the event types delivered to
|
|
6412
|
+
the platform app webhook (payload includes `connection_id` when applicable).
|
|
6413
|
+
Org-scoped webhook subscriptions (`GET /v1/webhooks`) are separate.
|
|
6414
|
+
operationId: getPlatformWebhooks
|
|
6415
|
+
security:
|
|
6416
|
+
- BearerAuth: []
|
|
6417
|
+
parameters:
|
|
6418
|
+
- name: appId
|
|
6419
|
+
in: path
|
|
6420
|
+
required: true
|
|
6421
|
+
schema:
|
|
6422
|
+
type: string
|
|
6423
|
+
format: uuid
|
|
6424
|
+
responses:
|
|
6425
|
+
"200":
|
|
6426
|
+
description: Webhook configuration summary
|
|
6427
|
+
content:
|
|
6428
|
+
application/json:
|
|
6429
|
+
schema:
|
|
6430
|
+
$ref: "#/components/schemas/PlatformWebhookInfoResponse"
|
|
6431
|
+
"404":
|
|
6432
|
+
$ref: "#/components/responses/NotFound"
|
|
6433
|
+
|
|
6344
6434
|
/v1/platform/apps/{appId}/rotate-webhook-secret:
|
|
6345
6435
|
post:
|
|
6346
6436
|
tags: [Platform]
|
|
@@ -7441,20 +7531,455 @@ paths:
|
|
|
7441
7531
|
type: integer
|
|
7442
7532
|
default: 0
|
|
7443
7533
|
responses:
|
|
7444
|
-
"200":
|
|
7445
|
-
description: Pending approvals list
|
|
7534
|
+
"200":
|
|
7535
|
+
description: Pending approvals list
|
|
7536
|
+
content:
|
|
7537
|
+
application/json:
|
|
7538
|
+
schema:
|
|
7539
|
+
$ref: "#/components/schemas/PendingApprovalListResponse"
|
|
7540
|
+
"404":
|
|
7541
|
+
$ref: "#/components/responses/NotFound"
|
|
7542
|
+
post:
|
|
7543
|
+
tags: [Platform]
|
|
7544
|
+
summary: Create a pending consensus approval for a connection agent
|
|
7545
|
+
description: |
|
|
7546
|
+
Platform apps submit over-cap or consensus-gated actions on behalf of a
|
|
7547
|
+
connected user's agent. When `policy_id` is omitted, the server resolves the
|
|
7548
|
+
matching agent `consensus_trigger` policy from `action_payload` (chain, to, value).
|
|
7549
|
+
Returns **202** with `pending_approval_id` and `payload_hash` for decide/execute.
|
|
7550
|
+
Requires plt_ auth; agent must be provisioned on the connection.
|
|
7551
|
+
operationId: createConnectionPendingApproval
|
|
7552
|
+
security:
|
|
7553
|
+
- BearerAuth: []
|
|
7554
|
+
parameters:
|
|
7555
|
+
- in: path
|
|
7556
|
+
name: connectionId
|
|
7557
|
+
required: true
|
|
7558
|
+
schema:
|
|
7559
|
+
type: string
|
|
7560
|
+
format: uuid
|
|
7561
|
+
requestBody:
|
|
7562
|
+
required: true
|
|
7563
|
+
content:
|
|
7564
|
+
application/json:
|
|
7565
|
+
schema:
|
|
7566
|
+
$ref: "#/components/schemas/ConnectionSubmitPendingApprovalRequest"
|
|
7567
|
+
responses:
|
|
7568
|
+
"202":
|
|
7569
|
+
description: Pending approval created
|
|
7570
|
+
content:
|
|
7571
|
+
application/json:
|
|
7572
|
+
schema:
|
|
7573
|
+
$ref: "#/components/schemas/SubmitPendingApprovalResponse"
|
|
7574
|
+
"400":
|
|
7575
|
+
$ref: "#/components/responses/BadRequest"
|
|
7576
|
+
"404":
|
|
7577
|
+
$ref: "#/components/responses/NotFound"
|
|
7578
|
+
|
|
7579
|
+
/v1/platform/connections/{connectionId}/pending-approvals/{approvalId}:
|
|
7580
|
+
get:
|
|
7581
|
+
tags: [Platform]
|
|
7582
|
+
summary: Get a connection-scoped pending approval (with payload_hash)
|
|
7583
|
+
operationId: getConnectionPendingApproval
|
|
7584
|
+
security:
|
|
7585
|
+
- BearerAuth: []
|
|
7586
|
+
parameters:
|
|
7587
|
+
- in: path
|
|
7588
|
+
name: connectionId
|
|
7589
|
+
required: true
|
|
7590
|
+
schema:
|
|
7591
|
+
type: string
|
|
7592
|
+
format: uuid
|
|
7593
|
+
- in: path
|
|
7594
|
+
name: approvalId
|
|
7595
|
+
required: true
|
|
7596
|
+
schema:
|
|
7597
|
+
type: string
|
|
7598
|
+
format: uuid
|
|
7599
|
+
responses:
|
|
7600
|
+
"200":
|
|
7601
|
+
description: Pending approval detail including action_payload and payload_hash
|
|
7602
|
+
content:
|
|
7603
|
+
application/json:
|
|
7604
|
+
schema:
|
|
7605
|
+
$ref: "#/components/schemas/PendingApprovalResponse"
|
|
7606
|
+
"404":
|
|
7607
|
+
$ref: "#/components/responses/NotFound"
|
|
7608
|
+
|
|
7609
|
+
/v1/platform/connections/{connectionId}/pending-approvals/{approvalId}/decide:
|
|
7610
|
+
post:
|
|
7611
|
+
tags: [Platform]
|
|
7612
|
+
summary: Decide a pending approval for a connection user
|
|
7613
|
+
description: |
|
|
7614
|
+
Platform apps vote on behalf of the connected user after verifying intent
|
|
7615
|
+
out-of-band (e.g. wallet mandate). Requires `payload_hash` matching the
|
|
7616
|
+
pending row. Accepts `decision`: `approve` or `reject` (aliases `approved` /
|
|
7617
|
+
`rejected`). plt_ auth only; scoped to agents on the connection.
|
|
7618
|
+
operationId: decideConnectionPendingApproval
|
|
7619
|
+
security:
|
|
7620
|
+
- BearerAuth: []
|
|
7621
|
+
parameters:
|
|
7622
|
+
- in: path
|
|
7623
|
+
name: connectionId
|
|
7624
|
+
required: true
|
|
7625
|
+
schema:
|
|
7626
|
+
type: string
|
|
7627
|
+
format: uuid
|
|
7628
|
+
- in: path
|
|
7629
|
+
name: approvalId
|
|
7630
|
+
required: true
|
|
7631
|
+
schema:
|
|
7632
|
+
type: string
|
|
7633
|
+
format: uuid
|
|
7634
|
+
requestBody:
|
|
7635
|
+
required: true
|
|
7636
|
+
content:
|
|
7637
|
+
application/json:
|
|
7638
|
+
schema:
|
|
7639
|
+
$ref: "#/components/schemas/ApprovePendingApprovalRequest"
|
|
7640
|
+
responses:
|
|
7641
|
+
"200":
|
|
7642
|
+
description: Updated pending approval
|
|
7643
|
+
content:
|
|
7644
|
+
application/json:
|
|
7645
|
+
schema:
|
|
7646
|
+
$ref: "#/components/schemas/PendingApprovalResponse"
|
|
7647
|
+
"400":
|
|
7648
|
+
$ref: "#/components/responses/BadRequest"
|
|
7649
|
+
"403":
|
|
7650
|
+
$ref: "#/components/responses/Forbidden"
|
|
7651
|
+
"404":
|
|
7652
|
+
$ref: "#/components/responses/NotFound"
|
|
7653
|
+
"409":
|
|
7654
|
+
description: Already voted
|
|
7655
|
+
|
|
7656
|
+
/v1/platform/connections/{connectionId}/approvals/{approvalId}/decide:
|
|
7657
|
+
post:
|
|
7658
|
+
tags: [Platform]
|
|
7659
|
+
summary: Decide a mobile/agent approval for a connection user
|
|
7660
|
+
description: |
|
|
7661
|
+
Platform apps decide agent approval requests on behalf of the connected user.
|
|
7662
|
+
Accepts `decision`: `approved` or `rejected` (aliases `approve` / `reject`).
|
|
7663
|
+
plt_ auth only.
|
|
7664
|
+
operationId: decideConnectionApproval
|
|
7665
|
+
security:
|
|
7666
|
+
- BearerAuth: []
|
|
7667
|
+
parameters:
|
|
7668
|
+
- in: path
|
|
7669
|
+
name: connectionId
|
|
7670
|
+
required: true
|
|
7671
|
+
schema:
|
|
7672
|
+
type: string
|
|
7673
|
+
format: uuid
|
|
7674
|
+
- in: path
|
|
7675
|
+
name: approvalId
|
|
7676
|
+
required: true
|
|
7677
|
+
schema:
|
|
7678
|
+
type: string
|
|
7679
|
+
format: uuid
|
|
7680
|
+
requestBody:
|
|
7681
|
+
required: true
|
|
7682
|
+
content:
|
|
7683
|
+
application/json:
|
|
7684
|
+
schema:
|
|
7685
|
+
type: object
|
|
7686
|
+
required: [decision]
|
|
7687
|
+
properties:
|
|
7688
|
+
decision:
|
|
7689
|
+
type: string
|
|
7690
|
+
enum: [approved, rejected, approve, reject]
|
|
7691
|
+
reason:
|
|
7692
|
+
type: string
|
|
7693
|
+
responses:
|
|
7694
|
+
"200":
|
|
7695
|
+
description: Decided approval
|
|
7696
|
+
content:
|
|
7697
|
+
application/json:
|
|
7698
|
+
schema:
|
|
7699
|
+
$ref: "#/components/schemas/ApprovalResponse"
|
|
7700
|
+
"403":
|
|
7701
|
+
$ref: "#/components/responses/Forbidden"
|
|
7702
|
+
"404":
|
|
7703
|
+
$ref: "#/components/responses/NotFound"
|
|
7704
|
+
"409":
|
|
7705
|
+
description: Already decided
|
|
7706
|
+
|
|
7707
|
+
/v1/platform/connections/{connectionId}/signing-keys:
|
|
7708
|
+
get:
|
|
7709
|
+
tags: [Platform]
|
|
7710
|
+
summary: List signing keys for a connection agent
|
|
7711
|
+
description: |
|
|
7712
|
+
Returns public signing-key metadata (chain, address, public_key, curve) for
|
|
7713
|
+
agent(s) provisioned on the connection. Never includes private keys.
|
|
7714
|
+
When multiple agents exist, pass `agent_id` query param. plt_ auth only.
|
|
7715
|
+
operationId: listConnectionSigningKeys
|
|
7716
|
+
security:
|
|
7717
|
+
- BearerAuth: []
|
|
7718
|
+
parameters:
|
|
7719
|
+
- in: path
|
|
7720
|
+
name: connectionId
|
|
7721
|
+
required: true
|
|
7722
|
+
schema:
|
|
7723
|
+
type: string
|
|
7724
|
+
format: uuid
|
|
7725
|
+
- in: query
|
|
7726
|
+
name: agent_id
|
|
7727
|
+
required: false
|
|
7728
|
+
schema:
|
|
7729
|
+
type: string
|
|
7730
|
+
format: uuid
|
|
7731
|
+
responses:
|
|
7732
|
+
"200":
|
|
7733
|
+
description: Signing keys for the connection agent
|
|
7734
|
+
content:
|
|
7735
|
+
application/json:
|
|
7736
|
+
schema:
|
|
7737
|
+
$ref: "#/components/schemas/ConnectionSigningKeyListResponse"
|
|
7738
|
+
"400":
|
|
7739
|
+
description: Multiple agents — agent_id required
|
|
7740
|
+
"404":
|
|
7741
|
+
$ref: "#/components/responses/NotFound"
|
|
7742
|
+
|
|
7743
|
+
/v1/platform/connections/{connectionId}/signing-keys/{chain}:
|
|
7744
|
+
get:
|
|
7745
|
+
tags: [Platform]
|
|
7746
|
+
summary: Get a signing key for a connection agent by chain
|
|
7747
|
+
description: |
|
|
7748
|
+
Returns public signing-key metadata for one chain on a connection agent.
|
|
7749
|
+
Network names (e.g. `base`, `sepolia`) resolve to canonical signing keys
|
|
7750
|
+
(e.g. `ethereum`). Never includes private keys. plt_ auth only.
|
|
7751
|
+
operationId: getConnectionSigningKey
|
|
7752
|
+
security:
|
|
7753
|
+
- BearerAuth: []
|
|
7754
|
+
parameters:
|
|
7755
|
+
- in: path
|
|
7756
|
+
name: connectionId
|
|
7757
|
+
required: true
|
|
7758
|
+
schema:
|
|
7759
|
+
type: string
|
|
7760
|
+
format: uuid
|
|
7761
|
+
- in: path
|
|
7762
|
+
name: chain
|
|
7763
|
+
required: true
|
|
7764
|
+
schema:
|
|
7765
|
+
type: string
|
|
7766
|
+
- in: query
|
|
7767
|
+
name: agent_id
|
|
7768
|
+
required: false
|
|
7769
|
+
schema:
|
|
7770
|
+
type: string
|
|
7771
|
+
format: uuid
|
|
7772
|
+
responses:
|
|
7773
|
+
"200":
|
|
7774
|
+
description: Signing key metadata
|
|
7775
|
+
content:
|
|
7776
|
+
application/json:
|
|
7777
|
+
schema:
|
|
7778
|
+
$ref: "#/components/schemas/ConnectionSigningKeyDetailResponse"
|
|
7779
|
+
"400":
|
|
7780
|
+
description: Multiple agents — agent_id required
|
|
7781
|
+
"404":
|
|
7782
|
+
$ref: "#/components/responses/NotFound"
|
|
7783
|
+
delete:
|
|
7784
|
+
tags: [Platform]
|
|
7785
|
+
summary: Deactivate a signing key for a connection agent
|
|
7786
|
+
description: |
|
|
7787
|
+
Deactivates the signing key for an agent provisioned on the connection.
|
|
7788
|
+
When multiple agents exist, pass `agent_id` query param. plt_ auth only.
|
|
7789
|
+
operationId: deactivateConnectionSigningKey
|
|
7790
|
+
security:
|
|
7791
|
+
- BearerAuth: []
|
|
7792
|
+
parameters:
|
|
7793
|
+
- in: path
|
|
7794
|
+
name: connectionId
|
|
7795
|
+
required: true
|
|
7796
|
+
schema:
|
|
7797
|
+
type: string
|
|
7798
|
+
format: uuid
|
|
7799
|
+
- in: path
|
|
7800
|
+
name: chain
|
|
7801
|
+
required: true
|
|
7802
|
+
schema:
|
|
7803
|
+
type: string
|
|
7804
|
+
- in: query
|
|
7805
|
+
name: agent_id
|
|
7806
|
+
required: false
|
|
7807
|
+
schema:
|
|
7808
|
+
type: string
|
|
7809
|
+
format: uuid
|
|
7810
|
+
responses:
|
|
7811
|
+
"204":
|
|
7812
|
+
description: Key deactivated
|
|
7813
|
+
"400":
|
|
7814
|
+
description: Multiple agents — agent_id required
|
|
7815
|
+
"404":
|
|
7816
|
+
$ref: "#/components/responses/NotFound"
|
|
7817
|
+
|
|
7818
|
+
/v1/platform/connections/{connectionId}/agents/{agentId}:
|
|
7819
|
+
patch:
|
|
7820
|
+
tags: [Platform]
|
|
7821
|
+
summary: Update limited agent settings for a connection
|
|
7822
|
+
description: |
|
|
7823
|
+
Platform-scoped agent update for connected end-users. Allows enabling Intents API,
|
|
7824
|
+
Execution Intents, and updating the default system prompt without human dashboard access.
|
|
7825
|
+
Agent must be provisioned on the connection. plt_ auth only.
|
|
7826
|
+
operationId: patchConnectionAgent
|
|
7827
|
+
security:
|
|
7828
|
+
- BearerAuth: []
|
|
7829
|
+
parameters:
|
|
7830
|
+
- in: path
|
|
7831
|
+
name: connectionId
|
|
7832
|
+
required: true
|
|
7833
|
+
schema:
|
|
7834
|
+
type: string
|
|
7835
|
+
format: uuid
|
|
7836
|
+
- in: path
|
|
7837
|
+
name: agentId
|
|
7838
|
+
required: true
|
|
7839
|
+
schema:
|
|
7840
|
+
type: string
|
|
7841
|
+
format: uuid
|
|
7842
|
+
requestBody:
|
|
7843
|
+
required: true
|
|
7844
|
+
content:
|
|
7845
|
+
application/json:
|
|
7846
|
+
schema:
|
|
7847
|
+
$ref: "#/components/schemas/PatchConnectionAgentRequest"
|
|
7848
|
+
responses:
|
|
7849
|
+
"200":
|
|
7850
|
+
description: Updated agent settings
|
|
7851
|
+
content:
|
|
7852
|
+
application/json:
|
|
7853
|
+
schema:
|
|
7854
|
+
$ref: "#/components/schemas/PatchConnectionAgentResponse"
|
|
7855
|
+
"400":
|
|
7856
|
+
$ref: "#/components/responses/BadRequest"
|
|
7857
|
+
"403":
|
|
7858
|
+
$ref: "#/components/responses/Forbidden"
|
|
7859
|
+
"404":
|
|
7860
|
+
$ref: "#/components/responses/NotFound"
|
|
7861
|
+
|
|
7862
|
+
/v1/platform/connections/{connectionId}/portfolio:
|
|
7863
|
+
get:
|
|
7864
|
+
tags: [Platform]
|
|
7865
|
+
summary: Portfolio for connection agents
|
|
7866
|
+
description: |
|
|
7867
|
+
Aggregates signing-key and smart-account balances for agents provisioned on
|
|
7868
|
+
the connection. plt_ auth only.
|
|
7869
|
+
operationId: getConnectionPortfolio
|
|
7870
|
+
security:
|
|
7871
|
+
- BearerAuth: []
|
|
7872
|
+
parameters:
|
|
7873
|
+
- in: path
|
|
7874
|
+
name: connectionId
|
|
7875
|
+
required: true
|
|
7876
|
+
schema:
|
|
7877
|
+
type: string
|
|
7878
|
+
format: uuid
|
|
7879
|
+
- in: query
|
|
7880
|
+
name: chains
|
|
7881
|
+
required: false
|
|
7882
|
+
schema:
|
|
7883
|
+
type: string
|
|
7884
|
+
description: Comma-separated chain filter (e.g. `ethereum,base`)
|
|
7885
|
+
- in: query
|
|
7886
|
+
name: include_tokens
|
|
7887
|
+
required: false
|
|
7888
|
+
schema:
|
|
7889
|
+
type: boolean
|
|
7890
|
+
responses:
|
|
7891
|
+
"200":
|
|
7892
|
+
description: Connection-scoped portfolio
|
|
7893
|
+
content:
|
|
7894
|
+
application/json:
|
|
7895
|
+
schema:
|
|
7896
|
+
$ref: "#/components/schemas/PortfolioResponse"
|
|
7897
|
+
"404":
|
|
7898
|
+
$ref: "#/components/responses/NotFound"
|
|
7899
|
+
|
|
7900
|
+
/v1/platform/connections/{connectionId}/balances:
|
|
7901
|
+
get:
|
|
7902
|
+
tags: [Platform]
|
|
7903
|
+
summary: Balances alias for connection portfolio
|
|
7904
|
+
description: Alias of `GET .../portfolio`. plt_ auth only.
|
|
7905
|
+
operationId: getConnectionBalances
|
|
7906
|
+
security:
|
|
7907
|
+
- BearerAuth: []
|
|
7908
|
+
parameters:
|
|
7909
|
+
- in: path
|
|
7910
|
+
name: connectionId
|
|
7911
|
+
required: true
|
|
7912
|
+
schema:
|
|
7913
|
+
type: string
|
|
7914
|
+
format: uuid
|
|
7915
|
+
- in: query
|
|
7916
|
+
name: chains
|
|
7917
|
+
required: false
|
|
7918
|
+
schema:
|
|
7919
|
+
type: string
|
|
7920
|
+
responses:
|
|
7921
|
+
"200":
|
|
7922
|
+
description: Connection-scoped portfolio
|
|
7923
|
+
content:
|
|
7924
|
+
application/json:
|
|
7925
|
+
schema:
|
|
7926
|
+
$ref: "#/components/schemas/PortfolioResponse"
|
|
7927
|
+
|
|
7928
|
+
/v1/platform/connections/{connectionId}/automations:
|
|
7929
|
+
get:
|
|
7930
|
+
tags: [Platform]
|
|
7931
|
+
summary: List automations for connection agents
|
|
7932
|
+
operationId: listConnectionAutomations
|
|
7933
|
+
security:
|
|
7934
|
+
- BearerAuth: []
|
|
7935
|
+
parameters:
|
|
7936
|
+
- in: path
|
|
7937
|
+
name: connectionId
|
|
7938
|
+
required: true
|
|
7939
|
+
schema:
|
|
7940
|
+
type: string
|
|
7941
|
+
format: uuid
|
|
7942
|
+
responses:
|
|
7943
|
+
"200":
|
|
7944
|
+
description: Automations scoped to connection agents
|
|
7945
|
+
content:
|
|
7946
|
+
application/json:
|
|
7947
|
+
schema:
|
|
7948
|
+
$ref: "#/components/schemas/AutomationListResponse"
|
|
7949
|
+
post:
|
|
7950
|
+
tags: [Platform]
|
|
7951
|
+
summary: Create automation for a connection agent
|
|
7952
|
+
operationId: createConnectionAutomation
|
|
7953
|
+
security:
|
|
7954
|
+
- BearerAuth: []
|
|
7955
|
+
parameters:
|
|
7956
|
+
- in: path
|
|
7957
|
+
name: connectionId
|
|
7958
|
+
required: true
|
|
7959
|
+
schema:
|
|
7960
|
+
type: string
|
|
7961
|
+
format: uuid
|
|
7962
|
+
requestBody:
|
|
7963
|
+
required: true
|
|
7964
|
+
content:
|
|
7965
|
+
application/json:
|
|
7966
|
+
schema:
|
|
7967
|
+
$ref: "#/components/schemas/CreateAutomationRequest"
|
|
7968
|
+
responses:
|
|
7969
|
+
"201":
|
|
7970
|
+
description: Automation created
|
|
7446
7971
|
content:
|
|
7447
7972
|
application/json:
|
|
7448
7973
|
schema:
|
|
7449
|
-
$ref: "#/components/schemas/
|
|
7450
|
-
"
|
|
7451
|
-
$ref: "#/components/responses/
|
|
7974
|
+
$ref: "#/components/schemas/AutomationCreatedResponse"
|
|
7975
|
+
"403":
|
|
7976
|
+
$ref: "#/components/responses/Forbidden"
|
|
7452
7977
|
|
|
7453
|
-
/v1/platform/connections/{connectionId}/
|
|
7454
|
-
|
|
7978
|
+
/v1/platform/connections/{connectionId}/automations/{automationId}/runs/{runId}/cancel:
|
|
7979
|
+
post:
|
|
7455
7980
|
tags: [Platform]
|
|
7456
|
-
summary:
|
|
7457
|
-
operationId:
|
|
7981
|
+
summary: Cancel an automation run (connection-scoped)
|
|
7982
|
+
operationId: cancelConnectionAutomationRun
|
|
7458
7983
|
security:
|
|
7459
7984
|
- BearerAuth: []
|
|
7460
7985
|
parameters:
|
|
@@ -7465,31 +7990,32 @@ paths:
|
|
|
7465
7990
|
type: string
|
|
7466
7991
|
format: uuid
|
|
7467
7992
|
- in: path
|
|
7468
|
-
name:
|
|
7993
|
+
name: automationId
|
|
7994
|
+
required: true
|
|
7995
|
+
schema:
|
|
7996
|
+
type: string
|
|
7997
|
+
format: uuid
|
|
7998
|
+
- in: path
|
|
7999
|
+
name: runId
|
|
7469
8000
|
required: true
|
|
7470
8001
|
schema:
|
|
7471
8002
|
type: string
|
|
7472
8003
|
format: uuid
|
|
7473
8004
|
responses:
|
|
7474
8005
|
"200":
|
|
7475
|
-
description:
|
|
8006
|
+
description: Run cancelled
|
|
7476
8007
|
content:
|
|
7477
8008
|
application/json:
|
|
7478
8009
|
schema:
|
|
7479
|
-
$ref: "#/components/schemas/
|
|
8010
|
+
$ref: "#/components/schemas/AutomationRunResponse"
|
|
7480
8011
|
"404":
|
|
7481
8012
|
$ref: "#/components/responses/NotFound"
|
|
7482
8013
|
|
|
7483
|
-
/v1/platform/connections/{connectionId}/
|
|
7484
|
-
|
|
8014
|
+
/v1/platform/connections/{connectionId}/memory/{namespace}/{key}:
|
|
8015
|
+
get:
|
|
7485
8016
|
tags: [Platform]
|
|
7486
|
-
summary:
|
|
7487
|
-
|
|
7488
|
-
Platform apps vote on behalf of the connected user after verifying intent
|
|
7489
|
-
out-of-band (e.g. wallet mandate). Requires `payload_hash` matching the
|
|
7490
|
-
pending row. Accepts `decision`: `approve` or `reject` (aliases `approved` /
|
|
7491
|
-
`rejected`). plt_ auth only; scoped to agents on the connection.
|
|
7492
|
-
operationId: decideConnectionPendingApproval
|
|
8017
|
+
summary: Get agent memory entry (connection-scoped)
|
|
8018
|
+
operationId: getConnectionMemory
|
|
7493
8019
|
security:
|
|
7494
8020
|
- BearerAuth: []
|
|
7495
8021
|
parameters:
|
|
@@ -7500,42 +8026,36 @@ paths:
|
|
|
7500
8026
|
type: string
|
|
7501
8027
|
format: uuid
|
|
7502
8028
|
- in: path
|
|
7503
|
-
name:
|
|
8029
|
+
name: namespace
|
|
8030
|
+
required: true
|
|
8031
|
+
schema:
|
|
8032
|
+
type: string
|
|
8033
|
+
- in: path
|
|
8034
|
+
name: key
|
|
7504
8035
|
required: true
|
|
8036
|
+
schema:
|
|
8037
|
+
type: string
|
|
8038
|
+
- in: query
|
|
8039
|
+
name: agent_id
|
|
8040
|
+
required: false
|
|
7505
8041
|
schema:
|
|
7506
8042
|
type: string
|
|
7507
8043
|
format: uuid
|
|
7508
|
-
requestBody:
|
|
7509
|
-
required: true
|
|
7510
|
-
content:
|
|
7511
|
-
application/json:
|
|
7512
|
-
schema:
|
|
7513
|
-
$ref: "#/components/schemas/ApprovePendingApprovalRequest"
|
|
7514
8044
|
responses:
|
|
7515
8045
|
"200":
|
|
7516
|
-
description:
|
|
8046
|
+
description: Memory entry
|
|
7517
8047
|
content:
|
|
7518
8048
|
application/json:
|
|
7519
8049
|
schema:
|
|
7520
|
-
$ref: "#/components/schemas/
|
|
7521
|
-
"400":
|
|
7522
|
-
$ref: "#/components/responses/BadRequest"
|
|
8050
|
+
$ref: "#/components/schemas/MemoryEntry"
|
|
7523
8051
|
"403":
|
|
7524
8052
|
$ref: "#/components/responses/Forbidden"
|
|
7525
8053
|
"404":
|
|
7526
8054
|
$ref: "#/components/responses/NotFound"
|
|
7527
|
-
|
|
7528
|
-
description: Already voted
|
|
7529
|
-
|
|
7530
|
-
/v1/platform/connections/{connectionId}/approvals/{approvalId}/decide:
|
|
7531
|
-
post:
|
|
8055
|
+
put:
|
|
7532
8056
|
tags: [Platform]
|
|
7533
|
-
summary:
|
|
7534
|
-
|
|
7535
|
-
Platform apps decide agent approval requests on behalf of the connected user.
|
|
7536
|
-
Accepts `decision`: `approved` or `rejected` (aliases `approve` / `reject`).
|
|
7537
|
-
plt_ auth only.
|
|
7538
|
-
operationId: decideConnectionApproval
|
|
8057
|
+
summary: Upsert agent memory entry (connection-scoped)
|
|
8058
|
+
operationId: putConnectionMemory
|
|
7539
8059
|
security:
|
|
7540
8060
|
- BearerAuth: []
|
|
7541
8061
|
parameters:
|
|
@@ -7546,8 +8066,18 @@ paths:
|
|
|
7546
8066
|
type: string
|
|
7547
8067
|
format: uuid
|
|
7548
8068
|
- in: path
|
|
7549
|
-
name:
|
|
8069
|
+
name: namespace
|
|
8070
|
+
required: true
|
|
8071
|
+
schema:
|
|
8072
|
+
type: string
|
|
8073
|
+
- in: path
|
|
8074
|
+
name: key
|
|
7550
8075
|
required: true
|
|
8076
|
+
schema:
|
|
8077
|
+
type: string
|
|
8078
|
+
- in: query
|
|
8079
|
+
name: agent_id
|
|
8080
|
+
required: false
|
|
7551
8081
|
schema:
|
|
7552
8082
|
type: string
|
|
7553
8083
|
format: uuid
|
|
@@ -7556,36 +8086,18 @@ paths:
|
|
|
7556
8086
|
content:
|
|
7557
8087
|
application/json:
|
|
7558
8088
|
schema:
|
|
7559
|
-
|
|
7560
|
-
required: [decision]
|
|
7561
|
-
properties:
|
|
7562
|
-
decision:
|
|
7563
|
-
type: string
|
|
7564
|
-
enum: [approved, rejected, approve, reject]
|
|
7565
|
-
reason:
|
|
7566
|
-
type: string
|
|
8089
|
+
$ref: "#/components/schemas/PutMemoryRequest"
|
|
7567
8090
|
responses:
|
|
7568
8091
|
"200":
|
|
7569
|
-
description:
|
|
8092
|
+
description: Memory entry stored
|
|
7570
8093
|
content:
|
|
7571
8094
|
application/json:
|
|
7572
8095
|
schema:
|
|
7573
|
-
$ref: "#/components/schemas/
|
|
7574
|
-
"403":
|
|
7575
|
-
$ref: "#/components/responses/Forbidden"
|
|
7576
|
-
"404":
|
|
7577
|
-
$ref: "#/components/responses/NotFound"
|
|
7578
|
-
"409":
|
|
7579
|
-
description: Already decided
|
|
7580
|
-
|
|
7581
|
-
/v1/platform/connections/{connectionId}/signing-keys/{chain}:
|
|
8096
|
+
$ref: "#/components/schemas/MemoryEntry"
|
|
7582
8097
|
delete:
|
|
7583
8098
|
tags: [Platform]
|
|
7584
|
-
summary:
|
|
7585
|
-
|
|
7586
|
-
Deactivates the signing key for an agent provisioned on the connection.
|
|
7587
|
-
When multiple agents exist, pass `agent_id` query param. plt_ auth only.
|
|
7588
|
-
operationId: deactivateConnectionSigningKey
|
|
8099
|
+
summary: Delete agent memory entry (connection-scoped)
|
|
8100
|
+
operationId: deleteConnectionMemory
|
|
7589
8101
|
security:
|
|
7590
8102
|
- BearerAuth: []
|
|
7591
8103
|
parameters:
|
|
@@ -7596,7 +8108,12 @@ paths:
|
|
|
7596
8108
|
type: string
|
|
7597
8109
|
format: uuid
|
|
7598
8110
|
- in: path
|
|
7599
|
-
name:
|
|
8111
|
+
name: namespace
|
|
8112
|
+
required: true
|
|
8113
|
+
schema:
|
|
8114
|
+
type: string
|
|
8115
|
+
- in: path
|
|
8116
|
+
name: key
|
|
7600
8117
|
required: true
|
|
7601
8118
|
schema:
|
|
7602
8119
|
type: string
|
|
@@ -7608,9 +8125,7 @@ paths:
|
|
|
7608
8125
|
format: uuid
|
|
7609
8126
|
responses:
|
|
7610
8127
|
"204":
|
|
7611
|
-
description:
|
|
7612
|
-
"400":
|
|
7613
|
-
description: Multiple agents — agent_id required
|
|
8128
|
+
description: Deleted
|
|
7614
8129
|
"404":
|
|
7615
8130
|
$ref: "#/components/responses/NotFound"
|
|
7616
8131
|
|
|
@@ -14813,6 +15328,69 @@ components:
|
|
|
14813
15328
|
items:
|
|
14814
15329
|
$ref: "#/components/schemas/SigningKeyResponse"
|
|
14815
15330
|
|
|
15331
|
+
ConnectionSigningKeyPublic:
|
|
15332
|
+
type: object
|
|
15333
|
+
properties:
|
|
15334
|
+
chain:
|
|
15335
|
+
type: string
|
|
15336
|
+
address:
|
|
15337
|
+
type: string
|
|
15338
|
+
public_key:
|
|
15339
|
+
type: string
|
|
15340
|
+
curve:
|
|
15341
|
+
type: string
|
|
15342
|
+
|
|
15343
|
+
ConnectionSigningKeyListResponse:
|
|
15344
|
+
type: object
|
|
15345
|
+
properties:
|
|
15346
|
+
agent_id:
|
|
15347
|
+
type: string
|
|
15348
|
+
format: uuid
|
|
15349
|
+
keys:
|
|
15350
|
+
type: array
|
|
15351
|
+
items:
|
|
15352
|
+
$ref: "#/components/schemas/ConnectionSigningKeyPublic"
|
|
15353
|
+
|
|
15354
|
+
ConnectionSigningKeyDetailResponse:
|
|
15355
|
+
type: object
|
|
15356
|
+
properties:
|
|
15357
|
+
agent_id:
|
|
15358
|
+
type: string
|
|
15359
|
+
format: uuid
|
|
15360
|
+
chain:
|
|
15361
|
+
type: string
|
|
15362
|
+
address:
|
|
15363
|
+
type: string
|
|
15364
|
+
public_key:
|
|
15365
|
+
type: string
|
|
15366
|
+
curve:
|
|
15367
|
+
type: string
|
|
15368
|
+
|
|
15369
|
+
PatchConnectionAgentRequest:
|
|
15370
|
+
type: object
|
|
15371
|
+
properties:
|
|
15372
|
+
intents_api_enabled:
|
|
15373
|
+
type: boolean
|
|
15374
|
+
execution_intents_enabled:
|
|
15375
|
+
type: boolean
|
|
15376
|
+
system_prompt:
|
|
15377
|
+
type: string
|
|
15378
|
+
nullable: true
|
|
15379
|
+
|
|
15380
|
+
PatchConnectionAgentResponse:
|
|
15381
|
+
type: object
|
|
15382
|
+
properties:
|
|
15383
|
+
agent_id:
|
|
15384
|
+
type: string
|
|
15385
|
+
format: uuid
|
|
15386
|
+
intents_api_enabled:
|
|
15387
|
+
type: boolean
|
|
15388
|
+
execution_intents_enabled:
|
|
15389
|
+
type: boolean
|
|
15390
|
+
system_prompt:
|
|
15391
|
+
type: string
|
|
15392
|
+
nullable: true
|
|
15393
|
+
|
|
14816
15394
|
# Bankr Dynamic Key Vending
|
|
14817
15395
|
LeaseBankrKeyRequest:
|
|
14818
15396
|
type: object
|
|
@@ -15512,6 +16090,58 @@ components:
|
|
|
15512
16090
|
email:
|
|
15513
16091
|
type: string
|
|
15514
16092
|
|
|
16093
|
+
OnboardingStatus:
|
|
16094
|
+
type: object
|
|
16095
|
+
required:
|
|
16096
|
+
- has_vault
|
|
16097
|
+
- has_agent
|
|
16098
|
+
- has_policy
|
|
16099
|
+
- has_sample_secret
|
|
16100
|
+
- first_secret_read
|
|
16101
|
+
- welcome_bundle_complete
|
|
16102
|
+
properties:
|
|
16103
|
+
has_vault:
|
|
16104
|
+
type: boolean
|
|
16105
|
+
has_agent:
|
|
16106
|
+
type: boolean
|
|
16107
|
+
has_policy:
|
|
16108
|
+
type: boolean
|
|
16109
|
+
has_sample_secret:
|
|
16110
|
+
type: boolean
|
|
16111
|
+
first_secret_read:
|
|
16112
|
+
type: boolean
|
|
16113
|
+
welcome_bundle_complete:
|
|
16114
|
+
type: boolean
|
|
16115
|
+
default_vault_id:
|
|
16116
|
+
type: string
|
|
16117
|
+
format: uuid
|
|
16118
|
+
nullable: true
|
|
16119
|
+
|
|
16120
|
+
OnboardingProvisionRequest:
|
|
16121
|
+
type: object
|
|
16122
|
+
properties:
|
|
16123
|
+
agent_name:
|
|
16124
|
+
type: string
|
|
16125
|
+
client:
|
|
16126
|
+
type: string
|
|
16127
|
+
|
|
16128
|
+
OnboardingProvisionResponse:
|
|
16129
|
+
type: object
|
|
16130
|
+
required: [agent_id, api_key, vault_id, mcp_stdio_config, verify_prompt]
|
|
16131
|
+
properties:
|
|
16132
|
+
agent_id:
|
|
16133
|
+
type: string
|
|
16134
|
+
format: uuid
|
|
16135
|
+
api_key:
|
|
16136
|
+
type: string
|
|
16137
|
+
vault_id:
|
|
16138
|
+
type: string
|
|
16139
|
+
format: uuid
|
|
16140
|
+
mcp_stdio_config:
|
|
16141
|
+
type: object
|
|
16142
|
+
verify_prompt:
|
|
16143
|
+
type: string
|
|
16144
|
+
|
|
15515
16145
|
AgentKeysVaultResponse:
|
|
15516
16146
|
type: object
|
|
15517
16147
|
properties:
|
|
@@ -17011,6 +17641,10 @@ components:
|
|
|
17011
17641
|
format: date-time
|
|
17012
17642
|
nullable: true
|
|
17013
17643
|
description: Optional expiration time for the platform API key. Set to null to clear.
|
|
17644
|
+
siwe_domain:
|
|
17645
|
+
type: string
|
|
17646
|
+
nullable: true
|
|
17647
|
+
description: Hostname allowed in SIWE messages for wallet sign-in (EIP-4361).
|
|
17014
17648
|
|
|
17015
17649
|
PlatformAppDeleteResponse:
|
|
17016
17650
|
type: object
|
|
@@ -17107,6 +17741,10 @@ components:
|
|
|
17107
17741
|
format: date-time
|
|
17108
17742
|
nullable: true
|
|
17109
17743
|
description: When the platform API key was last rotated.
|
|
17744
|
+
siwe_domain:
|
|
17745
|
+
type: string
|
|
17746
|
+
nullable: true
|
|
17747
|
+
description: Hostname allowed in SIWE messages for wallet sign-in (EIP-4361).
|
|
17110
17748
|
created_at:
|
|
17111
17749
|
type: string
|
|
17112
17750
|
format: date-time
|
|
@@ -17136,12 +17774,21 @@ components:
|
|
|
17136
17774
|
type: object
|
|
17137
17775
|
description: |
|
|
17138
17776
|
Template specification defining vault, agents, policies, and signing keys to bootstrap.
|
|
17139
|
-
Top-level fields: `vault` (object with name, description), `agents` (array of agent specs
|
|
17140
|
-
with
|
|
17141
|
-
|
|
17142
|
-
|
|
17143
|
-
|
|
17144
|
-
|
|
17777
|
+
Top-level fields: `vault` (object with name, description), `agents` (array of agent specs),
|
|
17778
|
+
`policies` (array with vault_ref, principal_ref, paths, permissions, conditions), and
|
|
17779
|
+
`signing_keys` (array of `{ chain }` objects — supported chains: ethereum, bitcoin, solana,
|
|
17780
|
+
xrp, cardano, tron). When `signing_keys` is present, HSM-backed signing keys are
|
|
17781
|
+
auto-provisioned for the bootstrapped agent.
|
|
17782
|
+
|
|
17783
|
+
Each agent entry accepts Intents API and Execution Intents flags under any of these aliases
|
|
17784
|
+
(direct API field name, boolean shorthand, or `{ enabled: true }` object):
|
|
17785
|
+
- Intents API → `intents_api_enabled`, `intents: true`, or `intents: { enabled: true }`
|
|
17786
|
+
(maps to `agents.intents_api_enabled`)
|
|
17787
|
+
- Execution Intents → `execution_intents_enabled`, `execution: true`, or
|
|
17788
|
+
`execution: { enabled: true }` (maps to `agents.execution_intents_enabled`)
|
|
17789
|
+
|
|
17790
|
+
Other agent fields: `name`, `description`, `shroud_enabled`, `shroud_config`, `system_prompt`,
|
|
17791
|
+
`environment`, `signing_keys`, `provision_eoa`, `memory`, `runtime`, `default_llm_provider`.
|
|
17145
17792
|
|
|
17146
17793
|
PlatformTemplateResponse:
|
|
17147
17794
|
type: object
|
|
@@ -21168,6 +21815,83 @@ components:
|
|
|
21168
21815
|
action_payload:
|
|
21169
21816
|
type: object
|
|
21170
21817
|
|
|
21818
|
+
ConnectionSubmitPendingApprovalRequest:
|
|
21819
|
+
type: object
|
|
21820
|
+
required: [action_payload]
|
|
21821
|
+
properties:
|
|
21822
|
+
agent_id:
|
|
21823
|
+
type: string
|
|
21824
|
+
format: uuid
|
|
21825
|
+
description: Required when the connection has multiple agents
|
|
21826
|
+
policy_id:
|
|
21827
|
+
type: string
|
|
21828
|
+
format: uuid
|
|
21829
|
+
description: Optional — auto-resolved from agent consensus policies when omitted
|
|
21830
|
+
action:
|
|
21831
|
+
type: string
|
|
21832
|
+
default: transaction
|
|
21833
|
+
action_payload:
|
|
21834
|
+
type: object
|
|
21835
|
+
description: Transaction/intent fields (chain, to, value, …) hashed for decide binding
|
|
21836
|
+
summary:
|
|
21837
|
+
type: string
|
|
21838
|
+
description: Human-readable label included in webhook payloads
|
|
21839
|
+
|
|
21840
|
+
InspectContentRequest:
|
|
21841
|
+
type: object
|
|
21842
|
+
required: [content]
|
|
21843
|
+
properties:
|
|
21844
|
+
content:
|
|
21845
|
+
type: string
|
|
21846
|
+
maxLength: 102400
|
|
21847
|
+
context:
|
|
21848
|
+
type: string
|
|
21849
|
+
enum: [input, output]
|
|
21850
|
+
description: Inspection context (reserved for future rules)
|
|
21851
|
+
|
|
21852
|
+
InspectContentResponse:
|
|
21853
|
+
type: object
|
|
21854
|
+
properties:
|
|
21855
|
+
safe:
|
|
21856
|
+
type: boolean
|
|
21857
|
+
verdict:
|
|
21858
|
+
type: string
|
|
21859
|
+
enum: [clean, malicious]
|
|
21860
|
+
threat_count:
|
|
21861
|
+
type: integer
|
|
21862
|
+
threats:
|
|
21863
|
+
type: array
|
|
21864
|
+
items:
|
|
21865
|
+
type: object
|
|
21866
|
+
properties:
|
|
21867
|
+
type:
|
|
21868
|
+
type: string
|
|
21869
|
+
pattern:
|
|
21870
|
+
type: string
|
|
21871
|
+
severity:
|
|
21872
|
+
type: string
|
|
21873
|
+
unicode_normalized:
|
|
21874
|
+
type: boolean
|
|
21875
|
+
normalized_content:
|
|
21876
|
+
type: string
|
|
21877
|
+
|
|
21878
|
+
PlatformWebhookInfoResponse:
|
|
21879
|
+
type: object
|
|
21880
|
+
properties:
|
|
21881
|
+
app_id:
|
|
21882
|
+
type: string
|
|
21883
|
+
format: uuid
|
|
21884
|
+
webhook_configured:
|
|
21885
|
+
type: boolean
|
|
21886
|
+
webhook_url_host:
|
|
21887
|
+
type: string
|
|
21888
|
+
platform_events:
|
|
21889
|
+
type: array
|
|
21890
|
+
items:
|
|
21891
|
+
type: string
|
|
21892
|
+
org_webhooks_note:
|
|
21893
|
+
type: string
|
|
21894
|
+
|
|
21171
21895
|
SubmitPendingApprovalResponse:
|
|
21172
21896
|
type: object
|
|
21173
21897
|
properties:
|