--- name: dataminer-toon-simulation description: 'Generate TOON-format simulation files from DataMiner connector protocol.xml: endpoint extraction, realistic data generation, and TOON encoding rules for HTTP and SNMP connectors.' argument-hint: 'Describe the simulation task: e.g. "generate simulation file for this SNMP connector" or "create HTTP simulation data from protocol.xml"' license: LicenseRef-Skyline-Agent-Marketplace metadata: updated: 2026-09-11 version: 1.1 --- # DataMiner TOON Simulation File Generation ## Changelog | Version | Date | Changes | |---------|------|---------| | 1.1 | 2026-09-11 | Added recognition of SecureCoding deserialization when inferring HTTP response models from QActions. | Generate `.toon` simulation files that define realistic mock data for every endpoint in a DataMiner connector. The output file is a standalone simulation definition designed for consumption by a dedicated simulator tool/process. > **Paired agent**: `dataminer-simulation-generator` — owns the generation workflow. This skill owns the TOON encoding rules, simulation schema definitions, and data generation heuristics. ## Supported Connection Types | Type | Simulation Section | Data Source in protocol.xml | |------|-------------------|----------------------------| | SNMP | `snmp.scalars`, `snmp.tables` | `` with `` elements | | HTTP | `http.sessions[].connections[].response` | `` elements + QAction C# deserialization classes | ## Reference Files Load these references when needed: | Topic | Reference File | |-------|---------------| | TOON encoding rules (syntax, indentation, quoting, arrays) | `references/toon-syntax-primer.md` | | SNMP simulation schema + annotated example | `references/simulation-schema-snmp.md` | | HTTP simulation schema + annotated example + C# class inspection | `references/simulation-schema-http.md` | | Data generation heuristics (name patterns → values, type defaults) | `references/data-generation-heuristics.md` | ## Output File - **Filename**: `simulation.toon` - **Location**: Solution root (same level as `protocol.xml` or `.sln`) - **Encoding**: UTF-8, LF line endings, 2-space indent, no trailing spaces or trailing newline ## Quick Schema Overview Every simulation file has this top-level structure: ```toon meta: connector: Vendor - Product version: 1.0.0.1 type: snmp generated: 2026-07-08T12:00:00Z ``` Then one or both protocol-specific sections follow: - **SNMP connectors** → `snmp:` section with `scalars` tabular array and `tables` list - **HTTP connectors** → `http:` section with `sessions` list containing connections and response bodies - **Mixed connectors** → both sections present ## Endpoint Extraction Summary ### SNMP Extraction 1. Find all `` elements containing `` children 2. Classify each: - **Scalar**: standalone param with `` (full OID ending in `.0` or similar) - **Table column**: param referenced in an `` table definition, OID is a sub-ID 3. Group table columns by their parent table parameter (the param with ``) 4. Extract the SNMP `` for each OID (OctetString, Integer32, Counter32, Gauge32, TimeTicks, Counter64, IpAddress) ### HTTP Extraction 1. Find all `` elements → each becomes a session entry 2. For each `` within a session → extract `` and `` 3. Cross-reference content PIDs to determine response shape: - If PID maps to a single read param → scalar JSON response - If PID maps to params parsed into a table → JSON array response 4. **Inspect QAction C# code** for deserialization classes (see HTTP schema reference for details) ## Data Generation Quick Rules | Pattern in Parameter Name | Generated Value | |--------------------------|-----------------| | `*uptime*`, `*sysUpTime*` | 1234567 (TimeTicks) | | `*name*`, `*sysName*` | `router-core-01` | | `*descr*`, `*description*` | `Linux router 5.15.0-generic` | | `*speed*`, `*ifSpeed*` | 1000000000 | | `*status*`, `*operStatus*` | 1 (up) | | `*address*`, `*ipAddr*` | `192.168.1.1` | | `*count*`, `*counter*` | 42857 | | `*index*` | Sequential integers starting at 1 | See `references/data-generation-heuristics.md` for the complete lookup table. ## Constraints - Never invent OIDs or URLs not present in `protocol.xml` - Every parameter with an SNMP OID or HTTP response mapping MUST appear in the output - Table rows default to 3 unless the connector structure suggests otherwise - HTTP response bodies MUST be syntactically valid JSON matching the parameter parsing structure - Output MUST be valid TOON (per syntax primer rules) - `[N]` counts MUST match actual row counts - No trailing spaces on any line; no trailing newline at end of file