@adcp/client 4.20.0 → 4.22.0
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/AGENTS.md +278 -0
- package/README.md +96 -61
- package/bin/adcp.js +342 -4
- package/dist/lib/agents/index.generated.d.ts +9 -1
- package/dist/lib/agents/index.generated.d.ts.map +1 -1
- package/dist/lib/agents/index.generated.js +12 -0
- package/dist/lib/agents/index.generated.js.map +1 -1
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts +2 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +10 -1
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/discovery/property-crawler.d.ts +4 -0
- package/dist/lib/discovery/property-crawler.d.ts.map +1 -1
- package/dist/lib/discovery/property-crawler.js +10 -2
- package/dist/lib/discovery/property-crawler.js.map +1 -1
- package/dist/lib/index.d.ts +9 -9
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +13 -5
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +8 -6
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/protocols/mcp.d.ts.map +1 -1
- package/dist/lib/protocols/mcp.js +24 -11
- package/dist/lib/protocols/mcp.js.map +1 -1
- package/dist/lib/registry/cursor-store.d.ts +19 -0
- package/dist/lib/registry/cursor-store.d.ts.map +1 -0
- package/dist/lib/registry/cursor-store.js +44 -0
- package/dist/lib/registry/cursor-store.js.map +1 -0
- package/dist/lib/registry/index.d.ts +21 -3
- package/dist/lib/registry/index.d.ts.map +1 -1
- package/dist/lib/registry/index.js +94 -1
- package/dist/lib/registry/index.js.map +1 -1
- package/dist/lib/registry/property-registry.d.ts +57 -0
- package/dist/lib/registry/property-registry.d.ts.map +1 -0
- package/dist/lib/registry/property-registry.js +92 -0
- package/dist/lib/registry/property-registry.js.map +1 -0
- package/dist/lib/registry/sync.d.ts +4 -0
- package/dist/lib/registry/sync.d.ts.map +1 -1
- package/dist/lib/registry/sync.js +14 -0
- package/dist/lib/registry/sync.js.map +1 -1
- package/dist/lib/registry/types.d.ts +35 -2
- package/dist/lib/registry/types.d.ts.map +1 -1
- package/dist/lib/registry/types.generated.d.ts +349 -321
- package/dist/lib/registry/types.generated.d.ts.map +1 -1
- package/dist/lib/registry/types.generated.js +1 -1
- package/dist/lib/server/index.d.ts +2 -0
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +3 -1
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/serve.d.ts +45 -0
- package/dist/lib/server/serve.d.ts.map +1 -0
- package/dist/lib/server/serve.js +86 -0
- package/dist/lib/server/serve.js.map +1 -0
- package/dist/lib/testing/agent-tester.d.ts +1 -1
- package/dist/lib/testing/agent-tester.d.ts.map +1 -1
- package/dist/lib/testing/agent-tester.js +10 -1
- package/dist/lib/testing/agent-tester.js.map +1 -1
- package/dist/lib/testing/client.d.ts.map +1 -1
- package/dist/lib/testing/client.js +3 -0
- package/dist/lib/testing/client.js.map +1 -1
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
- package/dist/lib/testing/compliance/comply.js +158 -203
- package/dist/lib/testing/compliance/comply.js.map +1 -1
- package/dist/lib/testing/compliance/storyboard-tracks.d.ts +24 -0
- package/dist/lib/testing/compliance/storyboard-tracks.d.ts.map +1 -0
- package/dist/lib/testing/compliance/storyboard-tracks.js +157 -0
- package/dist/lib/testing/compliance/storyboard-tracks.js.map +1 -0
- package/dist/lib/testing/compliance/types.d.ts +1 -1
- package/dist/lib/testing/compliance/types.d.ts.map +1 -1
- package/dist/lib/testing/index.d.ts +2 -1
- package/dist/lib/testing/index.d.ts.map +1 -1
- package/dist/lib/testing/index.js +26 -1
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/testing/orchestrator.d.ts +8 -0
- package/dist/lib/testing/orchestrator.d.ts.map +1 -1
- package/dist/lib/testing/orchestrator.js +11 -0
- package/dist/lib/testing/orchestrator.js.map +1 -1
- package/dist/lib/testing/scenarios/brand-rights.d.ts +23 -0
- package/dist/lib/testing/scenarios/brand-rights.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/brand-rights.js +144 -0
- package/dist/lib/testing/scenarios/brand-rights.js.map +1 -0
- package/dist/lib/testing/scenarios/capabilities.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/capabilities.js +11 -2
- package/dist/lib/testing/scenarios/capabilities.js.map +1 -1
- package/dist/lib/testing/scenarios/governance.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/governance.js +5 -0
- package/dist/lib/testing/scenarios/governance.js.map +1 -1
- package/dist/lib/testing/scenarios/index.d.ts +2 -0
- package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/index.js +10 -2
- package/dist/lib/testing/scenarios/index.js.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.js +22 -3
- package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
- package/dist/lib/testing/scenarios/trusted-match.d.ts +22 -0
- package/dist/lib/testing/scenarios/trusted-match.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/trusted-match.js +128 -0
- package/dist/lib/testing/scenarios/trusted-match.js.map +1 -0
- package/dist/lib/testing/storyboard/context.d.ts +34 -0
- package/dist/lib/testing/storyboard/context.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/context.js +257 -0
- package/dist/lib/testing/storyboard/context.js.map +1 -0
- package/dist/lib/testing/storyboard/index.d.ts +15 -0
- package/dist/lib/testing/storyboard/index.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/index.js +48 -0
- package/dist/lib/testing/storyboard/index.js.map +1 -0
- package/dist/lib/testing/storyboard/loader.d.ts +53 -0
- package/dist/lib/testing/storyboard/loader.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/loader.js +114 -0
- package/dist/lib/testing/storyboard/loader.js.map +1 -0
- package/dist/lib/testing/storyboard/path.d.ts +29 -0
- package/dist/lib/testing/storyboard/path.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/path.js +121 -0
- package/dist/lib/testing/storyboard/path.js.map +1 -0
- package/dist/lib/testing/storyboard/request-builder.d.ts +28 -0
- package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-builder.js +410 -0
- package/dist/lib/testing/storyboard/request-builder.js.map +1 -0
- package/dist/lib/testing/storyboard/runner.d.ts +24 -0
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/runner.js +280 -0
- package/dist/lib/testing/storyboard/runner.js.map +1 -0
- package/dist/lib/testing/storyboard/task-map.d.ts +21 -0
- package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/task-map.js +84 -0
- package/dist/lib/testing/storyboard/task-map.js.map +1 -0
- package/dist/lib/testing/storyboard/types.d.ts +156 -0
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/types.js +10 -0
- package/dist/lib/testing/storyboard/types.js.map +1 -0
- package/dist/lib/testing/storyboard/validations.d.ts +17 -0
- package/dist/lib/testing/storyboard/validations.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/validations.js +166 -0
- package/dist/lib/testing/storyboard/validations.js.map +1 -0
- package/dist/lib/testing/types.d.ts +4 -1
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/types/core.generated.d.ts +36 -23
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +1 -1
- package/dist/lib/types/schemas.generated.d.ts +1098 -770
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +163 -76
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +314 -24
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.d.ts +4 -1
- package/dist/lib/utils/capabilities.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.js +25 -1
- package/dist/lib/utils/capabilities.js.map +1 -1
- package/dist/lib/utils/response-schemas.d.ts.map +1 -1
- package/dist/lib/utils/response-schemas.js +34 -3
- package/dist/lib/utils/response-schemas.js.map +1 -1
- package/dist/lib/utils/validate-user-agent.d.ts +8 -0
- package/dist/lib/utils/validate-user-agent.d.ts.map +1 -0
- package/dist/lib/utils/validate-user-agent.js +15 -0
- package/dist/lib/utils/validate-user-agent.js.map +1 -0
- package/dist/lib/version.d.ts +9 -3
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +10 -4
- package/dist/lib/version.js.map +1 -1
- package/docs/README.md +42 -0
- package/docs/guides/BUILD-AN-AGENT.md +292 -0
- package/docs/llms.txt +634 -0
- package/examples/README.md +106 -0
- package/examples/adcp.config.json +30 -0
- package/examples/basic-a2a.ts +76 -0
- package/examples/basic-mcp.ts +50 -0
- package/examples/batch-preview-test.ts +266 -0
- package/examples/conversation-client.ts +291 -0
- package/examples/debug-preview-response.ts +73 -0
- package/examples/debug-preview-with-logging.ts +50 -0
- package/examples/easy-config-demo.ts +242 -0
- package/examples/env-config.ts +51 -0
- package/examples/error-compliant-server.ts +237 -0
- package/examples/generative-creative-demo.ts +205 -0
- package/examples/inspect-card-formats.ts +161 -0
- package/examples/logger-usage.ts +165 -0
- package/examples/oauth-cli-example.ts +154 -0
- package/examples/pr78-async-patterns-demo.ts +247 -0
- package/examples/signals-agent.ts +162 -0
- package/examples/simple-getting-started.ts +225 -0
- package/examples/simple-protocol-demo.ts +75 -0
- package/examples/test-helpers-demo.ts +239 -0
- package/examples/zod-validation-example.ts +126 -0
- package/package.json +12 -2
- package/skills/adcp/SKILL.md +13 -2
- package/storyboards/audience_sync.yaml +199 -0
- package/storyboards/behavioral_analysis.yaml +244 -0
- package/storyboards/brand_rights.yaml +131 -0
- package/storyboards/creative_ad_server.yaml +171 -0
- package/storyboards/creative_sales_agent.yaml +169 -0
- package/storyboards/creative_template.yaml +306 -0
- package/storyboards/deterministic_testing.yaml +925 -0
- package/storyboards/error_compliance.yaml +231 -0
- package/storyboards/governance_content_standards.yaml +213 -0
- package/storyboards/governance_property_lists.yaml +372 -0
- package/storyboards/media_buy_catalog_creative.yaml +457 -0
- package/storyboards/media_buy_governance_escalation.yaml +467 -0
- package/storyboards/media_buy_guaranteed_approval.yaml +396 -0
- package/storyboards/media_buy_non_guaranteed.yaml +288 -0
- package/storyboards/media_buy_proposal_mode.yaml +369 -0
- package/storyboards/media_buy_seller.yaml +560 -0
- package/storyboards/media_buy_state_machine.yaml +254 -0
- package/storyboards/schema.yaml +65 -0
- package/storyboards/schema_validation.yaml +166 -0
- package/storyboards/si_session.yaml +384 -0
- package/storyboards/signal_marketplace.yaml +283 -0
- package/storyboards/signal_owned.yaml +211 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
id: signal_owned
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
title: "Owned signal agent"
|
|
4
|
+
category: signal_owned
|
|
5
|
+
summary: "Signal agent serving first-party or proprietary audience data without external catalog verification."
|
|
6
|
+
platform_types:
|
|
7
|
+
- retail_media
|
|
8
|
+
- social_platform
|
|
9
|
+
- pmax_platform
|
|
10
|
+
|
|
11
|
+
track: signals
|
|
12
|
+
required_tools:
|
|
13
|
+
- get_signals
|
|
14
|
+
narrative: |
|
|
15
|
+
You operate a first-party data platform — a retailer CDP, publisher contextual data
|
|
16
|
+
provider, or proprietary audience platform. Your signals are agent-native: they come
|
|
17
|
+
from your own data, not from third-party catalogs.
|
|
18
|
+
|
|
19
|
+
Buyers trust your agent directly. There's no external adagents.json to verify against —
|
|
20
|
+
provenance is the agent itself. This simplifies the flow: discovery and activation,
|
|
21
|
+
without the verification step that marketplace agents require.
|
|
22
|
+
|
|
23
|
+
Owned signal agents often have richer signal types. A retailer might expose purchase
|
|
24
|
+
frequency as a numeric signal (0-30 visits/month) or loyalty tier as categorical
|
|
25
|
+
(platinum/gold/silver/bronze). A publisher might expose content category, subscriber
|
|
26
|
+
tenure, or engagement scores.
|
|
27
|
+
|
|
28
|
+
This storyboard walks through discovery and both activation patterns.
|
|
29
|
+
|
|
30
|
+
agent:
|
|
31
|
+
interaction_model: owned_signals
|
|
32
|
+
capabilities: []
|
|
33
|
+
examples:
|
|
34
|
+
- "Retailer CDPs (e.g., loyalty and purchase data)"
|
|
35
|
+
- "Publisher contextual platforms (e.g., content category, subscriber data)"
|
|
36
|
+
- "First-party audience platforms (e.g., CRM-derived segments)"
|
|
37
|
+
|
|
38
|
+
caller:
|
|
39
|
+
role: buyer_agent
|
|
40
|
+
example: "Scope3 (DSP)"
|
|
41
|
+
|
|
42
|
+
prerequisites:
|
|
43
|
+
description: |
|
|
44
|
+
The buyer has a campaign brief with targeting objectives. The test kit provides
|
|
45
|
+
sample owned signal definitions with various value types (binary, categorical,
|
|
46
|
+
numeric) and pricing models.
|
|
47
|
+
test_kit: "test-kits/nova-motors.yaml"
|
|
48
|
+
|
|
49
|
+
phases:
|
|
50
|
+
- id: discovery
|
|
51
|
+
title: "Signal discovery"
|
|
52
|
+
narrative: |
|
|
53
|
+
The buyer describes targeting objectives and your agent returns matching signals
|
|
54
|
+
from your proprietary data. Unlike marketplace agents, these signals have
|
|
55
|
+
signal_type "owned" — provenance is the agent itself.
|
|
56
|
+
|
|
57
|
+
Owned signals often include richer value types. A retailer can expose loyalty
|
|
58
|
+
tiers as categorical signals and purchase frequency as numeric signals, giving
|
|
59
|
+
buyers more precise targeting than binary include/exclude.
|
|
60
|
+
|
|
61
|
+
steps:
|
|
62
|
+
- id: search_owned_signals
|
|
63
|
+
title: "Discover owned signals"
|
|
64
|
+
narrative: |
|
|
65
|
+
The buyer searches for audience segments using a natural language description.
|
|
66
|
+
Your agent returns signals from your proprietary data — loyalty tiers, purchase
|
|
67
|
+
history, engagement scores, contextual categories.
|
|
68
|
+
task: get_signals
|
|
69
|
+
schema_ref: "signals/get-signals-request.json"
|
|
70
|
+
response_schema_ref: "signals/get-signals-response.json"
|
|
71
|
+
doc_ref: "/signals/tasks/get_signals"
|
|
72
|
+
stateful: false
|
|
73
|
+
expected: |
|
|
74
|
+
Return matching signals from your proprietary data. Each signal must include:
|
|
75
|
+
- signal_agent_segment_id for activation
|
|
76
|
+
- signal_id with source: "agent_native"
|
|
77
|
+
- name, description, and value_type
|
|
78
|
+
- coverage_percentage
|
|
79
|
+
- pricing_options
|
|
80
|
+
- signal_type: "owned"
|
|
81
|
+
|
|
82
|
+
For categorical signals, include the allowed_values.
|
|
83
|
+
For numeric signals, include the range (min/max).
|
|
84
|
+
|
|
85
|
+
sample_request:
|
|
86
|
+
signal_spec: "High-value customers likely to purchase electronics, with loyalty program data"
|
|
87
|
+
|
|
88
|
+
validations:
|
|
89
|
+
- check: response_schema
|
|
90
|
+
description: "Response matches get-signals-response.json schema"
|
|
91
|
+
- check: field_present
|
|
92
|
+
path: "signals[0].signal_agent_segment_id"
|
|
93
|
+
description: "Each signal has a signal_agent_segment_id"
|
|
94
|
+
- check: field_present
|
|
95
|
+
path: "signals[0].pricing_options"
|
|
96
|
+
description: "Each signal has pricing options"
|
|
97
|
+
|
|
98
|
+
- id: filter_by_criteria
|
|
99
|
+
title: "Filter signals by criteria"
|
|
100
|
+
narrative: |
|
|
101
|
+
The buyer narrows the search using filters — maximum CPM, specific signal
|
|
102
|
+
types, or coverage thresholds. This tests that your agent handles filter
|
|
103
|
+
parameters correctly and returns only matching signals.
|
|
104
|
+
task: get_signals
|
|
105
|
+
schema_ref: "signals/get-signals-request.json"
|
|
106
|
+
response_schema_ref: "signals/get-signals-response.json"
|
|
107
|
+
doc_ref: "/signals/tasks/get_signals"
|
|
108
|
+
stateful: false
|
|
109
|
+
expected: |
|
|
110
|
+
Return only signals matching the filter criteria. If no signals match,
|
|
111
|
+
return an empty signals array — not an error.
|
|
112
|
+
|
|
113
|
+
sample_request:
|
|
114
|
+
signal_spec: "Purchase behavior signals"
|
|
115
|
+
filters:
|
|
116
|
+
max_cpm: 5.00
|
|
117
|
+
|
|
118
|
+
validations:
|
|
119
|
+
- check: response_schema
|
|
120
|
+
description: "Response matches schema"
|
|
121
|
+
- check: field_present
|
|
122
|
+
path: "signals"
|
|
123
|
+
description: "Response contains a signals array"
|
|
124
|
+
|
|
125
|
+
- id: platform_activation
|
|
126
|
+
title: "Activate on a DSP"
|
|
127
|
+
narrative: |
|
|
128
|
+
The buyer activates a signal directly on a DSP. Your agent pushes the segment
|
|
129
|
+
to the platform and returns a segment_id the buyer uses for campaign targeting.
|
|
130
|
+
|
|
131
|
+
Use platform destinations when the buyer manages DSP campaigns directly.
|
|
132
|
+
|
|
133
|
+
steps:
|
|
134
|
+
- id: activate_on_platform
|
|
135
|
+
title: "Activate owned signal on a DSP"
|
|
136
|
+
narrative: |
|
|
137
|
+
The buyer selects a signal and activates it on a DSP. For owned signals,
|
|
138
|
+
this means your platform pushes first-party segment data to the DSP. The
|
|
139
|
+
buyer gets back a segment_id for targeting.
|
|
140
|
+
task: activate_signal
|
|
141
|
+
schema_ref: "signals/activate-signal-request.json"
|
|
142
|
+
response_schema_ref: "signals/activate-signal-response.json"
|
|
143
|
+
doc_ref: "/signals/tasks/activate_signal"
|
|
144
|
+
stateful: true
|
|
145
|
+
expected: |
|
|
146
|
+
Return a deployment with:
|
|
147
|
+
- type: "platform"
|
|
148
|
+
- is_live status (may be async)
|
|
149
|
+
- activation_key with type: "segment_id" when live
|
|
150
|
+
- estimated_activation_duration_minutes if not immediately live
|
|
151
|
+
|
|
152
|
+
sample_request:
|
|
153
|
+
signal_agent_segment_id: "prism_high_ltv"
|
|
154
|
+
pricing_option_id: "po_prism_flat_monthly"
|
|
155
|
+
destinations:
|
|
156
|
+
- type: "platform"
|
|
157
|
+
platform: "the-trade-desk"
|
|
158
|
+
account: "agency-123-ttd"
|
|
159
|
+
|
|
160
|
+
validations:
|
|
161
|
+
- check: response_schema
|
|
162
|
+
description: "Response matches activate-signal-response.json schema"
|
|
163
|
+
- check: field_present
|
|
164
|
+
path: "deployments[0].type"
|
|
165
|
+
description: "Deployment includes type"
|
|
166
|
+
|
|
167
|
+
- id: agent_activation
|
|
168
|
+
title: "Activate on a sales agent"
|
|
169
|
+
narrative: |
|
|
170
|
+
The buyer activates a signal on a sales agent. The SA records the activation
|
|
171
|
+
and handles downstream DSP coordination — the buyer doesn't need to know which
|
|
172
|
+
platform the SA uses.
|
|
173
|
+
|
|
174
|
+
This is the right pattern when buying media through a sales agent.
|
|
175
|
+
|
|
176
|
+
steps:
|
|
177
|
+
- id: activate_on_agent
|
|
178
|
+
title: "Activate owned signal on a sales agent"
|
|
179
|
+
narrative: |
|
|
180
|
+
The buyer activates a signal with the SA's URL as the destination. The
|
|
181
|
+
activation is typically synchronous. The SA records it internally and
|
|
182
|
+
applies the targeting when the buyer later calls create_media_buy.
|
|
183
|
+
task: activate_signal
|
|
184
|
+
schema_ref: "signals/activate-signal-request.json"
|
|
185
|
+
response_schema_ref: "signals/activate-signal-response.json"
|
|
186
|
+
doc_ref: "/signals/tasks/activate_signal"
|
|
187
|
+
stateful: true
|
|
188
|
+
expected: |
|
|
189
|
+
Return a deployment with:
|
|
190
|
+
- type: "agent"
|
|
191
|
+
- agent_url matching the SA
|
|
192
|
+
- is_live: true (sync activation)
|
|
193
|
+
- activation_key with type: "key_value"
|
|
194
|
+
- deployed_at timestamp
|
|
195
|
+
|
|
196
|
+
sample_request:
|
|
197
|
+
signal_agent_segment_id: "prism_cart_abandoner"
|
|
198
|
+
pricing_option_id: "po_prism_abandoner_cpm"
|
|
199
|
+
destinations:
|
|
200
|
+
- type: "agent"
|
|
201
|
+
agent_url: "https://wonderstruck.salesagents.example"
|
|
202
|
+
|
|
203
|
+
validations:
|
|
204
|
+
- check: response_schema
|
|
205
|
+
description: "Response matches activate-signal-response.json schema"
|
|
206
|
+
- check: field_present
|
|
207
|
+
path: "deployments[0].activation_key"
|
|
208
|
+
description: "Deployment includes activation key"
|
|
209
|
+
- check: field_value
|
|
210
|
+
path: "deployments[0].type"
|
|
211
|
+
description: "Deployment type is 'agent'"
|