Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
487 changes: 273 additions & 214 deletions schemas/cache/.hashes.json

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion schemas/cache/a2ui/component.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"$id": "/schemas/3.0.0-beta.2/a2ui/component.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "A component in an A2UI surface",
Expand Down
3 changes: 1 addition & 2 deletions schemas/cache/a2ui/surface.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"$id": "/schemas/3.0.0-beta.2/a2ui/surface.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "A contiguous UI region containing components",
Expand All @@ -12,7 +11,7 @@
"components": {
"description": "Flat list of components (adjacency list structure)",
"items": {
"$ref": "/schemas/3.0.0-beta.2/a2ui/component.json"
"$ref": "component.json"
},
"type": "array"
},
Expand Down
16 changes: 9 additions & 7 deletions schemas/cache/account/list-accounts-request.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
{
"$id": "/schemas/3.0.0-beta.2/account/list-accounts-request.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Request parameters for listing accounts accessible to the authenticated agent",
"properties": {
"context": {
"$ref": "/schemas/3.0.0-beta.2/core/context.json"
"$ref": "../core/context.json"
},
"ext": {
"$ref": "/schemas/3.0.0-beta.2/core/ext.json"
"$ref": "../core/ext.json"
},
"pagination": {
"$ref": "../core/pagination-request.json"
},
"status": {
"default": "active",
"description": "Filter accounts by status",
"description": "Filter accounts by status. Omit to return accounts in all statuses.",
"enum": [
"active",
"pending_approval",
"payment_required",
"suspended",
"closed",
"all"
"closed"
],
"type": "string"
}
Expand Down
48 changes: 27 additions & 21 deletions schemas/cache/account/list-accounts-response.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"$id": "/schemas/3.0.0-beta.2/account/list-accounts-response.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Response payload for list_accounts task",
Expand All @@ -8,37 +7,41 @@
"data": {
"accounts": [
{
"account_id": "acc_coke_publicis",
"advertiser": "The Coca-Cola Company",
"billing_proxy": "Publicis Media",
"name": "Coke c/o Publicis",
"account_id": "acc_acme_pinnacle",
"advertiser": "Acme Corp",
"billing_proxy": "Pinnacle Media",
"name": "Acme c/o Pinnacle",
"status": "active"
},
{
"account_id": "acc_pepsi_publicis",
"advertiser": "PepsiCo",
"billing_proxy": "Publicis Media",
"name": "Pepsi c/o Publicis",
"account_id": "acc_nova_pinnacle",
"advertiser": "Nova Brands",
"billing_proxy": "Pinnacle Media",
"name": "Nova c/o Pinnacle",
"status": "active"
},
{
"account_id": "acc_publicis",
"advertiser": "Publicis Media",
"name": "Publicis",
"account_id": "acc_pinnacle",
"advertiser": "Pinnacle Media",
"name": "Pinnacle",
"status": "active"
}
]
],
"pagination": {
"has_more": false,
"total_count": 3
}
},
"description": "Agency with multiple client accounts"
},
{
"data": {
"accounts": [
{
"account_id": "acc_coke_direct",
"advertiser": "The Coca-Cola Company",
"name": "Coke",
"rate_card": "coke_vip_2024",
"account_id": "acc_acme_direct",
"advertiser": "Acme Corp",
"name": "Acme",
"rate_card": "acme_vip_2024",
"status": "active"
}
]
Expand All @@ -50,22 +53,25 @@
"accounts": {
"description": "Array of accounts accessible to the authenticated agent",
"items": {
"$ref": "/schemas/3.0.0-beta.2/core/account.json"
"$ref": "../core/account.json"
},
"type": "array"
},
"context": {
"$ref": "/schemas/3.0.0-beta.2/core/context.json"
"$ref": "../core/context.json"
},
"errors": {
"description": "Task-specific errors and warnings",
"items": {
"$ref": "/schemas/3.0.0-beta.2/core/error.json"
"$ref": "../core/error.json"
},
"type": "array"
},
"ext": {
"$ref": "/schemas/3.0.0-beta.2/core/ext.json"
"$ref": "../core/ext.json"
},
"pagination": {
"$ref": "../core/pagination-response.json"
}
},
"required": [
Expand Down
120 changes: 120 additions & 0 deletions schemas/cache/account/sync-accounts-request.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sync advertiser accounts with a seller using upsert semantics. The agent declares which brands it represents, who operates each seat, and the billing model. The seller provisions or links accounts accordingly, returning per-account status. Brands are identified by house domain + brand_id, resolved via /.well-known/brand.json.",
"examples": [
{
"data": {
"accounts": [
{
"billing": "brand",
"brand_id": "dove",
"house": "unilever.com",
"operator": "mindshare.com"
},
{
"billing": "agent",
"brand_id": "tide",
"house": "pg.com",
"operator": "groupm.com"
}
]
},
"description": "Agency syncing multiple advertisers with different billing"
},
{
"data": {
"accounts": [
{
"billing": "brand",
"house": "acme-corp.com"
}
]
},
"description": "Brand buying direct, no operator"
},
{
"data": {
"accounts": [
{
"billing": "agent",
"brand_id": "dove",
"house": "unilever.com"
},
{
"billing": "agent",
"brand_id": "axe",
"house": "unilever.com"
}
]
},
"description": "Agent consolidating billing for all advertisers"
}
],
"properties": {
"accounts": {
"description": "Advertiser accounts to sync",
"items": {
"additionalProperties": true,
"description": "An advertiser account the agent wants to operate on the seller",
"properties": {
"billing": {
"description": "Who should be invoiced. brand: seller invoices the brand directly. operator: seller invoices the operator (agency). agent: agent consolidates billing across brands. Omit to accept the seller's default.",
"enum": [
"brand",
"operator",
"agent"
],
"type": "string"
},
"brand_id": {
"description": "Brand ID within the house portfolio (from brand.json). Required when the house has multiple brands (e.g., 'dove' under unilever.com, 'tide' under pg.com). Omit for single-brand houses.",
"pattern": "^[a-z0-9_]+$",
"type": "string"
},
"house": {
"description": "House domain where brand.json is hosted (e.g., 'unilever.com', 'acme-corp.com'). This is the canonical identity anchor for the brand, resolved via /.well-known/brand.json. For single-brand houses, this alone identifies the brand.",
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$",
"type": "string"
},
"operator": {
"description": "Domain of the entity operating the seat (e.g., 'groupm.com', 'mindshare.com'). Verified against the brand's authorized_operators in brand.json. Omit if the brand operates its own seat.",
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$",
"type": "string"
}
},
"required": [
"house"
],
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"context": {
"$ref": "../core/context.json"
},
"delete_missing": {
"default": false,
"description": "When true, accounts previously synced by this agent but not included in this request will be deactivated. Scoped to the authenticated agent \u2014 does not affect accounts managed by other agents. Use with caution.",
"type": "boolean"
},
"dry_run": {
"default": false,
"description": "When true, preview what would change without applying. Returns what would be created/updated/deactivated.",
"type": "boolean"
},
"ext": {
"$ref": "../core/ext.json"
},
"push_notification_config": {
"$ref": "../core/push-notification-config.json",
"description": "Optional webhook for async notifications when account status changes (e.g., pending_approval transitions to active)."
}
},
"required": [
"accounts"
],
"title": "Sync Accounts Request",
"type": "object"
}
Loading