{"openapi":"3.1.0","info":{"title":"CyberPatch — agent actions","description":"CyberPatch — patch management SaaS by Cyber-SG. Surface derived from the public site only (no code access).","version":"20260801T132629Z-6a8790f0"},"servers":[{"url":"https://agents.cyber-sg.com"}],"paths":{"/actions/get_product_info":{"post":{"operationId":"get_product_info","summary":"Get product info","description":"What CyberPatch is, who it is for, and where to find it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"examples":{"product_info":{"summary":"product info","value":{}}}}}},"responses":{"200":{"description":"Action executed","content":{"application/json":{"schema":{"type":"object","required":["ok","action","result"],"properties":{"ok":{"const":true},"action":{"const":"get_product_info"},"result":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string"},"category":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"vendor":{"type":"string"}},"required":["name","category","description","url","vendor"],"additionalProperties":false}}}}}},"400":{"description":"Input failed schema validation"},"429":{"description":"Rate limited — the agent key exceeded its quota. Retry after the Retry-After header.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}}}},"/actions/check_service_status":{"post":{"operationId":"check_service_status","summary":"Check service status","description":"Live availability check of the CyberPatch web application (HTTP status and latency, observed from the gateway right now).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"examples":{"status_now":{"summary":"status now","value":{}}}}}},"responses":{"200":{"description":"Action executed","content":{"application/json":{"schema":{"type":"object","required":["ok","action","result"],"properties":{"ok":{"const":true},"action":{"const":"check_service_status"},"result":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"up":{"type":"boolean"},"httpStatus":{"type":"number"},"latencyMs":{"type":"number"},"checkedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["up","httpStatus","latencyMs","checkedAt"],"additionalProperties":false}}}}}},"400":{"description":"Input failed schema validation"},"429":{"description":"Rate limited — the agent key exceeded its quota. Retry after the Retry-After header.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}}}},"/actions/get_access_info":{"post":{"operationId":"get_access_info","summary":"How to get access","description":"How a prospective customer (or their agent) obtains CyberPatch access. This tenant has no delegated signup action yet — this returns the human path.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"examples":{"access_info":{"summary":"access info","value":{}}}}}},"responses":{"200":{"description":"Action executed","content":{"application/json":{"schema":{"type":"object","required":["ok","action","result"],"properties":{"ok":{"const":true},"action":{"const":"get_access_info"},"result":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"signupUrl":{"type":"string","format":"uri"},"authRequired":{"type":"boolean"},"notes":{"type":"string"}},"required":["signupUrl","authRequired","notes"],"additionalProperties":false}}}}}},"400":{"description":"Input failed schema validation"},"429":{"description":"Rate limited — the agent key exceeded its quota. Retry after the Retry-After header.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}}}}},"components":{"securitySchemes":{"agentKey":{"type":"http","scheme":"bearer","description":"Mutating actions require a bearer key issued by the gateway operator. Agents may additionally present RFC 9421 / Web-Bot-Auth signatures; they are verified and recorded (advisory — never required)."}}}}